diff --git a/apps/web/src/actions/evaluationResults/computeEvaluationResultsCountersAction.ts b/apps/web/src/actions/evaluationResults/computeEvaluationResultsCountersAction.ts new file mode 100644 index 000000000..1f1a5e3d1 --- /dev/null +++ b/apps/web/src/actions/evaluationResults/computeEvaluationResultsCountersAction.ts @@ -0,0 +1,36 @@ +'use server' + +import { EvaluationsRepository } from '@latitude-data/core/repositories' +import { getEvaluationTotalsQuery } from '@latitude-data/core/services/evaluationResults/index' +import { findCommitCached } from '$/app/(private)/_data-access' +import { z } from 'zod' + +import { withDocument } from '../procedures' + +export const computeEvaluationResultsCountersAction = withDocument + .createServerAction() + .input( + z.object({ + commitUuid: z.string(), + documentUuid: z.string(), + evaluationId: z.number(), + }), + ) + .handler(async ({ input, ctx }) => { + const { evaluationId, documentUuid } = input + const { workspace } = ctx + const evaluationScope = new EvaluationsRepository(workspace.id) + const commit = await findCommitCached({ + projectId: ctx.project.id, + uuid: input.commitUuid, + }) + const evaluation = await evaluationScope + .find(evaluationId) + .then((r) => r.unwrap()) + return getEvaluationTotalsQuery({ + workspaceId: workspace.id, + commit, + evaluation, + documentUuid, + }) + }) diff --git a/apps/web/src/actions/evaluationResults/computeEvaluationResultsMeanValueAction.ts b/apps/web/src/actions/evaluationResults/computeEvaluationResultsMeanValueAction.ts new file mode 100644 index 000000000..727ceab99 --- /dev/null +++ b/apps/web/src/actions/evaluationResults/computeEvaluationResultsMeanValueAction.ts @@ -0,0 +1,36 @@ +'use server' + +import { EvaluationsRepository } from '@latitude-data/core/repositories' +import { getEvaluationMeanValueQuery } from '@latitude-data/core/services/evaluationResults/index' +import { findCommitCached } from '$/app/(private)/_data-access' +import { z } from 'zod' + +import { withDocument } from '../procedures' + +export const computeEvaluationResultsMeanValueAction = withDocument + .createServerAction() + .input( + z.object({ + commitUuid: z.string(), + documentUuid: z.string(), + evaluationId: z.number(), + }), + ) + .handler(async ({ input, ctx }) => { + const { evaluationId, documentUuid } = input + const { workspace } = ctx + const evaluationScope = new EvaluationsRepository(workspace.id) + const commit = await findCommitCached({ + projectId: ctx.project.id, + uuid: input.commitUuid, + }) + const evaluation = await evaluationScope + .find(evaluationId) + .then((r) => r.unwrap()) + return getEvaluationMeanValueQuery({ + workspaceId: workspace.id, + commit, + evaluation, + documentUuid, + }) + }) diff --git a/apps/web/src/actions/evaluationResults/computeEvaluationResultsModalValueAction.ts b/apps/web/src/actions/evaluationResults/computeEvaluationResultsModalValueAction.ts new file mode 100644 index 000000000..7e5ef8243 --- /dev/null +++ b/apps/web/src/actions/evaluationResults/computeEvaluationResultsModalValueAction.ts @@ -0,0 +1,36 @@ +'use server' + +import { EvaluationsRepository } from '@latitude-data/core/repositories' +import { getEvaluationModalValueQuery } from '@latitude-data/core/services/evaluationResults/index' +import { findCommitCached } from '$/app/(private)/_data-access' +import { z } from 'zod' + +import { withDocument } from '../procedures' + +export const computeEvaluationResultsModalValueAction = withDocument + .createServerAction() + .input( + z.object({ + commitUuid: z.string(), + documentUuid: z.string(), + evaluationId: z.number(), + }), + ) + .handler(async ({ input, ctx }) => { + const { evaluationId, documentUuid } = input + const { workspace } = ctx + const evaluationScope = new EvaluationsRepository(workspace.id) + const commit = await findCommitCached({ + projectId: ctx.project.id, + uuid: input.commitUuid, + }) + const evaluation = await evaluationScope + .find(evaluationId) + .then((r) => r.unwrap()) + return getEvaluationModalValueQuery({ + workspaceId: workspace.id, + commit, + evaluation, + documentUuid, + }) + }) diff --git a/apps/web/src/actions/evaluations/computeEvaluationResultsWithMetadata.ts b/apps/web/src/actions/evaluations/computeEvaluationResultsWithMetadata.ts index 202acd3b6..1520853b9 100644 --- a/apps/web/src/actions/evaluations/computeEvaluationResultsWithMetadata.ts +++ b/apps/web/src/actions/evaluations/computeEvaluationResultsWithMetadata.ts @@ -35,5 +35,6 @@ export const computeEvaluationResultsWithMetadataAction = withProject evaluation, documentUuid, draft: commit, + limit: 1000, }).then((r) => r.unwrap()) }) diff --git a/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/_components/DocumentEditor/Editor/Playground/Chat.tsx b/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/_components/DocumentEditor/Editor/Playground/Chat.tsx index 488e8e15e..59fd8a639 100644 --- a/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/_components/DocumentEditor/Editor/Playground/Chat.tsx +++ b/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/_components/DocumentEditor/Editor/Playground/Chat.tsx @@ -94,8 +94,6 @@ export default function Chat({ for await (const serverEvent of readStreamableValue(output)) { if (!serverEvent) continue - console.log('serverEvent', serverEvent) - const { event, data } = serverEvent const hasMessages = 'messages' in data if (hasMessages) { diff --git a/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/evaluations/[evaluationId]/_components/ClientContainer/index.tsx b/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/evaluations/[evaluationId]/_components/ClientContainer/index.tsx deleted file mode 100644 index bf009486d..000000000 --- a/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/evaluations/[evaluationId]/_components/ClientContainer/index.tsx +++ /dev/null @@ -1,64 +0,0 @@ -'use client' - -import { useEffect } from 'react' - -import { EvaluationDto } from '@latitude-data/core/browser' -import { EvaluationResultWithMetadata } from '@latitude-data/core/repositories' -import { - useCurrentCommit, - useCurrentDocument, - useCurrentProject, -} from '@latitude-data/web-ui' -import useEvaluationResultsWithMetadata from '$/stores/evaluationResultsWithMetadata' - -import { EvaluationResults } from '../EvaluationResults' -import { MetricsSummary } from '../MetricsSummary' - -const FIVE_SECONDS = 5000 - -export default function ClientContainer({ - documentUuid, - evaluation, - evaluationResults: serverData, -}: { - documentUuid: string - evaluation: EvaluationDto - evaluationResults: EvaluationResultWithMetadata[] -}) { - const document = useCurrentDocument() - const { project } = useCurrentProject() - const { commit } = useCurrentCommit() - const { data: evaluationResults, mutate } = useEvaluationResultsWithMetadata( - { - evaluationId: evaluation.id, - documentUuid: document.documentUuid, - commitUuid: commit.uuid, - projectId: project.id, - }, - { - fallbackData: serverData, - }, - ) - - useEffect(() => { - const interval = setInterval(() => { - mutate() - }, FIVE_SECONDS) - - return () => clearInterval(interval) - }, [mutate]) - - return ( - <> - - - - ) -} diff --git a/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/evaluations/[evaluationId]/_components/EvaluationResults/index.tsx b/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/evaluations/[evaluationId]/_components/EvaluationResults/index.tsx index d25651dc5..98ad2a8d5 100644 --- a/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/evaluations/[evaluationId]/_components/EvaluationResults/index.tsx +++ b/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/evaluations/[evaluationId]/_components/EvaluationResults/index.tsx @@ -3,7 +3,7 @@ import { useState } from 'react' import { EvaluationDto } from '@latitude-data/core/browser' -import { EvaluationResultWithMetadata } from '@latitude-data/core/repositories' +import { type EvaluationResultWithMetadata } from '@latitude-data/core/repositories' import { TableBlankSlate, Text, @@ -12,6 +12,7 @@ import { useCurrentProject, } from '@latitude-data/web-ui' import { DocumentRoutes, ROUTES } from '$/services/routes' +import useEvaluationResultsWithMetadata from '$/stores/evaluationResultsWithMetadata' import { useProviderLog } from '$/stores/providerLogs' import Link from 'next/link' @@ -21,7 +22,7 @@ import { EvaluationStatusBanner } from './EvaluationStatusBanner' export function EvaluationResults({ evaluation, - evaluationResults, + evaluationResults: serverData, }: { evaluation: EvaluationDto evaluationResults: EvaluationResultWithMetadata[] @@ -33,6 +34,17 @@ export function EvaluationResults({ EvaluationResultWithMetadata | undefined >(undefined) const { data: providerLog } = useProviderLog(selectedResult?.providerLogId) + const { data: evaluationResults } = useEvaluationResultsWithMetadata( + { + evaluationId: evaluation.id, + documentUuid: document.documentUuid, + commitUuid: commit.uuid, + projectId: project.id, + }, + { + fallbackData: serverData, + }, + ) return (
Evaluation Results diff --git a/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/evaluations/[evaluationId]/_components/MetricsSummary/BigNumberPanels/MeanValuePanel/index.tsx b/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/evaluations/[evaluationId]/_components/MetricsSummary/BigNumberPanels/MeanValuePanel/index.tsx new file mode 100644 index 000000000..20eeaea16 --- /dev/null +++ b/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/evaluations/[evaluationId]/_components/MetricsSummary/BigNumberPanels/MeanValuePanel/index.tsx @@ -0,0 +1,53 @@ +'use client' + +import { Evaluation, EvaluationMeanValue } from '@latitude-data/core/browser' +import { RangeBadge } from '@latitude-data/web-ui' +import useEvaluationResultsMeanValue from '$/stores/evaluationResultCharts/evaluationResultsMeanValue' + +import Panel from '../Panel' + +export default function MeanValuePanel({ + mean, + commitUuid, + documentUuid, + evaluation, +}: { + commitUuid: string + documentUuid: string + evaluation: Evaluation + mean: EvaluationMeanValue +}) { + const { data } = useEvaluationResultsMeanValue( + { + commitUuid, + documentUuid, + evaluationId: evaluation.id, + }, + { + revalidateOnFocus: true, + revalidateOnMount: false, + revalidateOnReconnect: false, + refreshWhenOffline: false, + refreshWhenHidden: false, + refreshInterval: 0, + fallbackData: mean, + }, + ) + const config = evaluation.configuration.detail! + const defaultMinValue = config.range.from + const defaultMaxValue = config.range.to + return ( + +
+ +
+
+ ) +} diff --git a/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/evaluations/[evaluationId]/_components/MetricsSummary/BigNumberPanels/ModalValuePanel/index.tsx b/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/evaluations/[evaluationId]/_components/MetricsSummary/BigNumberPanels/ModalValuePanel/index.tsx new file mode 100644 index 000000000..230ba388f --- /dev/null +++ b/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/evaluations/[evaluationId]/_components/MetricsSummary/BigNumberPanels/ModalValuePanel/index.tsx @@ -0,0 +1,48 @@ +'use client' + +import { EvaluationModalValue } from '@latitude-data/core/browser' +import { Text } from '@latitude-data/web-ui' +import useEvaluationResultsModalValue from '$/stores/evaluationResultCharts/evaluationResultsModalValue' + +import Panel from '../Panel' + +export default function ModalValuePanel({ + modal, + commitUuid, + documentUuid, + evaluationId, +}: { + commitUuid: string + documentUuid: string + evaluationId: number + modal: EvaluationModalValue +}) { + const { data } = useEvaluationResultsModalValue( + { + commitUuid, + documentUuid, + evaluationId, + }, + { + revalidateOnFocus: true, + revalidateOnMount: false, + revalidateOnReconnect: false, + refreshWhenOffline: false, + refreshWhenHidden: false, + refreshInterval: 0, + fallbackData: modal, + }, + ) + return ( + + {data?.mostCommon ?? '-'} + + {' '} + It appeared ({data?.percentage ?? '0'}%) + + + ) +} diff --git a/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/evaluations/[evaluationId]/_components/MetricsSummary/BigNumberPanels/Panel/index.tsx b/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/evaluations/[evaluationId]/_components/MetricsSummary/BigNumberPanels/Panel/index.tsx new file mode 100644 index 000000000..68d3a8288 --- /dev/null +++ b/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/evaluations/[evaluationId]/_components/MetricsSummary/BigNumberPanels/Panel/index.tsx @@ -0,0 +1,52 @@ +'use client' + +import { ReactNode, useCallback, useState } from 'react' + +import { Icon, Text, Tooltip } from '@latitude-data/web-ui' + +export default function Panel({ + label, + value, + additionalInfo, + children, +}: { + label: string + value?: string + additionalInfo?: string + children?: ReactNode +}) { + const [open, setOpen] = useState(false) + // On hover panel show tooltip with additional info + const onMouseEnter = useCallback(() => { + if (!additionalInfo) return + + setOpen(true) + }, [additionalInfo]) + const onMouseLeave = useCallback(() => { + setOpen(false) + }, []) + return ( + +
+ {label} + {additionalInfo && ( + + )} +
+ {value && {value}} + {children} +
+ } + > + {additionalInfo} + + ) +} diff --git a/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/evaluations/[evaluationId]/_components/MetricsSummary/BigNumberPanels/TotalsPanels/index.tsx b/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/evaluations/[evaluationId]/_components/MetricsSummary/BigNumberPanels/TotalsPanels/index.tsx new file mode 100644 index 000000000..f143460d9 --- /dev/null +++ b/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/evaluations/[evaluationId]/_components/MetricsSummary/BigNumberPanels/TotalsPanels/index.tsx @@ -0,0 +1,47 @@ +'use client' + +import { EvaluationAggregationTotals } from '@latitude-data/core/browser' +import { formatCostInMillicents } from '$/app/_lib/formatUtils' +import useEvaluationResultsCounters from '$/stores/evaluationResultCharts/evaluationResultsCounters' + +import Panel from '../Panel' + +export default function TotalsPanels({ + aggregation, + commitUuid, + documentUuid, + evaluationId, +}: { + commitUuid: string + documentUuid: string + evaluationId: number + aggregation: EvaluationAggregationTotals +}) { + const { data } = useEvaluationResultsCounters( + { + commitUuid, + documentUuid, + evaluationId, + }, + { + revalidateOnFocus: true, + revalidateOnMount: false, + revalidateOnReconnect: false, + refreshWhenOffline: false, + refreshWhenHidden: false, + refreshInterval: 0, + fallbackData: aggregation, + }, + ) + const cost = + typeof data.costInMillicents === 'string' + ? '-' + : formatCostInMillicents(data.costInMillicents) + return ( + <> + + + + + ) +} diff --git a/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/evaluations/[evaluationId]/_components/MetricsSummary/BigNumberPanels/index.tsx b/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/evaluations/[evaluationId]/_components/MetricsSummary/BigNumberPanels/index.tsx index 400562f11..92dd0fa61 100644 --- a/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/evaluations/[evaluationId]/_components/MetricsSummary/BigNumberPanels/index.tsx +++ b/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/evaluations/[evaluationId]/_components/MetricsSummary/BigNumberPanels/index.tsx @@ -1,176 +1,119 @@ -import { ReactNode, useMemo } from 'react' - import { Commit, Evaluation, EvaluationResultableType, + Workspace, } from '@latitude-data/core/browser' -import { EvaluationResultWithMetadata } from '@latitude-data/core/repositories' import { - Icon, - RangeBadge, - Skeleton, - Text, - Tooltip, -} from '@latitude-data/web-ui' -import { formatCostInMillicents } from '$/app/_lib/formatUtils' + getEvaluationMeanValueQuery, + getEvaluationModalValueQuery, + getEvaluationTotalsQuery, +} from '@latitude-data/core/services/evaluationResults/index' + +import MeanValuePanel from './MeanValuePanel' +import ModalValuePanel from './ModalValuePanel' +import TotalsPanels from './TotalsPanels' -function Panel({ - label, - value, - additionalInfo, - children, +async function MeanPanel({ + workspaceId, + evaluation, + documentUuid, + commit, }: { - label: string - value?: string - additionalInfo?: string - children?: ReactNode + workspaceId: number + evaluation: Evaluation + documentUuid: string + commit: Commit }) { - const panel = ( -
-
- {label} - {additionalInfo && ( - - )} -
- {value && {value}} - {children} -
- ) - - if (additionalInfo) { - return ( - - {additionalInfo} - - ) - } + const mean = await getEvaluationMeanValueQuery({ + workspaceId, + evaluation, + documentUuid, + commit, + }) - return panel + return ( + + ) } -function TypeSpecificPanel({ +async function ModalPanel({ + workspaceId, evaluation, - evaluationResults, + documentUuid, commit, }: { + workspaceId: number evaluation: Evaluation - evaluationResults: EvaluationResultWithMetadata[] - commit?: Commit + documentUuid: string + commit: Commit }) { - const label = - evaluation.configuration.type == EvaluationResultableType.Number - ? 'Current average' - : 'Current modal' - - const additionalInfo = - evaluation.configuration.type == EvaluationResultableType.Number - ? 'The mean value of all the evaluated results from the current version.' - : 'The most common result from the current version.' - - if (!commit) { - return ( - - - - ) - } - - const value = useMemo(() => { - const resultsFromCommit = evaluationResults.filter( - (e) => e.commit.id === commit.id, - ) - - if (resultsFromCommit.length == 0) { - return No data - } - - if (evaluation.configuration.type == EvaluationResultableType.Number) { - const { to: maxValue, from: minValue } = - evaluation.configuration.detail!.range - const sumValue = resultsFromCommit.reduce((acc, result) => { - return acc + Number(result.result) - }, 0) - - const meanValue = sumValue / resultsFromCommit.length - - return ( -
- -
- ) - } - - const resultCounts = resultsFromCommit.reduce( - (acc, result) => { - const value = result.result as string - if (!acc[value]) { - acc[value] = 0 - } - acc[value] += 1 - return acc - }, - {} as Record, - ) - - const mostCommonResult = Object.keys(resultCounts).reduce((a, b) => - resultCounts[a]! > resultCounts[b]! ? a : b, - ) - - const resultPresence = - (resultCounts[mostCommonResult]! / resultsFromCommit.length) * 100 - - return ( - <> - {mostCommonResult} - ({resultPresence} %) - - ) - }, [evaluation, evaluationResults, commit]) - + const modal = await getEvaluationModalValueQuery({ + workspaceId, + evaluation, + documentUuid, + commit, + }) return ( - - {value} - + ) } -export function BigNumberPanels({ - evaluation, - evaluationResults, +export async function BigNumberPanels({ + workspace, commit, + evaluation, + documentUuid, }: { + workspace: Workspace + commit: Commit evaluation: Evaluation - evaluationResults: EvaluationResultWithMetadata[] - commit?: Commit + documentUuid: string }) { - const totalCost = useMemo(() => { - return evaluationResults.reduce((acc, result) => { - return acc + (result.costInMillicents ?? 0) - }, 0) - }, [evaluationResults]) - - const totalTokens = useMemo(() => { - return evaluationResults.reduce((acc, result) => { - return acc + (result.tokens ?? 0) - }, 0) - }, [evaluationResults]) - + const aggregationTotals = await getEvaluationTotalsQuery({ + workspaceId: workspace.id, + commit, + evaluation, + documentUuid, + }) + const isNumeric = + evaluation.configuration.type == EvaluationResultableType.Number return (
- - - - + + {isNumeric && ( + + )} + + {!isNumeric && ( + + )}
) } diff --git a/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/evaluations/[evaluationId]/_components/MetricsSummary/Charts/ChartContainer.tsx b/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/evaluations/[evaluationId]/_components/MetricsSummary/Charts/ChartContainer.tsx index 2327a0765..1f348e320 100644 --- a/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/evaluations/[evaluationId]/_components/MetricsSummary/Charts/ChartContainer.tsx +++ b/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/evaluations/[evaluationId]/_components/MetricsSummary/Charts/ChartContainer.tsx @@ -16,7 +16,7 @@ export function ChartWrapper({ return (
- ) - } + const isNumerical = + evaluation.configuration.type === EvaluationResultableType.Number - return null + if (!isNumerical) return null + + return } diff --git a/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/evaluations/[evaluationId]/_components/MetricsSummary/index.tsx b/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/evaluations/[evaluationId]/_components/MetricsSummary/index.tsx index 909f97b92..e3b3a16b4 100644 --- a/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/evaluations/[evaluationId]/_components/MetricsSummary/index.tsx +++ b/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/evaluations/[evaluationId]/_components/MetricsSummary/index.tsx @@ -1,34 +1,31 @@ -'use client' - -import { Commit, Evaluation } from '@latitude-data/core/browser' -import { EvaluationResultWithMetadata } from '@latitude-data/core/repositories' -import { useCurrentCommit } from '@latitude-data/web-ui' +import { Commit, Evaluation, Workspace } from '@latitude-data/core/browser' import { BigNumberPanels } from './BigNumberPanels' import { EvaluationResultsCharts } from './Charts' export function MetricsSummary({ + workspace, + commit, evaluation, documentUuid, - evaluationResults, }: { + workspace: Workspace + commit: Commit evaluation: Evaluation documentUuid: string - evaluationResults: EvaluationResultWithMetadata[] }) { - const { commit } = useCurrentCommit() - return (
-
+
diff --git a/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/evaluations/[evaluationId]/layout.tsx b/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/evaluations/[evaluationId]/layout.tsx index 6aa9b4084..7d2a50212 100644 --- a/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/evaluations/[evaluationId]/layout.tsx +++ b/apps/web/src/app/(private)/projects/[projectId]/versions/[commitUuid]/documents/[documentUuid]/evaluations/[evaluationId]/layout.tsx @@ -1,5 +1,6 @@ import { ReactNode } from 'react' +import { EvaluationResultableType } from '@latitude-data/core/browser' import { EvaluationsRepository } from '@latitude-data/core/repositories' import { computeEvaluationResultsWithMetadata } from '@latitude-data/core/services/evaluationResults/computeEvaluationResultsWithMetadata' import { TableWithHeader, Text } from '@latitude-data/web-ui' @@ -10,8 +11,14 @@ import { getCurrentUser } from '$/services/auth/getCurrentUser' import { ROUTES } from '$/services/routes' import { Actions } from './_components/Actions' -import ClientContainer from './_components/ClientContainer' +import { EvaluationResults } from './_components/EvaluationResults' +import { MetricsSummary } from './_components/MetricsSummary' +const TYPE_TEXT: Record = { + [EvaluationResultableType.Text]: 'Text', + [EvaluationResultableType.Number]: 'Numerical', + [EvaluationResultableType.Boolean]: 'Boolean', +} export default async function ConnectedEvaluationLayout({ params, children, @@ -34,6 +41,7 @@ export default async function ConnectedEvaluationLayout({ projectId: Number(params.projectId), uuid: params.commitUuid, }) + const evaluationResults = await computeEvaluationResultsWithMetadata({ workspaceId: evaluation.workspaceId, evaluation, @@ -64,7 +72,16 @@ export default async function ConnectedEvaluationLayout({ /> ), }, - { name: {evaluation.name} }, + { + name: ( +
+ {evaluation.name} + + {TYPE_TEXT[evaluation.configuration.type]} + +
+ ), + }, ]} /> } @@ -77,10 +94,14 @@ export default async function ConnectedEvaluationLayout({ /> } /> - - +
diff --git a/apps/web/src/components/BreadcrumbLink/index.tsx b/apps/web/src/components/BreadcrumbLink/index.tsx index f9fc751a1..3948fcb60 100644 --- a/apps/web/src/components/BreadcrumbLink/index.tsx +++ b/apps/web/src/components/BreadcrumbLink/index.tsx @@ -13,7 +13,7 @@ export default function BreadcrumbLink({ return ( {showBackIcon && } - {name} + {name} ) } diff --git a/apps/web/src/stores/evaluationResultCharts/evaluationResultsCounters.ts b/apps/web/src/stores/evaluationResultCharts/evaluationResultsCounters.ts new file mode 100644 index 000000000..456a7fa47 --- /dev/null +++ b/apps/web/src/stores/evaluationResultCharts/evaluationResultsCounters.ts @@ -0,0 +1,46 @@ +import { useCurrentProject } from '@latitude-data/web-ui' +import { computeEvaluationResultsCountersAction } from '$/actions/evaluationResults/computeEvaluationResultsCountersAction' +import useSWR, { SWRConfiguration } from 'swr' + +export default function useEvaluationResultsCounters( + { + commitUuid, + documentUuid, + evaluationId, + }: { + commitUuid: string + documentUuid: string + evaluationId: number + }, + opts: SWRConfiguration = {}, +) { + const { project } = useCurrentProject() + const { data, isLoading, error, mutate } = useSWR( + ['evaluationResultsCounters', commitUuid, documentUuid, evaluationId], + async () => { + const [data, error] = await computeEvaluationResultsCountersAction({ + projectId: project.id, + commitUuid, + documentUuid, + evaluationId, + }) + + if (error) + return { + totalCount: '-', + costInMillicents: '-', + tokens: '-', + } + + return data + }, + opts, + ) + + return { + data: data ?? { totalCount: '-', costInMillicents: '-', tokens: '-' }, + isLoading, + error, + refetch: mutate, + } +} diff --git a/apps/web/src/stores/evaluationResultCharts/evaluationResultsMeanValue.ts b/apps/web/src/stores/evaluationResultCharts/evaluationResultsMeanValue.ts new file mode 100644 index 000000000..8e837d005 --- /dev/null +++ b/apps/web/src/stores/evaluationResultCharts/evaluationResultsMeanValue.ts @@ -0,0 +1,41 @@ +import { useCurrentProject } from '@latitude-data/web-ui' +import { computeEvaluationResultsMeanValueAction } from '$/actions/evaluationResults/computeEvaluationResultsMeanValueAction' +import useSWR, { SWRConfiguration } from 'swr' + +export default function useEvaluationResultsMeanValue( + { + commitUuid, + documentUuid, + evaluationId, + }: { + commitUuid: string + documentUuid: string + evaluationId: number + }, + opts: SWRConfiguration = {}, +) { + const { project } = useCurrentProject() + const { data, isLoading, error, mutate } = useSWR( + ['evaluationResultsMeanQuery', commitUuid, documentUuid, evaluationId], + async () => { + const [data, error] = await computeEvaluationResultsMeanValueAction({ + projectId: project.id, + commitUuid, + documentUuid, + evaluationId, + }) + + if (error) null + + return data + }, + opts, + ) + + return { + data, + isLoading, + error, + refetch: mutate, + } +} diff --git a/apps/web/src/stores/evaluationResultCharts/evaluationResultsModalValue.ts b/apps/web/src/stores/evaluationResultCharts/evaluationResultsModalValue.ts new file mode 100644 index 000000000..1b51b168f --- /dev/null +++ b/apps/web/src/stores/evaluationResultCharts/evaluationResultsModalValue.ts @@ -0,0 +1,41 @@ +import { useCurrentProject } from '@latitude-data/web-ui' +import { computeEvaluationResultsModalValueAction } from '$/actions/evaluationResults/computeEvaluationResultsModalValueAction' +import useSWR, { SWRConfiguration } from 'swr' + +export default function useEvaluationResultsModalValue( + { + commitUuid, + documentUuid, + evaluationId, + }: { + commitUuid: string + documentUuid: string + evaluationId: number + }, + opts: SWRConfiguration = {}, +) { + const { project } = useCurrentProject() + const { data, isLoading, error, mutate } = useSWR( + ['evaluationResultsModalQuery', commitUuid, documentUuid, evaluationId], + async () => { + const [data, error] = await computeEvaluationResultsModalValueAction({ + projectId: project.id, + commitUuid, + documentUuid, + evaluationId, + }) + + if (error) null + + return data + }, + opts, + ) + + return { + data, + isLoading, + error, + refetch: mutate, + } +} diff --git a/packages/core/src/constants.ts b/packages/core/src/constants.ts index d4e7a40af..cd326cc54 100644 --- a/packages/core/src/constants.ts +++ b/packages/core/src/constants.ts @@ -136,3 +136,19 @@ export enum EvaluationResultableType { Text = 'evaluation_resultable_texts', Number = 'evaluation_resultable_numbers', } + +export type EvaluationAggregationTotals = { + tokens: number + costInMillicents: number + totalCount: number +} +export type EvaluationModalValue = { + mostCommon: string + percentage: number +} + +export type EvaluationMeanValue = { + minValue: number + maxValue: number + meanValue: number +} diff --git a/packages/core/src/services/evaluationResults/aggregations/countersQuery.test.ts b/packages/core/src/services/evaluationResults/aggregations/countersQuery.test.ts new file mode 100644 index 000000000..81bf71adf --- /dev/null +++ b/packages/core/src/services/evaluationResults/aggregations/countersQuery.test.ts @@ -0,0 +1,182 @@ +import { beforeEach, describe, expect, it } from 'vitest' + +import { + Commit, + DocumentVersion, + Project, + ProviderApiKey, + User, + Workspace, +} from '../../../browser' +import { database } from '../../../client' +import { EvaluationResultableType } from '../../../constants' +import { mergeCommit } from '../../../services/commits' +import * as factories from '../../../tests/factories' +import { getEvaluationTotalsQuery } from './countersQuery' +import { getEvaluationMeanValueQuery } from './meanValueQuery' +import { getEvaluationModalValueQuery } from './modalValueQuery' + +let workspace: Workspace +let user: User +let project: Project +let provider: ProviderApiKey +let evaluation: Awaited> +let commit: Commit +let documentVersion: DocumentVersion + +describe('evaluation results aggregations', () => { + beforeEach(async () => { + const basic = await factories.createProject() + workspace = basic.workspace + user = basic.user + project = basic.project + provider = basic.providers[0]! + documentVersion = basic.documents[0]! + + const { commit: draft } = await factories.createDraft({ project, user }) + const doc = await factories.createDocumentVersion({ + commit: draft, + path: 'folder1/doc1', + content: factories.helpers.createPrompt({ provider }), + }) + documentVersion = doc.documentVersion + + commit = await mergeCommit(draft).then((r) => r.unwrap()) + }) + + describe('numeric evaluations', () => { + beforeEach(async () => { + evaluation = await factories.createLlmAsJudgeEvaluation({ + workspace, + prompt: factories.helpers.createPrompt({ provider }), + configuration: { + type: EvaluationResultableType.Number, + detail: { + range: { from: 0, to: 100 }, + }, + }, + }) + const { documentLog: log1 } = await factories.createDocumentLog({ + document: documentVersion, + commit, + }) + await factories.createEvaluationResult({ + documentLog: log1, + evaluation, + stepCosts: [ + { + costInMillicents: 5, + promptTokens: 3, + completionTokens: 2, + }, + ], + }) + const { documentLog: log2 } = await factories.createDocumentLog({ + document: documentVersion, + commit, + }) + await factories.createEvaluationResult({ + documentLog: log2, + evaluation, + stepCosts: [ + { + costInMillicents: 6, + promptTokens: 4, + completionTokens: 4, + }, + ], + }) + }) + + it('aggregate counters for evaluation', async () => { + const result = await getEvaluationTotalsQuery({ + workspaceId: workspace.id, + documentUuid: documentVersion.documentUuid, + evaluation, + commit, + }) + + expect(result).toEqual({ + costInMillicents: 11, + tokens: 13, + totalCount: 2, + }) + }) + + it('mean aggregation', async () => { + const evalResults = + await database.query.evaluationResultableNumbers.findMany({ + columns: { result: true }, + }) + const result = await getEvaluationMeanValueQuery({ + workspaceId: workspace.id, + documentUuid: documentVersion.documentUuid, + evaluation, + commit, + }) + + const expectedMean = + evalResults.reduce((acc, result) => { + return acc + Number(result.result) + }, 0) / evalResults.length + expect(result).toEqual({ + maxValue: 100, + meanValue: expectedMean, + minValue: 0, + }) + }) + }) + + describe('text evaluations', () => { + beforeEach(async () => { + evaluation = await factories.createLlmAsJudgeEvaluation({ + workspace, + prompt: factories.helpers.createPrompt({ provider }), + configuration: { + type: EvaluationResultableType.Text, + }, + }) + const { documentLog: log1 } = await factories.createDocumentLog({ + document: documentVersion, + commit, + }) + await factories.createEvaluationResult({ + result: 'apple', + documentLog: log1, + evaluation, + }) + const { documentLog: log2 } = await factories.createDocumentLog({ + document: documentVersion, + commit, + }) + await factories.createEvaluationResult({ + result: 'apple', + documentLog: log2, + evaluation, + }) + + const { documentLog: log3 } = await factories.createDocumentLog({ + document: documentVersion, + commit, + }) + await factories.createEvaluationResult({ + result: 'orange', + documentLog: log3, + evaluation, + }) + }) + + it('modal aggregation', async () => { + const result = await getEvaluationModalValueQuery({ + workspaceId: workspace.id, + documentUuid: documentVersion.documentUuid, + evaluation, + commit, + }) + expect(result).toEqual({ + mostCommon: 'apple', + percentage: 66.65, + }) + }) + }) +}) diff --git a/packages/core/src/services/evaluationResults/aggregations/countersQuery.ts b/packages/core/src/services/evaluationResults/aggregations/countersQuery.ts new file mode 100644 index 000000000..2a9b115fe --- /dev/null +++ b/packages/core/src/services/evaluationResults/aggregations/countersQuery.ts @@ -0,0 +1,85 @@ +import { and, count, eq, sum } from 'drizzle-orm' + +import { getCommitFilter } from '../_createEvaluationResultQuery' +import { Commit, Evaluation } from '../../../browser' +import { database } from '../../../client' +import { EvaluationResultsRepository } from '../../../repositories' +import { DocumentLogsRepository } from '../../../repositories/documentLogsRepository' +import { commits, providerLogs } from '../../../schema' + +export async function getEvaluationTotalsQuery( + { + workspaceId, + evaluation, + documentUuid, + commit, + }: { + workspaceId: number + evaluation: Evaluation + documentUuid: string + commit: Commit + }, + db = database, +) { + const { scope: evaluationResultsScope } = new EvaluationResultsRepository( + workspaceId, + db, + ) + + const documentLogsRepo = new DocumentLogsRepository(workspaceId, db) + const documentLogsScope = documentLogsRepo.scope + + const result = await db + .select({ + tokens: sum(providerLogs.tokens).mapWith(Number).as('tokens'), + costInMillicents: sum(providerLogs.costInMillicents) + .mapWith(Number) + .as('cost_in_millicents'), + }) + .from(evaluationResultsScope) + .innerJoin( + documentLogsScope, + eq(documentLogsScope.id, evaluationResultsScope.documentLogId), + ) + .innerJoin( + providerLogs, + eq(providerLogs.id, evaluationResultsScope.providerLogId), + ) + .where( + and( + eq(evaluationResultsScope.evaluationId, evaluation.id), + eq(documentLogsScope.documentUuid, documentUuid), + ), + ) + .limit(1) + + const resultCount = await db + .select({ + totalCount: count(evaluationResultsScope.id), + }) + .from(evaluationResultsScope) + .innerJoin( + documentLogsScope, + eq(documentLogsScope.id, evaluationResultsScope.documentLogId), + ) + .innerJoin(commits, eq(commits.id, documentLogsScope.commitId)) + .where( + and( + eq(evaluationResultsScope.evaluationId, evaluation.id), + eq(documentLogsScope.documentUuid, documentUuid), + getCommitFilter(commit), + ), + ) + .limit(1) + + const costsQuery = result[0]! + const tokens = costsQuery.tokens + const costInMillicents = costsQuery.costInMillicents + const totalCount = resultCount[0]!.totalCount + + return { + tokens: tokens === null ? 0 : tokens, + costInMillicents: costInMillicents === null ? 0 : costInMillicents, + totalCount, + } +} diff --git a/packages/core/src/services/evaluationResults/aggregations/meanValueQuery.ts b/packages/core/src/services/evaluationResults/aggregations/meanValueQuery.ts new file mode 100644 index 000000000..75e59b601 --- /dev/null +++ b/packages/core/src/services/evaluationResults/aggregations/meanValueQuery.ts @@ -0,0 +1,62 @@ +import { and, eq, sql } from 'drizzle-orm' + +import { getCommitFilter } from '../_createEvaluationResultQuery' +import { + Commit, + Evaluation, + EvaluationResultConfiguration, +} from '../../../browser' +import { database } from '../../../client' +import { EvaluationResultsRepository } from '../../../repositories' +import { DocumentLogsRepository } from '../../../repositories/documentLogsRepository' +import { commits } from '../../../schema' + +export async function getEvaluationMeanValueQuery( + { + workspaceId, + evaluation, + documentUuid, + commit, + }: { + workspaceId: number + evaluation: Evaluation + documentUuid: string + commit: Commit + }, + db = database, +) { + const { scope: evaluationResultsScope } = new EvaluationResultsRepository( + workspaceId, + db, + ) + const documentLogsRepo = new DocumentLogsRepository(workspaceId, db) + const documentLogsScope = documentLogsRepo.scope + + const results = await db + .select({ + meanValue: sql`avg(${evaluationResultsScope.result}::numeric)` + .mapWith(Number) + .as('meanValue'), + }) + .from(evaluationResultsScope) + .innerJoin( + documentLogsScope, + eq(documentLogsScope.id, evaluationResultsScope.documentLogId), + ) + .innerJoin(commits, eq(commits.id, documentLogsScope.commitId)) + .where( + and( + eq(evaluationResultsScope.evaluationId, evaluation.id), + eq(documentLogsScope.documentUuid, documentUuid), + getCommitFilter(commit), + ), + ) + const value = results[0] + const config = evaluation.configuration as EvaluationResultConfiguration + const { from: minValue, to: maxValue } = config.detail!.range + return { + minValue, + maxValue, + meanValue: value?.meanValue ?? 0, + } +} diff --git a/packages/core/src/services/evaluationResults/aggregations/modalValueQuery.ts b/packages/core/src/services/evaluationResults/aggregations/modalValueQuery.ts new file mode 100644 index 000000000..d98e0df12 --- /dev/null +++ b/packages/core/src/services/evaluationResults/aggregations/modalValueQuery.ts @@ -0,0 +1,87 @@ +import { and, eq, sql, sum } from 'drizzle-orm' + +import { getCommitFilter } from '../_createEvaluationResultQuery' +import { Commit, Evaluation } from '../../../browser' +import { database } from '../../../client' +import { EvaluationResultsRepository } from '../../../repositories' +import { DocumentLogsRepository } from '../../../repositories/documentLogsRepository' +import { commits } from '../../../schema' + +export async function getEvaluationModalValueQuery( + { + workspaceId, + evaluation, + documentUuid, + commit, + }: { + workspaceId: number + evaluation: Evaluation + documentUuid: string + commit: Commit + }, + db = database, +) { + const { scope: evaluationResultsScope } = new EvaluationResultsRepository( + workspaceId, + db, + ) + const { scope: documentLogsScope } = new DocumentLogsRepository( + workspaceId, + db, + ) + + const totalQuery = await db + .select({ + totalCount: sum(evaluationResultsScope.id) + .mapWith(Number) + .as('ev_results_from_commit_total'), + }) + .from(evaluationResultsScope) + .innerJoin( + documentLogsScope, + eq(documentLogsScope.id, evaluationResultsScope.documentLogId), + ) + .innerJoin(commits, eq(commits.id, documentLogsScope.commitId)) + .where( + and( + eq(evaluationResultsScope.evaluationId, evaluation.id), + eq(documentLogsScope.documentUuid, documentUuid), + getCommitFilter(commit), + ), + ) + .groupBy(evaluationResultsScope.evaluationId) + .limit(1) + + const mostCommonResult = await db + .select({ + mostCommon: evaluationResultsScope.result, + mostCommonCount: sum(evaluationResultsScope.id) + .mapWith(Number) + .as('most_common_count'), + }) + .from(evaluationResultsScope) + .innerJoin( + documentLogsScope, + eq(documentLogsScope.id, evaluationResultsScope.documentLogId), + ) + .innerJoin(commits, eq(commits.id, documentLogsScope.commitId)) + .where( + and( + eq(evaluationResultsScope.evaluationId, evaluation.id), + eq(documentLogsScope.documentUuid, documentUuid), + getCommitFilter(commit), + ), + ) + .groupBy(evaluationResultsScope.result) + .orderBy(sql`most_common_count DESC`) + .limit(1) + + const total = totalQuery[0]!.totalCount + const mostCommon = mostCommonResult[0]!.mostCommon + const mostCommonCount = mostCommonResult[0]!.mostCommonCount + const percentage = parseFloat(((mostCommonCount / total) * 100).toFixed(2)) + return { + mostCommon, + percentage, + } +} diff --git a/packages/core/src/services/evaluationResults/index.ts b/packages/core/src/services/evaluationResults/index.ts index ea9b04758..2ddc83b93 100644 --- a/packages/core/src/services/evaluationResults/index.ts +++ b/packages/core/src/services/evaluationResults/index.ts @@ -1,3 +1,6 @@ export * from './create' export * from './computeEvaluationResultsWithMetadata' export * from './computeAggregatedResults' +export * from './aggregations/countersQuery' +export * from './aggregations/meanValueQuery' +export * from './aggregations/modalValueQuery' diff --git a/packages/core/src/tests/factories/evaluationResults.ts b/packages/core/src/tests/factories/evaluationResults.ts index f0a733b21..339bd23ee 100644 --- a/packages/core/src/tests/factories/evaluationResults.ts +++ b/packages/core/src/tests/factories/evaluationResults.ts @@ -1,5 +1,6 @@ import { faker } from '@faker-js/faker' import { ContentType, createChain } from '@latitude-data/compiler' +import { LanguageModelUsage } from 'ai' import { v4 as uuid } from 'uuid' import { @@ -19,12 +20,18 @@ export type IEvaluationResultData = { documentLog: DocumentLog evaluation: EvaluationDto result?: string + stepCosts?: { + costInMillicents: number + promptTokens: number + completionTokens: number + }[] } export async function createEvaluationResult({ documentLog, evaluation, result, + stepCosts, }: IEvaluationResultData) { const commit = await findCommitById({ id: documentLog.commitId }).then((r) => r.unwrap(), @@ -39,6 +46,7 @@ export async function createEvaluationResult({ const providerLogs: ProviderLog[] = [] let mockedResponse = undefined + let steps = 0 while (true) { const { completed, conversation } = await chain.step(mockedResponse) @@ -49,16 +57,44 @@ export async function createEvaluationResult({ mockedResponse = result ?? String(faker.number.int({ min: 0, max: 10 })) - const promptTokens = conversation.messages.reduce((acc, message) => { - let content = message.content - if (Array.isArray(content)) { - content = content - .map((c) => (c.type === ContentType.text ? c.text : '')) - .join('') + const promptTokensFromContent = conversation.messages.reduce( + (acc, message) => { + let content = message.content + if (Array.isArray(content)) { + content = content + .map((c) => (c.type === ContentType.text ? c.text : '')) + .join('') + } + return acc + content.length + }, + 0, + ) + const completionTokensFromContent = mockedResponse.length + const totalTokens = promptTokensFromContent + completionTokensFromContent + + let costInMillicents: number | undefined = undefined + let usage: LanguageModelUsage = { + promptTokens: promptTokensFromContent, + completionTokens: completionTokensFromContent, + totalTokens: totalTokens, + } + + if (stepCosts !== undefined) { + const stepCost = stepCosts[steps] + if (stepCost === undefined) { + throw new Error( + 'Number of steps does not match the number of step costs.', + ) + } + + usage = { + promptTokens: stepCost.promptTokens, + completionTokens: stepCost.completionTokens, + totalTokens: stepCost.promptTokens + stepCost.completionTokens, } - return acc + content.length - }, 0) - const completionTokens = mockedResponse.length + costInMillicents = stepCost.costInMillicents + } + const log = await createProviderLog({ uuid: uuid(), generatedAt: new Date(), @@ -70,20 +106,23 @@ export async function createEvaluationResult({ messages: conversation.messages, responseText: mockedResponse, toolCalls: [], - usage: { - promptTokens, - completionTokens, - totalTokens: promptTokens + completionTokens, - }, + usage, + costInMillicents, duration: Math.floor(Math.random() * 1000), source: LogSources.Evaluation, }).then((r) => r.unwrap()) providerLogs.push(log) + steps = steps + 1 + if (completed) break } + if (stepCosts && stepCosts.length !== steps) { + throw new Error('Number of steps does not match the number of step costs.') + } + const evaluationResult = await createEvaluationResultService({ evaluation, documentLog, diff --git a/packages/core/src/tests/factories/projects.ts b/packages/core/src/tests/factories/projects.ts index b0d8f5dbb..f020d5f3f 100644 --- a/packages/core/src/tests/factories/projects.ts +++ b/packages/core/src/tests/factories/projects.ts @@ -120,7 +120,7 @@ export async function createProject(projectData: Partial = {}) { workspace, providers, documents, - commit: commit!, + commit: commit, evaluations, } } diff --git a/packages/web-ui/src/ds/molecules/Charts/ScatterChart/index.tsx b/packages/web-ui/src/ds/molecules/Charts/ScatterChart/index.tsx index 3b675a43a..04a711dd5 100644 --- a/packages/web-ui/src/ds/molecules/Charts/ScatterChart/index.tsx +++ b/packages/web-ui/src/ds/molecules/Charts/ScatterChart/index.tsx @@ -146,17 +146,16 @@ export function ScatterChart({ config }: { config: ScatterChartConfig }) { } /> - {dataGroups.map((group) => { - return ( - - ) - })} + {dataGroups.map((group, idx) => ( + + ))} =18'} peerDependencies: vue: ^3.3.4 @@ -1182,147 +1182,147 @@ packages: '@aws-crypto/util@5.2.0': resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} - '@aws-sdk/client-ecs@3.651.1': - resolution: {integrity: sha512-uuFiA/sy9cBQmaWaAm1PYCm6Hr4/FqBTNbqcMDGhYLZAb5XLlp986PutkGGnpIiTOQ4krsk41HXkVXtOW0Dyeg==} + '@aws-sdk/client-ecs@3.654.0': + resolution: {integrity: sha512-clBMPXHrV5HRCmfwN1crqf6BgOHmRvOiMowSOD0FTJfKQYjDdca5a5M0S2wxNEOyxl6WqO57i1fmtN9RAttVJw==} engines: {node: '>=16.0.0'} - '@aws-sdk/client-s3@3.651.1': - resolution: {integrity: sha512-xNm+ixNRcotyrHgjUGGEyara6kCKgDdW2EVjHBZa5T+tbmtyqezwH3UzbSDZ6MlNoLhJMfR7ozuwYTIOARoBfA==} + '@aws-sdk/client-s3@3.654.0': + resolution: {integrity: sha512-EsyeZJhkZD2VMdZpNt4NhlQ3QUAF24gMC+5w2wpGg6Yw+Bv7VLdg1t3PkTQovriJX1KTJAYHcGAuy92OFmWIng==} engines: {node: '>=16.0.0'} - '@aws-sdk/client-sso-oidc@3.651.1': - resolution: {integrity: sha512-PKwAyTJW8pgaPIXm708haIZWBAwNycs25yNcD7OQ3NLcmgGxvrx6bSlhPEGcvwdTYwQMJsdx8ls+khlYbLqTvQ==} + '@aws-sdk/client-sso-oidc@3.654.0': + resolution: {integrity: sha512-gbHrKsEnaAtmkNCVQzLyiqMzpDaThV/bWl/ODEklI+t6stW3Pe3oDMstEHLfJ6JU5g8sYnx4VLuxlnJMtUkvPw==} engines: {node: '>=16.0.0'} peerDependencies: - '@aws-sdk/client-sts': ^3.651.1 + '@aws-sdk/client-sts': ^3.654.0 - '@aws-sdk/client-sso@3.651.1': - resolution: {integrity: sha512-Fm8PoMgiBKmmKrY6QQUGj/WW6eIiQqC1I0AiVXfO+Sqkmxcg3qex+CZBAYrTuIDnvnc/89f9N4mdL8V9DRn03Q==} + '@aws-sdk/client-sso@3.654.0': + resolution: {integrity: sha512-4kBxs2IzCDtj6a6lRXa/lXK5wWpMGzwKtb+HMXf/rJYVM6x7wYRzc1hYrOd3DYkFQ/sR3dUFj+0mTP0os3aAbA==} engines: {node: '>=16.0.0'} - '@aws-sdk/client-sts@3.651.1': - resolution: {integrity: sha512-4X2RqLqeDuVLk+Omt4X+h+Fa978Wn+zek/AM4HSPi4C5XzRBEFLRRtOQUvkETvIjbEwTYQhm0LdgzcBH4bUqIg==} + '@aws-sdk/client-sts@3.654.0': + resolution: {integrity: sha512-tyHa8jsBy+/NQZFHm6Q2Q09Vi9p3EH4yPy6PU8yPewpi2klreObtrUd0anJa6nzjS9SSuqnlZWsRic3cQ4QwCg==} engines: {node: '>=16.0.0'} - '@aws-sdk/core@3.651.1': - resolution: {integrity: sha512-eqOq3W39K+5QTP5GAXtmP2s9B7hhM2pVz8OPe5tqob8o1xQgkwdgHerf3FoshO9bs0LDxassU/fUSz1wlwqfqg==} + '@aws-sdk/core@3.654.0': + resolution: {integrity: sha512-4Rwx7BVaNaFqmXBDmnOkMbyuIFFbpZ+ru4lr660p45zY1QoNNSalechfoRffcokLFOZO+VWEJkdcorPUUU993w==} engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-env@3.649.0': - resolution: {integrity: sha512-tViwzM1dauksA3fdRjsg0T8mcHklDa8EfveyiQKK6pUJopkqV6FQx+X5QNda0t/LrdEVlFZvwHNdXqOEfc83TA==} + '@aws-sdk/credential-provider-env@3.654.0': + resolution: {integrity: sha512-kogsx3Ql81JouHS7DkheCDU9MYAvK0AokxjcshDveGmf7BbgbWCA8Fnb9wjQyNDaOXNvkZu8Z8rgkX91z324/w==} engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-http@3.649.0': - resolution: {integrity: sha512-ODAJ+AJJq6ozbns6ejGbicpsQ0dyMOpnGlg0J9J0jITQ05DKQZ581hdB8APDOZ9N8FstShP6dLZflSj8jb5fNA==} + '@aws-sdk/credential-provider-http@3.654.0': + resolution: {integrity: sha512-tgmAH4MBi/aDR882lfw48+tDV95ZH3GWc1Eoe6DpNLiM3GN2VfU/cZwuHmi6aq+vAbdIlswBHJ/+va0fOvlyjw==} engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-ini@3.651.1': - resolution: {integrity: sha512-yOzPC3GbwLZ8IYzke4fy70ievmunnBUni/MOXFE8c9kAIV+/RMC7IWx14nAAZm0gAcY+UtCXvBVZprFqmctfzA==} + '@aws-sdk/credential-provider-ini@3.654.0': + resolution: {integrity: sha512-DKSdaNu2hwdmuvnm9KnA0NLqMWxxmxSOLWjSUSoFIm++wGXUjPrRMFYKvMktaXnPuyf5my8gF/yGbwzPZ8wlTg==} engines: {node: '>=16.0.0'} peerDependencies: - '@aws-sdk/client-sts': ^3.651.1 + '@aws-sdk/client-sts': ^3.654.0 - '@aws-sdk/credential-provider-node@3.651.1': - resolution: {integrity: sha512-QKA74Qs83FTUz3jS39kBuNbLAnm6cgDqomm7XS/BkYgtUq+1lI9WL97astNIuoYvumGIS58kuIa+I3ycOA4wgw==} + '@aws-sdk/credential-provider-node@3.654.0': + resolution: {integrity: sha512-wPV7CNYaXDEc+SS+3R0v8SZwkHRUE1z2k2j1d49tH5QBDT4tb/k2V/biXWkwSk3hbR+IMWXmuhJDv/5lybhIvg==} engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-process@3.649.0': - resolution: {integrity: sha512-6VYPQpEVpU+6DDS/gLoI40ppuNM5RPIEprK30qZZxnhTr5wyrGOeJ7J7wbbwPOZ5dKwta290BiJDU2ipV8Y9BQ==} + '@aws-sdk/credential-provider-process@3.654.0': + resolution: {integrity: sha512-PmQoo8sZ9Q2Ow8OMzK++Z9lI7MsRUG7sNq3E72DVA215dhtTICTDQwGlXH2AAmIp7n+G9LLRds+4wo2ehG4mkg==} engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-sso@3.651.1': - resolution: {integrity: sha512-7jeU+Jbn65aDaNjkjWDQcXwjNTzpYNKovkSSRmfVpP5WYiKerVS5mrfg3RiBeiArou5igCUtYcOKlRJiGRO47g==} + '@aws-sdk/credential-provider-sso@3.654.0': + resolution: {integrity: sha512-7GFme6fWEdA/XYKzZPOAdj/jS6fMBy1NdSIZsDXikS0v9jU+ZzHrAaWt13YLzHyjgxB9Sg9id9ncdY1IiubQXQ==} engines: {node: '>=16.0.0'} - '@aws-sdk/credential-provider-web-identity@3.649.0': - resolution: {integrity: sha512-XVk3WsDa0g3kQFPmnCH/LaCtGY/0R2NDv7gscYZSXiBZcG/fixasglTprgWSp8zcA0t7tEIGu9suyjz8ZwhymQ==} + '@aws-sdk/credential-provider-web-identity@3.654.0': + resolution: {integrity: sha512-6a2g9gMtZToqSu+CusjNK5zvbLJahQ9di7buO3iXgbizXpLXU1rnawCpWxwslMpT5fLgMSKDnKDrr6wdEk7jSw==} engines: {node: '>=16.0.0'} peerDependencies: - '@aws-sdk/client-sts': ^3.649.0 + '@aws-sdk/client-sts': ^3.654.0 - '@aws-sdk/middleware-bucket-endpoint@3.649.0': - resolution: {integrity: sha512-ZdDICtUU4YZkrVllTUOH1Fj/F3WShLhkfNKJE3HJ/yj6pS8JS9P2lWzHiHkHiidjrHSxc6NuBo6vuZ+182XLbw==} + '@aws-sdk/middleware-bucket-endpoint@3.654.0': + resolution: {integrity: sha512-/lWkyeLESiK+rAB4+NCw1cVPle9RN7RW/v7B4b8ORiCn1FwZLUPmEiZSYzyh4in5oa3Mri+W/g+KafZDH6LCbA==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-expect-continue@3.649.0': - resolution: {integrity: sha512-pW2id/mWNd+L0/hZKp5yL3J+8rTwsamu9E69Hc5pM3qTF4K4DTZZ+A0sQbY6duIvZvc8IbQHbSMulBOLyWNP3A==} + '@aws-sdk/middleware-expect-continue@3.654.0': + resolution: {integrity: sha512-S7fSlo8vdjkQTy9DmdF54ZsPwc+aA4z5Y9JVqAlGL9QiZe/fPtRE3GZ8BBbMICjBfMEa12tWjzhDz9su2c6PIA==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-flexible-checksums@3.651.1': - resolution: {integrity: sha512-cFlXSzhdRKU1vOFTIYC3HzkN7Dwwcf07rKU1sB/PrDy4ztLhGgAwvcRwj2AqErZB62C5AdN4l7peB1Iw/oSxRQ==} + '@aws-sdk/middleware-flexible-checksums@3.654.0': + resolution: {integrity: sha512-ZSRC+Lf9WxyoDLuTkd7JrFRrBLPLXcTOZzX6tDsnHc6tgdneBNwV3/ZOYUwQ8bdwLLnzSaQUU+X5B2BkEFKIhQ==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-host-header@3.649.0': - resolution: {integrity: sha512-PjAe2FocbicHVgNNwdSZ05upxIO7AgTPFtQLpnIAmoyzMcgv/zNB5fBn3uAnQSAeEPPCD+4SYVEUD1hw1ZBvEg==} + '@aws-sdk/middleware-host-header@3.654.0': + resolution: {integrity: sha512-rxGgVHWKp8U2ubMv+t+vlIk7QYUaRCHaVpmUlJv0Wv6Q0KeO9a42T9FxHphjOTlCGQOLcjCreL9CF8Qhtb4mdQ==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-location-constraint@3.649.0': - resolution: {integrity: sha512-O9AXhaFUQx34UTnp/cKCcaWW/IVk4mntlWfFjsIxvRatamKaY33b5fOiakGG+J1t0QFK0niDBSvOYUR1fdlHzw==} + '@aws-sdk/middleware-location-constraint@3.654.0': + resolution: {integrity: sha512-Duvv5c4DEQ7P6c0YlcvEUW3xCJi6X2uktafNGjILhVDMQwShSF/aFqNv/ikWU/luQcmWHZ9DtDjTR9UKLh6eTA==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-logger@3.649.0': - resolution: {integrity: sha512-qdqRx6q7lYC6KL/NT9x3ShTL0TBuxdkCczGzHzY3AnOoYUjnCDH7Vlq867O6MAvb4EnGNECFzIgtkZkQ4FhY5w==} + '@aws-sdk/middleware-logger@3.654.0': + resolution: {integrity: sha512-OQYb+nWlmASyXfRb989pwkJ9EVUMP1CrKn2eyTk3usl20JZmKo2Vjis6I0tLUkMSxMhnBJJlQKyWkRpD/u1FVg==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-recursion-detection@3.649.0': - resolution: {integrity: sha512-IPnO4wlmaLRf6IYmJW2i8gJ2+UPXX0hDRv1it7Qf8DpBW+lGyF2rnoN7NrFX0WIxdGOlJF1RcOr/HjXb2QeXfQ==} + '@aws-sdk/middleware-recursion-detection@3.654.0': + resolution: {integrity: sha512-gKSomgltKVmsT8sC6W7CrADZ4GHwX9epk3GcH6QhebVO3LA9LRbkL3TwOPUXakxxOLLUTYdOZLIOtFf7iH00lg==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-sdk-s3@3.651.1': - resolution: {integrity: sha512-4BameU35aBSzrm3L/Iphc6vFLRhz6sBwgQf09mqPA2ZlX/YFqVe8HbS8wM4DG02W8A2MRTnHXRIfFoOrErp2sw==} + '@aws-sdk/middleware-sdk-s3@3.654.0': + resolution: {integrity: sha512-6prq+GK6hLMAbxEb83tBMb1YiTWWK196fJhFO/7gE5TUPL1v756RhQZzKV/njbwB1fIBjRBTuhYLh5Bn98HhdA==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-ssec@3.649.0': - resolution: {integrity: sha512-r/WBIpX+Kcx+AV5vJ+LbdDOuibk7spBqcFK2LytQjOZKPksZNRAM99khbFe9vr9S1+uDmCLVjAVkIfQ5seJrOw==} + '@aws-sdk/middleware-ssec@3.654.0': + resolution: {integrity: sha512-k7hkQDJh4hcRJC7YojQ11kc37SY4foryen26Eafj5qYjeG2OGMW0oZTJDl1TVFJ7AcCjqIuMIo0Ho2US/2JspQ==} engines: {node: '>=16.0.0'} - '@aws-sdk/middleware-user-agent@3.649.0': - resolution: {integrity: sha512-q6sO10dnCXoxe9thobMJxekhJumzd1j6dxcE1+qJdYKHJr6yYgWbogJqrLCpWd30w0lEvnuAHK8lN2kWLdJxJw==} + '@aws-sdk/middleware-user-agent@3.654.0': + resolution: {integrity: sha512-liCcqPAyRsr53cy2tYu4qeH4MMN0eh9g6k56XzI5xd4SghXH5YWh4qOYAlQ8T66ZV4nPMtD8GLtLXGzsH8moFg==} engines: {node: '>=16.0.0'} - '@aws-sdk/region-config-resolver@3.649.0': - resolution: {integrity: sha512-xURBvdQXvRvca5Du8IlC5FyCj3pkw8Z75+373J3Wb+vyg8GjD14HfKk1Je1HCCQDyIE9VB/scYDcm9ri0ppePw==} + '@aws-sdk/region-config-resolver@3.654.0': + resolution: {integrity: sha512-ydGOrXJxj3x0sJhsXyTmvJVLAE0xxuTWFJihTl67RtaO7VRNtd82I3P3bwoMMaDn5WpmV5mPo8fEUDRlBm3fPg==} engines: {node: '>=16.0.0'} - '@aws-sdk/s3-request-presigner@3.651.1': - resolution: {integrity: sha512-PNoZkSDjvZs/ekm79jJzZMBp+3oCG74/6K/SPKKyUWiFMfrYIsnQD2y/V75n9s/2Vxie08Bgf2jroX41uQAFAw==} + '@aws-sdk/s3-request-presigner@3.654.0': + resolution: {integrity: sha512-se1DllTTkaB85RSB60U/VUq5rCzwhqYZudxrf1zlWD0YjZpwKqifWgBomd3AyPZtQRQOcQooBcmZCVfGfdAuJQ==} engines: {node: '>=16.0.0'} - '@aws-sdk/signature-v4-multi-region@3.651.1': - resolution: {integrity: sha512-aLPCMq4c/A9DmdZLhufWOgfHN2Vgft65dB2tfbATjs6kZjusSaDFxWzjmWX3y8i2ZQ+vU0nAkkWIHFJdf+47fA==} + '@aws-sdk/signature-v4-multi-region@3.654.0': + resolution: {integrity: sha512-f8kyvbzgD3lSK1kFc3jsDCYjdutcqGO3tOzYO/QIK7BTl5lxc4rm6IKTcF2UYJsn8jiNqih7tVK8aVIGi8IF/w==} engines: {node: '>=16.0.0'} - '@aws-sdk/token-providers@3.649.0': - resolution: {integrity: sha512-ZBqr+JuXI9RiN+4DSZykMx5gxpL8Dr3exIfFhxMiwAP3DQojwl0ub8ONjMuAjq9OvmX6n+jHZL6fBnNgnNFC8w==} + '@aws-sdk/token-providers@3.654.0': + resolution: {integrity: sha512-D8GeJYmvbfWkQDtTB4owmIobSMexZel0fOoetwvgCQ/7L8VPph3Q2bn1TRRIXvH7wdt6DcDxA3tKMHPBkT3GlA==} engines: {node: '>=16.0.0'} peerDependencies: - '@aws-sdk/client-sso-oidc': ^3.649.0 + '@aws-sdk/client-sso-oidc': ^3.654.0 - '@aws-sdk/types@3.649.0': - resolution: {integrity: sha512-PuPw8RysbhJNlaD2d/PzOTf8sbf4Dsn2b7hwyGh7YVG3S75yTpxSAZxrnhKsz9fStgqFmnw/jUfV/G+uQAeTVw==} + '@aws-sdk/types@3.654.0': + resolution: {integrity: sha512-VWvbED3SV+10QJIcmU/PKjsKilsTV16d1I7/on4bvD/jo1qGeMXqLDBSen3ks/tuvXZF/mFc7ZW/W2DiLVtO7A==} engines: {node: '>=16.0.0'} '@aws-sdk/util-arn-parser@3.568.0': resolution: {integrity: sha512-XUKJWWo+KOB7fbnPP0+g/o5Ulku/X53t7i/h+sPHr5xxYTJJ9CYnbToo95mzxe7xWvkLrsNtJ8L+MnNn9INs2w==} engines: {node: '>=16.0.0'} - '@aws-sdk/util-endpoints@3.649.0': - resolution: {integrity: sha512-bZI1Wc3R/KibdDVWFxX/N4AoJFG4VJ92Dp4WYmOrVD6VPkb8jPz7ZeiYc7YwPl8NoDjYyPneBV0lEoK/V8OKAA==} + '@aws-sdk/util-endpoints@3.654.0': + resolution: {integrity: sha512-i902fcBknHs0Irgdpi62+QMvzxE+bczvILXigYrlHL4+PiEnlMVpni5L5W1qCkNZXf8AaMrSBuR1NZAGp6UOUw==} engines: {node: '>=16.0.0'} - '@aws-sdk/util-format-url@3.649.0': - resolution: {integrity: sha512-I5olOLkXQRJWAaoTSTXcycNBJ26daeEpgxYD6VPpQma9StFVK7a0MbHa1QGkOy9eVTTuf6xb2U1eiCWDWn3TXA==} + '@aws-sdk/util-format-url@3.654.0': + resolution: {integrity: sha512-2yAlJ/l1uTJhS52iu4+/EvdIyQhDBL+nATY8rEjFI0H+BHGVrJIH2CL4DByhvi2yvYwsqQX0HYah6pF/yoXukA==} engines: {node: '>=16.0.0'} '@aws-sdk/util-locate-window@3.568.0': resolution: {integrity: sha512-3nh4TINkXYr+H41QaPelCceEB2FXP3fxp93YZXB/kqJvX0U9j0N0Uk45gvsjmEPzG8XxkPEeLIfT2I1M7A6Lig==} engines: {node: '>=16.0.0'} - '@aws-sdk/util-user-agent-browser@3.649.0': - resolution: {integrity: sha512-IY43r256LhKAvdEVQO/FPdUyVpcZS5EVxh/WHVdNzuN1bNLoUK2rIzuZqVA0EGguvCxoXVmQv9m50GvG7cGktg==} + '@aws-sdk/util-user-agent-browser@3.654.0': + resolution: {integrity: sha512-ykYAJqvnxLt7wfrqya28wuH3/7NdrwzfiFd7NqEVQf7dXVxL5RPEpD7DxjcyQo3DsHvvdUvGZVaQhozycn1pzA==} - '@aws-sdk/util-user-agent-node@3.649.0': - resolution: {integrity: sha512-x5DiLpZDG/AJmCIBnE3Xhpwy35QIo3WqNiOpw6ExVs1NydbM/e90zFPSfhME0FM66D/WorigvluBxxwjxDm/GA==} + '@aws-sdk/util-user-agent-node@3.654.0': + resolution: {integrity: sha512-a0ojjdBN6pqv6gB4H/QPPSfhs7mFtlVwnmKCM/QrTaFzN0U810PJ1BST3lBx5sa23I5jWHGaoFY+5q65C3clLQ==} engines: {node: '>=16.0.0'} peerDependencies: aws-crt: '>=1.0.0' @@ -1330,8 +1330,8 @@ packages: aws-crt: optional: true - '@aws-sdk/xml-builder@3.649.0': - resolution: {integrity: sha512-XVESKkK7m5LdCVzZ3NvAja40BEyCrfPqtaiFAAhJIvW2U1Edyugf2o3XikuQY62crGT6BZagxJFgOiLKvuTiTg==} + '@aws-sdk/xml-builder@3.654.0': + resolution: {integrity: sha512-qA2diK3d/ztC8HUb7NwPKbJRV01NpzTzxFn+L5G3HzJBNeKbjLcprQ/9uG9gp2UEx2Go782FI1ddrMNa0qBICA==} engines: {node: '>=16.0.0'} '@babel/code-frame@7.24.7': @@ -2180,8 +2180,8 @@ packages: '@floating-ui/utils@0.2.8': resolution: {integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==} - '@grpc/grpc-js@1.11.2': - resolution: {integrity: sha512-DWp92gDD7/Qkj7r8kus6/HCINeo3yPZWZ3paKgDgsbKbSpoxKg1yvN8xe2Q8uE3zOsPe3bX8FQX2+XValq2yTw==} + '@grpc/grpc-js@1.11.3': + resolution: {integrity: sha512-i9UraDzFHMR+Iz/MhFLljT+fCpgxZ3O6CxwGJ8YuNYHJItIHUzKJpW2LvoFZNnGPwqc9iWy9RAucxV0JoR9aUQ==} engines: {node: '>=12.10.0'} '@grpc/proto-loader@0.7.13': @@ -2455,8 +2455,8 @@ packages: cpu: [x64] os: [win32] - '@mswjs/interceptors@0.35.6': - resolution: {integrity: sha512-PpD687w7qLxVMK176bpQjbzU9O0VC75QnBK5U1lKd29s4hIuxfTItUD6raNKyQ6BN8b64/8HE34RuYTkwH9uPQ==} + '@mswjs/interceptors@0.35.8': + resolution: {integrity: sha512-PFfqpHplKa7KMdoQdj5td03uG05VK2Ng1dG0sP4pT9h0dGSX2v9txYt/AnrzPb/vAmfyBBC0NQV7VaBEX+efgQ==} engines: {node: '>=18'} '@next/env@14.2.3': @@ -2465,8 +2465,8 @@ packages: '@next/env@14.3.0-canary.87': resolution: {integrity: sha512-Bk3/oAQfnohIKzWdTJubBNbSw0xmmJxBJFndGmbWMZdY97GF4PjeFmMpuy1XZUqfq7HL2N1jYdRdPFqYXlHFAg==} - '@next/eslint-plugin-next@14.2.11': - resolution: {integrity: sha512-7mw+xW7Y03Ph4NTCcAzYe+vu4BNjEHZUfZayyF3Y1D9RX6c5NIe25m1grHEAkyUuaqjRxOYhnCNeglOkIqLkBA==} + '@next/eslint-plugin-next@14.2.13': + resolution: {integrity: sha512-z8Mk0VljxhIzsSiZUSdt3wp+t2lKd+jk5a9Jsvh3zDGkItgDMfjv/ZbET6HsxEl/fSihVoHGsXV6VLyDH0lfTQ==} '@next/swc-darwin-arm64@14.2.3': resolution: {integrity: sha512-3pEYo/RaGqPP0YzwnlmPN2puaF2WMLM3apt5jLW2fFdXD9+pqcoTzRk+iZsf8ta7+quAe4Q6Ms0nR0SFGFdS1A==} @@ -2807,8 +2807,8 @@ packages: resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - '@npmcli/package-json@5.2.0': - resolution: {integrity: sha512-qe/kiqqkW0AGtvBjL8TJKZk/eBBSpnJkUWvHdQ9jM2lKHXRYYJuyNpJPlJw3c8QjC2ow6NZYiLExhUaeJelbxQ==} + '@npmcli/package-json@5.2.1': + resolution: {integrity: sha512-f7zYC6kQautXHvNbLEWgD/uGu1+xCn9izgqBfgItWSx22U0ZDekxN08A1vM8cTxj/cRVe0Q94Ode+tdoYmIOOQ==} engines: {node: ^16.14.0 || >=18.0.0} '@npmcli/promise-spawn@7.0.2': @@ -3690,83 +3690,83 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.21.3': - resolution: {integrity: sha512-MmKSfaB9GX+zXl6E8z4koOr/xU63AMVleLEa64v7R0QF/ZloMs5vcD1sHgM64GXXS1csaJutG+ddtzcueI/BLg==} + '@rollup/rollup-android-arm-eabi@4.22.2': + resolution: {integrity: sha512-8Ao+EDmTPjZ1ZBABc1ohN7Ylx7UIYcjReZinigedTOnGFhIctyGPxY2II+hJ6gD2/vkDKZTyQ0e7++kwv6wDrw==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.21.3': - resolution: {integrity: sha512-zrt8ecH07PE3sB4jPOggweBjJMzI1JG5xI2DIsUbkA+7K+Gkjys6eV7i9pOenNSDJH3eOr/jLb/PzqtmdwDq5g==} + '@rollup/rollup-android-arm64@4.22.2': + resolution: {integrity: sha512-I+B1v0a4iqdS9DvYt1RJZ3W+Oh9EVWjbY6gp79aAYipIbxSLEoQtFQlZEnUuwhDXCqMxJ3hluxKAdPD+GiluFQ==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.21.3': - resolution: {integrity: sha512-P0UxIOrKNBFTQaXTxOH4RxuEBVCgEA5UTNV6Yz7z9QHnUJ7eLX9reOd/NYMO3+XZO2cco19mXTxDMXxit4R/eQ==} + '@rollup/rollup-darwin-arm64@4.22.2': + resolution: {integrity: sha512-BTHO7rR+LC67OP7I8N8GvdvnQqzFujJYWo7qCQ8fGdQcb8Gn6EQY+K1P+daQLnDCuWKbZ+gHAQZuKiQkXkqIYg==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.21.3': - resolution: {integrity: sha512-L1M0vKGO5ASKntqtsFEjTq/fD91vAqnzeaF6sfNAy55aD+Hi2pBI5DKwCO+UNDQHWsDViJLqshxOahXyLSh3EA==} + '@rollup/rollup-darwin-x64@4.22.2': + resolution: {integrity: sha512-1esGwDNFe2lov4I6GsEeYaAMHwkqk0IbuGH7gXGdBmd/EP9QddJJvTtTF/jv+7R8ZTYPqwcdLpMTxK8ytP6k6Q==} cpu: [x64] os: [darwin] - '@rollup/rollup-linux-arm-gnueabihf@4.21.3': - resolution: {integrity: sha512-btVgIsCjuYFKUjopPoWiDqmoUXQDiW2A4C3Mtmp5vACm7/GnyuprqIDPNczeyR5W8rTXEbkmrJux7cJmD99D2g==} + '@rollup/rollup-linux-arm-gnueabihf@4.22.2': + resolution: {integrity: sha512-GBHuY07x96OTEM3OQLNaUSUwrOhdMea/LDmlFHi/HMonrgF6jcFrrFFwJhhe84XtA1oK/Qh4yFS+VMREf6dobg==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.21.3': - resolution: {integrity: sha512-zmjbSphplZlau6ZTkxd3+NMtE4UKVy7U4aVFMmHcgO5CUbw17ZP6QCgyxhzGaU/wFFdTfiojjbLG3/0p9HhAqA==} + '@rollup/rollup-linux-arm-musleabihf@4.22.2': + resolution: {integrity: sha512-Dbfa9Sc1G1lWxop0gNguXOfGhaXQWAGhZUcqA0Vs6CnJq8JW/YOw/KvyGtQFmz4yDr0H4v9X248SM7bizYj4yQ==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.21.3': - resolution: {integrity: sha512-nSZfcZtAnQPRZmUkUQwZq2OjQciR6tEoJaZVFvLHsj0MF6QhNMg0fQ6mUOsiCUpTqxTx0/O6gX0V/nYc7LrgPw==} + '@rollup/rollup-linux-arm64-gnu@4.22.2': + resolution: {integrity: sha512-Z1YpgBvFYhZIyBW5BoopwSg+t7yqEhs5HCei4JbsaXnhz/eZehT18DaXl957aaE9QK7TRGFryCAtStZywcQe1A==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.21.3': - resolution: {integrity: sha512-MnvSPGO8KJXIMGlQDYfvYS3IosFN2rKsvxRpPO2l2cum+Z3exiExLwVU+GExL96pn8IP+GdH8Tz70EpBhO0sIQ==} + '@rollup/rollup-linux-arm64-musl@4.22.2': + resolution: {integrity: sha512-66Zszr7i/JaQ0u/lefcfaAw16wh3oT72vSqubIMQqWzOg85bGCPhoeykG/cC5uvMzH80DQa2L539IqKht6twVA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.21.3': - resolution: {integrity: sha512-+W+p/9QNDr2vE2AXU0qIy0qQE75E8RTwTwgqS2G5CRQ11vzq0tbnfBd6brWhS9bCRjAjepJe2fvvkvS3dno+iw==} + '@rollup/rollup-linux-powerpc64le-gnu@4.22.2': + resolution: {integrity: sha512-HpJCMnlMTfEhwo19bajvdraQMcAq3FX08QDx3OfQgb+414xZhKNf3jNvLFYKbbDSGBBrQh5yNwWZrdK0g0pokg==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.21.3': - resolution: {integrity: sha512-yXH6K6KfqGXaxHrtr+Uoy+JpNlUlI46BKVyonGiaD74ravdnF9BUNC+vV+SIuB96hUMGShhKV693rF9QDfO6nQ==} + '@rollup/rollup-linux-riscv64-gnu@4.22.2': + resolution: {integrity: sha512-/egzQzbOSRef2vYCINKITGrlwkzP7uXRnL+xU2j75kDVp3iPdcF0TIlfwTRF8woBZllhk3QaxNOEj2Ogh3t9hg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.21.3': - resolution: {integrity: sha512-R8cwY9wcnApN/KDYWTH4gV/ypvy9yZUHlbJvfaiXSB48JO3KpwSpjOGqO4jnGkLDSk1hgjYkTbTt6Q7uvPf8eg==} + '@rollup/rollup-linux-s390x-gnu@4.22.2': + resolution: {integrity: sha512-qgYbOEbrPfEkH/OnUJd1/q4s89FvNJQIUldx8X2F/UM5sEbtkqZpf2s0yly2jSCKr1zUUOY1hnTP2J1WOzMAdA==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.21.3': - resolution: {integrity: sha512-kZPbX/NOPh0vhS5sI+dR8L1bU2cSO9FgxwM8r7wHzGydzfSjLRCFAT87GR5U9scj2rhzN3JPYVC7NoBbl4FZ0g==} + '@rollup/rollup-linux-x64-gnu@4.22.2': + resolution: {integrity: sha512-a0lkvNhFLhf+w7A95XeBqGQaG0KfS3hPFJnz1uraSdUe/XImkp/Psq0Ca0/UdD5IEAGoENVmnYrzSC9Y2a2uKQ==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.21.3': - resolution: {integrity: sha512-S0Yq+xA1VEH66uiMNhijsWAafffydd2X5b77eLHfRmfLsRSpbiAWiRHV6DEpz6aOToPsgid7TI9rGd6zB1rhbg==} + '@rollup/rollup-linux-x64-musl@4.22.2': + resolution: {integrity: sha512-sSWBVZgzwtsuG9Dxi9kjYOUu/wKW+jrbzj4Cclabqnfkot8Z3VEHcIgyenA3lLn/Fu11uDviWjhctulkhEO60g==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.21.3': - resolution: {integrity: sha512-9isNzeL34yquCPyerog+IMCNxKR8XYmGd0tHSV+OVx0TmE0aJOo9uw4fZfUuk2qxobP5sug6vNdZR6u7Mw7Q+Q==} + '@rollup/rollup-win32-arm64-msvc@4.22.2': + resolution: {integrity: sha512-t/YgCbZ638R/r7IKb9yCM6nAek1RUvyNdfU0SHMDLOf6GFe/VG1wdiUAsxTWHKqjyzkRGg897ZfCpdo1bsCSsA==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.21.3': - resolution: {integrity: sha512-nMIdKnfZfzn1Vsk+RuOvl43ONTZXoAPUUxgcU0tXooqg4YrAqzfKzVenqqk2g5efWh46/D28cKFrOzDSW28gTA==} + '@rollup/rollup-win32-ia32-msvc@4.22.2': + resolution: {integrity: sha512-kTmX5uGs3WYOA+gYDgI6ITkZng9SP71FEMoHNkn+cnmb9Zuyyay8pf0oO5twtTwSjNGy1jlaWooTIr+Dw4tIbw==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.21.3': - resolution: {integrity: sha512-fOvu7PCQjAj4eWDEuD8Xz5gpzFqXzGlxHZozHP4b9Jxv9APtdxL6STqztDzMLuRXEc4UpXGGhx029Xgm91QBeA==} + '@rollup/rollup-win32-x64-msvc@4.22.2': + resolution: {integrity: sha512-Yy8So+SoRz8I3NS4Bjh91BICPOSVgdompTIPYTByUqU66AXSIOgmW3Lv1ke3NORPqxdF+RdrZET+8vYai6f4aA==} cpu: [x64] os: [win32] @@ -4314,6 +4314,9 @@ packages: '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + '@types/eventsource@1.1.15': resolution: {integrity: sha512-XQmGcbnxUNa06HR3VBVkc9+A2Vpi9ZyLJcdS5dwaQQ/4ZMWFO+5c90FnMUpbtMZwB/FChoYHwuVg8TvkECacTA==} @@ -4377,8 +4380,8 @@ packages: '@types/nodemailer-mailgun-transport@1.4.6': resolution: {integrity: sha512-6qhtDo+1ZLtrmmpQN7O9e3NLK5ggnTS2Oca+22SvmhwChNKxDZErecTlF6qTOLnNW/CCcHmDaSmG2MXUeP1w9g==} - '@types/nodemailer@6.4.15': - resolution: {integrity: sha512-0EBJxawVNjPkng1zm2vopRctuWVCxk34JcIlRuXSf54habUWdz1FB7wHDqOqvDa8Mtpt0Q3LTXQkAs2LNyK5jQ==} + '@types/nodemailer@6.4.16': + resolution: {integrity: sha512-uz6hN6Pp0upXMcilM61CoKyjT7sskBoOWpptkjjJp8jIMlTdc3xG01U7proKkXzruMS4hS0zqtHNkNPFB20rKQ==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -4774,8 +4777,8 @@ packages: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} - ai@3.3.39: - resolution: {integrity: sha512-6/URulDBjhRE0r/gircxjiRd62tUl37rrGL3NLAGen5V9w9m43dBhUING906tMEJmr6xPvDUlBSmh0bdpWzHMQ==} + ai@3.3.43: + resolution: {integrity: sha512-B4susrnVOapUVRYWuzNp3ChFZ7lBB3w9VFofIDiwrAoOkrljImkZgE2cUdIvWzwj/v3DiBtfPsPbOv+S2YRkCQ==} engines: {node: '>=18'} peerDependencies: openai: ^4.42.0 @@ -5019,8 +5022,8 @@ packages: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} engines: {node: '>=6'} - bullmq@5.13.0: - resolution: {integrity: sha512-rE7v3jMZZGsEhfMhLZwADwuHdqJPTTGHBM8C+SpxF9GzyZ+7pvC80EP5bOZJPPRzbmyhvIPJCVd0bchUZiQF+w==} + bullmq@5.13.1: + resolution: {integrity: sha512-9Ss2GzV+VVA2Q/+qUxQ7zxAwfLWBwc7DIUNboq0EdXGRf2Ia+Qi7BwT51rnxglu4b/0SRsSElevRT8IZc7HvtQ==} bundle-require@5.0.0: resolution: {integrity: sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==} @@ -5064,8 +5067,8 @@ packages: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} engines: {node: '>= 6'} - caniuse-lite@1.0.30001660: - resolution: {integrity: sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==} + caniuse-lite@1.0.30001662: + resolution: {integrity: sha512-sgMUVwLmGseH8ZIrm1d51UbrhqMCH3jvS7gF/M6byuHOnKyLOBL7W8yz5V02OHwgLGA36o/AFhWzzh4uc5aqTA==} case-anything@3.1.0: resolution: {integrity: sha512-rRYnn5Elur8RuNHKoJ2b0tgn+pjYxL7BzWom+JZ7NKKn1lt/yGV/tUNwOovxYa9l9VL5hnXQdMc+mENbhJzosQ==} @@ -5830,8 +5833,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.24: - resolution: {integrity: sha512-0x0wLCmpdKFCi9ulhvYZebgcPmHTkFVUfU2wzDykadkslKwT4oAmDTHEKLnlrDsMGZe4B+ksn8quZfZjYsBetA==} + electron-to-chromium@1.5.26: + resolution: {integrity: sha512-Z+OMe9M/V6Ep9n/52+b7lkvYEps26z4Yz3vjWL1V61W0q+VLF1pOHhMY17sa4roz4AWmULSI8E6SAojZA5L0YQ==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -7285,8 +7288,8 @@ packages: msgpackr@1.11.0: resolution: {integrity: sha512-I8qXuuALqJe5laEBYoFykChhSXLikZmUhccjGsPuSJ/7uPip2TJ7lwdIQwWSAi0jGZDXv4WOP8Qg65QZRuXxXw==} - msw@2.4.8: - resolution: {integrity: sha512-a+FUW1m5yT8cV9GBy0L/cbNg0EA4//SKEzgu3qFrpITrWYeZmqfo7dqtM74T2lAl69jjUjjCaEhZKaxG2Ns8DA==} + msw@2.4.9: + resolution: {integrity: sha512-1m8xccT6ipN4PTqLinPwmzhxQREuxaEJYdx4nIbggxP8aM7r1e71vE7RtOUSQoAm1LydjGfZKy7370XD/tsuYg==} engines: {node: '>=18'} hasBin: true peerDependencies: @@ -7697,8 +7700,8 @@ packages: pg-cloudflare@1.1.1: resolution: {integrity: sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==} - pg-connection-string@2.6.4: - resolution: {integrity: sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA==} + pg-connection-string@2.7.0: + resolution: {integrity: sha512-PI2W9mv53rXJQEOb8xNR8lH7Hr+EKa6oJa38zsK0S/ky2er16ios1wLKhZyxzD7jUReiWokc9WK5nxSnC7W1TA==} pg-int8@1.0.1: resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} @@ -7708,13 +7711,13 @@ packages: resolution: {integrity: sha512-BM/Thnrw5jm2kKLE5uJkXqqExRUY/toLHda65XgFTBTFYZyopbKjBe29Ii3RbkvlsMoFwD+tHeGaCjjv0gHlyw==} engines: {node: '>=4'} - pg-pool@3.6.2: - resolution: {integrity: sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg==} + pg-pool@3.7.0: + resolution: {integrity: sha512-ZOBQForurqh4zZWjrgSwwAtzJ7QiRX0ovFkZr2klsen3Nm0aoh33Ls0fzfv3imeH/nw/O27cjdz5kzYJfeGp/g==} peerDependencies: pg: '>=8.0' - pg-protocol@1.6.1: - resolution: {integrity: sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==} + pg-protocol@1.7.0: + resolution: {integrity: sha512-hTK/mE36i8fDDhgDFjy6xNOG+LCorxLG3WO17tku+ij6sVHXh1jQUJ8hYAnRhNla4QVD2H8er/FOjc/+EgC6yQ==} pg-transactional-tests@1.1.0: resolution: {integrity: sha512-Bo0fq9TG9hbI2Uk+tWW8yPaLZNwkZBaymz6OhH7KMdUu0vHtoLCrpBlcDCjGaO/mP84OKJBCD8s+J5jSBPOBfg==} @@ -7729,8 +7732,8 @@ packages: resolution: {integrity: sha512-cRL3JpS3lKMGsKaWndugWQoLOCoP+Cic8oseVcbr0qhPzYD5DWXK+RZ9LY9wxRf7RQia4SCwQlXk0q6FCPrVng==} engines: {node: '>=10'} - pg@8.12.0: - resolution: {integrity: sha512-A+LHUSnwnxrnL/tZ+OLfqR1SxLN3c/pgDztZ47Rpbsd4jUytsTtwQo/TLPRzPJMp/1pbhYVhH9cuSZLAajNfjQ==} + pg@8.13.0: + resolution: {integrity: sha512-34wkUTh3SxTClfoHB3pQ7bIMvw9dpFU1audQQeZG837fmHfHpr14n/AELVDoOYVDW2h5RDWU78tFjkD+erSBsw==} engines: {node: '>= 8.0.0'} peerDependencies: pg-native: '>=3.0.1' @@ -7877,8 +7880,8 @@ packages: postgres-range@1.1.4: resolution: {integrity: sha512-i/hbxIE9803Alj/6ytL7UHQxRvZkI9O4Sy+J3HGc4F4oo/2eQAjTSNJ0bfxyse3bH0nuVesCk+3IRLaMtG3H6w==} - posthog-js@1.161.6: - resolution: {integrity: sha512-UO0z/YTuan55Kl5Yg9Xs5x1PKUkm2zGKUNPioznb4GLRcxFnLBkWoeKQXNro2YZsYJvK+MY8jlF3cdGa8BZ8/Q==} + posthog-js@1.163.0: + resolution: {integrity: sha512-gpLbxZkOm06oOWg0uvCxBIVIHrhX3A5hxf9eAi/Z+aFP9DvWxwHQdGUkIWjnYUyxXilIbLxBPvWmiM98dYsAHA==} preact@10.24.0: resolution: {integrity: sha512-aK8Cf+jkfyuZ0ZZRG9FbYqwmEiGQ4y/PUO4SuTWoyWL244nZZh7bd5h2APd4rSNDYTBNghg1L+5iJN3Skxtbsw==} @@ -8251,8 +8254,8 @@ packages: engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true - rollup@4.21.3: - resolution: {integrity: sha512-7sqRtBNnEbcBtMeRVc6VRsJMmpI+JU1z9VTvW8D4gXIYQFz0aLcsE6rRkyghZkLfEgUZgVvOG7A5CVz/VW5GIA==} + rollup@4.22.2: + resolution: {integrity: sha512-JWWpTrZmqQGQWt16xvNn6KVIUz16VtZwl984TKw0dfqqRpFwtLJYYk1/4BTgplndMQKWUk/yB4uOShYmMzA2Vg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -8665,8 +8668,8 @@ packages: peerDependencies: tailwindcss: '>=3.0.0 || insiders' - tailwindcss@3.4.11: - resolution: {integrity: sha512-qhEuBcLemjSJk5ajccN9xJFtM/h0AVCPaA6C92jNP+M2J8kX+eMJHI7R2HFKUvvAsMpcfLILMCFYSeDwpMmlUg==} + tailwindcss@3.4.12: + resolution: {integrity: sha512-Htf/gHj2+soPb9UayUNci/Ja3d8pTmu9ONTfh4QY8r3MATTZOzmv6UYWF7ZwikEIC8okpfqmGqrmDehua8mF8w==} engines: {node: '>=14.0.0'} hasBin: true @@ -8694,8 +8697,8 @@ packages: uglify-js: optional: true - terser@5.32.0: - resolution: {integrity: sha512-v3Gtw3IzpBJ0ugkxEX8U0W6+TnPKRRCWGh1jC/iM/e3Ki5+qvO1L1EAZ56bZasc64aXHwRHNIQEzm6//i5cemQ==} + terser@5.33.0: + resolution: {integrity: sha512-JuPVaB7s1gdFKPKTelwUyRq5Sid2A3Gko2S0PncwdBq7kN9Ti9HPWDQ06MPsEDGsZeVESjKEnyGy68quBk1w6g==} engines: {node: '>=10'} hasBin: true @@ -9398,8 +9401,8 @@ packages: zod@3.23.8: resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} - zsa-react@0.2.2: - resolution: {integrity: sha512-0jUGzIy4PRc8Ur3JS+YBdRyD3rnsErCzNeJOVLhTxPqaKDDQ+JEmIHGYAK354RNpchIlvGVDcuedZXEGL6Nl6Q==} + zsa-react@0.2.3: + resolution: {integrity: sha512-THCoIIhtEU3jXTrNBM/PBc0PyHCekizSGEc+fg0LGo1NM1J02LFQN7ICR948X25IjtkZdvxUZmT0+M73GG8eEw==} peerDependencies: react: ^18.0.0 || ^19.0.0 zod: ^3.23.5 @@ -9529,7 +9532,7 @@ snapshots: optionalDependencies: zod: 3.23.8 - '@ai-sdk/vue@0.0.49(vue@3.5.6(typescript@5.6.2))(zod@3.23.8)': + '@ai-sdk/vue@0.0.50(vue@3.5.6(typescript@5.6.2))(zod@3.23.8)': dependencies: '@ai-sdk/provider-utils': 1.0.19(zod@3.23.8) '@ai-sdk/ui-utils': 0.0.44(zod@3.23.8) @@ -9549,20 +9552,20 @@ snapshots: '@aws-crypto/crc32@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.649.0 + '@aws-sdk/types': 3.654.0 tslib: 2.7.0 '@aws-crypto/crc32c@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.649.0 + '@aws-sdk/types': 3.654.0 tslib: 2.7.0 '@aws-crypto/sha1-browser@5.2.0': dependencies: '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.649.0 + '@aws-sdk/types': 3.654.0 '@aws-sdk/util-locate-window': 3.568.0 '@smithy/util-utf8': 2.3.0 tslib: 2.7.0 @@ -9572,7 +9575,7 @@ snapshots: '@aws-crypto/sha256-js': 5.2.0 '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.649.0 + '@aws-sdk/types': 3.654.0 '@aws-sdk/util-locate-window': 3.568.0 '@smithy/util-utf8': 2.3.0 tslib: 2.7.0 @@ -9580,7 +9583,7 @@ snapshots: '@aws-crypto/sha256-js@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.649.0 + '@aws-sdk/types': 3.654.0 tslib: 2.7.0 '@aws-crypto/supports-web-crypto@5.2.0': @@ -9589,27 +9592,27 @@ snapshots: '@aws-crypto/util@5.2.0': dependencies: - '@aws-sdk/types': 3.649.0 + '@aws-sdk/types': 3.654.0 '@smithy/util-utf8': 2.3.0 tslib: 2.7.0 - '@aws-sdk/client-ecs@3.651.1': + '@aws-sdk/client-ecs@3.654.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sso-oidc': 3.651.1(@aws-sdk/client-sts@3.651.1) - '@aws-sdk/client-sts': 3.651.1 - '@aws-sdk/core': 3.651.1 - '@aws-sdk/credential-provider-node': 3.651.1(@aws-sdk/client-sso-oidc@3.651.1(@aws-sdk/client-sts@3.651.1))(@aws-sdk/client-sts@3.651.1) - '@aws-sdk/middleware-host-header': 3.649.0 - '@aws-sdk/middleware-logger': 3.649.0 - '@aws-sdk/middleware-recursion-detection': 3.649.0 - '@aws-sdk/middleware-user-agent': 3.649.0 - '@aws-sdk/region-config-resolver': 3.649.0 - '@aws-sdk/types': 3.649.0 - '@aws-sdk/util-endpoints': 3.649.0 - '@aws-sdk/util-user-agent-browser': 3.649.0 - '@aws-sdk/util-user-agent-node': 3.649.0 + '@aws-sdk/client-sso-oidc': 3.654.0(@aws-sdk/client-sts@3.654.0) + '@aws-sdk/client-sts': 3.654.0 + '@aws-sdk/core': 3.654.0 + '@aws-sdk/credential-provider-node': 3.654.0(@aws-sdk/client-sso-oidc@3.654.0(@aws-sdk/client-sts@3.654.0))(@aws-sdk/client-sts@3.654.0) + '@aws-sdk/middleware-host-header': 3.654.0 + '@aws-sdk/middleware-logger': 3.654.0 + '@aws-sdk/middleware-recursion-detection': 3.654.0 + '@aws-sdk/middleware-user-agent': 3.654.0 + '@aws-sdk/region-config-resolver': 3.654.0 + '@aws-sdk/types': 3.654.0 + '@aws-sdk/util-endpoints': 3.654.0 + '@aws-sdk/util-user-agent-browser': 3.654.0 + '@aws-sdk/util-user-agent-node': 3.654.0 '@smithy/config-resolver': 3.0.8 '@smithy/core': 2.4.3 '@smithy/fetch-http-handler': 3.2.7 @@ -9641,32 +9644,32 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-s3@3.651.1': + '@aws-sdk/client-s3@3.654.0': dependencies: '@aws-crypto/sha1-browser': 5.2.0 '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sso-oidc': 3.651.1(@aws-sdk/client-sts@3.651.1) - '@aws-sdk/client-sts': 3.651.1 - '@aws-sdk/core': 3.651.1 - '@aws-sdk/credential-provider-node': 3.651.1(@aws-sdk/client-sso-oidc@3.651.1(@aws-sdk/client-sts@3.651.1))(@aws-sdk/client-sts@3.651.1) - '@aws-sdk/middleware-bucket-endpoint': 3.649.0 - '@aws-sdk/middleware-expect-continue': 3.649.0 - '@aws-sdk/middleware-flexible-checksums': 3.651.1 - '@aws-sdk/middleware-host-header': 3.649.0 - '@aws-sdk/middleware-location-constraint': 3.649.0 - '@aws-sdk/middleware-logger': 3.649.0 - '@aws-sdk/middleware-recursion-detection': 3.649.0 - '@aws-sdk/middleware-sdk-s3': 3.651.1 - '@aws-sdk/middleware-ssec': 3.649.0 - '@aws-sdk/middleware-user-agent': 3.649.0 - '@aws-sdk/region-config-resolver': 3.649.0 - '@aws-sdk/signature-v4-multi-region': 3.651.1 - '@aws-sdk/types': 3.649.0 - '@aws-sdk/util-endpoints': 3.649.0 - '@aws-sdk/util-user-agent-browser': 3.649.0 - '@aws-sdk/util-user-agent-node': 3.649.0 - '@aws-sdk/xml-builder': 3.649.0 + '@aws-sdk/client-sso-oidc': 3.654.0(@aws-sdk/client-sts@3.654.0) + '@aws-sdk/client-sts': 3.654.0 + '@aws-sdk/core': 3.654.0 + '@aws-sdk/credential-provider-node': 3.654.0(@aws-sdk/client-sso-oidc@3.654.0(@aws-sdk/client-sts@3.654.0))(@aws-sdk/client-sts@3.654.0) + '@aws-sdk/middleware-bucket-endpoint': 3.654.0 + '@aws-sdk/middleware-expect-continue': 3.654.0 + '@aws-sdk/middleware-flexible-checksums': 3.654.0 + '@aws-sdk/middleware-host-header': 3.654.0 + '@aws-sdk/middleware-location-constraint': 3.654.0 + '@aws-sdk/middleware-logger': 3.654.0 + '@aws-sdk/middleware-recursion-detection': 3.654.0 + '@aws-sdk/middleware-sdk-s3': 3.654.0 + '@aws-sdk/middleware-ssec': 3.654.0 + '@aws-sdk/middleware-user-agent': 3.654.0 + '@aws-sdk/region-config-resolver': 3.654.0 + '@aws-sdk/signature-v4-multi-region': 3.654.0 + '@aws-sdk/types': 3.654.0 + '@aws-sdk/util-endpoints': 3.654.0 + '@aws-sdk/util-user-agent-browser': 3.654.0 + '@aws-sdk/util-user-agent-node': 3.654.0 + '@aws-sdk/xml-builder': 3.654.0 '@smithy/config-resolver': 3.0.8 '@smithy/core': 2.4.3 '@smithy/eventstream-serde-browser': 3.0.9 @@ -9704,22 +9707,22 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sso-oidc@3.651.1(@aws-sdk/client-sts@3.651.1)': + '@aws-sdk/client-sso-oidc@3.654.0(@aws-sdk/client-sts@3.654.0)': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sts': 3.651.1 - '@aws-sdk/core': 3.651.1 - '@aws-sdk/credential-provider-node': 3.651.1(@aws-sdk/client-sso-oidc@3.651.1(@aws-sdk/client-sts@3.651.1))(@aws-sdk/client-sts@3.651.1) - '@aws-sdk/middleware-host-header': 3.649.0 - '@aws-sdk/middleware-logger': 3.649.0 - '@aws-sdk/middleware-recursion-detection': 3.649.0 - '@aws-sdk/middleware-user-agent': 3.649.0 - '@aws-sdk/region-config-resolver': 3.649.0 - '@aws-sdk/types': 3.649.0 - '@aws-sdk/util-endpoints': 3.649.0 - '@aws-sdk/util-user-agent-browser': 3.649.0 - '@aws-sdk/util-user-agent-node': 3.649.0 + '@aws-sdk/client-sts': 3.654.0 + '@aws-sdk/core': 3.654.0 + '@aws-sdk/credential-provider-node': 3.654.0(@aws-sdk/client-sso-oidc@3.654.0(@aws-sdk/client-sts@3.654.0))(@aws-sdk/client-sts@3.654.0) + '@aws-sdk/middleware-host-header': 3.654.0 + '@aws-sdk/middleware-logger': 3.654.0 + '@aws-sdk/middleware-recursion-detection': 3.654.0 + '@aws-sdk/middleware-user-agent': 3.654.0 + '@aws-sdk/region-config-resolver': 3.654.0 + '@aws-sdk/types': 3.654.0 + '@aws-sdk/util-endpoints': 3.654.0 + '@aws-sdk/util-user-agent-browser': 3.654.0 + '@aws-sdk/util-user-agent-node': 3.654.0 '@smithy/config-resolver': 3.0.8 '@smithy/core': 2.4.3 '@smithy/fetch-http-handler': 3.2.7 @@ -9749,20 +9752,20 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sso@3.651.1': + '@aws-sdk/client-sso@3.654.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.651.1 - '@aws-sdk/middleware-host-header': 3.649.0 - '@aws-sdk/middleware-logger': 3.649.0 - '@aws-sdk/middleware-recursion-detection': 3.649.0 - '@aws-sdk/middleware-user-agent': 3.649.0 - '@aws-sdk/region-config-resolver': 3.649.0 - '@aws-sdk/types': 3.649.0 - '@aws-sdk/util-endpoints': 3.649.0 - '@aws-sdk/util-user-agent-browser': 3.649.0 - '@aws-sdk/util-user-agent-node': 3.649.0 + '@aws-sdk/core': 3.654.0 + '@aws-sdk/middleware-host-header': 3.654.0 + '@aws-sdk/middleware-logger': 3.654.0 + '@aws-sdk/middleware-recursion-detection': 3.654.0 + '@aws-sdk/middleware-user-agent': 3.654.0 + '@aws-sdk/region-config-resolver': 3.654.0 + '@aws-sdk/types': 3.654.0 + '@aws-sdk/util-endpoints': 3.654.0 + '@aws-sdk/util-user-agent-browser': 3.654.0 + '@aws-sdk/util-user-agent-node': 3.654.0 '@smithy/config-resolver': 3.0.8 '@smithy/core': 2.4.3 '@smithy/fetch-http-handler': 3.2.7 @@ -9792,22 +9795,22 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sts@3.651.1': + '@aws-sdk/client-sts@3.654.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-sso-oidc': 3.651.1(@aws-sdk/client-sts@3.651.1) - '@aws-sdk/core': 3.651.1 - '@aws-sdk/credential-provider-node': 3.651.1(@aws-sdk/client-sso-oidc@3.651.1(@aws-sdk/client-sts@3.651.1))(@aws-sdk/client-sts@3.651.1) - '@aws-sdk/middleware-host-header': 3.649.0 - '@aws-sdk/middleware-logger': 3.649.0 - '@aws-sdk/middleware-recursion-detection': 3.649.0 - '@aws-sdk/middleware-user-agent': 3.649.0 - '@aws-sdk/region-config-resolver': 3.649.0 - '@aws-sdk/types': 3.649.0 - '@aws-sdk/util-endpoints': 3.649.0 - '@aws-sdk/util-user-agent-browser': 3.649.0 - '@aws-sdk/util-user-agent-node': 3.649.0 + '@aws-sdk/client-sso-oidc': 3.654.0(@aws-sdk/client-sts@3.654.0) + '@aws-sdk/core': 3.654.0 + '@aws-sdk/credential-provider-node': 3.654.0(@aws-sdk/client-sso-oidc@3.654.0(@aws-sdk/client-sts@3.654.0))(@aws-sdk/client-sts@3.654.0) + '@aws-sdk/middleware-host-header': 3.654.0 + '@aws-sdk/middleware-logger': 3.654.0 + '@aws-sdk/middleware-recursion-detection': 3.654.0 + '@aws-sdk/middleware-user-agent': 3.654.0 + '@aws-sdk/region-config-resolver': 3.654.0 + '@aws-sdk/types': 3.654.0 + '@aws-sdk/util-endpoints': 3.654.0 + '@aws-sdk/util-user-agent-browser': 3.654.0 + '@aws-sdk/util-user-agent-node': 3.654.0 '@smithy/config-resolver': 3.0.8 '@smithy/core': 2.4.3 '@smithy/fetch-http-handler': 3.2.7 @@ -9837,7 +9840,7 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/core@3.651.1': + '@aws-sdk/core@3.654.0': dependencies: '@smithy/core': 2.4.3 '@smithy/node-config-provider': 3.1.7 @@ -9850,16 +9853,16 @@ snapshots: fast-xml-parser: 4.4.1 tslib: 2.7.0 - '@aws-sdk/credential-provider-env@3.649.0': + '@aws-sdk/credential-provider-env@3.654.0': dependencies: - '@aws-sdk/types': 3.649.0 + '@aws-sdk/types': 3.654.0 '@smithy/property-provider': 3.1.6 '@smithy/types': 3.4.2 tslib: 2.7.0 - '@aws-sdk/credential-provider-http@3.649.0': + '@aws-sdk/credential-provider-http@3.654.0': dependencies: - '@aws-sdk/types': 3.649.0 + '@aws-sdk/types': 3.654.0 '@smithy/fetch-http-handler': 3.2.7 '@smithy/node-http-handler': 3.2.2 '@smithy/property-provider': 3.1.6 @@ -9869,15 +9872,15 @@ snapshots: '@smithy/util-stream': 3.1.6 tslib: 2.7.0 - '@aws-sdk/credential-provider-ini@3.651.1(@aws-sdk/client-sso-oidc@3.651.1(@aws-sdk/client-sts@3.651.1))(@aws-sdk/client-sts@3.651.1)': + '@aws-sdk/credential-provider-ini@3.654.0(@aws-sdk/client-sso-oidc@3.654.0(@aws-sdk/client-sts@3.654.0))(@aws-sdk/client-sts@3.654.0)': dependencies: - '@aws-sdk/client-sts': 3.651.1 - '@aws-sdk/credential-provider-env': 3.649.0 - '@aws-sdk/credential-provider-http': 3.649.0 - '@aws-sdk/credential-provider-process': 3.649.0 - '@aws-sdk/credential-provider-sso': 3.651.1(@aws-sdk/client-sso-oidc@3.651.1(@aws-sdk/client-sts@3.651.1)) - '@aws-sdk/credential-provider-web-identity': 3.649.0(@aws-sdk/client-sts@3.651.1) - '@aws-sdk/types': 3.649.0 + '@aws-sdk/client-sts': 3.654.0 + '@aws-sdk/credential-provider-env': 3.654.0 + '@aws-sdk/credential-provider-http': 3.654.0 + '@aws-sdk/credential-provider-process': 3.654.0 + '@aws-sdk/credential-provider-sso': 3.654.0(@aws-sdk/client-sso-oidc@3.654.0(@aws-sdk/client-sts@3.654.0)) + '@aws-sdk/credential-provider-web-identity': 3.654.0(@aws-sdk/client-sts@3.654.0) + '@aws-sdk/types': 3.654.0 '@smithy/credential-provider-imds': 3.2.3 '@smithy/property-provider': 3.1.6 '@smithy/shared-ini-file-loader': 3.1.7 @@ -9887,15 +9890,15 @@ snapshots: - '@aws-sdk/client-sso-oidc' - aws-crt - '@aws-sdk/credential-provider-node@3.651.1(@aws-sdk/client-sso-oidc@3.651.1(@aws-sdk/client-sts@3.651.1))(@aws-sdk/client-sts@3.651.1)': + '@aws-sdk/credential-provider-node@3.654.0(@aws-sdk/client-sso-oidc@3.654.0(@aws-sdk/client-sts@3.654.0))(@aws-sdk/client-sts@3.654.0)': dependencies: - '@aws-sdk/credential-provider-env': 3.649.0 - '@aws-sdk/credential-provider-http': 3.649.0 - '@aws-sdk/credential-provider-ini': 3.651.1(@aws-sdk/client-sso-oidc@3.651.1(@aws-sdk/client-sts@3.651.1))(@aws-sdk/client-sts@3.651.1) - '@aws-sdk/credential-provider-process': 3.649.0 - '@aws-sdk/credential-provider-sso': 3.651.1(@aws-sdk/client-sso-oidc@3.651.1(@aws-sdk/client-sts@3.651.1)) - '@aws-sdk/credential-provider-web-identity': 3.649.0(@aws-sdk/client-sts@3.651.1) - '@aws-sdk/types': 3.649.0 + '@aws-sdk/credential-provider-env': 3.654.0 + '@aws-sdk/credential-provider-http': 3.654.0 + '@aws-sdk/credential-provider-ini': 3.654.0(@aws-sdk/client-sso-oidc@3.654.0(@aws-sdk/client-sts@3.654.0))(@aws-sdk/client-sts@3.654.0) + '@aws-sdk/credential-provider-process': 3.654.0 + '@aws-sdk/credential-provider-sso': 3.654.0(@aws-sdk/client-sso-oidc@3.654.0(@aws-sdk/client-sts@3.654.0)) + '@aws-sdk/credential-provider-web-identity': 3.654.0(@aws-sdk/client-sts@3.654.0) + '@aws-sdk/types': 3.654.0 '@smithy/credential-provider-imds': 3.2.3 '@smithy/property-provider': 3.1.6 '@smithy/shared-ini-file-loader': 3.1.7 @@ -9906,19 +9909,19 @@ snapshots: - '@aws-sdk/client-sts' - aws-crt - '@aws-sdk/credential-provider-process@3.649.0': + '@aws-sdk/credential-provider-process@3.654.0': dependencies: - '@aws-sdk/types': 3.649.0 + '@aws-sdk/types': 3.654.0 '@smithy/property-provider': 3.1.6 '@smithy/shared-ini-file-loader': 3.1.7 '@smithy/types': 3.4.2 tslib: 2.7.0 - '@aws-sdk/credential-provider-sso@3.651.1(@aws-sdk/client-sso-oidc@3.651.1(@aws-sdk/client-sts@3.651.1))': + '@aws-sdk/credential-provider-sso@3.654.0(@aws-sdk/client-sso-oidc@3.654.0(@aws-sdk/client-sts@3.654.0))': dependencies: - '@aws-sdk/client-sso': 3.651.1 - '@aws-sdk/token-providers': 3.649.0(@aws-sdk/client-sso-oidc@3.651.1(@aws-sdk/client-sts@3.651.1)) - '@aws-sdk/types': 3.649.0 + '@aws-sdk/client-sso': 3.654.0 + '@aws-sdk/token-providers': 3.654.0(@aws-sdk/client-sso-oidc@3.654.0(@aws-sdk/client-sts@3.654.0)) + '@aws-sdk/types': 3.654.0 '@smithy/property-provider': 3.1.6 '@smithy/shared-ini-file-loader': 3.1.7 '@smithy/types': 3.4.2 @@ -9927,17 +9930,17 @@ snapshots: - '@aws-sdk/client-sso-oidc' - aws-crt - '@aws-sdk/credential-provider-web-identity@3.649.0(@aws-sdk/client-sts@3.651.1)': + '@aws-sdk/credential-provider-web-identity@3.654.0(@aws-sdk/client-sts@3.654.0)': dependencies: - '@aws-sdk/client-sts': 3.651.1 - '@aws-sdk/types': 3.649.0 + '@aws-sdk/client-sts': 3.654.0 + '@aws-sdk/types': 3.654.0 '@smithy/property-provider': 3.1.6 '@smithy/types': 3.4.2 tslib: 2.7.0 - '@aws-sdk/middleware-bucket-endpoint@3.649.0': + '@aws-sdk/middleware-bucket-endpoint@3.654.0': dependencies: - '@aws-sdk/types': 3.649.0 + '@aws-sdk/types': 3.654.0 '@aws-sdk/util-arn-parser': 3.568.0 '@smithy/node-config-provider': 3.1.7 '@smithy/protocol-http': 4.1.3 @@ -9945,18 +9948,18 @@ snapshots: '@smithy/util-config-provider': 3.0.0 tslib: 2.7.0 - '@aws-sdk/middleware-expect-continue@3.649.0': + '@aws-sdk/middleware-expect-continue@3.654.0': dependencies: - '@aws-sdk/types': 3.649.0 + '@aws-sdk/types': 3.654.0 '@smithy/protocol-http': 4.1.3 '@smithy/types': 3.4.2 tslib: 2.7.0 - '@aws-sdk/middleware-flexible-checksums@3.651.1': + '@aws-sdk/middleware-flexible-checksums@3.654.0': dependencies: '@aws-crypto/crc32': 5.2.0 '@aws-crypto/crc32c': 5.2.0 - '@aws-sdk/types': 3.649.0 + '@aws-sdk/types': 3.654.0 '@smithy/is-array-buffer': 3.0.0 '@smithy/node-config-provider': 3.1.7 '@smithy/protocol-http': 4.1.3 @@ -9965,36 +9968,36 @@ snapshots: '@smithy/util-utf8': 3.0.0 tslib: 2.7.0 - '@aws-sdk/middleware-host-header@3.649.0': + '@aws-sdk/middleware-host-header@3.654.0': dependencies: - '@aws-sdk/types': 3.649.0 + '@aws-sdk/types': 3.654.0 '@smithy/protocol-http': 4.1.3 '@smithy/types': 3.4.2 tslib: 2.7.0 - '@aws-sdk/middleware-location-constraint@3.649.0': + '@aws-sdk/middleware-location-constraint@3.654.0': dependencies: - '@aws-sdk/types': 3.649.0 + '@aws-sdk/types': 3.654.0 '@smithy/types': 3.4.2 tslib: 2.7.0 - '@aws-sdk/middleware-logger@3.649.0': + '@aws-sdk/middleware-logger@3.654.0': dependencies: - '@aws-sdk/types': 3.649.0 + '@aws-sdk/types': 3.654.0 '@smithy/types': 3.4.2 tslib: 2.7.0 - '@aws-sdk/middleware-recursion-detection@3.649.0': + '@aws-sdk/middleware-recursion-detection@3.654.0': dependencies: - '@aws-sdk/types': 3.649.0 + '@aws-sdk/types': 3.654.0 '@smithy/protocol-http': 4.1.3 '@smithy/types': 3.4.2 tslib: 2.7.0 - '@aws-sdk/middleware-sdk-s3@3.651.1': + '@aws-sdk/middleware-sdk-s3@3.654.0': dependencies: - '@aws-sdk/core': 3.651.1 - '@aws-sdk/types': 3.649.0 + '@aws-sdk/core': 3.654.0 + '@aws-sdk/types': 3.654.0 '@aws-sdk/util-arn-parser': 3.568.0 '@smithy/core': 2.4.3 '@smithy/node-config-provider': 3.1.7 @@ -10008,59 +10011,59 @@ snapshots: '@smithy/util-utf8': 3.0.0 tslib: 2.7.0 - '@aws-sdk/middleware-ssec@3.649.0': + '@aws-sdk/middleware-ssec@3.654.0': dependencies: - '@aws-sdk/types': 3.649.0 + '@aws-sdk/types': 3.654.0 '@smithy/types': 3.4.2 tslib: 2.7.0 - '@aws-sdk/middleware-user-agent@3.649.0': + '@aws-sdk/middleware-user-agent@3.654.0': dependencies: - '@aws-sdk/types': 3.649.0 - '@aws-sdk/util-endpoints': 3.649.0 + '@aws-sdk/types': 3.654.0 + '@aws-sdk/util-endpoints': 3.654.0 '@smithy/protocol-http': 4.1.3 '@smithy/types': 3.4.2 tslib: 2.7.0 - '@aws-sdk/region-config-resolver@3.649.0': + '@aws-sdk/region-config-resolver@3.654.0': dependencies: - '@aws-sdk/types': 3.649.0 + '@aws-sdk/types': 3.654.0 '@smithy/node-config-provider': 3.1.7 '@smithy/types': 3.4.2 '@smithy/util-config-provider': 3.0.0 '@smithy/util-middleware': 3.0.6 tslib: 2.7.0 - '@aws-sdk/s3-request-presigner@3.651.1': + '@aws-sdk/s3-request-presigner@3.654.0': dependencies: - '@aws-sdk/signature-v4-multi-region': 3.651.1 - '@aws-sdk/types': 3.649.0 - '@aws-sdk/util-format-url': 3.649.0 + '@aws-sdk/signature-v4-multi-region': 3.654.0 + '@aws-sdk/types': 3.654.0 + '@aws-sdk/util-format-url': 3.654.0 '@smithy/middleware-endpoint': 3.1.3 '@smithy/protocol-http': 4.1.3 '@smithy/smithy-client': 3.3.2 '@smithy/types': 3.4.2 tslib: 2.7.0 - '@aws-sdk/signature-v4-multi-region@3.651.1': + '@aws-sdk/signature-v4-multi-region@3.654.0': dependencies: - '@aws-sdk/middleware-sdk-s3': 3.651.1 - '@aws-sdk/types': 3.649.0 + '@aws-sdk/middleware-sdk-s3': 3.654.0 + '@aws-sdk/types': 3.654.0 '@smithy/protocol-http': 4.1.3 '@smithy/signature-v4': 4.1.3 '@smithy/types': 3.4.2 tslib: 2.7.0 - '@aws-sdk/token-providers@3.649.0(@aws-sdk/client-sso-oidc@3.651.1(@aws-sdk/client-sts@3.651.1))': + '@aws-sdk/token-providers@3.654.0(@aws-sdk/client-sso-oidc@3.654.0(@aws-sdk/client-sts@3.654.0))': dependencies: - '@aws-sdk/client-sso-oidc': 3.651.1(@aws-sdk/client-sts@3.651.1) - '@aws-sdk/types': 3.649.0 + '@aws-sdk/client-sso-oidc': 3.654.0(@aws-sdk/client-sts@3.654.0) + '@aws-sdk/types': 3.654.0 '@smithy/property-provider': 3.1.6 '@smithy/shared-ini-file-loader': 3.1.7 '@smithy/types': 3.4.2 tslib: 2.7.0 - '@aws-sdk/types@3.649.0': + '@aws-sdk/types@3.654.0': dependencies: '@smithy/types': 3.4.2 tslib: 2.7.0 @@ -10069,16 +10072,16 @@ snapshots: dependencies: tslib: 2.7.0 - '@aws-sdk/util-endpoints@3.649.0': + '@aws-sdk/util-endpoints@3.654.0': dependencies: - '@aws-sdk/types': 3.649.0 + '@aws-sdk/types': 3.654.0 '@smithy/types': 3.4.2 '@smithy/util-endpoints': 2.1.2 tslib: 2.7.0 - '@aws-sdk/util-format-url@3.649.0': + '@aws-sdk/util-format-url@3.654.0': dependencies: - '@aws-sdk/types': 3.649.0 + '@aws-sdk/types': 3.654.0 '@smithy/querystring-builder': 3.0.6 '@smithy/types': 3.4.2 tslib: 2.7.0 @@ -10087,21 +10090,21 @@ snapshots: dependencies: tslib: 2.7.0 - '@aws-sdk/util-user-agent-browser@3.649.0': + '@aws-sdk/util-user-agent-browser@3.654.0': dependencies: - '@aws-sdk/types': 3.649.0 + '@aws-sdk/types': 3.654.0 '@smithy/types': 3.4.2 bowser: 2.11.0 tslib: 2.7.0 - '@aws-sdk/util-user-agent-node@3.649.0': + '@aws-sdk/util-user-agent-node@3.654.0': dependencies: - '@aws-sdk/types': 3.649.0 + '@aws-sdk/types': 3.654.0 '@smithy/node-config-provider': 3.1.7 '@smithy/types': 3.4.2 tslib: 2.7.0 - '@aws-sdk/xml-builder@3.649.0': + '@aws-sdk/xml-builder@3.654.0': dependencies: '@smithy/types': 3.4.2 tslib: 2.7.0 @@ -10699,7 +10702,7 @@ snapshots: '@floating-ui/utils@0.2.8': {} - '@grpc/grpc-js@1.11.2': + '@grpc/grpc-js@1.11.3': dependencies: '@grpc/proto-loader': 0.7.13 '@js-sdsl/ordered-map': 4.4.2 @@ -10901,9 +10904,9 @@ snapshots: '@logdna/tail-file@2.2.0': {} - '@lucia-auth/adapter-drizzle@1.1.0(drizzle-orm@0.33.0(@opentelemetry/api@1.9.0)(@types/pg@8.11.10)(@types/react@18.3.0)(pg@8.12.0)(react@19.0.0-rc-f994737d14-20240522))(lucia@3.2.0)': + '@lucia-auth/adapter-drizzle@1.1.0(drizzle-orm@0.33.0(@opentelemetry/api@1.9.0)(@types/pg@8.11.10)(@types/react@18.3.0)(pg@8.13.0)(react@19.0.0-rc-f994737d14-20240522))(lucia@3.2.0)': dependencies: - drizzle-orm: 0.33.0(@opentelemetry/api@1.9.0)(@types/pg@8.11.10)(@types/react@18.3.0)(pg@8.12.0)(react@19.0.0-rc-f994737d14-20240522) + drizzle-orm: 0.33.0(@opentelemetry/api@1.9.0)(@types/pg@8.11.10)(@types/react@18.3.0)(pg@8.13.0)(react@19.0.0-rc-f994737d14-20240522) lucia: 3.2.0 '@lukeed/ms@2.0.2': {} @@ -10961,7 +10964,7 @@ snapshots: '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3': optional: true - '@mswjs/interceptors@0.35.6': + '@mswjs/interceptors@0.35.8': dependencies: '@open-draft/deferred-promise': 2.2.0 '@open-draft/logger': 0.3.0 @@ -10974,7 +10977,7 @@ snapshots: '@next/env@14.3.0-canary.87': {} - '@next/eslint-plugin-next@14.2.11': + '@next/eslint-plugin-next@14.2.13': dependencies: glob: 10.3.10 @@ -11197,7 +11200,7 @@ snapshots: '@npmcli/metavuln-calculator': 7.1.1 '@npmcli/name-from-folder': 2.0.0 '@npmcli/node-gyp': 3.0.0 - '@npmcli/package-json': 5.2.0 + '@npmcli/package-json': 5.2.1 '@npmcli/query': 3.1.0 '@npmcli/redact': 2.0.1 '@npmcli/run-script': 8.1.0 @@ -11274,7 +11277,7 @@ snapshots: '@npmcli/node-gyp@3.0.0': {} - '@npmcli/package-json@5.2.0': + '@npmcli/package-json@5.2.1': dependencies: '@npmcli/git': 5.0.8 glob: 10.4.5 @@ -11299,7 +11302,7 @@ snapshots: '@npmcli/run-script@8.1.0': dependencies: '@npmcli/node-gyp': 3.0.0 - '@npmcli/package-json': 5.2.0 + '@npmcli/package-json': 5.2.1 '@npmcli/promise-spawn': 7.0.2 node-gyp: 10.2.0 proc-log: 4.2.0 @@ -11666,7 +11669,7 @@ snapshots: '@pulumi/awsx@2.15.0(ts-node@10.9.2(@types/node@18.19.50)(typescript@5.6.2))(typescript@5.6.2)': dependencies: - '@aws-sdk/client-ecs': 3.651.1 + '@aws-sdk/client-ecs': 3.654.0 '@pulumi/aws': 6.52.0(ts-node@10.9.2(@types/node@18.19.50)(typescript@5.6.2))(typescript@5.6.2) '@pulumi/docker': 4.5.5(ts-node@10.9.2(@types/node@18.19.50)(typescript@5.6.2))(typescript@5.6.2) '@pulumi/pulumi': 3.133.0(ts-node@10.9.2(@types/node@18.19.50)(typescript@5.6.2))(typescript@5.6.2) @@ -11703,7 +11706,7 @@ snapshots: '@pulumi/pulumi@3.133.0(ts-node@10.9.2(@types/node@18.19.50)(typescript@5.6.2))(typescript@5.6.2)': dependencies: - '@grpc/grpc-js': 1.11.2 + '@grpc/grpc-js': 1.11.3 '@logdna/tail-file': 2.2.0 '@npmcli/arborist': 7.5.4 '@opentelemetry/api': 1.9.0 @@ -12654,11 +12657,11 @@ snapshots: dependencies: react: 18.3.1 - '@rollup/plugin-alias@5.1.0(rollup@4.21.3)': + '@rollup/plugin-alias@5.1.0(rollup@4.22.2)': dependencies: slash: 4.0.0 optionalDependencies: - rollup: 4.21.3 + rollup: 4.22.2 '@rollup/plugin-commonjs@26.0.1(rollup@3.29.4)': dependencies: @@ -12671,77 +12674,77 @@ snapshots: optionalDependencies: rollup: 3.29.4 - '@rollup/plugin-typescript@11.1.6(rollup@4.21.3)(tslib@2.7.0)(typescript@5.6.2)': + '@rollup/plugin-typescript@11.1.6(rollup@4.22.2)(tslib@2.7.0)(typescript@5.6.2)': dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.21.3) + '@rollup/pluginutils': 5.1.0(rollup@4.22.2) resolve: 1.22.8 typescript: 5.6.2 optionalDependencies: - rollup: 4.21.3 + rollup: 4.22.2 tslib: 2.7.0 '@rollup/pluginutils@5.1.0(rollup@3.29.4)': dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 estree-walker: 2.0.2 picomatch: 2.3.1 optionalDependencies: rollup: 3.29.4 - '@rollup/pluginutils@5.1.0(rollup@4.21.3)': + '@rollup/pluginutils@5.1.0(rollup@4.22.2)': dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 estree-walker: 2.0.2 picomatch: 2.3.1 optionalDependencies: - rollup: 4.21.3 + rollup: 4.22.2 - '@rollup/rollup-android-arm-eabi@4.21.3': + '@rollup/rollup-android-arm-eabi@4.22.2': optional: true - '@rollup/rollup-android-arm64@4.21.3': + '@rollup/rollup-android-arm64@4.22.2': optional: true - '@rollup/rollup-darwin-arm64@4.21.3': + '@rollup/rollup-darwin-arm64@4.22.2': optional: true - '@rollup/rollup-darwin-x64@4.21.3': + '@rollup/rollup-darwin-x64@4.22.2': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.21.3': + '@rollup/rollup-linux-arm-gnueabihf@4.22.2': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.21.3': + '@rollup/rollup-linux-arm-musleabihf@4.22.2': optional: true - '@rollup/rollup-linux-arm64-gnu@4.21.3': + '@rollup/rollup-linux-arm64-gnu@4.22.2': optional: true - '@rollup/rollup-linux-arm64-musl@4.21.3': + '@rollup/rollup-linux-arm64-musl@4.22.2': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.21.3': + '@rollup/rollup-linux-powerpc64le-gnu@4.22.2': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.21.3': + '@rollup/rollup-linux-riscv64-gnu@4.22.2': optional: true - '@rollup/rollup-linux-s390x-gnu@4.21.3': + '@rollup/rollup-linux-s390x-gnu@4.22.2': optional: true - '@rollup/rollup-linux-x64-gnu@4.21.3': + '@rollup/rollup-linux-x64-gnu@4.22.2': optional: true - '@rollup/rollup-linux-x64-musl@4.21.3': + '@rollup/rollup-linux-x64-musl@4.22.2': optional: true - '@rollup/rollup-win32-arm64-msvc@4.21.3': + '@rollup/rollup-win32-arm64-msvc@4.22.2': optional: true - '@rollup/rollup-win32-ia32-msvc@4.21.3': + '@rollup/rollup-win32-ia32-msvc@4.22.2': optional: true - '@rollup/rollup-win32-x64-msvc@4.21.3': + '@rollup/rollup-win32-x64-msvc@4.22.2': optional: true '@rtsao/scc@1.1.0': {} @@ -12850,7 +12853,7 @@ snapshots: '@sentry/types': 8.30.0 '@sentry/utils': 8.30.0 - '@sentry/nextjs@8.30.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.53.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@14.3.0-canary.87(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(react-dom@19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522))(react@19.0.0-rc-f994737d14-20240522))(react@19.0.0-rc-f994737d14-20240522)(webpack@5.94.0(esbuild@0.19.12))': + '@sentry/nextjs@8.30.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.53.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@14.3.0-canary.87(@opentelemetry/api@1.9.0)(react-dom@19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522))(react@19.0.0-rc-f994737d14-20240522))(react@19.0.0-rc-f994737d14-20240522)(webpack@5.94.0(esbuild@0.19.12))': dependencies: '@opentelemetry/instrumentation-http': 0.53.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.27.0 @@ -12864,7 +12867,7 @@ snapshots: '@sentry/vercel-edge': 8.30.0 '@sentry/webpack-plugin': 2.22.3(encoding@0.1.13)(webpack@5.94.0(esbuild@0.19.12)) chalk: 3.0.0 - next: 14.3.0-canary.87(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(react-dom@19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522))(react@19.0.0-rc-f994737d14-20240522) + next: 14.3.0-canary.87(@opentelemetry/api@1.9.0)(react-dom@19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522))(react@19.0.0-rc-f994737d14-20240522) resolve: 1.22.8 rollup: 3.29.4 stacktrace-parser: 0.1.10 @@ -13505,6 +13508,8 @@ snapshots: '@types/estree@1.0.5': {} + '@types/estree@1.0.6': {} + '@types/eventsource@1.1.15': {} '@types/express-serve-static-core@4.19.5': @@ -13549,7 +13554,7 @@ snapshots: '@types/mute-stream@0.0.4': dependencies: - '@types/node': 20.16.5 + '@types/node': 22.5.5 '@types/mysql@2.15.26': dependencies: @@ -13570,13 +13575,13 @@ snapshots: '@types/nodemailer-html-to-text@3.1.3': dependencies: '@types/html-to-text': 9.0.4 - '@types/nodemailer': 6.4.15 + '@types/nodemailer': 6.4.16 '@types/nodemailer-mailgun-transport@1.4.6': dependencies: - '@types/nodemailer': 6.4.15 + '@types/nodemailer': 6.4.16 - '@types/nodemailer@6.4.15': + '@types/nodemailer@6.4.16': dependencies: '@types/node': 22.5.5 @@ -13591,13 +13596,13 @@ snapshots: '@types/pg@8.11.10': dependencies: '@types/node': 22.5.5 - pg-protocol: 1.6.1 + pg-protocol: 1.7.0 pg-types: 4.0.2 '@types/pg@8.6.1': dependencies: '@types/node': 22.5.5 - pg-protocol: 1.6.1 + pg-protocol: 1.7.0 pg-types: 2.2.0 '@types/pluralize@0.0.33': {} @@ -13860,7 +13865,7 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vercel/style-guide@5.2.0(@next/eslint-plugin-next@14.2.11)(eslint@8.57.1)(prettier@3.3.3)(typescript@5.6.2)': + '@vercel/style-guide@5.2.0(@next/eslint-plugin-next@14.2.13)(eslint@8.57.1)(prettier@3.3.3)(typescript@5.6.2)': dependencies: '@babel/core': 7.25.2 '@babel/eslint-parser': 7.25.1(@babel/core@7.25.2)(eslint@8.57.1) @@ -13882,7 +13887,7 @@ snapshots: eslint-plugin-unicorn: 48.0.1(eslint@8.57.1) prettier-plugin-packagejson: 2.5.2(prettier@3.3.3) optionalDependencies: - '@next/eslint-plugin-next': 14.2.11 + '@next/eslint-plugin-next': 14.2.13 eslint: 8.57.1 prettier: 3.3.3 typescript: 5.6.2 @@ -13906,23 +13911,23 @@ snapshots: chai: 5.1.1 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.1(@vitest/spy@2.1.1)(msw@2.4.8(typescript@5.6.2))(vite@5.4.6(@types/node@20.16.5)(terser@5.32.0))': + '@vitest/mocker@2.1.1(@vitest/spy@2.1.1)(msw@2.4.9(typescript@5.6.2))(vite@5.4.6(@types/node@20.16.5)(terser@5.33.0))': dependencies: '@vitest/spy': 2.1.1 estree-walker: 3.0.3 magic-string: 0.30.11 optionalDependencies: - msw: 2.4.8(typescript@5.6.2) - vite: 5.4.6(@types/node@20.16.5)(terser@5.32.0) + msw: 2.4.9(typescript@5.6.2) + vite: 5.4.6(@types/node@20.16.5)(terser@5.33.0) - '@vitest/mocker@2.1.1(@vitest/spy@2.1.1)(msw@2.4.8(typescript@5.6.2))(vite@5.4.6(@types/node@22.5.5)(terser@5.32.0))': + '@vitest/mocker@2.1.1(@vitest/spy@2.1.1)(msw@2.4.9(typescript@5.6.2))(vite@5.4.6(@types/node@22.5.5)(terser@5.33.0))': dependencies: '@vitest/spy': 2.1.1 estree-walker: 3.0.3 magic-string: 0.30.11 optionalDependencies: - msw: 2.4.8(typescript@5.6.2) - vite: 5.4.6(@types/node@22.5.5)(terser@5.32.0) + msw: 2.4.9(typescript@5.6.2) + vite: 5.4.6(@types/node@22.5.5)(terser@5.33.0) '@vitest/pretty-format@2.1.1': dependencies: @@ -14144,7 +14149,7 @@ snapshots: clean-stack: 2.2.0 indent-string: 4.0.0 - ai@3.3.39(react@18.3.1)(sswr@2.1.0(svelte@4.2.19))(svelte@4.2.19)(vue@3.5.6(typescript@5.6.2))(zod@3.23.8): + ai@3.3.43(react@18.3.1)(sswr@2.1.0(svelte@4.2.19))(svelte@4.2.19)(vue@3.5.6(typescript@5.6.2))(zod@3.23.8): dependencies: '@ai-sdk/provider': 0.0.23 '@ai-sdk/provider-utils': 1.0.19(zod@3.23.8) @@ -14152,7 +14157,7 @@ snapshots: '@ai-sdk/solid': 0.0.47(zod@3.23.8) '@ai-sdk/svelte': 0.0.49(svelte@4.2.19)(zod@3.23.8) '@ai-sdk/ui-utils': 0.0.44(zod@3.23.8) - '@ai-sdk/vue': 0.0.49(vue@3.5.6(typescript@5.6.2))(zod@3.23.8) + '@ai-sdk/vue': 0.0.50(vue@3.5.6(typescript@5.6.2))(zod@3.23.8) '@opentelemetry/api': 1.9.0 eventsource-parser: 1.1.2 json-schema: 0.4.0 @@ -14169,7 +14174,7 @@ snapshots: - solid-js - vue - ai@3.3.39(react@19.0.0-rc-f994737d14-20240522)(sswr@2.1.0(svelte@4.2.19))(svelte@4.2.19)(vue@3.5.6(typescript@5.6.2))(zod@3.23.8): + ai@3.3.43(react@19.0.0-rc-f994737d14-20240522)(sswr@2.1.0(svelte@4.2.19))(svelte@4.2.19)(vue@3.5.6(typescript@5.6.2))(zod@3.23.8): dependencies: '@ai-sdk/provider': 0.0.23 '@ai-sdk/provider-utils': 1.0.19(zod@3.23.8) @@ -14177,7 +14182,7 @@ snapshots: '@ai-sdk/solid': 0.0.47(zod@3.23.8) '@ai-sdk/svelte': 0.0.49(svelte@4.2.19)(zod@3.23.8) '@ai-sdk/ui-utils': 0.0.44(zod@3.23.8) - '@ai-sdk/vue': 0.0.49(vue@3.5.6(typescript@5.6.2))(zod@3.23.8) + '@ai-sdk/vue': 0.0.50(vue@3.5.6(typescript@5.6.2))(zod@3.23.8) '@opentelemetry/api': 1.9.0 eventsource-parser: 1.1.2 json-schema: 0.4.0 @@ -14348,7 +14353,7 @@ snapshots: autoprefixer@10.4.20(postcss@8.4.47): dependencies: browserslist: 4.23.3 - caniuse-lite: 1.0.30001660 + caniuse-lite: 1.0.30001662 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.0 @@ -14443,8 +14448,8 @@ snapshots: browserslist@4.23.3: dependencies: - caniuse-lite: 1.0.30001660 - electron-to-chromium: 1.5.24 + caniuse-lite: 1.0.30001662 + electron-to-chromium: 1.5.26 node-releases: 2.0.18 update-browserslist-db: 1.1.0(browserslist@4.23.3) @@ -14465,7 +14470,7 @@ snapshots: builtin-modules@3.3.0: {} - bullmq@5.13.0: + bullmq@5.13.1: dependencies: cron-parser: 4.9.0 ioredis: 5.4.1 @@ -14529,7 +14534,7 @@ snapshots: camelcase-css@2.0.1: {} - caniuse-lite@1.0.30001660: {} + caniuse-lite@1.0.30001662: {} case-anything@3.1.0: {} @@ -14640,7 +14645,7 @@ snapshots: code-red@1.0.4: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 acorn: 8.12.1 estree-walker: 3.0.3 periscopic: 3.1.0 @@ -15000,20 +15005,20 @@ snapshots: transitivePeerDependencies: - supports-color - drizzle-orm@0.33.0(@opentelemetry/api@1.9.0)(@types/pg@8.11.10)(@types/react@18.3.0)(pg@8.12.0)(react@18.3.1): + drizzle-orm@0.33.0(@opentelemetry/api@1.9.0)(@types/pg@8.11.10)(@types/react@18.3.0)(pg@8.13.0)(react@18.3.1): optionalDependencies: '@opentelemetry/api': 1.9.0 '@types/pg': 8.11.10 '@types/react': 18.3.0 - pg: 8.12.0 + pg: 8.13.0 react: 18.3.1 - drizzle-orm@0.33.0(@opentelemetry/api@1.9.0)(@types/pg@8.11.10)(@types/react@18.3.0)(pg@8.12.0)(react@19.0.0-rc-f994737d14-20240522): + drizzle-orm@0.33.0(@opentelemetry/api@1.9.0)(@types/pg@8.11.10)(@types/react@18.3.0)(pg@8.13.0)(react@19.0.0-rc-f994737d14-20240522): optionalDependencies: '@opentelemetry/api': 1.9.0 '@types/pg': 8.11.10 '@types/react': 18.3.0 - pg: 8.12.0 + pg: 8.13.0 react: 19.0.0-rc-f994737d14-20240522 eastasianwidth@0.2.0: {} @@ -15027,7 +15032,7 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.24: {} + electron-to-chromium@1.5.26: {} emoji-regex@8.0.0: {} @@ -15627,7 +15632,7 @@ snapshots: estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 esutils@2.0.3: {} @@ -15786,15 +15791,15 @@ snapshots: flattie@1.1.1: {} - flydrive@1.1.0(@aws-sdk/client-s3@3.651.1)(@aws-sdk/s3-request-presigner@3.651.1): + flydrive@1.1.0(@aws-sdk/client-s3@3.654.0)(@aws-sdk/s3-request-presigner@3.654.0): dependencies: '@humanwhocodes/retry': 0.3.0 '@poppinss/utils': 6.8.1 etag: 1.8.1 mime-types: 2.1.35 optionalDependencies: - '@aws-sdk/client-s3': 3.651.1 - '@aws-sdk/s3-request-presigner': 3.651.1 + '@aws-sdk/client-s3': 3.654.0 + '@aws-sdk/s3-request-presigner': 3.654.0 follow-redirects@1.15.9: {} @@ -16291,11 +16296,11 @@ snapshots: is-reference@1.2.1: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 is-reference@3.0.2: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 is-regex@1.1.4: dependencies: @@ -16373,7 +16378,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 20.16.5 + '@types/node': 22.5.5 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -16779,13 +16784,13 @@ snapshots: optionalDependencies: msgpackr-extract: 3.0.3 - msw@2.4.8(typescript@5.6.2): + msw@2.4.9(typescript@5.6.2): dependencies: '@bundled-es-modules/cookie': 2.0.0 '@bundled-es-modules/statuses': 1.0.1 '@bundled-es-modules/tough-cookie': 0.1.6 '@inquirer/confirm': 3.2.0 - '@mswjs/interceptors': 0.35.6 + '@mswjs/interceptors': 0.35.8 '@open-draft/until': 2.1.0 '@types/cookie': 0.6.0 '@types/statuses': 2.0.5 @@ -16831,7 +16836,7 @@ snapshots: '@next/env': 14.2.3 '@swc/helpers': 0.5.5 busboy: 1.6.0 - caniuse-lite: 1.0.30001660 + caniuse-lite: 1.0.30001662 graceful-fs: 4.2.11 postcss: 8.4.31 react: 18.3.1 @@ -16852,17 +16857,17 @@ snapshots: - '@babel/core' - babel-plugin-macros - next@14.3.0-canary.87(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(react-dom@19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522))(react@19.0.0-rc-f994737d14-20240522): + next@14.3.0-canary.87(@opentelemetry/api@1.9.0)(react-dom@19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522))(react@19.0.0-rc-f994737d14-20240522): dependencies: '@next/env': 14.3.0-canary.87 '@swc/helpers': 0.5.11 busboy: 1.6.0 - caniuse-lite: 1.0.30001660 + caniuse-lite: 1.0.30001662 graceful-fs: 4.2.11 postcss: 8.4.31 react: 19.0.0-rc-f994737d14-20240522 react-dom: 19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522) - styled-jsx: 5.1.6(@babel/core@7.25.2)(react@19.0.0-rc-f994737d14-20240522) + styled-jsx: 5.1.6(react@19.0.0-rc-f994737d14-20240522) optionalDependencies: '@next/swc-darwin-arm64': 14.3.0-canary.87 '@next/swc-darwin-x64': 14.3.0-canary.87 @@ -16879,9 +16884,9 @@ snapshots: - '@babel/core' - babel-plugin-macros - nextjs-toploader@1.6.12(next@14.3.0-canary.87(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(react-dom@19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522))(react@19.0.0-rc-f994737d14-20240522))(react-dom@19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522))(react@19.0.0-rc-f994737d14-20240522): + nextjs-toploader@1.6.12(next@14.3.0-canary.87(@opentelemetry/api@1.9.0)(react-dom@19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522))(react@19.0.0-rc-f994737d14-20240522))(react-dom@19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522))(react@19.0.0-rc-f994737d14-20240522): dependencies: - next: 14.3.0-canary.87(@babel/core@7.25.2)(@opentelemetry/api@1.9.0)(react-dom@19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522))(react@19.0.0-rc-f994737d14-20240522) + next: 14.3.0-canary.87(@opentelemetry/api@1.9.0)(react-dom@19.0.0-rc-f994737d14-20240522(react@19.0.0-rc-f994737d14-20240522))(react@19.0.0-rc-f994737d14-20240522) nprogress: 0.2.0 prop-types: 15.8.1 react: 19.0.0-rc-f994737d14-20240522 @@ -17212,7 +17217,7 @@ snapshots: dependencies: '@npmcli/git': 5.0.8 '@npmcli/installed-package-contents': 2.1.0 - '@npmcli/package-json': 5.2.0 + '@npmcli/package-json': 5.2.1 '@npmcli/promise-spawn': 7.0.2 '@npmcli/run-script': 8.1.0 cacache: 18.0.4 @@ -17299,28 +17304,28 @@ snapshots: periscopic@3.1.0: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 estree-walker: 3.0.3 is-reference: 3.0.2 pg-cloudflare@1.1.1: optional: true - pg-connection-string@2.6.4: {} + pg-connection-string@2.7.0: {} pg-int8@1.0.1: {} pg-numeric@1.0.2: {} - pg-pool@3.6.2(pg@8.12.0): + pg-pool@3.7.0(pg@8.13.0): dependencies: - pg: 8.12.0 + pg: 8.13.0 - pg-protocol@1.6.1: {} + pg-protocol@1.7.0: {} - pg-transactional-tests@1.1.0(pg@8.12.0): + pg-transactional-tests@1.1.0(pg@8.13.0): dependencies: - pg: 8.12.0 + pg: 8.13.0 pg-types@2.2.0: dependencies: @@ -17340,11 +17345,11 @@ snapshots: postgres-interval: 3.0.0 postgres-range: 1.1.4 - pg@8.12.0: + pg@8.13.0: dependencies: - pg-connection-string: 2.6.4 - pg-pool: 3.6.2(pg@8.12.0) - pg-protocol: 1.6.1 + pg-connection-string: 2.7.0 + pg-pool: 3.7.0(pg@8.13.0) + pg-protocol: 1.7.0 pg-types: 2.2.0 pgpass: 1.0.5 optionalDependencies: @@ -17463,7 +17468,7 @@ snapshots: postgres-range@1.1.4: {} - posthog-js@1.161.6: + posthog-js@1.163.0: dependencies: fflate: 0.4.8 preact: 10.24.0 @@ -17950,10 +17955,10 @@ snapshots: dependencies: glob: 7.2.3 - rollup-plugin-dts@6.1.1(rollup@4.21.3)(typescript@5.6.2): + rollup-plugin-dts@6.1.1(rollup@4.22.2)(typescript@5.6.2): dependencies: magic-string: 0.30.11 - rollup: 4.21.3 + rollup: 4.22.2 typescript: 5.6.2 optionalDependencies: '@babel/code-frame': 7.24.7 @@ -17962,26 +17967,26 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - rollup@4.21.3: + rollup@4.22.2: dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.21.3 - '@rollup/rollup-android-arm64': 4.21.3 - '@rollup/rollup-darwin-arm64': 4.21.3 - '@rollup/rollup-darwin-x64': 4.21.3 - '@rollup/rollup-linux-arm-gnueabihf': 4.21.3 - '@rollup/rollup-linux-arm-musleabihf': 4.21.3 - '@rollup/rollup-linux-arm64-gnu': 4.21.3 - '@rollup/rollup-linux-arm64-musl': 4.21.3 - '@rollup/rollup-linux-powerpc64le-gnu': 4.21.3 - '@rollup/rollup-linux-riscv64-gnu': 4.21.3 - '@rollup/rollup-linux-s390x-gnu': 4.21.3 - '@rollup/rollup-linux-x64-gnu': 4.21.3 - '@rollup/rollup-linux-x64-musl': 4.21.3 - '@rollup/rollup-win32-arm64-msvc': 4.21.3 - '@rollup/rollup-win32-ia32-msvc': 4.21.3 - '@rollup/rollup-win32-x64-msvc': 4.21.3 + '@rollup/rollup-android-arm-eabi': 4.22.2 + '@rollup/rollup-android-arm64': 4.22.2 + '@rollup/rollup-darwin-arm64': 4.22.2 + '@rollup/rollup-darwin-x64': 4.22.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.22.2 + '@rollup/rollup-linux-arm-musleabihf': 4.22.2 + '@rollup/rollup-linux-arm64-gnu': 4.22.2 + '@rollup/rollup-linux-arm64-musl': 4.22.2 + '@rollup/rollup-linux-powerpc64le-gnu': 4.22.2 + '@rollup/rollup-linux-riscv64-gnu': 4.22.2 + '@rollup/rollup-linux-s390x-gnu': 4.22.2 + '@rollup/rollup-linux-x64-gnu': 4.22.2 + '@rollup/rollup-linux-x64-musl': 4.22.2 + '@rollup/rollup-win32-arm64-msvc': 4.22.2 + '@rollup/rollup-win32-ia32-msvc': 4.22.2 + '@rollup/rollup-win32-x64-msvc': 4.22.2 fsevents: 2.3.3 rrweb-cssom@0.7.1: {} @@ -18404,12 +18409,10 @@ snapshots: optionalDependencies: '@babel/core': 7.24.5 - styled-jsx@5.1.6(@babel/core@7.25.2)(react@19.0.0-rc-f994737d14-20240522): + styled-jsx@5.1.6(react@19.0.0-rc-f994737d14-20240522): dependencies: client-only: 0.0.1 react: 19.0.0-rc-f994737d14-20240522 - optionalDependencies: - '@babel/core': 7.25.2 sucrase@3.35.0: dependencies: @@ -18461,7 +18464,7 @@ snapshots: '@ampproject/remapping': 2.3.0 '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 acorn: 8.12.1 aria-query: 5.3.1 axobject-query: 4.1.0 @@ -18500,11 +18503,11 @@ snapshots: tailwind-merge@2.5.2: {} - tailwindcss-animate@1.0.7(tailwindcss@3.4.11(ts-node@10.9.2(@types/node@22.5.5)(typescript@5.6.2))): + tailwindcss-animate@1.0.7(tailwindcss@3.4.12(ts-node@10.9.2(@types/node@22.5.5)(typescript@5.6.2))): dependencies: - tailwindcss: 3.4.11(ts-node@10.9.2(@types/node@22.5.5)(typescript@5.6.2)) + tailwindcss: 3.4.12(ts-node@10.9.2(@types/node@22.5.5)(typescript@5.6.2)) - tailwindcss@3.4.11(ts-node@10.9.2(@types/node@20.16.5)(typescript@5.6.2)): + tailwindcss@3.4.12(ts-node@10.9.2(@types/node@20.16.5)(typescript@5.6.2)): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -18531,7 +18534,7 @@ snapshots: transitivePeerDependencies: - ts-node - tailwindcss@3.4.11(ts-node@10.9.2(@types/node@22.5.5)(typescript@5.6.2)): + tailwindcss@3.4.12(ts-node@10.9.2(@types/node@22.5.5)(typescript@5.6.2)): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -18575,12 +18578,12 @@ snapshots: jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 - terser: 5.32.0 + terser: 5.33.0 webpack: 5.94.0(esbuild@0.19.12) optionalDependencies: esbuild: 0.19.12 - terser@5.32.0: + terser@5.33.0: dependencies: '@jridgewell/source-map': 0.3.6 acorn: 8.12.1 @@ -18743,7 +18746,7 @@ snapshots: picocolors: 1.1.0 postcss-load-config: 6.0.1(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(yaml@2.5.1) resolve-from: 5.0.0 - rollup: 4.21.3 + rollup: 4.22.2 source-map: 0.8.0-beta.0 sucrase: 3.35.0 tinyglobby: 0.2.6 @@ -19051,13 +19054,13 @@ snapshots: d3-time: 3.1.0 d3-timer: 3.0.1 - vite-node@1.6.0(@types/node@20.16.5)(terser@5.32.0): + vite-node@1.6.0(@types/node@20.16.5)(terser@5.33.0): dependencies: cac: 6.7.14 debug: 4.3.7 pathe: 1.1.2 picocolors: 1.1.0 - vite: 5.4.6(@types/node@20.16.5)(terser@5.32.0) + vite: 5.4.6(@types/node@20.16.5)(terser@5.33.0) transitivePeerDependencies: - '@types/node' - less @@ -19069,12 +19072,12 @@ snapshots: - supports-color - terser - vite-node@2.1.1(@types/node@20.16.5)(terser@5.32.0): + vite-node@2.1.1(@types/node@20.16.5)(terser@5.33.0): dependencies: cac: 6.7.14 debug: 4.3.7 pathe: 1.1.2 - vite: 5.4.6(@types/node@20.16.5)(terser@5.32.0) + vite: 5.4.6(@types/node@20.16.5)(terser@5.33.0) transitivePeerDependencies: - '@types/node' - less @@ -19086,12 +19089,12 @@ snapshots: - supports-color - terser - vite-node@2.1.1(@types/node@22.5.5)(terser@5.32.0): + vite-node@2.1.1(@types/node@22.5.5)(terser@5.33.0): dependencies: cac: 6.7.14 debug: 4.3.7 pathe: 1.1.2 - vite: 5.4.6(@types/node@22.5.5)(terser@5.32.0) + vite: 5.4.6(@types/node@22.5.5)(terser@5.33.0) transitivePeerDependencies: - '@types/node' - less @@ -19103,27 +19106,27 @@ snapshots: - supports-color - terser - vite@5.4.6(@types/node@20.16.5)(terser@5.32.0): + vite@5.4.6(@types/node@20.16.5)(terser@5.33.0): dependencies: esbuild: 0.21.5 postcss: 8.4.47 - rollup: 4.21.3 + rollup: 4.22.2 optionalDependencies: '@types/node': 20.16.5 fsevents: 2.3.3 - terser: 5.32.0 + terser: 5.33.0 - vite@5.4.6(@types/node@22.5.5)(terser@5.32.0): + vite@5.4.6(@types/node@22.5.5)(terser@5.33.0): dependencies: esbuild: 0.21.5 postcss: 8.4.47 - rollup: 4.21.3 + rollup: 4.22.2 optionalDependencies: '@types/node': 22.5.5 fsevents: 2.3.3 - terser: 5.32.0 + terser: 5.33.0 - vitest@1.6.0(@types/node@20.16.5)(jsdom@24.1.3)(terser@5.32.0): + vitest@1.6.0(@types/node@20.16.5)(jsdom@24.1.3)(terser@5.33.0): dependencies: '@vitest/expect': 1.6.0 '@vitest/runner': 1.6.0 @@ -19142,8 +19145,8 @@ snapshots: strip-literal: 2.1.0 tinybench: 2.9.0 tinypool: 0.8.4 - vite: 5.4.6(@types/node@20.16.5)(terser@5.32.0) - vite-node: 1.6.0(@types/node@20.16.5)(terser@5.32.0) + vite: 5.4.6(@types/node@20.16.5)(terser@5.33.0) + vite-node: 1.6.0(@types/node@20.16.5)(terser@5.33.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 20.16.5 @@ -19158,10 +19161,10 @@ snapshots: - supports-color - terser - vitest@2.1.1(@types/node@20.16.5)(jsdom@24.1.3)(msw@2.4.8(typescript@5.6.2))(terser@5.32.0): + vitest@2.1.1(@types/node@20.16.5)(jsdom@24.1.3)(msw@2.4.9(typescript@5.6.2))(terser@5.33.0): dependencies: '@vitest/expect': 2.1.1 - '@vitest/mocker': 2.1.1(@vitest/spy@2.1.1)(msw@2.4.8(typescript@5.6.2))(vite@5.4.6(@types/node@20.16.5)(terser@5.32.0)) + '@vitest/mocker': 2.1.1(@vitest/spy@2.1.1)(msw@2.4.9(typescript@5.6.2))(vite@5.4.6(@types/node@20.16.5)(terser@5.33.0)) '@vitest/pretty-format': 2.1.1 '@vitest/runner': 2.1.1 '@vitest/snapshot': 2.1.1 @@ -19176,8 +19179,8 @@ snapshots: tinyexec: 0.3.0 tinypool: 1.0.1 tinyrainbow: 1.2.0 - vite: 5.4.6(@types/node@20.16.5)(terser@5.32.0) - vite-node: 2.1.1(@types/node@20.16.5)(terser@5.32.0) + vite: 5.4.6(@types/node@20.16.5)(terser@5.33.0) + vite-node: 2.1.1(@types/node@20.16.5)(terser@5.33.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 20.16.5 @@ -19193,10 +19196,10 @@ snapshots: - supports-color - terser - vitest@2.1.1(@types/node@22.5.5)(jsdom@24.1.3)(msw@2.4.8(typescript@5.6.2))(terser@5.32.0): + vitest@2.1.1(@types/node@22.5.5)(jsdom@24.1.3)(msw@2.4.9(typescript@5.6.2))(terser@5.33.0): dependencies: '@vitest/expect': 2.1.1 - '@vitest/mocker': 2.1.1(@vitest/spy@2.1.1)(msw@2.4.8(typescript@5.6.2))(vite@5.4.6(@types/node@22.5.5)(terser@5.32.0)) + '@vitest/mocker': 2.1.1(@vitest/spy@2.1.1)(msw@2.4.9(typescript@5.6.2))(vite@5.4.6(@types/node@22.5.5)(terser@5.33.0)) '@vitest/pretty-format': 2.1.1 '@vitest/runner': 2.1.1 '@vitest/snapshot': 2.1.1 @@ -19211,8 +19214,8 @@ snapshots: tinyexec: 0.3.0 tinypool: 1.0.1 tinyrainbow: 1.2.0 - vite: 5.4.6(@types/node@22.5.5)(terser@5.32.0) - vite-node: 2.1.1(@types/node@22.5.5)(terser@5.32.0) + vite: 5.4.6(@types/node@22.5.5)(terser@5.33.0) + vite-node: 2.1.1(@types/node@22.5.5)(terser@5.33.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.5.5 @@ -19267,7 +19270,7 @@ snapshots: webpack@5.94.0(esbuild@0.19.12): dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/wasm-edit': 1.12.1 '@webassemblyjs/wasm-parser': 1.12.1 @@ -19448,7 +19451,7 @@ snapshots: zod@3.23.8: {} - zsa-react@0.2.2(react@19.0.0-rc-f994737d14-20240522)(zod@3.23.8): + zsa-react@0.2.3(react@19.0.0-rc-f994737d14-20240522)(zod@3.23.8): dependencies: react: 19.0.0-rc-f994737d14-20240522 zod: 3.23.8