Refactor webhook handler service and update dependencies

Refactor to make database webhook handler service a function. This change introduces the function `getDatabaseWebhookHandlerService()` to return an instance of the service, allowing easier management of instances. Dependencies are updated as well, including bringing `react-i18next` to version 14.1.1(i18next@23.11.3) and `@react-email/components` to version 0.0.17 and others.
This commit is contained in:
giancarlo
2024-04-30 02:36:48 +07:00
parent faaa26c4e8
commit 14dee4f347
6 changed files with 199 additions and 248 deletions

View File

@@ -1,22 +1,18 @@
import { DatabaseWebhookHandlerService } from '@kit/database-webhooks'; import { getDatabaseWebhookHandlerService } from '@kit/database-webhooks';
const service = new DatabaseWebhookHandlerService();
const response = (status: number) => new Response(null, { status });
/** /**
* @name POST * @name POST
* @description POST handler for the webhook route that handles the webhook event * @description POST handler for the webhook route that handles the webhook event
* @param request
* @constructor
*/ */
export async function POST(request: Request) { export async function POST(request: Request) {
const service = getDatabaseWebhookHandlerService();
try { try {
// handle the webhook event // handle the webhook event
await service.handleWebhook(request); await service.handleWebhook(request);
return response(200); return new Response(null, { status: 200 });
} catch { } catch {
return response(500); return new Response(null, { status: 500 });
} }
} }

View File

@@ -7,23 +7,31 @@ import { RecordChange, Tables } from '../record-change.type';
import { DatabaseWebhookRouterService } from './database-webhook-router.service'; import { DatabaseWebhookRouterService } from './database-webhook-router.service';
import { getDatabaseWebhookVerifier } from './verifier'; import { getDatabaseWebhookVerifier } from './verifier';
export class DatabaseWebhookHandlerService { export function getDatabaseWebhookHandlerService() {
return new DatabaseWebhookHandlerService();
}
class DatabaseWebhookHandlerService {
private readonly namespace = 'database-webhook-handler'; private readonly namespace = 'database-webhook-handler';
/**
* @name handleWebhook
* @description Handle the webhook event
* @param request
*/
async handleWebhook(request: Request) { async handleWebhook(request: Request) {
const logger = await getLogger(); const logger = await getLogger();
const json = await request.clone().json(); const json = await request.clone().json();
const { table, type } = json as RecordChange<keyof Tables>; const { table, type } = json as RecordChange<keyof Tables>;
logger.info( const ctx = {
{ name: this.namespace,
name: this.namespace, table,
table, type,
type, };
},
'Received webhook from DB. Processing...', logger.info(ctx, 'Received webhook from DB. Processing...');
);
// check if the signature is valid // check if the signature is valid
const verifier = await getDatabaseWebhookVerifier(); const verifier = await getDatabaseWebhookVerifier();
@@ -45,20 +53,11 @@ export class DatabaseWebhookHandlerService {
// handle the webhook event based on the table // handle the webhook event based on the table
await service.handleWebhook(json); await service.handleWebhook(json);
logger.info( logger.info(ctx, 'Webhook processed successfully');
{
name: this.namespace,
table,
type,
},
'Webhook processed successfully',
);
} catch (error) { } catch (error) {
logger.error( logger.error(
{ {
name: this.namespace, ...ctx,
table,
type,
error, error,
}, },
'Failed to process webhook', 'Failed to process webhook',

View File

@@ -13,7 +13,7 @@
".": "./src/index.ts" ".": "./src/index.ts"
}, },
"dependencies": { "dependencies": {
"@react-email/components": "0.0.16" "@react-email/components": "0.0.17"
}, },
"devDependencies": { "devDependencies": {
"@kit/eslint-config": "workspace:*", "@kit/eslint-config": "workspace:*",

View File

@@ -25,7 +25,7 @@
"react-i18next": "^14.1.1" "react-i18next": "^14.1.1"
}, },
"dependencies": { "dependencies": {
"i18next": "^23.11.2", "i18next": "^23.11.3",
"i18next-browser-languagedetector": "7.2.1", "i18next-browser-languagedetector": "7.2.1",
"i18next-resources-to-backend": "^1.2.1" "i18next-resources-to-backend": "^1.2.1"
}, },

386
pnpm-lock.yaml generated
View File

@@ -167,7 +167,7 @@ importers:
version: 7.51.3(react@18.3.1) version: 7.51.3(react@18.3.1)
react-i18next: react-i18next:
specifier: ^14.1.1 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: recharts:
specifier: ^2.12.6 specifier: ^2.12.6
version: 2.12.6(react-dom@18.3.1)(react@18.3.1) 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) version: 7.51.3(react@18.3.1)
react-i18next: react-i18next:
specifier: ^14.1.1 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: zod:
specifier: ^3.23.4 specifier: ^3.23.4
version: 3.23.4 version: 3.23.4
@@ -524,8 +524,8 @@ importers:
packages/email-templates: packages/email-templates:
dependencies: dependencies:
'@react-email/components': '@react-email/components':
specifier: 0.0.16 specifier: 0.0.17
version: 0.0.16(react@18.2.0) version: 0.0.17(react@18.3.1)
devDependencies: devDependencies:
'@kit/eslint-config': '@kit/eslint-config':
specifier: workspace:* specifier: workspace:*
@@ -620,7 +620,7 @@ importers:
version: 7.51.3(react@18.3.1) version: 7.51.3(react@18.3.1)
react-i18next: react-i18next:
specifier: ^14.1.1 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: sonner:
specifier: ^1.4.41 specifier: ^1.4.41
version: 1.4.41(react-dom@18.3.1)(react@18.3.1) 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) version: 7.51.3(react@18.3.1)
react-i18next: react-i18next:
specifier: ^14.1.1 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: sonner:
specifier: ^1.4.41 specifier: ^1.4.41
version: 1.4.41(react-dom@18.3.1)(react@18.3.1) version: 1.4.41(react-dom@18.3.1)(react@18.3.1)
@@ -772,7 +772,7 @@ importers:
specifier: workspace:* specifier: workspace:*
version: link:../../ui version: link:../../ui
'@supabase/supabase-js': '@supabase/supabase-js':
specifier: 2.42.7 specifier: ^2.42.7
version: 2.42.7 version: 2.42.7
'@types/react': '@types/react':
specifier: ^18.3.1 specifier: ^18.3.1
@@ -784,11 +784,11 @@ importers:
specifier: 18.3.1 specifier: 18.3.1
version: 18.3.1 version: 18.3.1
react-dom: react-dom:
specifier: ^18.3.1 specifier: 18.3.1
version: 18.3.1(react@18.3.1) version: 18.3.1(react@18.3.1)
react-i18next: react-i18next:
specifier: ^14.1.1 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: packages/features/team-accounts:
dependencies: dependencies:
@@ -876,7 +876,7 @@ importers:
version: 7.51.3(react@18.3.1) version: 7.51.3(react@18.3.1)
react-i18next: react-i18next:
specifier: ^14.1.1 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: sonner:
specifier: ^1.4.41 specifier: ^1.4.41
version: 1.4.41(react-dom@18.3.1)(react@18.3.1) version: 1.4.41(react-dom@18.3.1)(react@18.3.1)
@@ -887,8 +887,8 @@ importers:
packages/i18n: packages/i18n:
dependencies: dependencies:
i18next: i18next:
specifier: ^23.11.2 specifier: ^23.11.3
version: 23.11.2 version: 23.11.3
i18next-browser-languagedetector: i18next-browser-languagedetector:
specifier: 7.2.1 specifier: 7.2.1
version: 7.2.1 version: 7.2.1
@@ -916,7 +916,7 @@ importers:
version: 5.32.0(react@18.3.1) version: 5.32.0(react@18.3.1)
react-i18next: react-i18next:
specifier: ^14.1.1 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: packages/mailers:
dependencies: dependencies:
@@ -1290,7 +1290,7 @@ importers:
version: 7.51.3(react@18.3.1) version: 7.51.3(react@18.3.1)
react-i18next: react-i18next:
specifier: ^14.1.1 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: sonner:
specifier: ^1.4.41 specifier: ^1.4.41
version: 1.4.41(react-dom@18.3.1)(react@18.3.1) version: 1.4.41(react-dom@18.3.1)(react@18.3.1)
@@ -1322,11 +1322,11 @@ importers:
specifier: ^8.56.10 specifier: ^8.56.10
version: 8.56.10 version: 8.56.10
'@typescript-eslint/eslint-plugin': '@typescript-eslint/eslint-plugin':
specifier: ^7.7.1 specifier: ^7.8.0
version: 7.7.1(@typescript-eslint/parser@7.7.1)(eslint@8.57.0)(typescript@5.4.5) version: 7.8.0(@typescript-eslint/parser@7.8.0)(eslint@8.57.0)(typescript@5.4.5)
'@typescript-eslint/parser': '@typescript-eslint/parser':
specifier: ^7.7.1 specifier: ^7.8.0
version: 7.7.1(eslint@8.57.0)(typescript@5.4.5) version: 7.8.0(eslint@8.57.0)(typescript@5.4.5)
eslint-config-prettier: eslint-config-prettier:
specifier: ^9.1.0 specifier: ^9.1.0
version: 9.1.0(eslint@8.57.0) version: 9.1.0(eslint@8.57.0)
@@ -1335,7 +1335,7 @@ importers:
version: 1.13.3(eslint@8.57.0) version: 1.13.3(eslint@8.57.0)
eslint-plugin-import: eslint-plugin-import:
specifier: ^2.29.1 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: eslint-plugin-react:
specifier: ^7.34.1 specifier: ^7.34.1
version: 7.34.1(eslint@8.57.0) version: 7.34.1(eslint@8.57.0)
@@ -3363,19 +3363,6 @@ packages:
react: 18.3.1 react: 18.3.1
dev: false 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): /@radix-ui/react-context@1.0.1(@types/react@18.3.1)(react@18.3.1):
resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==} resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==}
peerDependencies: peerDependencies:
@@ -3936,20 +3923,6 @@ packages:
react: 18.3.1 react: 18.3.1
dev: false 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): /@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==} resolution: {integrity: sha512-egZfYY/+wRNCflXNHx+dePvnz9FbmssDTJBtgRfDY7e8SE5oIo3Py2eCB1ckAbh1Q7cQ/6yJZThJ++sgbxibog==}
peerDependencies: peerDependencies:
@@ -4868,219 +4841,219 @@ packages:
react: 18.3.1 react: 18.3.1
dev: false dev: false
/@react-email/body@0.0.7(react@18.2.0): /@react-email/body@0.0.8(react@18.3.1):
resolution: {integrity: sha512-vjJ5P1MUNWV0KNivaEWA6MGj/I3c764qQJMsKjCHlW6mkFJ4SXbm2OlQFtKAb++Bj8LDqBlnE6oW77bWcMc0NA==} resolution: {integrity: sha512-gqdkNYlIaIw0OdpWu8KjIcQSIFvx7t2bZpXVxMMvBS859Ia1+1X3b5RNbjI3S1ZqLddUf7owOHkO4MiXGE+nxg==}
peerDependencies: peerDependencies:
react: 18.2.0 react: ^18.2.0
dependencies: dependencies:
react: 18.2.0 react: 18.3.1
dev: false dev: false
/@react-email/button@0.0.14(react@18.2.0): /@react-email/button@0.0.15(react@18.3.1):
resolution: {integrity: sha512-SMk40moGcAvkHIALX4XercQlK0PNeeEIam6OXHw68ea9WtzzqVwiK4pzLY0iiMI9B4xWHcaS2lCPf3cKbQBf1Q==} resolution: {integrity: sha512-9Zi6SO3E8PoHYDfcJTecImiHLyitYWmIRs0HE3Ogra60ZzlWP2EXu+AZqwQnhXuq+9pbgwBWNWxB5YPetNPTNA==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
peerDependencies: peerDependencies:
react: 18.2.0 react: ^18.2.0
dependencies: dependencies:
react: 18.2.0 react: 18.3.1
dev: false dev: false
/@react-email/code-block@0.0.3(react@18.2.0): /@react-email/code-block@0.0.4(react@18.3.1):
resolution: {integrity: sha512-nxhl7WjjM2cOYtl0boBZfSObTrUCz2LbarcMyHkTVAsA9rbjbtWAQF7jmlefXJusk3Uol5l2c8hTh2lHLlHTRQ==} resolution: {integrity: sha512-xjVLi/9dFNJ70N7hYme+21eQWa3b9/kgp4V+FKQJkQCuIMobxPRCIGM5jKD/0Vo2OqrE5chYv/dkg/aP8a8sPg==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
peerDependencies: peerDependencies:
react: 18.2.0 react: ^18.2.0
dependencies: dependencies:
prismjs: 1.29.0 prismjs: 1.29.0
react: 18.2.0 react: 18.3.1
dev: false dev: false
/@react-email/code-inline@0.0.1(react@18.2.0): /@react-email/code-inline@0.0.2(react@18.3.1):
resolution: {integrity: sha512-SeZKTB9Q4+TUafzeUm/8tGK3dFgywUHb1od/BrAiJCo/im65aT+oJfggJLjK2jCdSsus8odcK2kReeM3/FCNTQ==} resolution: {integrity: sha512-0cmgbbibFeOJl0q04K9jJlPDuJ+SEiX/OG6m3Ko7UOkG3TqjRD8Dtvkij6jNDVfUh/zESpqJCP2CxrCLLMUjdA==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
peerDependencies: peerDependencies:
react: 18.2.0 react: ^18.2.0
dependencies: dependencies:
react: 18.2.0 react: 18.3.1
dev: false dev: false
/@react-email/column@0.0.9(react@18.2.0): /@react-email/column@0.0.10(react@18.3.1):
resolution: {integrity: sha512-1ekqNBgmbS6m97/sUFOnVvQtLYljUWamw8Y44VId95v6SjiJ4ca+hMcdOteHWBH67xkRofEOWTvqDRea5SBV8w==} resolution: {integrity: sha512-MnP8Mnwipr0X3XtdD6jMLckb0sI5/IlS6Kl/2F6/rsSWBJy5Gg6nizlekTdkwDmy0kNSe3/1nGU0Zqo98pl63Q==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
peerDependencies: peerDependencies:
react: 18.2.0 react: ^18.2.0
dependencies: dependencies:
react: 18.2.0 react: 18.3.1
dev: false dev: false
/@react-email/components@0.0.16(react@18.2.0): /@react-email/components@0.0.17(react@18.3.1):
resolution: {integrity: sha512-1WATpMSH03cRvhfNjGl/Up3seZJOzN9KLzlk3Q9g/cqNhZEJ7HYxoZM4AQKAI0V3ttXzzxKv8Oj+AZQLHDiICA==} resolution: {integrity: sha512-x5gGQaK0QchbwHvUrCBVnE8GCWdO5osTVuTSA54Fwzels6ZDeNTHEYRx9gI3Nwcf/dkoVYkVH4rzWST0SF0MLA==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
peerDependencies: peerDependencies:
react: 18.2.0 react: ^18.2.0
dependencies: dependencies:
'@react-email/body': 0.0.7(react@18.2.0) '@react-email/body': 0.0.8(react@18.3.1)
'@react-email/button': 0.0.14(react@18.2.0) '@react-email/button': 0.0.15(react@18.3.1)
'@react-email/code-block': 0.0.3(react@18.2.0) '@react-email/code-block': 0.0.4(react@18.3.1)
'@react-email/code-inline': 0.0.1(react@18.2.0) '@react-email/code-inline': 0.0.2(react@18.3.1)
'@react-email/column': 0.0.9(react@18.2.0) '@react-email/column': 0.0.10(react@18.3.1)
'@react-email/container': 0.0.11(react@18.2.0) '@react-email/container': 0.0.12(react@18.3.1)
'@react-email/font': 0.0.5(react@18.2.0) '@react-email/font': 0.0.6(react@18.3.1)
'@react-email/head': 0.0.7(react@18.2.0) '@react-email/head': 0.0.8(react@18.3.1)
'@react-email/heading': 0.0.11(react@18.2.0) '@react-email/heading': 0.0.12(react@18.3.1)
'@react-email/hr': 0.0.7(react@18.2.0) '@react-email/hr': 0.0.8(react@18.3.1)
'@react-email/html': 0.0.7(react@18.2.0) '@react-email/html': 0.0.8(react@18.3.1)
'@react-email/img': 0.0.7(react@18.2.0) '@react-email/img': 0.0.8(react@18.3.1)
'@react-email/link': 0.0.7(react@18.2.0) '@react-email/link': 0.0.8(react@18.3.1)
'@react-email/markdown': 0.0.9(react@18.2.0) '@react-email/markdown': 0.0.10(react@18.3.1)
'@react-email/preview': 0.0.8(react@18.2.0) '@react-email/preview': 0.0.9(react@18.3.1)
'@react-email/render': 0.0.12 '@react-email/render': 0.0.13
'@react-email/row': 0.0.7(react@18.2.0) '@react-email/row': 0.0.8(react@18.3.1)
'@react-email/section': 0.0.11(react@18.2.0) '@react-email/section': 0.0.12(react@18.3.1)
'@react-email/tailwind': 0.0.15(react@18.2.0) '@react-email/tailwind': 0.0.16(react@18.3.1)
'@react-email/text': 0.0.7(react@18.2.0) '@react-email/text': 0.0.8(react@18.3.1)
react: 18.2.0 react: 18.3.1
transitivePeerDependencies: transitivePeerDependencies:
- '@types/react' - '@types/react'
dev: false dev: false
/@react-email/container@0.0.11(react@18.2.0): /@react-email/container@0.0.12(react@18.3.1):
resolution: {integrity: sha512-jzl/EHs0ClXIRFamfH+NR/cqv4GsJJscqRhdYtnWYuRAsWpKBM1muycrrPqIVhWvWi6sFHInWTt07jX+bDc3SQ==} resolution: {integrity: sha512-HFu8Pu5COPFfeZxSL+wKv/TV5uO/sp4zQ0XkRCdnGkj/xoq0lqOHVDL4yC2Pu6fxXF/9C3PHDA++5uEYV5WVJw==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
peerDependencies: peerDependencies:
react: 18.2.0 react: ^18.2.0
dependencies: dependencies:
react: 18.2.0 react: 18.3.1
dev: false dev: false
/@react-email/font@0.0.5(react@18.2.0): /@react-email/font@0.0.6(react@18.3.1):
resolution: {integrity: sha512-if/qKYmH3rJ2egQJoKbV8SfKCPavu+ikUq/naT/UkCr8Q0lkk309tRA0x7fXG/WeIrmcipjMzFRGTm2TxTecDw==} resolution: {integrity: sha512-sZZFvEZ4U3vNCAZ8wXqIO3DuGJR2qE/8m2fEH+tdqwa532zGO3zW+UlCTg0b9455wkJSzEBeaWik0IkNvjXzxw==}
peerDependencies: peerDependencies:
react: 18.2.0 react: ^18.2.0
dependencies: dependencies:
react: 18.2.0 react: 18.3.1
dev: false dev: false
/@react-email/head@0.0.7(react@18.2.0): /@react-email/head@0.0.8(react@18.3.1):
resolution: {integrity: sha512-IcXL4jc0H1qzAXJCD9ajcRFBQdbUHkjKJyiUeogpaYSVZSq6cVDWQuGaI23TA9k+pI2TFeQimogUFb3Kgeeudw==} resolution: {integrity: sha512-8/NI0gtQmLIilAe6rebK1TWw3IXHxtrR02rInkQq8yQ7zKbYbzx7Q/FhmsJgAk+uYh2Er/KhgYJ0sHZyDhfMTQ==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
peerDependencies: peerDependencies:
react: 18.2.0 react: ^18.2.0
dependencies: dependencies:
react: 18.2.0 react: 18.3.1
dev: false dev: false
/@react-email/heading@0.0.11(react@18.2.0): /@react-email/heading@0.0.12(react@18.3.1):
resolution: {integrity: sha512-EF5ZtRCxhHPw3m+8iibKKg0RAvAeHj1AP68sjU7s6+J+kvRgllr/E972Wi5Y8UvcIGossCvpX1WrSMDzeB4puA==} resolution: {integrity: sha512-eB7mpnAvDmwvQLoPuwEiPRH4fPXWe6ltz6Ptbry2BlI88F0a2k11Ghb4+sZHBqg7vVw/MKbqEgtLqr3QJ/KfCQ==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
peerDependencies: peerDependencies:
react: 18.2.0 react: ^18.2.0
dependencies: dependencies:
'@radix-ui/react-slot': 1.0.2(react@18.2.0) '@radix-ui/react-slot': 1.0.2(@types/react@18.3.1)(react@18.3.1)
react: 18.2.0 react: 18.3.1
transitivePeerDependencies: transitivePeerDependencies:
- '@types/react' - '@types/react'
dev: false dev: false
/@react-email/hr@0.0.7(react@18.2.0): /@react-email/hr@0.0.8(react@18.3.1):
resolution: {integrity: sha512-8suK0M/deXHt0DBSeKhSC4bnCBCBm37xk6KJh9M0/FIKlvdltQBem52YUiuqVl1XLB87Y6v6tvspn3SZ9fuxEA==} resolution: {integrity: sha512-JLVvpCg2wYKEB+n/PGCggWG9fRU5e4lxsGdpK5SDLsCL0ic3OLKSpHMfeE+ZSuw0GixAVVQN7F64PVJHQkd4MQ==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
peerDependencies: peerDependencies:
react: 18.2.0 react: ^18.2.0
dependencies: dependencies:
react: 18.2.0 react: 18.3.1
dev: false dev: false
/@react-email/html@0.0.7(react@18.2.0): /@react-email/html@0.0.8(react@18.3.1):
resolution: {integrity: sha512-oy7OoRtoOKApVI/5Lz1OZptMKmMYJu9Xn6+lOmdBQchAuSdQtWJqxhrSj/iI/mm8HZWo6MZEQ6SFpfOuf8/P6Q==} resolution: {integrity: sha512-arII3wBNLpeJtwyIJXPaILm5BPKhA+nvdC1F9QkuKcOBJv2zXctn8XzPqyGqDfdplV692ulNJP7XY55YqbKp6w==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
peerDependencies: peerDependencies:
react: 18.2.0 react: ^18.2.0
dependencies: dependencies:
react: 18.2.0 react: 18.3.1
dev: false dev: false
/@react-email/img@0.0.7(react@18.2.0): /@react-email/img@0.0.8(react@18.3.1):
resolution: {integrity: sha512-up9tM2/dJ24u/CFjcvioKbyGuPw1yeJg605QA7VkrygEhd0CoQEjjgumfugpJ+VJgIt4ZjT9xMVCK5QWTIWoaA==} resolution: {integrity: sha512-jx/rPuKo31tV18fu7P5rRqelaH5wkhg83Dq7uLwJpfqhbi4KFBGeBfD0Y3PiLPPoh+WvYf+Adv9W2ghNW8nOMQ==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
peerDependencies: peerDependencies:
react: 18.2.0 react: ^18.2.0
dependencies: dependencies:
react: 18.2.0 react: 18.3.1
dev: false dev: false
/@react-email/link@0.0.7(react@18.2.0): /@react-email/link@0.0.8(react@18.3.1):
resolution: {integrity: sha512-hXPChT3ZMyKnUSA60BLEMD2maEgyB2A37yg5bASbLMrXmsExHi6/IS1h2XiUPLDK4KqH5KFaFxi2cdNo1JOKwA==} resolution: {integrity: sha512-nVikuTi8WJHa6Baad4VuRUbUCa/7EtZ1Qy73TRejaCHn+vhetc39XGqHzKLNh+Z/JFL8Hv9g+4AgG16o2R0ogQ==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
peerDependencies: peerDependencies:
react: 18.2.0 react: ^18.2.0
dependencies: dependencies:
react: 18.2.0 react: 18.3.1
dev: false dev: false
/@react-email/markdown@0.0.9(react@18.2.0): /@react-email/markdown@0.0.10(react@18.3.1):
resolution: {integrity: sha512-t//19Zz+W5svKqrSrqoOLpf6dq70jbwYxX8Z+NEMi4LqylklccOaYAyKrkYyulfZwhW7KDH9d2wjVk5jfUABxQ==} resolution: {integrity: sha512-MH0xO+NJ4IuJcx9nyxbgGKAMXyudFjCZ0A2GQvuWajemW9qy2hgnJ3mW3/z5lwcenG+JPn7JyO/iZpizQ7u1tA==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
peerDependencies: peerDependencies:
react: 18.2.0 react: ^18.2.0
dependencies: dependencies:
md-to-react-email: 5.0.2(react@18.2.0) md-to-react-email: 5.0.2(react@18.3.1)
react: 18.2.0 react: 18.3.1
dev: false dev: false
/@react-email/preview@0.0.8(react@18.2.0): /@react-email/preview@0.0.9(react@18.3.1):
resolution: {integrity: sha512-Jm0KUYBZQd2w0s2QRMQy0zfHdo3Ns+9bYSE1OybjknlvhANirjuZw9E5KfWgdzO7PyrRtB1OBOQD8//Obc4uIQ==} resolution: {integrity: sha512-2fyAA/zzZYfYmxfyn3p2YOIU30klyA6Dq4ytyWq4nfzQWWglt5hNDE0cMhObvRtfjM9ghMSVtoELAb0MWiF/kw==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
peerDependencies: peerDependencies:
react: 18.2.0 react: ^18.2.0
dependencies: dependencies:
react: 18.2.0 react: 18.3.1
dev: false dev: false
/@react-email/render@0.0.12: /@react-email/render@0.0.13:
resolution: {integrity: sha512-S8WRv/PqECEi6x0QJBj0asnAb5GFtJaHlnByxLETLkgJjc76cxMYDH4r9wdbuJ4sjkcbpwP3LPnVzwS+aIjT7g==} resolution: {integrity: sha512-lmBizrV+rQeSa3GjiL8/kPU0gENqO/wv+4xrlWANabp9UY3lTLXzy7HMRSE8YFBES9AbxP5VX1iRKuEnsoBDew==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
dependencies: dependencies:
html-to-text: 9.0.5 html-to-text: 9.0.5
js-beautify: 1.15.1 js-beautify: 1.15.1
react: 18.2.0 react: 18.3.1
react-dom: 18.2.0(react@18.2.0) react-dom: 18.3.1(react@18.3.1)
dev: false dev: false
/@react-email/row@0.0.7(react@18.2.0): /@react-email/row@0.0.8(react@18.3.1):
resolution: {integrity: sha512-h7pwrLVGk5CIx7Ai/oPxBgCCAGY7BEpCUQ7FCzi4+eThcs5IdjSwDPefLEkwaFS8KZc56UNwTAH92kNq5B7blg==} resolution: {integrity: sha512-JsB6pxs/ZyjYpEML3nbwJRGAerjcN/Pa/QG48XUwnT/MioDWrUuyQuefw+CwCrSUZ2P1IDrv2tUD3/E3xzcoKw==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
peerDependencies: peerDependencies:
react: 18.2.0 react: ^18.2.0
dependencies: dependencies:
react: 18.2.0 react: 18.3.1
dev: false dev: false
/@react-email/section@0.0.11(react@18.2.0): /@react-email/section@0.0.12(react@18.3.1):
resolution: {integrity: sha512-3bZ/DuvX1julATI7oqYza6pOtWZgLJDBaa62LFFEvYjisyN+k6lrP2KOucPsDKu2DOkUzlQgK0FOm6VQJX+C0w==} resolution: {integrity: sha512-UCD/N/BeOTN4h3VZBUaFdiSem6HnpuxD1Q51TdBFnqeNqS5hBomp8LWJJ9s4gzwHWk1XPdNfLA3I/fJwulJshg==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
peerDependencies: peerDependencies:
react: 18.2.0 react: ^18.2.0
dependencies: dependencies:
react: 18.2.0 react: 18.3.1
dev: false dev: false
/@react-email/tailwind@0.0.15(react@18.2.0): /@react-email/tailwind@0.0.16(react@18.3.1):
resolution: {integrity: sha512-TE3NQ7VKhhvv3Zv0Z1NtoV6AF7aOWiG4juVezMZw1hZCG0mkN6iXC63u23vPQi12y6xCp20ZUHfg67kQeDSP/g==} resolution: {integrity: sha512-uMifPxCEHaHLhpS1kVCMGyTeEL+aMYzHT4bgj8CkgCiBoF9wNNfIVMUlHGzHUTv4ZTEPaMfZgC/Hi8RqzL/Ogw==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
peerDependencies: peerDependencies:
react: 18.2.0 react: ^18.2.0
dependencies: dependencies:
react: 18.2.0 react: 18.3.1
dev: false dev: false
/@react-email/text@0.0.7(react@18.2.0): /@react-email/text@0.0.8(react@18.3.1):
resolution: {integrity: sha512-eHCx0mdllGcgK9X7wiLKjNZCBRfxRVNjD3NNYRmOc3Icbl8M9JHriJIfxBuGCmGg2UAORK5P3KmaLQ8b99/pbA==} resolution: {integrity: sha512-uvN2TNWMrfC9wv/LLmMLbbEN1GrMWZb9dBK14eYxHHAEHCeyvGb5ePZZ2MPyzO7Y5yTC+vFEnCEr76V+hWMxCQ==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
peerDependencies: peerDependencies:
react: 18.2.0 react: ^18.2.0
dependencies: dependencies:
react: 18.2.0 react: 18.3.1
dev: false dev: false
/@react-stately/calendar@3.4.4(react@18.3.1): /@react-stately/calendar@3.4.4(react@18.3.1):
@@ -6397,8 +6370,8 @@ packages:
dependencies: dependencies:
'@types/node': 20.12.7 '@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): /@typescript-eslint/eslint-plugin@7.8.0(@typescript-eslint/parser@7.8.0)(eslint@8.57.0)(typescript@5.4.5):
resolution: {integrity: sha512-KwfdWXJBOviaBVhxO3p5TJiLpNuh2iyXyjmWN0f1nU87pwyvfS0EmjC6ukQVYVFJd/K1+0NWGPDXiyEyQorn0Q==} resolution: {integrity: sha512-gFTT+ezJmkwutUPmB0skOj3GZJtlEGnlssems4AjkVweUPGj7jRwwqg0Hhg7++kPGJqKtTYx+R05Ftww372aIg==}
engines: {node: ^18.18.0 || >=20.0.0} engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies: peerDependencies:
'@typescript-eslint/parser': ^7.0.0 '@typescript-eslint/parser': ^7.0.0
@@ -6409,11 +6382,11 @@ packages:
optional: true optional: true
dependencies: dependencies:
'@eslint-community/regexpp': 4.10.0 '@eslint-community/regexpp': 4.10.0
'@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)
'@typescript-eslint/scope-manager': 7.7.1 '@typescript-eslint/scope-manager': 7.8.0
'@typescript-eslint/type-utils': 7.7.1(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/type-utils': 7.8.0(eslint@8.57.0)(typescript@5.4.5)
'@typescript-eslint/utils': 7.7.1(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.7.1 '@typescript-eslint/visitor-keys': 7.8.0
debug: 4.3.4 debug: 4.3.4
eslint: 8.57.0 eslint: 8.57.0
graphemer: 1.4.0 graphemer: 1.4.0
@@ -6426,8 +6399,8 @@ packages:
- supports-color - supports-color
dev: false dev: false
/@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):
resolution: {integrity: sha512-vmPzBOOtz48F6JAGVS/kZYk4EkXao6iGrD838sp1w3NQQC0W8ry/q641KU4PrG7AKNAf56NOcR8GOpH8l9FPCw==} resolution: {integrity: sha512-KgKQly1pv0l4ltcftP59uQZCi4HUYswCLbTqVZEJu7uLX8CTLyswqMLqLN+2QFz4jCptqWVV4SB7vdxcH2+0kQ==}
engines: {node: ^18.18.0 || >=20.0.0} engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies: peerDependencies:
eslint: ^8.56.0 eslint: ^8.56.0
@@ -6436,10 +6409,10 @@ packages:
typescript: typescript:
optional: true optional: true
dependencies: dependencies:
'@typescript-eslint/scope-manager': 7.7.1 '@typescript-eslint/scope-manager': 7.8.0
'@typescript-eslint/types': 7.7.1 '@typescript-eslint/types': 7.8.0
'@typescript-eslint/typescript-estree': 7.7.1(typescript@5.4.5) '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.5)
'@typescript-eslint/visitor-keys': 7.7.1 '@typescript-eslint/visitor-keys': 7.8.0
debug: 4.3.4 debug: 4.3.4
eslint: 8.57.0 eslint: 8.57.0
typescript: 5.4.5 typescript: 5.4.5
@@ -6447,16 +6420,16 @@ packages:
- supports-color - supports-color
dev: false dev: false
/@typescript-eslint/scope-manager@7.7.1: /@typescript-eslint/scope-manager@7.8.0:
resolution: {integrity: sha512-PytBif2SF+9SpEUKynYn5g1RHFddJUcyynGpztX3l/ik7KmZEv19WCMhUBkHXPU9es/VWGD3/zg3wg90+Dh2rA==} resolution: {integrity: sha512-viEmZ1LmwsGcnr85gIq+FCYI7nO90DVbE37/ll51hjv9aG+YZMb4WDE2fyWpUR4O/UrhGRpYXK/XajcGTk2B8g==}
engines: {node: ^18.18.0 || >=20.0.0} engines: {node: ^18.18.0 || >=20.0.0}
dependencies: dependencies:
'@typescript-eslint/types': 7.7.1 '@typescript-eslint/types': 7.8.0
'@typescript-eslint/visitor-keys': 7.7.1 '@typescript-eslint/visitor-keys': 7.8.0
dev: false dev: false
/@typescript-eslint/type-utils@7.7.1(eslint@8.57.0)(typescript@5.4.5): /@typescript-eslint/type-utils@7.8.0(eslint@8.57.0)(typescript@5.4.5):
resolution: {integrity: sha512-ZksJLW3WF7o75zaBPScdW1Gbkwhd/lyeXGf1kQCxJaOeITscoSl0MjynVvCzuV5boUz/3fOI06Lz8La55mu29Q==} resolution: {integrity: sha512-H70R3AefQDQpz9mGv13Uhi121FNMh+WEaRqcXTX09YEDky21km4dV1ZXJIp8QjXc4ZaVkXVdohvWDzbnbHDS+A==}
engines: {node: ^18.18.0 || >=20.0.0} engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies: peerDependencies:
eslint: ^8.56.0 eslint: ^8.56.0
@@ -6465,8 +6438,8 @@ packages:
typescript: typescript:
optional: true optional: true
dependencies: dependencies:
'@typescript-eslint/typescript-estree': 7.7.1(typescript@5.4.5) '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.5)
'@typescript-eslint/utils': 7.7.1(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/utils': 7.8.0(eslint@8.57.0)(typescript@5.4.5)
debug: 4.3.4 debug: 4.3.4
eslint: 8.57.0 eslint: 8.57.0
ts-api-utils: 1.3.0(typescript@5.4.5) ts-api-utils: 1.3.0(typescript@5.4.5)
@@ -6475,13 +6448,13 @@ packages:
- supports-color - supports-color
dev: false dev: false
/@typescript-eslint/types@7.7.1: /@typescript-eslint/types@7.8.0:
resolution: {integrity: sha512-AmPmnGW1ZLTpWa+/2omPrPfR7BcbUU4oha5VIbSbS1a1Tv966bklvLNXxp3mrbc+P2j4MNOTfDffNsk4o0c6/w==} resolution: {integrity: sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==}
engines: {node: ^18.18.0 || >=20.0.0} engines: {node: ^18.18.0 || >=20.0.0}
dev: false dev: false
/@typescript-eslint/typescript-estree@7.7.1(typescript@5.4.5): /@typescript-eslint/typescript-estree@7.8.0(typescript@5.4.5):
resolution: {integrity: sha512-CXe0JHCXru8Fa36dteXqmH2YxngKJjkQLjxzoj6LYwzZ7qZvgsLSc+eqItCrqIop8Vl2UKoAi0StVWu97FQZIQ==} resolution: {integrity: sha512-5pfUCOwK5yjPaJQNy44prjCwtr981dO8Qo9J9PwYXZ0MosgAbfEMB008dJ5sNo3+/BN6ytBPuSvXUg9SAqB0dg==}
engines: {node: ^18.18.0 || >=20.0.0} engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies: peerDependencies:
typescript: '*' typescript: '*'
@@ -6489,8 +6462,8 @@ packages:
typescript: typescript:
optional: true optional: true
dependencies: dependencies:
'@typescript-eslint/types': 7.7.1 '@typescript-eslint/types': 7.8.0
'@typescript-eslint/visitor-keys': 7.7.1 '@typescript-eslint/visitor-keys': 7.8.0
debug: 4.3.4 debug: 4.3.4
globby: 11.1.0 globby: 11.1.0
is-glob: 4.0.3 is-glob: 4.0.3
@@ -6502,8 +6475,8 @@ packages:
- supports-color - supports-color
dev: false dev: false
/@typescript-eslint/utils@7.7.1(eslint@8.57.0)(typescript@5.4.5): /@typescript-eslint/utils@7.8.0(eslint@8.57.0)(typescript@5.4.5):
resolution: {integrity: sha512-QUvBxPEaBXf41ZBbaidKICgVL8Hin0p6prQDu6bbetWo39BKbWJxRsErOzMNT1rXvTll+J7ChrbmMCXM9rsvOQ==} resolution: {integrity: sha512-L0yFqOCflVqXxiZyXrDr80lnahQfSOfc9ELAAZ75sqicqp2i36kEZZGuUymHNFoYOqxRT05up760b4iGsl02nQ==}
engines: {node: ^18.18.0 || >=20.0.0} engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies: peerDependencies:
eslint: ^8.56.0 eslint: ^8.56.0
@@ -6511,9 +6484,9 @@ packages:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
'@types/json-schema': 7.0.15 '@types/json-schema': 7.0.15
'@types/semver': 7.5.8 '@types/semver': 7.5.8
'@typescript-eslint/scope-manager': 7.7.1 '@typescript-eslint/scope-manager': 7.8.0
'@typescript-eslint/types': 7.7.1 '@typescript-eslint/types': 7.8.0
'@typescript-eslint/typescript-estree': 7.7.1(typescript@5.4.5) '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.5)
eslint: 8.57.0 eslint: 8.57.0
semver: 7.6.0 semver: 7.6.0
transitivePeerDependencies: transitivePeerDependencies:
@@ -6521,11 +6494,11 @@ packages:
- typescript - typescript
dev: false dev: false
/@typescript-eslint/visitor-keys@7.7.1: /@typescript-eslint/visitor-keys@7.8.0:
resolution: {integrity: sha512-gBL3Eq25uADw1LQ9kVpf3hRM+DWzs0uZknHYK3hq4jcTPqVCClHGDnB6UUUV2SFeBeA4KWHWbbLqmbGcZ4FYbw==} resolution: {integrity: sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==}
engines: {node: ^18.18.0 || >=20.0.0} engines: {node: ^18.18.0 || >=20.0.0}
dependencies: dependencies:
'@typescript-eslint/types': 7.7.1 '@typescript-eslint/types': 7.8.0
eslint-visitor-keys: 3.4.3 eslint-visitor-keys: 3.4.3
dev: false dev: false
@@ -7888,7 +7861,7 @@ packages:
- supports-color - supports-color
dev: false 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==} resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==}
engines: {node: '>=4'} engines: {node: '>=4'}
peerDependencies: peerDependencies:
@@ -7909,7 +7882,7 @@ packages:
eslint-import-resolver-webpack: eslint-import-resolver-webpack:
optional: true optional: true
dependencies: 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 debug: 3.2.7
eslint: 8.57.0 eslint: 8.57.0
eslint-import-resolver-node: 0.3.9 eslint-import-resolver-node: 0.3.9
@@ -7917,7 +7890,7 @@ packages:
- supports-color - supports-color
dev: false 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==} resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==}
engines: {node: '>=4'} engines: {node: '>=4'}
peerDependencies: peerDependencies:
@@ -7927,7 +7900,7 @@ packages:
'@typescript-eslint/parser': '@typescript-eslint/parser':
optional: true optional: true
dependencies: 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-includes: 3.1.8
array.prototype.findlastindex: 1.2.5 array.prototype.findlastindex: 1.2.5
array.prototype.flat: 1.3.2 array.prototype.flat: 1.3.2
@@ -7936,7 +7909,7 @@ packages:
doctrine: 2.1.0 doctrine: 2.1.0
eslint: 8.57.0 eslint: 8.57.0
eslint-import-resolver-node: 0.3.9 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 hasown: 2.0.2
is-core-module: 2.13.1 is-core-module: 2.13.1
is-glob: 4.0.3 is-glob: 4.0.3
@@ -8727,8 +8700,8 @@ packages:
'@babel/runtime': 7.24.4 '@babel/runtime': 7.24.4
dev: false dev: false
/i18next@23.11.2: /i18next@23.11.3:
resolution: {integrity: sha512-qMBm7+qT8jdpmmDw/kQD16VpmkL9BdL+XNAK5MNbNFaf1iQQq35ZbPrSlqmnNPOSUY4m342+c0t0evinF5l7sA==} resolution: {integrity: sha512-Pq/aSKowir7JM0rj+Wa23Kb6KKDUGno/HjG+wRQu0PxoTbpQ4N89MAT0rFGvXmLkRLNMb1BbBOKGozl01dabzg==}
dependencies: dependencies:
'@babel/runtime': 7.24.4 '@babel/runtime': 7.24.4
@@ -9464,13 +9437,13 @@ packages:
remove-accents: 0.5.0 remove-accents: 0.5.0
dev: false 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==} resolution: {integrity: sha512-x6kkpdzIzUhecda/yahltfEl53mH26QdWu4abUF9+S0Jgam8P//Ciro8cdhyMHnT5MQUJYrIbO6ORM2UxPiNNA==}
peerDependencies: peerDependencies:
react: 18.x react: 18.x
dependencies: dependencies:
marked: 7.0.4 marked: 7.0.4
react: 18.2.0 react: 18.3.1
dev: false dev: false
/mdast-util-find-and-replace@3.0.1: /mdast-util-find-and-replace@3.0.1:
@@ -11102,16 +11075,6 @@ packages:
react: 18.3.1 react: 18.3.1
dev: true 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): /react-dom@18.3.1(react@18.3.1):
resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==}
peerDependencies: peerDependencies:
@@ -11138,7 +11101,7 @@ packages:
dependencies: dependencies:
react: 18.3.1 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==} resolution: {integrity: sha512-QSiKw+ihzJ/CIeIYWrarCmXJUySHDwQr5y8uaNIkbxoGRm/5DukkxZs+RPla79IKyyDPzC/DRlgQCABHtrQuQQ==}
peerDependencies: peerDependencies:
i18next: '>= 23.2.3' i18next: '>= 23.2.3'
@@ -11153,7 +11116,7 @@ packages:
dependencies: dependencies:
'@babel/runtime': 7.24.4 '@babel/runtime': 7.24.4
html-parse-stringify: 3.0.1 html-parse-stringify: 3.0.1
i18next: 23.11.2 i18next: 23.11.3
react: 18.3.1 react: 18.3.1
react-dom: 18.3.1(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) react-dom: 18.3.1(react@18.3.1)
dev: false 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: /react@18.3.1:
resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}

View File

@@ -17,8 +17,8 @@
"@tanstack/react-table": "^8.16.0", "@tanstack/react-table": "^8.16.0",
"@trivago/prettier-plugin-sort-imports": "^4.3.0", "@trivago/prettier-plugin-sort-imports": "^4.3.0",
"@types/eslint": "^8.56.10", "@types/eslint": "^8.56.10",
"@typescript-eslint/eslint-plugin": "^7.7.1", "@typescript-eslint/eslint-plugin": "^7.8.0",
"@typescript-eslint/parser": "^7.7.1", "@typescript-eslint/parser": "^7.8.0",
"eslint-config-prettier": "^9.1.0", "eslint-config-prettier": "^9.1.0",
"eslint-config-turbo": "^1.13.3", "eslint-config-turbo": "^1.13.3",
"eslint-plugin-import": "^2.29.1", "eslint-plugin-import": "^2.29.1",