From 38f069a6dcbdebad243cc23aea0d63a5c6677a90 Mon Sep 17 00:00:00 2001 From: Harshith Mullapudi Date: Wed, 3 Sep 2025 01:38:37 +0530 Subject: [PATCH] fix: invalidAt is not displayed in graph popover --- .../app/components/graph/graph-popover.tsx | 10 +- .../app/components/logs/log-details.tsx | 9 +- apps/webapp/app/lib/neo4j.server.ts | 8 + .../routeBuilders/apiBuilder.server.ts | 2 +- apps/webapp/app/utils/apiCors.ts | 2 +- apps/webapp/package.json | 1 + packages/emails/package.json | 2 +- packages/emails/src/transports/resend.ts | 4 +- pnpm-lock.yaml | 176 +++++++++--------- 9 files changed, 115 insertions(+), 99 deletions(-) diff --git a/apps/webapp/app/components/graph/graph-popover.tsx b/apps/webapp/app/components/graph/graph-popover.tsx index 1a3cc01..a46d3c3 100644 --- a/apps/webapp/app/components/graph/graph-popover.tsx +++ b/apps/webapp/app/components/graph/graph-popover.tsx @@ -82,10 +82,12 @@ export function GraphPopovers({ }), ); - return Object.entries(entityProperties).map(([key, value]) => ({ - key, - value, - })); + return Object.entries(entityProperties) + .map(([key, value]) => ({ + key, + value, + })) + .filter(({ value }) => value); }, [nodePopupContent]); return ( diff --git a/apps/webapp/app/components/logs/log-details.tsx b/apps/webapp/app/components/logs/log-details.tsx index bdc9fc7..6fd9ece 100644 --- a/apps/webapp/app/components/logs/log-details.tsx +++ b/apps/webapp/app/components/logs/log-details.tsx @@ -4,6 +4,7 @@ import { AlertCircle, Loader2 } from "lucide-react"; import { Dialog, DialogContent, DialogHeader, DialogTitle } from "../ui/dialog"; import { Badge } from "../ui/badge"; import { type LogItem } from "~/hooks/use-logs"; +import Markdown from "react-markdown"; interface LogDetailsProps { open: boolean; @@ -76,13 +77,9 @@ export function LogDetails({
{/* Log Content */} -
+
-

+ {text}

diff --git a/apps/webapp/app/lib/neo4j.server.ts b/apps/webapp/app/lib/neo4j.server.ts index e0595f2..0870783 100644 --- a/apps/webapp/app/lib/neo4j.server.ts +++ b/apps/webapp/app/lib/neo4j.server.ts @@ -148,6 +148,8 @@ export const getClusteredGraphData = async (userId: string) => { s.uuid as statementUuid, s.spaceIds as spaceIds, s.fact as fact, + s.invalidAt as invalidAt, + s.validAt as validAt, s.createdAt as createdAt, rel.isEntityToStatement as isEntityToStatement, rel.isStatementToEntity as isStatementToEntity`, @@ -175,6 +177,8 @@ export const getClusteredGraphData = async (userId: string) => { const clusterIds = record.get("spaceIds"); const clusterId = clusterIds ? clusterIds[0] : undefined; const fact = record.get("fact"); + const invalidAt = record.get("invalidAt"); + const validAt = record.get("validAt"); const createdAt = record.get("createdAt"); // Create unique edge identifier to avoid duplicates @@ -195,6 +199,8 @@ export const getClusteredGraphData = async (userId: string) => { clusterId, nodeType: "Statement", fact, + invalidAt, + validAt, } : { ...sourceProperties, @@ -209,6 +215,8 @@ export const getClusteredGraphData = async (userId: string) => { clusterId, nodeType: "Statement", fact, + invalidAt, + validAt, } : { ...targetProperties, diff --git a/apps/webapp/app/services/routeBuilders/apiBuilder.server.ts b/apps/webapp/app/services/routeBuilders/apiBuilder.server.ts index 87fc25d..2d91bca 100644 --- a/apps/webapp/app/services/routeBuilders/apiBuilder.server.ts +++ b/apps/webapp/app/services/routeBuilders/apiBuilder.server.ts @@ -747,7 +747,7 @@ export function createHybridActionApiRoute< async function loader({ request, params }: LoaderFunctionArgs) { if (corsStrategy !== "none" && request.method.toUpperCase() === "OPTIONS") { - return apiCors(request, json({})); + return apiCors(request, json({ origin: "*" })); } return new Response(null, { status: 405 }); diff --git a/apps/webapp/app/utils/apiCors.ts b/apps/webapp/app/utils/apiCors.ts index 28fea86..0bdf3da 100644 --- a/apps/webapp/app/utils/apiCors.ts +++ b/apps/webapp/app/utils/apiCors.ts @@ -20,7 +20,7 @@ export async function apiCors( return response; } - return cors(request, response, options); + return cors(request, response, { ...options }); } export function makeApiCors( diff --git a/apps/webapp/package.json b/apps/webapp/package.json index 337b986..0ed5182 100644 --- a/apps/webapp/package.json +++ b/apps/webapp/package.json @@ -126,6 +126,7 @@ "remix-themes": "^2.0.4", "remix-typedjson": "0.3.1", "remix-utils": "^7.7.0", + "react-markdown": "10.1.0", "sdk": "link:@modelcontextprotocol/sdk", "sigma": "^3.0.2", "simple-oauth2": "^5.1.0", diff --git a/packages/emails/package.json b/packages/emails/package.json index 85cb7ab..17d764c 100644 --- a/packages/emails/package.json +++ b/packages/emails/package.json @@ -15,7 +15,7 @@ "nodemailer": "^6.9.16", "react": "^18.2.0", "react-email": "^2.1.1", - "resend": "^3.2.0", + "resend": "^6.0.2", "tiny-invariant": "^1.2.0", "zod": "3.23.8" }, diff --git a/packages/emails/src/transports/resend.ts b/packages/emails/src/transports/resend.ts index ce2bd0a..25d4464 100644 --- a/packages/emails/src/transports/resend.ts +++ b/packages/emails/src/transports/resend.ts @@ -27,7 +27,7 @@ export class ResendMailTransport implements MailTransport { if (result.error) { console.log(result); console.error( - `Failed to send email to ${to}, ${subject}. Error ${result.error.name}: ${result.error.message}` + `Failed to send email to ${to}, ${subject}. Error ${result.error.name}: ${result.error.message}` ); throw new EmailError(result.error); } @@ -44,7 +44,7 @@ export class ResendMailTransport implements MailTransport { if (result.error) { console.error( - `Failed to send email to ${to}, ${subject}. Error ${result.error.name}: ${result.error.message}` + `Failed to send email plain to ${to}, ${subject}. Error ${result.error.name}: ${result.error.message}` ); throw new EmailError(result.error); } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ab0e89b..0e300ff 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -595,6 +595,9 @@ importers: react-dom: specifier: ^18.2.0 version: 18.3.1(react@18.3.1) + react-markdown: + specifier: 10.1.0 + version: 10.1.0(@types/react@18.2.69)(react@18.3.1) react-resizable-panels: specifier: ^1.0.9 version: 1.0.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -652,7 +655,7 @@ importers: devDependencies: '@remix-run/dev': specifier: 2.16.7 - version: 2.16.7(@remix-run/react@2.16.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(@remix-run/serve@2.16.7(typescript@5.8.3))(@types/node@22.16.0)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0)(tsx@4.20.4)(typescript@5.8.3)(vite@6.3.5(@types/node@22.16.0)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0)(tsx@4.20.4)(yaml@2.8.0))(yaml@2.8.0) + version: 2.16.7(@remix-run/react@2.16.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(@remix-run/serve@2.16.7(typescript@5.8.3))(@types/node@20.19.7)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0)(tsx@4.20.4)(typescript@5.8.3)(vite@6.3.5(@types/node@20.19.7)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0)(tsx@4.20.4)(yaml@2.8.0))(yaml@2.8.0) '@remix-run/eslint-config': specifier: 2.16.7 version: 2.16.7(eslint@8.57.1)(react@18.3.1)(typescript@5.8.3) @@ -667,7 +670,7 @@ importers: version: 0.5.16(tailwindcss@4.1.7) '@tailwindcss/vite': specifier: ^4.1.7 - version: 4.1.9(vite@6.3.5(@types/node@22.16.0)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0)(tsx@4.20.4)(yaml@2.8.0)) + version: 4.1.9(vite@6.3.5(@types/node@20.19.7)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0)(tsx@4.20.4)(yaml@2.8.0)) '@trigger.dev/build': specifier: 4.0.0-v4-beta.22 version: 4.0.0-v4-beta.22(typescript@5.8.3) @@ -766,10 +769,10 @@ importers: version: 5.8.3 vite: specifier: ^6.0.0 - version: 6.3.5(@types/node@22.16.0)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0)(tsx@4.20.4)(yaml@2.8.0) + version: 6.3.5(@types/node@20.19.7)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0)(tsx@4.20.4)(yaml@2.8.0) vite-tsconfig-paths: specifier: ^4.2.1 - version: 4.3.2(typescript@5.8.3)(vite@6.3.5(@types/node@22.16.0)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0)(tsx@4.20.4)(yaml@2.8.0)) + version: 4.3.2(typescript@5.8.3)(vite@6.3.5(@types/node@20.19.7)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0)(tsx@4.20.4)(yaml@2.8.0)) packages/database: dependencies: @@ -808,8 +811,8 @@ importers: specifier: ^2.1.1 version: 2.1.6(@opentelemetry/api@1.9.0)(@swc/helpers@0.5.17)(eslint@8.57.1)(sass@1.89.2) resend: - specifier: ^3.2.0 - version: 3.5.0(react-dom@18.2.0(react@18.2.0))(react@18.3.1) + specifier: ^6.0.2 + version: 6.0.2(@react-email/render@0.0.12) tiny-invariant: specifier: ^1.2.0 version: 1.3.3 @@ -838,7 +841,7 @@ importers: version: 20.19.7 tsup: specifier: ^8.0.1 - version: 8.5.0(@swc/core@1.3.101)(jiti@2.4.2)(postcss@8.5.5)(tsx@4.20.4)(typescript@5.8.3)(yaml@2.8.0) + version: 8.5.0(@swc/core@1.3.101(@swc/helpers@0.5.17))(jiti@2.4.2)(postcss@8.5.5)(tsx@4.20.4)(typescript@5.8.3)(yaml@2.8.0) typescript: specifier: ^5.0.0 version: 5.8.3 @@ -875,7 +878,7 @@ importers: version: 6.0.1 tsup: specifier: ^8.0.1 - version: 8.5.0(@swc/core@1.3.101)(jiti@2.4.2)(postcss@8.5.5)(tsx@4.20.4)(typescript@5.8.3)(yaml@2.8.0) + version: 8.5.0(@swc/core@1.3.101(@swc/helpers@0.5.17))(jiti@2.4.2)(postcss@8.5.5)(tsx@4.20.4)(typescript@5.8.3)(yaml@2.8.0) typescript: specifier: ^5.3.0 version: 5.8.3 @@ -3966,13 +3969,6 @@ packages: resolution: {integrity: sha512-S8WRv/PqECEi6x0QJBj0asnAb5GFtJaHlnByxLETLkgJjc76cxMYDH4r9wdbuJ4sjkcbpwP3LPnVzwS+aIjT7g==} engines: {node: '>=18.0.0'} - '@react-email/render@0.0.16': - resolution: {integrity: sha512-wDaMy27xAq1cJHtSFptp0DTKPuV2GYhloqia95ub/DH9Dea1aWYsbdM918MOc/b/HvVS3w1z8DWzfAk13bGStQ==} - engines: {node: '>=18.0.0'} - peerDependencies: - react: ^18.2.0 - react-dom: ^18.2.0 - '@react-email/row@0.0.7': resolution: {integrity: sha512-h7pwrLVGk5CIx7Ai/oPxBgCCAGY7BEpCUQ7FCzi4+eThcs5IdjSwDPefLEkwaFS8KZc56UNwTAH92kNq5B7blg==} engines: {node: '>=18.0.0'} @@ -7320,9 +7316,6 @@ packages: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} engines: {node: '>=4'} - fast-deep-equal@2.0.1: - resolution: {integrity: sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==} - fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -10083,6 +10076,12 @@ packages: react-lifecycles-compat@3.0.4: resolution: {integrity: sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==} + react-markdown@10.1.0: + resolution: {integrity: sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ==} + peerDependencies: + '@types/react': '>=18' + react: '>=18' + react-markdown@9.1.0: resolution: {integrity: sha512-xaijuJB0kzGiUdG7nc2MOMDUDBWPyGAjZtUrow9XxUeua8IqeP+VlIfAZ3bphpcLTnSZXz6z9jcVC/TCwbfgdw==} peerDependencies: @@ -10092,9 +10091,6 @@ packages: react-moveable@0.56.0: resolution: {integrity: sha512-FmJNmIOsOA36mdxbrc/huiE4wuXSRlmon/o+/OrfNhSiYYYL0AV5oObtPluEhb2Yr/7EfYWBHTxF5aWAvjg1SA==} - react-promise-suspense@0.3.4: - resolution: {integrity: sha512-I42jl7L3Ze6kZaq+7zXWSunBa3b1on5yfvUW6Eo/3fFOj6dZ5Bqmcd264nJbTK/gn1HjjILAjSwnZbV4RpSaNQ==} - react-refresh@0.14.2: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} @@ -10359,9 +10355,14 @@ packages: resolution: {integrity: sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==} engines: {node: '>=0.10.5'} - resend@3.5.0: - resolution: {integrity: sha512-bKu4LhXSecP6krvhfDzyDESApYdNfjirD5kykkT1xO0Cj9TKSiGh5Void4pGTs3Am+inSnp4dg0B5XzdwHBJOQ==} + resend@6.0.2: + resolution: {integrity: sha512-um08qWpSVvEVqAePEy/bsa7pqtnJK+qTCZ0Et7YE7xuqM46J0C9gnSbIJKR3LIcRVMgO9jUeot8rH0UI84eqMQ==} engines: {node: '>=18'} + peerDependencies: + '@react-email/render': ^1.1.0 + peerDependenciesMeta: + '@react-email/render': + optional: true resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} @@ -13601,7 +13602,7 @@ snapshots: dependencies: '@floating-ui/dom': 1.7.1 react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react-dom: 18.2.0(react@18.3.1) '@floating-ui/react-dom@2.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -14354,7 +14355,7 @@ snapshots: dependencies: '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react-dom: 18.2.0(react@18.3.1) optionalDependencies: '@types/react': 18.2.47 '@types/react-dom': 18.2.18 @@ -14408,7 +14409,7 @@ snapshots: '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.2.47)(react@18.2.0) '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.2.47)(react@18.2.0) react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react-dom: 18.2.0(react@18.3.1) optionalDependencies: '@types/react': 18.2.47 '@types/react-dom': 18.2.18 @@ -14436,7 +14437,7 @@ snapshots: '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-slot': 1.1.0(@types/react@18.2.47)(react@18.2.0) react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react-dom: 18.2.0(react@18.3.1) optionalDependencies: '@types/react': 18.2.47 '@types/react-dom': 18.2.18 @@ -14569,7 +14570,7 @@ snapshots: '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.2.47)(react@18.2.0) '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.2.47)(react@18.2.0) react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react-dom: 18.2.0(react@18.3.1) optionalDependencies: '@types/react': 18.2.47 '@types/react-dom': 18.2.18 @@ -14634,7 +14635,7 @@ snapshots: '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.2.47)(react@18.2.0) react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react-dom: 18.2.0(react@18.3.1) optionalDependencies: '@types/react': 18.2.47 '@types/react-dom': 18.2.18 @@ -14726,7 +14727,7 @@ snapshots: '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.2.47)(react@18.2.0) aria-hidden: 1.2.6 react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react-dom: 18.2.0(react@18.3.1) react-remove-scroll: 2.5.7(@types/react@18.2.47)(react@18.2.0) optionalDependencies: '@types/react': 18.2.47 @@ -14768,7 +14769,7 @@ snapshots: '@radix-ui/react-use-size': 1.1.0(@types/react@18.2.47)(react@18.2.0) '@radix-ui/rect': 1.1.0 react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react-dom: 18.2.0(react@18.3.1) optionalDependencies: '@types/react': 18.2.47 '@types/react-dom': 18.2.18 @@ -14803,7 +14804,7 @@ snapshots: '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.2.47)(react@18.2.0) react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react-dom: 18.2.0(react@18.3.1) optionalDependencies: '@types/react': 18.2.47 '@types/react-dom': 18.2.18 @@ -14831,7 +14832,7 @@ snapshots: '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.2.47)(react@18.2.0) '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.2.47)(react@18.2.0) react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react-dom: 18.2.0(react@18.3.1) optionalDependencies: '@types/react': 18.2.47 '@types/react-dom': 18.2.18 @@ -14857,7 +14858,7 @@ snapshots: dependencies: '@radix-ui/react-slot': 1.1.0(@types/react@18.2.47)(react@18.2.0) react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react-dom: 18.2.0(react@18.3.1) optionalDependencies: '@types/react': 18.2.47 '@types/react-dom': 18.2.18 @@ -14883,7 +14884,7 @@ snapshots: '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.2.47)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.2.47)(react@18.2.0) react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react-dom: 18.2.0(react@18.3.1) optionalDependencies: '@types/react': 18.2.47 '@types/react-dom': 18.2.18 @@ -15068,7 +15069,7 @@ snapshots: '@radix-ui/react-toggle': 1.1.0(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.2.47)(react@18.2.0) react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react-dom: 18.2.0(react@18.3.1) optionalDependencies: '@types/react': 18.2.47 '@types/react-dom': 18.2.18 @@ -15079,7 +15080,7 @@ snapshots: '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.2.47)(react@18.2.0) react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react-dom: 18.2.0(react@18.3.1) optionalDependencies: '@types/react': 18.2.47 '@types/react-dom': 18.2.18 @@ -15099,7 +15100,7 @@ snapshots: '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.2.47)(react@18.2.0) '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react-dom: 18.2.0(react@18.3.1) optionalDependencies: '@types/react': 18.2.47 '@types/react-dom': 18.2.18 @@ -15251,7 +15252,7 @@ snapshots: dependencies: '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react-dom: 18.2.0(react@18.3.1) optionalDependencies: '@types/react': 18.2.47 '@types/react-dom': 18.2.18 @@ -15367,14 +15368,6 @@ snapshots: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@react-email/render@0.0.16(react-dom@18.2.0(react@18.2.0))(react@18.3.1)': - dependencies: - html-to-text: 9.0.5 - js-beautify: 1.15.4 - react: 18.3.1 - react-dom: 18.2.0(react@18.2.0) - react-promise-suspense: 0.3.4 - '@react-email/row@0.0.7(react@18.3.1)': dependencies: react: 18.3.1 @@ -15406,7 +15399,7 @@ snapshots: transitivePeerDependencies: - encoding - '@remix-run/dev@2.16.7(@remix-run/react@2.16.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(@remix-run/serve@2.16.7(typescript@5.8.3))(@types/node@22.16.0)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0)(tsx@4.20.4)(typescript@5.8.3)(vite@6.3.5(@types/node@22.16.0)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0)(tsx@4.20.4)(yaml@2.8.0))(yaml@2.8.0)': + '@remix-run/dev@2.16.7(@remix-run/react@2.16.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3))(@remix-run/serve@2.16.7(typescript@5.8.3))(@types/node@20.19.7)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0)(tsx@4.20.4)(typescript@5.8.3)(vite@6.3.5(@types/node@20.19.7)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0)(tsx@4.20.4)(yaml@2.8.0))(yaml@2.8.0)': dependencies: '@babel/core': 7.27.4 '@babel/generator': 7.27.5 @@ -15423,7 +15416,7 @@ snapshots: '@remix-run/router': 1.23.0 '@remix-run/server-runtime': 2.16.7(typescript@5.8.3) '@types/mdx': 2.0.13 - '@vanilla-extract/integration': 6.5.0(@types/node@22.16.0)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0) + '@vanilla-extract/integration': 6.5.0(@types/node@20.19.7)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0) arg: 5.0.2 cacache: 17.1.4 chalk: 4.1.2 @@ -15463,12 +15456,12 @@ snapshots: tar-fs: 2.1.3 tsconfig-paths: 4.2.0 valibot: 0.41.0(typescript@5.8.3) - vite-node: 3.2.3(@types/node@22.16.0)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0)(tsx@4.20.4)(yaml@2.8.0) + vite-node: 3.2.3(@types/node@20.19.7)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0)(tsx@4.20.4)(yaml@2.8.0) ws: 7.5.10 optionalDependencies: '@remix-run/serve': 2.16.7(typescript@5.8.3) typescript: 5.8.3 - vite: 6.3.5(@types/node@22.16.0)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0)(tsx@4.20.4)(yaml@2.8.0) + vite: 6.3.5(@types/node@20.19.7)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0)(tsx@4.20.4)(yaml@2.8.0) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -16431,12 +16424,12 @@ snapshots: postcss-selector-parser: 6.0.10 tailwindcss: 4.1.7 - '@tailwindcss/vite@4.1.9(vite@6.3.5(@types/node@22.16.0)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0)(tsx@4.20.4)(yaml@2.8.0))': + '@tailwindcss/vite@4.1.9(vite@6.3.5(@types/node@20.19.7)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0)(tsx@4.20.4)(yaml@2.8.0))': dependencies: '@tailwindcss/node': 4.1.9 '@tailwindcss/oxide': 4.1.9 tailwindcss: 4.1.9 - vite: 6.3.5(@types/node@22.16.0)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0)(tsx@4.20.4)(yaml@2.8.0) + vite: 6.3.5(@types/node@20.19.7)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0)(tsx@4.20.4)(yaml@2.8.0) '@tanstack/react-table@8.21.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -17043,7 +17036,7 @@ snapshots: '@types/mdast@4.0.4': dependencies: - '@types/unist': 2.0.11 + '@types/unist': 3.0.3 '@types/mdurl@2.0.0': {} @@ -17445,7 +17438,7 @@ snapshots: transitivePeerDependencies: - babel-plugin-macros - '@vanilla-extract/integration@6.5.0(@types/node@22.16.0)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0)': + '@vanilla-extract/integration@6.5.0(@types/node@20.19.7)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0)': dependencies: '@babel/core': 7.27.4 '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.4) @@ -17458,8 +17451,8 @@ snapshots: lodash: 4.17.21 mlly: 1.7.4 outdent: 0.8.0 - vite: 5.4.19(@types/node@22.16.0)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0) - vite-node: 1.6.1(@types/node@22.16.0)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0) + vite: 5.4.19(@types/node@20.19.7)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0) + vite-node: 1.6.1(@types/node@20.19.7)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -19701,8 +19694,6 @@ snapshots: iconv-lite: 0.4.24 tmp: 0.0.33 - fast-deep-equal@2.0.1: {} - fast-deep-equal@3.1.3: {} fast-glob@3.3.3: @@ -19850,7 +19841,7 @@ snapshots: optionalDependencies: '@emotion/is-prop-valid': 0.8.8 react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react-dom: 18.2.0(react@18.3.1) framework-utils@1.1.0: {} @@ -21706,7 +21697,7 @@ snapshots: graceful-fs: 4.2.11 postcss: 8.4.31 react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react-dom: 18.2.0(react@18.3.1) styled-jsx: 5.1.1(@babel/core@7.24.5)(react@18.2.0) optionalDependencies: '@next/swc-darwin-arm64': 14.1.4 @@ -22762,6 +22753,12 @@ snapshots: react: 18.2.0 scheduler: 0.23.2 + react-dom@18.2.0(react@18.3.1): + dependencies: + loose-envify: 1.4.0 + react: 18.3.1 + scheduler: 0.23.2 + react-dom@18.3.1(react@18.3.1): dependencies: loose-envify: 1.4.0 @@ -22801,7 +22798,7 @@ snapshots: postcss: 8.4.38 prism-react-renderer: 2.1.0(react@18.2.0) react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react-dom: 18.2.0(react@18.3.1) socket.io: 4.7.3 socket.io-client: 4.7.3 sonner: 1.3.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -22829,6 +22826,24 @@ snapshots: react-lifecycles-compat@3.0.4: {} + react-markdown@10.1.0(@types/react@18.2.69)(react@18.3.1): + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@types/react': 18.2.69 + devlop: 1.1.0 + hast-util-to-jsx-runtime: 2.3.6 + html-url-attributes: 3.0.1 + mdast-util-to-hast: 13.2.0 + react: 18.3.1 + remark-parse: 11.0.0 + remark-rehype: 11.1.2 + unified: 11.0.5 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + transitivePeerDependencies: + - supports-color + react-markdown@9.1.0(@types/react@18.2.69)(react@18.3.1): dependencies: '@types/hast': 3.0.4 @@ -22863,10 +22878,6 @@ snapshots: react-css-styled: 1.1.9 react-selecto: 1.26.3 - react-promise-suspense@0.3.4: - dependencies: - fast-deep-equal: 2.0.1 - react-refresh@0.14.2: {} react-remove-scroll-bar@2.3.8(@types/react@18.2.47)(react@18.2.0): @@ -23185,12 +23196,9 @@ snapshots: requireindex@1.2.0: {} - resend@3.5.0(react-dom@18.2.0(react@18.2.0))(react@18.3.1): - dependencies: - '@react-email/render': 0.0.16(react-dom@18.2.0(react@18.2.0))(react@18.3.1) - transitivePeerDependencies: - - react - - react-dom + resend@6.0.2(@react-email/render@0.0.12): + optionalDependencies: + '@react-email/render': 0.0.12 resolve-from@4.0.0: {} @@ -23612,7 +23620,7 @@ snapshots: sonner@1.3.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react-dom: 18.2.0(react@18.3.1) source-map-js@1.0.2: {} @@ -24141,7 +24149,7 @@ snapshots: tslib@2.8.1: {} - tsup@8.5.0(@swc/core@1.3.101)(jiti@2.4.2)(postcss@8.5.5)(tsx@4.20.4)(typescript@5.8.3)(yaml@2.8.0): + tsup@8.5.0(@swc/core@1.3.101(@swc/helpers@0.5.17))(jiti@2.4.2)(postcss@8.5.5)(tsx@4.20.4)(typescript@5.8.3)(yaml@2.8.0): dependencies: bundle-require: 5.1.0(esbuild@0.25.5) cac: 6.7.14 @@ -24553,13 +24561,13 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-node@1.6.1(@types/node@22.16.0)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0): + vite-node@1.6.1(@types/node@20.19.7)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0): dependencies: cac: 6.7.14 debug: 4.4.1(supports-color@10.0.0) pathe: 1.1.2 picocolors: 1.1.1 - vite: 5.4.19(@types/node@22.16.0)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0) + vite: 5.4.19(@types/node@20.19.7)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0) transitivePeerDependencies: - '@types/node' - less @@ -24571,13 +24579,13 @@ snapshots: - supports-color - terser - vite-node@3.2.3(@types/node@22.16.0)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0)(tsx@4.20.4)(yaml@2.8.0): + vite-node@3.2.3(@types/node@20.19.7)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0)(tsx@4.20.4)(yaml@2.8.0): dependencies: cac: 6.7.14 debug: 4.4.1(supports-color@10.0.0) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 6.3.5(@types/node@22.16.0)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0)(tsx@4.20.4)(yaml@2.8.0) + vite: 6.3.5(@types/node@20.19.7)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0)(tsx@4.20.4)(yaml@2.8.0) transitivePeerDependencies: - '@types/node' - jiti @@ -24592,31 +24600,31 @@ snapshots: - tsx - yaml - vite-tsconfig-paths@4.3.2(typescript@5.8.3)(vite@6.3.5(@types/node@22.16.0)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0)(tsx@4.20.4)(yaml@2.8.0)): + vite-tsconfig-paths@4.3.2(typescript@5.8.3)(vite@6.3.5(@types/node@20.19.7)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0)(tsx@4.20.4)(yaml@2.8.0)): dependencies: debug: 4.4.1(supports-color@10.0.0) globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.8.3) optionalDependencies: - vite: 6.3.5(@types/node@22.16.0)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0)(tsx@4.20.4)(yaml@2.8.0) + vite: 6.3.5(@types/node@20.19.7)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0)(tsx@4.20.4)(yaml@2.8.0) transitivePeerDependencies: - supports-color - typescript - vite@5.4.19(@types/node@22.16.0)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0): + vite@5.4.19(@types/node@20.19.7)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0): dependencies: esbuild: 0.21.5 postcss: 8.5.5 rollup: 4.43.0 optionalDependencies: - '@types/node': 22.16.0 + '@types/node': 20.19.7 fsevents: 2.3.3 less: 4.4.0 lightningcss: 1.30.1 sass: 1.89.2 terser: 5.42.0 - vite@6.3.5(@types/node@22.16.0)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0)(tsx@4.20.4)(yaml@2.8.0): + vite@6.3.5(@types/node@20.19.7)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.42.0)(tsx@4.20.4)(yaml@2.8.0): dependencies: esbuild: 0.25.5 fdir: 6.4.6(picomatch@4.0.2) @@ -24625,7 +24633,7 @@ snapshots: rollup: 4.43.0 tinyglobby: 0.2.14 optionalDependencies: - '@types/node': 22.16.0 + '@types/node': 20.19.7 fsevents: 2.3.3 jiti: 2.4.2 less: 4.4.0