diff --git a/apps/server/package.json b/apps/server/package.json index 15f93001..59defad4 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -30,9 +30,9 @@ "test:e2e": "jest --config test/jest-e2e.json" }, "dependencies": { - "@ai-sdk/google": "^3.0.9", - "@ai-sdk/openai": "^3.0.11", - "@ai-sdk/openai-compatible": "^2.0.12", + "@ai-sdk/google": "^3.0.29", + "@ai-sdk/openai": "^3.0.29", + "@ai-sdk/openai-compatible": "^2.0.30", "@aws-sdk/client-s3": "3.982.0", "@aws-sdk/lib-storage": "3.982.0", "@aws-sdk/s3-request-presigner": "3.982.0", @@ -59,11 +59,11 @@ "@react-email/components": "1.0.7", "@react-email/render": "2.0.4", "@socket.io/redis-adapter": "^8.3.0", - "ai": "^6.0.37", - "ai-sdk-ollama": "^3.1.1", + "ai": "^6.0.86", + "ai-sdk-ollama": "^3.7.0", "bcrypt": "^6.0.0", "bullmq": "^5.65.0", - "cache-manager": "^6.4.3", + "cache-manager": "^7.2.8", "cheerio": "^1.1.2", "class-transformer": "^0.5.1", "class-validator": "^0.14.3", diff --git a/apps/server/src/ee b/apps/server/src/ee index 3b7c484e..71b4323d 160000 --- a/apps/server/src/ee +++ b/apps/server/src/ee @@ -1 +1 @@ -Subproject commit 3b7c484eebf698d6696f83d415184525054fb75c +Subproject commit 71b4323d1b6ea3fbec061b0d31be33235d4ddbcd diff --git a/apps/server/src/integrations/environment/environment.validation.ts b/apps/server/src/integrations/environment/environment.validation.ts index ced01b5d..5f65d018 100644 --- a/apps/server/src/integrations/environment/environment.validation.ts +++ b/apps/server/src/integrations/environment/environment.validation.ts @@ -91,7 +91,6 @@ export class EnvironmentVariables { @ValidateIf((obj) => obj.SEARCH_DRIVER === 'typesense') TYPESENSE_URL: string; - @IsOptional() @ValidateIf((obj) => obj.SEARCH_DRIVER === 'typesense') @IsNotEmpty() @IsString() @@ -110,18 +109,14 @@ export class EnvironmentVariables { AI_DRIVER: string; @IsOptional() - @ValidateIf((obj) => obj.AI_DRIVER) @IsString() - @IsNotEmpty() AI_EMBEDDING_MODEL: string; - @IsOptional() @ValidateIf((obj) => obj.AI_EMBEDDING_DIMENSION) @IsIn(['768', '1024', '1536', '2000', '3072']) @IsString() AI_EMBEDDING_DIMENSION: string; - @IsOptional() @ValidateIf((obj) => obj.AI_DRIVER) @IsString() @IsNotEmpty() @@ -145,13 +140,11 @@ export class EnvironmentVariables { @IsUrl({ protocols: ['http', 'https'], require_tld: false }) OPENAI_API_URL: string; - @IsOptional() @ValidateIf((obj) => obj.AI_DRIVER && obj.AI_DRIVER === 'gemini') @IsString() @IsNotEmpty() GEMINI_API_KEY: string; - @IsOptional() @ValidateIf((obj) => obj.AI_DRIVER && obj.AI_DRIVER === 'ollama') @IsUrl({ protocols: ['http', 'https'], require_tld: false }) OLLAMA_API_URL: string; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bbb85a41..6e0d5da0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -442,14 +442,14 @@ importers: apps/server: dependencies: '@ai-sdk/google': - specifier: ^3.0.9 - version: 3.0.10(zod@4.3.6) + specifier: ^3.0.29 + version: 3.0.29(zod@4.3.6) '@ai-sdk/openai': - specifier: ^3.0.11 - version: 3.0.12(zod@4.3.6) + specifier: ^3.0.29 + version: 3.0.29(zod@4.3.6) '@ai-sdk/openai-compatible': - specifier: ^2.0.12 - version: 2.0.13(zod@4.3.6) + specifier: ^2.0.30 + version: 2.0.30(zod@4.3.6) '@aws-sdk/client-s3': specifier: 3.982.0 version: 3.982.0 @@ -529,11 +529,11 @@ importers: specifier: ^8.3.0 version: 8.3.0(socket.io-adapter@2.5.4) ai: - specifier: ^6.0.37 - version: 6.0.38(zod@4.3.6) + specifier: ^6.0.86 + version: 6.0.86(zod@4.3.6) ai-sdk-ollama: - specifier: ^3.1.1 - version: 3.1.1(ai@6.0.38(zod@4.3.6))(zod@4.3.6) + specifier: ^3.7.0 + version: 3.7.0(ai@6.0.86(zod@4.3.6))(zod@4.3.6) bcrypt: specifier: ^6.0.0 version: 6.0.0 @@ -541,8 +541,8 @@ importers: specifier: ^5.65.0 version: 5.65.0 cache-manager: - specifier: ^6.4.3 - version: 6.4.3 + specifier: ^7.2.8 + version: 7.2.8 cheerio: specifier: ^1.1.2 version: 1.1.2 @@ -781,38 +781,38 @@ packages: '@adobe/css-tools@4.3.3': resolution: {integrity: sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==} - '@ai-sdk/gateway@3.0.16': - resolution: {integrity: sha512-OOY5CfRJiHvh/8np2vs1RQaCZ5hWv2qOeEmmeiABXK3gLQHUVnCO+1hhoLsZdHM5iElu6M407dAOfyvTsKJqcQ==} + '@ai-sdk/gateway@3.0.46': + resolution: {integrity: sha512-zH1UbNRjG5woOXXFOrVCZraqZuFTtmPvLardMGcgLkzpxKV0U3tAGoyWKSZ862H+eBJfI/Hf2yj/zzGJcCkycg==} engines: {node: '>=18'} peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/google@3.0.10': - resolution: {integrity: sha512-qd2EM9SlD7wWFrq036hwKsuAgkCVxQbwJzctszdmzPs9yUZg795/gHtZRpKItZhbyHSNWhAHmJwEgKjD+HOzuQ==} + '@ai-sdk/google@3.0.29': + resolution: {integrity: sha512-x0hcU10AA+i1ZUQHloGD5qXWsB+Y8qnxlmFUef6Ly4rB53MGVbQExkI9nOKiCO3mu2TGiiNoQMeKWSeQVLfRUA==} engines: {node: '>=18'} peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/openai-compatible@2.0.13': - resolution: {integrity: sha512-DShpuHZ9wiy3QtxJ4/Uq5csLxgNgeA3w58isYhZ34pSod2cBlRmJl3EyQzxZ1HD8e6sQDa9fvc0cwF5/EugBMw==} + '@ai-sdk/openai-compatible@2.0.30': + resolution: {integrity: sha512-iTjumHf1/u4NhjXYFn/aONM2GId3/o7J1Lp5ql8FCbgIMyRwrmanR5xy1S3aaVkfTscuDvLTzWiy1mAbGzK3nQ==} engines: {node: '>=18'} peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/openai@3.0.12': - resolution: {integrity: sha512-zqLWEKuaKnjXhu7xCw1jgz/+yTbd3F7EtgU4T2Q8BAo8OJC5wZv14l+kwM7Jai7M1/2Y2T/zBkrfiIu+7NsvfQ==} + '@ai-sdk/openai@3.0.29': + resolution: {integrity: sha512-ugVTIVpuSLKTjzSPe1F1DWiblJT/lwrrHx0OZEKjpMk/EYP6j6VD/F7SJqM1dsqOJryeBCJWFbUzLNqc99PrMA==} engines: {node: '>=18'} peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/provider-utils@4.0.8': - resolution: {integrity: sha512-ns9gN7MmpI8vTRandzgz+KK/zNMLzhrriiKECMt4euLtQFSBgNfydtagPOX4j4pS1/3KvHF6RivhT3gNQgBZsg==} + '@ai-sdk/provider-utils@4.0.15': + resolution: {integrity: sha512-8XiKWbemmCbvNN0CLR9u3PQiet4gtEVIrX4zzLxnCj06AwsEDJwJVBbKrEI4t6qE8XRSIvU2irka0dcpziKW6w==} engines: {node: '>=18'} peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/provider@3.0.4': - resolution: {integrity: sha512-5KXyBOSEX+l67elrEa+wqo/LSsSTtrPj9Uoh3zMbe/ceQX4ucHI3b9nUEfNkGF3Ry1svv90widAt+aiKdIJasQ==} + '@ai-sdk/provider@3.0.8': + resolution: {integrity: sha512-oGMAgGoQdBXbZqNG0Ze56CHjDZ1IDYOwGYxYjO5KLSlz5HiNQ9udIXsPZ61VWaHGZ5XW/jyjmr6t2xz2jGVwbQ==} engines: {node: '>=18'} '@angular-devkit/core@19.1.7': @@ -1719,6 +1719,9 @@ packages: '@braintree/sanitize-url@7.1.1': resolution: {integrity: sha512-i1L7noDNxtFyL5DmZafWy1wRVhGehQmzZaz1HiN5e7iylJMSZR7ekOV7NsIqa5qBldlLrsKv4HbgFUVlQrz8Mw==} + '@cacheable/utils@2.3.4': + resolution: {integrity: sha512-knwKUJEYgIfwShABS1BX6JyJJTglAFcEU7EXqzTdiGCXur4voqkiJkdgZIQtWNFhynzDWERcTYv/sETMu3uJWA==} + '@casl/ability@6.8.0': resolution: {integrity: sha512-Ipt4mzI4gSgnomFdaPjaLgY2MWuXqAEZLrU6qqWBB7khGiBBuuEp6ytYDnq09bRXqcjaeeHiaCvCGFbBA2SpvA==} @@ -2680,8 +2683,8 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - '@keyv/serialize@1.0.3': - resolution: {integrity: sha512-qnEovoOp5Np2JDGonIDL6Ayihw0RhnRh6vxPuHo4RDn1UOzwEo4AeIfpL6UGIrsceWrCMiVPgwRjbHu4vYFc3g==} + '@keyv/serialize@1.1.1': + resolution: {integrity: sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==} '@langchain/core@1.1.18': resolution: {integrity: sha512-vwzbtHUSZaJONBA1n9uQedZPfyFFZ6XzTggTpR28n8tiIg7e1NC/5dvGW/lGtR1Du1VwV9DvDHA5/bOrLe6cVg==} @@ -5559,14 +5562,14 @@ packages: resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} engines: {node: '>= 14'} - ai-sdk-ollama@3.1.1: - resolution: {integrity: sha512-1rTgOGUsE8pR2ccg0Uz9lNJYzNUJKjtHDfUB5itoc2UnWZnbzQyqyxTUloCIWjwDkEzaWBiEJRLNvwF7a6j4VQ==} + ai-sdk-ollama@3.7.0: + resolution: {integrity: sha512-RtiOsAjfjykqtqp0vpnkkUe/lSlnZy7BEapuxZl6VnHwo8hq+DqRn35RpABoAI+eCBjzLioBcZk/msnhwfc8CA==} engines: {node: '>=22'} peerDependencies: - ai: ^6.0.27 + ai: ^6.0.80 - ai@6.0.38: - resolution: {integrity: sha512-X8AaZFrdsPO1RNCAQLsaWfmE/SL9zgsiIZN3XqEHs3jIZ7ycR5aQZRg5XpNtbLWJxKXzK2b1ZXLx13AFOjksSg==} + ai@6.0.86: + resolution: {integrity: sha512-U2W2LBCHA/pr0Ui7vmmsjBiLEzBbZF3yVHNy7Rbzn7IX+SvoQPFM5rN74hhfVzZoE8zBuGD4nLLk+j0elGacvQ==} engines: {node: '>=18'} peerDependencies: zod: ^3.25.76 || ^4.1.8 @@ -5873,9 +5876,6 @@ packages: buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - bullmq@5.65.0: resolution: {integrity: sha512-fyOcyf2ad4zrNmE18vdF/ie7DrW0TwhLt5e0DkqDxbRpDNiUdYqgp2QZJW2ntnUN08T2mDMC4deUUhF2UOAmeQ==} @@ -5883,8 +5883,8 @@ packages: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} - cache-manager@6.4.3: - resolution: {integrity: sha512-VV5eq/QQ5rIVix7/aICO4JyvSeEv9eIQuKL5iFwgM2BrcYoE0A/D1mNsAHJAsB0WEbNdBlKkn6Tjz6fKzh/cKQ==} + cache-manager@7.2.8: + resolution: {integrity: sha512-0HDaDLBBY/maa/LmUVAr70XUOwsiQD+jyzCBjmUErYZUKdMS9dT59PqW59PpVqfGM7ve6H0J6307JTpkCYefHQ==} call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} @@ -7246,6 +7246,10 @@ packages: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} + hashery@1.4.0: + resolution: {integrity: sha512-Wn2i1In6XFxl8Az55kkgnFRiAlIAushzh26PTjL2AKtQcEfXrcLa7Hn5QOWGZEf3LU057P9TwwZjFyxfS1VuvQ==} + engines: {node: '>=20'} + hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} @@ -7263,6 +7267,9 @@ packages: hoist-non-react-statics@3.3.2: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + hookified@1.15.1: + resolution: {integrity: sha512-MvG/clsADq1GPM2KGo2nyfaWVyn9naPiXrqIe4jYjXNZQt238kWyOGrsyc/DmRAQ+Re6yeo6yX/yoNCG5KAEVg==} + html-encoding-sniffer@4.0.0: resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} engines: {node: '>=18'} @@ -7858,6 +7865,10 @@ packages: jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + jsonrepair@3.13.2: + resolution: {integrity: sha512-Leuly0nbM4R+S5SVJk3VHfw1oxnlEK9KygdZvfUtEtTawNDyzB4qa1xWTmFt1aeoA7sXZkVTRuIixJ8bAvqVUg==} + hasBin: true + jsonwebtoken@9.0.3: resolution: {integrity: sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==} engines: {node: '>=12', npm: '>=6'} @@ -7886,8 +7897,8 @@ packages: keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - keyv@5.3.3: - resolution: {integrity: sha512-Rwu4+nXI9fqcxiEHtbkvoes2X+QfkTRo1TMkPfwzipGsJlJO/z69vqB4FNl9xJ3xCpAcbkvmEabZfPzrwN3+gQ==} + keyv@5.6.0: + resolution: {integrity: sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==} khroma@2.1.0: resolution: {integrity: sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==} @@ -10596,39 +10607,39 @@ snapshots: '@adobe/css-tools@4.3.3': {} - '@ai-sdk/gateway@3.0.16(zod@4.3.6)': + '@ai-sdk/gateway@3.0.46(zod@4.3.6)': dependencies: - '@ai-sdk/provider': 3.0.4 - '@ai-sdk/provider-utils': 4.0.8(zod@4.3.6) + '@ai-sdk/provider': 3.0.8 + '@ai-sdk/provider-utils': 4.0.15(zod@4.3.6) '@vercel/oidc': 3.1.0 zod: 4.3.6 - '@ai-sdk/google@3.0.10(zod@4.3.6)': + '@ai-sdk/google@3.0.29(zod@4.3.6)': dependencies: - '@ai-sdk/provider': 3.0.4 - '@ai-sdk/provider-utils': 4.0.8(zod@4.3.6) + '@ai-sdk/provider': 3.0.8 + '@ai-sdk/provider-utils': 4.0.15(zod@4.3.6) zod: 4.3.6 - '@ai-sdk/openai-compatible@2.0.13(zod@4.3.6)': + '@ai-sdk/openai-compatible@2.0.30(zod@4.3.6)': dependencies: - '@ai-sdk/provider': 3.0.4 - '@ai-sdk/provider-utils': 4.0.8(zod@4.3.6) + '@ai-sdk/provider': 3.0.8 + '@ai-sdk/provider-utils': 4.0.15(zod@4.3.6) zod: 4.3.6 - '@ai-sdk/openai@3.0.12(zod@4.3.6)': + '@ai-sdk/openai@3.0.29(zod@4.3.6)': dependencies: - '@ai-sdk/provider': 3.0.4 - '@ai-sdk/provider-utils': 4.0.8(zod@4.3.6) + '@ai-sdk/provider': 3.0.8 + '@ai-sdk/provider-utils': 4.0.15(zod@4.3.6) zod: 4.3.6 - '@ai-sdk/provider-utils@4.0.8(zod@4.3.6)': + '@ai-sdk/provider-utils@4.0.15(zod@4.3.6)': dependencies: - '@ai-sdk/provider': 3.0.4 + '@ai-sdk/provider': 3.0.8 '@standard-schema/spec': 1.1.0 eventsource-parser: 3.0.6 zod: 4.3.6 - '@ai-sdk/provider@3.0.4': + '@ai-sdk/provider@3.0.8': dependencies: json-schema: 0.4.0 @@ -12031,6 +12042,11 @@ snapshots: '@braintree/sanitize-url@7.1.1': {} + '@cacheable/utils@2.3.4': + dependencies: + hashery: 1.4.0 + keyv: 5.6.0 + '@casl/ability@6.8.0': dependencies: '@ucast/mongo2js': 1.3.4 @@ -13071,9 +13087,7 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 - '@keyv/serialize@1.0.3': - dependencies: - buffer: 6.0.3 + '@keyv/serialize@1.1.1': {} '@langchain/core@1.1.18(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.2.0(ws@8.19.0)(zod@4.3.6))': dependencies: @@ -16177,20 +16191,21 @@ snapshots: transitivePeerDependencies: - supports-color - ai-sdk-ollama@3.1.1(ai@6.0.38(zod@4.3.6))(zod@4.3.6): + ai-sdk-ollama@3.7.0(ai@6.0.86(zod@4.3.6))(zod@4.3.6): dependencies: - '@ai-sdk/provider': 3.0.4 - '@ai-sdk/provider-utils': 4.0.8(zod@4.3.6) - ai: 6.0.38(zod@4.3.6) + '@ai-sdk/provider': 3.0.8 + '@ai-sdk/provider-utils': 4.0.15(zod@4.3.6) + ai: 6.0.86(zod@4.3.6) + jsonrepair: 3.13.2 ollama: 0.6.3 transitivePeerDependencies: - zod - ai@6.0.38(zod@4.3.6): + ai@6.0.86(zod@4.3.6): dependencies: - '@ai-sdk/gateway': 3.0.16(zod@4.3.6) - '@ai-sdk/provider': 3.0.4 - '@ai-sdk/provider-utils': 4.0.8(zod@4.3.6) + '@ai-sdk/gateway': 3.0.46(zod@4.3.6) + '@ai-sdk/provider': 3.0.8 + '@ai-sdk/provider-utils': 4.0.15(zod@4.3.6) '@opentelemetry/api': 1.9.0 zod: 4.3.6 @@ -16562,11 +16577,6 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 - buffer@6.0.3: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - bullmq@5.65.0: dependencies: cron-parser: 4.9.0 @@ -16581,9 +16591,10 @@ snapshots: bytes@3.1.2: {} - cache-manager@6.4.3: + cache-manager@7.2.8: dependencies: - keyv: 5.3.3 + '@cacheable/utils': 2.3.4 + keyv: 5.6.0 call-bind-apply-helpers@1.0.2: dependencies: @@ -18088,6 +18099,10 @@ snapshots: dependencies: has-symbols: 1.1.0 + hashery@1.4.0: + dependencies: + hookified: 1.15.1 + hasown@2.0.2: dependencies: function-bind: 1.1.2 @@ -18102,6 +18117,8 @@ snapshots: dependencies: react-is: 16.13.1 + hookified@1.15.1: {} + html-encoding-sniffer@4.0.0: dependencies: whatwg-encoding: 3.1.1 @@ -18912,6 +18929,8 @@ snapshots: optionalDependencies: graceful-fs: 4.2.11 + jsonrepair@3.13.2: {} + jsonwebtoken@9.0.3: dependencies: jws: 4.0.1 @@ -18960,9 +18979,9 @@ snapshots: dependencies: json-buffer: 3.0.1 - keyv@5.3.3: + keyv@5.6.0: dependencies: - '@keyv/serialize': 1.0.3 + '@keyv/serialize': 1.1.1 khroma@2.1.0: {}