diff --git a/package.json b/package.json index 54db69e..72b99d7 100644 --- a/package.json +++ b/package.json @@ -30,14 +30,19 @@ "packageManager": "pnpm@10.11.0", "dependencies": { "@aws-sdk/client-s3": "^3.758.0", + "@discordjs/rest": "^2.5.0", + "@discordjs/ws": "^2.0.2", "@temporalio/activity": "^1.11.7", "@temporalio/client": "^1.11.7", + "@temporalio/common": "^1.11.8", "@temporalio/worker": "^1.11.7", "@temporalio/workflow": "^1.11.7", - "@togethercrew.dev/db": "^3.3.0", + "@togethercrew.dev/db": "^3.10.0", "@togethercrew.dev/tc-messagebroker": "^0.0.51", "axios": "^1.8.3", "bottleneck": "^2.19.5", + "discord-api-types": "^0.38.8", + "discord.js": "^14.19.3", "dotenv": "^16.4.7", "grammy": "^1.35.0", "https-proxy-agent": "^7.0.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index aef63b5..4653d71 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,49 +10,64 @@ importers: dependencies: '@aws-sdk/client-s3': specifier: ^3.758.0 - version: 3.817.0 + version: 3.758.0 + '@discordjs/rest': + specifier: ^2.5.0 + version: 2.5.0 + '@discordjs/ws': + specifier: ^2.0.2 + version: 2.0.2 '@temporalio/activity': specifier: ^1.11.7 - version: 1.11.8 + version: 1.11.7 '@temporalio/client': specifier: ^1.11.7 + version: 1.11.7 + '@temporalio/common': + specifier: ^1.11.8 version: 1.11.8 '@temporalio/worker': specifier: ^1.11.7 - version: 1.11.8 + version: 1.11.7 '@temporalio/workflow': specifier: ^1.11.7 - version: 1.11.8 + version: 1.11.7 '@togethercrew.dev/db': - specifier: ^3.3.0 - version: 3.10.0 + specifier: ^3.10.0 + version: 3.11.0 '@togethercrew.dev/tc-messagebroker': specifier: ^0.0.51 version: 0.0.51(@aws-sdk/credential-providers@3.817.0) axios: specifier: ^1.8.3 - version: 1.9.0 + version: 1.8.3 bottleneck: specifier: ^2.19.5 version: 2.19.5 + discord-api-types: + specifier: ^0.38.8 + version: 0.38.8 + discord.js: + specifier: ^14.19.3 + version: 14.19.3 dotenv: specifier: ^16.4.7 - version: 16.5.0 + version: 16.4.7 grammy: specifier: ^1.35.0 - version: 1.36.3 + version: 1.35.0 https-proxy-agent: specifier: ^7.0.6 version: 7.0.6 ioredis: specifier: ^5.6.0 - version: 5.6.1 + version: 5.6.0 joi: specifier: ^17.13.3 version: 17.13.3 mongoose: specifier: ^8.12.1 - version: 8.15.1(@aws-sdk/credential-providers@3.817.0)(socks@2.8.4) + version: 8.12.1(@aws-sdk/credential-providers@3.817.0)(socks@2.8.4) neo4j-driver: specifier: ^5.28.1 version: 5.28.1 @@ -64,29 +79,29 @@ importers: version: 2.1.0 pino: specifier: ^9.6.0 - version: 9.7.0 + version: 9.6.0 uuid: specifier: ^11.1.0 version: 11.1.0 zod: specifier: ^3.24.4 - version: 3.25.32 + version: 3.24.4 devDependencies: '@commitlint/cli': specifier: ^19.8.1 - version: 19.8.1(@types/node@22.15.23)(typescript@5.8.3) + version: 19.8.1(@types/node@22.13.10)(typescript@5.8.2) '@commitlint/config-conventional': specifier: ^19.8.1 version: 19.8.1 '@eslint/js': specifier: ^9.22.0 - version: 9.27.0 + version: 9.22.0 '@temporalio/testing': specifier: ^1.11.7 - version: 1.11.8 + version: 1.11.7 '@tsconfig/node16': specifier: ^16.1.3 - version: 16.1.4 + version: 16.1.3 '@types/eslint__js': specifier: ^8.42.3 version: 8.42.3 @@ -98,19 +113,19 @@ importers: version: 2.0.6 '@types/node': specifier: ^22.13.10 - version: 22.15.23 + version: 22.13.10 '@types/pako': specifier: ^2.0.3 version: 2.0.3 eslint: specifier: ^9.22.0 - version: 9.27.0(jiti@2.4.2) + version: 9.22.0(jiti@2.4.2) eslint-config-prettier: specifier: ^9.1.0 - version: 9.1.0(eslint@9.27.0(jiti@2.4.2)) + version: 9.1.0(eslint@9.22.0(jiti@2.4.2)) eslint-plugin-prettier: specifier: ^5.2.3 - version: 5.4.0(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.27.0(jiti@2.4.2)))(eslint@9.27.0(jiti@2.4.2))(prettier@3.5.3) + version: 5.2.3(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.22.0(jiti@2.4.2)))(eslint@9.22.0(jiti@2.4.2))(prettier@3.5.3) globals: specifier: ^15.15.0 version: 15.15.0 @@ -119,28 +134,32 @@ importers: version: 9.1.7 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.15.23)(ts-node@10.9.2(@swc/core@1.11.29)(@types/node@22.15.23)(typescript@5.8.3)) + version: 29.7.0(@types/node@22.13.10)(ts-node@10.9.2(@swc/core@1.11.9)(@types/node@22.13.10)(typescript@5.8.2)) nodemon: specifier: ^3.1.9 - version: 3.1.10 + version: 3.1.9 prettier: specifier: ^3.5.3 version: 3.5.3 ts-jest: specifier: ^29.2.6 - version: 29.3.4(@babel/core@7.27.3)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.3))(jest@29.7.0(@types/node@22.15.23)(ts-node@10.9.2(@swc/core@1.11.29)(@types/node@22.15.23)(typescript@5.8.3)))(typescript@5.8.3) + version: 29.2.6(@babel/core@7.26.10)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.10))(jest@29.7.0(@types/node@22.13.10)(ts-node@10.9.2(@swc/core@1.11.9)(@types/node@22.13.10)(typescript@5.8.2)))(typescript@5.8.2) ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.11.29)(@types/node@22.15.23)(typescript@5.8.3) + version: 10.9.2(@swc/core@1.11.9)(@types/node@22.13.10)(typescript@5.8.2) typescript: specifier: ^5.8.2 - version: 5.8.3 + version: 5.8.2 typescript-eslint: specifier: ^8.26.1 - version: 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + version: 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) packages: + '@acuminous/bitsyntax@0.1.2': + resolution: {integrity: sha512-29lUK80d1muEQqiUsSo+3A0yP6CdspgC95EnKBMi22Xlwt79i/En4Vr67+cXhU+cZjbti3TgGGC5wy1stIywVQ==} + engines: {node: '>=0.8'} + '@ampproject/remapping@2.3.0': resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} @@ -172,14 +191,22 @@ packages: resolution: {integrity: sha512-MNGwOJDQU0jpvsLLPSuPQDhPtDzFTc/k7rLmiKoPrIlgb3Y8pSF4crpJ+ZH3+xod2NWyyOVMEMQeMaKFFdMaKw==} engines: {node: '>=18.0.0'} - '@aws-sdk/client-s3@3.817.0': - resolution: {integrity: sha512-nZyjhlLMEXDs0ofWbpikI8tKoeKuuSgYcIb6eEZJk90Nt5HkkXn6nkWOs/kp2FdhpoGJyTILOVsDgdm7eutnLA==} + '@aws-sdk/client-s3@3.758.0': + resolution: {integrity: sha512-f8SlhU9/93OC/WEI6xVJf/x/GoQFj9a/xXK6QCtr5fvCjfSLgMVFmKTiIl/tgtDRzxUDc8YS6EGtbHjJ3Y/atg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/client-sso@3.758.0': + resolution: {integrity: sha512-BoGO6IIWrLyLxQG6txJw6RT2urmbtlwfggapNCrNPyYjlXpzTSJhBYjndg7TpDATFd0SXL0zm8y/tXsUXNkdYQ==} engines: {node: '>=18.0.0'} '@aws-sdk/client-sso@3.817.0': resolution: {integrity: sha512-fCh5rUHmWmWDvw70NNoWpE5+BRdtNi45kDnIoeoszqVg7UKF79SlG+qYooUT52HKCgDNHqgbWaXxMOSqd2I/OQ==} engines: {node: '>=18.0.0'} + '@aws-sdk/core@3.758.0': + resolution: {integrity: sha512-0RswbdR9jt/XKemaLNuxi2gGr4xGlHyGxkTdhSQzCyUe9A9OPCoLl3rIESRguQEech+oJnbHk/wuiwHqTuP9sg==} + engines: {node: '>=18.0.0'} + '@aws-sdk/core@3.816.0': resolution: {integrity: sha512-Lx50wjtyarzKpMFV6V+gjbSZDgsA/71iyifbClGUSiNPoIQ4OCV0KVOmAAj7mQRVvGJqUMWKVM+WzK79CjbjWA==} engines: {node: '>=18.0.0'} @@ -188,30 +215,58 @@ packages: resolution: {integrity: sha512-+dzgWGmdmMNDdeSF+VvONN+hwqoGKX5A6Z3+siMO4CIoKWN7u5nDOx/JLjTGdVQji3522pJjJ+o9veQJNWOMRg==} engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-env@3.758.0': + resolution: {integrity: sha512-N27eFoRrO6MeUNumtNHDW9WOiwfd59LPXPqDrIa3kWL/s+fOKFHb9xIcF++bAwtcZnAxKkgpDCUP+INNZskE+w==} + engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-env@3.816.0': resolution: {integrity: sha512-wUJZwRLe+SxPxRV9AENYBLrJZRrNIo+fva7ZzejsC83iz7hdfq6Rv6B/aHEdPwG/nQC4+q7UUvcRPlomyrpsBA==} engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-http@3.758.0': + resolution: {integrity: sha512-Xt9/U8qUCiw1hihztWkNeIR+arg6P+yda10OuCHX6kFVx3auTlU7+hCqs3UxqniGU4dguHuftf3mRpi5/GJ33Q==} + engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-http@3.816.0': resolution: {integrity: sha512-gcWGzMQ7yRIF+ljTkR8Vzp7727UY6cmeaPrFQrvcFB8PhOqWpf7g0JsgOf5BSaP8CkkSQcTQHc0C5ZYAzUFwPg==} engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-ini@3.758.0': + resolution: {integrity: sha512-cymSKMcP5d+OsgetoIZ5QCe1wnp2Q/tq+uIxVdh9MbfdBBEnl9Ecq6dH6VlYS89sp4QKuxHxkWXVnbXU3Q19Aw==} + engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-ini@3.817.0': resolution: {integrity: sha512-kyEwbQyuXE+phWVzloMdkFv6qM6NOon+asMXY5W0fhDKwBz9zQLObDRWBrvQX9lmqq8BbDL1sCfZjOh82Y+RFw==} engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-node@3.758.0': + resolution: {integrity: sha512-+DaMv63wiq7pJrhIQzZYMn4hSarKiizDoJRvyR7WGhnn0oQ/getX9Z0VNCV3i7lIFoLNTb7WMmQ9k7+z/uD5EQ==} + engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-node@3.817.0': resolution: {integrity: sha512-b5mz7av0Lhavs1Bz3Zb+jrs0Pki93+8XNctnVO0drBW98x1fM4AR38cWvGbM/w9F9Q0/WEH3TinkmrMPrP4T/w==} engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-process@3.758.0': + resolution: {integrity: sha512-AzcY74QTPqcbXWVgjpPZ3HOmxQZYPROIBz2YINF0OQk0MhezDWV/O7Xec+K1+MPGQO3qS6EDrUUlnPLjsqieHA==} + engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-process@3.816.0': resolution: {integrity: sha512-9Tm+AxMoV2Izvl5b9tyMQRbBwaex8JP06HN7ZeCXgC5sAsSN+o8dsThnEhf8jKN+uBpT6CLWKN1TXuUMrAmW1A==} engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-sso@3.758.0': + resolution: {integrity: sha512-x0FYJqcOLUCv8GLLFDYMXRAQKGjoM+L0BG4BiHYZRDf24yQWFCAZsCQAYKo6XZYh2qznbsW6f//qpyJ5b0QVKQ==} + engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-sso@3.817.0': resolution: {integrity: sha512-gFUAW3VmGvdnueK1bh6TOcRX+j99Xm0men1+gz3cA4RE+rZGNy1Qjj8YHlv0hPwI9OnTPZquvPzA5fkviGREWg==} engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-web-identity@3.758.0': + resolution: {integrity: sha512-XGguXhBqiCXMXRxcfCAVPlMbm3VyJTou79r/3mxWddHWF0XbhaQiBIbUz6vobVTD25YQRbWSmSch7VA8kI5Lrw==} + engines: {node: '>=18.0.0'} + '@aws-sdk/credential-provider-web-identity@3.817.0': resolution: {integrity: sha512-A2kgkS9g6NY0OMT2f2EdXHpL17Ym81NhbGnQ8bRXPqESIi7TFypFD2U6osB2VnsFv+MhwM+Ke4PKXSmLun22/A==} engines: {node: '>=18.0.0'} @@ -220,81 +275,129 @@ packages: resolution: {integrity: sha512-i6Q2MyktWHG4YG+EmLlnXTgNVjW9/yeNHSKzF55GTho5fjqfU+t9beJfuMWclanRCifamm3N5e5OCm52rVDdTQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-bucket-endpoint@3.808.0': - resolution: {integrity: sha512-wEPlNcs8dir9lXbuviEGtSzYSxG/NRKQrJk5ybOc7OpPGHovsN+QhDOdY3lcjOFdwMTiMIG9foUkPz3zBpLB1A==} + '@aws-sdk/middleware-bucket-endpoint@3.734.0': + resolution: {integrity: sha512-etC7G18aF7KdZguW27GE/wpbrNmYLVT755EsFc8kXpZj8D6AFKxc7OuveinJmiy0bYXAMspJUWsF6CrGpOw6CQ==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-expect-continue@3.734.0': + resolution: {integrity: sha512-P38/v1l6HjuB2aFUewt7ueAW5IvKkFcv5dalPtbMGRhLeyivBOHwbCyuRKgVs7z7ClTpu9EaViEGki2jEQqEsQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-expect-continue@3.804.0': - resolution: {integrity: sha512-YW1hySBolALMII6C8y7Z0CRG2UX1dGJjLEBNFeefhO/xP7ZuE1dvnmfJGaEuBMnvc3wkRS63VZ3aqX6sevM1CA==} + '@aws-sdk/middleware-flexible-checksums@3.758.0': + resolution: {integrity: sha512-o8Rk71S08YTKLoSobucjnbj97OCGaXgpEDNKXpXaavUM5xLNoHCLSUPRCiEN86Ivqxg1n17Y2nSRhfbsveOXXA==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-flexible-checksums@3.816.0': - resolution: {integrity: sha512-kftcwDxB/VoCBsUiRgkm5CIuKbTfCN1WLPbis9LRwX3kQhKgGVxG2gG78SHk4TBB0qviWVAd/t+i/KaUgwiAcA==} + '@aws-sdk/middleware-host-header@3.734.0': + resolution: {integrity: sha512-LW7RRgSOHHBzWZnigNsDIzu3AiwtjeI2X66v+Wn1P1u+eXssy1+up4ZY/h+t2sU4LU36UvEf+jrZti9c6vRnFw==} engines: {node: '>=18.0.0'} '@aws-sdk/middleware-host-header@3.804.0': resolution: {integrity: sha512-bum1hLVBrn2lJCi423Z2fMUYtsbkGI2s4N+2RI2WSjvbaVyMSv/WcejIrjkqiiMR+2Y7m5exgoKeg4/TODLDPQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-location-constraint@3.804.0': - resolution: {integrity: sha512-AMtKnllIWKgoo7hiJfphLYotEwTERfjVMO2+cKAncz9w1g+bnYhHxiVhJJoR94y047c06X4PU5MsTxvdQ73Znw==} + '@aws-sdk/middleware-location-constraint@3.734.0': + resolution: {integrity: sha512-EJEIXwCQhto/cBfHdm3ZOeLxd2NlJD+X2F+ZTOxzokuhBtY0IONfC/91hOo5tWQweerojwshSMHRCKzRv1tlwg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-logger@3.734.0': + resolution: {integrity: sha512-mUMFITpJUW3LcKvFok176eI5zXAUomVtahb9IQBwLzkqFYOrMJvWAvoV4yuxrJ8TlQBG8gyEnkb9SnhZvjg67w==} engines: {node: '>=18.0.0'} '@aws-sdk/middleware-logger@3.804.0': resolution: {integrity: sha512-w/qLwL3iq0KOPQNat0Kb7sKndl9BtceigINwBU7SpkYWX9L/Lem6f8NPEKrC9Tl4wDBht3Yztub4oRTy/horJA==} engines: {node: '>=18.0.0'} + '@aws-sdk/middleware-recursion-detection@3.734.0': + resolution: {integrity: sha512-CUat2d9ITsFc2XsmeiRQO96iWpxSKYFjxvj27Hc7vo87YUHRnfMfnc8jw1EpxEwMcvBD7LsRa6vDNky6AjcrFA==} + engines: {node: '>=18.0.0'} + '@aws-sdk/middleware-recursion-detection@3.804.0': resolution: {integrity: sha512-zqHOrvLRdsUdN/ehYfZ9Tf8svhbiLLz5VaWUz22YndFv6m9qaAcijkpAOlKexsv3nLBMJdSdJ6GUTAeIy3BZzw==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-sdk-s3@3.816.0': - resolution: {integrity: sha512-jJ+EAXM7gnOwiCM6rrl4AUNY5urmtIsX7roTkxtb4DevJxcS+wFYRRg3/j33fQbuxQZrvk21HqxyZYx5UH70PA==} + '@aws-sdk/middleware-sdk-s3@3.758.0': + resolution: {integrity: sha512-6mJ2zyyHPYSV6bAcaFpsdoXZJeQlR1QgBnZZ6juY/+dcYiuyWCdyLUbGzSZSE7GTfx6i+9+QWFeoIMlWKgU63A==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-ssec@3.734.0': + resolution: {integrity: sha512-d4yd1RrPW/sspEXizq2NSOUivnheac6LPeLSLnaeTbBG9g1KqIqvCzP1TfXEqv2CrWfHEsWtJpX7oyjySSPvDQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-ssec@3.804.0': - resolution: {integrity: sha512-Tk8jK0gOIUBvEPTz/wwSlP1V70zVQ3QYqsLPAjQRMO6zfOK9ax31dln3MgKvFDJxBydS2tS3wsn53v+brxDxTA==} + '@aws-sdk/middleware-user-agent@3.758.0': + resolution: {integrity: sha512-iNyehQXtQlj69JCgfaOssgZD4HeYGOwxcaKeG6F+40cwBjTAi0+Ph1yfDwqk2qiBPIRWJ/9l2LodZbxiBqgrwg==} engines: {node: '>=18.0.0'} '@aws-sdk/middleware-user-agent@3.816.0': resolution: {integrity: sha512-bHRSlWZ0xDsFR8E2FwDb//0Ff6wMkVx4O+UKsfyNlAbtqCiiHRt5ANNfKPafr95cN2CCxLxiPvFTFVblQM5TsQ==} engines: {node: '>=18.0.0'} + '@aws-sdk/nested-clients@3.758.0': + resolution: {integrity: sha512-YZ5s7PSvyF3Mt2h1EQulCG93uybprNGbBkPmVuy/HMMfbFTt4iL3SbKjxqvOZelm86epFfj7pvK7FliI2WOEcg==} + engines: {node: '>=18.0.0'} + '@aws-sdk/nested-clients@3.817.0': resolution: {integrity: sha512-vQ2E06A48STJFssueJQgxYD8lh1iGJoLJnHdshRDWOQb8gy1wVQR+a7MkPGhGR6lGoS0SCnF/Qp6CZhnwLsqsQ==} engines: {node: '>=18.0.0'} + '@aws-sdk/region-config-resolver@3.734.0': + resolution: {integrity: sha512-Lvj1kPRC5IuJBr9DyJ9T9/plkh+EfKLy+12s/mykOy1JaKHDpvj+XGy2YO6YgYVOb8JFtaqloid+5COtje4JTQ==} + engines: {node: '>=18.0.0'} + '@aws-sdk/region-config-resolver@3.808.0': resolution: {integrity: sha512-9x2QWfphkARZY5OGkl9dJxZlSlYM2l5inFeo2bKntGuwg4A4YUe5h7d5yJ6sZbam9h43eBrkOdumx03DAkQF9A==} engines: {node: '>=18.0.0'} - '@aws-sdk/signature-v4-multi-region@3.816.0': - resolution: {integrity: sha512-idcr9NW86sSIXASSej3423Selu6fxlhhJJtMgpAqoCH/HJh1eQrONJwNKuI9huiruPE8+02pwxuePvLW46X2mw==} + '@aws-sdk/signature-v4-multi-region@3.758.0': + resolution: {integrity: sha512-0RPCo8fYJcrenJ6bRtiUbFOSgQ1CX/GpvwtLU2Fam1tS9h2klKK8d74caeV6A1mIUvBU7bhyQ0wMGlwMtn3EYw==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/token-providers@3.758.0': + resolution: {integrity: sha512-ckptN1tNrIfQUaGWm/ayW1ddG+imbKN7HHhjFdS4VfItsP0QQOB0+Ov+tpgb4MoNR4JaUghMIVStjIeHN2ks1w==} engines: {node: '>=18.0.0'} '@aws-sdk/token-providers@3.817.0': resolution: {integrity: sha512-CYN4/UO0VaqyHf46ogZzNrVX7jI3/CfiuktwKlwtpKA6hjf2+ivfgHSKzPpgPBcSEfiibA/26EeLuMnB6cpSrQ==} engines: {node: '>=18.0.0'} + '@aws-sdk/types@3.734.0': + resolution: {integrity: sha512-o11tSPTT70nAkGV1fN9wm/hAIiLPyWX6SuGf+9JyTp7S/rC2cFWhR26MvA69nplcjNaXVzB0f+QFrLXXjOqCrg==} + engines: {node: '>=18.0.0'} + '@aws-sdk/types@3.804.0': resolution: {integrity: sha512-A9qnsy9zQ8G89vrPPlNG9d1d8QcKRGqJKqwyGgS0dclJpwy6d1EWgQLIolKPl6vcFpLoe6avLOLxr+h8ur5wpg==} engines: {node: '>=18.0.0'} - '@aws-sdk/util-arn-parser@3.804.0': - resolution: {integrity: sha512-wmBJqn1DRXnZu3b4EkE6CWnoWMo1ZMvlfkqU5zPz67xx1GMaXlDCchFvKAXMjk4jn/L1O3tKnoFDNsoLV1kgNQ==} + '@aws-sdk/util-arn-parser@3.723.0': + resolution: {integrity: sha512-ZhEfvUwNliOQROcAk34WJWVYTlTa4694kSVhDSjW6lE1bMataPnIN8A0ycukEzBXmd8ZSoBcQLn6lKGl7XIJ5w==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/util-endpoints@3.743.0': + resolution: {integrity: sha512-sN1l559zrixeh5x+pttrnd0A3+r34r0tmPkJ/eaaMaAzXqsmKU/xYre9K3FNnsSS1J1k4PEfk/nHDTVUgFYjnw==} engines: {node: '>=18.0.0'} '@aws-sdk/util-endpoints@3.808.0': resolution: {integrity: sha512-N6Lic98uc4ADB7fLWlzx+1uVnq04VgVjngZvwHoujcRg9YDhIg9dUDiTzD5VZv13g1BrPYmvYP1HhsildpGV6w==} engines: {node: '>=18.0.0'} - '@aws-sdk/util-locate-window@3.804.0': - resolution: {integrity: sha512-zVoRfpmBVPodYlnMjgVjfGoEZagyRF5IPn3Uo6ZvOZp24chnW/FRstH7ESDHDDRga4z3V+ElUQHKpFDXWyBW5A==} + '@aws-sdk/util-locate-window@3.723.0': + resolution: {integrity: sha512-Yf2CS10BqK688DRsrKI/EO6B8ff5J86NXe4C+VCysK7UOgN0l1zOTeTukZ3H8Q9tYYX3oaF1961o8vRkFm7Nmw==} engines: {node: '>=18.0.0'} + '@aws-sdk/util-user-agent-browser@3.734.0': + resolution: {integrity: sha512-xQTCus6Q9LwUuALW+S76OL0jcWtMOVu14q+GoLnWPUM7QeUw963oQcLhF7oq0CtaLLKyl4GOUfcwc773Zmwwng==} + '@aws-sdk/util-user-agent-browser@3.804.0': resolution: {integrity: sha512-KfW6T6nQHHM/vZBBdGn6fMyG/MgX5lq82TDdX4HRQRRuHKLgBWGpKXqqvBwqIaCdXwWHgDrg2VQups6GqOWW2A==} + '@aws-sdk/util-user-agent-node@3.758.0': + resolution: {integrity: sha512-A5EZw85V6WhoKMV2hbuFRvb9NPlxEErb4HPO6/SPXYY4QrjprIzScHxikqcWv1w4J3apB1wto9LPU3IMsYtfrw==} + engines: {node: '>=18.0.0'} + peerDependencies: + aws-crt: '>=1.0.0' + peerDependenciesMeta: + aws-crt: + optional: true + '@aws-sdk/util-user-agent-node@3.816.0': resolution: {integrity: sha512-Q6dxmuj4hL7pudhrneWEQ7yVHIQRBFr0wqKLF1opwOi1cIePuoEbPyJ2jkel6PDEv1YMfvsAKaRshp6eNA8VHg==} engines: {node: '>=18.0.0'} @@ -304,62 +407,62 @@ packages: aws-crt: optional: true - '@aws-sdk/xml-builder@3.804.0': - resolution: {integrity: sha512-JbGWp36IG9dgxtvC6+YXwt5WDZYfuamWFtVfK6fQpnmL96dx+GUPOXPKRWdw67WLKf2comHY28iX2d3z35I53Q==} + '@aws-sdk/xml-builder@3.734.0': + resolution: {integrity: sha512-Zrjxi5qwGEcUsJ0ru7fRtW74WcTS0rbLcehoFB+rN1GRi2hbLcFaYs4PwVA5diLeAJH0gszv3x4Hr/S87MfbKQ==} engines: {node: '>=18.0.0'} - '@babel/code-frame@7.27.1': - resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} + '@babel/code-frame@7.26.2': + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.27.3': - resolution: {integrity: sha512-V42wFfx1ymFte+ecf6iXghnnP8kWTO+ZLXIyZq+1LAXHHvTZdVxicn4yiVYdYMGaCO3tmqub11AorKkv+iodqw==} + '@babel/compat-data@7.26.8': + resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==} engines: {node: '>=6.9.0'} - '@babel/core@7.27.3': - resolution: {integrity: sha512-hyrN8ivxfvJ4i0fIJuV4EOlV0WDMz5Ui4StRTgVaAvWeiRCilXgwVvxJKtFQ3TKtHgJscB2YiXKGNJuVwhQMtA==} + '@babel/core@7.26.10': + resolution: {integrity: sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==} engines: {node: '>=6.9.0'} - '@babel/generator@7.27.3': - resolution: {integrity: sha512-xnlJYj5zepml8NXtjkG0WquFUv8RskFqyFcVgTBp5k+NaA/8uw/K+OSVf8AMGw5e9HKP2ETd5xpK5MLZQD6b4Q==} + '@babel/generator@7.26.10': + resolution: {integrity: sha512-rRHT8siFIXQrAYOYqZQVsAr8vJ+cBNqcVAY6m5V8/4QqzaPl+zDBe6cLEPRDuNOUf3ww8RfJVlOyQMoSI+5Ang==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.27.2': - resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} + '@babel/helper-compilation-targets@7.26.5': + resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.27.1': - resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} + '@babel/helper-module-imports@7.25.9': + resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.27.3': - resolution: {integrity: sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==} + '@babel/helper-module-transforms@7.26.0': + resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-plugin-utils@7.27.1': - resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} + '@babel/helper-plugin-utils@7.26.5': + resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.27.1': - resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + '@babel/helper-string-parser@7.25.9': + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.27.1': - resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} + '@babel/helper-validator-identifier@7.25.9': + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.27.1': - resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} + '@babel/helper-validator-option@7.25.9': + resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.27.3': - resolution: {integrity: sha512-h/eKy9agOya1IGuLaZ9tEUgz+uIRXcbtOhRtUyyMf8JFmn1iT13vnl/IGVWSkdOCG/pC57U4S1jnAabAavTMwg==} + '@babel/helpers@7.26.10': + resolution: {integrity: sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g==} engines: {node: '>=6.9.0'} - '@babel/parser@7.27.3': - resolution: {integrity: sha512-xyYxRj6+tLNDTWi0KCBcZ9V7yg3/lwL9DWh9Uwh/RIVlIfFidggcgxKX3GCXwCiswwcGRawBKbEg2LG/Y8eJhw==} + '@babel/parser@7.26.10': + resolution: {integrity: sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA==} engines: {node: '>=6.0.0'} hasBin: true @@ -384,8 +487,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-attributes@7.27.1': - resolution: {integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==} + '@babel/plugin-syntax-import-attributes@7.26.0': + resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -400,8 +503,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.27.1': - resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} + '@babel/plugin-syntax-jsx@7.25.9': + resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -448,22 +551,22 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-typescript@7.27.1': - resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==} + '@babel/plugin-syntax-typescript@7.25.9': + resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/template@7.27.2': - resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} + '@babel/template@7.26.9': + resolution: {integrity: sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.27.3': - resolution: {integrity: sha512-lId/IfN/Ye1CIu8xG7oKBHXd2iNb2aW1ilPszzGcJug6M8RCKfVNcYhpI5+bMvFYjK7lXIM0R+a+6r8xhHp2FQ==} + '@babel/traverse@7.26.10': + resolution: {integrity: sha512-k8NuDrxr0WrPH5Aupqb2LCVURP/S0vBEn5mK6iH+GIYob66U5EtoZvcdudR2jQ4cmTwhEwW1DLB+Yyas9zjF6A==} engines: {node: '>=6.9.0'} - '@babel/types@7.27.3': - resolution: {integrity: sha512-Y1GkI4ktrtvmawoSq+4FCVHNryea6uR+qUQy0AGxLSsjCX0nVmkYQMBLHDkXZuo5hGx7eYdnIaslsdBFm7zbUw==} + '@babel/types@7.26.10': + resolution: {integrity: sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==} engines: {node: '>=6.9.0'} '@bcoe/v8-coverage@0.2.3': @@ -570,8 +673,12 @@ packages: resolution: {integrity: sha512-dyfq7yn0wO0IYeYOs3z79I6/HumhmKISzFL0Z+007zQJMtAFGtt3AEoq1nuLXtcunUE5YYYQqgKvybXukAK8/w==} engines: {node: '>=16.11.0'} - '@eslint-community/eslint-utils@4.7.0': - resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} + '@discordjs/ws@2.0.2': + resolution: {integrity: sha512-p/9/H1uCs8GTV5Eq693/WM+3MOMNsU4uDlu1oQCJfj/Svl0DEsQFnGCh+GXTo5hPVHQHwVeFUlDSYOF4xPp3sg==} + engines: {node: '>=20'} + + '@eslint-community/eslint-utils@4.5.1': + resolution: {integrity: sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 @@ -580,43 +687,43 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.20.0': - resolution: {integrity: sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==} + '@eslint/config-array@0.19.2': + resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/config-helpers@0.2.2': - resolution: {integrity: sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg==} + '@eslint/config-helpers@0.1.0': + resolution: {integrity: sha512-kLrdPDJE1ckPo94kmPPf9Hfd0DU0Jw6oKYrhe+pwSC0iTUInmTa+w6fw8sGgcfkFJGNdWOUeOaDM4quW4a7OkA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.14.0': - resolution: {integrity: sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==} + '@eslint/core@0.12.0': + resolution: {integrity: sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/eslintrc@3.3.1': - resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} + '@eslint/eslintrc@3.3.0': + resolution: {integrity: sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.27.0': - resolution: {integrity: sha512-G5JD9Tu5HJEu4z2Uo4aHY2sLV64B7CDMXxFzqzjl3NKd6RVzSXNoE80jk7Y0lJkTTkjiIhBAqmlYwjuBY3tvpA==} + '@eslint/js@9.22.0': + resolution: {integrity: sha512-vLFajx9o8d1/oL2ZkpMYbkLv8nDB6yaIwFNt7nI4+I80U/z03SxmfOMsLbvWr3p7C+Wnoh//aOu2pQW8cS0HCQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.6': resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.3.1': - resolution: {integrity: sha512-0J+zgWxHN+xXONWIyPWKFMgVuJoZuGiIFu8yxk7RJjxkzpGmyja5wRFqZIVtjDVOQpV+Rw0iOAjYPE2eQyjr0w==} + '@eslint/plugin-kit@0.2.7': + resolution: {integrity: sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@grammyjs/types@3.20.0': - resolution: {integrity: sha512-KIoikN5VTj6dcJpzMwXtouzaN3BZJ4jihBuEeXzWr25HtEfCF25V3dN11u+uNYi/9sBDvs0KCKZhyN/xFY0MBg==} + '@grammyjs/types@3.19.0': + resolution: {integrity: sha512-N0MS+RJG+AGSNuka1GWVj88oyK1oti4I0eQq6jGo4hic3P9MwFfnHjGQuIExZ3tlJUrZYwC/T7gk4Tu3+guJyg==} - '@grpc/grpc-js@1.13.4': - resolution: {integrity: sha512-GsFaMXCkMqkKIvwCQjCrwH+GHbPKBjhwo/8ZuUkWHqbI73Kky9I+pQltrlT0+MWpedCoosda53lgjYfyEPgxBg==} + '@grpc/grpc-js@1.13.0': + resolution: {integrity: sha512-pMuxInZjUnUkgMT2QLZclRqwk2ykJbIU05aZgPgJYXEpN9+2I7z7aNwcjWZSycRPl232FfhPszyBFJyOxTHNog==} engines: {node: '>=12.10.0'} - '@grpc/proto-loader@0.7.15': - resolution: {integrity: sha512-tMXdRCfYVixjuFK+Hk0Q1s38gV9zDiDJfWL3h1rv4Qc39oILCu1TRTDt7+fGUI8K4G1Fj125Hx/ru3azECWTyQ==} + '@grpc/proto-loader@0.7.13': + resolution: {integrity: sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==} engines: {node: '>=6'} hasBin: true @@ -642,8 +749,8 @@ packages: resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} engines: {node: '>=18.18'} - '@humanwhocodes/retry@0.4.3': - resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} + '@humanwhocodes/retry@0.4.2': + resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==} engines: {node: '>=18.18'} '@ioredis/commands@1.2.0': @@ -762,12 +869,15 @@ packages: peerDependencies: tslib: '2' - '@jsonjoy.com/util@1.6.0': - resolution: {integrity: sha512-sw/RMbehRhN68WRtcKCpQOPfnH6lLP4GJfqzi3iYej8tnzpZUDr6UkZYJjcjjC0FWEJOJbyM3PTIwxucUmDG2A==} + '@jsonjoy.com/util@1.5.0': + resolution: {integrity: sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' + '@mongodb-js/saslprep@1.2.0': + resolution: {integrity: sha512-+ywrb0AqkfaYuhHs6LxKWgqbh3I72EpEgESCw37o+9qPx9WTCkgDm2B+eMrwehGtHBWHFU4GXvnSCNiFhhausg==} + '@mongodb-js/saslprep@1.2.2': resolution: {integrity: sha512-EB0O3SCSNRUFk66iRCpI+cXzIjdswfCs7F6nOC3RAGJ7xr5YhaicvsRwJ9eyzYvYRlCSDUO/c7g4yNulxKC1WA==} @@ -783,8 +893,8 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@pkgr/core@0.2.4': - resolution: {integrity: sha512-ROFF39F6ZrnzSUEmQQZUar0Jt4xVoP9WnDRdWwF4NNcXs3xBTLgBUDoOwW141y1jP+S8nahIbdxbFC7IShw9Iw==} + '@pkgr/core@0.1.1': + resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} '@protobufjs/aspromise@1.1.2': @@ -847,6 +957,10 @@ packages: '@sinonjs/fake-timers@10.3.0': resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + '@smithy/abort-controller@4.0.1': + resolution: {integrity: sha512-fiUIYgIgRjMWznk6iLJz35K2YxSLHzLBA/RC6lBrKfQ8fHbPfvk7Pk9UvpKoHgJjI18MnbPuEju53zcVy6KF1g==} + engines: {node: '>=18.0.0'} + '@smithy/abort-controller@4.0.3': resolution: {integrity: sha512-AqXFf6DXnuRBXy4SoK/n1mfgHaKaq36bmkphmD1KO0nHq6xK/g9KHSW4HEsPQUBCGdIEfuJifGHwxFXPIFay9Q==} engines: {node: '>=18.0.0'} @@ -859,52 +973,76 @@ packages: resolution: {integrity: sha512-+sKqDBQqb036hh4NPaUiEkYFkTUGYzRsn3EuFhyfQfMy6oGHEUJDurLP9Ufb5dasr/XiAmPNMr6wa9afjQB+Gw==} engines: {node: '>=18.0.0'} + '@smithy/config-resolver@4.0.1': + resolution: {integrity: sha512-Igfg8lKu3dRVkTSEm98QpZUvKEOa71jDX4vKRcvJVyRc3UgN3j7vFMf0s7xLQhYmKa8kyJGQgUJDOV5V3neVlQ==} + engines: {node: '>=18.0.0'} + '@smithy/config-resolver@4.1.3': resolution: {integrity: sha512-N5e7ofiyYDmHxnPnqF8L4KtsbSDwyxFRfDK9bp1d9OyPO4ytRLd0/XxCqi5xVaaqB65v4woW8uey6jND6zxzxQ==} engines: {node: '>=18.0.0'} + '@smithy/core@3.1.5': + resolution: {integrity: sha512-HLclGWPkCsekQgsyzxLhCQLa8THWXtB5PxyYN+2O6nkyLt550KQKTlbV2D1/j5dNIQapAZM1+qFnpBFxZQkgCA==} + engines: {node: '>=18.0.0'} + '@smithy/core@3.4.0': resolution: {integrity: sha512-dDYISQo7k0Ml/rXlFIjkTmTcQze/LxhtIRAEmZ6HJ/EI0inVxVEVnrUXJ7jPx6ZP0GHUhFm40iQcCgS5apXIXA==} engines: {node: '>=18.0.0'} + '@smithy/credential-provider-imds@4.0.1': + resolution: {integrity: sha512-l/qdInaDq1Zpznpmev/+52QomsJNZ3JkTl5yrTl02V6NBgJOQ4LY0SFw/8zsMwj3tLe8vqiIuwF6nxaEwgf6mg==} + engines: {node: '>=18.0.0'} + '@smithy/credential-provider-imds@4.0.5': resolution: {integrity: sha512-saEAGwrIlkb9XxX/m5S5hOtzjoJPEK6Qw2f9pYTbIsMPOFyGSXBBTw95WbOyru8A1vIS2jVCCU1Qhz50QWG3IA==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-codec@4.0.3': - resolution: {integrity: sha512-V22KIPXZsE2mc4zEgYGANM/7UbL9jWlOACEolyGyMuTY+jjHJ2PQ0FdopOTS1CS7u6PlAkALmypkv2oQ4aftcg==} + '@smithy/eventstream-codec@4.0.1': + resolution: {integrity: sha512-Q2bCAAR6zXNVtJgifsU16ZjKGqdw/DyecKNgIgi7dlqw04fqDu0mnq+JmGphqheypVc64CYq3azSuCpAdFk2+A==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-serde-browser@4.0.1': + resolution: {integrity: sha512-HbIybmz5rhNg+zxKiyVAnvdM3vkzjE6ccrJ620iPL8IXcJEntd3hnBl+ktMwIy12Te/kyrSbUb8UCdnUT4QEdA==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-browser@4.0.3': - resolution: {integrity: sha512-oe1d/tfCGVZBMX8O6HApaM4G+fF9JNdyLP7tWXt00epuL/kLOdp/4o9VqheLFeJaXgao+9IaBgs/q/oM48hxzg==} + '@smithy/eventstream-serde-config-resolver@4.0.1': + resolution: {integrity: sha512-lSipaiq3rmHguHa3QFF4YcCM3VJOrY9oq2sow3qlhFY+nBSTF/nrO82MUQRPrxHQXA58J5G1UnU2WuJfi465BA==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-config-resolver@4.1.1': - resolution: {integrity: sha512-XXCPGjRNwpFWHKQJMKIjGLfFKYULYckFnxGcWmBC2mBf3NsrvUKgqHax4NCqc0TfbDAimPDHOc6HOKtzsXK9Gw==} + '@smithy/eventstream-serde-node@4.0.1': + resolution: {integrity: sha512-o4CoOI6oYGYJ4zXo34U8X9szDe3oGjmHgsMGiZM0j4vtNoT+h80TLnkUcrLZR3+E6HIxqW+G+9WHAVfl0GXK0Q==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-node@4.0.3': - resolution: {integrity: sha512-HOEbRmm9TrikCoFrypYu0J/gC4Lsk8gl5LtOz1G3laD2Jy44+ht2Pd2E9qjNQfhMJIzKDZ/gbuUH0s0v4kWQ0A==} + '@smithy/eventstream-serde-universal@4.0.1': + resolution: {integrity: sha512-Z94uZp0tGJuxds3iEAZBqGU2QiaBHP4YytLUjwZWx+oUeohCsLyUm33yp4MMBmhkuPqSbQCXq5hDet6JGUgHWA==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-universal@4.0.3': - resolution: {integrity: sha512-ShOP512CZrYI9n+h64PJ84udzoNHUQtPddyh1j175KNTKsSnMEDNscOWJWyEoLQiuhWWw51lSa+k6ea9ZGXcRg==} + '@smithy/fetch-http-handler@5.0.1': + resolution: {integrity: sha512-3aS+fP28urrMW2KTjb6z9iFow6jO8n3MFfineGbndvzGZit3taZhKWtTorf+Gp5RpFDDafeHlhfsGlDCXvUnJA==} engines: {node: '>=18.0.0'} '@smithy/fetch-http-handler@5.0.3': resolution: {integrity: sha512-yBZwavI31roqTndNI7ONHqesfH01JmjJK6L3uUpZAhyAmr86LN5QiPzfyZGIxQmed8VEK2NRSQT3/JX5V1njfQ==} engines: {node: '>=18.0.0'} - '@smithy/hash-blob-browser@4.0.3': - resolution: {integrity: sha512-37wZYU/XI2cOF4hgNDNMzZNAuNtJTkZFWxcpagQrnf6PYU/6sJ6y5Ey9Bp4vzi9nteex/ImxAugfsF3XGLrqWA==} + '@smithy/hash-blob-browser@4.0.1': + resolution: {integrity: sha512-rkFIrQOKZGS6i1D3gKJ8skJ0RlXqDvb1IyAphksaFOMzkn3v3I1eJ8m7OkLj0jf1McP63rcCEoLlkAn/HjcTRw==} + engines: {node: '>=18.0.0'} + + '@smithy/hash-node@4.0.1': + resolution: {integrity: sha512-TJ6oZS+3r2Xu4emVse1YPB3Dq3d8RkZDKcPr71Nj/lJsdAP1c7oFzYqEn1IBc915TsgLl2xIJNuxCz+gLbLE0w==} engines: {node: '>=18.0.0'} '@smithy/hash-node@4.0.3': resolution: {integrity: sha512-W5Uhy6v/aYrgtjh9y0YP332gIQcwccQ+EcfWhllL0B9rPae42JngTTUpb8W6wuxaNFzqps4xq5klHckSSOy5fw==} engines: {node: '>=18.0.0'} - '@smithy/hash-stream-node@4.0.3': - resolution: {integrity: sha512-CAwAvztwGYHHZGGcXtbinNxytaj5FNZChz8V+o7eNUAi5BgVqnF91Z3cJSmaE9O7FYUQVrIzGAB25Aok9T5KHQ==} + '@smithy/hash-stream-node@4.0.1': + resolution: {integrity: sha512-U1rAE1fxmReCIr6D2o/4ROqAQX+GffZpyMt3d7njtGDr2pUNmAKRWa49gsNVhCh2vVAuf3wXzWwNr2YN8PAXIw==} + engines: {node: '>=18.0.0'} + + '@smithy/invalid-dependency@4.0.1': + resolution: {integrity: sha512-gdudFPf4QRQ5pzj7HEnu6FhKRi61BfH/Gk5Yf6O0KiSbr1LlVhgjThcvjdu658VE6Nve8vaIWB8/fodmS1rBPQ==} engines: {node: '>=18.0.0'} '@smithy/invalid-dependency@4.0.3': @@ -919,74 +1057,142 @@ packages: resolution: {integrity: sha512-saYhF8ZZNoJDTvJBEWgeBccCg+yvp1CX+ed12yORU3NilJScfc6gfch2oVb4QgxZrGUx3/ZJlb+c/dJbyupxlw==} engines: {node: '>=18.0.0'} - '@smithy/md5-js@4.0.3': - resolution: {integrity: sha512-m95Z+1UJFPq4cv/R6TPMLYkoau7cNJYA5GLuuUJjfmF+Zrad4yaupIWeGGzIinf8pD1L+CIAxjh8eowPvyL7Dw==} + '@smithy/md5-js@4.0.1': + resolution: {integrity: sha512-HLZ647L27APi6zXkZlzSFZIjpo8po45YiyjMGJZM3gyDY8n7dPGdmxIIljLm4gPt/7rRvutLTTkYJpZVfG5r+A==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-content-length@4.0.1': + resolution: {integrity: sha512-OGXo7w5EkB5pPiac7KNzVtfCW2vKBTZNuCctn++TTSOMpe6RZO/n6WEC1AxJINn3+vWLKW49uad3lo/u0WJ9oQ==} engines: {node: '>=18.0.0'} '@smithy/middleware-content-length@4.0.3': resolution: {integrity: sha512-NE/Zph4BP5u16bzYq2csq9qD0T6UBLeg4AuNrwNJ7Gv9uLYaGEgelZUOdRndGdMGcUfSGvNlXGb2aA2hPCwJ6g==} engines: {node: '>=18.0.0'} + '@smithy/middleware-endpoint@4.0.6': + resolution: {integrity: sha512-ftpmkTHIFqgaFugcjzLZv3kzPEFsBFSnq1JsIkr2mwFzCraZVhQk2gqN51OOeRxqhbPTkRFj39Qd2V91E/mQxg==} + engines: {node: '>=18.0.0'} + '@smithy/middleware-endpoint@4.1.7': resolution: {integrity: sha512-KDzM7Iajo6K7eIWNNtukykRT4eWwlHjCEsULZUaSfi/SRSBK8BPRqG5FsVfp58lUxcvre8GT8AIPIqndA0ERKw==} engines: {node: '>=18.0.0'} + '@smithy/middleware-retry@4.0.7': + resolution: {integrity: sha512-58j9XbUPLkqAcV1kHzVX/kAR16GT+j7DUZJqwzsxh1jtz7G82caZiGyyFgUvogVfNTg3TeAOIJepGc8TXF4AVQ==} + engines: {node: '>=18.0.0'} + '@smithy/middleware-retry@4.1.8': resolution: {integrity: sha512-e2OtQgFzzlSG0uCjcJmi02QuFSRTrpT11Eh2EcqqDFy7DYriteHZJkkf+4AsxsrGDugAtPFcWBz1aq06sSX5fQ==} engines: {node: '>=18.0.0'} + '@smithy/middleware-serde@4.0.2': + resolution: {integrity: sha512-Sdr5lOagCn5tt+zKsaW+U2/iwr6bI9p08wOkCp6/eL6iMbgdtc2R5Ety66rf87PeohR0ExI84Txz9GYv5ou3iQ==} + engines: {node: '>=18.0.0'} + '@smithy/middleware-serde@4.0.6': resolution: {integrity: sha512-YECyl7uNII+jCr/9qEmCu8xYL79cU0fqjo0qxpcVIU18dAPHam/iYwcknAu4Jiyw1uN+sAx7/SMf/Kmef/Jjsg==} engines: {node: '>=18.0.0'} + '@smithy/middleware-stack@4.0.1': + resolution: {integrity: sha512-dHwDmrtR/ln8UTHpaIavRSzeIk5+YZTBtLnKwDW3G2t6nAupCiQUvNzNoHBpik63fwUaJPtlnMzXbQrNFWssIA==} + engines: {node: '>=18.0.0'} + '@smithy/middleware-stack@4.0.3': resolution: {integrity: sha512-baeV7t4jQfQtFxBADFmnhmqBmqR38dNU5cvEgHcMK/Kp3D3bEI0CouoX2Sr/rGuntR+Eg0IjXdxnGGTc6SbIkw==} engines: {node: '>=18.0.0'} + '@smithy/node-config-provider@4.0.1': + resolution: {integrity: sha512-8mRTjvCtVET8+rxvmzRNRR0hH2JjV0DFOmwXPrISmTIJEfnCBugpYYGAsCj8t41qd+RB5gbheSQ/6aKZCQvFLQ==} + engines: {node: '>=18.0.0'} + '@smithy/node-config-provider@4.1.2': resolution: {integrity: sha512-SUvNup8iU1v7fmM8XPk+27m36udmGCfSz+VZP5Gb0aJ3Ne0X28K/25gnsrg3X1rWlhcnhzNUUysKW/Ied46ivQ==} engines: {node: '>=18.0.0'} + '@smithy/node-http-handler@4.0.3': + resolution: {integrity: sha512-dYCLeINNbYdvmMLtW0VdhW1biXt+PPCGazzT5ZjKw46mOtdgToQEwjqZSS9/EN8+tNs/RO0cEWG044+YZs97aA==} + engines: {node: '>=18.0.0'} + '@smithy/node-http-handler@4.0.5': resolution: {integrity: sha512-T7QglZC1vS7SPT44/1qSIAQEx5bFKb3LfO6zw/o4Xzt1eC5HNoH1TkS4lMYA9cWFbacUhx4hRl/blLun4EOCkg==} engines: {node: '>=18.0.0'} + '@smithy/property-provider@4.0.1': + resolution: {integrity: sha512-o+VRiwC2cgmk/WFV0jaETGOtX16VNPp2bSQEzu0whbReqE1BMqsP2ami2Vi3cbGVdKu1kq9gQkDAGKbt0WOHAQ==} + engines: {node: '>=18.0.0'} + '@smithy/property-provider@4.0.3': resolution: {integrity: sha512-Wcn17QNdawJZcZZPBuMuzyBENVi1AXl4TdE0jvzo4vWX2x5df/oMlmr/9M5XAAC6+yae4kWZlOYIsNsgDrMU9A==} engines: {node: '>=18.0.0'} + '@smithy/protocol-http@5.0.1': + resolution: {integrity: sha512-TE4cpj49jJNB/oHyh/cRVEgNZaoPaxd4vteJNB0yGidOCVR0jCw/hjPVsT8Q8FRmj8Bd3bFZt8Dh7xGCT+xMBQ==} + engines: {node: '>=18.0.0'} + '@smithy/protocol-http@5.1.1': resolution: {integrity: sha512-Vsay2mzq05DwNi9jK01yCFtfvu9HimmgC7a4HTs7lhX12Sx8aWsH0mfz6q/02yspSp+lOB+Q2HJwi4IV2GKz7A==} engines: {node: '>=18.0.0'} + '@smithy/querystring-builder@4.0.1': + resolution: {integrity: sha512-wU87iWZoCbcqrwszsOewEIuq+SU2mSoBE2CcsLwE0I19m0B2gOJr1MVjxWcDQYOzHbR1xCk7AcOBbGFUYOKvdg==} + engines: {node: '>=18.0.0'} + '@smithy/querystring-builder@4.0.3': resolution: {integrity: sha512-UUzIWMVfPmDZcOutk2/r1vURZqavvQW0OHvgsyNV0cKupChvqg+/NKPRMaMEe+i8tP96IthMFeZOZWpV+E4RAw==} engines: {node: '>=18.0.0'} + '@smithy/querystring-parser@4.0.1': + resolution: {integrity: sha512-Ma2XC7VS9aV77+clSFylVUnPZRindhB7BbmYiNOdr+CHt/kZNJoPP0cd3QxCnCFyPXC4eybmyE98phEHkqZ5Jw==} + engines: {node: '>=18.0.0'} + '@smithy/querystring-parser@4.0.3': resolution: {integrity: sha512-K5M4ZJQpFCblOJ5Oyw7diICpFg1qhhR47m2/5Ef1PhGE19RaIZf50tjYFrxa6usqcuXyTiFPGo4d1geZdH4YcQ==} engines: {node: '>=18.0.0'} + '@smithy/service-error-classification@4.0.1': + resolution: {integrity: sha512-3JNjBfOWpj/mYfjXJHB4Txc/7E4LVq32bwzE7m28GN79+M1f76XHflUaSUkhOriprPDzev9cX/M+dEB80DNDKA==} + engines: {node: '>=18.0.0'} + '@smithy/service-error-classification@4.0.4': resolution: {integrity: sha512-W5ScbQ1bTzgH91kNEE2CvOzM4gXlDOqdow4m8vMFSIXCel2scbHwjflpVNnC60Y3F1m5i7w2gQg9lSnR+JsJAA==} engines: {node: '>=18.0.0'} + '@smithy/shared-ini-file-loader@4.0.1': + resolution: {integrity: sha512-hC8F6qTBbuHRI/uqDgqqi6J0R4GtEZcgrZPhFQnMhfJs3MnUTGSnR1NSJCJs5VWlMydu0kJz15M640fJlRsIOw==} + engines: {node: '>=18.0.0'} + '@smithy/shared-ini-file-loader@4.0.3': resolution: {integrity: sha512-vHwlrqhZGIoLwaH8vvIjpHnloShqdJ7SUPNM2EQtEox+yEDFTVQ7E+DLZ+6OhnYEgFUwPByJyz6UZaOu2tny6A==} engines: {node: '>=18.0.0'} + '@smithy/signature-v4@5.0.1': + resolution: {integrity: sha512-nCe6fQ+ppm1bQuw5iKoeJ0MJfz2os7Ic3GBjOkLOPtavbD1ONoyE3ygjBfz2ythFWm4YnRm6OxW+8p/m9uCoIA==} + engines: {node: '>=18.0.0'} + '@smithy/signature-v4@5.1.1': resolution: {integrity: sha512-zy8Repr5zvT0ja+Tf5wjV/Ba6vRrhdiDcp/ww6cvqYbSEudIkziDe3uppNRlFoCViyJXdPnLcwyZdDLA4CHzSg==} engines: {node: '>=18.0.0'} + '@smithy/smithy-client@4.1.6': + resolution: {integrity: sha512-UYDolNg6h2O0L+cJjtgSyKKvEKCOa/8FHYJnBobyeoeWDmNpXjwOAtw16ezyeu1ETuuLEOZbrynK0ZY1Lx9Jbw==} + engines: {node: '>=18.0.0'} + '@smithy/smithy-client@4.3.0': resolution: {integrity: sha512-DNsRA38pN6tYHUjebmwD9e4KcgqTLldYQb2gC6K+oxXYdCTxPn6wV9+FvOa6wrU2FQEnGJoi+3GULzOTKck/tg==} engines: {node: '>=18.0.0'} + '@smithy/types@4.1.0': + resolution: {integrity: sha512-enhjdwp4D7CXmwLtD6zbcDMbo6/T6WtuuKCY49Xxc6OMOmUWlBEBDREsxxgV2LIdeQPW756+f97GzcgAwp3iLw==} + engines: {node: '>=18.0.0'} + '@smithy/types@4.3.0': resolution: {integrity: sha512-+1iaIQHthDh9yaLhRzaoQxRk+l9xlk+JjMFxGRhNLz+m9vKOkjNeU8QuB4w3xvzHyVR/BVlp/4AXDHjoRIkfgQ==} engines: {node: '>=18.0.0'} + '@smithy/url-parser@4.0.1': + resolution: {integrity: sha512-gPXcIEUtw7VlK8f/QcruNXm7q+T5hhvGu9tl63LsJPZ27exB6dtNwvh2HIi0v7JcXJ5emBxB+CJxwaLEdJfA+g==} + engines: {node: '>=18.0.0'} + '@smithy/url-parser@4.0.3': resolution: {integrity: sha512-n5/DnosDu/tweOqUUNtUbu7eRIR4J/Wz9nL7V5kFYQQVb8VYdj7a4G5NJHCw6o21ul7CvZoJkOpdTnsQDLT0tQ==} engines: {node: '>=18.0.0'} @@ -1019,10 +1225,22 @@ packages: resolution: {integrity: sha512-bJJ/B8owQbHAflatSq92f9OcV8858DJBQF1Y3GRjB8psLyUjbISywszYPFw16beREHO/C3I3taW4VGH+tOuwrQ==} engines: {node: '>=18.0.0'} + '@smithy/util-defaults-mode-browser@4.0.7': + resolution: {integrity: sha512-CZgDDrYHLv0RUElOsmZtAnp1pIjwDVCSuZWOPhIOBvG36RDfX1Q9+6lS61xBf+qqvHoqRjHxgINeQz47cYFC2Q==} + engines: {node: '>=18.0.0'} + '@smithy/util-defaults-mode-node@4.0.15': resolution: {integrity: sha512-8CUrEW2Ni5q+NmYkj8wsgkfqoP7l4ZquptFbq92yQE66xevc4SxqP2zH6tMtN158kgBqBDsZ+qlrRwXWOjCR8A==} engines: {node: '>=18.0.0'} + '@smithy/util-defaults-mode-node@4.0.7': + resolution: {integrity: sha512-79fQW3hnfCdrfIi1soPbK3zmooRFnLpSx3Vxi6nUlqaaQeC5dm8plt4OTNDNqEEEDkvKghZSaoti684dQFVrGQ==} + engines: {node: '>=18.0.0'} + + '@smithy/util-endpoints@3.0.1': + resolution: {integrity: sha512-zVdUENQpdtn9jbpD9SCFK4+aSiavRb9BxEtw9ZGUR1TYo6bBHbIoi7VkrFQ0/RwZlzx0wRBaRmPclj8iAoJCLA==} + engines: {node: '>=18.0.0'} + '@smithy/util-endpoints@3.0.5': resolution: {integrity: sha512-PjDpqLk24/vAl340tmtCA++Q01GRRNH9cwL9qh46NspAX9S+IQVcK+GOzPt0GLJ6KYGyn8uOgo2kvJhiThclJw==} engines: {node: '>=18.0.0'} @@ -1031,14 +1249,26 @@ packages: resolution: {integrity: sha512-Yk5mLhHtfIgW2W2WQZWSg5kuMZCVbvhFmC7rV4IO2QqnZdbEFPmQnCcGMAX2z/8Qj3B9hYYNjZOhWym+RwhePw==} engines: {node: '>=18.0.0'} + '@smithy/util-middleware@4.0.1': + resolution: {integrity: sha512-HiLAvlcqhbzhuiOa0Lyct5IIlyIz0PQO5dnMlmQ/ubYM46dPInB+3yQGkfxsk6Q24Y0n3/JmcA1v5iEhmOF5mA==} + engines: {node: '>=18.0.0'} + '@smithy/util-middleware@4.0.3': resolution: {integrity: sha512-iIsC6qZXxkD7V3BzTw3b1uK8RVC1M8WvwNxK1PKrH9FnxntCd30CSunXjL/8iJBE8Z0J14r2P69njwIpRG4FBQ==} engines: {node: '>=18.0.0'} + '@smithy/util-retry@4.0.1': + resolution: {integrity: sha512-WmRHqNVwn3kI3rKk1LsKcVgPBG6iLTBGC1iYOV3GQegwJ3E8yjzHytPt26VNzOWr1qu0xE03nK0Ug8S7T7oufw==} + engines: {node: '>=18.0.0'} + '@smithy/util-retry@4.0.4': resolution: {integrity: sha512-Aoqr9W2jDYGrI6OxljN8VmLDQIGO4VdMAUKMf9RGqLG8hn6or+K41NEy1Y5dtum9q8F7e0obYAuKl2mt/GnpZg==} engines: {node: '>=18.0.0'} + '@smithy/util-stream@4.1.2': + resolution: {integrity: sha512-44PKEqQ303d3rlQuiDpcCcu//hV8sn+u2JBo84dWCE0rvgeiVl0IlLMagbU++o0jCWhYCsHaAt9wZuZqNe05Hw==} + engines: {node: '>=18.0.0'} + '@smithy/util-stream@4.2.1': resolution: {integrity: sha512-W3IR0x5DY6iVtjj5p902oNhD+Bz7vs5S+p6tppbPa509rV9BdeXZjGuRSCtVEad9FA0Mba+tNUtUmtnSI1nwUw==} engines: {node: '>=18.0.0'} @@ -1055,75 +1285,75 @@ packages: resolution: {integrity: sha512-b+zebfKCfRdgNJDknHCob3O7FpeYQN6ZG6YLExMcasDHsCXlsXCEuiPZeLnJLpwa5dvPetGlnGCiMHuLwGvFow==} engines: {node: '>=18.0.0'} - '@smithy/util-waiter@4.0.4': - resolution: {integrity: sha512-73aeIvHjtSB6fd9I08iFaQIGTICKpLrI3EtlWAkStVENGo1ARMq9qdoD4QwkY0RUp6A409xlgbD9NCCfCF5ieg==} + '@smithy/util-waiter@4.0.2': + resolution: {integrity: sha512-piUTHyp2Axx3p/kc2CIJkYSv0BAaheBQmbACZgQSSfWUumWNW+R1lL+H9PDBxKJkvOeEX+hKYEFiwO8xagL8AQ==} engines: {node: '>=18.0.0'} - '@swc/core-darwin-arm64@1.11.29': - resolution: {integrity: sha512-whsCX7URzbuS5aET58c75Dloby3Gtj/ITk2vc4WW6pSDQKSPDuONsIcZ7B2ng8oz0K6ttbi4p3H/PNPQLJ4maQ==} + '@swc/core-darwin-arm64@1.11.9': + resolution: {integrity: sha512-moqbPCWG6SHiDMENTDYsEQJ0bFustbLtrdbDbdjnijSyhCyIcm9zKowmovE6MF8JBdOwmLxbuN1Yarq6CrPNlw==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.11.29': - resolution: {integrity: sha512-S3eTo/KYFk+76cWJRgX30hylN5XkSmjYtCBnM4jPLYn7L6zWYEPajsFLmruQEiTEDUg0gBEWLMNyUeghtswouw==} + '@swc/core-darwin-x64@1.11.9': + resolution: {integrity: sha512-/lgMo5l9q6y3jjLM3v30y6SBvuuyLsM/K94hv3hPvDf91N+YlZLw4D7KY0Qknfhj6WytoAcjOIDU6xwBRPyUWg==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.11.29': - resolution: {integrity: sha512-o9gdshbzkUMG6azldHdmKklcfrcMx+a23d/2qHQHPDLUPAN+Trd+sDQUYArK5Fcm7TlpG4sczz95ghN0DMkM7g==} + '@swc/core-linux-arm-gnueabihf@1.11.9': + resolution: {integrity: sha512-7bL6z/63If11IpBElQRozIGRadiy6rt3DoUyfGuFIFQKxtnZxzHuLxm1/wrCAGN9iAZxrpHxHP0VbPQvr6Mcjg==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.11.29': - resolution: {integrity: sha512-sLoaciOgUKQF1KX9T6hPGzvhOQaJn+3DHy4LOHeXhQqvBgr+7QcZ+hl4uixPKTzxk6hy6Hb0QOvQEdBAAR1gXw==} + '@swc/core-linux-arm64-gnu@1.11.9': + resolution: {integrity: sha512-9ArpxjrNbyFTr7gG+toiGbbK2mfS+X97GIruBKPsD8CJH/yJlMknBsX3lfy9h/L119zYVnFBmZDnwsv5yW8/cw==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.11.29': - resolution: {integrity: sha512-PwjB10BC0N+Ce7RU/L23eYch6lXFHz7r3NFavIcwDNa/AAqywfxyxh13OeRy+P0cg7NDpWEETWspXeI4Ek8otw==} + '@swc/core-linux-arm64-musl@1.11.9': + resolution: {integrity: sha512-UOnunJWu7T7oNkBr4DLMwXXbldjiwi+JxmqBKrD2+BNiHGu6P5VpqDHiTGuWuLrda0TcTmeNE6gzlIVOVBo/vw==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.11.29': - resolution: {integrity: sha512-i62vBVoPaVe9A3mc6gJG07n0/e7FVeAvdD9uzZTtGLiuIfVfIBta8EMquzvf+POLycSk79Z6lRhGPZPJPYiQaA==} + '@swc/core-linux-x64-gnu@1.11.9': + resolution: {integrity: sha512-HAqmCkNoNhRusBqSokyylXKsLJ/dr3dnMgBERdUrCIh47L8CKR2qEFUP6FI05sHVB85403ctWnfzBYblcarpqg==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.11.29': - resolution: {integrity: sha512-YER0XU1xqFdK0hKkfSVX1YIyCvMDI7K07GIpefPvcfyNGs38AXKhb2byySDjbVxkdl4dycaxxhRyhQ2gKSlsFQ==} + '@swc/core-linux-x64-musl@1.11.9': + resolution: {integrity: sha512-THwUT2g2qSWUxhi3NGRCEdmh/q7WKl3d5jcN9mz/4jum76Tb46LB9p3oOVPBIcfnFQ9OaddExjCwLoUl0ju2pA==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.11.29': - resolution: {integrity: sha512-po+WHw+k9g6FAg5IJ+sMwtA/fIUL3zPQ4m/uJgONBATCVnDDkyW6dBA49uHNVtSEvjvhuD8DVWdFP847YTcITw==} + '@swc/core-win32-arm64-msvc@1.11.9': + resolution: {integrity: sha512-r4SGD9lR0MM9HSIsQ72BEL3Za3XsuVj+govuXQTlK0mty5gih4L+Qgfnb9PmhjFakK3F63gZyyEr2y8Fj0mN6Q==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.11.29': - resolution: {integrity: sha512-h+NjOrbqdRBYr5ItmStmQt6x3tnhqgwbj9YxdGPepbTDamFv7vFnhZR0YfB3jz3UKJ8H3uGJ65Zw1VsC+xpFkg==} + '@swc/core-win32-ia32-msvc@1.11.9': + resolution: {integrity: sha512-jrEh6MDSnhwfpjRlSWd2Bk8pS5EjreQD1YbkNcnXviQf3+H0wSPmeVSktZyoIdkxAuc2suFx8mj7Yja2UXAgUg==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.11.29': - resolution: {integrity: sha512-Q8cs2BDV9wqDvqobkXOYdC+pLUSEpX/KvI0Dgfun1F+LzuLotRFuDhrvkU9ETJA6OnD2+Fn/ieHgloiKA/Mn/g==} + '@swc/core-win32-x64-msvc@1.11.9': + resolution: {integrity: sha512-oAwuhzr+1Bmb4As2wa3k57/WPJeyVEYRQelwEMYjPgi/h6TH+Y69jQAgKOd+ec1Yl8L5nkWTZMVA/dKDac1bAQ==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.11.29': - resolution: {integrity: sha512-g4mThMIpWbNhV8G2rWp5a5/Igv8/2UFRJx2yImrLGMgrDDYZIopqZ/z0jZxDgqNA1QDx93rpwNF7jGsxVWcMlA==} + '@swc/core@1.11.9': + resolution: {integrity: sha512-4UQ66FwTkFDr+UzYzRNKQyHMScOrc4zJbTJHyK6dP1yVMrxi5sl0FTzNKiqoYvRZ7j8TAYgtYvvuPSW/XXvp5g==} engines: {node: '>=10'} peerDependencies: - '@swc/helpers': '>=0.5.17' + '@swc/helpers': '*' peerDependenciesMeta: '@swc/helpers': optional: true @@ -1131,36 +1361,42 @@ packages: '@swc/counter@0.1.3': resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} - '@swc/types@0.1.21': - resolution: {integrity: sha512-2YEtj5HJVbKivud9N4bpPBAyZhj4S2Ipe5LkUG94alTpr7in/GU/EARgPAd3BwU+YOmFVJC2+kjqhGRi3r0ZpQ==} + '@swc/types@0.1.19': + resolution: {integrity: sha512-WkAZaAfj44kh/UFdAQcrMP1I0nwRqpt27u+08LMBYMqmQfwwMofYoMh/48NGkMMRfC4ynpfwRbJuu8ErfNloeA==} + + '@temporalio/activity@1.11.7': + resolution: {integrity: sha512-8WjXmvre0He9RvipP5nPK8dDbC/EoMtllCjcdiyPI69jDiihoTxOLpiYXIXdHn9yGbf34lHa21ZiRVZNhFkeHg==} - '@temporalio/activity@1.11.8': - resolution: {integrity: sha512-XWjj/EL0YiKsnh0W4W5kBm+Xp1jhpUEaQMGA25+BxKEYBn8qJ+mLQOwuqWn6punS9a6bvnT7P/pUlnhjPxH6KQ==} + '@temporalio/client@1.11.7': + resolution: {integrity: sha512-rStMiKMNPH396TDBIDoavi2B/QQaV6NHHzEzhmyD7MoDJvuApIv1uSKcjYlRdmXiv0lF1FC2ONcquq7lmKSCYg==} - '@temporalio/client@1.11.8': - resolution: {integrity: sha512-UpiU+awykWYjQSSJH5NLY5Id/uDdiD9yz5oaardv1YF80rMN7U1Q6W9lgPEbg/b62qOv3Mia1+fE5hrav7ying==} + '@temporalio/common@1.11.7': + resolution: {integrity: sha512-T3so7KE8nGmesjrbrfjtQLXhw7lJYKW87V/soxNeAxW/i3n3/7km3/dx8F7FBlgbu66Uu8CIWVbxLnVSS+Frbg==} '@temporalio/common@1.11.8': resolution: {integrity: sha512-hB+TSB/P2Vm8chYyZGcKALdywGvcBSqzSUzFG1lOm/JPDh2d4uK6lvE2S8OneEndlJSdzE++d2Mt5B+iKe2ytA==} - '@temporalio/core-bridge@1.11.8': - resolution: {integrity: sha512-s1EkihwUHGIOylF31UFnsnntZmVqcKEgVTu8UvAf/J/br4jhs+nEO/mBFexqrzSWnraJhpq9UnzTNAklNHFVKg==} + '@temporalio/core-bridge@1.11.7': + resolution: {integrity: sha512-QiVqX2b+7GiZ9VlyeUunDILMvgU2UX2PyWXemuoLeM+33X/xbLW/UgwtDS2TKcON69UrUH1OG9yl6DPXpeOrfQ==} + + '@temporalio/proto@1.11.7': + resolution: {integrity: sha512-O34R2wk8PvmYpMHhsL7g2lIdtTA5wkQ5LJ86eHY0cF9zhDs/CoGiysl9qBOg9fy4WXHqzmcUm/V50hGefaM7gw==} '@temporalio/proto@1.11.8': resolution: {integrity: sha512-L6QsIAq3PrnQpARAcqLCe4xMpbkpBEvA/9FQGddpzCESvViUOUAIHPwckL1DokYPedEAt19C+uuBGVBMCNx7vw==} - '@temporalio/testing@1.11.8': - resolution: {integrity: sha512-FC6A2YFDH6CDp7eeZ9aW9RDSzGxQqH6Old5UxBvIk5ZFgsCMOltpWqYMTIrv9EQbe6xMOTgPjP/6XgAqvIPj/g==} + '@temporalio/testing@1.11.7': + resolution: {integrity: sha512-yM4sMttYhPDiiHWN0P36ZD6nRN5jsItoEO1liMzuHHWHr7I3Guc4WIqvuhzTtAzFb+HqApC5Qr0HTtYS4mAWcA==} - '@temporalio/worker@1.11.8': - resolution: {integrity: sha512-KNUEw8khhFoVLhOy93j9EkA6KfKtOVn7N7+c4kn9AM7QXkcxe73+1AUwNKgFYKZph4i6I26NBxs7MPrgh3GKxQ==} + '@temporalio/worker@1.11.7': + resolution: {integrity: sha512-r8AMBFFQkZghsVnqJ7RcPBBXYhm498oATL7FY9WL1kBf73wQ7cZl82Vug1VT9fHF/SX3Kq8WdNXC3jPhO+jG6g==} engines: {node: '>= 16.0.0'} - '@temporalio/workflow@1.11.8': - resolution: {integrity: sha512-gJy5Rr4WQCejdWskluHY/C20om0Yvx7/cLl9KHCweTyDLRfTu2VtMJRS8LPFQkKzoHBbLaqzPo2XdHh/u4JQoA==} + '@temporalio/workflow@1.11.7': + resolution: {integrity: sha512-NGNmGCoV3xPvRifjRhCZKbIbPAup92/OC2xuaTb3hzBb13N9Pbm6HVljgQORzKNyO55rXDRpTnAiJ40en57IgA==} - '@togethercrew.dev/db@3.10.0': - resolution: {integrity: sha512-bsxoGA1Fsc0GDX6UZZeKzXaqOsttvZcJHdAkqh27GAdYJZpVo9KdgotSdeSePKTxNP3LhOpXLZRlFNmTabO3Ew==} + '@togethercrew.dev/db@3.11.0': + resolution: {integrity: sha512-+3LP85ETxCqJc5ts/fml8VsVIqmeSNmvC6AekswYn4Frz4kc/53UDN8kmTmPzTCNDflk2vN9oNDvI66JtvcjoQ==} '@togethercrew.dev/tc-messagebroker@0.0.51': resolution: {integrity: sha512-V7gPLE/jphVi6XfMMc/LFeg2Ip3P62b45jB7oxRykSmVGblZHUZ8xo7PfuNUcq+m2iX2NbddN9kcv8/CDLINZg==} @@ -1177,8 +1413,8 @@ packages: '@tsconfig/node16@1.0.4': resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - '@tsconfig/node16@16.1.4': - resolution: {integrity: sha512-tkWPDtk18K2qJK/DhU010f03iDlw+C8qjXvhwZ4KKpJQC4QFOG3r8tIf2q6aWD0mz9N7RcZcaD9SPlrVLKiDoQ==} + '@tsconfig/node16@16.1.3': + resolution: {integrity: sha512-9nTOUBn+EMKO6rtSZJk+DcqsfgtlERGT9XPJ5PRj/HNENPCBY1yu/JEj5wT6GLtbCLBO2k46SeXDaY0pjMqypw==} '@types/amqplib@0.10.7': resolution: {integrity: sha512-IVj3avf9AQd2nXCx0PGk/OYq7VmHiyNxWFSb5HhU9ATh+i+gHWvVcljFTcTWQ/dyHJCTrzCixde+r/asL2ErDA==} @@ -1186,14 +1422,14 @@ packages: '@types/babel__core@7.20.5': resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - '@types/babel__generator@7.27.0': - resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} + '@types/babel__generator@7.6.8': + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} '@types/babel__template@7.4.4': resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - '@types/babel__traverse@7.20.7': - resolution: {integrity: sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==} + '@types/babel__traverse@7.20.6': + resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} '@types/caseless@0.12.5': resolution: {integrity: sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==} @@ -1210,8 +1446,8 @@ packages: '@types/eslint__js@8.42.3': resolution: {integrity: sha512-alfG737uhmPdnvkrLdZLcEKJ/B8s9Y4hrZ+YAdzUeoArBlSUERA2E87ROfOaS4jd/C45fzOoZzidLc1IPwLqOw==} - '@types/estree@1.0.7': - resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} '@types/graceful-fs@4.1.9': resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} @@ -1234,8 +1470,8 @@ packages: '@types/neo4j@2.0.6': resolution: {integrity: sha512-KDDVtbVTZWRHLRdtvbzNCBtpbwZc1ovtsnNnhsIPUPoARLgt4+lb2qXOEY9bj2DcugR+u1/W1zMeni7ZpaRtPg==} - '@types/node@22.15.23': - resolution: {integrity: sha512-7Ec1zaFPF4RJ0eXu1YT/xgiebqwqoJz8rYPDi/O2BcZ++Wpt0Kq9cl0eg6NN6bYbPnR67ZLo7St5Q3UK0SnARw==} + '@types/node@22.13.10': + resolution: {integrity: sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==} '@types/pako@2.0.3': resolution: {integrity: sha512-bq0hMV9opAcrmE0Byyo0fY3Ew4tgOevJmQ9grUhpXQhYfyLJ1Kqg3P33JT5fdbT2AjeAjR51zqqVjAL/HMkx7Q==} @@ -1261,8 +1497,8 @@ packages: '@types/whatwg-url@8.2.2': resolution: {integrity: sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==} - '@types/ws@8.18.1': - resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} + '@types/ws@8.18.0': + resolution: {integrity: sha512-8svvI3hMyvN0kKCJMvTJP/x6Y/EoQbepff882wL+Sn5QsXb3etnamgrJq4isrBxSJj5L2AuXcI0+bgkoAXGUJw==} '@types/yargs-parser@21.0.3': resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} @@ -1270,61 +1506,51 @@ packages: '@types/yargs@17.0.33': resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} - '@typescript-eslint/eslint-plugin@8.33.0': - resolution: {integrity: sha512-CACyQuqSHt7ma3Ns601xykeBK/rDeZa3w6IS6UtMQbixO5DWy+8TilKkviGDH6jtWCo8FGRKEK5cLLkPvEammQ==} + '@typescript-eslint/eslint-plugin@8.26.1': + resolution: {integrity: sha512-2X3mwqsj9Bd3Ciz508ZUtoQQYpOhU/kWoUqIf49H8Z0+Vbh6UF/y0OEYp0Q0axOGzaBGs7QxRwq0knSQ8khQNA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.33.0 + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@8.33.0': - resolution: {integrity: sha512-JaehZvf6m0yqYp34+RVnihBAChkqeH+tqqhS0GuX1qgPpwLvmTPheKEs6OeCK6hVJgXZHJ2vbjnC9j119auStQ==} + '@typescript-eslint/parser@8.26.1': + resolution: {integrity: sha512-w6HZUV4NWxqd8BdeFf81t07d7/YV9s7TCWrQQbG5uhuvGUAW+fq1usZ1Hmz9UPNLniFnD8GLSsDpjP0hm1S4lQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/project-service@8.33.0': - resolution: {integrity: sha512-d1hz0u9l6N+u/gcrk6s6gYdl7/+pp8yHheRTqP6X5hVDKALEaTn8WfGiit7G511yueBEL3OpOEpD+3/MBdoN+A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/scope-manager@8.33.0': - resolution: {integrity: sha512-LMi/oqrzpqxyO72ltP+dBSP6V0xiUb4saY7WLtxSfiNEBI8m321LLVFU9/QDJxjDQG9/tjSqKz/E3380TEqSTw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/tsconfig-utils@8.33.0': - resolution: {integrity: sha512-sTkETlbqhEoiFmGr1gsdq5HyVbSOF0145SYDJ/EQmXHtKViCaGvnyLqWFFHtEXoS0J1yU8Wyou2UGmgW88fEug==} + '@typescript-eslint/scope-manager@8.26.1': + resolution: {integrity: sha512-6EIvbE5cNER8sqBu6V7+KeMZIC1664d2Yjt+B9EWUXrsyWpxx4lEZrmvxgSKRC6gX+efDL/UY9OpPZ267io3mg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/type-utils@8.33.0': - resolution: {integrity: sha512-lScnHNCBqL1QayuSrWeqAL5GmqNdVUQAAMTaCwdYEdWfIrSrOGzyLGRCHXcCixa5NK6i5l0AfSO2oBSjCjf4XQ==} + '@typescript-eslint/type-utils@8.26.1': + resolution: {integrity: sha512-Kcj/TagJLwoY/5w9JGEFV0dclQdyqw9+VMndxOJKtoFSjfZhLXhYjzsQEeyza03rwHx2vFEGvrJWJBXKleRvZg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/types@8.33.0': - resolution: {integrity: sha512-DKuXOKpM5IDT1FA2g9x9x1Ug81YuKrzf4mYX8FAVSNu5Wo/LELHWQyM1pQaDkI42bX15PWl0vNPt1uGiIFUOpg==} + '@typescript-eslint/types@8.26.1': + resolution: {integrity: sha512-n4THUQW27VmQMx+3P+B0Yptl7ydfceUj4ON/AQILAASwgYdZ/2dhfymRMh5egRUrvK5lSmaOm77Ry+lmXPOgBQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.33.0': - resolution: {integrity: sha512-vegY4FQoB6jL97Tu/lWRsAiUUp8qJTqzAmENH2k59SJhw0Th1oszb9Idq/FyyONLuNqT1OADJPXfyUNOR8SzAQ==} + '@typescript-eslint/typescript-estree@8.26.1': + resolution: {integrity: sha512-yUwPpUHDgdrv1QJ7YQal3cMVBGWfnuCdKbXw1yyjArax3353rEJP1ZA+4F8nOlQ3RfS2hUN/wze3nlY+ZOhvoA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.33.0': - resolution: {integrity: sha512-lPFuQaLA9aSNa7D5u2EpRiqdAUhzShwGg/nhpBlc4GR6kcTABttCuyjFs8BcEZ8VWrjCBof/bePhP3Q3fS+Yrw==} + '@typescript-eslint/utils@8.26.1': + resolution: {integrity: sha512-V4Urxa/XtSUroUrnI7q6yUTD3hDtfJ2jzVfeT3VK0ciizfK2q/zGC0iDh1lFMUZR8cImRrep6/q0xd/1ZGPQpg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/visitor-keys@8.33.0': - resolution: {integrity: sha512-7RW7CMYoskiz5OOGAWjJFxgb7c5UNjTG292gYhWeOAcFmYCtVCSqjqSBj5zMhxbXo2JOW95YYrUWJfU0zrpaGQ==} + '@typescript-eslint/visitor-keys@8.26.1': + resolution: {integrity: sha512-AjOC3zfnxd6S4Eiy3jwktJPclqhFHNyd8L6Gycf9WUPoKZpgM5PjkxY1X7uSy61xVpiJDhhk7XT2NVsN3ALTWg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@vladfrangu/async_event_emitter@2.4.6': @@ -1427,8 +1653,8 @@ packages: ajv@8.17.1: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} - amqplib@0.10.8: - resolution: {integrity: sha512-Tfn1O9sFgAP8DqeMEpt2IacsVTENBpblB3SqLdn0jK2AeX8iyCvbptBc8lyATT9bQ31MsjVwUSQ1g8f4jHOUfw==} + amqplib@0.10.5: + resolution: {integrity: sha512-Dx5zmy0Ur+Q7LPPdhz+jx5IzmJBoHd15tOeAfQ8SuvEtyPJ20hBemhOBA4b1WeORCRa0ENM/kHCzmem1w/zHvQ==} engines: {node: '>=10'} ansi-escapes@4.3.2: @@ -1476,8 +1702,8 @@ packages: resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} engines: {node: '>=8.0.0'} - axios@1.9.0: - resolution: {integrity: sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==} + axios@1.8.3: + resolution: {integrity: sha512-iP4DebzoNlP/YN2dpwCgb8zoCmhtkajzS48JvwmkSkXvPI3DHc7m+XYL5tGnSlJtR6nImXZmdCuN5aP8dh1d8A==} babel-jest@29.7.0: resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} @@ -1530,8 +1756,8 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.24.5: - resolution: {integrity: sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==} + browserslist@4.24.4: + resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -1582,8 +1808,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001718: - resolution: {integrity: sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw==} + caniuse-lite@1.0.30001704: + resolution: {integrity: sha512-+L2IgBbV6gXB4ETf0keSvLr7JUrRVbIaB/lrQ1+z8mRcQiisG5k+lG6O4n6Y5q6f5EuNfaYXKgymucphlEXQew==} cargo-cp-artifact@0.1.9: resolution: {integrity: sha512-6F+UYzTaGB+awsTXg0uSJA1/b/B3DDJzpKVRu0UmyI7DmNeaAl2RFHuTGIN6fEgpadRxoXGb7gbC1xo4C3IdyA==} @@ -1700,6 +1926,15 @@ packages: resolution: {integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==} engines: {node: '>=12'} + debug@4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + debug@4.4.1: resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} engines: {node: '>=6.0'} @@ -1709,8 +1944,8 @@ packages: supports-color: optional: true - dedent@1.6.0: - resolution: {integrity: sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==} + dedent@1.5.3: + resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} peerDependencies: babel-plugin-macros: ^3.1.0 peerDependenciesMeta: @@ -1755,8 +1990,8 @@ packages: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} - dotenv@16.5.0: - resolution: {integrity: sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==} + dotenv@16.4.7: + resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} engines: {node: '>=12'} dunder-proto@1.0.1: @@ -1768,8 +2003,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.159: - resolution: {integrity: sha512-CEvHptWAMV5p6GJ0Lq8aheyvVbfzVrv5mmidu1D3pidoVNkB3tTBsTMVtPJ+rzRK5oV229mCLz9Zj/hNvU8GBA==} + electron-to-chromium@1.5.116: + resolution: {integrity: sha512-mufxTCJzLBQVvSdZzX1s5YAuXsN1M4tTyYxOOL1TcSKtIzQ9rjIrm7yFK80rN5dwGTePgdoABDSHpuVtRQh0Zw==} emittery@0.13.1: resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} @@ -1797,8 +2032,8 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-module-lexer@1.7.0: - resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + es-module-lexer@1.6.0: + resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==} es-object-atoms@1.1.1: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} @@ -1826,13 +2061,13 @@ packages: peerDependencies: eslint: '>=7.0.0' - eslint-plugin-prettier@5.4.0: - resolution: {integrity: sha512-BvQOvUhkVQM1i63iMETK9Hjud9QhqBnbtT1Zc642p9ynzBuCe5pybkOnvqZIBypXmMlsGcnU4HZ8sCTPfpAexA==} + eslint-plugin-prettier@5.2.3: + resolution: {integrity: sha512-qJ+y0FfCp/mQYQ/vWQ3s7eUlFEL4PyKfAJxsnYTJ4YT73nsJBWqmEpFryxV9OeUiqmsTsYJ5Y+KDNaeP31wrRw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: '@types/eslint': '>=8.0.0' eslint: '>=8.0.0' - eslint-config-prettier: '>= 7.0.0 <10.0.0 || >=10.1.0' + eslint-config-prettier: '*' prettier: '>=3.0.0' peerDependenciesMeta: '@types/eslint': @@ -1856,8 +2091,8 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.27.0: - resolution: {integrity: sha512-ixRawFQuMB9DZ7fjU3iGGganFDp3+45bPOdaRurcFHSXO1e/sYwUX/FtQZpLZJR6SjMoJH8hR2pPEAfDyCoU2Q==} + eslint@9.22.0: + resolution: {integrity: sha512-9V/QURhsRN40xuHXWjV64yvrzMjcz7ZyNoF2jJFmy9j/SLk0u1OLSZgXi28MrXjymnjEGSR80WCdab3RGMDveQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -2076,8 +2311,8 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - grammy@1.36.3: - resolution: {integrity: sha512-OmoYn0WTETbMR7FbEy6QWx0Dvm3Md1O84UOgZLmj19mYlKbhefu2fSHDjoflxDNu8QgIrseQRsFSk4zRRcvJOA==} + grammy@1.35.0: + resolution: {integrity: sha512-Qlu5kVaekL4w5clWSpQcRxwJJoEeU13g8DTALuNbZsDAJuFJNXBuI8EqR6U1m1of7j9NEMQz59sXu+0/KsKjyg==} engines: {node: ^12.20.0 || >=14.13.1} graphemer@1.4.0: @@ -2141,10 +2376,6 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - ignore@7.0.4: - resolution: {integrity: sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A==} - engines: {node: '>= 4'} - import-fresh@3.3.1: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} @@ -2172,8 +2403,8 @@ packages: resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - ioredis@5.6.1: - resolution: {integrity: sha512-UxC0Yv1Y4WRJiGQxQkP0hfdL0/5/6YvdfOOClRgJ0qppSarkhneSa6UvkMkms0AkdGimSH3Ikqm+6mkMmX7vGA==} + ioredis@5.6.0: + resolution: {integrity: sha512-tBZlIIWbndeWBWCXWZiqtOF/yxf6yZX3tAlTJ7nfo5jhd6dctNxF7QnYlZLZ1a0o0pDoen7CgZqO+zjNaFbJAg==} engines: {node: '>=12.22.0'} ip-address@9.0.5: @@ -2530,14 +2761,14 @@ packages: lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - long@5.3.2: - resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==} + long@5.3.1: + resolution: {integrity: sha512-ka87Jz3gcx/I7Hal94xaN2tZEOPoUOEVftkQqZx2EeQRN7LGdfLlI3FvZ+7WDplm+vK2Urx9ULrvSowtdCieng==} lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - magic-bytes.js@1.12.1: - resolution: {integrity: sha512-ThQLOhN86ZkJ7qemtVRGYM+gRgR8GEXNli9H/PMvpnZsE44Xfh3wx9kGJaldg314v85m+bFW6WBMaVHJc/c3zA==} + magic-bytes.js@1.10.0: + resolution: {integrity: sha512-/k20Lg2q8LE5xiaaSkMXk4sfvI+9EGEykFS4b0CHHGWqDYU0bGUFSwchNOMA56D7TCs9GwVTkqe9als1/ns8UQ==} make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} @@ -2553,8 +2784,8 @@ packages: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} - memfs@4.17.2: - resolution: {integrity: sha512-NgYhCOWgovOXSzvYgUW0LQ7Qy72rWQMGGFJDoWg4G30RHd3z77VbYdtJ4fembJXBy8pMIUA31XNAupobOQlwdg==} + memfs@4.17.0: + resolution: {integrity: sha512-4eirfZ7thblFmqFjywlTmuWVSvccHAJbn1r8qQLzmTO11qcqpohOjmY2mFce6x7x7WtskzRqApPD0hv+Oa74jg==} engines: {node: '>= 4.0.0'} memory-pager@1.5.0: @@ -2635,8 +2866,8 @@ packages: snappy: optional: true - mongodb@6.16.0: - resolution: {integrity: sha512-D1PNcdT0y4Grhou5Zi/qgipZOYeWrhLEpk33n3nm6LGtz61jvO88WlrWCK/bigMjpnOdAUKKQwsGIl0NtWMyYw==} + mongodb@6.14.2: + resolution: {integrity: sha512-kMEHNo0F3P6QKDq17zcDuPeaywK/YaJVCEQRzPF3TOM/Bl9MFg64YE5Tu7ifj37qZJMhwU1tl2Ioivws5gRG5Q==} engines: {node: '>=16.20.1'} peerDependencies: '@aws-sdk/credential-providers': ^3.188.0 @@ -2671,12 +2902,12 @@ packages: resolution: {integrity: sha512-JHKco/533CyVrqCbyQsnqMpLn8ZCiKrPDTd2mvo2W7ygIvhygWjX2wj+RPjn6upZZgw0jC6U51RD7kUsyK8NBg==} engines: {node: '>=12.0.0'} - mongoose@7.8.7: - resolution: {integrity: sha512-5Bo4CrUxrPITrhMKsqUTOkXXo2CoRC5tXxVQhnddCzqDMwRXfyStrxj1oY865g8gaekSBhxAeNkYyUSJvGm9Hw==} + mongoose@7.8.6: + resolution: {integrity: sha512-1oVPRHvcmPVwk/zeSTEzayzQEVeYQM1D5zrkLsttfNNB7pPRUmkKeFu6gpbvyEswOuZLrWJjqB8kSTY+k2AZOA==} engines: {node: '>=14.20.1'} - mongoose@8.15.1: - resolution: {integrity: sha512-RhQ4DzmBi5BNGcS0w4u1vdMRIKcteXTCNzDt1j7XRcdWYBz1MjMjulBhPaeC5jBCHOD1yinuOFTTSOWLLGexWw==} + mongoose@8.12.1: + resolution: {integrity: sha512-UW22y8QFVYmrb36hm8cGncfn4ARc/XsYWQwRTaj0gxtQk1rDuhzDO1eBantS+hTTatfAIS96LlRCJrcNHvW5+Q==} engines: {node: '>=16.20.1'} mpath@0.9.0: @@ -2728,8 +2959,8 @@ packages: node-releases@2.0.19: resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} - nodemon@3.1.10: - resolution: {integrity: sha512-WDjw3pJ0/0jMFmyNDp3gvY2YizjLmmOUQo6DEBY+JgdvW/yQ9mEeSw6H5ythl5Ny2ytb7f9C2nIbjSxMNzbJXw==} + nodemon@3.1.9: + resolution: {integrity: sha512-hdr1oIb2p6ZSxu3PB2JWWYS7ZQ0qvaZsc3hK8DR8f02kRzc8rjYmxAIvdz+aYC+8F2IjNaB7HMcSDg8nQpJxyg==} engines: {node: '>=10'} hasBin: true @@ -2827,12 +3058,12 @@ packages: pino-std-serializers@7.0.0: resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==} - pino@9.7.0: - resolution: {integrity: sha512-vnMCM6xZTb1WDmLvtG2lE/2p+t9hDEIvTWJsu6FejkE62vB7gDhvzrpFR4Cw2to+9JNQxVnkAKVPA1KPB98vWg==} + pino@9.6.0: + resolution: {integrity: sha512-i85pKRCt4qMjZ1+L7sy2Ag4t1atFcdbEt76+7iRJn1g2BvsnRMGu9p8pivl9fs63M2kF/A0OacFZhTub+m/qMg==} hasBin: true - pirates@4.0.7: - resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} + pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} pkg-dir@4.2.0: @@ -2856,8 +3087,8 @@ packages: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - process-warning@5.0.0: - resolution: {integrity: sha512-a39t9ApHNx2L4+HBnQKqxxHNs1r7KF+Intd8Q/g1bUh6q0WIp9voPXJ/x0j+ZL45KF1pJd9+q2jLIRMfvEshkA==} + process-warning@4.0.1: + resolution: {integrity: sha512-3c2LzQ3rY9d0hc1emcsHhfT9Jwz0cChib/QN89oME2R451w5fy3f0afAhERFZAwrbDU43wk12d0ORBpDVME50Q==} prompts@2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} @@ -2957,6 +3188,9 @@ packages: rxjs@7.8.2: resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} @@ -2967,16 +3201,16 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - schema-utils@4.3.2: - resolution: {integrity: sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==} + schema-utils@4.3.0: + resolution: {integrity: sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==} engines: {node: '>= 10.13.0'} semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.7.2: - resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} + semver@7.7.1: + resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} engines: {node: '>=10'} hasBin: true @@ -3118,12 +3352,12 @@ packages: '@swc/core': ^1.2.147 webpack: '>=2' - synckit@0.11.6: - resolution: {integrity: sha512-2pR2ubZSV64f/vqm9eLPz/KOvR9Dm+Co/5ChLgeHl0yEDRc6h5hXHoxEQH8Y5Ljycozd3p1k5TTSVdzYGkPvLw==} + synckit@0.9.2: + resolution: {integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==} engines: {node: ^14.18.0 || >=16.0.0} - tapable@2.2.2: - resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==} + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} terser-webpack-plugin@5.3.14: @@ -3142,8 +3376,8 @@ packages: uglify-js: optional: true - terser@5.40.0: - resolution: {integrity: sha512-cfeKl/jjwSR5ar7d0FGmave9hFGJT8obyo0z+CrQOylLDbk7X81nPU6vq9VORa5jU30SkDnT2FXjLbR8HLP+xA==} + terser@5.39.0: + resolution: {integrity: sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==} engines: {node: '>=10'} hasBin: true @@ -3188,24 +3422,24 @@ packages: resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} engines: {node: '>=12'} - tr46@5.1.1: - resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==} + tr46@5.0.0: + resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} engines: {node: '>=18'} - tree-dump@1.0.3: - resolution: {integrity: sha512-il+Cv80yVHFBwokQSfd4bldvr1Md951DpgAGfmhydt04L+YzHgubm2tQ7zueWDcGENKHq0ZvGFR/hjvNXilHEg==} + tree-dump@1.0.2: + resolution: {integrity: sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' - ts-api-utils@2.1.0: - resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} + ts-api-utils@2.0.1: + resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==} engines: {node: '>=18.12'} peerDependencies: typescript: '>=4.8.4' - ts-jest@29.3.4: - resolution: {integrity: sha512-Iqbrm8IXOmV+ggWHOTEbjwyCf2xZlUMv5npExksXohL+tk8va4Fjhb+X2+Rt9NBmgO7bJ8WpnMLOwih/DnMlFA==} + ts-jest@29.2.6: + resolution: {integrity: sha512-yTNZVZqc8lSixm+QGVFcPe6+yj7+TWZwIesuOWvfcn4B9bz5x4NDzVCQQjOs7Hfouu36aEqfEbo9Qpo+gq8dDg==} engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -3260,27 +3494,23 @@ packages: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} - type-fest@4.41.0: - resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} - engines: {node: '>=16'} - - typescript-eslint@8.33.0: - resolution: {integrity: sha512-5YmNhF24ylCsvdNW2oJwMzTbaeO4bg90KeGtMjUw0AGtHksgEPLRTUil+coHwCfiu4QjVJFnjp94DmU6zV7DhQ==} + typescript-eslint@8.26.1: + resolution: {integrity: sha512-t/oIs9mYyrwZGRpDv3g+3K6nZ5uhKEMt2oNmAPwaY4/ye0+EH4nXIPYNtkYFS6QHm+1DFg34DbglYBz5P9Xysg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - typescript@5.8.3: - resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} + typescript@5.8.2: + resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==} engines: {node: '>=14.17'} hasBin: true undefsafe@2.0.5: resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==} - undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + undici-types@6.20.0: + resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} undici@6.21.1: resolution: {integrity: sha512-q/1rj5D0/zayJB2FraXdaWxbhWiNKDvu8naDT2dl1yTlvJp4BLtOcp2a5BvgGNQpYYJzau7tf1WgKv3b+7mqpQ==} @@ -3327,8 +3557,8 @@ packages: walker@1.0.8: resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} - watchpack@2.4.4: - resolution: {integrity: sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==} + watchpack@2.4.2: + resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} engines: {node: '>=10.13.0'} webidl-conversions@3.0.1: @@ -3338,12 +3568,12 @@ packages: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} - webpack-sources@3.3.0: - resolution: {integrity: sha512-77R0RDmJfj9dyv5p3bM5pOHa+X8/ZkO9c7kpDstigkC4nIDobadsfSGCwB4bKhMVxqAok8tajaoR8rirM7+VFQ==} + webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} - webpack@5.99.9: - resolution: {integrity: sha512-brOPwM3JnmOa+7kd3NsmOUOwbDAj8FT9xDsG3IW0MgbN9yZV7Oi/s/+MNQ/EcSMqw7qfoRyXPoeEWT8zLVdVGg==} + webpack@5.98.0: + resolution: {integrity: sha512-UFynvx+gM44Gv9qFgj0acCQK2VE1CtdfwFdimkapco3hlPCJ/zeq73n2yVKimVbtm+TnApIugGhLJnkU6gjYXA==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -3356,8 +3586,8 @@ packages: resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} engines: {node: '>=12'} - whatwg-url@14.2.0: - resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==} + whatwg-url@14.1.1: + resolution: {integrity: sha512-mDGf9diDad/giZ/Sm9Xi2YcyzaFpbdLpJPr+E9fSkyQ7KpQD4SdFcugkRQYzhmfI4KeV4Qpnn2sKPdo+kmsgRQ==} engines: {node: '>=18'} whatwg-url@5.0.0: @@ -3388,8 +3618,8 @@ packages: resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - ws@8.18.2: - resolution: {integrity: sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==} + ws@8.18.1: + resolution: {integrity: sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -3427,11 +3657,19 @@ packages: resolution: {integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==} engines: {node: '>=12.20'} - zod@3.25.32: - resolution: {integrity: sha512-OSm2xTIRfW8CV5/QKgngwmQW/8aPfGdaQFlrGoErlgg/Epm7cjb6K6VEyExfe65a3VybUOnu381edLb0dfJl0g==} + zod@3.24.4: + resolution: {integrity: sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg==} snapshots: + '@acuminous/bitsyntax@0.1.2': + dependencies: + buffer-more-ints: 1.0.0 + debug: 4.4.0(supports-color@5.5.0) + safe-buffer: 5.1.2 + transitivePeerDependencies: + - supports-color + '@ampproject/remapping@2.3.0': dependencies: '@jridgewell/gen-mapping': 0.3.8 @@ -3440,21 +3678,21 @@ snapshots: '@aws-crypto/crc32@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.804.0 + '@aws-sdk/types': 3.734.0 tslib: 2.8.1 '@aws-crypto/crc32c@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.804.0 + '@aws-sdk/types': 3.734.0 tslib: 2.8.1 '@aws-crypto/sha1-browser@5.2.0': dependencies: '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.804.0 - '@aws-sdk/util-locate-window': 3.804.0 + '@aws-sdk/types': 3.734.0 + '@aws-sdk/util-locate-window': 3.723.0 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 @@ -3463,15 +3701,15 @@ snapshots: '@aws-crypto/sha256-js': 5.2.0 '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.804.0 - '@aws-sdk/util-locate-window': 3.804.0 + '@aws-sdk/types': 3.734.0 + '@aws-sdk/util-locate-window': 3.723.0 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 '@aws-crypto/sha256-js@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.804.0 + '@aws-sdk/types': 3.734.0 tslib: 2.8.1 '@aws-crypto/supports-web-crypto@5.2.0': @@ -3480,7 +3718,7 @@ snapshots: '@aws-crypto/util@5.2.0': dependencies: - '@aws-sdk/types': 3.804.0 + '@aws-sdk/types': 3.734.0 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 @@ -3529,63 +3767,106 @@ snapshots: - aws-crt optional: true - '@aws-sdk/client-s3@3.817.0': + '@aws-sdk/client-s3@3.758.0': dependencies: '@aws-crypto/sha1-browser': 5.2.0 '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.816.0 - '@aws-sdk/credential-provider-node': 3.817.0 - '@aws-sdk/middleware-bucket-endpoint': 3.808.0 - '@aws-sdk/middleware-expect-continue': 3.804.0 - '@aws-sdk/middleware-flexible-checksums': 3.816.0 - '@aws-sdk/middleware-host-header': 3.804.0 - '@aws-sdk/middleware-location-constraint': 3.804.0 - '@aws-sdk/middleware-logger': 3.804.0 - '@aws-sdk/middleware-recursion-detection': 3.804.0 - '@aws-sdk/middleware-sdk-s3': 3.816.0 - '@aws-sdk/middleware-ssec': 3.804.0 - '@aws-sdk/middleware-user-agent': 3.816.0 - '@aws-sdk/region-config-resolver': 3.808.0 - '@aws-sdk/signature-v4-multi-region': 3.816.0 - '@aws-sdk/types': 3.804.0 - '@aws-sdk/util-endpoints': 3.808.0 - '@aws-sdk/util-user-agent-browser': 3.804.0 - '@aws-sdk/util-user-agent-node': 3.816.0 - '@aws-sdk/xml-builder': 3.804.0 - '@smithy/config-resolver': 4.1.3 - '@smithy/core': 3.4.0 - '@smithy/eventstream-serde-browser': 4.0.3 - '@smithy/eventstream-serde-config-resolver': 4.1.1 - '@smithy/eventstream-serde-node': 4.0.3 - '@smithy/fetch-http-handler': 5.0.3 - '@smithy/hash-blob-browser': 4.0.3 - '@smithy/hash-node': 4.0.3 - '@smithy/hash-stream-node': 4.0.3 - '@smithy/invalid-dependency': 4.0.3 - '@smithy/md5-js': 4.0.3 - '@smithy/middleware-content-length': 4.0.3 - '@smithy/middleware-endpoint': 4.1.7 - '@smithy/middleware-retry': 4.1.8 - '@smithy/middleware-serde': 4.0.6 - '@smithy/middleware-stack': 4.0.3 - '@smithy/node-config-provider': 4.1.2 - '@smithy/node-http-handler': 4.0.5 - '@smithy/protocol-http': 5.1.1 - '@smithy/smithy-client': 4.3.0 - '@smithy/types': 4.3.0 - '@smithy/url-parser': 4.0.3 + '@aws-sdk/core': 3.758.0 + '@aws-sdk/credential-provider-node': 3.758.0 + '@aws-sdk/middleware-bucket-endpoint': 3.734.0 + '@aws-sdk/middleware-expect-continue': 3.734.0 + '@aws-sdk/middleware-flexible-checksums': 3.758.0 + '@aws-sdk/middleware-host-header': 3.734.0 + '@aws-sdk/middleware-location-constraint': 3.734.0 + '@aws-sdk/middleware-logger': 3.734.0 + '@aws-sdk/middleware-recursion-detection': 3.734.0 + '@aws-sdk/middleware-sdk-s3': 3.758.0 + '@aws-sdk/middleware-ssec': 3.734.0 + '@aws-sdk/middleware-user-agent': 3.758.0 + '@aws-sdk/region-config-resolver': 3.734.0 + '@aws-sdk/signature-v4-multi-region': 3.758.0 + '@aws-sdk/types': 3.734.0 + '@aws-sdk/util-endpoints': 3.743.0 + '@aws-sdk/util-user-agent-browser': 3.734.0 + '@aws-sdk/util-user-agent-node': 3.758.0 + '@aws-sdk/xml-builder': 3.734.0 + '@smithy/config-resolver': 4.0.1 + '@smithy/core': 3.1.5 + '@smithy/eventstream-serde-browser': 4.0.1 + '@smithy/eventstream-serde-config-resolver': 4.0.1 + '@smithy/eventstream-serde-node': 4.0.1 + '@smithy/fetch-http-handler': 5.0.1 + '@smithy/hash-blob-browser': 4.0.1 + '@smithy/hash-node': 4.0.1 + '@smithy/hash-stream-node': 4.0.1 + '@smithy/invalid-dependency': 4.0.1 + '@smithy/md5-js': 4.0.1 + '@smithy/middleware-content-length': 4.0.1 + '@smithy/middleware-endpoint': 4.0.6 + '@smithy/middleware-retry': 4.0.7 + '@smithy/middleware-serde': 4.0.2 + '@smithy/middleware-stack': 4.0.1 + '@smithy/node-config-provider': 4.0.1 + '@smithy/node-http-handler': 4.0.3 + '@smithy/protocol-http': 5.0.1 + '@smithy/smithy-client': 4.1.6 + '@smithy/types': 4.1.0 + '@smithy/url-parser': 4.0.1 '@smithy/util-base64': 4.0.0 '@smithy/util-body-length-browser': 4.0.0 '@smithy/util-body-length-node': 4.0.0 - '@smithy/util-defaults-mode-browser': 4.0.15 - '@smithy/util-defaults-mode-node': 4.0.15 - '@smithy/util-endpoints': 3.0.5 - '@smithy/util-middleware': 4.0.3 - '@smithy/util-retry': 4.0.4 - '@smithy/util-stream': 4.2.1 + '@smithy/util-defaults-mode-browser': 4.0.7 + '@smithy/util-defaults-mode-node': 4.0.7 + '@smithy/util-endpoints': 3.0.1 + '@smithy/util-middleware': 4.0.1 + '@smithy/util-retry': 4.0.1 + '@smithy/util-stream': 4.1.2 + '@smithy/util-utf8': 4.0.0 + '@smithy/util-waiter': 4.0.2 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-sso@3.758.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.758.0 + '@aws-sdk/middleware-host-header': 3.734.0 + '@aws-sdk/middleware-logger': 3.734.0 + '@aws-sdk/middleware-recursion-detection': 3.734.0 + '@aws-sdk/middleware-user-agent': 3.758.0 + '@aws-sdk/region-config-resolver': 3.734.0 + '@aws-sdk/types': 3.734.0 + '@aws-sdk/util-endpoints': 3.743.0 + '@aws-sdk/util-user-agent-browser': 3.734.0 + '@aws-sdk/util-user-agent-node': 3.758.0 + '@smithy/config-resolver': 4.0.1 + '@smithy/core': 3.1.5 + '@smithy/fetch-http-handler': 5.0.1 + '@smithy/hash-node': 4.0.1 + '@smithy/invalid-dependency': 4.0.1 + '@smithy/middleware-content-length': 4.0.1 + '@smithy/middleware-endpoint': 4.0.6 + '@smithy/middleware-retry': 4.0.7 + '@smithy/middleware-serde': 4.0.2 + '@smithy/middleware-stack': 4.0.1 + '@smithy/node-config-provider': 4.0.1 + '@smithy/node-http-handler': 4.0.3 + '@smithy/protocol-http': 5.0.1 + '@smithy/smithy-client': 4.1.6 + '@smithy/types': 4.1.0 + '@smithy/url-parser': 4.0.1 + '@smithy/util-base64': 4.0.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-body-length-node': 4.0.0 + '@smithy/util-defaults-mode-browser': 4.0.7 + '@smithy/util-defaults-mode-node': 4.0.7 + '@smithy/util-endpoints': 3.0.1 + '@smithy/util-middleware': 4.0.1 + '@smithy/util-retry': 4.0.1 '@smithy/util-utf8': 4.0.0 - '@smithy/util-waiter': 4.0.4 tslib: 2.8.1 transitivePeerDependencies: - aws-crt @@ -3632,6 +3913,21 @@ snapshots: tslib: 2.8.1 transitivePeerDependencies: - aws-crt + optional: true + + '@aws-sdk/core@3.758.0': + dependencies: + '@aws-sdk/types': 3.734.0 + '@smithy/core': 3.1.5 + '@smithy/node-config-provider': 4.0.1 + '@smithy/property-provider': 4.0.1 + '@smithy/protocol-http': 5.0.1 + '@smithy/signature-v4': 5.0.1 + '@smithy/smithy-client': 4.1.6 + '@smithy/types': 4.1.0 + '@smithy/util-middleware': 4.0.1 + fast-xml-parser: 4.4.1 + tslib: 2.8.1 '@aws-sdk/core@3.816.0': dependencies: @@ -3646,6 +3942,7 @@ snapshots: '@smithy/util-middleware': 4.0.3 fast-xml-parser: 4.4.1 tslib: 2.8.1 + optional: true '@aws-sdk/credential-provider-cognito-identity@3.817.0': dependencies: @@ -3658,6 +3955,14 @@ snapshots: - aws-crt optional: true + '@aws-sdk/credential-provider-env@3.758.0': + dependencies: + '@aws-sdk/core': 3.758.0 + '@aws-sdk/types': 3.734.0 + '@smithy/property-provider': 4.0.1 + '@smithy/types': 4.1.0 + tslib: 2.8.1 + '@aws-sdk/credential-provider-env@3.816.0': dependencies: '@aws-sdk/core': 3.816.0 @@ -3665,6 +3970,20 @@ snapshots: '@smithy/property-provider': 4.0.3 '@smithy/types': 4.3.0 tslib: 2.8.1 + optional: true + + '@aws-sdk/credential-provider-http@3.758.0': + dependencies: + '@aws-sdk/core': 3.758.0 + '@aws-sdk/types': 3.734.0 + '@smithy/fetch-http-handler': 5.0.1 + '@smithy/node-http-handler': 4.0.3 + '@smithy/property-provider': 4.0.1 + '@smithy/protocol-http': 5.0.1 + '@smithy/smithy-client': 4.1.6 + '@smithy/types': 4.1.0 + '@smithy/util-stream': 4.1.2 + tslib: 2.8.1 '@aws-sdk/credential-provider-http@3.816.0': dependencies: @@ -3678,6 +3997,25 @@ snapshots: '@smithy/types': 4.3.0 '@smithy/util-stream': 4.2.1 tslib: 2.8.1 + optional: true + + '@aws-sdk/credential-provider-ini@3.758.0': + dependencies: + '@aws-sdk/core': 3.758.0 + '@aws-sdk/credential-provider-env': 3.758.0 + '@aws-sdk/credential-provider-http': 3.758.0 + '@aws-sdk/credential-provider-process': 3.758.0 + '@aws-sdk/credential-provider-sso': 3.758.0 + '@aws-sdk/credential-provider-web-identity': 3.758.0 + '@aws-sdk/nested-clients': 3.758.0 + '@aws-sdk/types': 3.734.0 + '@smithy/credential-provider-imds': 4.0.1 + '@smithy/property-provider': 4.0.1 + '@smithy/shared-ini-file-loader': 4.0.1 + '@smithy/types': 4.1.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt '@aws-sdk/credential-provider-ini@3.817.0': dependencies: @@ -3696,6 +4034,24 @@ snapshots: tslib: 2.8.1 transitivePeerDependencies: - aws-crt + optional: true + + '@aws-sdk/credential-provider-node@3.758.0': + dependencies: + '@aws-sdk/credential-provider-env': 3.758.0 + '@aws-sdk/credential-provider-http': 3.758.0 + '@aws-sdk/credential-provider-ini': 3.758.0 + '@aws-sdk/credential-provider-process': 3.758.0 + '@aws-sdk/credential-provider-sso': 3.758.0 + '@aws-sdk/credential-provider-web-identity': 3.758.0 + '@aws-sdk/types': 3.734.0 + '@smithy/credential-provider-imds': 4.0.1 + '@smithy/property-provider': 4.0.1 + '@smithy/shared-ini-file-loader': 4.0.1 + '@smithy/types': 4.1.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt '@aws-sdk/credential-provider-node@3.817.0': dependencies: @@ -3713,6 +4069,16 @@ snapshots: tslib: 2.8.1 transitivePeerDependencies: - aws-crt + optional: true + + '@aws-sdk/credential-provider-process@3.758.0': + dependencies: + '@aws-sdk/core': 3.758.0 + '@aws-sdk/types': 3.734.0 + '@smithy/property-provider': 4.0.1 + '@smithy/shared-ini-file-loader': 4.0.1 + '@smithy/types': 4.1.0 + tslib: 2.8.1 '@aws-sdk/credential-provider-process@3.816.0': dependencies: @@ -3722,6 +4088,20 @@ snapshots: '@smithy/shared-ini-file-loader': 4.0.3 '@smithy/types': 4.3.0 tslib: 2.8.1 + optional: true + + '@aws-sdk/credential-provider-sso@3.758.0': + dependencies: + '@aws-sdk/client-sso': 3.758.0 + '@aws-sdk/core': 3.758.0 + '@aws-sdk/token-providers': 3.758.0 + '@aws-sdk/types': 3.734.0 + '@smithy/property-provider': 4.0.1 + '@smithy/shared-ini-file-loader': 4.0.1 + '@smithy/types': 4.1.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt '@aws-sdk/credential-provider-sso@3.817.0': dependencies: @@ -3735,6 +4115,18 @@ snapshots: tslib: 2.8.1 transitivePeerDependencies: - aws-crt + optional: true + + '@aws-sdk/credential-provider-web-identity@3.758.0': + dependencies: + '@aws-sdk/core': 3.758.0 + '@aws-sdk/nested-clients': 3.758.0 + '@aws-sdk/types': 3.734.0 + '@smithy/property-provider': 4.0.1 + '@smithy/types': 4.1.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt '@aws-sdk/credential-provider-web-identity@3.817.0': dependencies: @@ -3746,6 +4138,7 @@ snapshots: tslib: 2.8.1 transitivePeerDependencies: - aws-crt + optional: true '@aws-sdk/credential-providers@3.817.0': dependencies: @@ -3772,50 +4165,64 @@ snapshots: - aws-crt optional: true - '@aws-sdk/middleware-bucket-endpoint@3.808.0': + '@aws-sdk/middleware-bucket-endpoint@3.734.0': dependencies: - '@aws-sdk/types': 3.804.0 - '@aws-sdk/util-arn-parser': 3.804.0 - '@smithy/node-config-provider': 4.1.2 - '@smithy/protocol-http': 5.1.1 - '@smithy/types': 4.3.0 + '@aws-sdk/types': 3.734.0 + '@aws-sdk/util-arn-parser': 3.723.0 + '@smithy/node-config-provider': 4.0.1 + '@smithy/protocol-http': 5.0.1 + '@smithy/types': 4.1.0 '@smithy/util-config-provider': 4.0.0 tslib: 2.8.1 - '@aws-sdk/middleware-expect-continue@3.804.0': + '@aws-sdk/middleware-expect-continue@3.734.0': dependencies: - '@aws-sdk/types': 3.804.0 - '@smithy/protocol-http': 5.1.1 - '@smithy/types': 4.3.0 + '@aws-sdk/types': 3.734.0 + '@smithy/protocol-http': 5.0.1 + '@smithy/types': 4.1.0 tslib: 2.8.1 - '@aws-sdk/middleware-flexible-checksums@3.816.0': + '@aws-sdk/middleware-flexible-checksums@3.758.0': dependencies: '@aws-crypto/crc32': 5.2.0 '@aws-crypto/crc32c': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/core': 3.816.0 - '@aws-sdk/types': 3.804.0 + '@aws-sdk/core': 3.758.0 + '@aws-sdk/types': 3.734.0 '@smithy/is-array-buffer': 4.0.0 - '@smithy/node-config-provider': 4.1.2 - '@smithy/protocol-http': 5.1.1 - '@smithy/types': 4.3.0 - '@smithy/util-middleware': 4.0.3 - '@smithy/util-stream': 4.2.1 + '@smithy/node-config-provider': 4.0.1 + '@smithy/protocol-http': 5.0.1 + '@smithy/types': 4.1.0 + '@smithy/util-middleware': 4.0.1 + '@smithy/util-stream': 4.1.2 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 + '@aws-sdk/middleware-host-header@3.734.0': + dependencies: + '@aws-sdk/types': 3.734.0 + '@smithy/protocol-http': 5.0.1 + '@smithy/types': 4.1.0 + tslib: 2.8.1 + '@aws-sdk/middleware-host-header@3.804.0': dependencies: '@aws-sdk/types': 3.804.0 '@smithy/protocol-http': 5.1.1 '@smithy/types': 4.3.0 tslib: 2.8.1 + optional: true - '@aws-sdk/middleware-location-constraint@3.804.0': + '@aws-sdk/middleware-location-constraint@3.734.0': dependencies: - '@aws-sdk/types': 3.804.0 - '@smithy/types': 4.3.0 + '@aws-sdk/types': 3.734.0 + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-logger@3.734.0': + dependencies: + '@aws-sdk/types': 3.734.0 + '@smithy/types': 4.1.0 tslib: 2.8.1 '@aws-sdk/middleware-logger@3.804.0': @@ -3823,35 +4230,54 @@ snapshots: '@aws-sdk/types': 3.804.0 '@smithy/types': 4.3.0 tslib: 2.8.1 + optional: true - '@aws-sdk/middleware-recursion-detection@3.804.0': + '@aws-sdk/middleware-recursion-detection@3.734.0': dependencies: - '@aws-sdk/types': 3.804.0 - '@smithy/protocol-http': 5.1.1 - '@smithy/types': 4.3.0 + '@aws-sdk/types': 3.734.0 + '@smithy/protocol-http': 5.0.1 + '@smithy/types': 4.1.0 tslib: 2.8.1 - '@aws-sdk/middleware-sdk-s3@3.816.0': + '@aws-sdk/middleware-recursion-detection@3.804.0': dependencies: - '@aws-sdk/core': 3.816.0 '@aws-sdk/types': 3.804.0 - '@aws-sdk/util-arn-parser': 3.804.0 - '@smithy/core': 3.4.0 - '@smithy/node-config-provider': 4.1.2 '@smithy/protocol-http': 5.1.1 - '@smithy/signature-v4': 5.1.1 - '@smithy/smithy-client': 4.3.0 '@smithy/types': 4.3.0 + tslib: 2.8.1 + optional: true + + '@aws-sdk/middleware-sdk-s3@3.758.0': + dependencies: + '@aws-sdk/core': 3.758.0 + '@aws-sdk/types': 3.734.0 + '@aws-sdk/util-arn-parser': 3.723.0 + '@smithy/core': 3.1.5 + '@smithy/node-config-provider': 4.0.1 + '@smithy/protocol-http': 5.0.1 + '@smithy/signature-v4': 5.0.1 + '@smithy/smithy-client': 4.1.6 + '@smithy/types': 4.1.0 '@smithy/util-config-provider': 4.0.0 - '@smithy/util-middleware': 4.0.3 - '@smithy/util-stream': 4.2.1 + '@smithy/util-middleware': 4.0.1 + '@smithy/util-stream': 4.1.2 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 - '@aws-sdk/middleware-ssec@3.804.0': + '@aws-sdk/middleware-ssec@3.734.0': dependencies: - '@aws-sdk/types': 3.804.0 - '@smithy/types': 4.3.0 + '@aws-sdk/types': 3.734.0 + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-user-agent@3.758.0': + dependencies: + '@aws-sdk/core': 3.758.0 + '@aws-sdk/types': 3.734.0 + '@aws-sdk/util-endpoints': 3.743.0 + '@smithy/core': 3.1.5 + '@smithy/protocol-http': 5.0.1 + '@smithy/types': 4.1.0 tslib: 2.8.1 '@aws-sdk/middleware-user-agent@3.816.0': @@ -3863,6 +4289,50 @@ snapshots: '@smithy/protocol-http': 5.1.1 '@smithy/types': 4.3.0 tslib: 2.8.1 + optional: true + + '@aws-sdk/nested-clients@3.758.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.758.0 + '@aws-sdk/middleware-host-header': 3.734.0 + '@aws-sdk/middleware-logger': 3.734.0 + '@aws-sdk/middleware-recursion-detection': 3.734.0 + '@aws-sdk/middleware-user-agent': 3.758.0 + '@aws-sdk/region-config-resolver': 3.734.0 + '@aws-sdk/types': 3.734.0 + '@aws-sdk/util-endpoints': 3.743.0 + '@aws-sdk/util-user-agent-browser': 3.734.0 + '@aws-sdk/util-user-agent-node': 3.758.0 + '@smithy/config-resolver': 4.0.1 + '@smithy/core': 3.1.5 + '@smithy/fetch-http-handler': 5.0.1 + '@smithy/hash-node': 4.0.1 + '@smithy/invalid-dependency': 4.0.1 + '@smithy/middleware-content-length': 4.0.1 + '@smithy/middleware-endpoint': 4.0.6 + '@smithy/middleware-retry': 4.0.7 + '@smithy/middleware-serde': 4.0.2 + '@smithy/middleware-stack': 4.0.1 + '@smithy/node-config-provider': 4.0.1 + '@smithy/node-http-handler': 4.0.3 + '@smithy/protocol-http': 5.0.1 + '@smithy/smithy-client': 4.1.6 + '@smithy/types': 4.1.0 + '@smithy/url-parser': 4.0.1 + '@smithy/util-base64': 4.0.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-body-length-node': 4.0.0 + '@smithy/util-defaults-mode-browser': 4.0.7 + '@smithy/util-defaults-mode-node': 4.0.7 + '@smithy/util-endpoints': 3.0.1 + '@smithy/util-middleware': 4.0.1 + '@smithy/util-retry': 4.0.1 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt '@aws-sdk/nested-clients@3.817.0': dependencies: @@ -3906,6 +4376,16 @@ snapshots: tslib: 2.8.1 transitivePeerDependencies: - aws-crt + optional: true + + '@aws-sdk/region-config-resolver@3.734.0': + dependencies: + '@aws-sdk/types': 3.734.0 + '@smithy/node-config-provider': 4.0.1 + '@smithy/types': 4.1.0 + '@smithy/util-config-provider': 4.0.0 + '@smithy/util-middleware': 4.0.1 + tslib: 2.8.1 '@aws-sdk/region-config-resolver@3.808.0': dependencies: @@ -3915,15 +4395,27 @@ snapshots: '@smithy/util-config-provider': 4.0.0 '@smithy/util-middleware': 4.0.3 tslib: 2.8.1 + optional: true + + '@aws-sdk/signature-v4-multi-region@3.758.0': + dependencies: + '@aws-sdk/middleware-sdk-s3': 3.758.0 + '@aws-sdk/types': 3.734.0 + '@smithy/protocol-http': 5.0.1 + '@smithy/signature-v4': 5.0.1 + '@smithy/types': 4.1.0 + tslib: 2.8.1 - '@aws-sdk/signature-v4-multi-region@3.816.0': + '@aws-sdk/token-providers@3.758.0': dependencies: - '@aws-sdk/middleware-sdk-s3': 3.816.0 - '@aws-sdk/types': 3.804.0 - '@smithy/protocol-http': 5.1.1 - '@smithy/signature-v4': 5.1.1 - '@smithy/types': 4.3.0 + '@aws-sdk/nested-clients': 3.758.0 + '@aws-sdk/types': 3.734.0 + '@smithy/property-provider': 4.0.1 + '@smithy/shared-ini-file-loader': 4.0.1 + '@smithy/types': 4.1.0 tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt '@aws-sdk/token-providers@3.817.0': dependencies: @@ -3936,14 +4428,28 @@ snapshots: tslib: 2.8.1 transitivePeerDependencies: - aws-crt + optional: true + + '@aws-sdk/types@3.734.0': + dependencies: + '@smithy/types': 4.1.0 + tslib: 2.8.1 '@aws-sdk/types@3.804.0': dependencies: '@smithy/types': 4.3.0 tslib: 2.8.1 + optional: true + + '@aws-sdk/util-arn-parser@3.723.0': + dependencies: + tslib: 2.8.1 - '@aws-sdk/util-arn-parser@3.804.0': + '@aws-sdk/util-endpoints@3.743.0': dependencies: + '@aws-sdk/types': 3.734.0 + '@smithy/types': 4.1.0 + '@smithy/util-endpoints': 3.0.1 tslib: 2.8.1 '@aws-sdk/util-endpoints@3.808.0': @@ -3952,9 +4458,17 @@ snapshots: '@smithy/types': 4.3.0 '@smithy/util-endpoints': 3.0.5 tslib: 2.8.1 + optional: true + + '@aws-sdk/util-locate-window@3.723.0': + dependencies: + tslib: 2.8.1 - '@aws-sdk/util-locate-window@3.804.0': + '@aws-sdk/util-user-agent-browser@3.734.0': dependencies: + '@aws-sdk/types': 3.734.0 + '@smithy/types': 4.1.0 + bowser: 2.11.0 tslib: 2.8.1 '@aws-sdk/util-user-agent-browser@3.804.0': @@ -3963,6 +4477,15 @@ snapshots: '@smithy/types': 4.3.0 bowser: 2.11.0 tslib: 2.8.1 + optional: true + + '@aws-sdk/util-user-agent-node@3.758.0': + dependencies: + '@aws-sdk/middleware-user-agent': 3.758.0 + '@aws-sdk/types': 3.734.0 + '@smithy/node-config-provider': 4.0.1 + '@smithy/types': 4.1.0 + tslib: 2.8.1 '@aws-sdk/util-user-agent-node@3.816.0': dependencies: @@ -3971,204 +4494,205 @@ snapshots: '@smithy/node-config-provider': 4.1.2 '@smithy/types': 4.3.0 tslib: 2.8.1 + optional: true - '@aws-sdk/xml-builder@3.804.0': + '@aws-sdk/xml-builder@3.734.0': dependencies: - '@smithy/types': 4.3.0 + '@smithy/types': 4.1.0 tslib: 2.8.1 - '@babel/code-frame@7.27.1': + '@babel/code-frame@7.26.2': dependencies: - '@babel/helper-validator-identifier': 7.27.1 + '@babel/helper-validator-identifier': 7.25.9 js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.27.3': {} + '@babel/compat-data@7.26.8': {} - '@babel/core@7.27.3': + '@babel/core@7.26.10': dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.27.3 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.3) - '@babel/helpers': 7.27.3 - '@babel/parser': 7.27.3 - '@babel/template': 7.27.2 - '@babel/traverse': 7.27.3 - '@babel/types': 7.27.3 + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.10 + '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10) + '@babel/helpers': 7.26.10 + '@babel/parser': 7.26.10 + '@babel/template': 7.26.9 + '@babel/traverse': 7.26.10 + '@babel/types': 7.26.10 convert-source-map: 2.0.0 - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.0(supports-color@5.5.0) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/generator@7.27.3': + '@babel/generator@7.26.10': dependencies: - '@babel/parser': 7.27.3 - '@babel/types': 7.27.3 + '@babel/parser': 7.26.10 + '@babel/types': 7.26.10 '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.1.0 - '@babel/helper-compilation-targets@7.27.2': + '@babel/helper-compilation-targets@7.26.5': dependencies: - '@babel/compat-data': 7.27.3 - '@babel/helper-validator-option': 7.27.1 - browserslist: 4.24.5 + '@babel/compat-data': 7.26.8 + '@babel/helper-validator-option': 7.25.9 + browserslist: 4.24.4 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-module-imports@7.27.1': + '@babel/helper-module-imports@7.25.9': dependencies: - '@babel/traverse': 7.27.3 - '@babel/types': 7.27.3 + '@babel/traverse': 7.26.10 + '@babel/types': 7.26.10 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.27.3(@babel/core@7.27.3)': + '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.27.3 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.27.3 + '@babel/core': 7.26.10 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.26.10 transitivePeerDependencies: - supports-color - '@babel/helper-plugin-utils@7.27.1': {} + '@babel/helper-plugin-utils@7.26.5': {} - '@babel/helper-string-parser@7.27.1': {} + '@babel/helper-string-parser@7.25.9': {} - '@babel/helper-validator-identifier@7.27.1': {} + '@babel/helper-validator-identifier@7.25.9': {} - '@babel/helper-validator-option@7.27.1': {} + '@babel/helper-validator-option@7.25.9': {} - '@babel/helpers@7.27.3': + '@babel/helpers@7.26.10': dependencies: - '@babel/template': 7.27.2 - '@babel/types': 7.27.3 + '@babel/template': 7.26.9 + '@babel/types': 7.26.10 - '@babel/parser@7.27.3': + '@babel/parser@7.26.10': dependencies: - '@babel/types': 7.27.3 + '@babel/types': 7.26.10 - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.27.3)': + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.27.3 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.27.3)': + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.27.3 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.27.3)': + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.27.3 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.27.3)': + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.27.3 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.27.3 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.27.3)': + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.27.3 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.27.3)': + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.27.3 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.27.3 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.27.3)': + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.27.3 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.27.3)': + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.27.3 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.27.3)': + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.27.3 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.27.3)': + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.27.3 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.27.3)': + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.27.3 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.27.3)': + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.27.3 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.27.3)': + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.27.3 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.27.3)': + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.27.3 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.27.3 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/template@7.27.2': + '@babel/template@7.26.9': dependencies: - '@babel/code-frame': 7.27.1 - '@babel/parser': 7.27.3 - '@babel/types': 7.27.3 + '@babel/code-frame': 7.26.2 + '@babel/parser': 7.26.10 + '@babel/types': 7.26.10 - '@babel/traverse@7.27.3': + '@babel/traverse@7.26.10': dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.27.3 - '@babel/parser': 7.27.3 - '@babel/template': 7.27.2 - '@babel/types': 7.27.3 - debug: 4.4.1(supports-color@5.5.0) + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.10 + '@babel/parser': 7.26.10 + '@babel/template': 7.26.9 + '@babel/types': 7.26.10 + debug: 4.4.0(supports-color@5.5.0) globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.27.3': + '@babel/types@7.26.10': dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 '@bcoe/v8-coverage@0.2.3': {} - '@commitlint/cli@19.8.1(@types/node@22.15.23)(typescript@5.8.3)': + '@commitlint/cli@19.8.1(@types/node@22.13.10)(typescript@5.8.2)': dependencies: '@commitlint/format': 19.8.1 '@commitlint/lint': 19.8.1 - '@commitlint/load': 19.8.1(@types/node@22.15.23)(typescript@5.8.3) + '@commitlint/load': 19.8.1(@types/node@22.13.10)(typescript@5.8.2) '@commitlint/read': 19.8.1 '@commitlint/types': 19.8.1 tinyexec: 1.0.1 @@ -4206,7 +4730,7 @@ snapshots: '@commitlint/is-ignored@19.8.1': dependencies: '@commitlint/types': 19.8.1 - semver: 7.7.2 + semver: 7.7.1 '@commitlint/lint@19.8.1': dependencies: @@ -4215,15 +4739,15 @@ snapshots: '@commitlint/rules': 19.8.1 '@commitlint/types': 19.8.1 - '@commitlint/load@19.8.1(@types/node@22.15.23)(typescript@5.8.3)': + '@commitlint/load@19.8.1(@types/node@22.13.10)(typescript@5.8.2)': dependencies: '@commitlint/config-validator': 19.8.1 '@commitlint/execute-rule': 19.8.1 '@commitlint/resolve-extends': 19.8.1 '@commitlint/types': 19.8.1 chalk: 5.4.1 - cosmiconfig: 9.0.0(typescript@5.8.3) - cosmiconfig-typescript-loader: 6.1.0(@types/node@22.15.23)(cosmiconfig@9.0.0(typescript@5.8.3))(typescript@5.8.3) + cosmiconfig: 9.0.0(typescript@5.8.2) + cosmiconfig-typescript-loader: 6.1.0(@types/node@22.13.10)(cosmiconfig@9.0.0(typescript@5.8.2))(typescript@5.8.2) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -4304,7 +4828,7 @@ snapshots: '@sapphire/snowflake': 3.5.3 '@vladfrangu/async_event_emitter': 2.4.6 discord-api-types: 0.38.8 - magic-bytes.js: 1.12.1 + magic-bytes.js: 1.10.0 tslib: 2.8.1 undici: 6.21.1 @@ -4316,40 +4840,55 @@ snapshots: '@discordjs/rest': 2.5.0 '@discordjs/util': 1.1.1 '@sapphire/async-queue': 1.5.5 - '@types/ws': 8.18.1 + '@types/ws': 8.18.0 '@vladfrangu/async_event_emitter': 2.4.6 discord-api-types: 0.38.8 tslib: 2.8.1 - ws: 8.18.2 + ws: 8.18.1 transitivePeerDependencies: - bufferutil - utf-8-validate - '@eslint-community/eslint-utils@4.7.0(eslint@9.27.0(jiti@2.4.2))': + '@discordjs/ws@2.0.2': dependencies: - eslint: 9.27.0(jiti@2.4.2) + '@discordjs/collection': 2.1.1 + '@discordjs/rest': 2.5.0 + '@discordjs/util': 1.1.1 + '@sapphire/async-queue': 1.5.5 + '@types/ws': 8.18.0 + '@vladfrangu/async_event_emitter': 2.4.6 + discord-api-types: 0.38.8 + tslib: 2.8.1 + ws: 8.18.1 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@eslint-community/eslint-utils@4.5.1(eslint@9.22.0(jiti@2.4.2))': + dependencies: + eslint: 9.22.0(jiti@2.4.2) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint/config-array@0.20.0': + '@eslint/config-array@0.19.2': dependencies: '@eslint/object-schema': 2.1.6 - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.0(supports-color@5.5.0) minimatch: 3.1.2 transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.2.2': {} + '@eslint/config-helpers@0.1.0': {} - '@eslint/core@0.14.0': + '@eslint/core@0.12.0': dependencies: '@types/json-schema': 7.0.15 - '@eslint/eslintrc@3.3.1': + '@eslint/eslintrc@3.3.0': dependencies: ajv: 6.12.6 - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.0(supports-color@5.5.0) espree: 10.3.0 globals: 14.0.0 ignore: 5.3.2 @@ -4360,26 +4899,26 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.27.0': {} + '@eslint/js@9.22.0': {} '@eslint/object-schema@2.1.6': {} - '@eslint/plugin-kit@0.3.1': + '@eslint/plugin-kit@0.2.7': dependencies: - '@eslint/core': 0.14.0 + '@eslint/core': 0.12.0 levn: 0.4.1 - '@grammyjs/types@3.20.0': {} + '@grammyjs/types@3.19.0': {} - '@grpc/grpc-js@1.13.4': + '@grpc/grpc-js@1.13.0': dependencies: - '@grpc/proto-loader': 0.7.15 + '@grpc/proto-loader': 0.7.13 '@js-sdsl/ordered-map': 4.4.2 - '@grpc/proto-loader@0.7.15': + '@grpc/proto-loader@0.7.13': dependencies: lodash.camelcase: 4.3.0 - long: 5.3.2 + long: 5.3.1 protobufjs: 7.4.0 yargs: 17.7.2 @@ -4400,7 +4939,7 @@ snapshots: '@humanwhocodes/retry@0.3.1': {} - '@humanwhocodes/retry@0.4.3': {} + '@humanwhocodes/retry@0.4.2': {} '@ioredis/commands@1.2.0': {} @@ -4417,27 +4956,27 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 22.15.23 + '@types/node': 22.13.10 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 slash: 3.0.0 - '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.11.29)(@types/node@22.15.23)(typescript@5.8.3))': + '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.11.9)(@types/node@22.13.10)(typescript@5.8.2))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.23 + '@types/node': 22.13.10 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.15.23)(ts-node@10.9.2(@swc/core@1.11.29)(@types/node@22.15.23)(typescript@5.8.3)) + jest-config: 29.7.0(@types/node@22.13.10)(ts-node@10.9.2(@swc/core@1.11.9)(@types/node@22.13.10)(typescript@5.8.2)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -4462,7 +5001,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.23 + '@types/node': 22.13.10 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -4480,7 +5019,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.15.23 + '@types/node': 22.13.10 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -4502,7 +5041,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 22.15.23 + '@types/node': 22.13.10 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -4549,7 +5088,7 @@ snapshots: '@jest/transform@29.7.0': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.26.10 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 babel-plugin-istanbul: 6.1.1 @@ -4561,7 +5100,7 @@ snapshots: jest-regex-util: 29.6.3 jest-util: 29.7.0 micromatch: 4.0.8 - pirates: 4.0.7 + pirates: 4.0.6 slash: 3.0.0 write-file-atomic: 4.0.2 transitivePeerDependencies: @@ -4572,7 +5111,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.15.23 + '@types/node': 22.13.10 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -4612,18 +5151,23 @@ snapshots: '@jsonjoy.com/json-pack@1.2.0(tslib@2.8.1)': dependencies: '@jsonjoy.com/base64': 1.1.2(tslib@2.8.1) - '@jsonjoy.com/util': 1.6.0(tslib@2.8.1) + '@jsonjoy.com/util': 1.5.0(tslib@2.8.1) hyperdyperid: 1.2.0 thingies: 1.21.0(tslib@2.8.1) tslib: 2.8.1 - '@jsonjoy.com/util@1.6.0(tslib@2.8.1)': + '@jsonjoy.com/util@1.5.0(tslib@2.8.1)': dependencies: tslib: 2.8.1 + '@mongodb-js/saslprep@1.2.0': + dependencies: + sparse-bitfield: 3.0.3 + '@mongodb-js/saslprep@1.2.2': dependencies: sparse-bitfield: 3.0.3 + optional: true '@nodelib/fs.scandir@2.1.5': dependencies: @@ -4637,7 +5181,7 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.1 - '@pkgr/core@0.2.4': {} + '@pkgr/core@0.1.1': {} '@protobufjs/aspromise@1.1.2': {} @@ -4689,10 +5233,16 @@ snapshots: dependencies: '@sinonjs/commons': 3.0.1 + '@smithy/abort-controller@4.0.1': + dependencies: + '@smithy/types': 4.1.0 + tslib: 2.8.1 + '@smithy/abort-controller@4.0.3': dependencies: '@smithy/types': 4.3.0 tslib: 2.8.1 + optional: true '@smithy/chunked-blob-reader-native@4.0.0': dependencies: @@ -4703,6 +5253,14 @@ snapshots: dependencies: tslib: 2.8.1 + '@smithy/config-resolver@4.0.1': + dependencies: + '@smithy/node-config-provider': 4.0.1 + '@smithy/types': 4.1.0 + '@smithy/util-config-provider': 4.0.0 + '@smithy/util-middleware': 4.0.1 + tslib: 2.8.1 + '@smithy/config-resolver@4.1.3': dependencies: '@smithy/node-config-provider': 4.1.2 @@ -4710,6 +5268,18 @@ snapshots: '@smithy/util-config-provider': 4.0.0 '@smithy/util-middleware': 4.0.3 tslib: 2.8.1 + optional: true + + '@smithy/core@3.1.5': + dependencies: + '@smithy/middleware-serde': 4.0.2 + '@smithy/protocol-http': 5.0.1 + '@smithy/types': 4.1.0 + '@smithy/util-body-length-browser': 4.0.0 + '@smithy/util-middleware': 4.0.1 + '@smithy/util-stream': 4.1.2 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 '@smithy/core@3.4.0': dependencies: @@ -4721,6 +5291,15 @@ snapshots: '@smithy/util-stream': 4.2.1 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 + optional: true + + '@smithy/credential-provider-imds@4.0.1': + dependencies: + '@smithy/node-config-provider': 4.0.1 + '@smithy/property-provider': 4.0.1 + '@smithy/types': 4.1.0 + '@smithy/url-parser': 4.0.1 + tslib: 2.8.1 '@smithy/credential-provider-imds@4.0.5': dependencies: @@ -4729,35 +5308,44 @@ snapshots: '@smithy/types': 4.3.0 '@smithy/url-parser': 4.0.3 tslib: 2.8.1 + optional: true - '@smithy/eventstream-codec@4.0.3': + '@smithy/eventstream-codec@4.0.1': dependencies: '@aws-crypto/crc32': 5.2.0 - '@smithy/types': 4.3.0 + '@smithy/types': 4.1.0 '@smithy/util-hex-encoding': 4.0.0 tslib: 2.8.1 - '@smithy/eventstream-serde-browser@4.0.3': + '@smithy/eventstream-serde-browser@4.0.1': dependencies: - '@smithy/eventstream-serde-universal': 4.0.3 - '@smithy/types': 4.3.0 + '@smithy/eventstream-serde-universal': 4.0.1 + '@smithy/types': 4.1.0 tslib: 2.8.1 - '@smithy/eventstream-serde-config-resolver@4.1.1': + '@smithy/eventstream-serde-config-resolver@4.0.1': dependencies: - '@smithy/types': 4.3.0 + '@smithy/types': 4.1.0 tslib: 2.8.1 - '@smithy/eventstream-serde-node@4.0.3': + '@smithy/eventstream-serde-node@4.0.1': dependencies: - '@smithy/eventstream-serde-universal': 4.0.3 - '@smithy/types': 4.3.0 + '@smithy/eventstream-serde-universal': 4.0.1 + '@smithy/types': 4.1.0 tslib: 2.8.1 - '@smithy/eventstream-serde-universal@4.0.3': + '@smithy/eventstream-serde-universal@4.0.1': dependencies: - '@smithy/eventstream-codec': 4.0.3 - '@smithy/types': 4.3.0 + '@smithy/eventstream-codec': 4.0.1 + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@smithy/fetch-http-handler@5.0.1': + dependencies: + '@smithy/protocol-http': 5.0.1 + '@smithy/querystring-builder': 4.0.1 + '@smithy/types': 4.1.0 + '@smithy/util-base64': 4.0.0 tslib: 2.8.1 '@smithy/fetch-http-handler@5.0.3': @@ -4767,12 +5355,20 @@ snapshots: '@smithy/types': 4.3.0 '@smithy/util-base64': 4.0.0 tslib: 2.8.1 + optional: true - '@smithy/hash-blob-browser@4.0.3': + '@smithy/hash-blob-browser@4.0.1': dependencies: '@smithy/chunked-blob-reader': 5.0.0 '@smithy/chunked-blob-reader-native': 4.0.0 - '@smithy/types': 4.3.0 + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@smithy/hash-node@4.0.1': + dependencies: + '@smithy/types': 4.1.0 + '@smithy/util-buffer-from': 4.0.0 + '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 '@smithy/hash-node@4.0.3': @@ -4781,17 +5377,24 @@ snapshots: '@smithy/util-buffer-from': 4.0.0 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 + optional: true - '@smithy/hash-stream-node@4.0.3': + '@smithy/hash-stream-node@4.0.1': dependencies: - '@smithy/types': 4.3.0 + '@smithy/types': 4.1.0 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 + '@smithy/invalid-dependency@4.0.1': + dependencies: + '@smithy/types': 4.1.0 + tslib: 2.8.1 + '@smithy/invalid-dependency@4.0.3': dependencies: '@smithy/types': 4.3.0 tslib: 2.8.1 + optional: true '@smithy/is-array-buffer@2.2.0': dependencies: @@ -4801,17 +5404,35 @@ snapshots: dependencies: tslib: 2.8.1 - '@smithy/md5-js@4.0.3': + '@smithy/md5-js@4.0.1': dependencies: - '@smithy/types': 4.3.0 + '@smithy/types': 4.1.0 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 + '@smithy/middleware-content-length@4.0.1': + dependencies: + '@smithy/protocol-http': 5.0.1 + '@smithy/types': 4.1.0 + tslib: 2.8.1 + '@smithy/middleware-content-length@4.0.3': dependencies: '@smithy/protocol-http': 5.1.1 '@smithy/types': 4.3.0 tslib: 2.8.1 + optional: true + + '@smithy/middleware-endpoint@4.0.6': + dependencies: + '@smithy/core': 3.1.5 + '@smithy/middleware-serde': 4.0.2 + '@smithy/node-config-provider': 4.0.1 + '@smithy/shared-ini-file-loader': 4.0.1 + '@smithy/types': 4.1.0 + '@smithy/url-parser': 4.0.1 + '@smithy/util-middleware': 4.0.1 + tslib: 2.8.1 '@smithy/middleware-endpoint@4.1.7': dependencies: @@ -4823,6 +5444,19 @@ snapshots: '@smithy/url-parser': 4.0.3 '@smithy/util-middleware': 4.0.3 tslib: 2.8.1 + optional: true + + '@smithy/middleware-retry@4.0.7': + dependencies: + '@smithy/node-config-provider': 4.0.1 + '@smithy/protocol-http': 5.0.1 + '@smithy/service-error-classification': 4.0.1 + '@smithy/smithy-client': 4.1.6 + '@smithy/types': 4.1.0 + '@smithy/util-middleware': 4.0.1 + '@smithy/util-retry': 4.0.1 + tslib: 2.8.1 + uuid: 9.0.1 '@smithy/middleware-retry@4.1.8': dependencies: @@ -4835,17 +5469,37 @@ snapshots: '@smithy/util-retry': 4.0.4 tslib: 2.8.1 uuid: 9.0.1 + optional: true + + '@smithy/middleware-serde@4.0.2': + dependencies: + '@smithy/types': 4.1.0 + tslib: 2.8.1 '@smithy/middleware-serde@4.0.6': dependencies: '@smithy/protocol-http': 5.1.1 '@smithy/types': 4.3.0 tslib: 2.8.1 + optional: true + + '@smithy/middleware-stack@4.0.1': + dependencies: + '@smithy/types': 4.1.0 + tslib: 2.8.1 '@smithy/middleware-stack@4.0.3': dependencies: '@smithy/types': 4.3.0 tslib: 2.8.1 + optional: true + + '@smithy/node-config-provider@4.0.1': + dependencies: + '@smithy/property-provider': 4.0.1 + '@smithy/shared-ini-file-loader': 4.0.1 + '@smithy/types': 4.1.0 + tslib: 2.8.1 '@smithy/node-config-provider@4.1.2': dependencies: @@ -4853,6 +5507,15 @@ snapshots: '@smithy/shared-ini-file-loader': 4.0.3 '@smithy/types': 4.3.0 tslib: 2.8.1 + optional: true + + '@smithy/node-http-handler@4.0.3': + dependencies: + '@smithy/abort-controller': 4.0.1 + '@smithy/protocol-http': 5.0.1 + '@smithy/querystring-builder': 4.0.1 + '@smithy/types': 4.1.0 + tslib: 2.8.1 '@smithy/node-http-handler@4.0.5': dependencies: @@ -4861,36 +5524,84 @@ snapshots: '@smithy/querystring-builder': 4.0.3 '@smithy/types': 4.3.0 tslib: 2.8.1 + optional: true + + '@smithy/property-provider@4.0.1': + dependencies: + '@smithy/types': 4.1.0 + tslib: 2.8.1 '@smithy/property-provider@4.0.3': dependencies: '@smithy/types': 4.3.0 tslib: 2.8.1 + optional: true + + '@smithy/protocol-http@5.0.1': + dependencies: + '@smithy/types': 4.1.0 + tslib: 2.8.1 '@smithy/protocol-http@5.1.1': dependencies: '@smithy/types': 4.3.0 tslib: 2.8.1 + optional: true + + '@smithy/querystring-builder@4.0.1': + dependencies: + '@smithy/types': 4.1.0 + '@smithy/util-uri-escape': 4.0.0 + tslib: 2.8.1 '@smithy/querystring-builder@4.0.3': dependencies: '@smithy/types': 4.3.0 '@smithy/util-uri-escape': 4.0.0 tslib: 2.8.1 + optional: true + + '@smithy/querystring-parser@4.0.1': + dependencies: + '@smithy/types': 4.1.0 + tslib: 2.8.1 '@smithy/querystring-parser@4.0.3': dependencies: '@smithy/types': 4.3.0 tslib: 2.8.1 + optional: true + + '@smithy/service-error-classification@4.0.1': + dependencies: + '@smithy/types': 4.1.0 '@smithy/service-error-classification@4.0.4': dependencies: '@smithy/types': 4.3.0 + optional: true + + '@smithy/shared-ini-file-loader@4.0.1': + dependencies: + '@smithy/types': 4.1.0 + tslib: 2.8.1 '@smithy/shared-ini-file-loader@4.0.3': dependencies: '@smithy/types': 4.3.0 tslib: 2.8.1 + optional: true + + '@smithy/signature-v4@5.0.1': + dependencies: + '@smithy/is-array-buffer': 4.0.0 + '@smithy/protocol-http': 5.0.1 + '@smithy/types': 4.1.0 + '@smithy/util-hex-encoding': 4.0.0 + '@smithy/util-middleware': 4.0.1 + '@smithy/util-uri-escape': 4.0.0 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 '@smithy/signature-v4@5.1.1': dependencies: @@ -4902,6 +5613,17 @@ snapshots: '@smithy/util-uri-escape': 4.0.0 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 + optional: true + + '@smithy/smithy-client@4.1.6': + dependencies: + '@smithy/core': 3.1.5 + '@smithy/middleware-endpoint': 4.0.6 + '@smithy/middleware-stack': 4.0.1 + '@smithy/protocol-http': 5.0.1 + '@smithy/types': 4.1.0 + '@smithy/util-stream': 4.1.2 + tslib: 2.8.1 '@smithy/smithy-client@4.3.0': dependencies: @@ -4912,16 +5634,29 @@ snapshots: '@smithy/types': 4.3.0 '@smithy/util-stream': 4.2.1 tslib: 2.8.1 + optional: true + + '@smithy/types@4.1.0': + dependencies: + tslib: 2.8.1 '@smithy/types@4.3.0': dependencies: tslib: 2.8.1 + optional: true + + '@smithy/url-parser@4.0.1': + dependencies: + '@smithy/querystring-parser': 4.0.1 + '@smithy/types': 4.1.0 + tslib: 2.8.1 '@smithy/url-parser@4.0.3': dependencies: '@smithy/querystring-parser': 4.0.3 '@smithy/types': 4.3.0 tslib: 2.8.1 + optional: true '@smithy/util-base64@4.0.0': dependencies: @@ -4958,6 +5693,15 @@ snapshots: '@smithy/types': 4.3.0 bowser: 2.11.0 tslib: 2.8.1 + optional: true + + '@smithy/util-defaults-mode-browser@4.0.7': + dependencies: + '@smithy/property-provider': 4.0.1 + '@smithy/smithy-client': 4.1.6 + '@smithy/types': 4.1.0 + bowser: 2.11.0 + tslib: 2.8.1 '@smithy/util-defaults-mode-node@4.0.15': dependencies: @@ -4968,27 +5712,69 @@ snapshots: '@smithy/smithy-client': 4.3.0 '@smithy/types': 4.3.0 tslib: 2.8.1 + optional: true + + '@smithy/util-defaults-mode-node@4.0.7': + dependencies: + '@smithy/config-resolver': 4.0.1 + '@smithy/credential-provider-imds': 4.0.1 + '@smithy/node-config-provider': 4.0.1 + '@smithy/property-provider': 4.0.1 + '@smithy/smithy-client': 4.1.6 + '@smithy/types': 4.1.0 + tslib: 2.8.1 + + '@smithy/util-endpoints@3.0.1': + dependencies: + '@smithy/node-config-provider': 4.0.1 + '@smithy/types': 4.1.0 + tslib: 2.8.1 '@smithy/util-endpoints@3.0.5': dependencies: '@smithy/node-config-provider': 4.1.2 '@smithy/types': 4.3.0 tslib: 2.8.1 + optional: true '@smithy/util-hex-encoding@4.0.0': dependencies: tslib: 2.8.1 + '@smithy/util-middleware@4.0.1': + dependencies: + '@smithy/types': 4.1.0 + tslib: 2.8.1 + '@smithy/util-middleware@4.0.3': dependencies: '@smithy/types': 4.3.0 tslib: 2.8.1 + optional: true + + '@smithy/util-retry@4.0.1': + dependencies: + '@smithy/service-error-classification': 4.0.1 + '@smithy/types': 4.1.0 + tslib: 2.8.1 '@smithy/util-retry@4.0.4': dependencies: '@smithy/service-error-classification': 4.0.4 '@smithy/types': 4.3.0 tslib: 2.8.1 + optional: true + + '@smithy/util-stream@4.1.2': + dependencies: + '@smithy/fetch-http-handler': 5.0.1 + '@smithy/node-http-handler': 4.0.3 + '@smithy/types': 4.1.0 + '@smithy/util-base64': 4.0.0 + '@smithy/util-buffer-from': 4.0.0 + '@smithy/util-hex-encoding': 4.0.0 + '@smithy/util-utf8': 4.0.0 + tslib: 2.8.1 '@smithy/util-stream@4.2.1': dependencies: @@ -5000,6 +5786,7 @@ snapshots: '@smithy/util-hex-encoding': 4.0.0 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 + optional: true '@smithy/util-uri-escape@4.0.0': dependencies: @@ -5015,106 +5802,118 @@ snapshots: '@smithy/util-buffer-from': 4.0.0 tslib: 2.8.1 - '@smithy/util-waiter@4.0.4': + '@smithy/util-waiter@4.0.2': dependencies: - '@smithy/abort-controller': 4.0.3 - '@smithy/types': 4.3.0 + '@smithy/abort-controller': 4.0.1 + '@smithy/types': 4.1.0 tslib: 2.8.1 - '@swc/core-darwin-arm64@1.11.29': + '@swc/core-darwin-arm64@1.11.9': optional: true - '@swc/core-darwin-x64@1.11.29': + '@swc/core-darwin-x64@1.11.9': optional: true - '@swc/core-linux-arm-gnueabihf@1.11.29': + '@swc/core-linux-arm-gnueabihf@1.11.9': optional: true - '@swc/core-linux-arm64-gnu@1.11.29': + '@swc/core-linux-arm64-gnu@1.11.9': optional: true - '@swc/core-linux-arm64-musl@1.11.29': + '@swc/core-linux-arm64-musl@1.11.9': optional: true - '@swc/core-linux-x64-gnu@1.11.29': + '@swc/core-linux-x64-gnu@1.11.9': optional: true - '@swc/core-linux-x64-musl@1.11.29': + '@swc/core-linux-x64-musl@1.11.9': optional: true - '@swc/core-win32-arm64-msvc@1.11.29': + '@swc/core-win32-arm64-msvc@1.11.9': optional: true - '@swc/core-win32-ia32-msvc@1.11.29': + '@swc/core-win32-ia32-msvc@1.11.9': optional: true - '@swc/core-win32-x64-msvc@1.11.29': + '@swc/core-win32-x64-msvc@1.11.9': optional: true - '@swc/core@1.11.29': + '@swc/core@1.11.9': dependencies: '@swc/counter': 0.1.3 - '@swc/types': 0.1.21 + '@swc/types': 0.1.19 optionalDependencies: - '@swc/core-darwin-arm64': 1.11.29 - '@swc/core-darwin-x64': 1.11.29 - '@swc/core-linux-arm-gnueabihf': 1.11.29 - '@swc/core-linux-arm64-gnu': 1.11.29 - '@swc/core-linux-arm64-musl': 1.11.29 - '@swc/core-linux-x64-gnu': 1.11.29 - '@swc/core-linux-x64-musl': 1.11.29 - '@swc/core-win32-arm64-msvc': 1.11.29 - '@swc/core-win32-ia32-msvc': 1.11.29 - '@swc/core-win32-x64-msvc': 1.11.29 + '@swc/core-darwin-arm64': 1.11.9 + '@swc/core-darwin-x64': 1.11.9 + '@swc/core-linux-arm-gnueabihf': 1.11.9 + '@swc/core-linux-arm64-gnu': 1.11.9 + '@swc/core-linux-arm64-musl': 1.11.9 + '@swc/core-linux-x64-gnu': 1.11.9 + '@swc/core-linux-x64-musl': 1.11.9 + '@swc/core-win32-arm64-msvc': 1.11.9 + '@swc/core-win32-ia32-msvc': 1.11.9 + '@swc/core-win32-x64-msvc': 1.11.9 '@swc/counter@0.1.3': {} - '@swc/types@0.1.21': + '@swc/types@0.1.19': dependencies: '@swc/counter': 0.1.3 - '@temporalio/activity@1.11.8': + '@temporalio/activity@1.11.7': dependencies: - '@temporalio/common': 1.11.8 + '@temporalio/common': 1.11.7 abort-controller: 3.0.0 - '@temporalio/client@1.11.8': + '@temporalio/client@1.11.7': dependencies: - '@grpc/grpc-js': 1.13.4 - '@temporalio/common': 1.11.8 - '@temporalio/proto': 1.11.8 + '@grpc/grpc-js': 1.13.0 + '@temporalio/common': 1.11.7 + '@temporalio/proto': 1.11.7 abort-controller: 3.0.0 - long: 5.3.2 + long: 5.3.1 uuid: 9.0.1 + '@temporalio/common@1.11.7': + dependencies: + '@temporalio/proto': 1.11.7 + long: 5.3.1 + ms: 3.0.0-canary.1 + proto3-json-serializer: 2.0.2 + '@temporalio/common@1.11.8': dependencies: '@temporalio/proto': 1.11.8 - long: 5.3.2 + long: 5.3.1 ms: 3.0.0-canary.1 proto3-json-serializer: 2.0.2 - '@temporalio/core-bridge@1.11.8': + '@temporalio/core-bridge@1.11.7': dependencies: - '@temporalio/common': 1.11.8 + '@temporalio/common': 1.11.7 arg: 5.0.2 cargo-cp-artifact: 0.1.9 which: 4.0.0 + '@temporalio/proto@1.11.7': + dependencies: + long: 5.3.1 + protobufjs: 7.4.0 + '@temporalio/proto@1.11.8': dependencies: - long: 5.3.2 + long: 5.3.1 protobufjs: 7.4.0 - '@temporalio/testing@1.11.8': + '@temporalio/testing@1.11.7': dependencies: - '@temporalio/activity': 1.11.8 - '@temporalio/client': 1.11.8 - '@temporalio/common': 1.11.8 - '@temporalio/core-bridge': 1.11.8 - '@temporalio/proto': 1.11.8 - '@temporalio/worker': 1.11.8 - '@temporalio/workflow': 1.11.8 + '@temporalio/activity': 1.11.7 + '@temporalio/client': 1.11.7 + '@temporalio/common': 1.11.7 + '@temporalio/core-bridge': 1.11.7 + '@temporalio/proto': 1.11.7 + '@temporalio/worker': 1.11.7 + '@temporalio/workflow': 1.11.7 abort-controller: 3.0.0 transitivePeerDependencies: - '@swc/helpers' @@ -5122,37 +5921,37 @@ snapshots: - uglify-js - webpack-cli - '@temporalio/worker@1.11.8': + '@temporalio/worker@1.11.7': dependencies: - '@swc/core': 1.11.29 - '@temporalio/activity': 1.11.8 - '@temporalio/client': 1.11.8 - '@temporalio/common': 1.11.8 - '@temporalio/core-bridge': 1.11.8 - '@temporalio/proto': 1.11.8 - '@temporalio/workflow': 1.11.8 + '@swc/core': 1.11.9 + '@temporalio/activity': 1.11.7 + '@temporalio/client': 1.11.7 + '@temporalio/common': 1.11.7 + '@temporalio/core-bridge': 1.11.7 + '@temporalio/proto': 1.11.7 + '@temporalio/workflow': 1.11.7 abort-controller: 3.0.0 heap-js: 2.6.0 - memfs: 4.17.2 + memfs: 4.17.0 rxjs: 7.8.2 source-map: 0.7.4 - source-map-loader: 4.0.2(webpack@5.99.9(@swc/core@1.11.29)) + source-map-loader: 4.0.2(webpack@5.98.0(@swc/core@1.11.9)) supports-color: 8.1.1 - swc-loader: 0.2.6(@swc/core@1.11.29)(webpack@5.99.9(@swc/core@1.11.29)) + swc-loader: 0.2.6(@swc/core@1.11.9)(webpack@5.98.0(@swc/core@1.11.9)) unionfs: 4.5.4 - webpack: 5.99.9(@swc/core@1.11.29) + webpack: 5.98.0(@swc/core@1.11.9) transitivePeerDependencies: - '@swc/helpers' - esbuild - uglify-js - webpack-cli - '@temporalio/workflow@1.11.8': + '@temporalio/workflow@1.11.7': dependencies: - '@temporalio/common': 1.11.8 - '@temporalio/proto': 1.11.8 + '@temporalio/common': 1.11.7 + '@temporalio/proto': 1.11.7 - '@togethercrew.dev/db@3.10.0': + '@togethercrew.dev/db@3.11.0': dependencies: discord.js: 14.19.3 joi: 17.13.3 @@ -5170,8 +5969,8 @@ snapshots: dependencies: '@types/amqplib': 0.10.7 '@types/uuid': 9.0.8 - amqplib: 0.10.8 - mongoose: 7.8.7(@aws-sdk/credential-providers@3.817.0) + amqplib: 0.10.5 + mongoose: 7.8.6(@aws-sdk/credential-providers@3.817.0) uuid: 9.0.1 transitivePeerDependencies: - '@aws-sdk/credential-providers' @@ -5189,58 +5988,58 @@ snapshots: '@tsconfig/node16@1.0.4': {} - '@tsconfig/node16@16.1.4': {} + '@tsconfig/node16@16.1.3': {} '@types/amqplib@0.10.7': dependencies: - '@types/node': 22.15.23 + '@types/node': 22.13.10 '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.27.3 - '@babel/types': 7.27.3 - '@types/babel__generator': 7.27.0 + '@babel/parser': 7.26.10 + '@babel/types': 7.26.10 + '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.7 + '@types/babel__traverse': 7.20.6 - '@types/babel__generator@7.27.0': + '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.27.3 + '@babel/types': 7.26.10 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.27.3 - '@babel/types': 7.27.3 + '@babel/parser': 7.26.10 + '@babel/types': 7.26.10 - '@types/babel__traverse@7.20.7': + '@types/babel__traverse@7.20.6': dependencies: - '@babel/types': 7.27.3 + '@babel/types': 7.26.10 '@types/caseless@0.12.5': {} '@types/conventional-commits-parser@5.0.1': dependencies: - '@types/node': 22.15.23 + '@types/node': 22.13.10 '@types/eslint-scope@3.7.7': dependencies: '@types/eslint': 9.6.1 - '@types/estree': 1.0.7 + '@types/estree': 1.0.6 '@types/eslint@9.6.1': dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.6 '@types/json-schema': 7.0.15 '@types/eslint__js@8.42.3': dependencies: '@types/eslint': 9.6.1 - '@types/estree@1.0.7': {} + '@types/estree@1.0.6': {} '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.15.23 + '@types/node': 22.13.10 '@types/istanbul-lib-coverage@2.0.6': {} @@ -5263,16 +6062,16 @@ snapshots: dependencies: '@types/request': 2.48.12 - '@types/node@22.15.23': + '@types/node@22.13.10': dependencies: - undici-types: 6.21.0 + undici-types: 6.20.0 '@types/pako@2.0.3': {} '@types/request@2.48.12': dependencies: '@types/caseless': 0.12.5 - '@types/node': 22.15.23 + '@types/node': 22.13.10 '@types/tough-cookie': 4.0.5 form-data: 2.5.3 @@ -5290,12 +6089,12 @@ snapshots: '@types/whatwg-url@8.2.2': dependencies: - '@types/node': 22.15.23 + '@types/node': 22.13.10 '@types/webidl-conversions': 7.0.3 - '@types/ws@8.18.1': + '@types/ws@8.18.0': dependencies: - '@types/node': 22.15.23 + '@types/node': 22.13.10 '@types/yargs-parser@21.0.3': {} @@ -5303,96 +6102,81 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.33.0 - '@typescript-eslint/type-utils': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.33.0 - eslint: 9.27.0(jiti@2.4.2) + '@typescript-eslint/parser': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/scope-manager': 8.26.1 + '@typescript-eslint/type-utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/visitor-keys': 8.26.1 + eslint: 9.22.0(jiti@2.4.2) graphemer: 1.4.0 - ignore: 7.0.4 + ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': - dependencies: - '@typescript-eslint/scope-manager': 8.33.0 - '@typescript-eslint/types': 8.33.0 - '@typescript-eslint/typescript-estree': 8.33.0(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.33.0 - debug: 4.4.1(supports-color@5.5.0) - eslint: 9.27.0(jiti@2.4.2) - typescript: 5.8.3 + ts-api-utils: 2.0.1(typescript@5.8.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.33.0(typescript@5.8.3)': + '@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.33.0(typescript@5.8.3) - '@typescript-eslint/types': 8.33.0 - debug: 4.4.1(supports-color@5.5.0) + '@typescript-eslint/scope-manager': 8.26.1 + '@typescript-eslint/types': 8.26.1 + '@typescript-eslint/typescript-estree': 8.26.1(typescript@5.8.2) + '@typescript-eslint/visitor-keys': 8.26.1 + debug: 4.4.0(supports-color@5.5.0) + eslint: 9.22.0(jiti@2.4.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - - typescript - '@typescript-eslint/scope-manager@8.33.0': + '@typescript-eslint/scope-manager@8.26.1': dependencies: - '@typescript-eslint/types': 8.33.0 - '@typescript-eslint/visitor-keys': 8.33.0 + '@typescript-eslint/types': 8.26.1 + '@typescript-eslint/visitor-keys': 8.26.1 - '@typescript-eslint/tsconfig-utils@8.33.0(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - typescript: 5.8.3 - - '@typescript-eslint/type-utils@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': - dependencies: - '@typescript-eslint/typescript-estree': 8.33.0(typescript@5.8.3) - '@typescript-eslint/utils': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - debug: 4.4.1(supports-color@5.5.0) - eslint: 9.27.0(jiti@2.4.2) - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 + '@typescript-eslint/typescript-estree': 8.26.1(typescript@5.8.2) + '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + debug: 4.4.0(supports-color@5.5.0) + eslint: 9.22.0(jiti@2.4.2) + ts-api-utils: 2.0.1(typescript@5.8.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.33.0': {} + '@typescript-eslint/types@8.26.1': {} - '@typescript-eslint/typescript-estree@8.33.0(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@8.26.1(typescript@5.8.2)': dependencies: - '@typescript-eslint/project-service': 8.33.0(typescript@5.8.3) - '@typescript-eslint/tsconfig-utils': 8.33.0(typescript@5.8.3) - '@typescript-eslint/types': 8.33.0 - '@typescript-eslint/visitor-keys': 8.33.0 - debug: 4.4.1(supports-color@5.5.0) + '@typescript-eslint/types': 8.26.1 + '@typescript-eslint/visitor-keys': 8.26.1 + debug: 4.4.0(supports-color@5.5.0) fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.7.2 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 + semver: 7.7.1 + ts-api-utils: 2.0.1(typescript@5.8.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/utils@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) - '@typescript-eslint/scope-manager': 8.33.0 - '@typescript-eslint/types': 8.33.0 - '@typescript-eslint/typescript-estree': 8.33.0(typescript@5.8.3) - eslint: 9.27.0(jiti@2.4.2) - typescript: 5.8.3 + '@eslint-community/eslint-utils': 4.5.1(eslint@9.22.0(jiti@2.4.2)) + '@typescript-eslint/scope-manager': 8.26.1 + '@typescript-eslint/types': 8.26.1 + '@typescript-eslint/typescript-estree': 8.26.1(typescript@5.8.2) + eslint: 9.22.0(jiti@2.4.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.33.0': + '@typescript-eslint/visitor-keys@8.26.1': dependencies: - '@typescript-eslint/types': 8.33.0 + '@typescript-eslint/types': 8.26.1 eslint-visitor-keys: 4.2.0 '@vladfrangu/async_event_emitter@2.4.6': {} @@ -5521,10 +6305,13 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - amqplib@0.10.8: + amqplib@0.10.5: dependencies: + '@acuminous/bitsyntax': 0.1.2 buffer-more-ints: 1.0.0 url-parse: 1.5.10 + transitivePeerDependencies: + - supports-color ansi-escapes@4.3.2: dependencies: @@ -5561,7 +6348,7 @@ snapshots: atomic-sleep@1.0.0: {} - axios@1.9.0: + axios@1.8.3: dependencies: follow-redirects: 1.15.9 form-data: 4.0.2 @@ -5569,13 +6356,13 @@ snapshots: transitivePeerDependencies: - debug - babel-jest@29.7.0(@babel/core@7.27.3): + babel-jest@29.7.0(@babel/core@7.26.10): dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.26.10 '@jest/transform': 29.7.0 '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.27.3) + babel-preset-jest: 29.6.3(@babel/core@7.26.10) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -5584,7 +6371,7 @@ snapshots: babel-plugin-istanbul@6.1.1: dependencies: - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.26.5 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-instrument: 5.2.1 @@ -5594,35 +6381,35 @@ snapshots: babel-plugin-jest-hoist@29.6.3: dependencies: - '@babel/template': 7.27.2 - '@babel/types': 7.27.3 + '@babel/template': 7.26.9 + '@babel/types': 7.26.10 '@types/babel__core': 7.20.5 - '@types/babel__traverse': 7.20.7 - - babel-preset-current-node-syntax@1.1.0(@babel/core@7.27.3): - dependencies: - '@babel/core': 7.27.3 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.27.3) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.27.3) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.27.3) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.27.3) - '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.27.3) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.27.3) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.27.3) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.27.3) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.27.3) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.27.3) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.27.3) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.27.3) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.27.3) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.27.3) - - babel-preset-jest@29.6.3(@babel/core@7.27.3): - dependencies: - '@babel/core': 7.27.3 + '@types/babel__traverse': 7.20.6 + + babel-preset-current-node-syntax@1.1.0(@babel/core@7.26.10): + dependencies: + '@babel/core': 7.26.10 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.26.10) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.26.10) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.26.10) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.26.10) + '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.10) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.10) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.26.10) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.26.10) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.26.10) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.26.10) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.10) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.26.10) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.10) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.26.10) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.26.10) + + babel-preset-jest@29.6.3(@babel/core@7.26.10): + dependencies: + '@babel/core': 7.26.10 babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.27.3) + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.10) balanced-match@1.0.2: {} @@ -5647,12 +6434,12 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.24.5: + browserslist@4.24.4: dependencies: - caniuse-lite: 1.0.30001718 - electron-to-chromium: 1.5.159 + caniuse-lite: 1.0.30001704 + electron-to-chromium: 1.5.116 node-releases: 2.0.19 - update-browserslist-db: 1.1.3(browserslist@4.24.5) + update-browserslist-db: 1.1.3(browserslist@4.24.4) bs-logger@0.2.6: dependencies: @@ -5695,7 +6482,7 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001718: {} + caniuse-lite@1.0.30001704: {} cargo-cp-artifact@0.1.9: {} @@ -5774,29 +6561,29 @@ snapshots: convert-source-map@2.0.0: {} - cosmiconfig-typescript-loader@6.1.0(@types/node@22.15.23)(cosmiconfig@9.0.0(typescript@5.8.3))(typescript@5.8.3): + cosmiconfig-typescript-loader@6.1.0(@types/node@22.13.10)(cosmiconfig@9.0.0(typescript@5.8.2))(typescript@5.8.2): dependencies: - '@types/node': 22.15.23 - cosmiconfig: 9.0.0(typescript@5.8.3) + '@types/node': 22.13.10 + cosmiconfig: 9.0.0(typescript@5.8.2) jiti: 2.4.2 - typescript: 5.8.3 + typescript: 5.8.2 - cosmiconfig@9.0.0(typescript@5.8.3): + cosmiconfig@9.0.0(typescript@5.8.2): dependencies: env-paths: 2.2.1 import-fresh: 3.3.1 js-yaml: 4.1.0 parse-json: 5.2.0 optionalDependencies: - typescript: 5.8.3 + typescript: 5.8.2 - create-jest@29.7.0(@types/node@22.15.23)(ts-node@10.9.2(@swc/core@1.11.29)(@types/node@22.15.23)(typescript@5.8.3)): + create-jest@29.7.0(@types/node@22.13.10)(ts-node@10.9.2(@swc/core@1.11.9)(@types/node@22.13.10)(typescript@5.8.2)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.15.23)(ts-node@10.9.2(@swc/core@1.11.29)(@types/node@22.15.23)(typescript@5.8.3)) + jest-config: 29.7.0(@types/node@22.13.10)(ts-node@10.9.2(@swc/core@1.11.9)(@types/node@22.13.10)(typescript@5.8.2)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -5815,13 +6602,17 @@ snapshots: dargs@8.1.0: {} - debug@4.4.1(supports-color@5.5.0): + debug@4.4.0(supports-color@5.5.0): dependencies: ms: 2.1.3 optionalDependencies: supports-color: 5.5.0 - dedent@1.6.0: {} + debug@4.4.1: + dependencies: + ms: 2.1.3 + + dedent@1.5.3: {} deep-is@0.1.4: {} @@ -5851,7 +6642,7 @@ snapshots: discord-api-types: 0.38.8 fast-deep-equal: 3.1.3 lodash.snakecase: 4.1.1 - magic-bytes.js: 1.12.1 + magic-bytes.js: 1.10.0 tslib: 2.8.1 undici: 6.21.1 transitivePeerDependencies: @@ -5862,7 +6653,7 @@ snapshots: dependencies: is-obj: 2.0.0 - dotenv@16.5.0: {} + dotenv@16.4.7: {} dunder-proto@1.0.1: dependencies: @@ -5874,7 +6665,7 @@ snapshots: dependencies: jake: 10.9.2 - electron-to-chromium@1.5.159: {} + electron-to-chromium@1.5.116: {} emittery@0.13.1: {} @@ -5883,7 +6674,7 @@ snapshots: enhanced-resolve@5.18.1: dependencies: graceful-fs: 4.2.11 - tapable: 2.2.2 + tapable: 2.2.1 env-paths@2.2.1: {} @@ -5895,7 +6686,7 @@ snapshots: es-errors@1.3.0: {} - es-module-lexer@1.7.0: {} + es-module-lexer@1.6.0: {} es-object-atoms@1.1.1: dependencies: @@ -5914,19 +6705,19 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-config-prettier@9.1.0(eslint@9.27.0(jiti@2.4.2)): + eslint-config-prettier@9.1.0(eslint@9.22.0(jiti@2.4.2)): dependencies: - eslint: 9.27.0(jiti@2.4.2) + eslint: 9.22.0(jiti@2.4.2) - eslint-plugin-prettier@5.4.0(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.27.0(jiti@2.4.2)))(eslint@9.27.0(jiti@2.4.2))(prettier@3.5.3): + eslint-plugin-prettier@5.2.3(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.22.0(jiti@2.4.2)))(eslint@9.22.0(jiti@2.4.2))(prettier@3.5.3): dependencies: - eslint: 9.27.0(jiti@2.4.2) + eslint: 9.22.0(jiti@2.4.2) prettier: 3.5.3 prettier-linter-helpers: 1.0.0 - synckit: 0.11.6 + synckit: 0.9.2 optionalDependencies: '@types/eslint': 9.6.1 - eslint-config-prettier: 9.1.0(eslint@9.27.0(jiti@2.4.2)) + eslint-config-prettier: 9.1.0(eslint@9.22.0(jiti@2.4.2)) eslint-scope@5.1.1: dependencies: @@ -5942,25 +6733,25 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.27.0(jiti@2.4.2): + eslint@9.22.0(jiti@2.4.2): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.5.1(eslint@9.22.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.20.0 - '@eslint/config-helpers': 0.2.2 - '@eslint/core': 0.14.0 - '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.27.0 - '@eslint/plugin-kit': 0.3.1 + '@eslint/config-array': 0.19.2 + '@eslint/config-helpers': 0.1.0 + '@eslint/core': 0.12.0 + '@eslint/eslintrc': 3.3.0 + '@eslint/js': 9.22.0 + '@eslint/plugin-kit': 0.2.7 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.3 - '@types/estree': 1.0.7 + '@humanwhocodes/retry': 0.4.2 + '@types/estree': 1.0.6 '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.0(supports-color@5.5.0) escape-string-regexp: 4.0.0 eslint-scope: 8.3.0 eslint-visitor-keys: 4.2.0 @@ -6190,11 +6981,11 @@ snapshots: graceful-fs@4.2.11: {} - grammy@1.36.3: + grammy@1.35.0: dependencies: - '@grammyjs/types': 3.20.0 + '@grammyjs/types': 3.19.0 abort-controller: 3.0.0 - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.0(supports-color@5.5.0) node-fetch: 2.7.0 transitivePeerDependencies: - encoding @@ -6223,7 +7014,7 @@ snapshots: https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.3 - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.0(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -6243,8 +7034,6 @@ snapshots: ignore@5.3.2: {} - ignore@7.0.4: {} - import-fresh@3.3.1: dependencies: parent-module: 1.0.1 @@ -6268,11 +7057,11 @@ snapshots: ini@4.1.1: {} - ioredis@5.6.1: + ioredis@5.6.0: dependencies: '@ioredis/commands': 1.2.0 cluster-key-slot: 1.1.2 - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.0(supports-color@5.5.0) denque: 2.1.0 lodash.defaults: 4.2.0 lodash.isarguments: 3.1.0 @@ -6325,8 +7114,8 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: - '@babel/core': 7.27.3 - '@babel/parser': 7.27.3 + '@babel/core': 7.26.10 + '@babel/parser': 7.26.10 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -6335,11 +7124,11 @@ snapshots: istanbul-lib-instrument@6.0.3: dependencies: - '@babel/core': 7.27.3 - '@babel/parser': 7.27.3 + '@babel/core': 7.26.10 + '@babel/parser': 7.26.10 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 - semver: 7.7.2 + semver: 7.7.1 transitivePeerDependencies: - supports-color @@ -6351,7 +7140,7 @@ snapshots: istanbul-lib-source-maps@4.0.1: dependencies: - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.0(supports-color@5.5.0) istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: @@ -6381,10 +7170,10 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.23 + '@types/node': 22.13.10 chalk: 4.1.2 co: 4.6.0 - dedent: 1.6.0 + dedent: 1.5.3 is-generator-fn: 2.1.0 jest-each: 29.7.0 jest-matcher-utils: 29.7.0 @@ -6401,16 +7190,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@22.15.23)(ts-node@10.9.2(@swc/core@1.11.29)(@types/node@22.15.23)(typescript@5.8.3)): + jest-cli@29.7.0(@types/node@22.13.10)(ts-node@10.9.2(@swc/core@1.11.9)(@types/node@22.13.10)(typescript@5.8.2)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.11.29)(@types/node@22.15.23)(typescript@5.8.3)) + '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.11.9)(@types/node@22.13.10)(typescript@5.8.2)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.15.23)(ts-node@10.9.2(@swc/core@1.11.29)(@types/node@22.15.23)(typescript@5.8.3)) + create-jest: 29.7.0(@types/node@22.13.10)(ts-node@10.9.2(@swc/core@1.11.9)(@types/node@22.13.10)(typescript@5.8.2)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@22.15.23)(ts-node@10.9.2(@swc/core@1.11.29)(@types/node@22.15.23)(typescript@5.8.3)) + jest-config: 29.7.0(@types/node@22.13.10)(ts-node@10.9.2(@swc/core@1.11.9)(@types/node@22.13.10)(typescript@5.8.2)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -6420,12 +7209,12 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@22.15.23)(ts-node@10.9.2(@swc/core@1.11.29)(@types/node@22.15.23)(typescript@5.8.3)): + jest-config@29.7.0(@types/node@22.13.10)(ts-node@10.9.2(@swc/core@1.11.9)(@types/node@22.13.10)(typescript@5.8.2)): dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.26.10 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.27.3) + babel-jest: 29.7.0(@babel/core@7.26.10) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -6445,8 +7234,8 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.15.23 - ts-node: 10.9.2(@swc/core@1.11.29)(@types/node@22.15.23)(typescript@5.8.3) + '@types/node': 22.13.10 + ts-node: 10.9.2(@swc/core@1.11.9)(@types/node@22.13.10)(typescript@5.8.2) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -6475,7 +7264,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.23 + '@types/node': 22.13.10 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -6485,7 +7274,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 22.15.23 + '@types/node': 22.13.10 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -6511,7 +7300,7 @@ snapshots: jest-message-util@29.7.0: dependencies: - '@babel/code-frame': 7.27.1 + '@babel/code-frame': 7.26.2 '@jest/types': 29.6.3 '@types/stack-utils': 2.0.3 chalk: 4.1.2 @@ -6524,7 +7313,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.15.23 + '@types/node': 22.13.10 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -6559,7 +7348,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.23 + '@types/node': 22.13.10 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -6587,7 +7376,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.23 + '@types/node': 22.13.10 chalk: 4.1.2 cjs-module-lexer: 1.4.3 collect-v8-coverage: 1.0.2 @@ -6607,15 +7396,15 @@ snapshots: jest-snapshot@29.7.0: dependencies: - '@babel/core': 7.27.3 - '@babel/generator': 7.27.3 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.3) - '@babel/types': 7.27.3 + '@babel/core': 7.26.10 + '@babel/generator': 7.26.10 + '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.10) + '@babel/types': 7.26.10 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.27.3) + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.10) chalk: 4.1.2 expect: 29.7.0 graceful-fs: 4.2.11 @@ -6626,14 +7415,14 @@ snapshots: jest-util: 29.7.0 natural-compare: 1.4.0 pretty-format: 29.7.0 - semver: 7.7.2 + semver: 7.7.1 transitivePeerDependencies: - supports-color jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.15.23 + '@types/node': 22.13.10 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -6652,7 +7441,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.23 + '@types/node': 22.13.10 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -6661,23 +7450,23 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.15.23 + '@types/node': 22.13.10 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@29.7.0: dependencies: - '@types/node': 22.15.23 + '@types/node': 22.13.10 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@22.15.23)(ts-node@10.9.2(@swc/core@1.11.29)(@types/node@22.15.23)(typescript@5.8.3)): + jest@29.7.0(@types/node@22.13.10)(ts-node@10.9.2(@swc/core@1.11.9)(@types/node@22.13.10)(typescript@5.8.2)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.11.29)(@types/node@22.15.23)(typescript@5.8.3)) + '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.11.9)(@types/node@22.13.10)(typescript@5.8.2)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@22.15.23)(ts-node@10.9.2(@swc/core@1.11.29)(@types/node@22.15.23)(typescript@5.8.3)) + jest-cli: 29.7.0(@types/node@22.13.10)(ts-node@10.9.2(@swc/core@1.11.9)(@types/node@22.13.10)(typescript@5.8.2)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -6786,17 +7575,17 @@ snapshots: lodash@4.17.21: {} - long@5.3.2: {} + long@5.3.1: {} lru-cache@5.1.1: dependencies: yallist: 3.1.1 - magic-bytes.js@1.12.1: {} + magic-bytes.js@1.10.0: {} make-dir@4.0.0: dependencies: - semver: 7.7.2 + semver: 7.7.1 make-error@1.3.6: {} @@ -6806,11 +7595,11 @@ snapshots: math-intrinsics@1.1.0: {} - memfs@4.17.2: + memfs@4.17.0: dependencies: '@jsonjoy.com/json-pack': 1.2.0(tslib@2.8.1) - '@jsonjoy.com/util': 1.6.0(tslib@2.8.1) - tree-dump: 1.0.3(tslib@2.8.1) + '@jsonjoy.com/util': 1.5.0(tslib@2.8.1) + tree-dump: 1.0.2(tslib@2.8.1) tslib: 2.8.1 memory-pager@1.5.0: {} @@ -6858,7 +7647,7 @@ snapshots: mongodb-connection-string-url@3.0.2: dependencies: '@types/whatwg-url': 11.0.5 - whatwg-url: 14.2.0 + whatwg-url: 14.1.1 mongodb@4.17.2: dependencies: @@ -6878,11 +7667,11 @@ snapshots: socks: 2.8.4 optionalDependencies: '@aws-sdk/credential-providers': 3.817.0 - '@mongodb-js/saslprep': 1.2.2 + '@mongodb-js/saslprep': 1.2.0 - mongodb@6.16.0(@aws-sdk/credential-providers@3.817.0)(socks@2.8.4): + mongodb@6.14.2(@aws-sdk/credential-providers@3.817.0)(socks@2.8.4): dependencies: - '@mongodb-js/saslprep': 1.2.2 + '@mongodb-js/saslprep': 1.2.0 bson: 6.10.3 mongodb-connection-string-url: 3.0.2 optionalDependencies: @@ -6909,7 +7698,7 @@ snapshots: - aws-crt - supports-color - mongoose@7.8.7(@aws-sdk/credential-providers@3.817.0): + mongoose@7.8.6(@aws-sdk/credential-providers@3.817.0): dependencies: bson: 5.5.1 kareem: 2.5.1 @@ -6926,11 +7715,11 @@ snapshots: - snappy - supports-color - mongoose@8.15.1(@aws-sdk/credential-providers@3.817.0)(socks@2.8.4): + mongoose@8.12.1(@aws-sdk/credential-providers@3.817.0)(socks@2.8.4): dependencies: bson: 6.10.3 kareem: 2.6.3 - mongodb: 6.16.0(@aws-sdk/credential-providers@3.817.0)(socks@2.8.4) + mongodb: 6.14.2(@aws-sdk/credential-providers@3.817.0)(socks@2.8.4) mpath: 0.9.0 mquery: 5.0.0 ms: 2.1.3 @@ -6949,13 +7738,13 @@ snapshots: mquery@4.0.3: dependencies: - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.1 transitivePeerDependencies: - supports-color mquery@5.0.0: dependencies: - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.0(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -6989,14 +7778,14 @@ snapshots: node-releases@2.0.19: {} - nodemon@3.1.10: + nodemon@3.1.9: dependencies: chokidar: 3.6.0 - debug: 4.4.1(supports-color@5.5.0) + debug: 4.4.0(supports-color@5.5.0) ignore-by-default: 1.0.1 minimatch: 3.1.2 pstree.remy: 1.1.8 - semver: 7.7.2 + semver: 7.7.1 simple-update-notifier: 2.0.0 supports-color: 5.5.0 touch: 3.1.1 @@ -7061,7 +7850,7 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.27.1 + '@babel/code-frame': 7.26.2 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -7086,21 +7875,21 @@ snapshots: pino-std-serializers@7.0.0: {} - pino@9.7.0: + pino@9.6.0: dependencies: atomic-sleep: 1.0.0 fast-redact: 3.5.0 on-exit-leak-free: 2.1.2 pino-abstract-transport: 2.0.0 pino-std-serializers: 7.0.0 - process-warning: 5.0.0 + process-warning: 4.0.1 quick-format-unescaped: 4.0.4 real-require: 0.2.0 safe-stable-stringify: 2.5.0 sonic-boom: 4.2.0 thread-stream: 3.1.0 - pirates@4.0.7: {} + pirates@4.0.6: {} pkg-dir@4.2.0: dependencies: @@ -7120,7 +7909,7 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.3.1 - process-warning@5.0.0: {} + process-warning@4.0.1: {} prompts@2.4.2: dependencies: @@ -7143,8 +7932,8 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 22.15.23 - long: 5.3.2 + '@types/node': 22.13.10 + long: 5.3.1 proxy-from-env@1.1.0: {} @@ -7210,13 +7999,15 @@ snapshots: dependencies: tslib: 2.8.1 + safe-buffer@5.1.2: {} + safe-buffer@5.2.1: {} safe-stable-stringify@2.5.0: {} safer-buffer@2.1.2: {} - schema-utils@4.3.2: + schema-utils@4.3.0: dependencies: '@types/json-schema': 7.0.15 ajv: 8.17.1 @@ -7225,7 +8016,7 @@ snapshots: semver@6.3.1: {} - semver@7.7.2: {} + semver@7.7.1: {} serialize-javascript@6.0.2: dependencies: @@ -7245,7 +8036,7 @@ snapshots: simple-update-notifier@2.0.0: dependencies: - semver: 7.7.2 + semver: 7.7.1 sisteransi@1.0.5: {} @@ -7264,11 +8055,11 @@ snapshots: source-map-js@1.2.1: {} - source-map-loader@4.0.2(webpack@5.99.9(@swc/core@1.11.29)): + source-map-loader@4.0.2(webpack@5.98.0(@swc/core@1.11.9)): dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.1 - webpack: 5.99.9(@swc/core@1.11.29) + webpack: 5.98.0(@swc/core@1.11.9) source-map-support@0.5.13: dependencies: @@ -7341,30 +8132,31 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - swc-loader@0.2.6(@swc/core@1.11.29)(webpack@5.99.9(@swc/core@1.11.29)): + swc-loader@0.2.6(@swc/core@1.11.9)(webpack@5.98.0(@swc/core@1.11.9)): dependencies: - '@swc/core': 1.11.29 + '@swc/core': 1.11.9 '@swc/counter': 0.1.3 - webpack: 5.99.9(@swc/core@1.11.29) + webpack: 5.98.0(@swc/core@1.11.9) - synckit@0.11.6: + synckit@0.9.2: dependencies: - '@pkgr/core': 0.2.4 + '@pkgr/core': 0.1.1 + tslib: 2.8.1 - tapable@2.2.2: {} + tapable@2.2.1: {} - terser-webpack-plugin@5.3.14(@swc/core@1.11.29)(webpack@5.99.9(@swc/core@1.11.29)): + terser-webpack-plugin@5.3.14(@swc/core@1.11.9)(webpack@5.98.0(@swc/core@1.11.9)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 - schema-utils: 4.3.2 + schema-utils: 4.3.0 serialize-javascript: 6.0.2 - terser: 5.40.0 - webpack: 5.99.9(@swc/core@1.11.29) + terser: 5.39.0 + webpack: 5.98.0(@swc/core@1.11.9) optionalDependencies: - '@swc/core': 1.11.29 + '@swc/core': 1.11.9 - terser@5.40.0: + terser@5.39.0: dependencies: '@jridgewell/source-map': 0.3.6 acorn: 8.14.1 @@ -7405,59 +8197,58 @@ snapshots: dependencies: punycode: 2.3.1 - tr46@5.1.1: + tr46@5.0.0: dependencies: punycode: 2.3.1 - tree-dump@1.0.3(tslib@2.8.1): + tree-dump@1.0.2(tslib@2.8.1): dependencies: tslib: 2.8.1 - ts-api-utils@2.1.0(typescript@5.8.3): + ts-api-utils@2.0.1(typescript@5.8.2): dependencies: - typescript: 5.8.3 + typescript: 5.8.2 - ts-jest@29.3.4(@babel/core@7.27.3)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.3))(jest@29.7.0(@types/node@22.15.23)(ts-node@10.9.2(@swc/core@1.11.29)(@types/node@22.15.23)(typescript@5.8.3)))(typescript@5.8.3): + ts-jest@29.2.6(@babel/core@7.26.10)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.10))(jest@29.7.0(@types/node@22.13.10)(ts-node@10.9.2(@swc/core@1.11.9)(@types/node@22.13.10)(typescript@5.8.2)))(typescript@5.8.2): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@22.15.23)(ts-node@10.9.2(@swc/core@1.11.29)(@types/node@22.15.23)(typescript@5.8.3)) + jest: 29.7.0(@types/node@22.13.10)(ts-node@10.9.2(@swc/core@1.11.9)(@types/node@22.13.10)(typescript@5.8.2)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 - semver: 7.7.2 - type-fest: 4.41.0 - typescript: 5.8.3 + semver: 7.7.1 + typescript: 5.8.2 yargs-parser: 21.1.1 optionalDependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.26.10 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.27.3) + babel-jest: 29.7.0(@babel/core@7.26.10) ts-mixer@6.0.4: {} - ts-node@10.9.2(@swc/core@1.11.29)(@types/node@22.15.23)(typescript@5.8.3): + ts-node@10.9.2(@swc/core@1.11.9)(@types/node@22.13.10)(typescript@5.8.2): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.15.23 + '@types/node': 22.13.10 acorn: 8.14.1 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.8.3 + typescript: 5.8.2 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.11.29 + '@swc/core': 1.11.9 tslib@2.8.1: {} @@ -7469,23 +8260,21 @@ snapshots: type-fest@0.21.3: {} - type-fest@4.41.0: {} - - typescript-eslint@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3): + typescript-eslint@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/parser': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.27.0(jiti@2.4.2) - typescript: 5.8.3 + '@typescript-eslint/eslint-plugin': 8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/parser': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + eslint: 9.22.0(jiti@2.4.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - typescript@5.8.3: {} + typescript@5.8.2: {} undefsafe@2.0.5: {} - undici-types@6.21.0: {} + undici-types@6.20.0: {} undici@6.21.1: {} @@ -7495,9 +8284,9 @@ snapshots: dependencies: fs-monkey: 1.0.6 - update-browserslist-db@1.1.3(browserslist@4.24.5): + update-browserslist-db@1.1.3(browserslist@4.24.4): dependencies: - browserslist: 4.24.5 + browserslist: 4.24.4 escalade: 3.2.0 picocolors: 1.1.1 @@ -7528,7 +8317,7 @@ snapshots: dependencies: makeerror: 1.0.12 - watchpack@2.4.4: + watchpack@2.4.2: dependencies: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 @@ -7537,21 +8326,20 @@ snapshots: webidl-conversions@7.0.0: {} - webpack-sources@3.3.0: {} + webpack-sources@3.2.3: {} - webpack@5.99.9(@swc/core@1.11.29): + webpack@5.98.0(@swc/core@1.11.9): dependencies: '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.7 - '@types/json-schema': 7.0.15 + '@types/estree': 1.0.6 '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.14.1 - browserslist: 4.24.5 + browserslist: 4.24.4 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.1 - es-module-lexer: 1.7.0 + es-module-lexer: 1.6.0 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 @@ -7560,11 +8348,11 @@ snapshots: loader-runner: 4.3.0 mime-types: 2.1.35 neo-async: 2.6.2 - schema-utils: 4.3.2 - tapable: 2.2.2 - terser-webpack-plugin: 5.3.14(@swc/core@1.11.29)(webpack@5.99.9(@swc/core@1.11.29)) - watchpack: 2.4.4 - webpack-sources: 3.3.0 + schema-utils: 4.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.14(@swc/core@1.11.9)(webpack@5.98.0(@swc/core@1.11.9)) + watchpack: 2.4.2 + webpack-sources: 3.2.3 transitivePeerDependencies: - '@swc/core' - esbuild @@ -7575,9 +8363,9 @@ snapshots: tr46: 3.0.0 webidl-conversions: 7.0.0 - whatwg-url@14.2.0: + whatwg-url@14.1.1: dependencies: - tr46: 5.1.1 + tr46: 5.0.0 webidl-conversions: 7.0.0 whatwg-url@5.0.0: @@ -7608,7 +8396,7 @@ snapshots: imurmurhash: 0.1.4 signal-exit: 3.0.7 - ws@8.18.2: {} + ws@8.18.1: {} y18n@5.0.8: {} @@ -7632,4 +8420,4 @@ snapshots: yocto-queue@1.2.1: {} - zod@3.25.32: {} + zod@3.24.4: {} diff --git a/src/activities/discord/gateway/channelSelection.activity.ts b/src/activities/discord/gateway/channelSelection.activity.ts new file mode 100644 index 0000000..17d5539 --- /dev/null +++ b/src/activities/discord/gateway/channelSelection.activity.ts @@ -0,0 +1,37 @@ +import { Snowflake } from 'discord.js'; + +import { PlatformNames, platformRepository } from '@togethercrew.dev/db'; + +import parentLogger from '../../../config/logger.config'; + +const logger = parentLogger.child({ + activity: 'discord:event:channel-selection', +}); + +export async function isChannelSelected( + guildId: string, + channelId: Snowflake, +): Promise { + try { + const platform = await platformRepository.findOne({ + name: PlatformNames.Discord, + 'metadata.id': guildId, + }); + + const selected: Snowflake[] | undefined = + platform?.metadata?.selectedChannels; + const isSelected = !selected?.length || selected.includes(channelId); + + logger.debug( + { guildId, channelId, selected }, + isSelected ? 'channel accepted' : 'channel skipped', + ); + return isSelected; + } catch (err) { + logger.error( + { err, guildId, channelId }, + 'channel-filter error, defaulting to true', + ); + return true; + } +} diff --git a/src/activities/discord/gateway/ignoreUser.activity.ts b/src/activities/discord/gateway/ignoreUser.activity.ts new file mode 100644 index 0000000..a4848c5 --- /dev/null +++ b/src/activities/discord/gateway/ignoreUser.activity.ts @@ -0,0 +1,21 @@ +import { Snowflake } from 'discord.js'; + +import parentLogger from '../../../config/logger.config'; +import { GUILD_IGNORED_USERS } from '../../../shared/constants/discordGateway.constant'; + +const logger = parentLogger.child({ + activity: 'discord:event:ignore-user', +}); + +function getIgnoredUsersForGuild(guildId: string): Snowflake[] { + return GUILD_IGNORED_USERS[guildId] || []; +} + +export async function isUserIgnored( + guildId: string, + userId: Snowflake, +): Promise { + const ignored = getIgnoredUsersForGuild(guildId).includes(userId); + if (ignored) logger.debug({ guildId, userId }, 'user ignored'); + return ignored; +} diff --git a/src/activities/discord/gateway/index.ts b/src/activities/discord/gateway/index.ts new file mode 100644 index 0000000..937b431 --- /dev/null +++ b/src/activities/discord/gateway/index.ts @@ -0,0 +1,4 @@ +export * from './channelSelection.activity'; +export * from './ignoreUser.activity'; +export * from './mapping.activity'; +export * from './persistence.activity'; diff --git a/src/activities/discord/gateway/mapping.activity.ts b/src/activities/discord/gateway/mapping.activity.ts new file mode 100644 index 0000000..ef940fe --- /dev/null +++ b/src/activities/discord/gateway/mapping.activity.ts @@ -0,0 +1,174 @@ +import { + GatewayChannelCreateDispatchData, + GatewayChannelDeleteDispatchData, + GatewayChannelUpdateDispatchData, + GatewayGuildMemberAddDispatchData, + GatewayGuildMemberRemoveDispatchData, + GatewayGuildMemberUpdateDispatchData, + GatewayGuildRoleCreateDispatchData, + GatewayGuildRoleDeleteDispatchData, + GatewayGuildRoleUpdateDispatchData, + GatewayMessageCreateDispatchData, + GatewayMessageDeleteBulkDispatchData, + GatewayMessageDeleteDispatchData, + GatewayMessageReactionAddDispatchData, + GatewayMessageReactionRemoveAllDispatchData, + GatewayMessageReactionRemoveDispatchData, + GatewayMessageReactionRemoveEmojiDispatchData, + GatewayMessageUpdateDispatchData, +} from 'discord-api-types/v10'; + +import { IRawInfo } from '@togethercrew.dev/db'; + +import parentLogger from '../../../config/logger.config'; +import { + ChannelMappers, + GuildMemberMappers, + MessageMappers, + RoleMappers, +} from '../../../workflows/discord/gateway/mappers'; + +const logger = parentLogger.child({ activity: 'discord:event:map' }); + +export async function mapChannelCreate( + payload: GatewayChannelCreateDispatchData, +) { + return ChannelMappers.add(payload); +} + +export async function mapChannelUpdate( + payload: GatewayChannelUpdateDispatchData, +) { + return ChannelMappers.update(payload); +} + +export async function mapChannelDelete( + payload: GatewayChannelDeleteDispatchData, +) { + return ChannelMappers.remove(payload); +} + +export async function mapGuildMemberCreate( + payload: GatewayGuildMemberAddDispatchData, +) { + return GuildMemberMappers.add(payload); +} + +export async function mapGuildMemberUpdate( + payload: GatewayGuildMemberUpdateDispatchData, +) { + return GuildMemberMappers.update(payload); +} + +export async function mapGuildMemberDelete( + payload: GatewayGuildMemberRemoveDispatchData, +) { + return GuildMemberMappers.remove(payload); +} + +export async function mapRoleCreate( + payload: GatewayGuildRoleCreateDispatchData, +) { + return RoleMappers.add(payload); +} + +export async function mapRoleUpdate( + payload: GatewayGuildRoleUpdateDispatchData, +) { + return RoleMappers.update(payload); +} + +export async function mapRoleDelete( + payload: GatewayGuildRoleDeleteDispatchData, +) { + return RoleMappers.remove(payload); +} + +// Message mapping activities +export async function mapMessageCreate( + payload: GatewayMessageCreateDispatchData, +) { + logger.debug({ messageId: payload.id }, 'Mapping message create event'); + return MessageMappers.create(payload); +} + +export async function mapMessageUpdate( + payload: GatewayMessageUpdateDispatchData, +) { + logger.debug({ messageId: payload.id }, 'Mapping message update event'); + return MessageMappers.update(payload); +} + +export async function mapMessageDelete( + payload: GatewayMessageDeleteDispatchData, +) { + logger.debug({ messageId: payload.id }, 'Mapping message delete event'); + // Return the message ID for deletion - no mapping needed + return payload.id; +} + +export async function mapMessageDeleteBulk( + payload: GatewayMessageDeleteBulkDispatchData, +) { + logger.debug( + { messageIds: payload.ids }, + 'Mapping bulk message delete event', + ); + // Return the message IDs for bulk deletion - no mapping needed + return payload.ids; +} + +export async function mapMessageReactionAdd( + payload: GatewayMessageReactionAddDispatchData, + existingRawInfo?: IRawInfo, +) { + logger.debug( + { + messageId: payload.message_id, + emoji: payload.emoji.name || payload.emoji.id, + userId: payload.user_id, + }, + 'Mapping reaction add event', + ); + return MessageMappers.reactionAdd(payload, existingRawInfo); +} + +export async function mapMessageReactionRemove( + payload: GatewayMessageReactionRemoveDispatchData, + existingRawInfo: IRawInfo, +) { + logger.debug( + { + messageId: payload.message_id, + emoji: payload.emoji.name || payload.emoji.id, + userId: payload.user_id, + }, + 'Mapping reaction remove event', + ); + return MessageMappers.reactionRemove(payload, existingRawInfo); +} + +export async function mapMessageReactionRemoveAll( + payload: GatewayMessageReactionRemoveAllDispatchData, + existingRawInfo: IRawInfo, +) { + logger.debug( + { messageId: payload.message_id }, + 'Mapping reaction remove all event', + ); + return MessageMappers.reactionRemoveAll(payload, existingRawInfo); +} + +export async function mapMessageReactionRemoveEmoji( + payload: GatewayMessageReactionRemoveEmojiDispatchData, + existingRawInfo: IRawInfo, +) { + logger.debug( + { + messageId: payload.message_id, + emoji: payload.emoji.name || payload.emoji.id, + }, + 'Mapping reaction remove emoji event', + ); + return MessageMappers.reactionRemoveEmoji(payload, existingRawInfo); +} diff --git a/src/activities/discord/gateway/persistence.activity.ts b/src/activities/discord/gateway/persistence.activity.ts new file mode 100644 index 0000000..5e1fbbf --- /dev/null +++ b/src/activities/discord/gateway/persistence.activity.ts @@ -0,0 +1,235 @@ +import { Snowflake } from 'discord.js'; +import { FilterQuery } from 'mongoose'; + +import { + DatabaseManager, + IChannel, + IChannelUpdateBody, + IGuildMember, + IGuildMemberUpdateBody, + IRawInfo, + IRawInfoUpdateBody, + IRole, + IRoleUpdateBody, + makeChannelRepository, + makeGuildMemberRepository, + makeRawInfoRepository, + makeRoleRepository, +} from '@togethercrew.dev/db'; + +import parentLogger from '../../../config/logger.config'; + +const logger = parentLogger.child({ activity: 'discord:event:persistence' }); + +export async function createChannel( + guildId: Snowflake, + data: IChannel, +): Promise { + const dbConnection = await DatabaseManager.getInstance().getGuildDb(guildId); + const repo = makeChannelRepository(dbConnection); + + try { + await repo.create(data); + } catch (err: any) { + if (err.code === 11000) { + logger.warn( + { guildId, channelId: data.channelId }, + 'Channel already exists', + ); + } else { + throw err; + } + } +} + +export async function updateChannel( + guildId: Snowflake, + filter: FilterQuery, + data: IChannelUpdateBody, +): Promise { + const dbConnection = await DatabaseManager.getInstance().getGuildDb(guildId); + const repo = makeChannelRepository(dbConnection); + + const res = await repo.updateOne(filter, data); + if (!res.modifiedCount) await repo.create(data); +} + +export async function createMember( + guildId: Snowflake, + data: IGuildMember, +): Promise { + const dbConnection = await DatabaseManager.getInstance().getGuildDb(guildId); + const repo = makeGuildMemberRepository(dbConnection); + + try { + await repo.create(data); + } catch (err: any) { + if (err.code === 11000) { + logger.warn( + { guildId, discordId: data.discordId }, + 'Member already exists', + ); + } else { + throw err; + } + } +} + +export async function updateMember( + guildId: Snowflake, + filter: FilterQuery, + data: IGuildMemberUpdateBody, +): Promise { + const dbConnection = await DatabaseManager.getInstance().getGuildDb(guildId); + const repo = makeGuildMemberRepository(dbConnection); + + const res = await repo.updateOne(filter, data); + if (!res.modifiedCount) await repo.create(data); +} + +export async function createRole( + guildId: Snowflake, + data: IRole, +): Promise { + const dbConnection = await DatabaseManager.getInstance().getGuildDb(guildId); + const repo = makeRoleRepository(dbConnection); + + try { + await repo.create(data); + } catch (err: any) { + if (err.code === 11000) { + logger.warn({ guildId, roleId: data.roleId }, 'Role already exists'); + } else { + throw err; + } + } +} + +export async function updateRole( + guildId: Snowflake, + filter: FilterQuery, + data: IRoleUpdateBody, +): Promise { + try { + const dbConnection = + await DatabaseManager.getInstance().getGuildDb(guildId); + const repo = makeRoleRepository(dbConnection); + const res = await repo.updateOne(filter, data); + if (!res.modifiedCount) await repo.create(data); + } catch (err: any) { + if (err.code === 11000) { + logger.warn({ guildId, data }, 'Role already exists'); + } else { + throw err; + } + } +} + +// Message/RawInfo persistence functions +export async function createRawInfo( + guildId: Snowflake, + doc: IRawInfo, +): Promise { + try { + const db = await DatabaseManager.getInstance().getGuildDb(guildId); + const repo = makeRawInfoRepository(db); + await repo.create(doc); + logger.debug( + { guildId, messageId: doc.messageId }, + 'Created rawinfo document', + ); + } catch (err: any) { + if (err.code === 11000) { + logger.warn( + { guildId, messageId: doc.messageId }, + 'RawInfo already exists', + ); + } else { + logger.error( + { err, guildId, messageId: doc.messageId }, + 'Failed to create rawinfo', + ); + throw err; + } + } +} + +export async function updateRawInfo( + guildId: Snowflake, + filter: FilterQuery, + updateData: IRawInfoUpdateBody, +): Promise { + try { + const db = await DatabaseManager.getInstance().getGuildDb(guildId); + const repo = makeRawInfoRepository(db); + const result = await repo.updateOne(filter, updateData); + + if (result.modifiedCount === 0) { + logger.warn({ guildId, filter }, 'No rawinfo document found to update'); + } else { + logger.debug({ guildId, filter }, 'Updated rawinfo document'); + } + } catch (err: any) { + logger.error({ err, guildId, filter }, 'Failed to update rawinfo'); + throw err; + } +} + +export async function deleteRawInfo( + guildId: Snowflake, + messageId: Snowflake, +): Promise { + try { + const db = await DatabaseManager.getInstance().getGuildDb(guildId); + const repo = makeRawInfoRepository(db); + const result = await repo.deleteOne({ messageId }); + + if (result.deletedCount === 0) { + logger.warn( + { guildId, messageId }, + 'No rawinfo document found to delete', + ); + } else { + logger.debug({ guildId, messageId }, 'Deleted rawinfo document'); + } + } catch (err: any) { + logger.error({ err, guildId, messageId }, 'Failed to delete rawinfo'); + throw err; + } +} + +export async function deleteRawInfos( + guildId: Snowflake, + ids: Snowflake[], +): Promise { + try { + const db = await DatabaseManager.getInstance().getGuildDb(guildId); + const repo = makeRawInfoRepository(db); + const result = await repo.deleteMany({ messageId: { $in: ids } }); + + logger.debug( + { guildId, deletedCount: result.deletedCount, totalIds: ids.length }, + 'Bulk deleted rawinfo documents', + ); + } catch (err: any) { + logger.error( + { err, guildId, messageIds: ids }, + 'Failed to bulk delete rawinfo', + ); + throw err; + } +} + +export async function getRawInfo( + guildId: Snowflake, + messageId: Snowflake, +): Promise { + try { + const db = await DatabaseManager.getInstance().getGuildDb(guildId); + const repo = makeRawInfoRepository(db); + return await repo.findOne({ messageId }); + } catch (err: any) { + logger.error({ err, guildId, messageId }, 'Failed to get rawinfo'); + throw err; + } +} diff --git a/src/activities/discord/index.ts b/src/activities/discord/index.ts new file mode 100644 index 0000000..1d7c817 --- /dev/null +++ b/src/activities/discord/index.ts @@ -0,0 +1,15 @@ +// export { +// createChannel, +// updateChannel, +// softDeleteChannel, +// } from './persistence/channel'; +// export { createMember, updateMember, softDeleteMember } from './member'; +// export { createRole, updateRole, softDeleteRole } from './role'; +// export { +// createRawInfo, +// updateRawInfo, +// deleteRawInfo, +// deleteRawInfos, +// } from './message'; + +export * from './gateway'; diff --git a/src/activities/index.ts b/src/activities/index.ts index ede2021..aa72df0 100644 --- a/src/activities/index.ts +++ b/src/activities/index.ts @@ -3,3 +3,4 @@ export * from './telegram'; export * from './hivemind'; export * from './db'; export * from './rmq'; +export * from './discord'; diff --git a/src/config/config.service.ts b/src/config/config.service.ts index e3d7546..97f3b83 100644 --- a/src/config/config.service.ts +++ b/src/config/config.service.ts @@ -1,22 +1,19 @@ import dotenv from 'dotenv'; -import { envSchema, EnvConfig } from './schema'; + +import { EnvConfig, envSchema } from './schema'; import { transformEnv } from './transform'; export class ConfigService { private static instance: ConfigService; private readonly config: EnvConfig; - /** Hide ctor – use getInstance() */ private constructor() { - // Load .env first dotenv.config({ path: process.env.NODE_ENV === 'test' ? '.env.test' : '.env', }); - // Transform and validate in one step const result = envSchema.safeParse(transformEnv(process.env)); if (!result.success) { - // Pretty‑print Zod issues but keep original interface intact console.error( { issues: result.error.issues }, 'Config validation error – aborting start‑up', @@ -27,12 +24,10 @@ export class ConfigService { this.config = result.data; } - /** Global accessor – no change to calling code */ public static getInstance(): ConfigService { return (this.instance ??= new ConfigService()); } - /** First‑level key getter (unchanged interface) */ public get(key: K): EnvConfig[K] { return this.config[key]; } diff --git a/src/examples/client/discordGateway.example.ts b/src/examples/client/discordGateway.example.ts new file mode 100644 index 0000000..9eb5995 --- /dev/null +++ b/src/examples/client/discordGateway.example.ts @@ -0,0 +1,142 @@ +import { + GatewayDispatchEvents, + GatewayDispatchPayload, +} from 'discord-api-types/v10'; +import { IntentsBitField } from 'discord.js'; + +import { REST } from '@discordjs/rest'; +import { WebSocketManager, WebSocketShardEvents } from '@discordjs/ws'; +import { + Client as TemporalClient, + Connection as TemporalConnection, +} from '@temporalio/client'; + +import { DiscordGatewayEventWorkflow } from '../../workflows/discord/gateway'; + +const ALLOWED_EVENTS = [ + GatewayDispatchEvents.ChannelCreate, + GatewayDispatchEvents.ChannelUpdate, + GatewayDispatchEvents.ChannelDelete, + + GatewayDispatchEvents.GuildMemberAdd, + GatewayDispatchEvents.GuildMemberUpdate, + GatewayDispatchEvents.GuildMemberRemove, + + GatewayDispatchEvents.GuildRoleCreate, + GatewayDispatchEvents.GuildRoleUpdate, + GatewayDispatchEvents.GuildRoleDelete, + + GatewayDispatchEvents.MessageCreate, + GatewayDispatchEvents.MessageUpdate, + GatewayDispatchEvents.MessageDelete, + GatewayDispatchEvents.MessageDeleteBulk, + + GatewayDispatchEvents.MessageReactionAdd, + GatewayDispatchEvents.MessageReactionRemove, + GatewayDispatchEvents.MessageReactionRemoveAll, + GatewayDispatchEvents.MessageReactionRemoveEmoji, +]; + +function isAllowedEvent(eventType: string): boolean { + return ALLOWED_EVENTS.includes(eventType as GatewayDispatchEvents); +} + +function createGatewayManager(token: string): WebSocketManager { + const rest = new REST().setToken(token); + return new WebSocketManager({ + token, + intents: + IntentsBitField.Flags.Guilds | + IntentsBitField.Flags.GuildMembers | + IntentsBitField.Flags.GuildMessages | + IntentsBitField.Flags.MessageContent | + IntentsBitField.Flags.GuildMessageReactions, + rest, + }); +} + +function getGuildIdFromPayload(payload: GatewayDispatchPayload): string { + try { + const data = payload.d as any; + + if (data.guild_id) { + return data.guild_id; + } + + if (data.guildId) { + return data.guildId; + } + + if (data.guild && data.guild.id) { + return data.guild.id; + } + + return 'unknown-guild'; + } catch (err) { + console.warn('Could not extract guild ID from payload', err); + return 'unknown-guild'; + } +} + +async function main() { + const temporalConn = await TemporalConnection.connect({ + address: 'localhost:7233', + }); + const temporalClient = new TemporalClient({ + connection: temporalConn, + }); + + function ingestEvent(payload: GatewayDispatchPayload) { + const guildId = getGuildIdFromPayload(payload); + const wfId = `discord-event-${payload.t}-${guildId}-${Date.now()}`; + + temporalClient.workflow + .start(DiscordGatewayEventWorkflow, { + taskQueue: 'TEMPORAL_QUEUE_HEAVY', + workflowId: wfId, + args: [payload], + }) + .then(() => console.log(`✅ Started workflow ${wfId}`)) + .catch((err) => + console.error(`❌ Failed to start workflow: ${err.message}`), + ); + } + + const DISCORD_TOKEN = 'xx'; + const manager = createGatewayManager(DISCORD_TOKEN); + + manager.on( + WebSocketShardEvents.Dispatch, + (payload: GatewayDispatchPayload, shardId) => { + console.log(payload.t); + // if (isAllowedEvent(payload.t)) { + // console.log(`Received event ${payload.t} from shard ${shardId}`); + // ingestEvent(payload); + // } + ingestEvent(payload); + }, + ); + + manager + .on(WebSocketShardEvents.Ready, (shardId) => + console.info(`✅ Shard #${shardId} ready`), + ) + .on(WebSocketShardEvents.Closed, (shardId) => + console.warn(`⚠️ Shard #${shardId} closed`), + ); + + await manager.connect(); + console.log('✅ Connected to Discord Gateway'); + + process.once('SIGINT', async () => { + console.info('SIGINT → closing shards …'); + await manager.destroy(); + await temporalConn.close(); + process.exit(0); + }); +} + +main().catch((err) => { + console.error('❌ Fatal error:', err); + process.exit(1); +}); diff --git a/src/libs/helpers/AssertNever.ts b/src/libs/helpers/AssertNever.ts new file mode 100644 index 0000000..008f21d --- /dev/null +++ b/src/libs/helpers/AssertNever.ts @@ -0,0 +1,3 @@ +export function assertNever(x: any): never { + throw new Error(`Unhandled value: ${x}`); +} diff --git a/src/shared/constants/discordGateway.constant.ts b/src/shared/constants/discordGateway.constant.ts new file mode 100644 index 0000000..be76fec --- /dev/null +++ b/src/shared/constants/discordGateway.constant.ts @@ -0,0 +1,30 @@ +import { GatewayDispatchEvents } from 'discord-api-types/v10'; +import { Snowflake } from 'discord.js'; + +type GuildIgnoredUsers = Record; + +export const GUILD_IGNORED_USERS: GuildIgnoredUsers = { + '585084330037084172': ['641449673818898472'], +}; + +export const SUPPORTED_GATEWAY_EVENTS = [ + GatewayDispatchEvents.ChannelCreate, + GatewayDispatchEvents.ChannelUpdate, + GatewayDispatchEvents.ChannelDelete, + GatewayDispatchEvents.GuildMemberAdd, + GatewayDispatchEvents.GuildMemberUpdate, + GatewayDispatchEvents.GuildMemberRemove, + GatewayDispatchEvents.GuildRoleCreate, + GatewayDispatchEvents.GuildRoleUpdate, + GatewayDispatchEvents.GuildRoleDelete, + GatewayDispatchEvents.MessageCreate, + GatewayDispatchEvents.MessageUpdate, + GatewayDispatchEvents.MessageDelete, + GatewayDispatchEvents.MessageDeleteBulk, + GatewayDispatchEvents.MessageReactionAdd, + GatewayDispatchEvents.MessageReactionRemove, + GatewayDispatchEvents.MessageReactionRemoveAll, + GatewayDispatchEvents.MessageReactionRemoveEmoji, +] as const; + +export type SupportedGatewayEvent = (typeof SUPPORTED_GATEWAY_EVENTS)[number]; diff --git a/src/shared/types/discord/discordEvents.ts b/src/shared/types/discord/discordEvents.ts new file mode 100644 index 0000000..a992e04 --- /dev/null +++ b/src/shared/types/discord/discordEvents.ts @@ -0,0 +1,44 @@ +import { Events } from 'discord.js'; + +import { IChannel, IGuildMember, IRawInfo, IRole } from '@togethercrew.dev/db'; + +export type DiscordEventType = + | Events.ChannelCreate + | Events.ChannelUpdate + | Events.ChannelDelete + | Events.GuildMemberAdd + | Events.GuildMemberUpdate + | Events.GuildMemberRemove + | Events.GuildRoleCreate + | Events.GuildRoleUpdate + | Events.GuildRoleDelete + | Events.MessageCreate + | Events.MessageUpdate + | Events.MessageReactionAdd + | Events.MessageReactionRemove + | Events.MessageReactionRemoveAll + | Events.MessageReactionRemoveEmoji + | Events.MessageDelete + | Events.MessageBulkDelete + | Events.UserUpdate; + +export interface EventPayloadMap { + [Events.ChannelCreate]: IChannel; + [Events.ChannelUpdate]: IChannel; + [Events.ChannelDelete]: IChannel; + [Events.GuildMemberAdd]: IGuildMember; + [Events.GuildMemberUpdate]: IGuildMember; + [Events.GuildMemberRemove]: IGuildMember; + [Events.UserUpdate]: IGuildMember; + [Events.GuildRoleCreate]: IRole; + [Events.GuildRoleUpdate]: IRole; + [Events.GuildRoleDelete]: IRole; + [Events.MessageCreate]: IRawInfo; + [Events.MessageUpdate]: IRawInfo; + [Events.MessageReactionAdd]: IRawInfo; + [Events.MessageReactionRemove]: IRawInfo; + [Events.MessageReactionRemoveAll]: IRawInfo; + [Events.MessageReactionRemoveEmoji]: IRawInfo; + [Events.MessageDelete]: IRawInfo; + [Events.MessageBulkDelete]: IRawInfo; +} diff --git a/src/worker.ts b/src/worker.ts index 790ada5..2105200 100644 --- a/src/worker.ts +++ b/src/worker.ts @@ -1,9 +1,11 @@ -import { Worker, NativeConnection } from '@temporalio/worker'; +import { NativeConnection, Worker } from '@temporalio/worker'; import { Connection as MongoConnection } from '@togethercrew.dev/db'; -import * as activities from './activities'; +import * as activities from './activities'; import { ConfigService } from './config'; -import { logger } from './config/logger.config'; +import parentLogger from './config/logger.config'; + +const logger = parentLogger.child({ mdoule: 'worker' }); async function connectTemporal(uri: string) { return NativeConnection.connect({ address: uri }); diff --git a/src/workflows/discord/gateway/handlers/channel.handler.ts b/src/workflows/discord/gateway/handlers/channel.handler.ts new file mode 100644 index 0000000..8cfed86 --- /dev/null +++ b/src/workflows/discord/gateway/handlers/channel.handler.ts @@ -0,0 +1,38 @@ +import { + GatewayChannelCreateDispatchData, + GatewayChannelDeleteDispatchData, + GatewayChannelUpdateDispatchData, +} from 'discord-api-types/v10'; + +import { proxyActivities } from '@temporalio/workflow'; + +import type * as Activities from '../../../../activities'; + +const activitiesProxy = proxyActivities({ + startToCloseTimeout: '1 minute', + retry: { maximumAttempts: 5 }, +}); + +export class ChannelHandler { + static async create(data: GatewayChannelCreateDispatchData): Promise { + const mappedData = await activitiesProxy.mapChannelCreate(data); + await activitiesProxy.createChannel(data.guild_id, mappedData); + } + + static async update(data: GatewayChannelUpdateDispatchData): Promise { + const mappedData = await activitiesProxy.mapChannelUpdate(data); + await activitiesProxy.updateChannel( + data.guild_id, + { channelId: data.id }, + mappedData, + ); + } + + static async delete(data: GatewayChannelDeleteDispatchData): Promise { + await activitiesProxy.updateChannel( + data.guild_id, + { channelId: data.id }, + { deletedAt: new Date() }, + ); + } +} diff --git a/src/workflows/discord/gateway/handlers/guildMember.handler.ts b/src/workflows/discord/gateway/handlers/guildMember.handler.ts new file mode 100644 index 0000000..9a479ee --- /dev/null +++ b/src/workflows/discord/gateway/handlers/guildMember.handler.ts @@ -0,0 +1,41 @@ +import type * as Activities from '../../../../activities'; +import { + GatewayGuildMemberAddDispatchData, + GatewayGuildMemberRemoveDispatchData, + GatewayGuildMemberUpdateDispatchData, +} from 'discord-api-types/v10'; + +import { proxyActivities } from '@temporalio/workflow'; + +const activitiesProxy = proxyActivities({ + startToCloseTimeout: '1 minute', + retry: { maximumAttempts: 5 }, +}); + +export class GuildMemberHandler { + static async add(data: GatewayGuildMemberAddDispatchData): Promise { + const mappedData = await activitiesProxy.mapGuildMemberCreate(data); + await activitiesProxy.createMember(data.guild_id, mappedData); + } + + static async update( + data: GatewayGuildMemberUpdateDispatchData, + ): Promise { + const mappedData = await activitiesProxy.mapGuildMemberUpdate(data); + await activitiesProxy.updateMember( + data.guild_id, + { discordId: data.user.id }, + mappedData, + ); + } + + static async remove( + data: GatewayGuildMemberRemoveDispatchData, + ): Promise { + await activitiesProxy.updateMember( + data.guild_id, + { discordId: data.user.id }, + { deletedAt: new Date() }, + ); + } +} diff --git a/src/workflows/discord/gateway/handlers/index.ts b/src/workflows/discord/gateway/handlers/index.ts new file mode 100644 index 0000000..e43db7c --- /dev/null +++ b/src/workflows/discord/gateway/handlers/index.ts @@ -0,0 +1,31 @@ +import { GatewayDispatchEvents } from 'discord-api-types/v10'; + +import { ChannelHandler } from './channel.handler'; +import { GuildMemberHandler } from './guildMember.handler'; +import { MessageHandler } from './message.handler'; +import { RoleHandler } from './role.handler'; + +export const eventHandlers = { + [GatewayDispatchEvents.ChannelCreate]: ChannelHandler.create, + [GatewayDispatchEvents.ChannelUpdate]: ChannelHandler.update, + [GatewayDispatchEvents.ChannelDelete]: ChannelHandler.delete, + + [GatewayDispatchEvents.GuildMemberAdd]: GuildMemberHandler.add, + [GatewayDispatchEvents.GuildMemberUpdate]: GuildMemberHandler.update, + [GatewayDispatchEvents.GuildMemberRemove]: GuildMemberHandler.remove, + + [GatewayDispatchEvents.GuildRoleCreate]: RoleHandler.create, + [GatewayDispatchEvents.GuildRoleUpdate]: RoleHandler.update, + [GatewayDispatchEvents.GuildRoleDelete]: RoleHandler.delete, + + [GatewayDispatchEvents.MessageCreate]: MessageHandler.create, + [GatewayDispatchEvents.MessageUpdate]: MessageHandler.update, + [GatewayDispatchEvents.MessageDelete]: MessageHandler.delete, + [GatewayDispatchEvents.MessageDeleteBulk]: MessageHandler.deleteBulk, + [GatewayDispatchEvents.MessageReactionAdd]: MessageHandler.reactionAdd, + [GatewayDispatchEvents.MessageReactionRemove]: MessageHandler.reactionRemove, + [GatewayDispatchEvents.MessageReactionRemoveAll]: + MessageHandler.reactionRemoveAll, + [GatewayDispatchEvents.MessageReactionRemoveEmoji]: + MessageHandler.reactionRemoveEmoji, +} as const; diff --git a/src/workflows/discord/gateway/handlers/message.handler.ts b/src/workflows/discord/gateway/handlers/message.handler.ts new file mode 100644 index 0000000..3c13c6f --- /dev/null +++ b/src/workflows/discord/gateway/handlers/message.handler.ts @@ -0,0 +1,120 @@ +import { + GatewayMessageCreateDispatchData, + GatewayMessageDeleteBulkDispatchData, + GatewayMessageDeleteDispatchData, + GatewayMessageReactionAddDispatchData, + GatewayMessageReactionRemoveAllDispatchData, + GatewayMessageReactionRemoveDispatchData, + GatewayMessageReactionRemoveEmojiDispatchData, + GatewayMessageUpdateDispatchData, +} from 'discord-api-types/v10'; + +import { proxyActivities } from '@temporalio/workflow'; + +import type * as Activities from '../../../../activities'; + +const activities = proxyActivities({ + startToCloseTimeout: '1 minute', + retry: { maximumAttempts: 5 }, +}); +async function guardMessage( + guildId: string, + channelId: string, + authorId?: string, +): Promise { + if (!(await activities.isChannelSelected(guildId, channelId))) return false; + if (authorId && (await activities.isUserIgnored(guildId, authorId))) + return false; + return true; +} + +export class MessageHandler { + static async create(data: GatewayMessageCreateDispatchData) { + if (!(await guardMessage(data.guild_id, data.channel_id, data.author.id))) + return; + + const mapped = await activities.mapMessageCreate(data); + await activities.createRawInfo(data.guild_id, mapped); + } + + static async update(data: GatewayMessageUpdateDispatchData) { + if (!(await guardMessage(data.guild_id, data.channel_id, data.author?.id))) + return; + + const mapped = await activities.mapMessageUpdate(data); + await activities.updateRawInfo( + data.guild_id, + { messageId: data.id }, + mapped, + ); + } + + static async delete(data: GatewayMessageDeleteDispatchData) { + if (!(await guardMessage(data.guild_id, data.channel_id))) return; + await activities.deleteRawInfo(data.guild_id, data.id); + } + + static async deleteBulk(data: GatewayMessageDeleteBulkDispatchData) { + if (!(await guardMessage(data.guild_id, data.channel_id))) return; + await activities.deleteRawInfos(data.guild_id, data.ids); + } + static async reactionAdd(data: GatewayMessageReactionAddDispatchData) { + if (!(await guardMessage(data.guild_id, data.channel_id, data.user_id))) + return; + + const current = await activities.getRawInfo(data.guild_id, data.message_id); + const mapped = await activities.mapMessageReactionAdd( + data, + current ?? undefined, + ); + await activities.updateRawInfo( + data.guild_id, + { messageId: data.message_id }, + mapped, + ); + } + + static async reactionRemove(data: GatewayMessageReactionRemoveDispatchData) { + if (!(await guardMessage(data.guild_id, data.channel_id, data.user_id))) + return; + + const current = await activities.getRawInfo(data.guild_id, data.message_id); + const mapped = await activities.mapMessageReactionRemove(data, current); + await activities.updateRawInfo( + data.guild_id, + { messageId: data.message_id }, + mapped, + ); + } + + static async reactionRemoveAll( + data: GatewayMessageReactionRemoveAllDispatchData, + ) { + if (!(await guardMessage(data.guild_id, data.channel_id))) return; + + const current = await activities.getRawInfo(data.guild_id, data.message_id); + const mapped = await activities.mapMessageReactionRemoveAll(data, current); + await activities.updateRawInfo( + data.guild_id, + { messageId: data.message_id }, + mapped, + ); + } + + static async reactionRemoveEmoji( + data: GatewayMessageReactionRemoveEmojiDispatchData, + ) { + if (!(await guardMessage(data.guild_id, data.channel_id))) return; + + const current = await activities.getRawInfo(data.guild_id, data.message_id); + const mapped = await activities.mapMessageReactionRemoveEmoji( + data, + current, + ); + await activities.updateRawInfo( + data.guild_id, + { messageId: data.message_id }, + mapped, + ); + } +} diff --git a/src/workflows/discord/gateway/handlers/role.handler.ts b/src/workflows/discord/gateway/handlers/role.handler.ts new file mode 100644 index 0000000..6b2e93f --- /dev/null +++ b/src/workflows/discord/gateway/handlers/role.handler.ts @@ -0,0 +1,37 @@ +import type * as Activities from '../../../../activities'; +import { + GatewayGuildRoleCreateDispatchData, + GatewayGuildRoleDeleteDispatchData, + GatewayGuildRoleUpdateDispatchData, +} from 'discord-api-types/v10'; + +import { proxyActivities } from '@temporalio/workflow'; + +const activitiesProxy = proxyActivities({ + startToCloseTimeout: '1 minute', + retry: { maximumAttempts: 5 }, +}); + +export class RoleHandler { + static async create(data: GatewayGuildRoleCreateDispatchData): Promise { + const mappedData = await activitiesProxy.mapRoleCreate(data); + await activitiesProxy.createRole(data.guild_id, mappedData); + } + + static async update(data: GatewayGuildRoleUpdateDispatchData): Promise { + const mappedData = await activitiesProxy.mapRoleUpdate(data); + await activitiesProxy.updateRole( + data.guild_id, + { roleId: data.role.id }, + mappedData, + ); + } + + static async delete(data: GatewayGuildRoleDeleteDispatchData): Promise { + await activitiesProxy.updateRole( + data.guild_id, + { roleId: data.role_id }, + { deletedAt: new Date() }, + ); + } +} diff --git a/src/workflows/discord/gateway/index.ts b/src/workflows/discord/gateway/index.ts new file mode 100644 index 0000000..f00e099 --- /dev/null +++ b/src/workflows/discord/gateway/index.ts @@ -0,0 +1,13 @@ +import { GatewayDispatchPayload } from 'discord-api-types/v10'; + +import { eventHandlers } from './handlers'; + +export async function DiscordGatewayEventWorkflow( + payload: GatewayDispatchPayload, +): Promise { + const { t: event, d } = payload; + if (!(event in eventHandlers)) { + throw new Error(`Unsupported gateway event: ${event as string}`); + } + await (eventHandlers as any)[event](d); +} diff --git a/src/workflows/discord/gateway/mappers/channel.mapper.ts b/src/workflows/discord/gateway/mappers/channel.mapper.ts new file mode 100644 index 0000000..252a386 --- /dev/null +++ b/src/workflows/discord/gateway/mappers/channel.mapper.ts @@ -0,0 +1,41 @@ +import { + GatewayChannelCreateDispatchData, + GatewayChannelUpdateDispatchData, + GatewayChannelDeleteDispatchData, +} from 'discord-api-types/v10'; +import { IChannel, IChannelUpdateBody } from '@togethercrew.dev/db'; + +const mapChannel = ( + channel: GatewayChannelCreateDispatchData | GatewayChannelUpdateDispatchData, +) => ({ + channelId: channel.id, + name: channel.name ?? null, + parentId: channel.parent_id ?? null, + permissionOverwrites: channel.permission_overwrites, + type: channel.type, +}); + +export function mapChannelCreate( + payload: GatewayChannelCreateDispatchData, +): IChannel { + return mapChannel(payload); +} + +export function mapChannelUpdate( + payload: GatewayChannelUpdateDispatchData, +): IChannel { + return mapChannel(payload); +} + +export function mapChannelDelete(payload: GatewayChannelDeleteDispatchData) { + return { + channelId: payload.id, + deletedAt: new Date(), + }; +} + +export const ChannelMappers = { + add: mapChannelCreate, + update: mapChannelUpdate, + remove: mapChannelDelete, +}; diff --git a/src/workflows/discord/gateway/mappers/guildMember.mapper.ts b/src/workflows/discord/gateway/mappers/guildMember.mapper.ts new file mode 100644 index 0000000..42b02dd --- /dev/null +++ b/src/workflows/discord/gateway/mappers/guildMember.mapper.ts @@ -0,0 +1,48 @@ +import { + GatewayGuildMemberAddDispatchData as GuildMemberAddData, + GatewayGuildMemberUpdateDispatchData as GuildMemberUpdateData, + GatewayGuildMemberRemoveDispatchData as GuildMemberRemoveData, +} from 'discord-api-types/v10'; +import { IGuildMember, IGuildMemberUpdateBody } from '@togethercrew.dev/db'; + +const mapUser = (user: GuildMemberAddData['user']) => ({ + discordId: user.id, + username: user.username, + avatar: user.avatar ?? null, + discriminator: user.discriminator, + globalName: (user as any).global_name ?? null, + isBot: user.bot ?? null, +}); + +export function mapGuildMemberAdd(payload: GuildMemberAddData): IGuildMember { + return { + ...mapUser(payload.user), + joinedAt: new Date(payload.joined_at), + roles: payload.roles, + nickname: payload.nick ?? null, + }; +} + +export function mapGuildMemberUpdate( + payload: GuildMemberUpdateData, +): IGuildMember { + return { + ...mapUser(payload.user), + joinedAt: payload.joined_at ? new Date(payload.joined_at) : undefined, + roles: payload.roles ?? undefined, + nickname: payload.nick ?? undefined, + }; +} + +export function mapGuildMemberRemove(payload: GuildMemberRemoveData) { + return { + discordId: payload.user.id, + deletedAt: new Date(), + }; +} + +export const GuildMemberMappers = { + add: mapGuildMemberAdd, + update: mapGuildMemberUpdate, + remove: mapGuildMemberRemove, +}; diff --git a/src/workflows/discord/gateway/mappers/index.ts b/src/workflows/discord/gateway/mappers/index.ts new file mode 100644 index 0000000..618cbdf --- /dev/null +++ b/src/workflows/discord/gateway/mappers/index.ts @@ -0,0 +1,4 @@ +export { ChannelMappers } from './channel.mapper'; +export { GuildMemberMappers } from './guildMember.mapper'; +export { RoleMappers } from './role.mapper'; +export { MessageMappers } from './message.mapper'; diff --git a/src/workflows/discord/gateway/mappers/message.mapper.ts b/src/workflows/discord/gateway/mappers/message.mapper.ts new file mode 100644 index 0000000..be58776 --- /dev/null +++ b/src/workflows/discord/gateway/mappers/message.mapper.ts @@ -0,0 +1,261 @@ +// import { Message, Role, TextChannel, User } from 'discord.js'; +// import { GatewayMessageCreateDispatchData } from 'discord-api-types/v10'; + +// import { IRawInfo } from '@togethercrew.dev/db'; + +// export interface ThreadInfo { +// threadId: string | null; +// threadName: string | null; +// channelId: string; +// channelName: string | null; +// } + +// export function toIRawInfo(message: GatewayMessageCreateDispatchData): IRawInfo { +// return { +// type: message.type, +// author: message.author.id, +// content: message.content, +// createdDate: new Date(message.timestamp), +// role_mentions: message.mention_roles, +// user_mentions: message.mentions, +// replied_user: message.type === 19 ? message.referenced_message?.id : null, +// reactions: message.reactions, +// messageId: message.id, +// channelId: thread?.channelId ?? message.channelId, +// channelName: +// thread?.channelName ?? +// (message.channel instanceof TextChannel ? message.channel.name : null), +// threadId: thread?.threadId ?? null, +// threadName: thread?.threadName ?? null, +// isGeneratedByWebhook: Boolean(message.webhookId), +// }; +// } + +import { + GatewayMessageCreateDispatchData, + GatewayMessageReactionAddDispatchData, + GatewayMessageReactionRemoveAllDispatchData, + GatewayMessageReactionRemoveDispatchData, + GatewayMessageReactionRemoveEmojiDispatchData, + GatewayMessageUpdateDispatchData, +} from 'discord-api-types/v10'; + +import { IRawInfo, IRawInfoUpdateBody } from '@togethercrew.dev/db'; + +// Helper function to format reaction strings according to the schema +const formatReaction = (userIds: string[], emoji: string): string => { + return `${userIds.join(',')},${emoji}`; +}; + +// Helper function to find existing reaction by emoji +const findReactionByEmoji = ( + reactions: string[], + emoji: string, +): string | undefined => { + return reactions.find((reaction) => { + const parts = reaction.split(','); + return parts[parts.length - 1] === emoji; + }); +}; + +// Helper function to get user IDs from a reaction string +const getUserIdsFromReaction = (reaction: string): string[] => { + const parts = reaction.split(','); + return parts.slice(0, -1); // All parts except the last one (emoji) +}; + +// Helper function to get emoji from a reaction string +const getEmojiFromReaction = (reaction: string): string => { + const parts = reaction.split(','); + return parts[parts.length - 1]; // Last part is emoji +}; + +// Helper function to create a full IRawInfo from partial update and original +function createUpdatedRawInfo( + original: IRawInfo, + update: Partial, +): IRawInfo { + return { + ...original, + ...update, + }; +} + +// Map message create event +export function mapMessageCreate( + payload: GatewayMessageCreateDispatchData, +): IRawInfo { + return { + type: payload.type, + author: payload.author.id, + content: payload.content || '', + createdDate: new Date(payload.timestamp), + user_mentions: payload.mentions?.map((user) => user.id) || [], + role_mentions: payload.mention_roles || [], + reactions: [], // New messages don't have reactions yet + replied_user: payload.referenced_message?.author?.id || null, + messageId: payload.id, + channelId: payload.channel_id, + channelName: null, // This would need to be populated from channel data + threadId: null, // This would need to be determined from channel type + threadName: null, + isGeneratedByWebhook: Boolean(payload.webhook_id), + }; +} + +// Map message update event +export function mapMessageUpdate( + payload: GatewayMessageUpdateDispatchData, +): IRawInfoUpdateBody { + const updateData: any = {}; + + if (payload.content !== undefined) { + updateData.content = payload.content; + } + + if (payload.mentions) { + updateData.user_mentions = payload.mentions.map((user) => user.id); + } + + if (payload.mention_roles) { + updateData.role_mentions = payload.mention_roles; + } + + return updateData; +} + +// Map reaction add +export function mapReactionAdd( + payload: GatewayMessageReactionAddDispatchData, + existingRawInfo?: IRawInfo, +): IRawInfo { + const emojiStr = payload.emoji.id || payload.emoji.name || 'unknown_emoji'; + + if (existingRawInfo) { + const existingReactions = existingRawInfo.reactions || []; + const existingReaction = findReactionByEmoji(existingReactions, emojiStr); + + if (existingReaction) { + // Emoji already exists, add user to existing reaction + const userIds = getUserIdsFromReaction(existingReaction); + if (!userIds.includes(payload.user_id)) { + userIds.push(payload.user_id); + const updatedReaction = formatReaction(userIds, emojiStr); + + // Replace the old reaction with the updated one + const updatedReactions = existingReactions.map((reaction) => + reaction === existingReaction ? updatedReaction : reaction, + ); + + return createUpdatedRawInfo(existingRawInfo, { + reactions: updatedReactions, + }); + } + // User already reacted with this emoji, no change needed + return existingRawInfo; + } else { + // New emoji, create new reaction element + const newReaction = formatReaction([payload.user_id], emojiStr); + const updatedReactions = [...existingReactions, newReaction]; + + return createUpdatedRawInfo(existingRawInfo, { + reactions: updatedReactions, + }); + } + } + + // Create a minimal IRawInfo if none exists (fallback case) + const newReaction = formatReaction([payload.user_id], emojiStr); + return { + type: 0, + author: payload.message_author_id || payload.user_id, + content: '', + createdDate: new Date(), + user_mentions: [], + role_mentions: [], + reactions: [newReaction], + replied_user: null, + messageId: payload.message_id, + channelId: payload.channel_id, + channelName: null, + threadId: null, + threadName: null, + isGeneratedByWebhook: false, + }; +} + +// Map reaction remove +export function mapReactionRemove( + payload: GatewayMessageReactionRemoveDispatchData, + existingRawInfo: IRawInfo, +): IRawInfo { + const emojiStr = payload.emoji.id || payload.emoji.name || 'unknown_emoji'; + const existingReactions = existingRawInfo.reactions || []; + const existingReaction = findReactionByEmoji(existingReactions, emojiStr); + + if (existingReaction) { + const userIds = getUserIdsFromReaction(existingReaction); + const updatedUserIds = userIds.filter( + (userId) => userId !== payload.user_id, + ); + + if (updatedUserIds.length === 0) { + // Remove the entire reaction element if no users left + const updatedReactions = existingReactions.filter( + (reaction) => reaction !== existingReaction, + ); + return createUpdatedRawInfo(existingRawInfo, { + reactions: updatedReactions, + }); + } else { + // Update the reaction with remaining users + const updatedReaction = formatReaction(updatedUserIds, emojiStr); + const updatedReactions = existingReactions.map((reaction) => + reaction === existingReaction ? updatedReaction : reaction, + ); + return createUpdatedRawInfo(existingRawInfo, { + reactions: updatedReactions, + }); + } + } + + // Reaction not found, return unchanged + return existingRawInfo; +} + +// Map reaction remove all +export function mapReactionRemoveAll( + payload: GatewayMessageReactionRemoveAllDispatchData, + existingRawInfo: IRawInfo, +): IRawInfo { + // Clear all reactions + return createUpdatedRawInfo(existingRawInfo, { reactions: [] }); +} + +// Map reaction remove emoji +export function mapReactionRemoveEmoji( + payload: GatewayMessageReactionRemoveEmojiDispatchData, + existingRawInfo: IRawInfo, +): IRawInfo { + const emojiStr = payload.emoji.id || payload.emoji.name || 'unknown_emoji'; + + // Remove all reactions with this emoji + const updatedReactions = (existingRawInfo.reactions || []).filter( + (reaction) => { + return getEmojiFromReaction(reaction) !== emojiStr; + }, + ); + + return createUpdatedRawInfo(existingRawInfo, { reactions: updatedReactions }); +} + +// Delete operations don't need mappers, as we just use the message ID + +export const MessageMappers = { + create: mapMessageCreate, + update: mapMessageUpdate, + reactionAdd: mapReactionAdd, + reactionRemove: mapReactionRemove, + reactionRemoveAll: mapReactionRemoveAll, + reactionRemoveEmoji: mapReactionRemoveEmoji, +}; diff --git a/src/workflows/discord/gateway/mappers/role.mapper.ts b/src/workflows/discord/gateway/mappers/role.mapper.ts new file mode 100644 index 0000000..80ab27d --- /dev/null +++ b/src/workflows/discord/gateway/mappers/role.mapper.ts @@ -0,0 +1,37 @@ +import { APIRole } from 'discord-api-types/v10'; +import { + GatewayGuildRoleCreateDispatchData as GuildRoleCreateData, + GatewayGuildRoleUpdateDispatchData as GuildRoleUpdateData, + GatewayGuildRoleDeleteDispatchData as GuildRoleDeleteData, +} from 'discord-api-types/v10'; + +import { IRole, IRoleUpdateBody } from '@togethercrew.dev/db'; + +const mapRole = ( + role: GuildRoleCreateData['role'] | GuildRoleUpdateData['role'], +) => ({ + roleId: role.id, + name: role.name, + color: role.color, +}); + +export function mapGuildRoleCreate(payload: GuildRoleCreateData): IRole { + return mapRole(payload.role); +} + +export function mapGuildRoleUpdate(payload: GuildRoleUpdateData): IRole { + return mapRole(payload.role); +} + +export function mapGuildRoleDelete(payload: GuildRoleDeleteData) { + return { + roleId: payload.role_id, + deletedAt: new Date(), + }; +} + +export const RoleMappers = { + add: mapGuildRoleCreate, + update: mapGuildRoleUpdate, + remove: mapGuildRoleDelete, +}; diff --git a/src/workflows/discord/index.ts b/src/workflows/discord/index.ts index 58e1328..ffc821d 100644 --- a/src/workflows/discord/index.ts +++ b/src/workflows/discord/index.ts @@ -1 +1,2 @@ export * from './DiscordQuestionWorkflow'; +export * from './gateway';