diff --git a/apps/web/app/api/db/webhook/route.ts b/apps/web/app/api/db/webhook/route.ts index b0769be1d..b38294823 100644 --- a/apps/web/app/api/db/webhook/route.ts +++ b/apps/web/app/api/db/webhook/route.ts @@ -1,22 +1,18 @@ -import { DatabaseWebhookHandlerService } from '@kit/database-webhooks'; - -const service = new DatabaseWebhookHandlerService(); - -const response = (status: number) => new Response(null, { status }); +import { getDatabaseWebhookHandlerService } from '@kit/database-webhooks'; /** * @name POST * @description POST handler for the webhook route that handles the webhook event - * @param request - * @constructor */ export async function POST(request: Request) { + const service = getDatabaseWebhookHandlerService(); + try { // handle the webhook event await service.handleWebhook(request); - return response(200); + return new Response(null, { status: 200 }); } catch { - return response(500); + return new Response(null, { status: 500 }); } } diff --git a/packages/database-webhooks/src/server/services/database-webhook-handler.service.ts b/packages/database-webhooks/src/server/services/database-webhook-handler.service.ts index 609eb70e1..e585baf83 100644 --- a/packages/database-webhooks/src/server/services/database-webhook-handler.service.ts +++ b/packages/database-webhooks/src/server/services/database-webhook-handler.service.ts @@ -7,23 +7,31 @@ import { RecordChange, Tables } from '../record-change.type'; import { DatabaseWebhookRouterService } from './database-webhook-router.service'; import { getDatabaseWebhookVerifier } from './verifier'; -export class DatabaseWebhookHandlerService { +export function getDatabaseWebhookHandlerService() { + return new DatabaseWebhookHandlerService(); +} + +class DatabaseWebhookHandlerService { private readonly namespace = 'database-webhook-handler'; + /** + * @name handleWebhook + * @description Handle the webhook event + * @param request + */ async handleWebhook(request: Request) { const logger = await getLogger(); const json = await request.clone().json(); const { table, type } = json as RecordChange; - logger.info( - { - name: this.namespace, - table, - type, - }, - 'Received webhook from DB. Processing...', - ); + const ctx = { + name: this.namespace, + table, + type, + }; + + logger.info(ctx, 'Received webhook from DB. Processing...'); // check if the signature is valid const verifier = await getDatabaseWebhookVerifier(); @@ -45,20 +53,11 @@ export class DatabaseWebhookHandlerService { // handle the webhook event based on the table await service.handleWebhook(json); - logger.info( - { - name: this.namespace, - table, - type, - }, - 'Webhook processed successfully', - ); + logger.info(ctx, 'Webhook processed successfully'); } catch (error) { logger.error( { - name: this.namespace, - table, - type, + ...ctx, error, }, 'Failed to process webhook', diff --git a/packages/email-templates/package.json b/packages/email-templates/package.json index bf4fe50f2..ce8c33385 100644 --- a/packages/email-templates/package.json +++ b/packages/email-templates/package.json @@ -13,7 +13,7 @@ ".": "./src/index.ts" }, "dependencies": { - "@react-email/components": "0.0.16" + "@react-email/components": "0.0.17" }, "devDependencies": { "@kit/eslint-config": "workspace:*", diff --git a/packages/i18n/package.json b/packages/i18n/package.json index 3b133ede9..892d25207 100644 --- a/packages/i18n/package.json +++ b/packages/i18n/package.json @@ -25,7 +25,7 @@ "react-i18next": "^14.1.1" }, "dependencies": { - "i18next": "^23.11.2", + "i18next": "^23.11.3", "i18next-browser-languagedetector": "7.2.1", "i18next-resources-to-backend": "^1.2.1" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e8944ef94..f26886226 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -167,7 +167,7 @@ importers: version: 7.51.3(react@18.3.1) react-i18next: specifier: ^14.1.1 - version: 14.1.1(i18next@23.11.2)(react-dom@18.3.1)(react@18.3.1) + version: 14.1.1(i18next@23.11.3)(react-dom@18.3.1)(react@18.3.1) recharts: specifier: ^2.12.6 version: 2.12.6(react-dom@18.3.1)(react@18.3.1) @@ -312,7 +312,7 @@ importers: version: 7.51.3(react@18.3.1) react-i18next: specifier: ^14.1.1 - version: 14.1.1(i18next@23.11.2)(react-dom@18.3.1)(react@18.3.1) + version: 14.1.1(i18next@23.11.3)(react-dom@18.3.1)(react@18.3.1) zod: specifier: ^3.23.4 version: 3.23.4 @@ -524,8 +524,8 @@ importers: packages/email-templates: dependencies: '@react-email/components': - specifier: 0.0.16 - version: 0.0.16(react@18.2.0) + specifier: 0.0.17 + version: 0.0.17(react@18.3.1) devDependencies: '@kit/eslint-config': specifier: workspace:* @@ -620,7 +620,7 @@ importers: version: 7.51.3(react@18.3.1) react-i18next: specifier: ^14.1.1 - version: 14.1.1(i18next@23.11.2)(react-dom@18.3.1)(react@18.3.1) + version: 14.1.1(i18next@23.11.3)(react-dom@18.3.1)(react@18.3.1) sonner: specifier: ^1.4.41 version: 1.4.41(react-dom@18.3.1)(react@18.3.1) @@ -743,7 +743,7 @@ importers: version: 7.51.3(react@18.3.1) react-i18next: specifier: ^14.1.1 - version: 14.1.1(i18next@23.11.2)(react-dom@18.3.1)(react@18.3.1) + version: 14.1.1(i18next@23.11.3)(react-dom@18.3.1)(react@18.3.1) sonner: specifier: ^1.4.41 version: 1.4.41(react-dom@18.3.1)(react@18.3.1) @@ -772,7 +772,7 @@ importers: specifier: workspace:* version: link:../../ui '@supabase/supabase-js': - specifier: 2.42.7 + specifier: ^2.42.7 version: 2.42.7 '@types/react': specifier: ^18.3.1 @@ -784,11 +784,11 @@ importers: specifier: 18.3.1 version: 18.3.1 react-dom: - specifier: ^18.3.1 + specifier: 18.3.1 version: 18.3.1(react@18.3.1) react-i18next: specifier: ^14.1.1 - version: 14.1.1(i18next@23.11.2)(react-dom@18.3.1)(react@18.3.1) + version: 14.1.1(i18next@23.11.3)(react-dom@18.3.1)(react@18.3.1) packages/features/team-accounts: dependencies: @@ -876,7 +876,7 @@ importers: version: 7.51.3(react@18.3.1) react-i18next: specifier: ^14.1.1 - version: 14.1.1(i18next@23.11.2)(react-dom@18.3.1)(react@18.3.1) + version: 14.1.1(i18next@23.11.3)(react-dom@18.3.1)(react@18.3.1) sonner: specifier: ^1.4.41 version: 1.4.41(react-dom@18.3.1)(react@18.3.1) @@ -887,8 +887,8 @@ importers: packages/i18n: dependencies: i18next: - specifier: ^23.11.2 - version: 23.11.2 + specifier: ^23.11.3 + version: 23.11.3 i18next-browser-languagedetector: specifier: 7.2.1 version: 7.2.1 @@ -916,7 +916,7 @@ importers: version: 5.32.0(react@18.3.1) react-i18next: specifier: ^14.1.1 - version: 14.1.1(i18next@23.11.2)(react-dom@18.3.1)(react@18.3.1) + version: 14.1.1(i18next@23.11.3)(react-dom@18.3.1)(react@18.3.1) packages/mailers: dependencies: @@ -1290,7 +1290,7 @@ importers: version: 7.51.3(react@18.3.1) react-i18next: specifier: ^14.1.1 - version: 14.1.1(i18next@23.11.2)(react-dom@18.3.1)(react@18.3.1) + version: 14.1.1(i18next@23.11.3)(react-dom@18.3.1)(react@18.3.1) sonner: specifier: ^1.4.41 version: 1.4.41(react-dom@18.3.1)(react@18.3.1) @@ -1322,11 +1322,11 @@ importers: specifier: ^8.56.10 version: 8.56.10 '@typescript-eslint/eslint-plugin': - specifier: ^7.7.1 - version: 7.7.1(@typescript-eslint/parser@7.7.1)(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(@typescript-eslint/parser@7.8.0)(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': - specifier: ^7.7.1 - version: 7.7.1(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) eslint-config-prettier: specifier: ^9.1.0 version: 9.1.0(eslint@8.57.0) @@ -1335,7 +1335,7 @@ importers: version: 1.13.3(eslint@8.57.0) eslint-plugin-import: specifier: ^2.29.1 - version: 2.29.1(@typescript-eslint/parser@7.7.1)(eslint@8.57.0) + version: 2.29.1(@typescript-eslint/parser@7.8.0)(eslint@8.57.0) eslint-plugin-react: specifier: ^7.34.1 version: 7.34.1(eslint@8.57.0) @@ -3363,19 +3363,6 @@ packages: react: 18.3.1 dev: false - /@radix-ui/react-compose-refs@1.0.1(react@18.2.0): - resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.24.4 - react: 18.2.0 - dev: false - /@radix-ui/react-context@1.0.1(@types/react@18.3.1)(react@18.3.1): resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==} peerDependencies: @@ -3936,20 +3923,6 @@ packages: react: 18.3.1 dev: false - /@radix-ui/react-slot@1.0.2(react@18.2.0): - resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-compose-refs': 1.0.1(react@18.2.0) - react: 18.2.0 - dev: false - /@radix-ui/react-tabs@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-egZfYY/+wRNCflXNHx+dePvnz9FbmssDTJBtgRfDY7e8SE5oIo3Py2eCB1ckAbh1Q7cQ/6yJZThJ++sgbxibog==} peerDependencies: @@ -4868,219 +4841,219 @@ packages: react: 18.3.1 dev: false - /@react-email/body@0.0.7(react@18.2.0): - resolution: {integrity: sha512-vjJ5P1MUNWV0KNivaEWA6MGj/I3c764qQJMsKjCHlW6mkFJ4SXbm2OlQFtKAb++Bj8LDqBlnE6oW77bWcMc0NA==} + /@react-email/body@0.0.8(react@18.3.1): + resolution: {integrity: sha512-gqdkNYlIaIw0OdpWu8KjIcQSIFvx7t2bZpXVxMMvBS859Ia1+1X3b5RNbjI3S1ZqLddUf7owOHkO4MiXGE+nxg==} peerDependencies: - react: 18.2.0 + react: ^18.2.0 dependencies: - react: 18.2.0 + react: 18.3.1 dev: false - /@react-email/button@0.0.14(react@18.2.0): - resolution: {integrity: sha512-SMk40moGcAvkHIALX4XercQlK0PNeeEIam6OXHw68ea9WtzzqVwiK4pzLY0iiMI9B4xWHcaS2lCPf3cKbQBf1Q==} + /@react-email/button@0.0.15(react@18.3.1): + resolution: {integrity: sha512-9Zi6SO3E8PoHYDfcJTecImiHLyitYWmIRs0HE3Ogra60ZzlWP2EXu+AZqwQnhXuq+9pbgwBWNWxB5YPetNPTNA==} engines: {node: '>=18.0.0'} peerDependencies: - react: 18.2.0 + react: ^18.2.0 dependencies: - react: 18.2.0 + react: 18.3.1 dev: false - /@react-email/code-block@0.0.3(react@18.2.0): - resolution: {integrity: sha512-nxhl7WjjM2cOYtl0boBZfSObTrUCz2LbarcMyHkTVAsA9rbjbtWAQF7jmlefXJusk3Uol5l2c8hTh2lHLlHTRQ==} + /@react-email/code-block@0.0.4(react@18.3.1): + resolution: {integrity: sha512-xjVLi/9dFNJ70N7hYme+21eQWa3b9/kgp4V+FKQJkQCuIMobxPRCIGM5jKD/0Vo2OqrE5chYv/dkg/aP8a8sPg==} engines: {node: '>=18.0.0'} peerDependencies: - react: 18.2.0 + react: ^18.2.0 dependencies: prismjs: 1.29.0 - react: 18.2.0 + react: 18.3.1 dev: false - /@react-email/code-inline@0.0.1(react@18.2.0): - resolution: {integrity: sha512-SeZKTB9Q4+TUafzeUm/8tGK3dFgywUHb1od/BrAiJCo/im65aT+oJfggJLjK2jCdSsus8odcK2kReeM3/FCNTQ==} + /@react-email/code-inline@0.0.2(react@18.3.1): + resolution: {integrity: sha512-0cmgbbibFeOJl0q04K9jJlPDuJ+SEiX/OG6m3Ko7UOkG3TqjRD8Dtvkij6jNDVfUh/zESpqJCP2CxrCLLMUjdA==} engines: {node: '>=18.0.0'} peerDependencies: - react: 18.2.0 + react: ^18.2.0 dependencies: - react: 18.2.0 + react: 18.3.1 dev: false - /@react-email/column@0.0.9(react@18.2.0): - resolution: {integrity: sha512-1ekqNBgmbS6m97/sUFOnVvQtLYljUWamw8Y44VId95v6SjiJ4ca+hMcdOteHWBH67xkRofEOWTvqDRea5SBV8w==} + /@react-email/column@0.0.10(react@18.3.1): + resolution: {integrity: sha512-MnP8Mnwipr0X3XtdD6jMLckb0sI5/IlS6Kl/2F6/rsSWBJy5Gg6nizlekTdkwDmy0kNSe3/1nGU0Zqo98pl63Q==} engines: {node: '>=18.0.0'} peerDependencies: - react: 18.2.0 + react: ^18.2.0 dependencies: - react: 18.2.0 + react: 18.3.1 dev: false - /@react-email/components@0.0.16(react@18.2.0): - resolution: {integrity: sha512-1WATpMSH03cRvhfNjGl/Up3seZJOzN9KLzlk3Q9g/cqNhZEJ7HYxoZM4AQKAI0V3ttXzzxKv8Oj+AZQLHDiICA==} + /@react-email/components@0.0.17(react@18.3.1): + resolution: {integrity: sha512-x5gGQaK0QchbwHvUrCBVnE8GCWdO5osTVuTSA54Fwzels6ZDeNTHEYRx9gI3Nwcf/dkoVYkVH4rzWST0SF0MLA==} engines: {node: '>=18.0.0'} peerDependencies: - react: 18.2.0 + react: ^18.2.0 dependencies: - '@react-email/body': 0.0.7(react@18.2.0) - '@react-email/button': 0.0.14(react@18.2.0) - '@react-email/code-block': 0.0.3(react@18.2.0) - '@react-email/code-inline': 0.0.1(react@18.2.0) - '@react-email/column': 0.0.9(react@18.2.0) - '@react-email/container': 0.0.11(react@18.2.0) - '@react-email/font': 0.0.5(react@18.2.0) - '@react-email/head': 0.0.7(react@18.2.0) - '@react-email/heading': 0.0.11(react@18.2.0) - '@react-email/hr': 0.0.7(react@18.2.0) - '@react-email/html': 0.0.7(react@18.2.0) - '@react-email/img': 0.0.7(react@18.2.0) - '@react-email/link': 0.0.7(react@18.2.0) - '@react-email/markdown': 0.0.9(react@18.2.0) - '@react-email/preview': 0.0.8(react@18.2.0) - '@react-email/render': 0.0.12 - '@react-email/row': 0.0.7(react@18.2.0) - '@react-email/section': 0.0.11(react@18.2.0) - '@react-email/tailwind': 0.0.15(react@18.2.0) - '@react-email/text': 0.0.7(react@18.2.0) - react: 18.2.0 + '@react-email/body': 0.0.8(react@18.3.1) + '@react-email/button': 0.0.15(react@18.3.1) + '@react-email/code-block': 0.0.4(react@18.3.1) + '@react-email/code-inline': 0.0.2(react@18.3.1) + '@react-email/column': 0.0.10(react@18.3.1) + '@react-email/container': 0.0.12(react@18.3.1) + '@react-email/font': 0.0.6(react@18.3.1) + '@react-email/head': 0.0.8(react@18.3.1) + '@react-email/heading': 0.0.12(react@18.3.1) + '@react-email/hr': 0.0.8(react@18.3.1) + '@react-email/html': 0.0.8(react@18.3.1) + '@react-email/img': 0.0.8(react@18.3.1) + '@react-email/link': 0.0.8(react@18.3.1) + '@react-email/markdown': 0.0.10(react@18.3.1) + '@react-email/preview': 0.0.9(react@18.3.1) + '@react-email/render': 0.0.13 + '@react-email/row': 0.0.8(react@18.3.1) + '@react-email/section': 0.0.12(react@18.3.1) + '@react-email/tailwind': 0.0.16(react@18.3.1) + '@react-email/text': 0.0.8(react@18.3.1) + react: 18.3.1 transitivePeerDependencies: - '@types/react' dev: false - /@react-email/container@0.0.11(react@18.2.0): - resolution: {integrity: sha512-jzl/EHs0ClXIRFamfH+NR/cqv4GsJJscqRhdYtnWYuRAsWpKBM1muycrrPqIVhWvWi6sFHInWTt07jX+bDc3SQ==} + /@react-email/container@0.0.12(react@18.3.1): + resolution: {integrity: sha512-HFu8Pu5COPFfeZxSL+wKv/TV5uO/sp4zQ0XkRCdnGkj/xoq0lqOHVDL4yC2Pu6fxXF/9C3PHDA++5uEYV5WVJw==} engines: {node: '>=18.0.0'} peerDependencies: - react: 18.2.0 + react: ^18.2.0 dependencies: - react: 18.2.0 + react: 18.3.1 dev: false - /@react-email/font@0.0.5(react@18.2.0): - resolution: {integrity: sha512-if/qKYmH3rJ2egQJoKbV8SfKCPavu+ikUq/naT/UkCr8Q0lkk309tRA0x7fXG/WeIrmcipjMzFRGTm2TxTecDw==} + /@react-email/font@0.0.6(react@18.3.1): + resolution: {integrity: sha512-sZZFvEZ4U3vNCAZ8wXqIO3DuGJR2qE/8m2fEH+tdqwa532zGO3zW+UlCTg0b9455wkJSzEBeaWik0IkNvjXzxw==} peerDependencies: - react: 18.2.0 + react: ^18.2.0 dependencies: - react: 18.2.0 + react: 18.3.1 dev: false - /@react-email/head@0.0.7(react@18.2.0): - resolution: {integrity: sha512-IcXL4jc0H1qzAXJCD9ajcRFBQdbUHkjKJyiUeogpaYSVZSq6cVDWQuGaI23TA9k+pI2TFeQimogUFb3Kgeeudw==} + /@react-email/head@0.0.8(react@18.3.1): + resolution: {integrity: sha512-8/NI0gtQmLIilAe6rebK1TWw3IXHxtrR02rInkQq8yQ7zKbYbzx7Q/FhmsJgAk+uYh2Er/KhgYJ0sHZyDhfMTQ==} engines: {node: '>=18.0.0'} peerDependencies: - react: 18.2.0 + react: ^18.2.0 dependencies: - react: 18.2.0 + react: 18.3.1 dev: false - /@react-email/heading@0.0.11(react@18.2.0): - resolution: {integrity: sha512-EF5ZtRCxhHPw3m+8iibKKg0RAvAeHj1AP68sjU7s6+J+kvRgllr/E972Wi5Y8UvcIGossCvpX1WrSMDzeB4puA==} + /@react-email/heading@0.0.12(react@18.3.1): + resolution: {integrity: sha512-eB7mpnAvDmwvQLoPuwEiPRH4fPXWe6ltz6Ptbry2BlI88F0a2k11Ghb4+sZHBqg7vVw/MKbqEgtLqr3QJ/KfCQ==} engines: {node: '>=18.0.0'} peerDependencies: - react: 18.2.0 + react: ^18.2.0 dependencies: - '@radix-ui/react-slot': 1.0.2(react@18.2.0) - react: 18.2.0 + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.1)(react@18.3.1) + react: 18.3.1 transitivePeerDependencies: - '@types/react' dev: false - /@react-email/hr@0.0.7(react@18.2.0): - resolution: {integrity: sha512-8suK0M/deXHt0DBSeKhSC4bnCBCBm37xk6KJh9M0/FIKlvdltQBem52YUiuqVl1XLB87Y6v6tvspn3SZ9fuxEA==} + /@react-email/hr@0.0.8(react@18.3.1): + resolution: {integrity: sha512-JLVvpCg2wYKEB+n/PGCggWG9fRU5e4lxsGdpK5SDLsCL0ic3OLKSpHMfeE+ZSuw0GixAVVQN7F64PVJHQkd4MQ==} engines: {node: '>=18.0.0'} peerDependencies: - react: 18.2.0 + react: ^18.2.0 dependencies: - react: 18.2.0 + react: 18.3.1 dev: false - /@react-email/html@0.0.7(react@18.2.0): - resolution: {integrity: sha512-oy7OoRtoOKApVI/5Lz1OZptMKmMYJu9Xn6+lOmdBQchAuSdQtWJqxhrSj/iI/mm8HZWo6MZEQ6SFpfOuf8/P6Q==} + /@react-email/html@0.0.8(react@18.3.1): + resolution: {integrity: sha512-arII3wBNLpeJtwyIJXPaILm5BPKhA+nvdC1F9QkuKcOBJv2zXctn8XzPqyGqDfdplV692ulNJP7XY55YqbKp6w==} engines: {node: '>=18.0.0'} peerDependencies: - react: 18.2.0 + react: ^18.2.0 dependencies: - react: 18.2.0 + react: 18.3.1 dev: false - /@react-email/img@0.0.7(react@18.2.0): - resolution: {integrity: sha512-up9tM2/dJ24u/CFjcvioKbyGuPw1yeJg605QA7VkrygEhd0CoQEjjgumfugpJ+VJgIt4ZjT9xMVCK5QWTIWoaA==} + /@react-email/img@0.0.8(react@18.3.1): + resolution: {integrity: sha512-jx/rPuKo31tV18fu7P5rRqelaH5wkhg83Dq7uLwJpfqhbi4KFBGeBfD0Y3PiLPPoh+WvYf+Adv9W2ghNW8nOMQ==} engines: {node: '>=18.0.0'} peerDependencies: - react: 18.2.0 + react: ^18.2.0 dependencies: - react: 18.2.0 + react: 18.3.1 dev: false - /@react-email/link@0.0.7(react@18.2.0): - resolution: {integrity: sha512-hXPChT3ZMyKnUSA60BLEMD2maEgyB2A37yg5bASbLMrXmsExHi6/IS1h2XiUPLDK4KqH5KFaFxi2cdNo1JOKwA==} + /@react-email/link@0.0.8(react@18.3.1): + resolution: {integrity: sha512-nVikuTi8WJHa6Baad4VuRUbUCa/7EtZ1Qy73TRejaCHn+vhetc39XGqHzKLNh+Z/JFL8Hv9g+4AgG16o2R0ogQ==} engines: {node: '>=18.0.0'} peerDependencies: - react: 18.2.0 + react: ^18.2.0 dependencies: - react: 18.2.0 + react: 18.3.1 dev: false - /@react-email/markdown@0.0.9(react@18.2.0): - resolution: {integrity: sha512-t//19Zz+W5svKqrSrqoOLpf6dq70jbwYxX8Z+NEMi4LqylklccOaYAyKrkYyulfZwhW7KDH9d2wjVk5jfUABxQ==} + /@react-email/markdown@0.0.10(react@18.3.1): + resolution: {integrity: sha512-MH0xO+NJ4IuJcx9nyxbgGKAMXyudFjCZ0A2GQvuWajemW9qy2hgnJ3mW3/z5lwcenG+JPn7JyO/iZpizQ7u1tA==} engines: {node: '>=18.0.0'} peerDependencies: - react: 18.2.0 + react: ^18.2.0 dependencies: - md-to-react-email: 5.0.2(react@18.2.0) - react: 18.2.0 + md-to-react-email: 5.0.2(react@18.3.1) + react: 18.3.1 dev: false - /@react-email/preview@0.0.8(react@18.2.0): - resolution: {integrity: sha512-Jm0KUYBZQd2w0s2QRMQy0zfHdo3Ns+9bYSE1OybjknlvhANirjuZw9E5KfWgdzO7PyrRtB1OBOQD8//Obc4uIQ==} + /@react-email/preview@0.0.9(react@18.3.1): + resolution: {integrity: sha512-2fyAA/zzZYfYmxfyn3p2YOIU30klyA6Dq4ytyWq4nfzQWWglt5hNDE0cMhObvRtfjM9ghMSVtoELAb0MWiF/kw==} engines: {node: '>=18.0.0'} peerDependencies: - react: 18.2.0 + react: ^18.2.0 dependencies: - react: 18.2.0 + react: 18.3.1 dev: false - /@react-email/render@0.0.12: - resolution: {integrity: sha512-S8WRv/PqECEi6x0QJBj0asnAb5GFtJaHlnByxLETLkgJjc76cxMYDH4r9wdbuJ4sjkcbpwP3LPnVzwS+aIjT7g==} + /@react-email/render@0.0.13: + resolution: {integrity: sha512-lmBizrV+rQeSa3GjiL8/kPU0gENqO/wv+4xrlWANabp9UY3lTLXzy7HMRSE8YFBES9AbxP5VX1iRKuEnsoBDew==} engines: {node: '>=18.0.0'} dependencies: html-to-text: 9.0.5 js-beautify: 1.15.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) dev: false - /@react-email/row@0.0.7(react@18.2.0): - resolution: {integrity: sha512-h7pwrLVGk5CIx7Ai/oPxBgCCAGY7BEpCUQ7FCzi4+eThcs5IdjSwDPefLEkwaFS8KZc56UNwTAH92kNq5B7blg==} + /@react-email/row@0.0.8(react@18.3.1): + resolution: {integrity: sha512-JsB6pxs/ZyjYpEML3nbwJRGAerjcN/Pa/QG48XUwnT/MioDWrUuyQuefw+CwCrSUZ2P1IDrv2tUD3/E3xzcoKw==} engines: {node: '>=18.0.0'} peerDependencies: - react: 18.2.0 + react: ^18.2.0 dependencies: - react: 18.2.0 + react: 18.3.1 dev: false - /@react-email/section@0.0.11(react@18.2.0): - resolution: {integrity: sha512-3bZ/DuvX1julATI7oqYza6pOtWZgLJDBaa62LFFEvYjisyN+k6lrP2KOucPsDKu2DOkUzlQgK0FOm6VQJX+C0w==} + /@react-email/section@0.0.12(react@18.3.1): + resolution: {integrity: sha512-UCD/N/BeOTN4h3VZBUaFdiSem6HnpuxD1Q51TdBFnqeNqS5hBomp8LWJJ9s4gzwHWk1XPdNfLA3I/fJwulJshg==} engines: {node: '>=18.0.0'} peerDependencies: - react: 18.2.0 + react: ^18.2.0 dependencies: - react: 18.2.0 + react: 18.3.1 dev: false - /@react-email/tailwind@0.0.15(react@18.2.0): - resolution: {integrity: sha512-TE3NQ7VKhhvv3Zv0Z1NtoV6AF7aOWiG4juVezMZw1hZCG0mkN6iXC63u23vPQi12y6xCp20ZUHfg67kQeDSP/g==} + /@react-email/tailwind@0.0.16(react@18.3.1): + resolution: {integrity: sha512-uMifPxCEHaHLhpS1kVCMGyTeEL+aMYzHT4bgj8CkgCiBoF9wNNfIVMUlHGzHUTv4ZTEPaMfZgC/Hi8RqzL/Ogw==} engines: {node: '>=18.0.0'} peerDependencies: - react: 18.2.0 + react: ^18.2.0 dependencies: - react: 18.2.0 + react: 18.3.1 dev: false - /@react-email/text@0.0.7(react@18.2.0): - resolution: {integrity: sha512-eHCx0mdllGcgK9X7wiLKjNZCBRfxRVNjD3NNYRmOc3Icbl8M9JHriJIfxBuGCmGg2UAORK5P3KmaLQ8b99/pbA==} + /@react-email/text@0.0.8(react@18.3.1): + resolution: {integrity: sha512-uvN2TNWMrfC9wv/LLmMLbbEN1GrMWZb9dBK14eYxHHAEHCeyvGb5ePZZ2MPyzO7Y5yTC+vFEnCEr76V+hWMxCQ==} engines: {node: '>=18.0.0'} peerDependencies: - react: 18.2.0 + react: ^18.2.0 dependencies: - react: 18.2.0 + react: 18.3.1 dev: false /@react-stately/calendar@3.4.4(react@18.3.1): @@ -6397,8 +6370,8 @@ packages: dependencies: '@types/node': 20.12.7 - /@typescript-eslint/eslint-plugin@7.7.1(@typescript-eslint/parser@7.7.1)(eslint@8.57.0)(typescript@5.4.5): - resolution: {integrity: sha512-KwfdWXJBOviaBVhxO3p5TJiLpNuh2iyXyjmWN0f1nU87pwyvfS0EmjC6ukQVYVFJd/K1+0NWGPDXiyEyQorn0Q==} + /@typescript-eslint/eslint-plugin@7.8.0(@typescript-eslint/parser@7.8.0)(eslint@8.57.0)(typescript@5.4.5): + resolution: {integrity: sha512-gFTT+ezJmkwutUPmB0skOj3GZJtlEGnlssems4AjkVweUPGj7jRwwqg0Hhg7++kPGJqKtTYx+R05Ftww372aIg==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 @@ -6409,11 +6382,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.7.1(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/scope-manager': 7.7.1 - '@typescript-eslint/type-utils': 7.7.1(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/utils': 7.7.1(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.7.1 + '@typescript-eslint/parser': 7.8.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/scope-manager': 7.8.0 + '@typescript-eslint/type-utils': 7.8.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/utils': 7.8.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.8.0 debug: 4.3.4 eslint: 8.57.0 graphemer: 1.4.0 @@ -6426,8 +6399,8 @@ packages: - supports-color dev: false - /@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.4.5): - resolution: {integrity: sha512-vmPzBOOtz48F6JAGVS/kZYk4EkXao6iGrD838sp1w3NQQC0W8ry/q641KU4PrG7AKNAf56NOcR8GOpH8l9FPCw==} + /@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5): + resolution: {integrity: sha512-KgKQly1pv0l4ltcftP59uQZCi4HUYswCLbTqVZEJu7uLX8CTLyswqMLqLN+2QFz4jCptqWVV4SB7vdxcH2+0kQ==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -6436,10 +6409,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 7.7.1 - '@typescript-eslint/types': 7.7.1 - '@typescript-eslint/typescript-estree': 7.7.1(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.7.1 + '@typescript-eslint/scope-manager': 7.8.0 + '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.8.0 debug: 4.3.4 eslint: 8.57.0 typescript: 5.4.5 @@ -6447,16 +6420,16 @@ packages: - supports-color dev: false - /@typescript-eslint/scope-manager@7.7.1: - resolution: {integrity: sha512-PytBif2SF+9SpEUKynYn5g1RHFddJUcyynGpztX3l/ik7KmZEv19WCMhUBkHXPU9es/VWGD3/zg3wg90+Dh2rA==} + /@typescript-eslint/scope-manager@7.8.0: + resolution: {integrity: sha512-viEmZ1LmwsGcnr85gIq+FCYI7nO90DVbE37/ll51hjv9aG+YZMb4WDE2fyWpUR4O/UrhGRpYXK/XajcGTk2B8g==} engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 7.7.1 - '@typescript-eslint/visitor-keys': 7.7.1 + '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/visitor-keys': 7.8.0 dev: false - /@typescript-eslint/type-utils@7.7.1(eslint@8.57.0)(typescript@5.4.5): - resolution: {integrity: sha512-ZksJLW3WF7o75zaBPScdW1Gbkwhd/lyeXGf1kQCxJaOeITscoSl0MjynVvCzuV5boUz/3fOI06Lz8La55mu29Q==} + /@typescript-eslint/type-utils@7.8.0(eslint@8.57.0)(typescript@5.4.5): + resolution: {integrity: sha512-H70R3AefQDQpz9mGv13Uhi121FNMh+WEaRqcXTX09YEDky21km4dV1ZXJIp8QjXc4ZaVkXVdohvWDzbnbHDS+A==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -6465,8 +6438,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 7.7.1(typescript@5.4.5) - '@typescript-eslint/utils': 7.7.1(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.5) + '@typescript-eslint/utils': 7.8.0(eslint@8.57.0)(typescript@5.4.5) debug: 4.3.4 eslint: 8.57.0 ts-api-utils: 1.3.0(typescript@5.4.5) @@ -6475,13 +6448,13 @@ packages: - supports-color dev: false - /@typescript-eslint/types@7.7.1: - resolution: {integrity: sha512-AmPmnGW1ZLTpWa+/2omPrPfR7BcbUU4oha5VIbSbS1a1Tv966bklvLNXxp3mrbc+P2j4MNOTfDffNsk4o0c6/w==} + /@typescript-eslint/types@7.8.0: + resolution: {integrity: sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==} engines: {node: ^18.18.0 || >=20.0.0} dev: false - /@typescript-eslint/typescript-estree@7.7.1(typescript@5.4.5): - resolution: {integrity: sha512-CXe0JHCXru8Fa36dteXqmH2YxngKJjkQLjxzoj6LYwzZ7qZvgsLSc+eqItCrqIop8Vl2UKoAi0StVWu97FQZIQ==} + /@typescript-eslint/typescript-estree@7.8.0(typescript@5.4.5): + resolution: {integrity: sha512-5pfUCOwK5yjPaJQNy44prjCwtr981dO8Qo9J9PwYXZ0MosgAbfEMB008dJ5sNo3+/BN6ytBPuSvXUg9SAqB0dg==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' @@ -6489,8 +6462,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 7.7.1 - '@typescript-eslint/visitor-keys': 7.7.1 + '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/visitor-keys': 7.8.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -6502,8 +6475,8 @@ packages: - supports-color dev: false - /@typescript-eslint/utils@7.7.1(eslint@8.57.0)(typescript@5.4.5): - resolution: {integrity: sha512-QUvBxPEaBXf41ZBbaidKICgVL8Hin0p6prQDu6bbetWo39BKbWJxRsErOzMNT1rXvTll+J7ChrbmMCXM9rsvOQ==} + /@typescript-eslint/utils@7.8.0(eslint@8.57.0)(typescript@5.4.5): + resolution: {integrity: sha512-L0yFqOCflVqXxiZyXrDr80lnahQfSOfc9ELAAZ75sqicqp2i36kEZZGuUymHNFoYOqxRT05up760b4iGsl02nQ==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -6511,9 +6484,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 7.7.1 - '@typescript-eslint/types': 7.7.1 - '@typescript-eslint/typescript-estree': 7.7.1(typescript@5.4.5) + '@typescript-eslint/scope-manager': 7.8.0 + '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.5) eslint: 8.57.0 semver: 7.6.0 transitivePeerDependencies: @@ -6521,11 +6494,11 @@ packages: - typescript dev: false - /@typescript-eslint/visitor-keys@7.7.1: - resolution: {integrity: sha512-gBL3Eq25uADw1LQ9kVpf3hRM+DWzs0uZknHYK3hq4jcTPqVCClHGDnB6UUUV2SFeBeA4KWHWbbLqmbGcZ4FYbw==} + /@typescript-eslint/visitor-keys@7.8.0: + resolution: {integrity: sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==} engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 7.7.1 + '@typescript-eslint/types': 7.8.0 eslint-visitor-keys: 3.4.3 dev: false @@ -7888,7 +7861,7 @@ packages: - supports-color dev: false - /eslint-module-utils@2.8.1(@typescript-eslint/parser@7.7.1)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): + /eslint-module-utils@2.8.1(@typescript-eslint/parser@7.8.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} engines: {node: '>=4'} peerDependencies: @@ -7909,7 +7882,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 7.7.1(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.8.0(eslint@8.57.0)(typescript@5.4.5) debug: 3.2.7 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 @@ -7917,7 +7890,7 @@ packages: - supports-color dev: false - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.1)(eslint@8.57.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.8.0)(eslint@8.57.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -7927,7 +7900,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 7.7.1(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.8.0(eslint@8.57.0)(typescript@5.4.5) array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 array.prototype.flat: 1.3.2 @@ -7936,7 +7909,7 @@ packages: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.7.1)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.8.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) hasown: 2.0.2 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -8727,8 +8700,8 @@ packages: '@babel/runtime': 7.24.4 dev: false - /i18next@23.11.2: - resolution: {integrity: sha512-qMBm7+qT8jdpmmDw/kQD16VpmkL9BdL+XNAK5MNbNFaf1iQQq35ZbPrSlqmnNPOSUY4m342+c0t0evinF5l7sA==} + /i18next@23.11.3: + resolution: {integrity: sha512-Pq/aSKowir7JM0rj+Wa23Kb6KKDUGno/HjG+wRQu0PxoTbpQ4N89MAT0rFGvXmLkRLNMb1BbBOKGozl01dabzg==} dependencies: '@babel/runtime': 7.24.4 @@ -9464,13 +9437,13 @@ packages: remove-accents: 0.5.0 dev: false - /md-to-react-email@5.0.2(react@18.2.0): + /md-to-react-email@5.0.2(react@18.3.1): resolution: {integrity: sha512-x6kkpdzIzUhecda/yahltfEl53mH26QdWu4abUF9+S0Jgam8P//Ciro8cdhyMHnT5MQUJYrIbO6ORM2UxPiNNA==} peerDependencies: react: 18.x dependencies: marked: 7.0.4 - react: 18.2.0 + react: 18.3.1 dev: false /mdast-util-find-and-replace@3.0.1: @@ -11102,16 +11075,6 @@ packages: react: 18.3.1 dev: true - /react-dom@18.2.0(react@18.2.0): - resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} - peerDependencies: - react: ^18.2.0 - dependencies: - loose-envify: 1.4.0 - react: 18.2.0 - scheduler: 0.23.2 - dev: false - /react-dom@18.3.1(react@18.3.1): resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} peerDependencies: @@ -11138,7 +11101,7 @@ packages: dependencies: react: 18.3.1 - /react-i18next@14.1.1(i18next@23.11.2)(react-dom@18.3.1)(react@18.3.1): + /react-i18next@14.1.1(i18next@23.11.3)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-QSiKw+ihzJ/CIeIYWrarCmXJUySHDwQr5y8uaNIkbxoGRm/5DukkxZs+RPla79IKyyDPzC/DRlgQCABHtrQuQQ==} peerDependencies: i18next: '>= 23.2.3' @@ -11153,7 +11116,7 @@ packages: dependencies: '@babel/runtime': 7.24.4 html-parse-stringify: 3.0.1 - i18next: 23.11.2 + i18next: 23.11.3 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -11249,13 +11212,6 @@ packages: react-dom: 18.3.1(react@18.3.1) dev: false - /react@18.2.0: - resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} - engines: {node: '>=0.10.0'} - dependencies: - loose-envify: 1.4.0 - dev: false - /react@18.3.1: resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} diff --git a/tooling/eslint/package.json b/tooling/eslint/package.json index a74083a69..e684437d2 100644 --- a/tooling/eslint/package.json +++ b/tooling/eslint/package.json @@ -17,8 +17,8 @@ "@tanstack/react-table": "^8.16.0", "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@types/eslint": "^8.56.10", - "@typescript-eslint/eslint-plugin": "^7.7.1", - "@typescript-eslint/parser": "^7.7.1", + "@typescript-eslint/eslint-plugin": "^7.8.0", + "@typescript-eslint/parser": "^7.8.0", "eslint-config-prettier": "^9.1.0", "eslint-config-turbo": "^1.13.3", "eslint-plugin-import": "^2.29.1",