diff --git a/apps/app/src/actions/framework/select-frameworks-action.ts b/apps/app/src/actions/framework/select-frameworks-action.ts index fdb076e575..026f65deb9 100644 --- a/apps/app/src/actions/framework/select-frameworks-action.ts +++ b/apps/app/src/actions/framework/select-frameworks-action.ts @@ -149,6 +149,7 @@ const createOrganizationPolicy = async (user: User, frameworkIds: string[]) => { policyId: policy.id, status: "draft", content: policy.content as InputJsonValue[], + frequency: policy.frequency, })), }); @@ -265,6 +266,7 @@ const createOrganizationEvidence = async (user: User) => { evidenceId: evidence.id, name: evidence.name, description: evidence.description, + frequency: evidence.frequency, })), }); diff --git a/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/Actions/getOrganizationEvidenceTasks.ts b/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/Actions/getOrganizationEvidenceTasks.ts index 24561bc084..48775b3443 100644 --- a/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/Actions/getOrganizationEvidenceTasks.ts +++ b/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/Actions/getOrganizationEvidenceTasks.ts @@ -1,13 +1,33 @@ "use server"; import { authActionClient } from "@/actions/safe-action"; -import { db } from "@bubba/db"; +import { db, Frequency } from "@bubba/db"; +import type { Prisma, OrganizationEvidence } from "@bubba/db"; import { z } from "zod"; +// Define the response types for better type safety +export interface PaginationMetadata { + page: number; + pageSize: number; + totalCount: number; + totalPages: number; + hasNextPage: boolean; + hasPreviousPage: boolean; +} + +export interface EvidenceTasksData { + data: OrganizationEvidence[]; + pagination: PaginationMetadata; +} + export const getOrganizationEvidenceTasks = authActionClient .schema( z.object({ search: z.string().optional().nullable(), + status: z.enum(["published", "draft"]).optional().nullable(), + frequency: z.nativeEnum(Frequency).optional().nullable(), + page: z.number().int().positive().optional().default(1), + pageSize: z.number().int().positive().optional().default(10), }) ) .metadata({ @@ -19,7 +39,7 @@ export const getOrganizationEvidenceTasks = authActionClient }) .action(async ({ ctx, parsedInput }) => { const { user } = ctx; - const { search } = parsedInput; + const { search, status, frequency, page, pageSize } = parsedInput; if (!user.organizationId) { return { @@ -29,44 +49,78 @@ export const getOrganizationEvidenceTasks = authActionClient } try { - const evidenceTasks = await db.organizationEvidence.findMany({ - where: { - organizationId: user.organizationId, - ...(search - ? { - OR: [ - { - name: { - contains: search, - mode: "insensitive", - }, + // Create the where clause for both count and data queries + const whereClause: Prisma.OrganizationEvidenceWhereInput = { + organizationId: user.organizationId, + // Status filter + ...(status === "published" ? { published: true } : {}), + ...(status === "draft" ? { published: false } : {}), + // Frequency filter + ...(frequency ? { frequency } : {}), + // Search filter + ...(search + ? { + OR: [ + { + name: { + contains: search, + mode: "insensitive" as Prisma.QueryMode, }, - { - description: { - contains: search, - mode: "insensitive", - }, + }, + { + description: { + contains: search, + mode: "insensitive" as Prisma.QueryMode, }, - { - evidence: { - name: { - contains: search, - mode: "insensitive", - }, + }, + { + evidence: { + name: { + contains: search, + mode: "insensitive" as Prisma.QueryMode, }, }, - ], - } - : {}), - }, + }, + ], + } + : {}), + }; + + // Get total count for pagination + const totalCount = await db.organizationEvidence.count({ + where: whereClause, + }); + + // Calculate pagination values + const skip = (page - 1) * pageSize; + const totalPages = Math.ceil(totalCount / pageSize); + + // Get paginated data + const evidenceTasks = await db.organizationEvidence.findMany({ + where: whereClause, include: { evidence: true, }, + skip, + take: pageSize, + orderBy: { + updatedAt: "desc", // Most recently updated first + }, }); return { success: true, - data: evidenceTasks, + data: { + data: evidenceTasks, + pagination: { + page, + pageSize, + totalCount, + totalPages, + hasNextPage: page < totalPages, + hasPreviousPage: page > 1, + }, + }, }; } catch (error) { console.error("Error fetching evidence tasks:", error); diff --git a/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/Components/EvidenceList.tsx b/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/Components/EvidenceList.tsx index c50383fde3..7d9bea1c47 100644 --- a/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/Components/EvidenceList.tsx +++ b/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/Components/EvidenceList.tsx @@ -4,44 +4,293 @@ import { useOrganizationEvidenceTasks } from "../hooks/useEvidenceTasks"; import { DataTable } from "./data-table/data-table"; import { Input } from "@bubba/ui/input"; import { useQueryState } from "nuqs"; -import { useCallback } from "react"; +import { useCallback, useMemo } from "react"; import { debounce } from "lodash"; import { useI18n } from "@/locales/client"; import { SkeletonTable } from "./SkeletonTable"; +import { + CheckCircle2, + Filter, + XCircle, + ChevronLeft, + ChevronRight, +} from "lucide-react"; +import { Button } from "@bubba/ui/button"; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuLabel, + DropdownMenuSeparator, + DropdownMenuTrigger, + DropdownMenuCheckboxItem, +} from "@bubba/ui/dropdown-menu"; +import { Badge } from "@bubba/ui/badge"; +import type { Frequency } from "@bubba/db"; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from "@bubba/ui/select"; +import type { EvidenceTaskRow } from "./data-table/types"; export const EvidenceList = () => { const t = useI18n(); const [search, setSearch] = useQueryState("search"); + const [status, setStatus] = useQueryState("status"); + const [frequency, setFrequency] = useQueryState("frequency"); + const [page, setPage] = useQueryState("page", { defaultValue: "1" }); + const [pageSize, setPageSize] = useQueryState("pageSize", { + defaultValue: "10", + }); + + const currentPage = Number.parseInt(page, 10); + const currentPageSize = Number.parseInt(pageSize, 10); + const { data: evidenceTasks, + pagination, isLoading, error, - } = useOrganizationEvidenceTasks({ search }); + } = useOrganizationEvidenceTasks({ + search, + status: status as "published" | "draft" | null, + frequency: frequency as Frequency | null, + page: currentPage, + pageSize: currentPageSize, + }); const handleSearch = useCallback( debounce((value: string) => { setSearch(value || null); + // Reset to first page when searching + setPage("1"); }, 300), - [setSearch] + [setSearch, setPage] ); - if (error) return
Error loading evidence tasks
; + console.log({ evidenceTasks, error }); + + // Get unique frequencies for the dropdown + const frequencies = useMemo(() => { + if (!evidenceTasks) return []; + + const uniqueFrequencies = new Set(); + for (const task of evidenceTasks) { + if (task.frequency) { + uniqueFrequencies.add(task.frequency); + } + } + + return Array.from(uniqueFrequencies).sort(); + }, [evidenceTasks]); + + // Clear all filters + const clearFilters = () => { + setStatus(null); + setFrequency(null); + // Reset to first page when clearing filters + setPage("1"); + }; + + // Handle page change + const handlePageChange = (newPage: number) => { + setPage(newPage.toString()); + }; + + // Handle page size change + const handlePageSizeChange = (newSize: string) => { + setPageSize(newSize); + // Reset to first page when changing page size + setPage("1"); + }; + + // Check if any filters are active + const hasActiveFilters = status !== null || frequency !== null; + + if (error) return
Error: {error.message}
; if (!evidenceTasks && !isLoading) return null; + // Convert the data to the expected format for the DataTable + const tableData: EvidenceTaskRow[] = + evidenceTasks?.map((task) => ({ + ...task, + evidence: { + name: task.name, + }, + })) || []; + return (
-

Review and upload evidence

-
+

Evidence Tasks

+
handleSearch(e.target.value)} defaultValue={search || ""} className="max-w-sm" /> + + + + + + + Filter by Status + { + setStatus(status === "published" ? null : "published"); + setPage("1"); // Reset to first page when filtering + }} + > +
+ + Published +
+
+ { + setStatus(status === "draft" ? null : "draft"); + setPage("1"); // Reset to first page when filtering + }} + > +
+ + Draft +
+
+ + + + Filter by Frequency + {frequencies.map((freq) => ( + { + setFrequency(frequency === freq ? null : freq); + setPage("1"); // Reset to first page when filtering + }} + > + {freq} + + ))} + + {hasActiveFilters && ( + <> + + + + )} +
+
+ + {/* Active filter badges */} + {status && ( + { + setStatus(null); + setPage("1"); // Reset to first page when removing filter + }} + > + Status: {status === "published" ? "Published" : "Draft"} + + + )} + + {frequency && ( + { + setFrequency(null); + setPage("1"); // Reset to first page when removing filter + }} + > + Frequency: {frequency} + + + )}
- {isLoading ? : } + + {isLoading ? ( + + ) : ( + <> + + + {/* Pagination UI */} + {pagination && ( +
+
+ Showing {(currentPage - 1) * currentPageSize + 1} to{" "} + {Math.min(currentPage * currentPageSize, pagination.totalCount)}{" "} + of {pagination.totalCount} items +
+ +
+ + +
+ +
+ Page {currentPage} of {pagination.totalPages} +
+ +
+
+
+ )} + + )}
); }; diff --git a/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/Components/data-table/columns.tsx b/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/Components/data-table/columns.tsx index 3dc313822a..67b6a56420 100644 --- a/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/Components/data-table/columns.tsx +++ b/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/Components/data-table/columns.tsx @@ -9,59 +9,25 @@ import { TooltipTrigger, } from "@bubba/ui/tooltip"; import type { EvidenceTaskRow } from "./types"; +import { calculateNextReview } from "@/lib/utils/calculate-next-review"; +import { format } from "date-fns"; export const columns: ColumnDef[] = [ { id: "name", accessorKey: "name", header: "Name", - size: 200, - cell: ({ row }) => ( - - - -
{row.original.name}
-
- {row.original.name} -
-
- ), - }, - { - id: "description", - accessorKey: "description", - header: "Description", - size: 300, - cell: ({ row }) => { - const description = row.original.description; - if (!description) return null; - - return ( - - - -
{description}
-
- {description} -
-
- ); - }, - }, - { - id: "evidence", - accessorKey: "evidence.name", - header: "Evidence Type", - size: 150, + enableResizing: true, + enableSorting: true, + size: 100, + minSize: 200, cell: ({ row }) => ( - -
- {row.original.evidence.name} -
+ +
{row.original.name}
- {row.original.evidence.name} + {row.original.description}
), @@ -70,13 +36,16 @@ export const columns: ColumnDef[] = [ id: "status", accessorKey: "published", header: "Status", - size: 100, + enableResizing: true, + enableSorting: true, + size: 150, + minSize: 120, cell: ({ row }) => { const isPublished = row.original.published; const label = isPublished ? "Published" : "Draft"; return ( -
+
{isPublished ? ( ) : ( @@ -93,4 +62,49 @@ export const columns: ColumnDef[] = [ ); }, }, + { + id: "frequency", + accessorKey: "frequency", + header: "Frequency", + size: 150, + enableResizing: true, + minSize: 130, + enableSorting: true, + cell: ({ row }) => { + const frequency = row.original.frequency; + if (!frequency) return null; + + return
{frequency}
; + }, + }, + { + id: "nextReviewDate", + accessorKey: "nextReviewDate", + header: "Next Review Date", + size: 150, + enableResizing: true, + minSize: 180, + enableSorting: true, + cell: ({ row }) => { + if (row.original.lastPublishedAt === null) { + return
ASAP
; + } + + const reviewInfo = calculateNextReview( + row.original.lastPublishedAt, + row.original.frequency + ); + + if (!reviewInfo) return null; + + return ( +
+ {reviewInfo.daysUntil} days ( + {format(reviewInfo.nextReviewDate, "MM/dd/yyyy")}) +
+ ); + }, + }, ]; diff --git a/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/Components/data-table/data-table-header.tsx b/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/Components/data-table/data-table-header.tsx index 1be2eda65e..f454901ad5 100644 --- a/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/Components/data-table/data-table-header.tsx +++ b/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/Components/data-table/data-table-header.tsx @@ -2,18 +2,62 @@ import type { Table } from "@tanstack/react-table"; import { TableHead, TableHeader, TableRow } from "@bubba/ui/table"; +import { flexRender } from "@tanstack/react-table"; import type { EvidenceTaskRow } from "./types"; +import { ArrowDown, ArrowUp, ArrowUpDown } from "lucide-react"; +import { cn } from "@bubba/ui/cn"; -export function DataTableHeader({ table }: { table: Table }) { +interface DataTableHeaderProps { + table: Table; +} + +export function DataTableHeader({ table }: DataTableHeaderProps) { return ( - - {table.getAllColumns().map((column) => ( - - {column.columnDef.header as string} - - ))} - + {table.getHeaderGroups().map((headerGroup) => ( + + {headerGroup.headers.map((header) => ( + + {header.isPlaceholder ? null : ( +
+ {flexRender( + header.column.columnDef.header, + header.getContext() + )} + {{ + asc: , + desc: , + }[header.column.getIsSorted() as string] ?? + (header.column.getCanSort() && ( + + ))} +
+ )} +
+ + ))} + + ))} ); } diff --git a/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/Components/data-table/data-table.tsx b/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/Components/data-table/data-table.tsx index 57fc3a1316..582f6ca025 100644 --- a/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/Components/data-table/data-table.tsx +++ b/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/Components/data-table/data-table.tsx @@ -1,60 +1,94 @@ "use client"; import { + type Column, flexRender, getCoreRowModel, useReactTable, + getSortedRowModel, + type SortingState, } from "@tanstack/react-table"; import { Table, TableBody, TableCell, TableRow } from "@bubba/ui/table"; import { columns } from "./columns"; import { DataTableHeader } from "./data-table-header"; import type { EvidenceTaskRow } from "./types"; import { useRouter } from "next/navigation"; +import { useState } from "react"; export function DataTable({ data }: { data: EvidenceTaskRow[] }) { const router = useRouter(); + const [sorting, setSorting] = useState([ + { + id: "name", + desc: false, + }, + ]); + const table = useReactTable({ data, columns, getCoreRowModel: getCoreRowModel(), + getSortedRowModel: getSortedRowModel(), + enableColumnResizing: true, + columnResizeMode: "onChange", + state: { + sorting, + }, + onSortingChange: setSorting, }); return (
-
- - - - {table.getRowModel().rows?.length ? ( - table.getRowModel().rows.map((row) => ( - router.push(`/evidence/${row.original.id}`)} - > - {row.getVisibleCells().map((cell) => ( - - {flexRender( - cell.column.columnDef.cell, - cell.getContext() - )} - - ))} +
+
+
+ + + {table.getRowModel().rows?.length ? ( + table.getRowModel().rows.map((row) => ( + router.push(`/evidence/${row.original.id}`)} + > + {row.getVisibleCells().map((cell) => ( + +
+ {flexRender( + cell.column.columnDef.cell, + cell.getContext() + )} +
+
+ + ))} + + )) + ) : ( + + + No evidence tasks found. + - )) - ) : ( - - - No evidence tasks found. - - - )} - -
+ )} + + +
); diff --git a/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/[id]/Actions/publishEvidence.ts b/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/[id]/Actions/publishEvidence.ts new file mode 100644 index 0000000000..a9a58f22b3 --- /dev/null +++ b/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/[id]/Actions/publishEvidence.ts @@ -0,0 +1,78 @@ +"use server"; + +import { authActionClient } from "@/actions/safe-action"; +import { db } from "@bubba/db"; +import { z } from "zod"; + +const schema = z.object({ + id: z.string(), +}); + +interface SuccessResponse { + success: true; +} + +interface ErrorResponse { + success: false; + error: string; +} + +type ActionResponse = SuccessResponse | ErrorResponse; + +export const publishEvidence = authActionClient + .schema(schema) + .metadata({ + name: "publishEvidence", + track: { + event: "publish-evidence", + channel: "server", + }, + }) + .action(async ({ parsedInput, ctx }): Promise => { + const { user } = ctx; + const { id } = parsedInput; + + if (!user.organizationId) { + return { + success: false, + error: "Not authorized - no organization found", + }; + } + + try { + // Check if evidence exists and belongs to organization + const evidence = await db.organizationEvidence.findFirst({ + where: { + id, + organizationId: user.organizationId, + }, + }); + + if (!evidence) { + return { + success: false, + error: "Evidence not found", + }; + } + + // Update the evidence to mark it as published + await db.organizationEvidence.update({ + where: { id }, + data: { + published: true, + lastPublishedAt: new Date(), + }, + }); + + return { + success: true, + }; + } catch (error) { + console.error("Error publishing evidence:", error); + return { + success: false, + error: + error instanceof Error ? error.message : "Failed to publish evidence", + }; + } + }); diff --git a/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/[id]/Components/EvidenceDetails.tsx b/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/[id]/Components/EvidenceDetails.tsx index 05c4c055ea..b6f5e97547 100644 --- a/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/[id]/Components/EvidenceDetails.tsx +++ b/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/[id]/Components/EvidenceDetails.tsx @@ -4,19 +4,31 @@ import { useEffect } from "react"; import { useRouter } from "next/navigation"; import { Button } from "@bubba/ui/button"; import { ArrowLeft, CheckCircle2, XCircle } from "lucide-react"; -import { Card, CardContent, CardHeader } from "@bubba/ui/card"; +import { Card, CardContent, CardHeader, CardTitle } from "@bubba/ui/card"; import { Skeleton } from "@bubba/ui/skeleton"; -import { useI18n } from "@/locales/client"; import { useOrganizationEvidence } from "../hooks/useOrganizationEvidence"; import { FileSection } from "./FileSection"; import { UrlSection } from "./UrlSection"; +import { ReviewDateCard } from "./ReviewDateCard"; +import { publishEvidence } from "../Actions/publishEvidence"; +import { useAction } from "next-safe-action/hooks"; +import { toast } from "sonner"; import type { EvidenceDetailsProps } from "../types"; export function EvidenceDetails({ id }: EvidenceDetailsProps) { - const t = useI18n(); const router = useRouter(); const { data, isLoading, error, mutate } = useOrganizationEvidence({ id }); + const { execute: publishAction, isExecuting } = useAction(publishEvidence, { + onSuccess: () => { + toast.success("Evidence published successfully"); + mutate(); + }, + onError: () => { + toast.error("Failed to publish evidence, please try again."); + }, + }); + useEffect(() => { if (error) { router.push("/evidence"); @@ -55,17 +67,31 @@ export function EvidenceDetails({ id }: EvidenceDetailsProps) { return (
-
- -

{evidence.name}

+
+
+ +

{evidence.name}

+
+ {!evidence.published && ( + + )}
+ {evidence.frequency && ( + + )} +
{evidence.evidence.name}
diff --git a/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/[id]/Components/FileCard.tsx b/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/[id]/Components/FileCard.tsx index 84aaada97e..8ecd45316b 100644 --- a/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/[id]/Components/FileCard.tsx +++ b/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/[id]/Components/FileCard.tsx @@ -51,17 +51,31 @@ export function FileCard({ const isPdf = /\.pdf$/i.test(fileName); return ( - - + + - @@ -100,46 +114,58 @@ export function FileCard({ )} + + -

- {fileName} -

+
-

{fileName}

+

Open file

-
- - + - - - + + + + + + + + +

Delete file

+
+
+
Delete File @@ -150,10 +176,7 @@ export function FileCard({ Cancel - onDelete(url)} - className="bg-destructive hover:bg-destructive/90" - > + onDelete(url)}> Delete diff --git a/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/[id]/Components/FileSection.tsx b/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/[id]/Components/FileSection.tsx index a3f70957cc..eff5bf50c9 100644 --- a/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/[id]/Components/FileSection.tsx +++ b/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/[id]/Components/FileSection.tsx @@ -6,6 +6,8 @@ import { useFileUpload } from "../hooks/useFileUpload"; import { useFileDelete } from "../hooks/useFileDelete"; import { useFilePreview } from "../hooks/useFilePreview"; import { FileCard } from "./FileCard"; +import { Card, CardContent } from "@bubba/ui/card"; +import { Plus } from "lucide-react"; interface FileSectionProps { evidenceId: string; @@ -42,6 +44,7 @@ export function FileSection({ Record >({}); const [openDialogId, setOpenDialogId] = useState(null); + const [showUploadDropzone, setShowUploadDropzone] = useState(false); const handlePreviewClick = useCallback( async (fileUrl: string) => { @@ -77,37 +80,65 @@ export function FileSection({
- - - {fileUrls.length > 0 && ( -
- {fileUrls.map((url) => { - const previewState = previewStates[url] || { - url: null, - isLoading: false, - }; - - return ( - { - if (open) { - setOpenDialogId(url); - handlePreviewClick(url); - } else { - setOpenDialogId(null); - } - }} - onPreviewClick={handlePreviewClick} - onDelete={handleDelete} - /> - ); - })} + {/* Only show the full dropzone when no files exist or when explicitly shown */} + {(fileUrls.length === 0 || showUploadDropzone) && ( +
+ { + handleFileUpload(file); + setShowUploadDropzone(false); + }} + isUploading={isUploading} + />
)} + +
+ {/* Add Files Card - Always first in the grid */} + {!showUploadDropzone && fileUrls.length > 0 && ( + setShowUploadDropzone(true)} + > + +
+ +
+

Add Files

+

+ Upload additional evidence files +

+
+
+ )} + + {/* File Cards */} + {fileUrls.map((url) => { + const previewState = previewStates[url] || { + url: null, + isLoading: false, + }; + + return ( + { + if (open) { + setOpenDialogId(url); + handlePreviewClick(url); + } else { + setOpenDialogId(null); + } + }} + onPreviewClick={handlePreviewClick} + onDelete={handleDelete} + /> + ); + })} +
); } diff --git a/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/[id]/Components/ReviewDateCard.tsx b/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/[id]/Components/ReviewDateCard.tsx new file mode 100644 index 0000000000..6c7ceac31d --- /dev/null +++ b/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/[id]/Components/ReviewDateCard.tsx @@ -0,0 +1,43 @@ +"use client"; + +import type { Frequency } from "@bubba/db"; +import { Card, CardHeader, CardTitle, CardContent } from "@bubba/ui/card"; +import { calculateNextReview } from "@/lib/utils/calculate-next-review"; +import { format } from "date-fns"; + +export function ReviewDateCard({ + lastPublishedAt, + frequency, +}: { + lastPublishedAt: Date | null; + frequency: Frequency | null; +}) { + const reviewInfo = calculateNextReview(lastPublishedAt, frequency); + + if (!reviewInfo) { + return ( + + + Next Review Date + + +

ASAP

+
+
+ ); + } + + return ( + + + Next Review Date + + +
+ {reviewInfo.daysUntil} days ( + {format(reviewInfo.nextReviewDate, "MM/dd/yyyy")}) +
+
+
+ ); +} diff --git a/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/[id]/Components/UrlSection.tsx b/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/[id]/Components/UrlSection.tsx index 64a2514c23..2ccf6ecad5 100644 --- a/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/[id]/Components/UrlSection.tsx +++ b/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/[id]/Components/UrlSection.tsx @@ -2,8 +2,16 @@ import { Button } from "@bubba/ui/button"; import { Input } from "@bubba/ui/input"; -import { Plus, Trash, Save } from "lucide-react"; +import { Card, CardContent } from "@bubba/ui/card"; +import { Plus, Trash, Save, Link, ExternalLink, Copy } from "lucide-react"; import { useUrlManagement } from "../hooks/useUrlManagement"; +import { + Tooltip, + TooltipContent, + TooltipProvider, + TooltipTrigger, +} from "@bubba/ui/tooltip"; +import { Badge } from "@bubba/ui/badge"; interface UrlSectionProps { evidenceId: string; @@ -29,48 +37,51 @@ export function UrlSection({ onSuccess, }); + // Function to get domain name from URL for display + const getDomainName = (url: string) => { + try { + const domain = new URL(url).hostname; + return domain.replace(/^www\./, ""); + } catch (e) { + return url; + } + }; + + // Copy URL to clipboard + const copyToClipboard = (text: string) => { + navigator.clipboard.writeText(text); + }; + return ( -
+
-

Additional Links

+
+

Additional Links

+ {draftUrls.length === 0 && ( + + )} +
{additionalUrls.length} link{additionalUrls.length !== 1 ? "s" : ""}{" "} added
-
-
- {/* Existing URLs */} - {additionalUrls.map((url) => ( -
- - {url} - - -
- ))} - - {/* Draft URLs */} + {/* Draft URL Input Section */} + {draftUrls.length > 0 && ( +
{draftUrls.map((draft) => (
handleRemoveDraft(draft.id)} - className="h-8 w-8 hover:text-destructive" + className="h-9 w-9 hover:text-destructive" >
))} - {/* Action Buttons */} -
+
+ - {draftUrls.length > 0 && ( - - )}
+ )} + +
+ {/* URL List */} + {additionalUrls.length > 0 && ( +
+ {additionalUrls.map((url) => { + const domain = getDomainName(url); + + return ( +
+
+ +
+ +
+
+

{domain}

+ + URL + +
+

+ {url} +

+
+ +
+ + + + + + +

Copy link

+
+
+
+ + + + + + + +

Open link

+
+
+
+ + + + + + + +

Delete link

+
+
+
+
+
+ ); + })} +
+ )}
); diff --git a/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/hooks/useEvidenceTasks.ts b/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/hooks/useEvidenceTasks.ts index 43b3e920b9..6495fadd01 100644 --- a/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/hooks/useEvidenceTasks.ts +++ b/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/hooks/useEvidenceTasks.ts @@ -2,36 +2,66 @@ import useSWR from "swr"; import { getOrganizationEvidenceTasks } from "../Actions/getOrganizationEvidenceTasks"; +import type { PaginationMetadata } from "../Actions/getOrganizationEvidenceTasks"; +import type { Frequency, OrganizationEvidence } from "@bubba/db"; +// Define the props interface with clear types interface UseOrganizationEvidenceTasksProps { search?: string | null; + status?: "published" | "draft" | null; + frequency?: Frequency | null; + page?: number; + pageSize?: number; } -async function fetchEvidenceTasks({ - search, -}: UseOrganizationEvidenceTasksProps) { - const result = await getOrganizationEvidenceTasks({ search }); +// Define the hook result type +interface UseOrganizationEvidenceTasksResult { + data: OrganizationEvidence[] | undefined; + pagination: PaginationMetadata | undefined; + isLoading: boolean; + error: Error | undefined; + mutate: () => void; +} + +async function fetchEvidenceTasks(props: UseOrganizationEvidenceTasksProps) { + const result = await getOrganizationEvidenceTasks(props); + + if (!result) { + throw new Error("No result received"); + } - if (!result || "error" in result) { + if (result.serverError) { + throw new Error(result.serverError); + } + + if (result.validationErrors) { throw new Error( - typeof result?.error === "string" - ? result.error - : "Failed to fetch evidence tasks" + result.validationErrors._errors?.join(", ") ?? "Unknown error" ); } return result.data?.data; } -export function useOrganizationEvidenceTasks({ - search, -}: UseOrganizationEvidenceTasksProps = {}) { - return useSWR( - ["organization-evidence-tasks", search], - () => fetchEvidenceTasks({ search }), +export function useOrganizationEvidenceTasks( + props: UseOrganizationEvidenceTasksProps = {} +): UseOrganizationEvidenceTasksResult { + const { search, status, frequency, page = 1, pageSize = 10 } = props; + + const { data, error, isLoading, mutate } = useSWR( + ["organization-evidence-tasks", search, status, frequency, page, pageSize], + () => fetchEvidenceTasks({ search, status, frequency, page, pageSize }), { revalidateOnFocus: false, revalidateOnReconnect: false, } ); + + return { + data: data?.data ?? [], + pagination: data?.pagination, + isLoading, + error, + mutate, + }; } diff --git a/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/layout.tsx b/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/layout.tsx index 01ac815af1..a5cfa0b973 100644 --- a/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/layout.tsx +++ b/apps/app/src/app/[locale]/(app)/(dashboard)/evidence/layout.tsx @@ -11,9 +11,7 @@ export default async function Layout({ return (
- - -
{children}
+
{children}
); } diff --git a/apps/app/src/app/[locale]/providers.tsx b/apps/app/src/app/[locale]/providers.tsx index 5ac4729d68..4089f38c96 100644 --- a/apps/app/src/app/[locale]/providers.tsx +++ b/apps/app/src/app/[locale]/providers.tsx @@ -2,10 +2,9 @@ import { env } from "@/env.mjs"; import { I18nProviderClient } from "@/locales/client"; -import { Analytics, AnalyticsProvider } from "@bubba/analytics"; +import { AnalyticsProvider } from "@bubba/analytics"; import { useSession } from "next-auth/react"; import { ThemeProvider } from "next-themes"; -import { useEffect } from "react"; import type { ReactNode } from "react"; type ProviderProps = { @@ -18,22 +17,6 @@ export function Providers({ children, locale }: ProviderProps) { const hasAnalyticsKeys = env.NEXT_PUBLIC_POSTHOG_KEY && env.NEXT_PUBLIC_POSTHOG_HOST; - useEffect(() => { - if (hasAnalyticsKeys) { - Analytics.init({ - apiKey: env.NEXT_PUBLIC_POSTHOG_KEY!, - apiHost: env.NEXT_PUBLIC_POSTHOG_HOST!, - }); - - if (session?.user) { - Analytics.identify(session.user.id, { - email: session.user.email, - name: session.user.name, - }); - } - } - }, [hasAnalyticsKeys, session]); - return ( { if (pathname && posthog) { - let url = window.origin + pathname; - if (searchParams.toString()) { - url = `${url}?${searchParams.toString()}`; - } - posthog.capture("$pageview", { $current_url: url }); + // Track page views + const url = searchParams.toString() + ? `${pathname}?${searchParams.toString()}` + : pathname; + + // Track pageview with current URL + posthog.capture("$pageview", { + $current_url: url, + }); } }, [pathname, searchParams, posthog]); return null; } - -export function PostHogPageView() { - return ( - - - - ); -} diff --git a/packages/analytics/src/components/provider.tsx b/packages/analytics/src/components/provider.tsx index 6f9dd635be..0d310024b4 100644 --- a/packages/analytics/src/components/provider.tsx +++ b/packages/analytics/src/components/provider.tsx @@ -3,7 +3,6 @@ import posthog from "posthog-js"; import { PostHogProvider as PHProvider } from "posthog-js/react"; import { useEffect } from "react"; -import { Analytics } from ".."; import { PostHogPageView } from "./page-view"; interface ProviderProps { @@ -19,15 +18,21 @@ export function AnalyticsProvider({ apiHost, userId, }: ProviderProps) { + // Initialize PostHog in a useEffect to avoid hydration issues useEffect(() => { - const posthog = Analytics.init({ apiKey, apiHost }); - - if (userId) { - posthog?.identify(userId); - } + // Initialize PostHog only once on the client side + posthog.init(apiKey, { + api_host: apiHost, + loaded: (ph) => { + if (userId) { + ph.identify(userId); + } + }, + }); + // Clean up return () => { - posthog?.reset(); + posthog.reset(); }; }, [apiKey, apiHost, userId]); diff --git a/packages/analytics/src/index.ts b/packages/analytics/src/index.ts index e2574db5a7..e536dd21e3 100644 --- a/packages/analytics/src/index.ts +++ b/packages/analytics/src/index.ts @@ -1,53 +1,29 @@ import posthog from "posthog-js"; import type { Properties } from "posthog-js"; -interface AnalyticsConfig { - apiKey: string; - apiHost: string; -} - -let clientInstance: typeof posthog | null = null; - -// Client-side only code +// Simple wrapper around PostHog for server-side safety export const Analytics = { - init: (config: AnalyticsConfig) => { - if (typeof window === 'undefined') return null; - - if (!clientInstance) { - posthog.init(config.apiKey, { - api_host: config.apiHost, - ui_host: "https://us.posthog.com", - person_profiles: "always", - capture_pageview: true, - capture_pageleave: true, - }); - clientInstance = posthog; - } - - return clientInstance; - }, - track: (eventName: string, properties?: Properties) => { - if (!clientInstance || typeof window === 'undefined') return; - clientInstance.capture(eventName, properties); + if (typeof window === "undefined") return; + posthog.capture(eventName, properties); }, identify: (distinctId: string, properties?: Properties) => { - if (!clientInstance || typeof window === 'undefined') return; - clientInstance.identify(distinctId, properties); + if (typeof window === "undefined") return; + posthog.identify(distinctId, properties); }, reset: () => { - if (!clientInstance || typeof window === 'undefined') return; - clientInstance.reset(); + if (typeof window === "undefined") return; + posthog.reset(); }, page: (properties?: Properties) => { - if (!clientInstance || typeof window === 'undefined') return; - clientInstance.capture('$pageview', properties); + if (typeof window === "undefined") return; + posthog.capture("$pageview", properties); }, }; -// Only export React components for client components -export * from './components/provider'; -export * from './components/page-view'; +// Export components for client usage +export * from "./components/provider"; +export * from "./components/page-view"; diff --git a/packages/data/controls/soc2.json b/packages/data/controls/soc2.json index c18cbdd519..daebea67c0 100644 --- a/packages/data/controls/soc2.json +++ b/packages/data/controls/soc2.json @@ -11,7 +11,8 @@ "type": "policy", "name": "Corporate Governance Policy", "description": "Reference to the Corporate Governance Policy that defines board oversight responsibilities, roles, review frequency, and reporting requirements.", - "policyId": "corporate_governance" + "policyId": "corporate_governance", + "frequency": "yearly" }, { "id": "CC1.1-procedure", @@ -23,7 +24,8 @@ "id": "CC1.1-evidence", "type": "evidence", "name": "Board Meeting Documentation", - "description": "Minutes of board meetings and oversight reports demonstrating active review of internal controls." + "description": "Minutes of board meetings and oversight reports demonstrating active review of internal controls.", + "frequency": "quarterly" } ] }, @@ -39,7 +41,8 @@ "type": "policy", "name": "Corporate Governance Policy", "description": "Reference to the Corporate Governance Policy that outlines management responsibilities and the organizational structure for effective oversight.", - "policyId": "corporate_governance" + "policyId": "corporate_governance", + "frequency": "yearly" }, { "id": "CC1.2-procedure", @@ -57,7 +60,8 @@ "id": "CC1.2-evidence", "type": "evidence", "name": "Management Structure Documentation", - "description": "Organizational charts, management meeting minutes, and training records." + "description": "Organizational charts, management meeting minutes, and training records.", + "frequency": "yearly" } ] }, @@ -73,7 +77,8 @@ "type": "policy", "name": "Human Resources Policy", "description": "Reference to the Human Resources Policy that defines recruitment, retention, and competency requirements.", - "policyId": "human_resources" + "policyId": "human_resources", + "frequency": "yearly" }, { "id": "CC1.3-procedure", @@ -85,7 +90,8 @@ "id": "CC1.3-evidence", "type": "evidence", "name": "HR Documentation", - "description": "HR records, training logs, and performance evaluations." + "description": "HR records, training logs, and performance evaluations.", + "frequency": "yearly" } ] }, @@ -101,7 +107,8 @@ "type": "policy", "name": "Human Resources Policy", "description": "Reference to the Human Resources Policy that outlines roles, responsibilities, and disciplinary measures.", - "policyId": "human_resources" + "policyId": "human_resources", + "frequency": "yearly" }, { "id": "CC1.4-procedure", @@ -119,7 +126,8 @@ "id": "CC1.4-evidence", "type": "evidence", "name": "Personnel Compliance Documentation", - "description": "Employee acknowledgment forms, training records, and disciplinary documentation." + "description": "Employee acknowledgment forms, training records, and disciplinary documentation.", + "frequency": "yearly" } ] }, @@ -135,7 +143,8 @@ "type": "policy", "name": "Corporate Governance Policy", "description": "Reference to the Corporate Governance Policy (or a dedicated Code of Conduct within it) that defines ethical behavior and compliance expectations.", - "policyId": "corporate_governance" + "policyId": "corporate_governance", + "frequency": "yearly" }, { "id": "CC1.5-procedure", @@ -153,7 +162,8 @@ "id": "CC1.5-evidence", "type": "evidence", "name": "Ethics Compliance Documentation", - "description": "Signed acknowledgment forms, training completion records, and records of investigations or disciplinary actions." + "description": "Signed acknowledgment forms, training completion records, and records of investigations or disciplinary actions.", + "frequency": "yearly" } ] }, @@ -169,7 +179,8 @@ "type": "policy", "name": "Information Security Policy", "description": "Reference to the Information Security Policy that outlines data accuracy, completeness, and timeliness requirements.", - "policyId": "information_security" + "policyId": "information_security", + "frequency": "yearly" }, { "id": "CC2.1-procedure", @@ -181,7 +192,8 @@ "id": "CC2.1-evidence", "type": "evidence", "name": "Data Quality Documentation", - "description": "Data quality reports, audit logs, and records of corrective actions." + "description": "Data quality reports, audit logs, and records of corrective actions.", + "frequency": "quarterly" } ] }, @@ -197,7 +209,8 @@ "type": "policy", "name": "Corporate Governance Policy", "description": "Reference to the Corporate Governance Policy that includes guidelines for internal communications of control objectives.", - "policyId": "corporate_governance" + "policyId": "corporate_governance", + "frequency": "yearly" }, { "id": "CC2.2-procedure", @@ -209,7 +222,8 @@ "id": "CC2.2-evidence", "type": "evidence", "name": "Communication Records", - "description": "Communication logs, email distributions, and meeting minutes." + "description": "Communication logs, email distributions, and meeting minutes.", + "frequency": "quarterly" } ] }, @@ -225,7 +239,8 @@ "type": "policy", "name": "Corporate Governance Policy", "description": "Reference to the Corporate Governance Policy that outlines external communication guidelines for control-related matters.", - "policyId": "corporate_governance" + "policyId": "corporate_governance", + "frequency": "yearly" }, { "id": "CC2.3-procedure", @@ -237,7 +252,8 @@ "id": "CC2.3-evidence", "type": "evidence", "name": "External Communication Records", - "description": "Records of external communications, press releases, and stakeholder correspondence." + "description": "Records of external communications, press releases, and stakeholder correspondence.", + "frequency": "yearly" } ] }, @@ -253,7 +269,8 @@ "type": "policy", "name": "Risk Management Policy", "description": "Reference to the Risk Management Policy that defines methodologies, frequency, and scope for risk assessments.", - "policyId": "risk_management" + "policyId": "risk_management", + "frequency": "yearly" }, { "id": "CC3.1-procedure", @@ -265,7 +282,8 @@ "id": "CC3.1-evidence", "type": "evidence", "name": "Risk Assessment Documentation", - "description": "Risk assessment reports, risk registers, and management review minutes." + "description": "Risk assessment reports, risk registers, and management review minutes.", + "frequency": "yearly" } ] }, @@ -281,7 +299,8 @@ "type": "policy", "name": "Risk Management Policy", "description": "Reference to the Risk Management Policy requiring systematic identification of risks across all business areas.", - "policyId": "risk_management" + "policyId": "risk_management", + "frequency": "yearly" }, { "id": "CC3.2-procedure", @@ -293,7 +312,8 @@ "id": "CC3.2-evidence", "type": "evidence", "name": "Risk Identification Records", - "description": "Risk register entries, workshop records, and risk analysis documentation." + "description": "Risk register entries, workshop records, and risk analysis documentation.", + "frequency": "yearly" } ] }, @@ -309,7 +329,8 @@ "type": "policy", "name": "Risk Management Policy", "description": "Reference to the Risk Management Policy with provisions for assessing and mitigating fraud risks.", - "policyId": "risk_management" + "policyId": "risk_management", + "frequency": "yearly" }, { "id": "CC3.3-procedure", @@ -321,7 +342,8 @@ "id": "CC3.3-evidence", "type": "evidence", "name": "Fraud Risk Documentation", - "description": "Fraud risk assessment reports, internal audit findings, and remediation tracking records." + "description": "Fraud risk assessment reports, internal audit findings, and remediation tracking records.", + "frequency": "yearly" } ] }, @@ -337,7 +359,8 @@ "type": "policy", "name": "Change Management Policy", "description": "Reference to the Change Management Policy that outlines how risks associated with changes are evaluated.", - "policyId": "change_management" + "policyId": "change_management", + "frequency": "yearly" }, { "id": "CC3.4-procedure", @@ -349,7 +372,8 @@ "id": "CC3.4-evidence", "type": "evidence", "name": "Change Risk Documentation", - "description": "Change impact assessments, risk logs, and management approval records." + "description": "Change impact assessments, risk logs, and management approval records.", + "frequency": "yearly" } ] }, @@ -365,7 +389,8 @@ "type": "policy", "name": "Information Security Policy", "description": "Reference to the Information Security Policy that outlines monitoring requirements for internal controls.", - "policyId": "information_security" + "policyId": "information_security", + "frequency": "yearly" }, { "id": "CC4.1-procedure", @@ -377,7 +402,8 @@ "id": "CC4.1-evidence", "type": "evidence", "name": "Control Testing Documentation", - "description": "Internal audit reports, control testing records, and management review documentation." + "description": "Internal audit reports, control testing records, and management review documentation.", + "frequency": "quarterly" } ] }, @@ -393,7 +419,8 @@ "type": "policy", "name": "Risk Management Policy", "description": "Reference to the Risk Management Policy that establishes a framework for identifying, reporting, and remediating control deficiencies.", - "policyId": "risk_management" + "policyId": "risk_management", + "frequency": "yearly" }, { "id": "CC4.2-procedure", @@ -405,7 +432,8 @@ "id": "CC4.2-evidence", "type": "evidence", "name": "Deficiency Management Records", - "description": "Deficiency logs, remediation plans, and follow-up audit reports." + "description": "Deficiency logs, remediation plans, and follow-up audit reports.", + "frequency": "quarterly" } ] }, @@ -421,7 +449,8 @@ "type": "policy", "name": "Information Security Policy", "description": "Reference to the Information Security Policy that outlines criteria for the design and selection of controls.", - "policyId": "information_security" + "policyId": "information_security", + "frequency": "yearly" }, { "id": "CC5.1-procedure", @@ -433,7 +462,8 @@ "id": "CC5.1-evidence", "type": "evidence", "name": "Control Implementation Records", - "description": "Control design documents, implementation records, and risk mitigation assessments." + "description": "Control design documents, implementation records, and risk mitigation assessments.", + "frequency": "yearly" } ] }, @@ -449,7 +479,8 @@ "type": "policy", "name": "Information Security Policy", "description": "Reference to the Information Security Policy that specifies baseline security configurations and technology management practices.", - "policyId": "information_security" + "policyId": "information_security", + "frequency": "yearly" }, { "id": "CC5.2-procedure", @@ -461,7 +492,8 @@ "id": "CC5.2-evidence", "type": "evidence", "name": "Technology Control Records", - "description": "System configuration records, monitoring reports, and technology audit logs." + "description": "System configuration records, monitoring reports, and technology audit logs.", + "frequency": "quarterly" } ] }, @@ -477,7 +509,8 @@ "type": "policy", "name": "Corporate Governance Policy", "description": "Reference to the Corporate Governance Policy that outlines how policies are communicated, enforced, and monitored.", - "policyId": "corporate_governance" + "policyId": "corporate_governance", + "frequency": "yearly" }, { "id": "CC5.3-procedure", @@ -489,7 +522,8 @@ "id": "CC5.3-evidence", "type": "evidence", "name": "Policy Implementation Records", - "description": "Policy distribution records, training logs, and compliance monitoring reports." + "description": "Policy distribution records, training logs, and compliance monitoring reports.", + "frequency": "yearly" } ] }, @@ -505,7 +539,8 @@ "type": "policy", "name": "Access Control Policy", "description": "Reference to the Access Control Policy that defines controls for network and system access including segmentation and firewalls.", - "policyId": "access_control" + "policyId": "access_control", + "frequency": "yearly" }, { "id": "CC6.1-procedure", @@ -517,7 +552,8 @@ "id": "CC6.1-evidence", "type": "evidence", "name": "Access Control Records", - "description": "Access control configurations, firewall logs, and system access review reports." + "description": "Access control configurations, firewall logs, and system access review reports.", + "frequency": "quarterly" } ] }, @@ -533,7 +569,8 @@ "type": "policy", "name": "Access Control Policy", "description": "Reference to the Access Control Policy requiring strong authentication methods including passwords and multi-factor authentication.", - "policyId": "access_control" + "policyId": "access_control", + "frequency": "yearly" }, { "id": "CC6.2-procedure", @@ -545,7 +582,8 @@ "id": "CC6.2-evidence", "type": "evidence", "name": "Authentication Records", - "description": "Authentication logs, MFA configuration records, and user account management records." + "description": "Authentication logs, MFA configuration records, and user account management records.", + "frequency": "quarterly" } ] }, @@ -561,7 +599,8 @@ "type": "policy", "name": "Access Control Policy", "description": "Reference to the Access Control Policy detailing prompt revocation of user access upon termination or role change.", - "policyId": "access_control" + "policyId": "access_control", + "frequency": "yearly" }, { "id": "CC6.3-procedure", @@ -573,7 +612,8 @@ "id": "CC6.3-evidence", "type": "evidence", "name": "Access Removal Records", - "description": "User termination logs, de-provisioning records, and access review reports." + "description": "User termination logs, de-provisioning records, and access review reports.", + "frequency": "quarterly" } ] }, @@ -589,7 +629,8 @@ "type": "policy", "name": "Access Control Policy", "description": "Reference to the Access Control Policy mandating periodic reviews of user access rights and privileges.", - "policyId": "access_control" + "policyId": "access_control", + "frequency": "yearly" }, { "id": "CC6.4-procedure", @@ -601,7 +642,8 @@ "id": "CC6.4-evidence", "type": "evidence", "name": "Access Review Records", - "description": "Access review logs, user access reports, and management sign-off documentation." + "description": "Access review logs, user access reports, and management sign-off documentation.", + "frequency": "quarterly" } ] }, @@ -617,7 +659,8 @@ "type": "policy", "name": "Access Control Policy", "description": "Reference to the Access Control Policy that defines processes for creating, maintaining, and terminating system accounts.", - "policyId": "access_control" + "policyId": "access_control", + "frequency": "yearly" }, { "id": "CC6.5-procedure", @@ -629,7 +672,8 @@ "id": "CC6.5-evidence", "type": "evidence", "name": "Account Management Records", - "description": "Account provisioning logs, privileged account review reports, and system audit logs." + "description": "Account provisioning logs, privileged account review reports, and system audit logs.", + "frequency": "quarterly" } ] }, @@ -645,7 +689,8 @@ "type": "policy", "name": "Access Control Policy", "description": "Reference to the Access Control Policy that establishes requirements for securing facilities and restricting physical entry to sensitive areas.", - "policyId": "access_control" + "policyId": "access_control", + "frequency": "yearly" }, { "id": "CC6.6-procedure", @@ -657,7 +702,8 @@ "id": "CC6.6-evidence", "type": "evidence", "name": "Physical Access Records", - "description": "Facility access logs, visitor sign-in records, and security camera reports." + "description": "Facility access logs, visitor sign-in records, and security camera reports.", + "frequency": "quarterly" } ] }, @@ -673,7 +719,8 @@ "type": "policy", "name": "Change Management Policy", "description": "Reference to the Change Management Policy that governs modifications to information assets.", - "policyId": "change_management" + "policyId": "change_management", + "frequency": "yearly" }, { "id": "CC6.7-procedure", @@ -685,7 +732,8 @@ "id": "CC6.7-evidence", "type": "evidence", "name": "Change Management Records", - "description": "Change logs, approval records, and configuration management documentation." + "description": "Change logs, approval records, and configuration management documentation.", + "frequency": "yearly" } ] }, @@ -701,7 +749,8 @@ "type": "policy", "name": "Information Security Policy", "description": "Reference to the Information Security Policy that requires the use of antivirus, anti-malware, and threat detection solutions.", - "policyId": "information_security" + "policyId": "information_security", + "frequency": "yearly" }, { "id": "CC6.8-procedure", @@ -713,7 +762,8 @@ "id": "CC6.8-evidence", "type": "evidence", "name": "Malware Prevention Records", - "description": "Antivirus logs, malware detection alerts, and remediation records." + "description": "Antivirus logs, malware detection alerts, and remediation records.", + "frequency": "quarterly" } ] }, @@ -729,7 +779,8 @@ "type": "policy", "name": "Information Security Policy", "description": "Reference to the Information Security Policy that outlines monitoring requirements for infrastructure and systems.", - "policyId": "information_security" + "policyId": "information_security", + "frequency": "yearly" }, { "id": "CC7.1-procedure", @@ -741,7 +792,8 @@ "id": "CC7.1-evidence", "type": "evidence", "name": "Infrastructure Monitoring Records", - "description": "Monitoring tool reports, alert logs, and incident tracking records." + "description": "Monitoring tool reports, alert logs, and incident tracking records.", + "frequency": "quarterly" } ] }, @@ -757,7 +809,8 @@ "type": "policy", "name": "Incident Response Policy", "description": "Reference to the Incident Response Policy that defines roles, responsibilities, and procedures for addressing security events.", - "policyId": "incident_response" + "policyId": "incident_response", + "frequency": "yearly" }, { "id": "CC7.2-procedure", @@ -769,7 +822,8 @@ "id": "CC7.2-evidence", "type": "evidence", "name": "Incident Response Records", - "description": "Incident logs, response drill reports, and post-incident review documentation." + "description": "Incident logs, response drill reports, and post-incident review documentation.", + "frequency": "yearly" } ] }, @@ -785,7 +839,8 @@ "type": "policy", "name": "Business Continuity Policy", "description": "Reference to the Business Continuity & Disaster Recovery Policy that outlines strategies for restoring systems and data.", - "policyId": "business_continuity" + "policyId": "business_continuity", + "frequency": "yearly" }, { "id": "CC7.3-procedure", @@ -797,7 +852,8 @@ "id": "CC7.3-evidence", "type": "evidence", "name": "Recovery Records", - "description": "Recovery test results, restoration logs, and incident recovery reports." + "description": "Recovery test results, restoration logs, and incident recovery reports.", + "frequency": "yearly" } ] }, @@ -812,7 +868,8 @@ "id": "CC7.4-policy", "type": "policy", "description": "Reference to the Incident Response Policy that requires root cause analysis for security incidents.", - "policyId": "incident_response" + "policyId": "incident_response", + "frequency": "yearly" }, { "id": "CC7.4-procedure", @@ -823,7 +880,8 @@ "id": "CC7.4-evidence", "type": "evidence", "name": "Incident Analysis Records", - "description": "Incident analysis reports, lessons learned documentation, and remediation tracking records." + "description": "Incident analysis reports, lessons learned documentation, and remediation tracking records.", + "frequency": "yearly" } ] }, @@ -838,7 +896,8 @@ "id": "CC7.5-policy", "type": "policy", "description": "Reference to the Incident Response Policy that defines processes for internal and external incident notifications.", - "policyId": "incident_response" + "policyId": "incident_response", + "frequency": "yearly" }, { "id": "CC7.5-procedure", @@ -849,7 +908,8 @@ "id": "CC7.5-evidence", "type": "evidence", "name": "Incident Communication Records", - "description": "Communication logs, notifications, and records of stakeholder communications during incidents." + "description": "Communication logs, notifications, and records of stakeholder communications during incidents.", + "frequency": "yearly" } ] }, @@ -864,7 +924,8 @@ "id": "CC8.1-policy", "type": "policy", "description": "Reference to the Change Management Policy that establishes controls for reviewing, approving, and documenting changes.", - "policyId": "change_management" + "policyId": "change_management", + "frequency": "yearly" }, { "id": "CC8.1-procedure", @@ -875,7 +936,8 @@ "id": "CC8.1-evidence", "type": "evidence", "name": "Change Request Logs", - "description": "Change request logs, approval records, and post-change review reports." + "description": "Change request logs, approval records, and post-change review reports.", + "frequency": "yearly" } ] }, @@ -890,7 +952,8 @@ "id": "CC9.1-policy", "type": "policy", "description": "Reference to the Business Continuity & Disaster Recovery Policy that outlines recovery objectives, strategies, and responsibilities.", - "policyId": "business_continuity" + "policyId": "business_continuity", + "frequency": "yearly" }, { "id": "CC9.1-procedure", @@ -901,7 +964,8 @@ "id": "CC9.1-evidence", "type": "evidence", "name": "Business Continuity Plans", - "description": "Business continuity plans, BIA reports, and disaster recovery test results." + "description": "Business continuity plans, BIA reports, and disaster recovery test results.", + "frequency": "yearly" } ] }, @@ -916,7 +980,8 @@ "id": "CC9.2-policy", "type": "policy", "description": "Reference to the Vendor Risk Management Policy outlining criteria for vendor selection, risk assessment, and ongoing monitoring.", - "policyId": "vendor_risk_management" + "policyId": "vendor_risk_management", + "frequency": "yearly" }, { "id": "CC9.2-procedure", @@ -927,7 +992,8 @@ "id": "CC9.2-evidence", "type": "evidence", "name": "Vendor Risk Assessment Records", - "description": "Vendor risk assessment reports, due diligence records, and contract reviews." + "description": "Vendor risk assessment reports, due diligence records, and contract reviews.", + "frequency": "yearly" } ] }, @@ -942,7 +1008,8 @@ "id": "CC9.9-policy", "type": "policy", "description": "Reference to the Business Continuity & Disaster Recovery Policy that defines testing frequency, methodologies, and remediation procedures.", - "policyId": "business_continuity" + "policyId": "business_continuity", + "frequency": "yearly" }, { "id": "CC9.9-procedure", @@ -953,7 +1020,8 @@ "id": "CC9.9-evidence", "type": "evidence", "name": "Business Continuity and Disaster Recovery Testing Records", - "description": "Test reports, remediation logs, and updated BC/DR plans." + "description": "Test reports, remediation logs, and updated BC/DR plans.", + "frequency": "yearly" } ] }, @@ -968,7 +1036,8 @@ "id": "A1.1-policy", "type": "policy", "description": "Reference to the Availability Policy that outlines uptime, performance, and service level requirements.", - "policyId": "availability" + "policyId": "availability", + "frequency": "yearly" }, { "id": "A1.1-procedure", @@ -979,7 +1048,8 @@ "id": "A1.1-evidence", "type": "evidence", "name": "Uptime Reports", - "description": "Uptime reports, incident logs, and SLA monitoring records." + "description": "Uptime reports, incident logs, and SLA monitoring records.", + "frequency": "quarterly" } ] }, @@ -994,7 +1064,8 @@ "id": "A1.2-policy", "type": "policy", "description": "Reference to the Availability Policy defining procedures for monitoring, forecasting, and managing system capacity.", - "policyId": "availability" + "policyId": "availability", + "frequency": "yearly" }, { "id": "A1.2-procedure", @@ -1005,7 +1076,8 @@ "id": "A1.2-evidence", "type": "evidence", "name": "Capacity Reports", - "description": "Capacity reports, trend analysis, and resource utilization logs." + "description": "Capacity reports, trend analysis, and resource utilization logs.", + "frequency": "quarterly" } ] }, @@ -1020,7 +1092,8 @@ "id": "A1.3-policy", "type": "policy", "description": "Reference to the Business Continuity & Disaster Recovery Policy that outlines procedures to restore services after an outage.", - "policyId": "business_continuity" + "policyId": "business_continuity", + "frequency": "yearly" }, { "id": "A1.3-procedure", @@ -1031,7 +1104,8 @@ "id": "A1.3-evidence", "type": "evidence", "name": "Incident Recovery Records", - "description": "Incident recovery test results, post-incident reviews, and restoration logs." + "description": "Incident recovery test results, post-incident reviews, and restoration logs.", + "frequency": "yearly" } ] }, @@ -1046,7 +1120,8 @@ "id": "C1.1-policy", "type": "policy", "description": "Reference to the Data Classification Policy that outlines classification levels and handling requirements for confidential information.", - "policyId": "data_classification" + "policyId": "data_classification", + "frequency": "yearly" }, { "id": "C1.1-procedure", @@ -1057,7 +1132,8 @@ "id": "C1.1-evidence", "type": "evidence", "name": "Data Classification Records", - "description": "Data classification records, labeling practices, and access control lists for confidential information." + "description": "Data classification records, labeling practices, and access control lists for confidential information.", + "frequency": "yearly" } ] }, @@ -1072,7 +1148,8 @@ "id": "C1.2-policy", "type": "policy", "description": "Reference to the Data Classification Policy which includes controls for restricting access to confidential information.", - "policyId": "data_classification" + "policyId": "data_classification", + "frequency": "yearly" }, { "id": "C1.2-procedure", @@ -1083,7 +1160,8 @@ "id": "C1.2-evidence", "type": "evidence", "name": "Access Logs", - "description": "Access logs, periodic access reviews, and certification records." + "description": "Access logs, periodic access reviews, and certification records.", + "frequency": "quarterly" } ] }, @@ -1098,7 +1176,8 @@ "id": "C1.3-policy", "type": "policy", "description": "Reference to the Data Classification Policy which includes provisions for secure data disposal.", - "policyId": "data_classification" + "policyId": "data_classification", + "frequency": "yearly" }, { "id": "C1.3-procedure", @@ -1109,7 +1188,8 @@ "id": "C1.3-evidence", "type": "evidence", "name": "Disposal Records", - "description": "Disposal records, certificates of destruction, and audit logs." + "description": "Disposal records, certificates of destruction, and audit logs.", + "frequency": "yearly" } ] }, @@ -1124,7 +1204,8 @@ "id": "PI1.1-policy", "type": "policy", "description": "Reference to the Information Security Policy that addresses data accuracy and completeness.", - "policyId": "information_security" + "policyId": "information_security", + "frequency": "yearly" }, { "id": "PI1.1-procedure", @@ -1135,7 +1216,8 @@ "id": "PI1.1-evidence", "type": "evidence", "name": "Data Validation Records", - "description": "Data validation reports, exception logs, and audit records." + "description": "Data validation reports, exception logs, and audit records.", + "frequency": "quarterly" } ] }, @@ -1150,7 +1232,8 @@ "id": "PI1.2-policy", "type": "policy", "description": "Reference to the Information Security Policy that outlines controls over data processing.", - "policyId": "information_security" + "policyId": "information_security", + "frequency": "yearly" }, { "id": "PI1.2-procedure", @@ -1161,7 +1244,8 @@ "id": "PI1.2-evidence", "type": "evidence", "name": "Data Processing Logs", - "description": "Data processing logs, validation reports, and exception handling records." + "description": "Data processing logs, validation reports, and exception handling records.", + "frequency": "quarterly" } ] }, @@ -1176,7 +1260,8 @@ "id": "PI1.3-policy", "type": "policy", "description": "Reference to the Information Security Policy that outlines procedures for handling processing exceptions.", - "policyId": "information_security" + "policyId": "information_security", + "frequency": "yearly" }, { "id": "PI1.3-procedure", @@ -1187,7 +1272,8 @@ "id": "PI1.3-evidence", "type": "evidence", "name": "Exception Logs", - "description": "Exception logs, resolution documentation, and process improvement records." + "description": "Exception logs, resolution documentation, and process improvement records.", + "frequency": "quarterly" } ] }, @@ -1202,7 +1288,8 @@ "id": "P1.1-policy", "type": "policy", "description": "Reference to the Privacy Policy that informs individuals about personal data collection, usage, and disclosure practices.", - "policyId": "privacy" + "policyId": "privacy", + "frequency": "yearly" }, { "id": "P1.1-procedure", @@ -1213,7 +1300,8 @@ "id": "P1.1-evidence", "type": "evidence", "name": "Privacy Notice", - "description": "Copies of the privacy notice, version history, and distribution logs." + "description": "Copies of the privacy notice, version history, and distribution logs.", + "frequency": "yearly" } ] }, @@ -1228,7 +1316,8 @@ "id": "P1.2-policy", "type": "policy", "description": "Reference to the Privacy Policy that requires explicit consent for the collection and processing of personal data.", - "policyId": "privacy" + "policyId": "privacy", + "frequency": "yearly" }, { "id": "P1.2-procedure", @@ -1239,7 +1328,8 @@ "id": "P1.2-evidence", "type": "evidence", "name": "Consent Records", - "description": "Consent records, opt-in logs, and audit trails for consent management." + "description": "Consent records, opt-in logs, and audit trails for consent management.", + "frequency": "yearly" } ] }, @@ -1254,7 +1344,8 @@ "id": "P1.3-policy", "type": "policy", "description": "Reference to the Privacy Policy that defines retention periods and secure disposal methods for personal data.", - "policyId": "privacy" + "policyId": "privacy", + "frequency": "yearly" }, { "id": "P1.3-procedure", @@ -1265,7 +1356,8 @@ "id": "P1.3-evidence", "type": "evidence", "name": "Retention Schedules", - "description": "Retention schedules, disposal logs, and certificates of data destruction." + "description": "Retention schedules, disposal logs, and certificates of data destruction.", + "frequency": "yearly" } ] } diff --git a/packages/data/policies/access_control.json b/packages/data/policies/access_control.json index 776aa7d72f..139fd6157c 100644 --- a/packages/data/policies/access_control.json +++ b/packages/data/policies/access_control.json @@ -5,6 +5,7 @@ "slug": "access-control-policy", "name": "Access Control Policy", "description": "This policy defines the requirements for granting, monitoring, and revoking access to the organization’s information systems and data based on the principle of least privilege.", + "frequency": "yearly", "usedBy": { "soc2": ["CC6.1", "CC6.2", "CC6.3", "CC6.4", "CC6.5", "CC6.6"] } diff --git a/packages/data/policies/application_security.json b/packages/data/policies/application_security.json index 2a6ed09329..448feeb92c 100644 --- a/packages/data/policies/application_security.json +++ b/packages/data/policies/application_security.json @@ -5,6 +5,7 @@ "slug": "application-security-policy", "name": "Application Security Policy", "description": "This policy outlines the security framework and requirements for applications, notably web applications, within the organization's production environment.", + "frequency": "yearly", "usedBy": { "soc2": ["CC7.1", "CC7.2", "CC7.4"] } diff --git a/packages/data/policies/availability.json b/packages/data/policies/availability.json index 97a0f1a1a1..b3b54a632f 100644 --- a/packages/data/policies/availability.json +++ b/packages/data/policies/availability.json @@ -5,6 +5,7 @@ "slug": "availability-policy", "name": "Availability Policy", "description": "This policy outlines the requirements for proper controls to protect the availability of the organization's information systems.", + "frequency": "yearly", "usedBy": { "soc2": ["CC9.1", "CC7.3", "CC7.5", "A1.1", "A1.2"] } diff --git a/packages/data/policies/business_continuity.json b/packages/data/policies/business_continuity.json index fa2145137d..45dda43c35 100644 --- a/packages/data/policies/business_continuity.json +++ b/packages/data/policies/business_continuity.json @@ -5,6 +5,7 @@ "slug": "business-continuity-dr-policy", "name": "Business Continuity & Disaster Recovery Policy", "description": "This policy outlines the strategies and procedures for ensuring the availability of critical systems and data during and after a disruptive event.", + "frequency": "yearly", "usedBy": { "soc2": ["CC7.3", "A1.3", "CC9.1", "CC9.9"] } diff --git a/packages/data/policies/change_management.json b/packages/data/policies/change_management.json index 4718ef0a2c..f8fab5bb09 100644 --- a/packages/data/policies/change_management.json +++ b/packages/data/policies/change_management.json @@ -5,6 +5,7 @@ "slug": "change-management-policy", "name": "Change Management Policy", "description": "This policy defines the process for requesting, reviewing, approving, and documenting changes to the organization's information systems and infrastructure.", + "frequency": "yearly", "usedBy": { "soc2": ["CC3.4", "CC8.1", "CC6.7"] } diff --git a/packages/data/policies/classification.json b/packages/data/policies/classification.json index f3de13c480..a85a96ccd2 100644 --- a/packages/data/policies/classification.json +++ b/packages/data/policies/classification.json @@ -5,6 +5,7 @@ "slug": "data-classification-policy", "name": "Data Classification Policy", "description": "This policy outlines the requirements for data classification.", + "frequency": "yearly", "usedBy": { "soc2": ["CC6.1", "CC8.1", "CC6.6"] } diff --git a/packages/data/policies/code_of_conduct.json b/packages/data/policies/code_of_conduct.json index 22b6eacb11..b7a1031c70 100644 --- a/packages/data/policies/code_of_conduct.json +++ b/packages/data/policies/code_of_conduct.json @@ -5,6 +5,7 @@ "slug": "code-of-conduct", "name": "Code of Conduct Policy", "description": "This policy outlines the expected behavior from employees towards their colleagues, supervisors, and the organization as a whole.", + "frequency": "yearly", "usedBy": { "soc2": ["CC1.1", "CC6.1"] } diff --git a/packages/data/policies/confidentiality.json b/packages/data/policies/confidentiality.json index bc6b16928e..0eb842b7ff 100644 --- a/packages/data/policies/confidentiality.json +++ b/packages/data/policies/confidentiality.json @@ -5,6 +5,7 @@ "slug": "confidentiality", "name": "Confidentiality Policy", "description": "This policy outlines the requirements for maintaining the confidentiality of sensitive and proprietary information within the organization.", + "frequency": "yearly", "usedBy": { "soc2": ["CC9.9", "CC6.1"] } diff --git a/packages/data/policies/corporate_governance.json b/packages/data/policies/corporate_governance.json index d9ec380ac2..d204200f26 100644 --- a/packages/data/policies/corporate_governance.json +++ b/packages/data/policies/corporate_governance.json @@ -5,6 +5,7 @@ "slug": "corporate-governance-policy", "name": "Corporate Governance Policy", "description": "This policy defines the overall governance framework including board oversight, management responsibilities, and organizational structure to ensure effective oversight and accountability.", + "frequency": "yearly", "usedBy": { "soc2": ["CC1.1", "CC1.2", "CC1.5", "CC2.2", "CC2.3"] } diff --git a/packages/data/policies/cyber_risk.json b/packages/data/policies/cyber_risk.json index 72842d4a24..a67274f093 100644 --- a/packages/data/policies/cyber_risk.json +++ b/packages/data/policies/cyber_risk.json @@ -5,6 +5,7 @@ "slug": "cyber-risk", "name": "Cyber Risk Assessment Policy", "description": "This policy outlines the requirements for conducting cyber risk assessments to identify, evaluate, and mitigate cybersecurity threats to the organization.", + "frequency": "yearly", "usedBy": { "soc2": ["CC1.1", "CC1.2", "CC1.3", "CC1.4", "CC1.5"] } diff --git a/packages/data/policies/data_center.json b/packages/data/policies/data_center.json index 568f705611..e2d37841a4 100644 --- a/packages/data/policies/data_center.json +++ b/packages/data/policies/data_center.json @@ -5,6 +5,7 @@ "slug": "data-center", "name": "Data Center Policy", "description": "This policy outlines the requirements for the organization's data center facilities to ensure protection, availability, and reliability of critical systems and data.", + "frequency": "yearly", "usedBy": { "soc2": ["CC6.1", "CC6.2", "CC8.1", "CC7.1"] } diff --git a/packages/data/policies/data_classification.json b/packages/data/policies/data_classification.json index fa562517aa..70aa0f1c66 100644 --- a/packages/data/policies/data_classification.json +++ b/packages/data/policies/data_classification.json @@ -5,6 +5,7 @@ "slug": "data-classification-policy", "name": "Data Classification Policy", "description": "This policy establishes a framework for classifying data based on sensitivity and defines handling requirements for each classification level.", + "frequency": "yearly", "usedBy": { "soc2": ["C1.1", "C1.2", "C1.3"] } diff --git a/packages/data/policies/disaster_recovery.json b/packages/data/policies/disaster_recovery.json index 8ef6d487f9..2b96cd28e9 100644 --- a/packages/data/policies/disaster_recovery.json +++ b/packages/data/policies/disaster_recovery.json @@ -5,6 +5,7 @@ "slug": "disaster-recovery", "name": "Disaster Recovery Policy", "description": "This policy outlines the requirements for disaster recovery planning to ensure that critical business operations can be resumed in the event of a disruption.", + "frequency": "yearly", "usedBy": { "soc2": ["CC9.1", "CC8.1"] } diff --git a/packages/data/policies/human_resources.json b/packages/data/policies/human_resources.json index a3966bf355..0feb351186 100644 --- a/packages/data/policies/human_resources.json +++ b/packages/data/policies/human_resources.json @@ -5,6 +5,7 @@ "slug": "human-resources-policy", "name": "Human Resources Policy", "description": "This policy outlines the principles and practices for recruitment, employee management, performance evaluations, and the enforcement of internal control responsibilities.", + "frequency": "yearly", "usedBy": { "soc2": ["CC1.3", "CC1.4"] } diff --git a/packages/data/policies/incident_response.json b/packages/data/policies/incident_response.json index a6b88d8449..f384e2e7f5 100644 --- a/packages/data/policies/incident_response.json +++ b/packages/data/policies/incident_response.json @@ -5,6 +5,7 @@ "slug": "incident-response-policy", "name": "Incident Response Policy", "description": "This policy establishes the framework and procedures for detecting, responding to, and recovering from security incidents.", + "frequency": "yearly", "usedBy": { "soc2": ["CC7.2", "CC7.4", "CC7.5"] } diff --git a/packages/data/policies/information_security.json b/packages/data/policies/information_security.json index 07a5b9636d..60421a068c 100644 --- a/packages/data/policies/information_security.json +++ b/packages/data/policies/information_security.json @@ -5,6 +5,7 @@ "slug": "information-security-policy", "name": "Information Security Policy", "description": "This policy establishes the framework for protecting the organization's information assets by defining security objectives, roles, responsibilities, and controls.", + "frequency": "yearly", "usedBy": { "soc2": ["CC2.1", "PI1.1", "PI1.2", "PI1.3", "CC5.2"] } diff --git a/packages/data/policies/password_policy.json b/packages/data/policies/password_policy.json index b21b3cf2f0..e541449d1c 100644 --- a/packages/data/policies/password_policy.json +++ b/packages/data/policies/password_policy.json @@ -4,6 +4,7 @@ "slug": "password-policy", "name": "Password Policy", "description": "This policy outlines the requirements for passwords used by employees.", + "frequency": "yearly", "usedBy": { "soc2": ["CC1.1", "CC1.2", "CC1.3"] } diff --git a/packages/data/policies/privacy.json b/packages/data/policies/privacy.json index 38190f42e8..032c13f392 100644 --- a/packages/data/policies/privacy.json +++ b/packages/data/policies/privacy.json @@ -5,6 +5,7 @@ "slug": "privacy-policy", "name": "Privacy Policy", "description": "This policy describes how the organization collects, uses, discloses, and protects personal information in compliance with applicable privacy regulations.", + "frequency": "yearly", "usedBy": { "soc2": ["P1.1", "P1.2", "P1.3"] } diff --git a/packages/data/policies/risk_assessment.json b/packages/data/policies/risk_assessment.json index 3c7208b7af..3d34b31bea 100644 --- a/packages/data/policies/risk_assessment.json +++ b/packages/data/policies/risk_assessment.json @@ -5,6 +5,7 @@ "slug": "risk-assessment", "name": "Risk Assessment Policy", "description": "This policy outlines the requirements for conducting risk assessments to identify, evaluate, and mitigate risks associated with the organization's information systems, operations, and assets.", + "frequency": "yearly", "usedBy": { "soc2": ["CC3.2", "CC3.4", "CC8.1"] } diff --git a/packages/data/policies/risk_management.json b/packages/data/policies/risk_management.json index 2bf72575d0..60c62f929d 100644 --- a/packages/data/policies/risk_management.json +++ b/packages/data/policies/risk_management.json @@ -5,6 +5,7 @@ "slug": "risk-management-policy", "name": "Risk Management Policy", "description": "This policy defines the process for identifying, assessing, and mitigating risks to the organization’s objectives and information assets.", + "frequency": "yearly", "usedBy": { "soc2": ["CC3.1", "CC3.2", "CC3.3", "CC4.2"] } diff --git a/packages/data/policies/software_development.json b/packages/data/policies/software_development.json index a8f4b91029..4797940700 100644 --- a/packages/data/policies/software_development.json +++ b/packages/data/policies/software_development.json @@ -5,6 +5,7 @@ "slug": "software-development", "name": "Software Development Lifecycle Policy", "description": "This policy outlines the requirements for the software development lifecycle to ensure secure, reliable, and high-quality software development practices.", + "frequency": "yearly", "usedBy": { "soc2": ["CC6.2", "CC7.1", "CC7.2", "CC8.1"] } diff --git a/packages/data/policies/system_change.json b/packages/data/policies/system_change.json index 8427464436..de9dbf4064 100644 --- a/packages/data/policies/system_change.json +++ b/packages/data/policies/system_change.json @@ -5,6 +5,7 @@ "slug": "system-change-policy", "name": "System Change Policy", "description": "This policy outlines the requirements for system changes.", + "frequency": "yearly", "usedBy": { "soc2": ["CC3.4", "CC6.8", "CC7.1", "A1.1"] } diff --git a/packages/data/policies/thirdparty.json b/packages/data/policies/thirdparty.json index 2092162c1e..9a258016f6 100644 --- a/packages/data/policies/thirdparty.json +++ b/packages/data/policies/thirdparty.json @@ -5,6 +5,7 @@ "slug": "thirdparty", "name": "Third-Party Management Policy", "description": "This policy defines the rules for relationships with the organization’s Information Technology (IT) third-parties and partners.", + "frequency": "yearly", "usedBy": { "soc2": ["CC2.3", "CC7.3", "CC8.1"] } diff --git a/packages/data/policies/vendor_risk_management.json b/packages/data/policies/vendor_risk_management.json index bc9b1e4696..48d7ba7c4c 100644 --- a/packages/data/policies/vendor_risk_management.json +++ b/packages/data/policies/vendor_risk_management.json @@ -5,6 +5,7 @@ "slug": "vendor-risk-management-policy", "name": "Vendor Risk Management Policy", "description": "This policy outlines the criteria and procedures for evaluating, selecting, and monitoring third-party vendors to manage risks associated with external service providers.", + "frequency": "yearly", "usedBy": { "soc2": ["CC9.2"] } diff --git a/packages/data/policies/workstation.json b/packages/data/policies/workstation.json index 31333946e6..858d7d23d9 100644 --- a/packages/data/policies/workstation.json +++ b/packages/data/policies/workstation.json @@ -5,6 +5,7 @@ "slug": "workstation", "name": "Workstation Policy", "description": "This policy outlines the requirements for workstations to ensure secure, reliable, and high-quality software development practices.", + "frequency": "yearly", "usedBy": { "soc2": ["CC6.2", "CC6.7", "CC7.2"] } diff --git a/packages/db/prisma/migrations/20250224173509_add_frequency_to_policy_and_evidence/migration.sql b/packages/db/prisma/migrations/20250224173509_add_frequency_to_policy_and_evidence/migration.sql new file mode 100644 index 0000000000..5a7c2baef6 --- /dev/null +++ b/packages/db/prisma/migrations/20250224173509_add_frequency_to_policy_and_evidence/migration.sql @@ -0,0 +1,10 @@ +-- CreateEnum +CREATE TYPE "Frequency" AS ENUM ('monthly', 'quarterly', 'yearly'); + +-- AlterTable +ALTER TABLE "OrganizationEvidence" ADD COLUMN "frequency" "Frequency", +ADD COLUMN "lastPublishedAt" TIMESTAMP(3); + +-- AlterTable +ALTER TABLE "OrganizationPolicy" ADD COLUMN "frequency" "Frequency", +ADD COLUMN "lastPublishedAt" TIMESTAMP(3); diff --git a/packages/db/prisma/migrations/20250224174548_add_frequency_to_evidence/migration.sql b/packages/db/prisma/migrations/20250224174548_add_frequency_to_evidence/migration.sql new file mode 100644 index 0000000000..4a66d8f3dd --- /dev/null +++ b/packages/db/prisma/migrations/20250224174548_add_frequency_to_evidence/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "Evidence" ADD COLUMN "frequency" "Frequency"; diff --git a/packages/db/prisma/migrations/20250224180117_add_frequency_to_policy/migration.sql b/packages/db/prisma/migrations/20250224180117_add_frequency_to_policy/migration.sql new file mode 100644 index 0000000000..a081b6a25a --- /dev/null +++ b/packages/db/prisma/migrations/20250224180117_add_frequency_to_policy/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "Policy" ADD COLUMN "frequency" "Frequency"; diff --git a/packages/db/prisma/migrations/20250224183431_add_frequency_to_control_requirement/migration.sql b/packages/db/prisma/migrations/20250224183431_add_frequency_to_control_requirement/migration.sql new file mode 100644 index 0000000000..32a286c283 --- /dev/null +++ b/packages/db/prisma/migrations/20250224183431_add_frequency_to_control_requirement/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "ControlRequirement" ADD COLUMN "frequency" "Frequency"; diff --git a/packages/db/prisma/schema.prisma b/packages/db/prisma/schema.prisma index c9690102c6..7b5d1b5bee 100644 --- a/packages/db/prisma/schema.prisma +++ b/packages/db/prisma/schema.prisma @@ -38,6 +38,12 @@ enum RequirementType { training } +enum Frequency { + monthly + quarterly + yearly +} + model Account { id String @id @default(cuid()) userId String @@ -847,15 +853,16 @@ model Employee { // --- Policy Templates and Files --- model Policy { - id String @id @default(cuid()) - slug String @unique + id String @id @default(cuid()) + slug String @unique name String description String? content Json[] version String? usedBy Json - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + frequency Frequency? // Relations policyFrameworks PolicyFramework[] @@ -927,6 +934,8 @@ model ControlRequirement { createdAt DateTime @default(now()) updatedAt DateTime @updatedAt + frequency Frequency? + controlId String control Control @relation(fields: [controlId], references: [id], onDelete: Cascade) @@ -976,9 +985,12 @@ model OrganizationPolicy { organizationId String organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade) - status PolicyStatus @default(draft) - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt + status PolicyStatus @default(draft) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + lastPublishedAt DateTime? + + frequency Frequency? policyId String policy Policy @relation(fields: [policyId], references: [id], onDelete: Cascade) @@ -1012,9 +1024,10 @@ model OrganizationCategory { // Evidence metadata model Evidence { - id String @id @default(cuid()) + id String @id @default(cuid()) name String description String? + frequency Frequency? createdAt DateTime @default(now()) updatedAt DateTime @updatedAt @@ -1032,7 +1045,11 @@ model OrganizationEvidence { description String? createdAt DateTime @default(now()) updatedAt DateTime @updatedAt - published Boolean @default(false) + + published Boolean @default(false) + lastPublishedAt DateTime? + + frequency Frequency? fileUrls String[] additionalUrls String[] diff --git a/packages/db/prisma/seed.ts b/packages/db/prisma/seed.ts index a0f05e5c63..13bd1ea903 100644 --- a/packages/db/prisma/seed.ts +++ b/packages/db/prisma/seed.ts @@ -1,5 +1,5 @@ import { PrismaClient } from "@prisma/client"; -import type { Prisma } from "@prisma/client"; +import type { Frequency, Prisma } from "@prisma/client"; import { RequirementType } from "@prisma/client"; import { readFileSync, readdirSync } from "node:fs"; import { join } from "node:path"; @@ -20,6 +20,8 @@ async function main() { await prisma.organizationCategory.deleteMany(); await prisma.organizationControl.deleteMany(); await prisma.organizationPolicy.deleteMany(); + await prisma.organizationControlRequirement.deleteMany(); + await prisma.organizationEvidence.deleteMany(); await prisma.policy.deleteMany(); await prisma.policyControl.deleteMany(); @@ -31,7 +33,8 @@ async function main() { await prisma.framework.deleteMany(); await prisma.frameworkCategory.deleteMany(); - await prisma.organizationControlRequirement.deleteMany(); + await prisma.evidence.deleteMany(); + console.log("✅ Database cleaned"); } @@ -107,6 +110,7 @@ async function seedPolicies() { description: policyData.metadata.description, content: policyData.content as Prisma.InputJsonValue[], usedBy: policyData.metadata.usedBy as Prisma.InputJsonValue, + frequency: policyData.metadata?.frequency ?? null, }, create: { id: policyData.metadata.id, @@ -115,6 +119,7 @@ async function seedPolicies() { description: policyData.metadata.description, content: policyData.content as Prisma.InputJsonValue[], usedBy: policyData.metadata.usedBy as Prisma.InputJsonValue, + frequency: policyData.metadata?.frequency ?? null, }, }); console.log(` ✅ ${file} processed`); @@ -289,6 +294,7 @@ async function seedFrameworkCategoryControls( (requirement.type as RequirementType) === "policy" ? requirement.policyId : null, + frequency: requirement?.frequency ?? null, }, update: { name: requirement.name, @@ -297,6 +303,7 @@ async function seedFrameworkCategoryControls( (requirement.type as RequirementType) === "policy" ? requirement.policyId : null, + frequency: requirement?.frequency ?? null, }, }); } @@ -378,21 +385,23 @@ async function seedEvidence() { console.log(`🔄 Processing ${evidenceRequirements.length} evidences`); - for (const evidence of evidenceRequirements) { - console.log(` ⏳ Processing evidence: ${evidence.name}...`); + for (const evidenceReq of evidenceRequirements) { + console.log(` ⏳ Processing evidence: ${evidenceReq.name}...`); await prisma.evidence.upsert({ where: { - id: evidence.id, + id: evidenceReq.id, }, update: { - name: evidence.name, - description: evidence.description, + name: evidenceReq.name, + description: evidenceReq.description, + frequency: evidenceReq.frequency ?? null, }, create: { - id: evidence.id, - name: evidence.name, - description: evidence.description, + id: evidenceReq.id, + name: evidenceReq.name, + description: evidenceReq.description, + frequency: evidenceReq.frequency ?? null, }, }); } diff --git a/packages/db/prisma/seedTypes.ts b/packages/db/prisma/seedTypes.ts index 557a9426fe..e272738355 100644 --- a/packages/db/prisma/seedTypes.ts +++ b/packages/db/prisma/seedTypes.ts @@ -1,4 +1,4 @@ -import type { JsonArray } from "@prisma/client/runtime/library"; +import type { Frequency } from "@prisma/client"; export interface Framework { name: string; @@ -18,6 +18,7 @@ export interface Requirement { description: string; policyId?: string; name?: string; + frequency?: Frequency; } export interface Control { @@ -46,6 +47,7 @@ export interface Policy { usedBy: { [key: string]: string[]; }; + frequency?: Frequency; }; content: Array<{ type: string; diff --git a/yarn.lock b/yarn.lock index f011f88db1..6308225c7c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1,6 +1,6 @@ # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. # yarn lockfile v1 -# bun ./bun.lockb --hash: 0000000000000000-0000000000000000-0000000000000000-0000000000000000 +# bun ./bun.lockb --hash: E49C1716B7D152D7-6fa69f83f0b4b599-E68B62E145B0AEE7-4212ca5e563d57cf "@ai-sdk/openai@^0.0.66": @@ -45,20 +45,20 @@ resolved "https://registry.npmjs.org/@ai-sdk/provider-utils/-/provider-utils-1.0.20.tgz" integrity sha512-ngg/RGpnA00eNOWEtXHenpX1MsM2QshQh4QJFjUfwcqHpM5kTfG7je7Rc3HcEDP+OkRVv2GF+X4fC1Vfcnl8Ow== dependencies: - "@ai-sdk/provider" "0.0.24" - eventsource-parser "1.1.2" nanoid "3.3.6" + "@ai-sdk/provider" "0.0.24" secure-json-parse "2.7.0" + eventsource-parser "1.1.2" "@ai-sdk/provider-utils@1.0.22": version "1.0.22" resolved "https://registry.npmjs.org/@ai-sdk/provider-utils/-/provider-utils-1.0.22.tgz" integrity sha512-YHK2rpj++wnLVc9vPGzGFP3Pjeld2MwhKinetA0zKXOoHAT/Jit5O8kZsxcSlJPu9wvcGT1UGZEjZrtO7PfFOQ== dependencies: - "@ai-sdk/provider" "0.0.26" - eventsource-parser "^1.1.2" nanoid "^3.3.7" + "@ai-sdk/provider" "0.0.26" secure-json-parse "^2.7.0" + eventsource-parser "^1.1.2" "@ai-sdk/provider-utils@2.1.8": version "2.1.8" @@ -75,10 +75,10 @@ resolved "https://registry.npmjs.org/@ai-sdk/react/-/react-0.0.70.tgz" integrity sha512-GnwbtjW4/4z7MleLiW+TOZC2M29eCg1tOUpuEiYFMmFNZK8mkrqM0PFZMo6UsYeUYMWqEOOcPOU9OQVJMJh7IQ== dependencies: - "@ai-sdk/provider-utils" "1.0.22" - "@ai-sdk/ui-utils" "0.0.50" swr "^2.2.5" throttleit "2.1.0" + "@ai-sdk/ui-utils" "0.0.50" + "@ai-sdk/provider-utils" "1.0.22" "@ai-sdk/react@1.1.16": version "1.1.16" @@ -95,28 +95,28 @@ resolved "https://registry.npmjs.org/@ai-sdk/solid/-/solid-0.0.54.tgz" integrity sha512-96KWTVK+opdFeRubqrgaJXoNiDP89gNxFRWUp0PJOotZW816AbhUf4EnDjBjXTLjXL1n0h8tGSE9sZsRkj9wQQ== dependencies: - "@ai-sdk/provider-utils" "1.0.22" "@ai-sdk/ui-utils" "0.0.50" + "@ai-sdk/provider-utils" "1.0.22" "@ai-sdk/svelte@0.0.57": version "0.0.57" resolved "https://registry.npmjs.org/@ai-sdk/svelte/-/svelte-0.0.57.tgz" integrity sha512-SyF9ItIR9ALP9yDNAD+2/5Vl1IT6kchgyDH8xkmhysfJI6WrvJbtO1wdQ0nylvPLcsPoYu+cAlz1krU4lFHcYw== dependencies: - "@ai-sdk/provider-utils" "1.0.22" - "@ai-sdk/ui-utils" "0.0.50" sswr "^2.1.0" + "@ai-sdk/ui-utils" "0.0.50" + "@ai-sdk/provider-utils" "1.0.22" "@ai-sdk/ui-utils@0.0.50": version "0.0.50" resolved "https://registry.npmjs.org/@ai-sdk/ui-utils/-/ui-utils-0.0.50.tgz" integrity sha512-Z5QYJVW+5XpSaJ4jYCCAVG7zIAuKOOdikhgpksneNmKvx61ACFaf98pmOd+xnjahl0pIlc/QIe6O4yVaJ1sEaw== dependencies: - "@ai-sdk/provider" "0.0.26" - "@ai-sdk/provider-utils" "1.0.22" json-schema "^0.4.0" + "@ai-sdk/provider" "0.0.26" secure-json-parse "^2.7.0" zod-to-json-schema "^3.23.3" + "@ai-sdk/provider-utils" "1.0.22" "@ai-sdk/ui-utils@1.1.14": version "1.1.14" @@ -132,9 +132,9 @@ resolved "https://registry.npmjs.org/@ai-sdk/vue/-/vue-0.0.59.tgz" integrity sha512-+ofYlnqdc8c4F6tM0IKF0+7NagZRAiqBJpGDJ+6EYhDW8FHLUP/JFBgu32SjxSxC6IKFZxEnl68ZoP/Z38EMlw== dependencies: - "@ai-sdk/provider-utils" "1.0.22" - "@ai-sdk/ui-utils" "0.0.50" swrv "^1.0.4" + "@ai-sdk/ui-utils" "0.0.50" + "@ai-sdk/provider-utils" "1.0.22" "@alloc/quick-lru@^5.2.0": version "5.2.0" @@ -154,23 +154,23 @@ resolved "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-2.8.3.tgz" integrity sha512-GIc76d9UI1hCvOATjZPyHFmE5qhRccp3/zGfMPapK3jBi+yocEzp6BBB0UnfRYP9NP4FANqUZYb0hnfs3TM3hw== dependencies: + lru-cache "^10.4.3" "@csstools/css-calc" "^2.1.1" + "@csstools/css-tokenizer" "^3.0.3" "@csstools/css-color-parser" "^3.0.7" "@csstools/css-parser-algorithms" "^3.0.4" - "@csstools/css-tokenizer" "^3.0.3" - lru-cache "^10.4.3" "@auth/core@0.37.2": version "0.37.2" resolved "https://registry.npmjs.org/@auth/core/-/core-0.37.2.tgz" integrity sha512-kUvzyvkcd6h1vpeMAojK2y7+PAV5H+0Cc9+ZlKYDFhDY31AlvsB+GW5vNO4qE3Y07KeQgvNO9U0QUx/fN62kBw== dependencies: - "@panva/hkdf" "^1.2.1" - "@types/cookie" "0.6.0" - cookie "0.7.1" jose "^5.9.3" - oauth4webapi "^3.0.0" + cookie "0.7.1" preact "10.11.3" + "@panva/hkdf" "^1.2.1" + oauth4webapi "^3.0.0" + "@types/cookie" "0.6.0" preact-render-to-string "5.2.3" "@auth/core@0.37.4": @@ -776,9 +776,9 @@ resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz" integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ== dependencies: - "@babel/helper-validator-identifier" "^7.25.9" js-tokens "^4.0.0" picocolors "^1.0.0" + "@babel/helper-validator-identifier" "^7.25.9" "@babel/compat-data@^7.26.5": version "7.26.8" @@ -790,60 +790,60 @@ resolved "https://registry.npmjs.org/@babel/core/-/core-7.24.5.tgz" integrity sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA== dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.24.2" - "@babel/generator" "^7.24.5" - "@babel/helper-compilation-targets" "^7.23.6" - "@babel/helper-module-transforms" "^7.24.5" - "@babel/helpers" "^7.24.5" + debug "^4.1.0" + json5 "^2.2.3" + semver "^6.3.1" + gensync "^1.0.0-beta.2" + "@babel/types" "^7.24.5" "@babel/parser" "^7.24.5" + "@babel/helpers" "^7.24.5" "@babel/template" "^7.24.0" "@babel/traverse" "^7.24.5" - "@babel/types" "^7.24.5" + "@babel/generator" "^7.24.5" + "@babel/code-frame" "^7.24.2" convert-source-map "^2.0.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.3" - semver "^6.3.1" + "@ampproject/remapping" "^2.2.0" + "@babel/helper-module-transforms" "^7.24.5" + "@babel/helper-compilation-targets" "^7.23.6" "@babel/generator@^7.24.5", "@babel/generator@^7.26.9": version "7.26.9" resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.26.9.tgz" integrity sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg== dependencies: - "@babel/parser" "^7.26.9" + jsesc "^3.0.2" "@babel/types" "^7.26.9" + "@babel/parser" "^7.26.9" "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.25" - jsesc "^3.0.2" "@babel/helper-compilation-targets@^7.23.6": version "7.26.5" resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz" integrity sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA== dependencies: + semver "^6.3.1" + lru-cache "^5.1.1" + browserslist "^4.24.0" "@babel/compat-data" "^7.26.5" "@babel/helper-validator-option" "^7.25.9" - browserslist "^4.24.0" - lru-cache "^5.1.1" - semver "^6.3.1" "@babel/helper-module-imports@^7.25.9": version "7.25.9" resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz" integrity sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw== dependencies: - "@babel/traverse" "^7.25.9" "@babel/types" "^7.25.9" + "@babel/traverse" "^7.25.9" "@babel/helper-module-transforms@^7.24.5": version "7.26.0" resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz" integrity sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw== dependencies: + "@babel/traverse" "^7.25.9" "@babel/helper-module-imports" "^7.25.9" "@babel/helper-validator-identifier" "^7.25.9" - "@babel/traverse" "^7.25.9" "@babel/helper-string-parser@^7.25.9": version "7.25.9" @@ -865,8 +865,8 @@ resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.9.tgz" integrity sha512-Mz/4+y8udxBKdmzt/UjPACs4G3j5SshJJEFFKxlCGPydG4JAHXxjWjAwjd09tf6oINvl1VfMJo+nB7H2YKQ0dA== dependencies: - "@babel/template" "^7.26.9" "@babel/types" "^7.26.9" + "@babel/template" "^7.26.9" "@babel/parser@7.24.5", "@babel/parser@^7.24.5": version "7.24.5" @@ -892,22 +892,22 @@ resolved "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz" integrity sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA== dependencies: - "@babel/code-frame" "^7.26.2" - "@babel/parser" "^7.26.9" "@babel/types" "^7.26.9" + "@babel/parser" "^7.26.9" + "@babel/code-frame" "^7.26.2" "@babel/traverse@^7.24.5", "@babel/traverse@^7.25.9": version "7.26.9" resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.9.tgz" integrity sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg== dependencies: - "@babel/code-frame" "^7.26.2" - "@babel/generator" "^7.26.9" - "@babel/parser" "^7.26.9" - "@babel/template" "^7.26.9" - "@babel/types" "^7.26.9" debug "^4.3.1" globals "^11.1.0" + "@babel/types" "^7.26.9" + "@babel/parser" "^7.26.9" + "@babel/template" "^7.26.9" + "@babel/generator" "^7.26.9" + "@babel/code-frame" "^7.26.2" "@babel/types@^7.24.5", "@babel/types@^7.25.9", "@babel/types@^7.26.9": version "7.26.9" @@ -934,14 +934,14 @@ resolved "https://registry.npmjs.org/@biomejs/biome/-/biome-1.9.4.tgz" integrity sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog== optionalDependencies: - "@biomejs/cli-darwin-arm64" "1.9.4" + "@biomejs/cli-linux-x64" "1.9.4" + "@biomejs/cli-win32-x64" "1.9.4" "@biomejs/cli-darwin-x64" "1.9.4" "@biomejs/cli-linux-arm64" "1.9.4" - "@biomejs/cli-linux-arm64-musl" "1.9.4" - "@biomejs/cli-linux-x64" "1.9.4" - "@biomejs/cli-linux-x64-musl" "1.9.4" "@biomejs/cli-win32-arm64" "1.9.4" - "@biomejs/cli-win32-x64" "1.9.4" + "@biomejs/cli-darwin-arm64" "1.9.4" + "@biomejs/cli-linux-x64-musl" "1.9.4" + "@biomejs/cli-linux-arm64-musl" "1.9.4" "@biomejs/cli-darwin-arm64@1.9.4": version "1.9.4" @@ -1003,11 +1003,11 @@ posthog-js "^1.215.3" posthog-node "^4.4.1" -"@bubba/db@packages/db", "@bubba/db@workspace:*": +"@bubba/db@packages/db": version "workspace:packages/db" resolved "workspace:packages/db" devDependencies: - "@bubba/tsconfig" "workspace:*" + "@bubba/tsconfig" "packages/tsconfig" typescript "^5.7.3" dependencies: "@auth/prisma-adapter" "^2.7.4" @@ -1025,9 +1025,8 @@ "@types/react-dom" "^19.0.0" typescript "^5.7.2" dependencies: - "@bubba/ui" "workspace:*" - "@bubba/utils" "workspace:*" - dependencies: + "@bubba/ui" "packages/ui" + "@bubba/utils" "packages/utils" "@react-email/components" "0.0.31" "@react-email/render" "0.0.10" "@react-email/tailwind" "1.0.4" @@ -1058,7 +1057,7 @@ "@upstash/redis" "^1.34.2" server-only "^0.0.1" -"@bubba/notifications@packages/notifications", "@bubba/notifications@workspace:*": +"@bubba/notifications@packages/notifications": version "workspace:packages/notifications" resolved "workspace:packages/notifications" devDependencies: @@ -1067,11 +1066,11 @@ "@novu/node" "^2.0.1" nanoid "^5.0.7" -"@bubba/tsconfig@packages/tsconfig", "@bubba/tsconfig@workspace:*": +"@bubba/tsconfig@packages/tsconfig": version "workspace:packages/tsconfig" resolved "workspace:packages/tsconfig" -"@bubba/ui@packages/ui", "@bubba/ui@workspace:*": +"@bubba/ui@packages/ui": version "workspace:packages/ui" resolved "workspace:packages/ui" devDependencies: @@ -1135,7 +1134,7 @@ use-callback-ref "^1.3.3" vaul "^1.0.0" -"@bubba/utils@packages/utils", "@bubba/utils@workspace:*": +"@bubba/utils@packages/utils": version "workspace:packages/utils" resolved "workspace:packages/utils" devDependencies: @@ -1161,9 +1160,9 @@ resolved "https://registry.npmjs.org/@clack/prompts/-/prompts-0.10.0.tgz" integrity sha512-H3rCl6CwW1NdQt9rE3n373t7o5cthPv7yUoxF2ytZvyvlJv89C5RYMJu83Hed8ODgys5vpBU0GKxIRG83jd8NQ== dependencies: - "@clack/core" "0.4.1" picocolors "^1.0.0" sisteransi "^1.0.5" + "@clack/core" "0.4.1" "@csstools/color-helpers@^5.0.1": version "5.0.1" @@ -1208,8 +1207,8 @@ resolved "https://registry.npmjs.org/@effect/platform/-/platform-0.72.0.tgz" integrity sha512-uHsW2hlo6AiIW3zpLAVAoNvJngS/JwCZBAM4RSRllm8JTgjjCraef78FJBDNnSXz+2a10Xzzx4qxVsP3s8EV5Q== dependencies: - find-my-way-ts "^0.1.5" multipasta "^0.2.5" + find-my-way-ts "^0.1.5" "@egjs/agent@^2.2.1": version "2.4.4" @@ -1446,10 +1445,10 @@ resolved "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.3.3.tgz" integrity sha512-pJT1OkhplSmvvr6i3CWTPvC/FGC06MbN5TNBfRO6Ox62AEz90eMq+dVvtX9Bl3jxCEkS0tATzDarRZuOLw7oFg== dependencies: - "@formatjs/fast-memoize" "2.2.6" - "@formatjs/intl-localematcher" "0.6.0" decimal.js "10" tslib "2" + "@formatjs/fast-memoize" "2.2.6" + "@formatjs/intl-localematcher" "0.6.0" "@formatjs/fast-memoize@2.2.6", "@formatjs/fast-memoize@^2.2.0": version "2.2.6" @@ -1463,17 +1462,17 @@ resolved "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.11.1.tgz" integrity sha512-o0AhSNaOfKoic0Sn1GkFCK4MxdRsw7mPJ5/rBpIqdvcC7MIuyUSW8WChUEvrK78HhNpYOgqCQbINxCTumJLzZA== dependencies: + tslib "2" "@formatjs/ecma402-abstract" "2.3.3" "@formatjs/icu-skeleton-parser" "1.8.13" - tslib "2" "@formatjs/icu-skeleton-parser@1.8.13": version "1.8.13" resolved "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.13.tgz" integrity sha512-N/LIdTvVc1TpJmMt2jVg0Fr1F7Q1qJPdZSCs19unMskCmVQ/sa0H9L8PWt13vq+gLdLg1+pPsvBLydL1Apahjg== dependencies: - "@formatjs/ecma402-abstract" "2.3.3" tslib "2" + "@formatjs/ecma402-abstract" "2.3.3" "@formatjs/intl-localematcher@^0.5.4": version "0.5.10" @@ -1812,70 +1811,70 @@ hey-listen "^1.0.8" tslib "^2.3.1" -"@mui/core-downloads-tracker@^6.4.4": - version "6.4.4" - resolved "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-6.4.4.tgz" - integrity sha512-r+J0EditrekkTtO2CnCBCOGpNaDYwJqz8lH4rj6o/anDcskZFJodBlG8aCJkS8DL/CF/9EHS+Gz53EbmYEnQbw== +"@mui/core-downloads-tracker@^6.4.5": + version "6.4.5" + resolved "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-6.4.5.tgz" + integrity sha512-zoXvHU1YuoodgMlPS+epP084Pqv9V+Vg+5IGv9n/7IIFVQ2nkTngYHYxElCq8pdTTbDcgji+nNh0lxri2abWgA== "@mui/icons-material@^6.1.6": - version "6.4.4" - resolved "https://registry.npmjs.org/@mui/icons-material/-/icons-material-6.4.4.tgz" - integrity sha512-uF1chGaoFmYdRUomK6f8kgJfWosk9A3HXWiVD0vQm+2mE7f25eTQ1E8RRO11LXpnUBqu8Rbv/uGlpnjT/u1Ksg== + version "6.4.5" + resolved "https://registry.npmjs.org/@mui/icons-material/-/icons-material-6.4.5.tgz" + integrity sha512-4A//t8Nrc+4u4pbVhGarIFU98zpuB5AV9hTNzgXx1ySZJ1tWtx+i/1SbQ8PtGJxWeXlljhwimZJNPQ3x0CiIFw== dependencies: "@babel/runtime" "^7.26.0" -"@mui/material@^6.4.4": - version "6.4.4" - resolved "https://registry.npmjs.org/@mui/material/-/material-6.4.4.tgz" - integrity sha512-ISVPrIsPQsxnwvS40C4u03AuNSPigFeS2+n1qpuEZ94hDsdMi19dQM2JcC9CHEhXecSIQjP1RTyY0mPiSpSrFQ== +"@mui/material@^6.4.5": + version "6.4.5" + resolved "https://registry.npmjs.org/@mui/material/-/material-6.4.5.tgz" + integrity sha512-5eyEgSXocIeV1JkXs8mYyJXU0aFyXZIWI5kq2g/mCnIgJe594lkOBNAKnCIaGVfQTu2T6TTEHF8/hHIqpiIRGA== dependencies: - "@babel/runtime" "^7.26.0" - "@mui/core-downloads-tracker" "^6.4.4" - "@mui/system" "^6.4.3" - "@mui/types" "^7.2.21" - "@mui/utils" "^6.4.3" - "@popperjs/core" "^2.11.8" - "@types/react-transition-group" "^4.4.12" clsx "^2.1.1" csstype "^3.1.3" - prop-types "^15.8.1" react-is "^19.0.0" + "@mui/types" "^7.2.21" + "@mui/utils" "^6.4.3" + prop-types "^15.8.1" + "@mui/system" "^6.4.3" + "@babel/runtime" "^7.26.0" + "@popperjs/core" "^2.11.8" react-transition-group "^4.4.5" + "@mui/core-downloads-tracker" "^6.4.5" + "@types/react-transition-group" "^4.4.12" "@mui/private-theming@^6.4.3": version "6.4.3" resolved "https://registry.npmjs.org/@mui/private-theming/-/private-theming-6.4.3.tgz" integrity sha512-7x9HaNwDCeoERc4BoEWLieuzKzXu5ZrhRnEM6AUcRXUScQLvF1NFkTlP59+IJfTbEMgcGg1wWHApyoqcksrBpQ== dependencies: - "@babel/runtime" "^7.26.0" "@mui/utils" "^6.4.3" prop-types "^15.8.1" + "@babel/runtime" "^7.26.0" "@mui/styled-engine@^6.4.3": version "6.4.3" resolved "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-6.4.3.tgz" integrity sha512-OC402VfK+ra2+f12Gef8maY7Y9n7B6CZcoQ9u7mIkh/7PKwW/xH81xwX+yW+Ak1zBT3HYcVjh2X82k5cKMFGoQ== dependencies: + csstype "^3.1.3" + prop-types "^15.8.1" "@babel/runtime" "^7.26.0" "@emotion/cache" "^11.13.5" - "@emotion/serialize" "^1.3.3" "@emotion/sheet" "^1.4.0" - csstype "^3.1.3" - prop-types "^15.8.1" + "@emotion/serialize" "^1.3.3" "@mui/system@^6.4.3": version "6.4.3" resolved "https://registry.npmjs.org/@mui/system/-/system-6.4.3.tgz" integrity sha512-Q0iDwnH3+xoxQ0pqVbt8hFdzhq1g2XzzR4Y5pVcICTNtoCLJmpJS3vI4y/OIM1FHFmpfmiEC2IRIq7YcZ8nsmg== dependencies: - "@babel/runtime" "^7.26.0" - "@mui/private-theming" "^6.4.3" - "@mui/styled-engine" "^6.4.3" - "@mui/types" "^7.2.21" - "@mui/utils" "^6.4.3" clsx "^2.1.1" csstype "^3.1.3" + "@mui/types" "^7.2.21" + "@mui/utils" "^6.4.3" prop-types "^15.8.1" + "@babel/runtime" "^7.26.0" + "@mui/styled-engine" "^6.4.3" + "@mui/private-theming" "^6.4.3" "@mui/types@^7.2.21": version "7.2.21" @@ -1887,32 +1886,32 @@ resolved "https://registry.npmjs.org/@mui/utils/-/utils-6.4.3.tgz" integrity sha512-jxHRHh3BqVXE9ABxDm+Tc3wlBooYz/4XPa0+4AI+iF38rV1/+btJmSUgG4shDtSWVs/I97aDn5jBCt6SF2Uq2A== dependencies: - "@babel/runtime" "^7.26.0" - "@mui/types" "^7.2.21" - "@types/prop-types" "^15.7.14" clsx "^2.1.1" - prop-types "^15.8.1" react-is "^19.0.0" + "@mui/types" "^7.2.21" + prop-types "^15.8.1" + "@babel/runtime" "^7.26.0" + "@types/prop-types" "^15.7.14" "@nangohq/frontend@^0.53.1": - version "0.53.2" - resolved "https://registry.npmjs.org/@nangohq/frontend/-/frontend-0.53.2.tgz" - integrity sha512-ZSNY9jHVuF/Qfsu8TJBK3tujsxO+Qi7dHWNFt316Mq3g4od9MwuHefTEs0EtfpUTCB18hNE05QOQWCuD8zO8Aw== + version "0.53.1" + resolved "https://registry.npmjs.org/@nangohq/frontend/-/frontend-0.53.1.tgz" + integrity sha512-NjQwktw1aKYsQ9QPGJkyABgVZhWBrYlJgi12ohyLnw1X/0jLH2XxVrGEmBG/F8ID1/1g3YHo1SxdV0Dcaw0ZPQ== dependencies: - "@nangohq/types" "0.53.2" + "@nangohq/types" "0.53.1" "@nangohq/node@^0.53.1": - version "0.53.2" - resolved "https://registry.npmjs.org/@nangohq/node/-/node-0.53.2.tgz" - integrity sha512-QfBrtbv1dekI3RH+HX+43MGIRs36MNuWMdWS1RRFKjiCmIwKaOje6qjRj0UDjQYtokKcbt2id2sAAq8fmusjCQ== + version "0.53.1" + resolved "https://registry.npmjs.org/@nangohq/node/-/node-0.53.1.tgz" + integrity sha512-cdn17bsbpZ5te5TPlJMYmdz0dkcG9ruLJQmrZAfVh1opKC0guCYOpcRFBiM8jSYC2QhlGWzn93qcsUtMSPXzXg== dependencies: - "@nangohq/types" "0.53.2" + "@nangohq/types" "0.53.1" axios "^1.7.9" -"@nangohq/types@0.53.2": - version "0.53.2" - resolved "https://registry.npmjs.org/@nangohq/types/-/types-0.53.2.tgz" - integrity sha512-G7oC4QsJrmLjAWQmvB7gY8hE0UMr8PofAY/pPsk/0sHIM1YWeealBI7RiPeN4UluArT7w+OoUvMQd+jtrTh9Lw== +"@nangohq/types@0.53.1": + version "0.53.1" + resolved "https://registry.npmjs.org/@nangohq/types/-/types-0.53.1.tgz" + integrity sha512-9ZfkhoYgwEkAonYHku0sE20pYn+XlAVvD74HDqXg4b9g0Lxsdsv7eptr0VVPMaaUAt790JjfbwphrlEIvWyCag== dependencies: axios "^1.7.9" json-schema "0.4.0" @@ -2050,8 +2049,8 @@ resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: - "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" + "@nodelib/fs.scandir" "2.1.5" "@novu/client@2.6.5": version "2.6.5" @@ -2065,10 +2064,10 @@ resolved "https://registry.npmjs.org/@novu/headless/-/headless-2.6.5.tgz" integrity sha512-/jVFGAjobMV7d7pjAuBABggFZHUmLH6g6GslNilr79+uitPK3ZW4QWX4iQ1UPrGAbj7w6Xf4Ve3fAq7vftB1qw== dependencies: - "@novu/client" "2.6.5" - "@novu/shared" "2.6.5" "@tanstack/query-core" "^4.15.1" socket.io-client "4.7.2" + "@novu/client" "2.6.5" + "@novu/shared" "2.6.5" "@novu/js@2.6.5": version "2.6.5" @@ -2090,25 +2089,25 @@ resolved "https://registry.npmjs.org/@novu/node/-/node-2.6.5.tgz" integrity sha512-5GQI6EkjsLNbzUOXIRGbeFNsY1+bzI8sVhoeBCJfnJ9r/elFNRSMYsgVp5dCXtzLBrp7cjMfYNdLFhp1uUNaig== dependencies: - "@novu/shared" "2.6.5" axios "^1.6.8" axios-retry "^3.8.0" handlebars "^4.7.7" lodash.get "^4.4.2" lodash.merge "^4.6.2" uuid "^9.0.1" + "@novu/shared" "2.6.5" "@novu/ntfr-client@^0.0.4": version "0.0.4" resolved "https://registry.npmjs.org/@novu/ntfr-client/-/ntfr-client-0.0.4.tgz" integrity sha512-/9q+qGFHHFwMsuqoLwTADMjSx2JPagpJpm7jOZRzQZgSEDg9kwNAhADneRzVYhMyjdEXIQyjTmX/oP8ABAavFw== dependencies: + ws "^8.11.0" + zod "3.22.3" https "^1.0.0" node-fetch "^3.3.2" partysocket "^0.0.17" proxy-agent "^6.3.0" - ws "^8.11.0" - zod "3.22.3" "@novu/react@^2.6.5": version "2.6.5" @@ -2127,7 +2126,7 @@ resolved "https://registry.npmjs.org/@one-ini/wasm/-/wasm-0.1.1.tgz" integrity sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw== -"@opentelemetry/api@1.9.0", "@opentelemetry/api@>=1.0.0 <1.10.0", "@opentelemetry/api@>=1.3.0 <1.10.0", "@opentelemetry/api@>=1.4.0 <1.10.0", "@opentelemetry/api@^1.0.0", "@opentelemetry/api@^1.1.0", "@opentelemetry/api@^1.3.0", "@opentelemetry/api@^1.8": +"@opentelemetry/api@1.9.0", "@opentelemetry/api@>=1.0.0 <1.10.0", "@opentelemetry/api@>=1.3.0 <1.10.0", "@opentelemetry/api@>=1.4.0 <1.10.0", "@opentelemetry/api@^1.0.0", "@opentelemetry/api@^1.3.0", "@opentelemetry/api@^1.8": version "1.9.0" resolved "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz" integrity sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg== @@ -2139,13 +2138,6 @@ dependencies: "@opentelemetry/api" "^1.0.0" -"@opentelemetry/api-logs@0.57.2": - version "0.57.2" - resolved "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.57.2.tgz" - integrity sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A== - dependencies: - "@opentelemetry/api" "^1.3.0" - "@opentelemetry/context-async-hooks@1.25.1": version "1.25.1" resolved "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.25.1.tgz" @@ -2163,11 +2155,11 @@ resolved "https://registry.npmjs.org/@opentelemetry/exporter-logs-otlp-http/-/exporter-logs-otlp-http-0.52.1.tgz" integrity sha512-qKgywId2DbdowPZpOBXQKp0B8DfhfIArmSic15z13Nk/JAOccBUQdPwDjDnjsM5f0ckZFMVR2t/tijTUAqDZoA== dependencies: - "@opentelemetry/api-logs" "0.52.1" "@opentelemetry/core" "1.25.1" - "@opentelemetry/otlp-exporter-base" "0.52.1" - "@opentelemetry/otlp-transformer" "0.52.1" + "@opentelemetry/api-logs" "0.52.1" "@opentelemetry/sdk-logs" "0.52.1" + "@opentelemetry/otlp-transformer" "0.52.1" + "@opentelemetry/otlp-exporter-base" "0.52.1" "@opentelemetry/exporter-trace-otlp-grpc@0.52.1": version "0.52.1" @@ -2176,10 +2168,10 @@ dependencies: "@grpc/grpc-js" "^1.7.1" "@opentelemetry/core" "1.25.1" - "@opentelemetry/otlp-grpc-exporter-base" "0.52.1" - "@opentelemetry/otlp-transformer" "0.52.1" "@opentelemetry/resources" "1.25.1" "@opentelemetry/sdk-trace-base" "1.25.1" + "@opentelemetry/otlp-transformer" "0.52.1" + "@opentelemetry/otlp-grpc-exporter-base" "0.52.1" "@opentelemetry/exporter-trace-otlp-http@0.52.1": version "0.52.1" @@ -2187,10 +2179,10 @@ integrity sha512-05HcNizx0BxcFKKnS5rwOV+2GevLTVIRA0tRgWYyw4yCgR53Ic/xk83toYKts7kbzcI+dswInUg/4s8oyA+tqg== dependencies: "@opentelemetry/core" "1.25.1" - "@opentelemetry/otlp-exporter-base" "0.52.1" - "@opentelemetry/otlp-transformer" "0.52.1" "@opentelemetry/resources" "1.25.1" "@opentelemetry/sdk-trace-base" "1.25.1" + "@opentelemetry/otlp-transformer" "0.52.1" + "@opentelemetry/otlp-exporter-base" "0.52.1" "@opentelemetry/exporter-trace-otlp-proto@0.52.1": version "0.52.1" @@ -2198,10 +2190,10 @@ integrity sha512-pt6uX0noTQReHXNeEslQv7x311/F1gJzMnp1HD2qgypLRPbXDeMzzeTngRTUaUbP6hqWNtPxuLr4DEoZG+TcEQ== dependencies: "@opentelemetry/core" "1.25.1" - "@opentelemetry/otlp-exporter-base" "0.52.1" - "@opentelemetry/otlp-transformer" "0.52.1" "@opentelemetry/resources" "1.25.1" "@opentelemetry/sdk-trace-base" "1.25.1" + "@opentelemetry/otlp-transformer" "0.52.1" + "@opentelemetry/otlp-exporter-base" "0.52.1" "@opentelemetry/exporter-zipkin@1.25.1": version "1.25.1" @@ -2213,29 +2205,17 @@ "@opentelemetry/sdk-trace-base" "1.25.1" "@opentelemetry/semantic-conventions" "1.25.1" -"@opentelemetry/instrumentation@0.52.1": +"@opentelemetry/instrumentation@0.52.1", "@opentelemetry/instrumentation@^0.52.0 || ^0.53.0 || ^0.54.0 || ^0.55.0 || ^0.56.0 || ^0.57.0": version "0.52.1" resolved "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.52.1.tgz" integrity sha512-uXJbYU/5/MBHjMp1FqrILLRuiJCs3Ofk0MeRDk8g1S1gD47U8X3JnSwcMO1rtRo1x1a7zKaQHaoYu49p/4eSKw== dependencies: - "@opentelemetry/api-logs" "0.52.1" - "@types/shimmer" "^1.0.2" - import-in-the-middle "^1.8.1" - require-in-the-middle "^7.1.1" semver "^7.5.2" shimmer "^1.2.1" - -"@opentelemetry/instrumentation@^0.52.0 || ^0.53.0 || ^0.54.0 || ^0.55.0 || ^0.56.0 || ^0.57.0": - version "0.57.2" - resolved "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.57.2.tgz" - integrity sha512-BdBGhQBh8IjZ2oIIX6F2/Q3LKm/FDDKi6ccYKcBTeilh6SNdNKveDOLk73BkSJjQLJk6qe4Yh+hHw1UPhCDdrg== - dependencies: - "@opentelemetry/api-logs" "0.57.2" - "@types/shimmer" "^1.2.0" + "@types/shimmer" "^1.0.2" import-in-the-middle "^1.8.1" require-in-the-middle "^7.1.1" - semver "^7.5.2" - shimmer "^1.2.1" + "@opentelemetry/api-logs" "0.52.1" "@opentelemetry/otlp-exporter-base@0.52.1": version "0.52.1" @@ -2252,21 +2232,21 @@ dependencies: "@grpc/grpc-js" "^1.7.1" "@opentelemetry/core" "1.25.1" - "@opentelemetry/otlp-exporter-base" "0.52.1" "@opentelemetry/otlp-transformer" "0.52.1" + "@opentelemetry/otlp-exporter-base" "0.52.1" "@opentelemetry/otlp-transformer@0.52.1": version "0.52.1" resolved "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.52.1.tgz" integrity sha512-I88uCZSZZtVa0XniRqQWKbjAUm73I8tpEy/uJYPPYw5d7BRdVk0RfTBQw8kSUl01oVWEuqxLDa802222MYyWHg== dependencies: - "@opentelemetry/api-logs" "0.52.1" + protobufjs "^7.3.0" "@opentelemetry/core" "1.25.1" - "@opentelemetry/resources" "1.25.1" + "@opentelemetry/api-logs" "0.52.1" "@opentelemetry/sdk-logs" "0.52.1" + "@opentelemetry/resources" "1.25.1" "@opentelemetry/sdk-metrics" "1.25.1" "@opentelemetry/sdk-trace-base" "1.25.1" - protobufjs "^7.3.0" "@opentelemetry/propagator-b3@1.25.1": version "1.25.1" @@ -2295,8 +2275,8 @@ resolved "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.52.1.tgz" integrity sha512-MBYh+WcPPsN8YpRHRmK1Hsca9pVlyyKd4BxOC4SsgHACnl/bPp4Cri9hWhVm5+2tiQ9Zf4qSc1Jshw9tOLGWQA== dependencies: - "@opentelemetry/api-logs" "0.52.1" "@opentelemetry/core" "1.25.1" + "@opentelemetry/api-logs" "0.52.1" "@opentelemetry/resources" "1.25.1" "@opentelemetry/sdk-metrics@1.25.1": @@ -2304,28 +2284,28 @@ resolved "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.25.1.tgz" integrity sha512-9Mb7q5ioFL4E4dDrc4wC/A3NTHDat44v4I3p2pLPSxRvqUbDIQyMVr9uK+EU69+HWhlET1VaSrRzwdckWqY15Q== dependencies: + lodash.merge "^4.6.2" "@opentelemetry/core" "1.25.1" "@opentelemetry/resources" "1.25.1" - lodash.merge "^4.6.2" "@opentelemetry/sdk-node@0.52.1": version "0.52.1" resolved "https://registry.npmjs.org/@opentelemetry/sdk-node/-/sdk-node-0.52.1.tgz" integrity sha512-uEG+gtEr6eKd8CVWeKMhH2olcCHM9dEK68pe0qE0be32BcCRsvYURhHaD1Srngh1SQcnQzZ4TP324euxqtBOJA== dependencies: - "@opentelemetry/api-logs" "0.52.1" "@opentelemetry/core" "1.25.1" - "@opentelemetry/exporter-trace-otlp-grpc" "0.52.1" - "@opentelemetry/exporter-trace-otlp-http" "0.52.1" - "@opentelemetry/exporter-trace-otlp-proto" "0.52.1" - "@opentelemetry/exporter-zipkin" "1.25.1" - "@opentelemetry/instrumentation" "0.52.1" - "@opentelemetry/resources" "1.25.1" + "@opentelemetry/api-logs" "0.52.1" "@opentelemetry/sdk-logs" "0.52.1" + "@opentelemetry/resources" "1.25.1" "@opentelemetry/sdk-metrics" "1.25.1" "@opentelemetry/sdk-trace-base" "1.25.1" "@opentelemetry/sdk-trace-node" "1.25.1" + "@opentelemetry/exporter-zipkin" "1.25.1" + "@opentelemetry/instrumentation" "0.52.1" "@opentelemetry/semantic-conventions" "1.25.1" + "@opentelemetry/exporter-trace-otlp-grpc" "0.52.1" + "@opentelemetry/exporter-trace-otlp-http" "0.52.1" + "@opentelemetry/exporter-trace-otlp-proto" "0.52.1" "@opentelemetry/sdk-trace-base@1.25.1": version "1.25.1" @@ -2341,12 +2321,12 @@ resolved "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.25.1.tgz" integrity sha512-nMcjFIKxnFqoez4gUmihdBrbpsEnAX/Xj16sGvZm+guceYE0NE00vLhpDVK6f3q8Q4VFI5xG8JjlXKMB/SkTTQ== dependencies: - "@opentelemetry/context-async-hooks" "1.25.1" + semver "^7.5.2" "@opentelemetry/core" "1.25.1" "@opentelemetry/propagator-b3" "1.25.1" - "@opentelemetry/propagator-jaeger" "1.25.1" "@opentelemetry/sdk-trace-base" "1.25.1" - semver "^7.5.2" + "@opentelemetry/propagator-jaeger" "1.25.1" + "@opentelemetry/context-async-hooks" "1.25.1" "@opentelemetry/semantic-conventions@1.25.1": version "1.25.1" @@ -2488,9 +2468,9 @@ resolved "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.3.1.tgz" integrity sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw== dependencies: - "@pnpm/config.env-replace" "^1.1.0" - "@pnpm/network.ca-file" "^1.0.1" config-chain "^1.1.11" + "@pnpm/network.ca-file" "^1.0.1" + "@pnpm/config.env-replace" "^1.1.0" "@popperjs/core@^2.11.8", "@popperjs/core@^2.9.0": version "2.11.8" @@ -2498,70 +2478,70 @@ integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== "@prisma/adapter-neon@^6.3.1": - version "6.3.1" - resolved "https://registry.npmjs.org/@prisma/adapter-neon/-/adapter-neon-6.3.1.tgz" - integrity sha512-yDCeqQ0EYT/DBL6G2uh01IlVrCr9Jli6SXa1yvdl/Kq4O/Hjj1i+Oxg4FskHVStLvlo6bqNxEFtLEuFCLCXG1A== + version "6.4.0" + resolved "https://registry.npmjs.org/@prisma/adapter-neon/-/adapter-neon-6.4.0.tgz" + integrity sha512-iRaNmzESQLltEb51hv9jChNFnUDx4VbDvpcyI25kLYwh/RJJR18KjtYCrq4WX22ruFxatlXKXKGZ/XS+bOY2kQ== dependencies: - "@prisma/driver-adapter-utils" "6.3.1" postgres-array "3.0.2" + "@prisma/driver-adapter-utils" "6.4.0" "@prisma/client@>=2.26.0 || >=3 || >=4 || >=5", "@prisma/client@>=4.16.1", "@prisma/client@^6.3.1": - version "6.3.1" - resolved "https://registry.npmjs.org/@prisma/client/-/client-6.3.1.tgz" - integrity sha512-ARAJaPs+eBkemdky/XU3cvGRl+mIPHCN2lCXsl5Vlb0E2gV+R6IN7aCI8CisRGszEZondwIsW9Iz8EJkTdykyA== + version "6.4.0" + resolved "https://registry.npmjs.org/@prisma/client/-/client-6.4.0.tgz" + integrity sha512-48tLb+VL7iuuqJXjD4Xbqa622fuh8UtqmjTf39AKrQjlTUdNaMc9sC/c49eXQkcnrAdh9FoS1qVupmZSYiZ9TQ== -"@prisma/debug@6.3.1": - version "6.3.1" - resolved "https://registry.npmjs.org/@prisma/debug/-/debug-6.3.1.tgz" - integrity sha512-RrEBkd+HLZx+ydfmYT0jUj7wjLiS95wfTOSQ+8FQbvb6vHh5AeKfEPt/XUQ5+Buljj8hltEfOslEW57/wQIVeA== +"@prisma/debug@6.4.0": + version "6.4.0" + resolved "https://registry.npmjs.org/@prisma/debug/-/debug-6.4.0.tgz" + integrity sha512-zXsLpNXLypdThJjItqk0u/3uitcD9+9rNynZPPu4Xp7664yp8VbxCGTVBS696vA0e3kw0Xv/4muR+cNHkxspcw== -"@prisma/driver-adapter-utils@6.3.1": - version "6.3.1" - resolved "https://registry.npmjs.org/@prisma/driver-adapter-utils/-/driver-adapter-utils-6.3.1.tgz" - integrity sha512-Z30oSnSFYlzU/Z96lfApqd42EzSXwxj7iPD34iGdZ+fecGlOO9WaBY2tlzCdt7sdhxIxNGEL8tD1o4EHX8tLNA== +"@prisma/driver-adapter-utils@6.4.0": + version "6.4.0" + resolved "https://registry.npmjs.org/@prisma/driver-adapter-utils/-/driver-adapter-utils-6.4.0.tgz" + integrity sha512-lfDUpSAyhmn3JBAoxpT/FAPl5bB+8qF39hA13KvwH0mBBxTzsI7mWZ/Jv4OFnCjeXSjPtxqUJLkPAdVuSK9g1g== dependencies: - "@prisma/debug" "6.3.1" + "@prisma/debug" "6.4.0" -"@prisma/engines@6.3.1": - version "6.3.1" - resolved "https://registry.npmjs.org/@prisma/engines/-/engines-6.3.1.tgz" - integrity sha512-sXdqEVLyGAJ5/iUoG/Ea5AdHMN71m6PzMBWRQnLmhhOejzqAaEr8rUd623ql6OJpED4s/U4vIn4dg1qkF7vGag== +"@prisma/engines@6.4.0": + version "6.4.0" + resolved "https://registry.npmjs.org/@prisma/engines/-/engines-6.4.0.tgz" + integrity sha512-SeUigmWj0uhnSjYKWkG//Gzj4XHy6bi1TXgTZ+pPujxGELJgOvecgaA/bHmWokyHPnbYWRaoSwQDxPjihYzSZg== dependencies: - "@prisma/debug" "6.3.1" - "@prisma/engines-version" "6.3.0-17.acc0b9dd43eb689cbd20c9470515d719db10d0b0" - "@prisma/fetch-engine" "6.3.1" - "@prisma/get-platform" "6.3.1" + "@prisma/engines-version" "6.4.0-29.a9055b89e58b4b5bfb59600785423b1db3d0e75d" + "@prisma/debug" "6.4.0" + "@prisma/fetch-engine" "6.4.0" + "@prisma/get-platform" "6.4.0" -"@prisma/engines-version@6.3.0-17.acc0b9dd43eb689cbd20c9470515d719db10d0b0": - version "6.3.0-17.acc0b9dd43eb689cbd20c9470515d719db10d0b0" - resolved "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-6.3.0-17.acc0b9dd43eb689cbd20c9470515d719db10d0b0.tgz" - integrity sha512-R/ZcMuaWZT2UBmgX3Ko6PAV3f8//ZzsjRIG1eKqp3f2rqEqVtCv+mtzuH2rBPUC9ujJ5kCb9wwpxeyCkLcHVyA== +"@prisma/engines-version@6.4.0-29.a9055b89e58b4b5bfb59600785423b1db3d0e75d": + version "6.4.0-29.a9055b89e58b4b5bfb59600785423b1db3d0e75d" + resolved "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-6.4.0-29.a9055b89e58b4b5bfb59600785423b1db3d0e75d.tgz" + integrity sha512-Xq54qw55vaCGrGgIJqyDwOq0TtjZPJEWsbQAHugk99hpDf2jcEeQhUcF+yzEsSqegBaDNLA4IC8Nn34sXmkiTQ== "@prisma/extension-accelerate@^1.2.2": version "1.2.2" resolved "https://registry.npmjs.org/@prisma/extension-accelerate/-/extension-accelerate-1.2.2.tgz" integrity sha512-LOlfkG6If+o8PFRzLzp26ackP/d+j2HrkTJaxuV/Wd+sdAHz/AkmzEDGbo2UpHFpxEM9hWMBe3ScSwUKYUDOXg== -"@prisma/fetch-engine@6.3.1": - version "6.3.1" - resolved "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-6.3.1.tgz" - integrity sha512-HOf/0umOgt+/S2xtZze+FHKoxpVg4YpVxROr6g2YG09VsI3Ipyb+rGvD6QGbCqkq5NTWAAZoOGNL+oy7t+IhaQ== +"@prisma/fetch-engine@6.4.0": + version "6.4.0" + resolved "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-6.4.0.tgz" + integrity sha512-CN/Qb/+n+15gfhN0ipeUcGu/oGw7HIwVw4DCKD11190dneVGpa+n0wxwXTFJlV0vkAeSBSkQ3y1ugKAa5s/VPg== dependencies: - "@prisma/debug" "6.3.1" - "@prisma/engines-version" "6.3.0-17.acc0b9dd43eb689cbd20c9470515d719db10d0b0" - "@prisma/get-platform" "6.3.1" + "@prisma/engines-version" "6.4.0-29.a9055b89e58b4b5bfb59600785423b1db3d0e75d" + "@prisma/debug" "6.4.0" + "@prisma/get-platform" "6.4.0" -"@prisma/get-platform@6.3.1": - version "6.3.1" - resolved "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-6.3.1.tgz" - integrity sha512-AYLq6Hk9xG73JdLWJ3Ip9Wg/vlP7xPvftGBalsPzKDOHr/ImhwJ09eS8xC2vNT12DlzGxhfk8BkL0ve2OriNhQ== +"@prisma/get-platform@6.4.0": + version "6.4.0" + resolved "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-6.4.0.tgz" + integrity sha512-khANH9QbCRhFWiGj3qmR0clxLTU76Cimxf4JAhjhtpsc1jdG1A9geGe0kU4WAQ1YpiKFJ10s9j2wbbE/jSP99Q== dependencies: - "@prisma/debug" "6.3.1" + "@prisma/debug" "6.4.0" "@prisma/instrumentation@^6.3.1": - version "6.3.1" - resolved "https://registry.npmjs.org/@prisma/instrumentation/-/instrumentation-6.3.1.tgz" - integrity sha512-XETCiBQYm8p/3ouNs0sv00MqjeYYM6sge0CSgx+Oevex99cfOBPt+J6JbOPyYqYcyOd3m2j2xRlXkPUKmpuxiA== + version "6.4.0" + resolved "https://registry.npmjs.org/@prisma/instrumentation/-/instrumentation-6.4.0.tgz" + integrity sha512-7QcoOE0DpxHaC/3Q+UTKvDCVL3Wc9C0MYHjGvMl9/LKLNI/D33CTMXJji/otWxOeRYFl6ENDB4768Og0grT9tw== dependencies: "@opentelemetry/instrumentation" "^0.52.0 || ^0.53.0 || ^0.54.0 || ^0.55.0 || ^0.56.0 || ^0.57.0" @@ -2627,9 +2607,9 @@ extract-zip "^2.0.1" progress "^2.0.3" proxy-agent "^6.5.0" - semver "^7.7.0" tar-fs "^3.0.8" yargs "^17.7.2" + semver "^7.7.0" "@radix-ui/number@1.1.0": version "1.1.0" @@ -2653,14 +2633,14 @@ resolved "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-1.2.3.tgz" integrity sha512-RIQ15mrcvqIkDARJeERSuXSry2N8uYnxkdDetpfmalT/+0ntOXLkFOsh9iwlAsCv+qcmhZjbdJogIm6WBa6c4A== dependencies: + "@radix-ui/react-id" "1.1.0" "@radix-ui/primitive" "1.1.1" - "@radix-ui/react-collapsible" "1.1.3" - "@radix-ui/react-collection" "1.1.2" - "@radix-ui/react-compose-refs" "1.1.1" "@radix-ui/react-context" "1.1.1" "@radix-ui/react-direction" "1.1.0" - "@radix-ui/react-id" "1.1.0" "@radix-ui/react-primitive" "2.0.2" + "@radix-ui/react-collection" "1.1.2" + "@radix-ui/react-collapsible" "1.1.3" + "@radix-ui/react-compose-refs" "1.1.1" "@radix-ui/react-use-controllable-state" "1.1.0" "@radix-ui/react-alert-dialog@^1.1.2": @@ -2669,11 +2649,11 @@ integrity sha512-p4XnPqgej8sZAAReCAKgz1REYZEBLR8hU9Pg27wFnCWIMc8g1ccCs0FjBcy05V15VTu8pAePw/VDYeOm/uZ6yQ== dependencies: "@radix-ui/primitive" "1.1.1" - "@radix-ui/react-compose-refs" "1.1.1" - "@radix-ui/react-context" "1.1.1" + "@radix-ui/react-slot" "1.1.2" "@radix-ui/react-dialog" "1.1.6" + "@radix-ui/react-context" "1.1.1" "@radix-ui/react-primitive" "2.0.2" - "@radix-ui/react-slot" "1.1.2" + "@radix-ui/react-compose-refs" "1.1.1" "@radix-ui/react-arrow@1.1.2": version "1.1.2" @@ -2698,37 +2678,37 @@ integrity sha512-wP0CPAHq+P5I4INKe3hJrIa1WoNqqrejzW+zoU0rOvo1b9gDEJJFl2rYfO1PYJUQCc2H1WZxIJmyv9BS8i5fLw== dependencies: "@radix-ui/primitive" "1.1.1" - "@radix-ui/react-compose-refs" "1.1.1" "@radix-ui/react-context" "1.1.1" "@radix-ui/react-presence" "1.1.2" + "@radix-ui/react-use-size" "1.1.0" "@radix-ui/react-primitive" "2.0.2" - "@radix-ui/react-use-controllable-state" "1.1.0" + "@radix-ui/react-compose-refs" "1.1.1" "@radix-ui/react-use-previous" "1.1.0" - "@radix-ui/react-use-size" "1.1.0" + "@radix-ui/react-use-controllable-state" "1.1.0" "@radix-ui/react-collapsible@1.1.3", "@radix-ui/react-collapsible@^1.1.1": version "1.1.3" resolved "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.3.tgz" integrity sha512-jFSerheto1X03MUC0g6R7LedNW9EEGWdg9W1+MlpkMLwGkgkbUXLPBH/KIuWKXUoeYRVY11llqbTBDzuLg7qrw== dependencies: + "@radix-ui/react-id" "1.1.0" "@radix-ui/primitive" "1.1.1" - "@radix-ui/react-compose-refs" "1.1.1" "@radix-ui/react-context" "1.1.1" - "@radix-ui/react-id" "1.1.0" "@radix-ui/react-presence" "1.1.2" "@radix-ui/react-primitive" "2.0.2" - "@radix-ui/react-use-controllable-state" "1.1.0" + "@radix-ui/react-compose-refs" "1.1.1" "@radix-ui/react-use-layout-effect" "1.1.0" + "@radix-ui/react-use-controllable-state" "1.1.0" "@radix-ui/react-collection@1.1.2": version "1.1.2" resolved "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.2.tgz" integrity sha512-9z54IEKRxIa9VityapoEYMuByaG42iSy1ZXlY2KcuLSEtq8x4987/N6m15ppoMffgZX72gER2uHe1D9Y6Unlcw== dependencies: - "@radix-ui/react-compose-refs" "1.1.1" + "@radix-ui/react-slot" "1.1.2" "@radix-ui/react-context" "1.1.1" "@radix-ui/react-primitive" "2.0.2" - "@radix-ui/react-slot" "1.1.2" + "@radix-ui/react-compose-refs" "1.1.1" "@radix-ui/react-compose-refs@1.0.0": version "1.0.0" @@ -2760,8 +2740,8 @@ integrity sha512-aUP99QZ3VU84NPsHeaFt4cQUNgJqFsLLOt/RbbWXszZ6MP0DpDyjkFZORr4RpAEx3sUBk+Kc8h13yGtC5Qw8dg== dependencies: "@radix-ui/primitive" "1.1.1" - "@radix-ui/react-context" "1.1.1" "@radix-ui/react-menu" "2.1.6" + "@radix-ui/react-context" "1.1.1" "@radix-ui/react-primitive" "2.0.2" "@radix-ui/react-use-callback-ref" "1.1.0" "@radix-ui/react-use-controllable-state" "1.1.0" @@ -2771,41 +2751,41 @@ resolved "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.0.0.tgz" integrity sha512-Yn9YU+QlHYLWwV1XfKiqnGVpWYWk6MeBVM6x/bcoyPvxgjQGoeT35482viLPctTMWoMw0PoHgqfSox7Ig+957Q== dependencies: + aria-hidden "^1.1.1" "@babel/runtime" "^7.13.10" - "@radix-ui/primitive" "1.0.0" - "@radix-ui/react-compose-refs" "1.0.0" - "@radix-ui/react-context" "1.0.0" - "@radix-ui/react-dismissable-layer" "1.0.0" - "@radix-ui/react-focus-guards" "1.0.0" - "@radix-ui/react-focus-scope" "1.0.0" "@radix-ui/react-id" "1.0.0" + "@radix-ui/primitive" "1.0.0" + react-remove-scroll "2.5.4" + "@radix-ui/react-slot" "1.0.0" "@radix-ui/react-portal" "1.0.0" + "@radix-ui/react-context" "1.0.0" "@radix-ui/react-presence" "1.0.0" "@radix-ui/react-primitive" "1.0.0" - "@radix-ui/react-slot" "1.0.0" + "@radix-ui/react-focus-scope" "1.0.0" + "@radix-ui/react-compose-refs" "1.0.0" + "@radix-ui/react-focus-guards" "1.0.0" + "@radix-ui/react-dismissable-layer" "1.0.0" "@radix-ui/react-use-controllable-state" "1.0.0" - aria-hidden "^1.1.1" - react-remove-scroll "2.5.4" "@radix-ui/react-dialog@1.1.6", "@radix-ui/react-dialog@^1.1.1", "@radix-ui/react-dialog@^1.1.2": version "1.1.6" resolved "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.6.tgz" integrity sha512-/IVhJV5AceX620DUJ4uYVMymzsipdKBzo3edo+omeskCKGm9FRHM0ebIdbPnlQVJqyuHbuBltQUOG2mOTq2IYw== dependencies: - "@radix-ui/primitive" "1.1.1" - "@radix-ui/react-compose-refs" "1.1.1" - "@radix-ui/react-context" "1.1.1" - "@radix-ui/react-dismissable-layer" "1.1.5" - "@radix-ui/react-focus-guards" "1.1.1" - "@radix-ui/react-focus-scope" "1.1.2" + aria-hidden "^1.2.4" "@radix-ui/react-id" "1.1.0" + "@radix-ui/primitive" "1.1.1" + react-remove-scroll "^2.6.3" + "@radix-ui/react-slot" "1.1.2" "@radix-ui/react-portal" "1.1.4" + "@radix-ui/react-context" "1.1.1" "@radix-ui/react-presence" "1.1.2" "@radix-ui/react-primitive" "2.0.2" - "@radix-ui/react-slot" "1.1.2" + "@radix-ui/react-focus-scope" "1.1.2" + "@radix-ui/react-compose-refs" "1.1.1" + "@radix-ui/react-focus-guards" "1.1.1" + "@radix-ui/react-dismissable-layer" "1.1.5" "@radix-ui/react-use-controllable-state" "1.1.0" - aria-hidden "^1.2.4" - react-remove-scroll "^2.6.3" "@radix-ui/react-direction@1.1.0": version "1.1.0" @@ -2819,8 +2799,8 @@ dependencies: "@babel/runtime" "^7.13.10" "@radix-ui/primitive" "1.0.0" - "@radix-ui/react-compose-refs" "1.0.0" "@radix-ui/react-primitive" "1.0.0" + "@radix-ui/react-compose-refs" "1.0.0" "@radix-ui/react-use-callback-ref" "1.0.0" "@radix-ui/react-use-escape-keydown" "1.0.0" @@ -2830,8 +2810,8 @@ integrity sha512-E4TywXY6UsXNRhFrECa5HAvE5/4BFcGyfTyK36gP+pAW1ed7UTK4vKwdr53gAJYwqbfCWC6ATvJa3J3R/9+Qrg== dependencies: "@radix-ui/primitive" "1.1.1" - "@radix-ui/react-compose-refs" "1.1.1" "@radix-ui/react-primitive" "2.0.2" + "@radix-ui/react-compose-refs" "1.1.1" "@radix-ui/react-use-callback-ref" "1.1.0" "@radix-ui/react-use-escape-keydown" "1.1.0" @@ -2840,12 +2820,12 @@ resolved "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.6.tgz" integrity sha512-no3X7V5fD487wab/ZYSHXq3H37u4NVeLDKI/Ks724X/eEFSSEFYZxWgsIlr1UBeEyDaM29HM5x9p1Nv8DuTYPA== dependencies: - "@radix-ui/primitive" "1.1.1" - "@radix-ui/react-compose-refs" "1.1.1" - "@radix-ui/react-context" "1.1.1" "@radix-ui/react-id" "1.1.0" + "@radix-ui/primitive" "1.1.1" "@radix-ui/react-menu" "2.1.6" + "@radix-ui/react-context" "1.1.1" "@radix-ui/react-primitive" "2.0.2" + "@radix-ui/react-compose-refs" "1.1.1" "@radix-ui/react-use-controllable-state" "1.1.0" "@radix-ui/react-focus-guards@1.0.0": @@ -2866,8 +2846,8 @@ integrity sha512-C4SWtsULLGf/2L4oGeIHlvWQx7Rf+7cX/vKOAD2dXW0A1b5QXwi3wWeaEgW+wn+SEVrraMUk05vLU9fZZz5HbQ== dependencies: "@babel/runtime" "^7.13.10" - "@radix-ui/react-compose-refs" "1.0.0" "@radix-ui/react-primitive" "1.0.0" + "@radix-ui/react-compose-refs" "1.0.0" "@radix-ui/react-use-callback-ref" "1.0.0" "@radix-ui/react-focus-scope@1.1.2": @@ -2875,8 +2855,8 @@ resolved "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.2.tgz" integrity sha512-zxwE80FCU7lcXUGWkdt6XpTTCKPitG1XKOwViTxHVKIJhZl9MvIl2dVHeZENCWD9+EdWv05wlaEkRXUykU27RA== dependencies: - "@radix-ui/react-compose-refs" "1.1.1" "@radix-ui/react-primitive" "2.0.2" + "@radix-ui/react-compose-refs" "1.1.1" "@radix-ui/react-use-callback-ref" "1.1.0" "@radix-ui/react-hover-card@^1.1.2": @@ -2885,13 +2865,13 @@ integrity sha512-E4ozl35jq0VRlrdc4dhHrNSV0JqBb4Jy73WAhBEK7JoYnQ83ED5r0Rb/XdVKw89ReAJN38N492BAPBZQ57VmqQ== dependencies: "@radix-ui/primitive" "1.1.1" - "@radix-ui/react-compose-refs" "1.1.1" - "@radix-ui/react-context" "1.1.1" - "@radix-ui/react-dismissable-layer" "1.1.5" "@radix-ui/react-popper" "1.2.2" "@radix-ui/react-portal" "1.1.4" + "@radix-ui/react-context" "1.1.1" "@radix-ui/react-presence" "1.1.2" "@radix-ui/react-primitive" "2.0.2" + "@radix-ui/react-compose-refs" "1.1.1" + "@radix-ui/react-dismissable-layer" "1.1.5" "@radix-ui/react-use-controllable-state" "1.1.0" "@radix-ui/react-icons@^1.3.0": @@ -2926,81 +2906,81 @@ resolved "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.6.tgz" integrity sha512-tBBb5CXDJW3t2mo9WlO7r6GTmWV0F0uzHZVFmlRmYpiSK1CDU5IKojP1pm7oknpBOrFZx/YgBRW9oorPO2S/Lg== dependencies: - "@radix-ui/primitive" "1.1.1" - "@radix-ui/react-collection" "1.1.2" - "@radix-ui/react-compose-refs" "1.1.1" - "@radix-ui/react-context" "1.1.1" - "@radix-ui/react-direction" "1.1.0" - "@radix-ui/react-dismissable-layer" "1.1.5" - "@radix-ui/react-focus-guards" "1.1.1" - "@radix-ui/react-focus-scope" "1.1.2" + aria-hidden "^1.2.4" "@radix-ui/react-id" "1.1.0" + "@radix-ui/primitive" "1.1.1" + react-remove-scroll "^2.6.3" + "@radix-ui/react-slot" "1.1.2" "@radix-ui/react-popper" "1.2.2" "@radix-ui/react-portal" "1.1.4" + "@radix-ui/react-context" "1.1.1" "@radix-ui/react-presence" "1.1.2" + "@radix-ui/react-direction" "1.1.0" "@radix-ui/react-primitive" "2.0.2" + "@radix-ui/react-collection" "1.1.2" + "@radix-ui/react-focus-scope" "1.1.2" + "@radix-ui/react-compose-refs" "1.1.1" + "@radix-ui/react-focus-guards" "1.1.1" "@radix-ui/react-roving-focus" "1.1.2" - "@radix-ui/react-slot" "1.1.2" "@radix-ui/react-use-callback-ref" "1.1.0" - aria-hidden "^1.2.4" - react-remove-scroll "^2.6.3" + "@radix-ui/react-dismissable-layer" "1.1.5" "@radix-ui/react-navigation-menu@^1.2.1": version "1.2.5" resolved "https://registry.npmjs.org/@radix-ui/react-navigation-menu/-/react-navigation-menu-1.2.5.tgz" integrity sha512-myMHHQUZ3ZLTi8W381/Vu43Ia0NqakkQZ2vzynMmTUtQQ9kNkjzhOwkZC9TAM5R07OZUVIQyHC06f/9JZJpvvA== dependencies: + "@radix-ui/react-id" "1.1.0" "@radix-ui/primitive" "1.1.1" - "@radix-ui/react-collection" "1.1.2" - "@radix-ui/react-compose-refs" "1.1.1" "@radix-ui/react-context" "1.1.1" - "@radix-ui/react-direction" "1.1.0" - "@radix-ui/react-dismissable-layer" "1.1.5" - "@radix-ui/react-id" "1.1.0" "@radix-ui/react-presence" "1.1.2" + "@radix-ui/react-direction" "1.1.0" "@radix-ui/react-primitive" "2.0.2" - "@radix-ui/react-use-callback-ref" "1.1.0" - "@radix-ui/react-use-controllable-state" "1.1.0" - "@radix-ui/react-use-layout-effect" "1.1.0" + "@radix-ui/react-collection" "1.1.2" + "@radix-ui/react-compose-refs" "1.1.1" "@radix-ui/react-use-previous" "1.1.0" "@radix-ui/react-visually-hidden" "1.1.2" + "@radix-ui/react-use-callback-ref" "1.1.0" + "@radix-ui/react-dismissable-layer" "1.1.5" + "@radix-ui/react-use-layout-effect" "1.1.0" + "@radix-ui/react-use-controllable-state" "1.1.0" "@radix-ui/react-popover@^1.1.2": version "1.1.6" resolved "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.6.tgz" integrity sha512-NQouW0x4/GnkFJ/pRqsIS3rM/k97VzKnVb2jB7Gq7VEGPy5g7uNV1ykySFt7eWSp3i2uSGFwaJcvIRJBAHmmFg== dependencies: - "@radix-ui/primitive" "1.1.1" - "@radix-ui/react-compose-refs" "1.1.1" - "@radix-ui/react-context" "1.1.1" - "@radix-ui/react-dismissable-layer" "1.1.5" - "@radix-ui/react-focus-guards" "1.1.1" - "@radix-ui/react-focus-scope" "1.1.2" + aria-hidden "^1.2.4" "@radix-ui/react-id" "1.1.0" + "@radix-ui/primitive" "1.1.1" + react-remove-scroll "^2.6.3" + "@radix-ui/react-slot" "1.1.2" "@radix-ui/react-popper" "1.2.2" "@radix-ui/react-portal" "1.1.4" + "@radix-ui/react-context" "1.1.1" "@radix-ui/react-presence" "1.1.2" "@radix-ui/react-primitive" "2.0.2" - "@radix-ui/react-slot" "1.1.2" + "@radix-ui/react-focus-scope" "1.1.2" + "@radix-ui/react-compose-refs" "1.1.1" + "@radix-ui/react-focus-guards" "1.1.1" + "@radix-ui/react-dismissable-layer" "1.1.5" "@radix-ui/react-use-controllable-state" "1.1.0" - aria-hidden "^1.2.4" - react-remove-scroll "^2.6.3" "@radix-ui/react-popper@1.2.2": version "1.2.2" resolved "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.2.tgz" integrity sha512-Rvqc3nOpwseCyj/rgjlJDYAgyfw7OC1tTkKn2ivhaMGcYt8FSBlahHOZak2i3QwkRXUXgGgzeEe2RuqeEHuHgA== dependencies: - "@floating-ui/react-dom" "^2.0.0" + "@radix-ui/rect" "1.1.0" "@radix-ui/react-arrow" "1.1.2" - "@radix-ui/react-compose-refs" "1.1.1" + "@floating-ui/react-dom" "^2.0.0" "@radix-ui/react-context" "1.1.1" + "@radix-ui/react-use-rect" "1.1.0" + "@radix-ui/react-use-size" "1.1.0" "@radix-ui/react-primitive" "2.0.2" + "@radix-ui/react-compose-refs" "1.1.1" "@radix-ui/react-use-callback-ref" "1.1.0" "@radix-ui/react-use-layout-effect" "1.1.0" - "@radix-ui/react-use-rect" "1.1.0" - "@radix-ui/react-use-size" "1.1.0" - "@radix-ui/rect" "1.1.0" "@radix-ui/react-portal@1.0.0": version "1.0.0" @@ -3064,28 +3044,28 @@ integrity sha512-xtCsqt8Rp09FK50ItqEqTJ7Sxanz8EM8dnkVIhJrc/wkMMomSmXHvYbhv3E7Zx4oXh98aaLt9W679SUYXg4IDA== dependencies: "@radix-ui/primitive" "1.1.1" - "@radix-ui/react-compose-refs" "1.1.1" "@radix-ui/react-context" "1.1.1" - "@radix-ui/react-direction" "1.1.0" "@radix-ui/react-presence" "1.1.2" + "@radix-ui/react-use-size" "1.1.0" + "@radix-ui/react-direction" "1.1.0" "@radix-ui/react-primitive" "2.0.2" + "@radix-ui/react-compose-refs" "1.1.1" "@radix-ui/react-roving-focus" "1.1.2" - "@radix-ui/react-use-controllable-state" "1.1.0" "@radix-ui/react-use-previous" "1.1.0" - "@radix-ui/react-use-size" "1.1.0" + "@radix-ui/react-use-controllable-state" "1.1.0" "@radix-ui/react-roving-focus@1.1.2": version "1.1.2" resolved "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.2.tgz" integrity sha512-zgMQWkNO169GtGqRvYrzb0Zf8NhMHS2DuEB/TiEmVnpr5OqPU3i8lfbxaAmC2J/KYuIQxyoQQ6DxepyXp61/xw== dependencies: + "@radix-ui/react-id" "1.1.0" "@radix-ui/primitive" "1.1.1" - "@radix-ui/react-collection" "1.1.2" - "@radix-ui/react-compose-refs" "1.1.1" "@radix-ui/react-context" "1.1.1" "@radix-ui/react-direction" "1.1.0" - "@radix-ui/react-id" "1.1.0" "@radix-ui/react-primitive" "2.0.2" + "@radix-ui/react-collection" "1.1.2" + "@radix-ui/react-compose-refs" "1.1.1" "@radix-ui/react-use-callback-ref" "1.1.0" "@radix-ui/react-use-controllable-state" "1.1.0" @@ -3096,11 +3076,11 @@ dependencies: "@radix-ui/number" "1.1.0" "@radix-ui/primitive" "1.1.1" - "@radix-ui/react-compose-refs" "1.1.1" "@radix-ui/react-context" "1.1.1" - "@radix-ui/react-direction" "1.1.0" "@radix-ui/react-presence" "1.1.2" + "@radix-ui/react-direction" "1.1.0" "@radix-ui/react-primitive" "2.0.2" + "@radix-ui/react-compose-refs" "1.1.1" "@radix-ui/react-use-callback-ref" "1.1.0" "@radix-ui/react-use-layout-effect" "1.1.0" @@ -3109,27 +3089,27 @@ resolved "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.1.6.tgz" integrity sha512-T6ajELxRvTuAMWH0YmRJ1qez+x4/7Nq7QIx7zJ0VK3qaEWdnWpNbEDnmWldG1zBDwqrLy5aLMUWcoGirVj5kMg== dependencies: + aria-hidden "^1.2.4" "@radix-ui/number" "1.1.0" - "@radix-ui/primitive" "1.1.1" - "@radix-ui/react-collection" "1.1.2" - "@radix-ui/react-compose-refs" "1.1.1" - "@radix-ui/react-context" "1.1.1" - "@radix-ui/react-direction" "1.1.0" - "@radix-ui/react-dismissable-layer" "1.1.5" - "@radix-ui/react-focus-guards" "1.1.1" - "@radix-ui/react-focus-scope" "1.1.2" "@radix-ui/react-id" "1.1.0" + "@radix-ui/primitive" "1.1.1" + react-remove-scroll "^2.6.3" + "@radix-ui/react-slot" "1.1.2" "@radix-ui/react-popper" "1.2.2" "@radix-ui/react-portal" "1.1.4" + "@radix-ui/react-context" "1.1.1" + "@radix-ui/react-direction" "1.1.0" "@radix-ui/react-primitive" "2.0.2" - "@radix-ui/react-slot" "1.1.2" - "@radix-ui/react-use-callback-ref" "1.1.0" - "@radix-ui/react-use-controllable-state" "1.1.0" - "@radix-ui/react-use-layout-effect" "1.1.0" + "@radix-ui/react-collection" "1.1.2" + "@radix-ui/react-focus-scope" "1.1.2" + "@radix-ui/react-compose-refs" "1.1.1" + "@radix-ui/react-focus-guards" "1.1.1" "@radix-ui/react-use-previous" "1.1.0" "@radix-ui/react-visually-hidden" "1.1.2" - aria-hidden "^1.2.4" - react-remove-scroll "^2.6.3" + "@radix-ui/react-use-callback-ref" "1.1.0" + "@radix-ui/react-dismissable-layer" "1.1.5" + "@radix-ui/react-use-layout-effect" "1.1.0" + "@radix-ui/react-use-controllable-state" "1.1.0" "@radix-ui/react-separator@^1.1.0": version "1.1.2" @@ -3145,15 +3125,15 @@ dependencies: "@radix-ui/number" "1.1.0" "@radix-ui/primitive" "1.1.1" - "@radix-ui/react-collection" "1.1.2" - "@radix-ui/react-compose-refs" "1.1.1" "@radix-ui/react-context" "1.1.1" + "@radix-ui/react-use-size" "1.1.0" "@radix-ui/react-direction" "1.1.0" "@radix-ui/react-primitive" "2.0.2" - "@radix-ui/react-use-controllable-state" "1.1.0" - "@radix-ui/react-use-layout-effect" "1.1.0" + "@radix-ui/react-collection" "1.1.2" + "@radix-ui/react-compose-refs" "1.1.1" "@radix-ui/react-use-previous" "1.1.0" - "@radix-ui/react-use-size" "1.1.0" + "@radix-ui/react-use-layout-effect" "1.1.0" + "@radix-ui/react-use-controllable-state" "1.1.0" "@radix-ui/react-slot@1.0.0": version "1.0.0" @@ -3176,23 +3156,23 @@ integrity sha512-1nc+vjEOQkJVsJtWPSiISGT6OKm4SiOdjMo+/icLxo2G4vxz1GntC5MzfL4v8ey9OEfw787QCD1y3mUv0NiFEQ== dependencies: "@radix-ui/primitive" "1.1.1" - "@radix-ui/react-compose-refs" "1.1.1" "@radix-ui/react-context" "1.1.1" + "@radix-ui/react-use-size" "1.1.0" "@radix-ui/react-primitive" "2.0.2" - "@radix-ui/react-use-controllable-state" "1.1.0" + "@radix-ui/react-compose-refs" "1.1.1" "@radix-ui/react-use-previous" "1.1.0" - "@radix-ui/react-use-size" "1.1.0" + "@radix-ui/react-use-controllable-state" "1.1.0" "@radix-ui/react-tabs@^1.1.1": version "1.1.3" resolved "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.3.tgz" integrity sha512-9mFyI30cuRDImbmFF6O2KUJdgEOsGh9Vmx9x/Dh9tOhL7BngmQPQfwW4aejKm5OHpfWIdmeV6ySyuxoOGjtNng== dependencies: + "@radix-ui/react-id" "1.1.0" "@radix-ui/primitive" "1.1.1" "@radix-ui/react-context" "1.1.1" - "@radix-ui/react-direction" "1.1.0" - "@radix-ui/react-id" "1.1.0" "@radix-ui/react-presence" "1.1.2" + "@radix-ui/react-direction" "1.1.0" "@radix-ui/react-primitive" "2.0.2" "@radix-ui/react-roving-focus" "1.1.2" "@radix-ui/react-use-controllable-state" "1.1.0" @@ -3203,35 +3183,35 @@ integrity sha512-gN4dpuIVKEgpLn1z5FhzT9mYRUitbfZq9XqN/7kkBMUgFTzTG8x/KszWJugJXHcwxckY8xcKDZPz7kG3o6DsUA== dependencies: "@radix-ui/primitive" "1.1.1" - "@radix-ui/react-collection" "1.1.2" - "@radix-ui/react-compose-refs" "1.1.1" - "@radix-ui/react-context" "1.1.1" - "@radix-ui/react-dismissable-layer" "1.1.5" "@radix-ui/react-portal" "1.1.4" + "@radix-ui/react-context" "1.1.1" "@radix-ui/react-presence" "1.1.2" "@radix-ui/react-primitive" "2.0.2" + "@radix-ui/react-collection" "1.1.2" + "@radix-ui/react-compose-refs" "1.1.1" + "@radix-ui/react-visually-hidden" "1.1.2" "@radix-ui/react-use-callback-ref" "1.1.0" - "@radix-ui/react-use-controllable-state" "1.1.0" + "@radix-ui/react-dismissable-layer" "1.1.5" "@radix-ui/react-use-layout-effect" "1.1.0" - "@radix-ui/react-visually-hidden" "1.1.2" + "@radix-ui/react-use-controllable-state" "1.1.0" "@radix-ui/react-tooltip@^1.1.3": version "1.1.8" resolved "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.1.8.tgz" integrity sha512-YAA2cu48EkJZdAMHC0dqo9kialOcRStbtiY4nJPaht7Ptrhcvpo+eDChaM6BIs8kL6a8Z5l5poiqLnXcNduOkA== dependencies: - "@radix-ui/primitive" "1.1.1" - "@radix-ui/react-compose-refs" "1.1.1" - "@radix-ui/react-context" "1.1.1" - "@radix-ui/react-dismissable-layer" "1.1.5" "@radix-ui/react-id" "1.1.0" + "@radix-ui/primitive" "1.1.1" + "@radix-ui/react-slot" "1.1.2" "@radix-ui/react-popper" "1.2.2" "@radix-ui/react-portal" "1.1.4" + "@radix-ui/react-context" "1.1.1" "@radix-ui/react-presence" "1.1.2" "@radix-ui/react-primitive" "2.0.2" - "@radix-ui/react-slot" "1.1.2" - "@radix-ui/react-use-controllable-state" "1.1.0" + "@radix-ui/react-compose-refs" "1.1.1" "@radix-ui/react-visually-hidden" "1.1.2" + "@radix-ui/react-dismissable-layer" "1.1.5" + "@radix-ui/react-use-controllable-state" "1.1.0" "@radix-ui/react-use-callback-ref@1.0.0": version "1.0.0" @@ -3350,26 +3330,26 @@ resolved "https://registry.npmjs.org/@react-email/components/-/components-0.0.31.tgz" integrity sha512-rQsTY9ajobncix9raexhBjC7O6cXUMc87eNez2gnB1FwtkUO8DqWZcktbtwOJi7GKmuAPTx0o/IOFtiBNXziKA== dependencies: + "@react-email/hr" "0.0.11" + "@react-email/img" "0.0.11" + "@react-email/row" "0.0.12" "@react-email/body" "0.0.11" - "@react-email/button" "0.0.19" - "@react-email/code-block" "0.0.11" - "@react-email/code-inline" "0.0.5" - "@react-email/column" "0.0.13" - "@react-email/container" "0.0.15" "@react-email/font" "0.0.9" "@react-email/head" "0.0.12" - "@react-email/heading" "0.0.15" - "@react-email/hr" "0.0.11" "@react-email/html" "0.0.11" - "@react-email/img" "0.0.11" "@react-email/link" "0.0.12" - "@react-email/markdown" "0.0.14" - "@react-email/preview" "0.0.12" + "@react-email/text" "0.0.11" + "@react-email/button" "0.0.19" + "@react-email/column" "0.0.13" "@react-email/render" "1.0.3" - "@react-email/row" "0.0.12" + "@react-email/heading" "0.0.15" + "@react-email/preview" "0.0.12" "@react-email/section" "0.0.16" + "@react-email/markdown" "0.0.14" "@react-email/tailwind" "1.0.4" - "@react-email/text" "0.0.11" + "@react-email/container" "0.0.15" + "@react-email/code-block" "0.0.11" + "@react-email/code-inline" "0.0.5" "@react-email/container@0.0.15": version "0.0.15" @@ -3428,18 +3408,18 @@ resolved "https://registry.npmjs.org/@react-email/render/-/render-0.0.10.tgz" integrity sha512-FdLhg/E5PH5qZU/jf9NbvRi5v5134kbX7o8zIhOJIk/TALxB18ggprnH5tQX96dGQFqlLob8OLReaRwrpEF7YA== dependencies: - html-to-text "9.0.5" - pretty "2.0.0" react "18.2.0" + pretty "2.0.0" react-dom "18.2.0" + html-to-text "9.0.5" "@react-email/render@1.0.1": version "1.0.1" resolved "https://registry.npmjs.org/@react-email/render/-/render-1.0.1.tgz" integrity sha512-W3gTrcmLOVYnG80QuUp22ReIT/xfLsVJ+n7ghSlG2BITB8evNABn1AO2rGQoXuK84zKtDAlxCdm3hRyIpZdGSA== dependencies: - html-to-text "9.0.5" js-beautify "^1.14.11" + html-to-text "9.0.5" react-promise-suspense "0.3.4" "@react-email/render@1.0.3": @@ -3447,8 +3427,8 @@ resolved "https://registry.npmjs.org/@react-email/render/-/render-1.0.3.tgz" integrity sha512-VQ8g4SuIq/jWdfBTdTjb7B8Np0jj+OoD7VebfdHhLTZzVQKesR2aigpYqE/ZXmwj4juVxDm8T2b6WIIu48rPCg== dependencies: - html-to-text "9.0.5" prettier "3.3.3" + html-to-text "9.0.5" react-promise-suspense "0.3.4" "@react-email/row@0.0.12": @@ -3477,9 +3457,9 @@ integrity sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg== "@rollup/rollup-darwin-arm64@^4.18.1": - version "4.34.7" - resolved "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.7.tgz" - integrity sha512-jq87CjmgL9YIKvs8ybtIC98s/M3HdbqXhllcy9EdLV0yMg1DpxES2gr65nNy7ObNo/vZ/MrOTxt0bE5LinL6mA== + version "4.34.8" + resolved "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.8.tgz" + integrity sha512-02rVdZ5tgdUNRxIUrFdcMBZQoaPMrxtwSb+/hOfBdqkatYHR3lZ2A2EGyHq2sGOd0Owk80oV3snlDASC24He3Q== "@scena/dragscroll@^1.4.0": version "1.4.0" @@ -3508,10 +3488,10 @@ resolved "https://registry.npmjs.org/@segment/analytics-core/-/analytics-core-1.4.1.tgz" integrity sha512-kV0Pf33HnthuBOVdYNani21kYyj118Fn+9757bxqoksiXoZlYvBsFq6giNdCsKcTIE1eAMqNDq3xE1VQ0cfsHA== dependencies: - "@lukeed/uuid" "^2.0.0" - "@segment/analytics-generic-utils" "1.1.1" dset "^3.1.2" tslib "^2.4.1" + "@lukeed/uuid" "^2.0.0" + "@segment/analytics-generic-utils" "1.1.1" "@segment/analytics-generic-utils@1.1.1": version "1.1.1" @@ -3525,12 +3505,12 @@ resolved "https://registry.npmjs.org/@segment/analytics-node/-/analytics-node-1.3.0.tgz" integrity sha512-lRLz1WZaDokMoUe299yP5JkInc3OgJuqNNlxb6j0q22umCiq6b5iDo2gRmFn93reirIvJxWIicQsGrHd93q8GQ== dependencies: + tslib "^2.4.1" + buffer "^6.0.3" + node-fetch "^2.6.7" "@lukeed/uuid" "^2.0.0" "@segment/analytics-core" "1.4.1" "@segment/analytics-generic-utils" "1.1.1" - buffer "^6.0.3" - node-fetch "^2.6.7" - tslib "^2.4.1" "@selderee/plugin-htmlparser2@^0.11.0": version "0.11.0" @@ -3540,12 +3520,12 @@ domhandler "^5.0.3" selderee "^0.11.0" -"@simplewebauthn/browser@^13.0.0", "@simplewebauthn/browser@^9.0.1": +"@simplewebauthn/browser@^13.0.0": version "13.1.0" resolved "https://registry.npmjs.org/@simplewebauthn/browser/-/browser-13.1.0.tgz" integrity sha512-WuHZ/PYvyPJ9nxSzgHtOEjogBhwJfC8xzYkPC+rR/+8chl/ft4ngjiK8kSU5HtRJfczupyOh33b25TjYbvwAcg== -"@simplewebauthn/server@^13.0.0", "@simplewebauthn/server@^9.0.2": +"@simplewebauthn/server@^13.0.0": version "13.1.1" resolved "https://registry.npmjs.org/@simplewebauthn/server/-/server-13.1.1.tgz" integrity sha512-1hsLpRHfSuMB9ee2aAdh0Htza/X3f4djhYISrggqGe3xopNjOcePiSDkDDoPzDYaaMCrbqGP1H2TYU7bgL9PmA== @@ -3563,20 +3543,20 @@ resolved "https://registry.npmjs.org/@slack/bolt/-/bolt-3.22.0.tgz" integrity sha512-iKDqGPEJDnrVwxSVlFW6OKTkijd7s4qLBeSufoBsTM0reTyfdp/5izIQVkxNfzjHi3o6qjdYbRXkYad5HBsBog== dependencies: - "@slack/logger" "^4.0.0" + axios "^1.7.4" + tsscmp "^1.0.6" + express "^4.21.0" + raw-body "^2.3.3" "@slack/oauth" "^2.6.3" - "@slack/socket-mode" "^1.3.6" "@slack/types" "^2.13.0" + "@slack/logger" "^4.0.0" + "@types/tsscmp" "^1.0.0" "@slack/web-api" "^6.13.0" "@types/express" "^4.16.1" - "@types/promise.allsettled" "^1.0.3" - "@types/tsscmp" "^1.0.0" - axios "^1.7.4" - express "^4.21.0" path-to-regexp "^8.1.0" + "@slack/socket-mode" "^1.3.6" promise.allsettled "^1.0.2" - raw-body "^2.3.3" - tsscmp "^1.0.6" + "@types/promise.allsettled" "^1.0.3" "@slack/logger@^3.0.0": version "3.0.0" @@ -3597,25 +3577,25 @@ resolved "https://registry.npmjs.org/@slack/oauth/-/oauth-2.6.3.tgz" integrity sha512-1amXs6xRkJpoH6zSgjVPgGEJXCibKNff9WNDijcejIuVy1HFAl1adh7lehaGNiHhTWfQkfKxBiF+BGn56kvoFw== dependencies: - "@slack/logger" "^3.0.0" - "@slack/web-api" "^6.12.1" - "@types/jsonwebtoken" "^8.3.7" "@types/node" ">=12" jsonwebtoken "^9.0.0" + "@slack/logger" "^3.0.0" + "@slack/web-api" "^6.12.1" lodash.isstring "^4.0.1" + "@types/jsonwebtoken" "^8.3.7" "@slack/socket-mode@^1.3.6": version "1.3.6" resolved "https://registry.npmjs.org/@slack/socket-mode/-/socket-mode-1.3.6.tgz" integrity sha512-G+im7OP7jVqHhiNSdHgv2VVrnN5U7KY845/5EZimZkrD4ZmtV0P3BiWkgeJhPtdLuM7C7i6+M6h6Bh+S4OOalA== dependencies: - "@slack/logger" "^3.0.0" - "@slack/web-api" "^6.12.1" - "@types/node" ">=12.0.0" + ws "^7.5.3" + finity "^0.5.4" "@types/ws" "^7.4.7" + "@types/node" ">=12.0.0" + "@slack/logger" "^3.0.0" eventemitter3 "^5" - finity "^0.5.4" - ws "^7.5.3" + "@slack/web-api" "^6.12.1" "@slack/types@^2.11.0", "@slack/types@^2.13.0", "@slack/types@^2.9.0": version "2.14.0" @@ -3627,35 +3607,35 @@ resolved "https://registry.npmjs.org/@slack/web-api/-/web-api-6.13.0.tgz" integrity sha512-dv65crIgdh9ZYHrevLU6XFHTQwTyDmNqEqzuIrV+Vqe/vgiG6w37oex5ePDU1RGm2IJ90H8iOvHFvzdEO/vB+g== dependencies: - "@slack/logger" "^3.0.0" - "@slack/types" "^2.11.0" - "@types/is-stream" "^1.1.0" - "@types/node" ">=12.0.0" axios "^1.7.4" - eventemitter3 "^3.1.0" - form-data "^2.5.0" - is-electron "2.2.2" - is-stream "^1.1.0" p-queue "^6.6.1" p-retry "^4.0.0" + form-data "^2.5.0" + is-stream "^1.1.0" + "@types/node" ">=12.0.0" + is-electron "2.2.2" + "@slack/types" "^2.11.0" + "@slack/logger" "^3.0.0" + eventemitter3 "^3.1.0" + "@types/is-stream" "^1.1.0" "@slack/web-api@^7.8.0": version "7.8.0" resolved "https://registry.npmjs.org/@slack/web-api/-/web-api-7.8.0.tgz" integrity sha512-d4SdG+6UmGdzWw38a4sN3lF/nTEzsDxhzU13wm10ejOpPehtmRoqBKnPztQUfFiWbNvSb4czkWYJD4kt+5+Fuw== dependencies: - "@slack/logger" "^4.0.0" - "@slack/types" "^2.9.0" - "@types/node" ">=18.0.0" - "@types/retry" "0.12.0" axios "^1.7.8" - eventemitter3 "^5.0.1" - form-data "^4.0.0" - is-electron "2.2.2" - is-stream "^2" + retry "^0.13.1" p-queue "^6" p-retry "^4" - retry "^0.13.1" + form-data "^4.0.0" + is-stream "^2" + "@types/node" ">=18.0.0" + is-electron "2.2.2" + "@slack/types" "^2.9.0" + "@types/retry" "0.12.0" + "@slack/logger" "^4.0.0" + eventemitter3 "^5.0.1" "@smithy/abort-controller@^4.0.1": version "4.0.1" @@ -4217,9 +4197,9 @@ resolved "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.16.tgz" integrity sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA== dependencies: + lodash.merge "^4.6.2" lodash.castarray "^4.4.0" lodash.isplainobject "^4.0.6" - lodash.merge "^4.6.2" postcss-selector-parser "6.0.10" "@tanstack/query-core@^4.15.1": @@ -4227,17 +4207,17 @@ resolved "https://registry.npmjs.org/@tanstack/query-core/-/query-core-4.36.1.tgz" integrity sha512-DJSilV5+ytBP1FbFcEJovv4rnnm/CokuVvrBEtW/Va9DvuJ3HksbXUJEpI0aV1KtuL4ZoO9AVE6PyNLzF7tLeA== -"@tanstack/query-core@5.66.0": - version "5.66.0" - resolved "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.66.0.tgz" - integrity sha512-J+JeBtthiKxrpzUu7rfIPDzhscXF2p5zE/hVdrqkACBP8Yu0M96mwJ5m/8cPPYQE9aRNvXztXHlNwIh4FEeMZw== +"@tanstack/query-core@5.66.4": + version "5.66.4" + resolved "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.66.4.tgz" + integrity sha512-skM/gzNX4shPkqmdTCSoHtJAPMTtmIJNS0hE+xwTTUVYwezArCT34NMermABmBVUg5Ls5aiUXEDXfqwR1oVkcA== "@tanstack/react-query@^5.66.0": - version "5.66.0" - resolved "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.66.0.tgz" - integrity sha512-z3sYixFQJe8hndFnXgWu7C79ctL+pI0KAelYyW+khaNJ1m22lWrhJU2QrsTcRKMuVPtoZvfBYrTStIdKo+x0Xw== + version "5.66.7" + resolved "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.66.7.tgz" + integrity sha512-qd3q/tUpF2K1xItfPZddk1k/8pSXnovg41XyCqJgPoyYEirMBtB0sVEVVQ/CsAOngzgWtBPXimVf4q4kM9uO6A== dependencies: - "@tanstack/query-core" "5.66.0" + "@tanstack/query-core" "5.66.4" "@tanstack/react-table@^8.21.2": version "8.21.2" @@ -4427,62 +4407,62 @@ resolved "https://registry.npmjs.org/@tiptap/pm/-/pm-2.11.5.tgz" integrity sha512-z9JFtqc5ZOsdQLd9vRnXfTCQ8v5ADAfRt9Nm7SqP6FUHII8E1hs38ACzf5xursmth/VonJYb5+73Pqxk1hGIPw== dependencies: - prosemirror-changeset "^2.2.1" + prosemirror-menu "^1.2.4" + prosemirror-view "^1.37.0" + prosemirror-model "^1.23.0" + prosemirror-state "^1.4.3" prosemirror-collab "^1.3.1" + prosemirror-keymap "^1.2.2" + prosemirror-tables "^1.6.3" + prosemirror-history "^1.4.1" prosemirror-commands "^1.6.2" - prosemirror-dropcursor "^1.8.1" + prosemirror-markdown "^1.13.1" + prosemirror-changeset "^2.2.1" prosemirror-gapcursor "^1.3.2" - prosemirror-history "^1.4.1" + prosemirror-transform "^1.10.2" + prosemirror-dropcursor "^1.8.1" prosemirror-inputrules "^1.4.0" - prosemirror-keymap "^1.2.2" - prosemirror-markdown "^1.13.1" - prosemirror-menu "^1.2.4" - prosemirror-model "^1.23.0" - prosemirror-schema-basic "^1.2.3" prosemirror-schema-list "^1.4.1" - prosemirror-state "^1.4.3" - prosemirror-tables "^1.6.3" + prosemirror-schema-basic "^1.2.3" prosemirror-trailing-node "^3.0.0" - prosemirror-transform "^1.10.2" - prosemirror-view "^1.37.0" "@tiptap/react@^2.11.2", "@tiptap/react@^2.11.5", "@tiptap/react@^2.9.1": version "2.11.5" resolved "https://registry.npmjs.org/@tiptap/react/-/react-2.11.5.tgz" integrity sha512-Dp8eHL1G+R/C4+QzAczyb3t1ovexEIZx9ln7SGEM+cT1KHKAw9XGPRgsp92+NQaYI+EdEb/YqoBOSzQcd18/OQ== dependencies: - "@tiptap/extension-bubble-menu" "^2.11.5" - "@tiptap/extension-floating-menu" "^2.11.5" - "@types/use-sync-external-store" "^0.0.6" fast-deep-equal "^3" use-sync-external-store "^1" + "@tiptap/extension-bubble-menu" "^2.11.5" + "@types/use-sync-external-store" "^0.0.6" + "@tiptap/extension-floating-menu" "^2.11.5" "@tiptap/starter-kit@^2.11.2", "@tiptap/starter-kit@^2.11.5", "@tiptap/starter-kit@^2.9.1": version "2.11.5" resolved "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-2.11.5.tgz" integrity sha512-SLI7Aj2ruU1t//6Mk8f+fqW+18uTqpdfLUJYgwu0CkqBckrkRZYZh6GVLk/02k3H2ki7QkFxiFbZrdbZdng0JA== dependencies: + "@tiptap/pm" "^2.11.5" "@tiptap/core" "^2.11.5" - "@tiptap/extension-blockquote" "^2.11.5" "@tiptap/extension-bold" "^2.11.5" - "@tiptap/extension-bullet-list" "^2.11.5" "@tiptap/extension-code" "^2.11.5" - "@tiptap/extension-code-block" "^2.11.5" - "@tiptap/extension-document" "^2.11.5" - "@tiptap/extension-dropcursor" "^2.11.5" - "@tiptap/extension-gapcursor" "^2.11.5" - "@tiptap/extension-hard-break" "^2.11.5" + "@tiptap/extension-text" "^2.11.5" + "@tiptap/extension-italic" "^2.11.5" + "@tiptap/extension-strike" "^2.11.5" "@tiptap/extension-heading" "^2.11.5" "@tiptap/extension-history" "^2.11.5" - "@tiptap/extension-horizontal-rule" "^2.11.5" - "@tiptap/extension-italic" "^2.11.5" + "@tiptap/extension-document" "^2.11.5" + "@tiptap/extension-gapcursor" "^2.11.5" "@tiptap/extension-list-item" "^2.11.5" - "@tiptap/extension-ordered-list" "^2.11.5" "@tiptap/extension-paragraph" "^2.11.5" - "@tiptap/extension-strike" "^2.11.5" - "@tiptap/extension-text" "^2.11.5" + "@tiptap/extension-blockquote" "^2.11.5" + "@tiptap/extension-code-block" "^2.11.5" + "@tiptap/extension-dropcursor" "^2.11.5" + "@tiptap/extension-hard-break" "^2.11.5" "@tiptap/extension-text-style" "^2.11.5" - "@tiptap/pm" "^2.11.5" + "@tiptap/extension-bullet-list" "^2.11.5" + "@tiptap/extension-ordered-list" "^2.11.5" + "@tiptap/extension-horizontal-rule" "^2.11.5" "@tiptap/suggestion@^2.11.2": version "2.11.5" @@ -4509,32 +4489,32 @@ resolved "https://registry.npmjs.org/@trigger.dev/core/-/core-3.3.13.tgz" integrity sha512-3VU4YMS+RVCkfVXeUKSWlkVszgFK44tIknR9sHLYgetI714L3tgH47XBXJ3+/ZV5Y9Vvv6O6pRIuV7EEhzbexg== dependencies: - "@electric-sql/client" "1.0.0-beta.1" - "@google-cloud/precise-date" "^4.0.0" + zod "3.23.8" + jose "^5.4.0" + execa "^8.0.1" + dequal "^2.0.3" + nanoid "^3.3.4" + superjson "^2.2.1" + zod-error "1.5.0" + eventsource "^3.0.5" "@jsonhero/path" "^1.0.21" + socket.io-client "4.7.5" + humanize-duration "^3.27.3" "@opentelemetry/api" "1.9.0" + eventsource-parser "^3.0.0" + "@electric-sql/client" "1.0.0-beta.1" + zod-validation-error "^1.5.0" "@opentelemetry/api-logs" "0.52.1" - "@opentelemetry/exporter-logs-otlp-http" "0.52.1" - "@opentelemetry/exporter-trace-otlp-http" "0.52.1" - "@opentelemetry/instrumentation" "0.52.1" - "@opentelemetry/resources" "1.25.1" "@opentelemetry/sdk-logs" "0.52.1" "@opentelemetry/sdk-node" "0.52.1" + "@opentelemetry/resources" "1.25.1" + "@google-cloud/precise-date" "^4.0.0" "@opentelemetry/sdk-trace-base" "1.25.1" "@opentelemetry/sdk-trace-node" "1.25.1" + "@opentelemetry/instrumentation" "0.52.1" "@opentelemetry/semantic-conventions" "1.25.1" - dequal "^2.0.3" - eventsource "^3.0.5" - eventsource-parser "^3.0.0" - execa "^8.0.1" - humanize-duration "^3.27.3" - jose "^5.4.0" - nanoid "^3.3.4" - socket.io-client "4.7.5" - superjson "^2.2.1" - zod "3.23.8" - zod-error "1.5.0" - zod-validation-error "^1.5.0" + "@opentelemetry/exporter-logs-otlp-http" "0.52.1" + "@opentelemetry/exporter-trace-otlp-http" "0.52.1" "@trigger.dev/core@3.3.16", "@trigger.dev/core@^3.3.16": version "3.3.16" @@ -4581,19 +4561,19 @@ resolved "https://registry.npmjs.org/@trigger.dev/sdk/-/sdk-3.3.13.tgz" integrity sha512-iXtHMnzvzmPfBk7+whpWOElBJt6viCoA3r8xgrrrurj8oxjIVe4UvdDiB7wbUJJ44WROWEb0wVKyQut1L/FwQQ== dependencies: - "@opentelemetry/api" "1.9.0" - "@opentelemetry/api-logs" "0.52.1" - "@opentelemetry/semantic-conventions" "1.25.1" - "@trigger.dev/core" "3.3.13" - chalk "^5.2.0" - cronstrue "^2.21.0" - debug "^4.3.4" + ws "^8.11.0" evt "^2.4.13" slug "^6.0.0" - terminal-link "^3.0.0" ulid "^2.3.0" uuid "^9.0.0" - ws "^8.11.0" + chalk "^5.2.0" + debug "^4.3.4" + cronstrue "^2.21.0" + terminal-link "^3.0.0" + "@trigger.dev/core" "3.3.13" + "@opentelemetry/api" "1.9.0" + "@opentelemetry/api-logs" "0.52.1" + "@opentelemetry/semantic-conventions" "1.25.1" "@trigger.dev/sdk@3.3.16", "@trigger.dev/sdk@^3.3.15": version "3.3.16" @@ -4630,8 +4610,8 @@ resolved "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz" integrity sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg== dependencies: - "@types/connect" "*" "@types/node" "*" + "@types/connect" "*" "@types/connect@*": version "3.4.38" @@ -4739,20 +4719,20 @@ resolved "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz" integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.33" "@types/qs" "*" + "@types/body-parser" "*" "@types/serve-static" "*" + "@types/express-serve-static-core" "^4.17.33" "@types/express-serve-static-core@^4.17.33": version "4.19.6" resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz" integrity sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A== dependencies: - "@types/node" "*" "@types/qs" "*" - "@types/range-parser" "*" + "@types/node" "*" "@types/send" "*" + "@types/range-parser" "*" "@types/hast@^3.0.0": version "3.0.4" @@ -4795,8 +4775,8 @@ resolved "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz" integrity sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog== dependencies: - "@types/linkify-it" "^5" "@types/mdurl" "^2" + "@types/linkify-it" "^5" "@types/mdast@^4.0.0": version "4.0.4" @@ -4839,17 +4819,17 @@ resolved "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.12.tgz" integrity sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA== dependencies: - "@types/node" "*" form-data "^4.0.0" + "@types/node" "*" "@types/pg@8.11.6": version "8.11.6" resolved "https://registry.npmjs.org/@types/pg/-/pg-8.11.6.tgz" integrity sha512-/2WmmBXHLsfRqzfHW7BNZ8SbYzE8OSk7i3WjFYvfgRHj7S1xj+16Je5fUKv3lVdVzk/zn9TXOqf+avFCFIE0yQ== dependencies: + pg-types "^4.0.1" "@types/node" "*" pg-protocol "*" - pg-types "^4.0.1" "@types/promise.allsettled@^1.0.3": version "1.0.6" @@ -4871,17 +4851,17 @@ resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz" integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== -"@types/react@*", "@types/react@>=16.8", "@types/react@>=17.0.0", "@types/react@>=18", "@types/react@^16.8.0 || ^17.0.0 || ^18.0.0", "@types/react@^17.0.0 || ^18.0.0 || ^19.0.0", "@types/react@^19.0.0", "@types/react@^19.0.8": - version "19.0.8" - resolved "https://registry.npmjs.org/@types/react/-/react-19.0.8.tgz" - integrity sha512-9P/o1IGdfmQxrujGbIMDyYaaCykhLKc0NGCtYcECNUr9UAaDe4gwvV9bR6tvd5Br1SG0j+PBpbKr2UYY8CwqSw== +"@types/react@*", "@types/react@>=18", "@types/react@^19.0.0", "@types/react@^19.0.8": + version "19.0.10" + resolved "https://registry.npmjs.org/@types/react/-/react-19.0.10.tgz" + integrity sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g== dependencies: csstype "^3.0.2" -"@types/react-dom@*", "@types/react-dom@^19.0.0", "@types/react-dom@^19.0.3": - version "19.0.3" - resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.3.tgz" - integrity sha512-0Knk+HJiMP/qOZgMyNFamlIjw9OFCsyC2ZbigmEEyXXixgre6IQpm/4V+r3qH4GC1JPvRJKInw+on2rV6YZLeA== +"@types/react-dom@^19.0.0", "@types/react-dom@^19.0.3": + version "19.0.4" + resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.4.tgz" + integrity sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg== "@types/react-transition-group@^4.4.12": version "4.4.12" @@ -4906,11 +4886,11 @@ resolved "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz" integrity sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw== dependencies: - "@types/http-errors" "*" "@types/node" "*" "@types/send" "*" + "@types/http-errors" "*" -"@types/shimmer@^1.0.2", "@types/shimmer@^1.2.0": +"@types/shimmer@^1.0.2": version "1.2.0" resolved "https://registry.npmjs.org/@types/shimmer/-/shimmer-1.2.0.tgz" integrity sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg== @@ -4977,17 +4957,17 @@ integrity sha512-EB0o0a4y++UJFMLqS8LDVhSQgXUllG6t5fwl5cbmOM0Uay8YY5Nc/JjFwzJ8wccdIKz4oYwQW7EOSfUyaMPbfw== "@uploadthing/react@^7.2.0": - version "7.2.1" - resolved "https://registry.npmjs.org/@uploadthing/react/-/react-7.2.1.tgz" - integrity sha512-X8iUJDOFyT9DonfZkxx3ngWvr4iz47tmXT7pC0209YT+Odfmq/sd/a0w7UcFrCiYIV1CL0xD97ynRDTN3LX48Q== + version "7.3.0" + resolved "https://registry.npmjs.org/@uploadthing/react/-/react-7.3.0.tgz" + integrity sha512-rSH9BpPy2/G7nZ3SEbZQANUFHkBCS5CwWiVzmOW9fzFNoqF+buqBvi5FDweffqMSwmr+/VS8Wpyj87/GYbV0Fw== dependencies: - "@uploadthing/shared" "7.1.6" + "@uploadthing/shared" "7.1.7" file-selector "0.6.0" -"@uploadthing/shared@7.1.6": - version "7.1.6" - resolved "https://registry.npmjs.org/@uploadthing/shared/-/shared-7.1.6.tgz" - integrity sha512-7EyTxaGiTIdyqCwNQFryo0LR4eZgyClq31igrjGrXHkxSlXnurphybjzB6AVD73UBPVGCfbtOK0lloduhsMNlg== +"@uploadthing/shared@7.1.7": + version "7.1.7" + resolved "https://registry.npmjs.org/@uploadthing/shared/-/shared-7.1.7.tgz" + integrity sha512-VDvGmyHhdwaivC+eee77yZnOVvz59mOmLVbcuYFo4SkoNvPuc3AyPORqJJMBveQivTvELdrQcjlx6IPv98JkSA== dependencies: "@uploadthing/mime-types" "0.3.4" effect "3.12.0" @@ -5020,18 +5000,18 @@ integrity sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q== dependencies: "@babel/parser" "^7.25.3" - "@vue/shared" "3.5.13" entities "^4.5.0" estree-walker "^2.0.2" source-map-js "^1.2.0" + "@vue/shared" "3.5.13" "@vue/compiler-dom@3.5.13": version "3.5.13" resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz" integrity sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA== dependencies: - "@vue/compiler-core" "3.5.13" "@vue/shared" "3.5.13" + "@vue/compiler-core" "3.5.13" "@vue/compiler-sfc@3.5.13": version "3.5.13" @@ -5039,22 +5019,22 @@ integrity sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ== dependencies: "@babel/parser" "^7.25.3" - "@vue/compiler-core" "3.5.13" - "@vue/compiler-dom" "3.5.13" - "@vue/compiler-ssr" "3.5.13" - "@vue/shared" "3.5.13" estree-walker "^2.0.2" magic-string "^0.30.11" postcss "^8.4.48" source-map-js "^1.2.0" + "@vue/compiler-core" "3.5.13" + "@vue/shared" "3.5.13" + "@vue/compiler-dom" "3.5.13" + "@vue/compiler-ssr" "3.5.13" "@vue/compiler-ssr@3.5.13": version "3.5.13" resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz" integrity sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA== dependencies: - "@vue/compiler-dom" "3.5.13" "@vue/shared" "3.5.13" + "@vue/compiler-dom" "3.5.13" "@vue/reactivity@3.5.13": version "3.5.13" @@ -5068,26 +5048,26 @@ resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.13.tgz" integrity sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw== dependencies: - "@vue/reactivity" "3.5.13" "@vue/shared" "3.5.13" + "@vue/reactivity" "3.5.13" "@vue/runtime-dom@3.5.13": version "3.5.13" resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz" integrity sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog== dependencies: - "@vue/reactivity" "3.5.13" - "@vue/runtime-core" "3.5.13" - "@vue/shared" "3.5.13" csstype "^3.1.3" + "@vue/shared" "3.5.13" + "@vue/runtime-core" "3.5.13" + "@vue/reactivity" "3.5.13" "@vue/server-renderer@3.5.13": version "3.5.13" resolved "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.13.tgz" integrity sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA== dependencies: - "@vue/compiler-ssr" "3.5.13" "@vue/shared" "3.5.13" + "@vue/compiler-ssr" "3.5.13" "@vue/shared@3.5.13": version "3.5.13" @@ -5156,19 +5136,19 @@ ai@^3.4.33: resolved "https://registry.npmjs.org/ai/-/ai-3.4.33.tgz" integrity sha512-plBlrVZKwPoRTmM8+D1sJac9Bq8eaa2jiZlHLZIWekKWI1yMWYZvCCEezY9ASPwRhULYDJB2VhKOBUUeg3S5JQ== dependencies: - "@ai-sdk/provider" "0.0.26" - "@ai-sdk/provider-utils" "1.0.22" + "@ai-sdk/vue" "0.0.59" + json-schema "^0.4.0" "@ai-sdk/react" "0.0.70" "@ai-sdk/solid" "0.0.54" + jsondiffpatch "0.6.0" "@ai-sdk/svelte" "0.0.57" + "@ai-sdk/provider" "0.0.26" "@ai-sdk/ui-utils" "0.0.50" - "@ai-sdk/vue" "0.0.59" + secure-json-parse "^2.7.0" "@opentelemetry/api" "1.9.0" eventsource-parser "1.1.2" - json-schema "^0.4.0" - jsondiffpatch "0.6.0" - secure-json-parse "^2.7.0" zod-to-json-schema "^3.23.3" + "@ai-sdk/provider-utils" "1.0.22" ai@^4.1.41: version "4.1.41" @@ -5187,10 +5167,10 @@ ajv@^6.12.3: resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: + uri-js "^4.2.2" fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.4.1" - uri-js "^4.2.2" + fast-json-stable-stringify "^2.0.0" ansi-escapes@^4.2.1: version "4.3.2" @@ -5243,8 +5223,8 @@ anymatch@~3.1.2: resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: - normalize-path "^3.0.0" picomatch "^2.0.4" + normalize-path "^3.0.0" aproba@^1.0.3: version "1.2.0" @@ -5423,9 +5403,9 @@ axios@^1.6.8, axios@^1.7.4, axios@^1.7.8, axios@^1.7.9: resolved "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz" integrity sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw== dependencies: - follow-redirects "^1.15.6" form-data "^4.0.0" proxy-from-env "^1.1.0" + follow-redirects "^1.15.6" axios-retry@^3.8.0: version "3.9.1" @@ -5455,7 +5435,7 @@ balanced-match@^1.0.0: resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -bare-events@*, bare-events@^2.0.0, bare-events@^2.2.0: +bare-events@^2.0.0, bare-events@^2.2.0: version "2.5.4" resolved "https://registry.npmjs.org/bare-events/-/bare-events-2.5.4.tgz" integrity sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA== @@ -5515,28 +5495,28 @@ better-auth@^1.1.18: resolved "https://registry.npmjs.org/better-auth/-/better-auth-1.1.18.tgz" integrity sha512-cU/u7/qlSiR/OO1O53gh/bHvxyB53DE+5ZOw9DtpDI8IyIQUBqDnQ06MOwNtj8JwjXHcMFNSNd5u/W8DED0bJw== dependencies: - "@better-auth/utils" "0.2.3" - "@better-fetch/fetch" "1.1.12" - "@noble/ciphers" "^0.6.0" - "@noble/hashes" "^1.6.1" - "@simplewebauthn/browser" "^13.0.0" - "@simplewebauthn/server" "^13.0.0" - better-call "0.3.3" + zod "^3.24.1" defu "^6.1.4" jose "^5.9.6" kysely "^0.27.4" nanostores "^0.11.3" - zod "^3.24.1" + better-call "0.3.3" + "@noble/hashes" "^1.6.1" + "@noble/ciphers" "^0.6.0" + "@better-auth/utils" "0.2.3" + "@better-fetch/fetch" "1.1.12" + "@simplewebauthn/server" "^13.0.0" + "@simplewebauthn/browser" "^13.0.0" better-call@0.3.3: version "0.3.3" resolved "https://registry.npmjs.org/better-call/-/better-call-0.3.3.tgz" integrity sha512-N4lDVm0NGmFfDJ0XMQ4O83Zm/3dPlvIQdxvwvgSLSkjFX5PM4GUYSVAuxNzXN27QZMHDkrJTWUqxBrm4tPC3eA== dependencies: - "@better-fetch/fetch" "^1.1.4" + zod "^3.24.1" rou3 "^0.5.1" uncrypto "^0.1.3" - zod "^3.24.1" + "@better-fetch/fetch" "^1.1.4" binary-extensions@^2.0.0: version "2.3.0" @@ -5564,18 +5544,18 @@ body-parser@1.20.3: resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz" integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g== dependencies: + qs "6.13.0" + depd "2.0.0" bytes "3.1.2" - content-type "~1.0.5" debug "2.6.9" - depd "2.0.0" + unpipe "1.0.0" destroy "1.2.0" - http-errors "2.0.0" + type-is "~1.6.18" + raw-body "2.5.2" iconv-lite "0.4.24" + http-errors "2.0.0" on-finished "2.4.1" - qs "6.13.0" - raw-body "2.5.2" - type-is "~1.6.18" - unpipe "1.0.0" + content-type "~1.0.5" bowser@^2.11.0: version "2.11.0" @@ -5650,17 +5630,17 @@ bun@^1.2.2: resolved "https://registry.npmjs.org/bun/-/bun-1.2.2.tgz" integrity sha512-RUc8uVVTw8WoASUzXaEQJR1s7mnwoHm3P871qBUIqSaoOpuwcU+bSVX151/xoqDwnyv38SjOX7yQ3oO0IeT73g== optionalDependencies: - "@oven/bun-darwin-aarch64" "1.2.2" + "@oven/bun-linux-x64" "1.2.2" "@oven/bun-darwin-x64" "1.2.2" - "@oven/bun-darwin-x64-baseline" "1.2.2" + "@oven/bun-windows-x64" "1.2.2" "@oven/bun-linux-aarch64" "1.2.2" + "@oven/bun-darwin-aarch64" "1.2.2" + "@oven/bun-linux-x64-musl" "1.2.2" "@oven/bun-linux-aarch64-musl" "1.2.2" - "@oven/bun-linux-x64" "1.2.2" "@oven/bun-linux-x64-baseline" "1.2.2" - "@oven/bun-linux-x64-musl" "1.2.2" - "@oven/bun-linux-x64-musl-baseline" "1.2.2" - "@oven/bun-windows-x64" "1.2.2" + "@oven/bun-darwin-x64-baseline" "1.2.2" "@oven/bun-windows-x64-baseline" "1.2.2" + "@oven/bun-linux-x64-musl-baseline" "1.2.2" bundle-name@^4.1.0: version "4.1.0" @@ -5713,9 +5693,9 @@ camelcase-css@^2.0.1: integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== caniuse-lite@^1.0.30001579, caniuse-lite@^1.0.30001646, caniuse-lite@^1.0.30001688: - version "1.0.30001699" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001699.tgz" - integrity sha512-b+uH5BakXZ9Do9iK+CkDmctUSEqZl+SP056vc5usa0PL+ev5OHw003rZXcnjNDv3L8P5j6rwT6C0BPKSikW08w== + version "1.0.30001700" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001700.tgz" + integrity sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ== caseless@~0.12.0: version "0.12.0" @@ -5769,16 +5749,16 @@ chokidar@^3.6.0: version "3.6.0" resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz" integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== - optionalDependencies: - fsevents "~2.3.2" dependencies: - anymatch "~3.1.2" braces "~3.0.2" + is-glob "~4.0.1" + anymatch "~3.1.2" + readdirp "~3.6.0" glob-parent "~5.1.2" is-binary-path "~2.1.0" - is-glob "~4.0.1" normalize-path "~3.0.0" - readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" chokidar@^4.0.1: version "4.0.3" @@ -5834,9 +5814,9 @@ cliui@^8.0.1: resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz" integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.1" wrap-ansi "^7.0.0" + strip-ansi "^6.0.1" + string-width "^4.2.0" clone@^1.0.2: version "1.0.4" @@ -5875,8 +5855,8 @@ color@^4.2.3: resolved "https://registry.npmjs.org/color/-/color-4.2.3.tgz" integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A== dependencies: - color-convert "^2.0.1" color-string "^1.9.0" + color-convert "^2.0.1" color-convert@^2.0.1: version "2.0.1" @@ -5939,7 +5919,7 @@ commander@11.1.0: version "workspace:apps/app" resolved "workspace:apps/app" devDependencies: - "@bubba/db" "workspace:*" + "@bubba/db" "packages/db" "@trigger.dev/build" "3.3.16" "@types/node" "^22.13.2" "@types/react" "^19.0.8" @@ -5952,7 +5932,7 @@ commander@11.1.0: "@ai-sdk/provider" "^1.0.7" "@aws-sdk/s3-request-presigner" "^3.750.0" "@browserbasehq/sdk" "^2.3.0" - "@bubba/notifications" "workspace:*" + "@bubba/notifications" "packages/notifications" "@date-fns/tz" "^1.2.0" "@hookform/resolvers" "^3.10.0" "@nangohq/frontend" "^0.53.1" @@ -6037,8 +6017,8 @@ config-chain@^1.1.11, config-chain@^1.1.13: resolved "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz" integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== dependencies: - ini "^1.3.4" proto-list "~1.2.1" + ini "^1.3.4" configstore@^5.0.0: version "5.0.1" @@ -6046,11 +6026,11 @@ configstore@^5.0.0: integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== dependencies: dot-prop "^5.2.0" - graceful-fs "^4.1.2" make-dir "^3.0.0" + graceful-fs "^4.1.2" + xdg-basedir "^4.0.0" unique-string "^2.0.0" write-file-atomic "^3.0.0" - xdg-basedir "^4.0.0" console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" @@ -6116,8 +6096,8 @@ cors@~2.8.5: resolved "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz" integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== dependencies: - object-assign "^4" vary "^1" + object-assign "^4" crelt@^1.0.0: version "1.0.6" @@ -6134,9 +6114,9 @@ cross-spawn@7.0.5, cross-spawn@^7.0.0, cross-spawn@^7.0.3: resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.5.tgz" integrity sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug== dependencies: + which "^2.0.1" path-key "^3.1.0" shebang-command "^2.0.0" - which "^2.0.1" crypto@^1.0.1: version "1.0.1" @@ -6605,10 +6585,10 @@ editorconfig@^1.0.4: resolved "https://registry.npmjs.org/editorconfig/-/editorconfig-1.0.4.tgz" integrity sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q== dependencies: - "@one-ini/wasm" "0.1.1" + semver "^7.5.3" commander "^10.0.0" minimatch "9.0.1" - semver "^7.5.3" + "@one-ini/wasm" "0.1.1" ee-first@1.1.1: version "1.1.1" @@ -6623,9 +6603,9 @@ effect@3.12.0, effect@^3.12.0: fast-check "^3.23.1" electron-to-chromium@^1.5.73: - version "1.5.101" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.101.tgz" - integrity sha512-L0ISiQrP/56Acgu4/i/kfPwWSgrzYZUnQrC0+QPFuhqlLP1Ir7qzPPDVS9BcKIyWTRU8+o6CC8dKw38tSWhYIA== + version "1.5.102" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.102.tgz" + integrity sha512-eHhqaja8tE/FNpIiBrvBjFV/SSKpyWHLvxuR9dPTdo+3V9ppdLmFB7ZZQ98qNovcngPLYIz0oOBF9P0FfZef5Q== embla-carousel@8.5.2: version "8.5.2" @@ -6665,7 +6645,7 @@ encodeurl@~2.0.0: resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz" integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== -encoding@^0.1.0, encoding@^0.1.13: +encoding@^0.1.13: version "0.1.13" resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz" integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== @@ -6699,11 +6679,11 @@ engine.io-client@~6.5.2: resolved "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.4.tgz" integrity sha512-GeZeeRjpD2qf49cZQ0Wvh/8NJNfeXkXXcoGh+F77oEAgo9gUHwT1fCRxSNU+YEEaysOJTnsFHmM5oAcPy4ntvQ== dependencies: - "@socket.io/component-emitter" "~3.1.0" + ws "~8.17.1" debug "~4.3.1" engine.io-parser "~5.2.1" - ws "~8.17.1" xmlhttprequest-ssl "~2.0.0" + "@socket.io/component-emitter" "~3.1.0" engine.io-parser@~5.2.1: version "5.2.3" @@ -6828,34 +6808,41 @@ es-to-primitive@^1.3.0: is-date-object "^1.0.5" is-symbol "^1.0.4" -esbuild@0.19.11: +esbuild@0.19.11, "esbuild@>=0.12 <1": version "0.19.11" resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.19.11.tgz" integrity sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA== optionalDependencies: "@esbuild/aix-ppc64" "0.19.11" + "@esbuild/linux-arm" "0.19.11" + "@esbuild/linux-x64" "0.19.11" + "@esbuild/sunos-x64" "0.19.11" + "@esbuild/win32-x64" "0.19.11" + "@esbuild/darwin-x64" "0.19.11" + "@esbuild/linux-ia32" "0.19.11" + "@esbuild/netbsd-x64" "0.19.11" + "@esbuild/win32-ia32" "0.19.11" "@esbuild/android-arm" "0.19.11" - "@esbuild/android-arm64" "0.19.11" "@esbuild/android-x64" "0.19.11" - "@esbuild/darwin-arm64" "0.19.11" - "@esbuild/darwin-x64" "0.19.11" - "@esbuild/freebsd-arm64" "0.19.11" "@esbuild/freebsd-x64" "0.19.11" - "@esbuild/linux-arm" "0.19.11" "@esbuild/linux-arm64" "0.19.11" - "@esbuild/linux-ia32" "0.19.11" - "@esbuild/linux-loong64" "0.19.11" - "@esbuild/linux-mips64el" "0.19.11" "@esbuild/linux-ppc64" "0.19.11" - "@esbuild/linux-riscv64" "0.19.11" "@esbuild/linux-s390x" "0.19.11" - "@esbuild/linux-x64" "0.19.11" - "@esbuild/netbsd-x64" "0.19.11" "@esbuild/openbsd-x64" "0.19.11" - "@esbuild/sunos-x64" "0.19.11" "@esbuild/win32-arm64" "0.19.11" - "@esbuild/win32-ia32" "0.19.11" - "@esbuild/win32-x64" "0.19.11" + "@esbuild/darwin-arm64" "0.19.11" + "@esbuild/android-arm64" "0.19.11" + "@esbuild/freebsd-arm64" "0.19.11" + "@esbuild/linux-loong64" "0.19.11" + "@esbuild/linux-riscv64" "0.19.11" + "@esbuild/linux-mips64el" "0.19.11" + +esbuild-register@3.6.0: + version "3.6.0" + resolved "https://registry.npmjs.org/esbuild-register/-/esbuild-register-3.6.0.tgz" + integrity sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg== + dependencies: + debug "^4.3.4" escalade@^3.1.1, escalade@^3.2.0: version "3.2.0" @@ -6886,12 +6873,12 @@ escodegen@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz" integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== - optionalDependencies: - source-map "~0.6.1" dependencies: - esprima "^4.0.1" estraverse "^5.2.0" esutils "^2.0.2" + esprima "^4.0.1" + optionalDependencies: + source-map "~0.6.1" esm-env@^1.2.1: version "1.2.2" @@ -6904,9 +6891,9 @@ esprima@^4.0.0, esprima@^4.0.1: integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esrap@^1.4.3: - version "1.4.4" - resolved "https://registry.npmjs.org/esrap/-/esrap-1.4.4.tgz" - integrity sha512-tDN6xP/r/b3WmdpWm7LybrD252hY52IokcycPnO+WHfhFF0+n5AWtcLLK7VNV6m0uYgVRhGVs8OkZwRyfC7HzQ== + version "1.4.5" + resolved "https://registry.npmjs.org/esrap/-/esrap-1.4.5.tgz" + integrity sha512-CjNMjkBWWZeHn+VX+gS8YvFwJ5+NDhg8aWZBSFJPR8qQduDNjbJodA2WcwCm7uQa5Rjqj+nZvVmceg1RbHFB9g== dependencies: "@jridgewell/sourcemap-codec" "^1.4.15" @@ -6991,52 +6978,52 @@ execa@^8.0.1: resolved "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz" integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== dependencies: - cross-spawn "^7.0.3" - get-stream "^8.0.1" - human-signals "^5.0.0" + onetime "^6.0.0" is-stream "^3.0.0" + get-stream "^8.0.1" + cross-spawn "^7.0.3" + signal-exit "^4.1.0" merge-stream "^2.0.0" npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^4.1.0" + human-signals "^5.0.0" strip-final-newline "^3.0.0" -express@*, express@^4.21.0: +express@^4.21.0: version "4.21.2" resolved "https://registry.npmjs.org/express/-/express-4.21.2.tgz" integrity sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA== dependencies: - accepts "~1.3.8" - array-flatten "1.1.1" - body-parser "1.20.3" - content-disposition "0.5.4" - content-type "~1.0.4" - cookie "0.7.1" - cookie-signature "1.0.6" - debug "2.6.9" + qs "6.13.0" depd "2.0.0" - encodeurl "~2.0.0" - escape-html "~1.0.3" etag "~1.8.1" - finalhandler "1.3.1" + send "0.19.0" + vary "~1.1.2" + debug "2.6.9" fresh "0.5.2" - http-errors "2.0.0" - merge-descriptors "1.0.3" + cookie "0.7.1" + accepts "~1.3.8" methods "~1.1.2" - on-finished "2.4.1" + type-is "~1.6.18" parseurl "~1.3.3" - path-to-regexp "0.1.12" + statuses "2.0.1" + encodeurl "~2.0.0" proxy-addr "~2.0.7" - qs "6.13.0" - range-parser "~1.2.1" + body-parser "1.20.3" + escape-html "~1.0.3" + http-errors "2.0.0" + on-finished "2.4.1" safe-buffer "5.2.1" - send "0.19.0" + utils-merge "1.0.1" + content-type "~1.0.4" + finalhandler "1.3.1" + range-parser "~1.2.1" serve-static "1.16.2" + array-flatten "1.1.1" + path-to-regexp "0.1.12" setprototypeof "1.2.0" - statuses "2.0.1" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" + cookie-signature "1.0.6" + merge-descriptors "1.0.3" + content-disposition "0.5.4" extend@^3.0.0, extend@~3.0.2: version "3.0.2" @@ -7063,12 +7050,12 @@ extract-zip@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz" integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== - optionalDependencies: - "@types/yauzl" "^2.9.1" dependencies: debug "^4.1.1" get-stream "^5.1.0" yauzl "^2.10.0" + optionalDependencies: + "@types/yauzl" "^2.9.1" extsprintf@1.3.0, extsprintf@^1.2.0: version "1.3.0" @@ -7107,11 +7094,11 @@ fast-glob@3.3.1: resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz" integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" merge2 "^1.3.0" micromatch "^4.0.4" + glob-parent "^5.1.2" + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" fast-glob@^3.3.2, fast-glob@^3.3.3: version "3.3.3" @@ -7137,9 +7124,9 @@ fast-xml-parser@4.4.1: strnum "^1.0.5" fast-xml-parser@^4.5.1: - version "4.5.1" - resolved "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.1.tgz" - integrity sha512-y655CeyUQ+jj7KBbYMc4FG01V8ZQqjN+gDYGJ50RtfsUB8iG9AmwmwoAgeKLJdmueKKMrH1RJ7yXHTSoczdv5w== + version "4.5.2" + resolved "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.2.tgz" + integrity sha512-xmnYV9o0StIz/0ArdzmWTxn9oDy0lH8Z80/8X/TD2EUQKXY4DHxoT9mYBqgGIG17DgddCJtH1M6DriMbalNsAA== dependencies: strnum "^1.0.5" @@ -7157,7 +7144,7 @@ fd-slicer@~1.1.0: dependencies: pend "~1.2.0" -fdir@^6.4.2: +fdir@^6.4.3: version "6.4.3" resolved "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz" integrity sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw== @@ -7209,12 +7196,12 @@ finalhandler@1.3.1: integrity sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ== dependencies: debug "2.6.9" + unpipe "~1.0.0" + parseurl "~1.3.3" + statuses "2.0.1" encodeurl "~2.0.0" escape-html "~1.0.3" on-finished "2.4.1" - parseurl "~1.3.3" - statuses "2.0.1" - unpipe "~1.0.0" find-my-way-ts@^0.1.5: version "0.1.5" @@ -7278,8 +7265,8 @@ form-data@~2.3.2: integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== dependencies: asynckit "^0.4.0" - combined-stream "^1.0.6" mime-types "^2.1.12" + combined-stream "^1.0.6" form-data@^2.5.0: version "2.5.3" @@ -7287,10 +7274,10 @@ form-data@^2.5.0: integrity sha512-XHIrMD0NpDrNM/Ckf7XJiBbLl57KEhT3+i3yY+eWm+cqYZJQTZrKo8Y8AWKnuV5GT4scfuUGt9LzNoIx3dU1nQ== dependencies: asynckit "^0.4.0" - combined-stream "^1.0.8" - es-set-tostringtag "^2.1.0" mime-types "^2.1.35" safe-buffer "^5.2.1" + combined-stream "^1.0.8" + es-set-tostringtag "^2.1.0" form-data@^4.0.0, form-data@^4.0.1: version "4.0.2" @@ -7337,9 +7324,9 @@ framer-motion@^11.18.2: resolved "https://registry.npmjs.org/framer-motion/-/framer-motion-11.18.2.tgz" integrity sha512-5F5Och7wrvtLVElIpclDT0CBzMVg3dL22B64aZwHtsIY8RB4mXICLrkajK4G9R+ieSAGcgrLeae2SeUTg2pr6w== dependencies: + tslib "^2.4.0" motion-dom "^11.18.1" motion-utils "^11.18.1" - tslib "^2.4.0" framework-utils@^1.1.0: version "1.1.0" @@ -7366,10 +7353,10 @@ fstream@^1.0.0, fstream@^1.0.12: resolved "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz" integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" mkdirp ">=0.5 0" rimraf "2" + inherits "~2.0.0" + graceful-fs "^4.1.2" function-bind@^1.1.2: version "1.1.2" @@ -7399,13 +7386,13 @@ gauge@~2.7.3: integrity sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg== dependencies: aproba "^1.0.3" - console-control-strings "^1.0.0" + strip-ansi "^3.0.1" + wide-align "^1.1.0" has-unicode "^2.0.0" - object-assign "^4.1.0" signal-exit "^3.0.0" string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" + object-assign "^4.1.0" + console-control-strings "^1.0.0" geist@^1.3.1: version "1.3.1" @@ -7524,11 +7511,11 @@ glob@^7.0.3, glob@^7.1.3: resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: - fs.realpath "^1.0.0" + once "^1.3.0" inflight "^1.0.4" inherits "2" minimatch "^3.1.1" - once "^1.3.0" + fs.realpath "^1.0.0" path-is-absolute "^1.0.0" glob@10.3.4: @@ -7536,23 +7523,23 @@ glob@10.3.4: resolved "https://registry.npmjs.org/glob/-/glob-10.3.4.tgz" integrity sha512-6LFElP3A+i/Q8XQKEvZjkEWEOTgAIALR9AO2rwT8bgPhDd1anmqDJDZ6lLddI4ehxxxR1S5RIqKe1uapMQfYaQ== dependencies: - foreground-child "^3.1.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" jackspeak "^2.0.3" minimatch "^9.0.1" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" path-scurry "^1.10.1" + foreground-child "^3.1.0" glob@^10.3.10, glob@^10.4.2: version "10.4.5" resolved "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz" integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== dependencies: - foreground-child "^3.1.0" + minipass "^7.1.2" jackspeak "^3.1.2" minimatch "^9.0.4" - minipass "^7.1.2" - package-json-from-dist "^1.0.0" path-scurry "^1.11.1" + foreground-child "^3.1.0" + package-json-from-dist "^1.0.0" glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" @@ -7618,13 +7605,13 @@ handlebars@^4.7.7: version "4.7.8" resolved "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz" integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== - optionalDependencies: - uglify-js "^3.1.4" dependencies: minimist "^1.2.5" neo-async "^2.6.2" source-map "^0.6.1" wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" har-schema@^2.0.0: version "2.0.0" @@ -7753,10 +7740,10 @@ htmlparser2@^8.0.2: resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz" integrity sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA== dependencies: - domelementtype "^2.3.0" - domhandler "^5.0.3" domutils "^3.0.1" entities "^4.4.0" + domhandler "^5.0.3" + domelementtype "^2.3.0" http-errors@2.0.0: version "2.0.0" @@ -7782,9 +7769,9 @@ http-signature@~1.2.0: resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz" integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" sshpk "^1.7.0" + jsprim "^1.2.2" + assert-plus "^1.0.0" https@^1.0.0: version "1.0.0" @@ -7835,11 +7822,6 @@ ieee754@^1.1.13, ieee754@^1.2.1: resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -immer@>=9.0.6: - version "10.1.1" - resolved "https://registry.npmjs.org/immer/-/immer-10.1.1.tgz" - integrity sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw== - import-in-the-middle@^1.8.1: version "1.13.0" resolved "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.13.0.tgz" @@ -7888,21 +7870,21 @@ inquirer@^8.2.0: resolved "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz" integrity sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg== dependencies: - ansi-escapes "^4.2.1" - chalk "^4.1.1" - cli-cursor "^3.1.0" - cli-width "^3.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.21" - mute-stream "0.0.8" ora "^5.4.1" - run-async "^2.4.0" rxjs "^7.5.5" - string-width "^4.1.0" - strip-ansi "^6.0.0" + chalk "^4.1.1" + lodash "^4.17.21" + figures "^3.0.0" through "^2.3.6" + cli-width "^3.0.0" + run-async "^2.4.0" wrap-ansi "^6.0.1" + cli-cursor "^3.1.0" + strip-ansi "^6.0.0" + mute-stream "0.0.8" + ansi-escapes "^4.2.1" + string-width "^4.1.0" + external-editor "^3.0.3" internal-slot@^1.1.0: version "1.1.0" @@ -7928,10 +7910,10 @@ intl-messageformat@^10.5.14: resolved "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.7.15.tgz" integrity sha512-LRyExsEsefQSBjU2p47oAheoKz+EOJxSLDdjOaEjdriajfHsMXOmV/EhMvYSg9bAgCUHasuAC+mcUBe/95PfIg== dependencies: + tslib "2" + "@formatjs/icu-messageformat-parser" "2.11.1" "@formatjs/ecma402-abstract" "2.3.3" "@formatjs/fast-memoize" "2.2.6" - "@formatjs/icu-messageformat-parser" "2.11.1" - tslib "2" ip-address@^9.0.5: version "9.0.5" @@ -8328,19 +8310,19 @@ jackspeak@^2.0.3: version "2.3.6" resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz" integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== - optionalDependencies: - "@pkgjs/parseargs" "^0.11.0" dependencies: "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" jackspeak@^3.1.2: version "3.4.3" resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz" integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== - optionalDependencies: - "@pkgjs/parseargs" "^0.11.0" dependencies: "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" jiti@^1.21.6: version "1.21.7" @@ -8353,9 +8335,9 @@ jju@^1.4.0: integrity sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA== jose@^5.4.0, jose@^5.9.3, jose@^5.9.6: - version "5.9.6" - resolved "https://registry.npmjs.org/jose/-/jose-5.9.6.tgz" - integrity sha512-AMlnetc9+CV9asI19zHmrgS/WYsWUwCn2R7RzlbJWD7F9eWYUTGyBmU9o6PxngtLGOiDGPRu+Uc4fhKzbpteZQ== + version "5.10.0" + resolved "https://registry.npmjs.org/jose/-/jose-5.10.0.tgz" + integrity sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg== jotai@^2.11.0: version "2.12.1" @@ -8478,10 +8460,10 @@ jsonfile@^6.1.0: version "6.1.0" resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== - optionalDependencies: - graceful-fs "^4.1.6" dependencies: universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" jsonrepair@^3.11.2: version "3.12.0" @@ -8493,26 +8475,26 @@ jsonwebtoken@^9.0.0: resolved "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz" integrity sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ== dependencies: + ms "^2.1.1" jws "^3.2.2" + semver "^7.5.4" + lodash.once "^4.0.0" lodash.includes "^4.3.0" + lodash.isnumber "^3.0.3" + lodash.isstring "^4.0.1" lodash.isboolean "^3.0.3" lodash.isinteger "^4.0.4" - lodash.isnumber "^3.0.3" lodash.isplainobject "^4.0.6" - lodash.isstring "^4.0.1" - lodash.once "^4.0.0" - ms "^2.1.1" - semver "^7.5.4" jsprim@^1.2.2: version "1.4.2" resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz" integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== dependencies: - assert-plus "1.0.0" + verror "1.10.0" extsprintf "1.3.0" + assert-plus "1.0.0" json-schema "0.4.0" - verror "1.10.0" jwa@^1.4.1: version "1.4.1" @@ -8560,9 +8542,9 @@ keycon@^1.2.0: resolved "https://registry.npmjs.org/keycon/-/keycon-1.4.0.tgz" integrity sha512-p1NAIxiRMH3jYfTeXRs2uWbVJ1WpEjpi8ktzUyBJsX7/wn2qu2VRXktneBLNtKNxJmlUYxRi9gOJt1DuthXR7A== dependencies: - "@cfcs/core" "^0.0.6" "@daybrush/utils" "^1.7.1" "@scena/event-emitter" "^1.0.2" + "@cfcs/core" "^0.0.6" keycode "^2.2.0" kind-of@^3.0.2: @@ -8746,9 +8728,9 @@ log-symbols@4.1.0, log-symbols@^4.1.0: is-unicode-supported "^0.1.0" long@^5.0.0: - version "5.3.0" - resolved "https://registry.npmjs.org/long/-/long-5.3.0.tgz" - integrity sha512-5vvY5yF1zF/kXk+L94FRiTDa1Znom46UjPCH6/XbSvS8zBKMFBHTJk8KDMqJ+2J6QezQFi7k1k8v21ClJYHPaw== + version "5.3.1" + resolved "https://registry.npmjs.org/long/-/long-5.3.1.tgz" + integrity sha512-ka87Jz3gcx/I7Hal94xaN2tZEOPoUOEVftkQqZx2EeQRN7LGdfLlI3FvZ+7WDplm+vK2Urx9ULrvSowtdCieng== longest-streak@^3.0.0: version "3.1.0" @@ -9136,13 +9118,13 @@ micromark-extension-gfm-footnote@^2.0.0: integrity sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw== dependencies: devlop "^1.0.0" - micromark-core-commonmark "^2.0.0" + micromark-util-types "^2.0.0" + micromark-util-symbol "^2.0.0" micromark-factory-space "^2.0.0" micromark-util-character "^2.0.0" - micromark-util-normalize-identifier "^2.0.0" + micromark-core-commonmark "^2.0.0" micromark-util-sanitize-uri "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" micromark-extension-gfm-strikethrough@^2.0.0: version "2.1.0" @@ -9276,10 +9258,10 @@ micromark-util-decode-string@^2.0.0: resolved "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz" integrity sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ== dependencies: - decode-named-character-reference "^1.0.0" micromark-util-character "^2.0.0" micromark-util-decode-numeric-character-reference "^2.0.0" micromark-util-symbol "^2.0.0" + decode-named-character-reference "^1.0.0" micromark-util-encode@^2.0.0: version "2.0.1" @@ -9437,8 +9419,8 @@ motion@^11.18.2: resolved "https://registry.npmjs.org/motion/-/motion-11.18.2.tgz" integrity sha512-JLjvFDuFr42NFtcVoMAyC2sEjnpA8xpy6qWPyzQvCloznAyQ8FIXioxWfHiLtgYhoVpfUqSWpn1h9++skj9+Wg== dependencies: - framer-motion "^11.18.2" tslib "^2.4.0" + framer-motion "^11.18.2" motion-dom@^11.18.1: version "11.18.1" @@ -9525,47 +9507,47 @@ next@15.0.4: version "15.0.4" resolved "https://registry.npmjs.org/next/-/next-15.0.4.tgz" integrity sha512-nuy8FH6M1FG0lktGotamQDCXhh5hZ19Vo0ht1AOIQWrYJLP598TIUagKtvJrfJ5AGwB/WmDqkKaKhMpVifvGPA== - optionalDependencies: - "@next/swc-darwin-arm64" "15.0.4" - "@next/swc-darwin-x64" "15.0.4" - "@next/swc-linux-arm64-gnu" "15.0.4" - "@next/swc-linux-arm64-musl" "15.0.4" - "@next/swc-linux-x64-gnu" "15.0.4" - "@next/swc-linux-x64-musl" "15.0.4" - "@next/swc-win32-arm64-msvc" "15.0.4" - "@next/swc-win32-x64-msvc" "15.0.4" - sharp "^0.33.5" dependencies: + busboy "1.6.0" + postcss "8.4.31" "@next/env" "15.0.4" + styled-jsx "5.1.6" "@swc/counter" "0.1.3" "@swc/helpers" "0.5.13" - busboy "1.6.0" caniuse-lite "^1.0.30001579" - postcss "8.4.31" - styled-jsx "5.1.6" + optionalDependencies: + sharp "^0.33.5" + "@next/swc-darwin-x64" "15.0.4" + "@next/swc-darwin-arm64" "15.0.4" + "@next/swc-linux-x64-gnu" "15.0.4" + "@next/swc-linux-x64-musl" "15.0.4" + "@next/swc-win32-x64-msvc" "15.0.4" + "@next/swc-linux-arm64-gnu" "15.0.4" + "@next/swc-linux-arm64-musl" "15.0.4" + "@next/swc-win32-arm64-msvc" "15.0.4" -next@*, next@15.1.7, "next@>= 14.0.0", next@>=12, next@>=13.2.0, next@>=14.2.0, "next@^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0", "next@^13.0.0 || ^14.0.0 || ^15.0.0", "next@^14.0.0-0 || ^15.0.0-0", next@^15.1.7: +next@15.1.7, "next@>= 14.0.0", next@>=12, next@>=13.2.0, "next@^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0", "next@^13.0.0 || ^14.0.0 || ^15.0.0", "next@^14.0.0-0 || ^15.0.0-0", next@^15.1.7: version "15.1.7" resolved "https://registry.npmjs.org/next/-/next-15.1.7.tgz" integrity sha512-GNeINPGS9c6OZKCvKypbL8GTsT5GhWPp4DM0fzkXJuXMilOO2EeFxuAY6JZbtk6XIl6Ws10ag3xRINDjSO5+wg== - optionalDependencies: - "@next/swc-darwin-arm64" "15.1.7" - "@next/swc-darwin-x64" "15.1.7" - "@next/swc-linux-arm64-gnu" "15.1.7" - "@next/swc-linux-arm64-musl" "15.1.7" - "@next/swc-linux-x64-gnu" "15.1.7" - "@next/swc-linux-x64-musl" "15.1.7" - "@next/swc-win32-arm64-msvc" "15.1.7" - "@next/swc-win32-x64-msvc" "15.1.7" - sharp "^0.33.5" dependencies: + busboy "1.6.0" + postcss "8.4.31" "@next/env" "15.1.7" + styled-jsx "5.1.6" "@swc/counter" "0.1.3" "@swc/helpers" "0.5.15" - busboy "1.6.0" caniuse-lite "^1.0.30001579" - postcss "8.4.31" - styled-jsx "5.1.6" + optionalDependencies: + sharp "^0.33.5" + "@next/swc-darwin-x64" "15.1.7" + "@next/swc-darwin-arm64" "15.1.7" + "@next/swc-linux-x64-gnu" "15.1.7" + "@next/swc-linux-x64-musl" "15.1.7" + "@next/swc-win32-x64-msvc" "15.1.7" + "@next/swc-linux-arm64-gnu" "15.1.7" + "@next/swc-linux-arm64-musl" "15.1.7" + "@next/swc-win32-arm64-msvc" "15.1.7" "next-auth@^5.0.0-beta.25": version "5.0.0-beta.25" @@ -9584,18 +9566,18 @@ next-international@^1.3.1: server-only "^0.0.1" next-intl@^3.26.3: - version "3.26.3" - resolved "https://registry.npmjs.org/next-intl/-/next-intl-3.26.3.tgz" - integrity sha512-6Y97ODrDsEE1J8cXKMHwg1laLdtkN66QMIqG8BzH4zennJRUNTtM8UMtBDyhfmF6uiZ+xsbWLXmHUgmUymUsfQ== + version "3.26.4" + resolved "https://registry.npmjs.org/next-intl/-/next-intl-3.26.4.tgz" + integrity sha512-/kFFR7WYJGisOR0xKoC930e6oTOOWf8rbHviQgte5zIn6OgJ6mKFvXI94RWAW3ksCZJCvE4zblIuYwHCSbbw7g== dependencies: - "@formatjs/intl-localematcher" "^0.5.4" + use-intl "^3.26.4" negotiator "^1.0.0" - use-intl "^3.26.3" + "@formatjs/intl-localematcher" "^0.5.4" next-safe-action@^7.10.3: - version "7.10.3" - resolved "https://registry.npmjs.org/next-safe-action/-/next-safe-action-7.10.3.tgz" - integrity sha512-Kn4zTnOiRkfWfQ0DH94I79Eycq6i+qS6WzhuGzxlWhVe6/yrEXHt+yU4GdqJ1O7vLyDAOWv4rXaRu+FkfVUAqQ== + version "7.10.4" + resolved "https://registry.npmjs.org/next-safe-action/-/next-safe-action-7.10.4.tgz" + integrity sha512-rZE89DTNgiTJ8oPQBOZm+jd0Uf/pLkN+GE3PndER6vWqHGYGN7HMLvhpggkbE8W4TGp+qM7CPyrXye1wCjZLVg== next-themes@^0.4.4: version "0.4.4" @@ -9638,18 +9620,18 @@ node-gyp@^3.0.3: resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz" integrity sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA== dependencies: - fstream "^1.0.0" + tar "^2.0.0" glob "^7.0.3" - graceful-fs "^4.1.2" - mkdirp "^0.5.0" nopt "2 || 3" - npmlog "0 || 1 || 2 || 3 || 4" osenv "0" - request "^2.87.0" + which "1" + mkdirp "^0.5.0" + npmlog "0 || 1 || 2 || 3 || 4" rimraf "2" semver "~5.3.0" - tar "^2.0.0" - which "1" + fstream "^1.0.0" + request "^2.87.0" + graceful-fs "^4.1.2" node-gyp-build@^4.8.1: version "4.8.4" @@ -9712,10 +9694,10 @@ novel@^1.0.2: "@types/node" "^22.10.6" cmdk "^1.0.4" jotai "^2.11.0" - katex "^0.16.20" react-markdown "^9.0.3" react-moveable "^0.56.0" react-tweet "^3.2.1" + katex "^0.16.20" tippy.js "^6.3.7" tiptap-extension-global-drag-handle "^0.1.16" tunnel-rat "^0.1.2" @@ -9726,28 +9708,28 @@ novu@^2.6.5: integrity sha512-2aafZqW4z24Zp5y3xlhMBfNHW+4THFAsr6p47gSEPcmE5xeiaRDi/WSrNUPcY1jFlV0Bs+E0osHoJClzfkqYUQ== dependencies: "@novu/ntfr-client" "^0.0.4" - "@novu/shared" "2.6.5" "@segment/analytics-node" "^1.1.4" - "@types/cross-spawn" "6.0.0" - async-sema "3.0.1" axios "^1.6.8" chalk "4.1.2" commander "^9.0.0" configstore "^5.0.0" - cross-spawn "7.0.5" dotenv "^16.4.5" - fast-glob "3.3.1" get-port "^5.1.1" gradient-string "^2.0.0" inquirer "^8.2.0" jwt-decode "^3.1.2" open "^8.4.0" ora "^5.4.1" - picocolors "^1.0.0" - prompts "2.4.2" uuid "^9.0.0" - validate-npm-package-name "3.0.0" ws "^8.11.0" + picocolors "^1.0.0" + validate-npm-package-name "3.0.0" + prompts "2.4.2" + "@types/cross-spawn" "6.0.0" + cross-spawn "7.0.5" + fast-glob "3.3.1" + async-sema "3.0.1" + "@novu/shared" "2.6.5" npm-run-path@^5.1.0: version "5.3.0" @@ -9761,10 +9743,10 @@ npm-run-path@^5.1.0: resolved "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" gauge "~2.7.3" set-blocking "~2.0.0" + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" number-is-nan@^1.0.0: version "1.0.1" @@ -9772,9 +9754,9 @@ number-is-nan@^1.0.0: integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ== nuqs@^2.3.2: - version "2.3.2" - resolved "https://registry.npmjs.org/nuqs/-/nuqs-2.3.2.tgz" - integrity sha512-WeG78r8e3a30JY3P8npldvNiAZwGIk499lnpeRs3UYA3PpSvs2/PLunKGgjuF/JMw4BOowD3K2xgGEOZ3PeODA== + version "2.4.0" + resolved "https://registry.npmjs.org/nuqs/-/nuqs-2.4.0.tgz" + integrity sha512-+yOdX0q/wdYlseSYtWC8StDDt2QFcYX/zV5/E67J1cOJo3PR0mggxMx4acZGC0Hu66xFHENKQkqI2zSpH742xQ== dependencies: mitt "^3.0.1" @@ -9789,9 +9771,9 @@ oauth-sign@~0.9.0: integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== oauth4webapi@^3.0.0, oauth4webapi@^3.1.1: - version "3.1.5" - resolved "https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.1.5.tgz" - integrity sha512-/V8tb1vgltQWIV8abvFfK1VVLhNcg5nYp8XTjwGc69eP66+rnHl0ttBLL5VrEJ/oNCrM37+JoVuHpiLNhnTdzw== + version "3.2.0" + resolved "https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.2.0.tgz" + integrity sha512-2sYwQXuuzGKOHpnM7QL9BssDrly5gKCgJKTyrhmFIHzJRj0fFsr6GVJEdesmrX6NpMg2u63V4hJwRsZE6PUSSA== object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" @@ -9884,13 +9866,13 @@ ora@5.4.1, ora@^5.4.1: dependencies: bl "^4.1.0" chalk "^4.1.0" + wcwidth "^1.0.1" cli-cursor "^3.1.0" + strip-ansi "^6.0.0" + log-symbols "^4.1.0" cli-spinners "^2.5.0" is-interactive "^1.0.0" is-unicode-supported "^0.1.0" - log-symbols "^4.1.0" - strip-ansi "^6.0.0" - wcwidth "^1.0.1" orderedmap@^2.0.0: version "2.1.1" @@ -9912,8 +9894,8 @@ osenv@0: resolved "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz" integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== dependencies: - os-homedir "^1.0.0" os-tmpdir "^1.0.0" + os-homedir "^1.0.0" overlap-area@^1.1.0: version "1.1.0" @@ -9955,16 +9937,16 @@ p-queue@^6, p-queue@^6.6.1: resolved "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz" integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ== dependencies: - eventemitter3 "^4.0.4" p-timeout "^3.2.0" + eventemitter3 "^4.0.4" p-retry@^4: version "4.6.2" resolved "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz" integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== dependencies: - "@types/retry" "0.12.0" retry "^0.13.1" + "@types/retry" "0.12.0" p-timeout@^3.2.0: version "3.2.0" @@ -9979,9 +9961,9 @@ p-try@^2.0.0: integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== pac-proxy-agent@^7.1.0: - version "7.1.0" - resolved "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.1.0.tgz" - integrity sha512-Z5FnLVVZSnX7WjBg0mhDtydeRZ1xMcATZThjySQUHqr+0ksP8kqaw23fNKkaaN/Z8gwLUs/W7xdl0I75eP2Xyw== + version "7.2.0" + resolved "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz" + integrity sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA== dependencies: "@tootallnate/quickjs-emscripten" "^0.23.0" agent-base "^7.1.2" @@ -10088,8 +10070,8 @@ path-scurry@^1.10.1, path-scurry@^1.11.1: resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz" integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== dependencies: - lru-cache "^10.2.0" minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + lru-cache "^10.2.0" path-to-regexp@0.1.12: version "0.1.12" @@ -10159,7 +10141,7 @@ picocolors@^1.0.0, picocolors@^1.0.1, picocolors@^1.1.0, picocolors@^1.1.1: resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1, "picomatch@^3 || ^4": +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== @@ -10218,9 +10200,8 @@ plist@^3.1.0: version "workspace:apps/portal" resolved "workspace:apps/portal" devDependencies: - "@bubba/db" "workspace:*" - "@bubba/ui" "workspace:*" - devDependencies: + "@bubba/db" "packages/db" + "@bubba/ui" "packages/ui" "@types/node" "^22.13.2" "@types/react" "^19.0.8" "@types/react-dom" "^19.0.3" @@ -10248,7 +10229,7 @@ postcss@8.4.31: picocolors "^1.0.0" source-map-js "^1.0.2" -postcss@>=8.0.9, postcss@^8.0.0, postcss@^8.1.0, postcss@^8.2.14, postcss@^8.4.21, postcss@^8.4.47, postcss@^8.4.48, postcss@^8.5.2: +postcss@^8.0.0, postcss@^8.1.0, postcss@^8.2.14, postcss@^8.4.21, postcss@^8.4.47, postcss@^8.4.48, postcss@^8.5.2: version "8.5.2" resolved "https://registry.npmjs.org/postcss/-/postcss-8.5.2.tgz" integrity sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA== @@ -10278,8 +10259,8 @@ postcss-load-config@^4.0.2: resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz" integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ== dependencies: - lilconfig "^3.0.0" yaml "^2.3.4" + lilconfig "^3.0.0" postcss-nested@^6.2.0: version "6.2.0" @@ -10337,9 +10318,9 @@ postgres-range@^1.1.1: integrity sha512-i/hbxIE9803Alj/6ytL7UHQxRvZkI9O4Sy+J3HGc4F4oo/2eQAjTSNJ0bfxyse3bH0nuVesCk+3IRLaMtG3H6w== posthog-js@^1.215.3, posthog-js@^1.217.2: - version "1.218.2" - resolved "https://registry.npmjs.org/posthog-js/-/posthog-js-1.218.2.tgz" - integrity sha512-C3IRqrdeYdFPiUmj2wI+k+Skr56Co9vhXufv3LirNQC6kAc5FVq//VQVK1i4Xf8PlZYsaqREl0QI5M/CihU3wA== + version "1.219.3" + resolved "https://registry.npmjs.org/posthog-js/-/posthog-js-1.219.3.tgz" + integrity sha512-oKN4no9RRAptZ86R/MvMjsxQnFAe97rwU2emmTzf/q9ng+7V4nU+APM0ItzrESFtRYx1X8kKtxDUlkujNhfMvw== dependencies: core-js "^3.38.1" fflate "^0.4.8" @@ -10353,21 +10334,16 @@ posthog-node@^4.4.1, posthog-node@^4.5.2: dependencies: axios "^1.7.4" -preact@10.11.3, preact@>=10: +preact@10.11.3: version "10.11.3" resolved "https://registry.npmjs.org/preact/-/preact-10.11.3.tgz" integrity sha512-eY93IVpod/zG3uMF22Unl8h9KkrcKIRs2EGar8hwLZZDU1lkjph303V9HZBwufh2s736U6VXuhD109LYqPoffg== -preact@10.24.3: +preact@10.24.3, preact@>=10, preact@^10.19.3: version "10.24.3" resolved "https://registry.npmjs.org/preact/-/preact-10.24.3.tgz" integrity sha512-Z2dPnBnMUfyQfSQ+GBdsGa16hz35YmLmtTLhM169uW944hYL6xzTYkJjC07j+Wosz733pMWx0fgON3JNw1jJQA== -preact@>=10, preact@^10.19.3: - version "10.25.4" - resolved "https://registry.npmjs.org/preact/-/preact-10.25.4.tgz" - integrity sha512-jLdZDb+Q+odkHJ+MpW/9U5cODzqnB+fy2EiHSZES7ldV5LK7yjlVzTp7R8Xy6W6y75kfK8iWYtFVH7lvjwrCMA== - preact-render-to-string@5.2.3: version "5.2.3" resolved "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-5.2.3.tgz" @@ -10408,14 +10384,16 @@ pretty-format@^3.8.0: resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-3.8.0.tgz" integrity sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew== -prisma@*, prisma@^6.3.1: - version "6.3.1" - resolved "https://registry.npmjs.org/prisma/-/prisma-6.3.1.tgz" - integrity sha512-JKCZWvBC3enxk51tY4TWzS4b5iRt4sSU1uHn2I183giZTvonXaQonzVtjLzpOHE7qu9MxY510kAtFGJwryKe3Q== +prisma@^6.3.1: + version "6.4.0" + resolved "https://registry.npmjs.org/prisma/-/prisma-6.4.0.tgz" + integrity sha512-UxEaEo1ajnEvwT9UQRyRfq0zZ9pvOmlZ6kShY8Hgu4jxgkHo1mg85IEP8yBgFRiRBA2o2OIt1nxzcllt86D4Mw== + dependencies: + esbuild ">=0.12 <1" + esbuild-register "3.6.0" + "@prisma/engines" "6.4.0" optionalDependencies: fsevents "2.3.3" - dependencies: - "@prisma/engines" "6.3.1" prismjs@1.29.0: version "1.29.0" @@ -10496,8 +10474,8 @@ prosemirror-commands@^1.0.0, prosemirror-commands@^1.6.2: integrity sha512-0nDHH++qcf/BuPLYvmqZTUUsPJUCPBUXt0J1ErTcDIS369CTp773itzLGIgIXG4LJXOlwYCr44+Mh4ii6MP1QA== dependencies: prosemirror-model "^1.0.0" - prosemirror-state "^1.0.0" prosemirror-transform "^1.10.2" + prosemirror-state "^1.0.0" prosemirror-dropcursor@^1.8.1: version "1.8.1" @@ -10505,8 +10483,8 @@ prosemirror-dropcursor@^1.8.1: integrity sha512-M30WJdJZLyXHi3N8vxN6Zh5O8ZBbQCz0gURTfPmTIBNQ5pxrdU7A58QkNqfa98YEjSAL1HUyyU34f6Pm5xBSGw== dependencies: prosemirror-state "^1.0.0" - prosemirror-transform "^1.1.0" prosemirror-view "^1.1.0" + prosemirror-transform "^1.1.0" prosemirror-gapcursor@^1.3.2: version "1.3.2" @@ -10541,17 +10519,17 @@ prosemirror-keymap@^1.0.0, prosemirror-keymap@^1.2.2: resolved "https://registry.npmjs.org/prosemirror-keymap/-/prosemirror-keymap-1.2.2.tgz" integrity sha512-EAlXoksqC6Vbocqc0GtzCruZEzYgrn+iiGnNjsJsH4mrnIGex4qbLdWWNza3AW5W36ZRrlBID0eM6bdKH4OStQ== dependencies: - prosemirror-state "^1.0.0" w3c-keyname "^2.2.0" + prosemirror-state "^1.0.0" prosemirror-markdown@^1.13.1: version "1.13.1" resolved "https://registry.npmjs.org/prosemirror-markdown/-/prosemirror-markdown-1.13.1.tgz" integrity sha512-Sl+oMfMtAjWtlcZoj/5L/Q39MpEnVZ840Xo330WJWUvgyhNmLBLN7MsHn07s53nG/KImevWHSE6fEj4q/GihHw== dependencies: - "@types/markdown-it" "^14.0.0" markdown-it "^14.0.0" prosemirror-model "^1.20.0" + "@types/markdown-it" "^14.0.0" prosemirror-menu@^1.2.4: version "1.2.4" @@ -10559,9 +10537,9 @@ prosemirror-menu@^1.2.4: integrity sha512-S/bXlc0ODQup6aiBbWVsX/eM+xJgCTAfMq/nLqaO5ID/am4wS0tTCIkzwytmao7ypEtjj39i7YbJjAgO20mIqA== dependencies: crelt "^1.0.0" + prosemirror-state "^1.0.0" prosemirror-commands "^1.0.0" prosemirror-history "^1.0.0" - prosemirror-state "^1.0.0" prosemirror-model@^1.0.0, prosemirror-model@^1.19.0, prosemirror-model@^1.20.0, prosemirror-model@^1.21.0, prosemirror-model@^1.22.1, prosemirror-model@^1.23.0, prosemirror-model@^1.24.1: version "1.24.1" @@ -10583,8 +10561,8 @@ prosemirror-schema-list@^1.4.1: integrity sha512-gg1tAfH1sqpECdhIHOA/aLg2VH3ROKBWQ4m8Qp9mBKrOxQRW61zc+gMCI8nh22gnBzd1t2u1/NPLmO3nAa3ssg== dependencies: prosemirror-model "^1.0.0" - prosemirror-state "^1.0.0" prosemirror-transform "^1.7.3" + prosemirror-state "^1.0.0" prosemirror-state@^1.0.0, prosemirror-state@^1.2.2, prosemirror-state@^1.4.2, prosemirror-state@^1.4.3: version "1.4.3" @@ -10692,8 +10670,8 @@ pump@^3.0.0: resolved "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz" integrity sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw== dependencies: - end-of-stream "^1.1.0" once "^1.3.1" + end-of-stream "^1.1.0" punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.1: version "2.3.1" @@ -10711,8 +10689,8 @@ puppeteer-core@^24.2.0: integrity sha512-bCypUh3WXzETafv1TCFAjIUnI8BiQ/d+XvEfEXDLcIMm9CAvROqnBmbt79yBjwasoDZsgfXnUmIJU7Y27AalVQ== dependencies: "@puppeteer/browsers" "2.7.1" - chromium-bidi "1.3.0" debug "^4.4.0" + chromium-bidi "1.3.0" devtools-protocol "0.0.1402036" typed-query-selector "^2.12.0" ws "^8.18.0" @@ -10774,9 +10752,9 @@ raw-body@2.5.2, raw-body@^2.3.3: integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== dependencies: bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" unpipe "1.0.0" + iconv-lite "0.4.24" + http-errors "2.0.0" rc@1.2.8: version "1.2.8" @@ -10795,7 +10773,7 @@ react@18.2.0, react@18.x, "react@^16.8 || ^17.0 || ^18.0", react@^18.0.0, react@ dependencies: loose-envify "^1.1.0" -react@*, react@19.0.0, "react@>= 16.8 || 18.0.0", "react@>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0", "react@>= 18.0.0", "react@>= 18.2.0", react@>=16, react@>=16.6.0, react@>=16.8, "react@>=16.8.0 || ^17.0.0 || ^18", react@>=16.8.1, "react@>=16.8.6 || ^17.0.0 || ^18.0.0", react@>=17, react@>=18, "react@>=18.2.0 || ^19.0.0-0", "react@^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react@^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc", "react@^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", "react@^16.8.0 || ^17 || ^18 || ^19", "react@^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 || ^19.0.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react@^16.8.0 || ^17.0.1 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react@^16.x || ^17.x || ^18.x || ^19.0.0 || ^19.0.0-rc", "react@^17.0.0 || ^18.0.0 || ^19.0.0", "react@^17.0.2 || ^18.0.0 || ^19.0.0", "react@^18 || ^19", "react@^18 || ^19 || ^19.0.0-rc", "react@^18.0 || ^19.0", "react@^18.0 || ^19.0 || ^19.0.0-rc", "react@^18.0.0 || ^19.0.0", "react@^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react@^18.2.0 || 19.0.0-rc-66855b96-20241106 || ^19.0.0", "react@^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "react@^18.2.0 || ^19.0.0-0", react@^19.0.0: +react@*, react@19.0.0, "react@>= 16.8 || 18.0.0", "react@>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0", "react@>= 18.0.0", "react@>= 18.2.0", react@>=16, react@>=16.6.0, react@>=16.8, "react@>=16.8.0 || ^17.0.0 || ^18", react@>=16.8.1, "react@>=16.8.6 || ^17.0.0 || ^18.0.0", react@>=17, react@>=18, "react@>=18.2.0 || ^19.0.0-0", "react@^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react@^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc", "react@^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", "react@^16.8.0 || ^17 || ^18 || ^19", "react@^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 || ^19.0.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react@^16.8.0 || ^17.0.1 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react@^16.x || ^17.x || ^18.x || ^19.0.0 || ^19.0.0-rc", "react@^17.0.0 || ^18.0.0 || ^19.0.0", "react@^17.0.2 || ^18.0.0 || ^19.0.0", "react@^18 || ^19", "react@^18 || ^19 || ^19.0.0-rc", "react@^18.0 || ^19.0", "react@^18.0 || ^19.0 || ^19.0.0-rc", "react@^18.2.0 || 19.0.0-rc-66855b96-20241106 || ^19.0.0", "react@^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "react@^18.2.0 || ^19.0.0-0", react@^19.0.0: version "19.0.0" resolved "https://registry.npmjs.org/react/-/react-19.0.0.tgz" integrity sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ== @@ -10818,10 +10796,10 @@ react-dom@18.2.0, "react-dom@^16.8 || ^17.0 || ^18.0", react-dom@^18.0.0: resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz" integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== dependencies: - loose-envify "^1.1.0" scheduler "^0.23.0" + loose-envify "^1.1.0" -react-dom@19.0.0, "react-dom@>= 18.0.0", "react-dom@>= 18.2.0", react-dom@>=16, react-dom@>=16.6.0, react-dom@>=16.8, react-dom@>=16.8.1, "react-dom@>=16.8.6 || ^17.0.0 || ^18.0.0", react-dom@>=17, react-dom@>=18.0.0, "react-dom@^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom@^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom@^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react-dom@^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", "react-dom@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom@^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom@^18 || ^19 || ^19.0.0-rc", "react-dom@^18.0.0 || ^19.0.0", "react-dom@^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react-dom@^18.2.0 || 19.0.0-rc-66855b96-20241106 || ^19.0.0", "react-dom@^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", react-dom@^19.0.0: +react-dom@19.0.0, "react-dom@>= 18.0.0", "react-dom@>= 18.2.0", react-dom@>=16, react-dom@>=16.6.0, react-dom@>=16.8, react-dom@>=16.8.1, "react-dom@>=16.8.6 || ^17.0.0 || ^18.0.0", react-dom@>=18.0.0, "react-dom@^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom@^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom@^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react-dom@^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", "react-dom@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom@^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom@^18 || ^19 || ^19.0.0-rc", "react-dom@^18.2.0 || 19.0.0-rc-66855b96-20241106 || ^19.0.0", "react-dom@^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", react-dom@^19.0.0: version "19.0.0" resolved "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz" integrity sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ== @@ -10833,29 +10811,29 @@ react-dropzone@^14.3.5: resolved "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.3.5.tgz" integrity sha512-9nDUaEEpqZLOz5v5SUcFA0CjM4vq8YbqO0WRls+EYT7+DvxUdzDPKNCPLqGfj3YL9MsniCLCD4RFA6M95V6KMQ== dependencies: + prop-types "^15.8.1" attr-accept "^2.2.4" file-selector "^2.1.0" - prop-types "^15.8.1" react-email@1.x, react-email@3.0.4: version "3.0.4" resolved "https://registry.npmjs.org/react-email/-/react-email-3.0.4.tgz" integrity sha512-nXdo9P3V+qYSW6m5yN3XpFGhHb/bflX86m0EDQEqDIgayprj6InmBJoBnMSIyC5EP4tPtoAljlclJns4lJG/MQ== dependencies: - "@babel/core" "7.24.5" - "@babel/parser" "7.24.5" + ora "5.4.1" + glob "10.3.4" + next "15.0.4" chalk "4.1.2" + esbuild "0.19.11" chokidar "^4.0.1" - commander "11.1.0" debounce "2.0.0" - esbuild "0.19.11" - glob "10.3.4" - log-symbols "4.1.0" + commander "11.1.0" + socket.io "4.8.0" mime-types "2.1.35" - next "15.0.4" + "@babel/core" "7.24.5" + log-symbols "4.1.0" + "@babel/parser" "7.24.5" normalize-path "3.0.0" - ora "5.4.1" - socket.io "4.8.0" react-hook-form@^7.0.0, react-hook-form@^7.54.2: version "7.54.2" @@ -10949,11 +10927,11 @@ react-remove-scroll@2.5.4: resolved "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.4.tgz" integrity sha512-xGVKJJr0SJGQVirVFAUZ2k1QLyO6m+2fy0l8Qawbp5Jgrv3DeLalrfMNBFSlmz5kriGGzsVBtGVnf4pTKIhhWA== dependencies: - react-remove-scroll-bar "^2.3.3" - react-style-singleton "^2.2.1" tslib "^2.1.0" - use-callback-ref "^1.3.0" use-sidecar "^1.1.2" + use-callback-ref "^1.3.0" + react-style-singleton "^2.2.1" + react-remove-scroll-bar "^2.3.3" react-remove-scroll@^2.6.3: version "2.6.3" @@ -11000,8 +10978,8 @@ react-style-singleton@^2.2.1, react-style-singleton@^2.2.2, react-style-singleto resolved "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz" integrity sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ== dependencies: - get-nonce "^1.0.0" tslib "^2.0.0" + get-nonce "^1.0.0" react-textarea-autosize@^8.5.7: version "8.5.7" @@ -11053,13 +11031,13 @@ readable-stream@^2.0.6: resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" isarray "~1.0.0" - process-nextick-args "~2.0.0" + inherits "~2.0.3" safe-buffer "~5.1.1" + core-util-is "~1.0.0" string_decoder "~1.1.1" util-deprecate "~1.0.1" + process-nextick-args "~2.0.0" readable-stream@^3.4.0: version "3.6.2" @@ -11099,10 +11077,10 @@ recharts@^2.12.7: integrity sha512-v8PUTUlyiDe56qUj82w/EDVuzEFXwEHp9/xOowGAZwfLjB9uAy3GllQVIYMWF6nU+qibx85WF75zD7AjqoT54Q== dependencies: clsx "^2.0.0" - eventemitter3 "^4.0.1" lodash "^4.17.21" react-is "^18.3.1" react-smooth "^4.0.4" + eventemitter3 "^4.0.1" recharts-scale "^0.4.4" tiny-invariant "^1.3.1" victory-vendor "^36.6.8" @@ -11206,26 +11184,26 @@ request@^2.87.0: resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== dependencies: - aws-sign2 "~0.7.0" + qs "~6.5.2" aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" + uuid "^3.3.2" extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" + caseless "~0.12.0" isstream "~0.1.2" - json-stringify-safe "~5.0.1" + aws-sign2 "~0.7.0" + form-data "~2.3.2" mime-types "~2.1.19" oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" safe-buffer "^5.1.2" tough-cookie "~2.5.0" tunnel-agent "^0.6.0" - uuid "^3.3.2" + forever-agent "~0.6.1" + har-validator "~5.1.3" + is-typedarray "~1.0.0" + http-signature "~1.2.0" + combined-stream "~1.0.6" + performance-now "^2.1.0" + json-stringify-safe "~5.0.1" require-directory@^2.1.1: version "2.1.1" @@ -11463,19 +11441,19 @@ send@0.19.0: resolved "https://registry.npmjs.org/send/-/send-0.19.0.tgz" integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw== dependencies: - debug "2.6.9" + ms "2.1.3" depd "2.0.0" + etag "~1.8.1" + mime "1.6.0" + debug "2.6.9" + fresh "0.5.2" destroy "1.2.0" + statuses "2.0.1" encodeurl "~1.0.2" escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" http-errors "2.0.0" - mime "1.6.0" - ms "2.1.3" on-finished "2.4.1" range-parser "~1.2.1" - statuses "2.0.1" seroval@^1.0, seroval@^1.1.0: version "1.2.1" @@ -11547,30 +11525,30 @@ sharp@^0.33.5: version "0.33.5" resolved "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz" integrity sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw== + dependencies: + color "^4.2.3" + semver "^7.6.3" + detect-libc "^2.0.3" optionalDependencies: - "@img/sharp-darwin-arm64" "0.33.5" + "@img/sharp-wasm32" "0.33.5" + "@img/sharp-linux-arm" "0.33.5" + "@img/sharp-linux-x64" "0.33.5" + "@img/sharp-win32-x64" "0.33.5" "@img/sharp-darwin-x64" "0.33.5" - "@img/sharp-libvips-darwin-arm64" "1.0.4" - "@img/sharp-libvips-darwin-x64" "1.0.4" + "@img/sharp-win32-ia32" "0.33.5" + "@img/sharp-linux-arm64" "0.33.5" + "@img/sharp-linux-s390x" "0.33.5" + "@img/sharp-darwin-arm64" "0.33.5" + "@img/sharp-linuxmusl-x64" "0.33.5" + "@img/sharp-linuxmusl-arm64" "0.33.5" "@img/sharp-libvips-linux-arm" "1.0.5" + "@img/sharp-libvips-linux-x64" "1.0.4" + "@img/sharp-libvips-darwin-x64" "1.0.4" "@img/sharp-libvips-linux-arm64" "1.0.4" "@img/sharp-libvips-linux-s390x" "1.0.4" - "@img/sharp-libvips-linux-x64" "1.0.4" - "@img/sharp-libvips-linuxmusl-arm64" "1.0.4" + "@img/sharp-libvips-darwin-arm64" "1.0.4" "@img/sharp-libvips-linuxmusl-x64" "1.0.4" - "@img/sharp-linux-arm" "0.33.5" - "@img/sharp-linux-arm64" "0.33.5" - "@img/sharp-linux-s390x" "0.33.5" - "@img/sharp-linux-x64" "0.33.5" - "@img/sharp-linuxmusl-arm64" "0.33.5" - "@img/sharp-linuxmusl-x64" "0.33.5" - "@img/sharp-wasm32" "0.33.5" - "@img/sharp-win32-ia32" "0.33.5" - "@img/sharp-win32-x64" "0.33.5" - dependencies: - color "^4.2.3" - detect-libc "^2.0.3" - semver "^7.6.3" + "@img/sharp-libvips-linuxmusl-arm64" "1.0.4" shebang-command@^2.0.0: version "2.0.0" @@ -11644,9 +11622,9 @@ simple-git@^3.27.0: resolved "https://registry.npmjs.org/simple-git/-/simple-git-3.27.0.tgz" integrity sha512-ivHoFS9Yi9GY49ogc6/YAi3Fl9ROnF4VyubNylgCkA+RVqLaKWnDSzXOVzya8csELIaWaYNutsEuAhZrtOjozA== dependencies: + debug "^4.3.5" "@kwsites/file-exists" "^1.1.1" "@kwsites/promise-deferred" "^1.1.1" - debug "^4.3.5" simple-swizzle@^0.2.2: version "0.2.2" @@ -11675,13 +11653,13 @@ socket.io@4.8.0: resolved "https://registry.npmjs.org/socket.io/-/socket.io-4.8.0.tgz" integrity sha512-8U6BEgGjQOfGz3HHTYaC/L1GaxDCJ/KM0XTkJly0EhZ5U/du9uNEZy4ZgYzEzIqlx2CMm25CrCqr1ck899eLNA== dependencies: - accepts "~1.3.4" - base64id "~2.0.0" cors "~2.8.5" debug "~4.3.2" + accepts "~1.3.4" + base64id "~2.0.0" engine.io "~6.6.0" - socket.io-adapter "~2.5.2" socket.io-parser "~4.2.4" + socket.io-adapter "~2.5.2" socket.io-adapter@~2.5.2: version "2.5.5" @@ -11696,28 +11674,28 @@ socket.io-client@4.7.2: resolved "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.2.tgz" integrity sha512-vtA0uD4ibrYD793SOIAwlo8cj6haOeMHrGvwPxJsxH7CeIksqJ+3Zc06RvWTIFgiSqx4A3sOnTXpfAEE2Zyz6w== dependencies: - "@socket.io/component-emitter" "~3.1.0" debug "~4.3.2" engine.io-client "~6.5.2" socket.io-parser "~4.2.4" + "@socket.io/component-emitter" "~3.1.0" socket.io-client@4.7.5: version "4.7.5" resolved "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.5.tgz" integrity sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ== dependencies: - "@socket.io/component-emitter" "~3.1.0" debug "~4.3.2" engine.io-client "~6.5.2" socket.io-parser "~4.2.4" + "@socket.io/component-emitter" "~3.1.0" socket.io-parser@~4.2.4: version "4.2.4" resolved "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz" integrity sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew== dependencies: - "@socket.io/component-emitter" "~3.1.0" debug "~4.3.1" + "@socket.io/component-emitter" "~3.1.0" socks@^2.8.3: version "2.8.4" @@ -11741,7 +11719,7 @@ solid-floating-ui@^0.3.1: resolved "https://registry.npmjs.org/solid-floating-ui/-/solid-floating-ui-0.3.1.tgz" integrity sha512-o/QmGsWPS2Z3KidAxP0nDvN7alI7Kqy0kU+wd85Fz+au5SYcnYm7I6Fk3M60Za35azsPX0U+5fEtqfOuk6Ao0Q== -solid-js@^1.6.12, solid-js@^1.7.7, solid-js@^1.8, solid-js@^1.8.11: +solid-js@^1.6.12, solid-js@^1.8, solid-js@^1.8.11: version "1.9.4" resolved "https://registry.npmjs.org/solid-js/-/solid-js-1.9.4.tgz" integrity sha512-ipQl8FJ31bFUoBNScDQTG3BjN6+9Rg+Q+f10bUbnO6EOTTf5NGerJeHc7wyu5I4RMHEl/WwZwUmy/PTRgxxZ8g== @@ -11803,14 +11781,14 @@ sshpk@^1.7.0: integrity sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ== dependencies: asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" + jsbn "~0.1.0" + getpass "^0.1.1" dashdash "^1.12.0" ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" tweetnacl "~0.14.0" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + safer-buffer "^2.0.2" sswr@^2.1.0: version "2.1.0" @@ -11841,38 +11819,38 @@ streamx@^2.15.0, streamx@^2.21.0: version "2.22.0" resolved "https://registry.npmjs.org/streamx/-/streamx-2.22.0.tgz" integrity sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw== - optionalDependencies: - bare-events "^2.2.0" dependencies: fast-fifo "^1.3.2" text-decoder "^1.1.0" + optionalDependencies: + bare-events "^2.2.0" string-width@^1.0.1: version "1.0.2" resolved "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw== dependencies: + strip-ansi "^3.0.0" code-point-at "^1.0.0" is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3, "string-width@npm:string-width@^4.2.0": version "4.2.3" resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: + strip-ansi "^6.0.1" emoji-regex "^8.0.0" is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" string-width@^5.0.1, string-width@^5.1.2: version "5.1.2" resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz" integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" strip-ansi "^7.0.1" + emoji-regex "^9.2.2" + eastasianwidth "^0.2.0" string.prototype.trim@^1.2.10: version "1.2.10" @@ -11974,8 +11952,8 @@ stripe@^17.6.0: resolved "https://registry.npmjs.org/stripe/-/stripe-17.6.0.tgz" integrity sha512-+HB6+SManp0gSRB0dlPmXO+io18krlAe0uimXhhIkL/RG/VIRigkfoM3QDJPkqbuSW0XsA6uzsivNCJU1ELEDA== dependencies: - "@types/node" ">=8.1.0" qs "^6.11.0" + "@types/node" ">=8.1.0" strnum@^1.0.5: version "1.0.5" @@ -12041,10 +12019,10 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -"svelte@^3.0.0 || ^4.0.0 || ^5.0.0", "svelte@^4.0.0 || ^5.0.0-next.0": - version "5.20.1" - resolved "https://registry.npmjs.org/svelte/-/svelte-5.20.1.tgz" - integrity sha512-aCARru2WTdzJl55Ws8SK27+kvQwd8tijl4kY7NoDUXUHtTHhxMa8Lf6QNZKmU7cuPu3jjFloDO1j5HgYJNIIWg== +"svelte@^4.0.0 || ^5.0.0-next.0": + version "5.20.2" + resolved "https://registry.npmjs.org/svelte/-/svelte-5.20.2.tgz" + integrity sha512-aYXJreNUiyTob0QOzRZeBXZMGeFZDch6SrSRV8QTncZb6zj0O3BEdUzPpojuHQ1pTvk+KX7I6rZCXPUf8pTPxA== dependencies: "@ampproject/remapping" "^2.3.0" "@jridgewell/sourcemap-codec" "^1.5.0" @@ -12102,33 +12080,33 @@ tailwind-merge@^2.4.0, tailwind-merge@^2.6.0: resolved "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.6.0.tgz" integrity sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA== -"tailwindcss@>=3.0.0 || insiders", "tailwindcss@>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1", "tailwindcss@^3.0.0 || ^4.0.0-beta.0", tailwindcss@^3.4.13, tailwindcss@^3.4.17: +"tailwindcss@>=3.0.0 || insiders", "tailwindcss@>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1", tailwindcss@^3.4.13, tailwindcss@^3.4.17: version "3.4.17" resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz" integrity sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og== dependencies: - "@alloc/quick-lru" "^5.2.0" arg "^5.0.2" - chokidar "^3.6.0" - didyoumean "^1.2.2" dlv "^1.1.3" - fast-glob "^3.3.2" - glob-parent "^6.0.2" - is-glob "^4.0.3" jiti "^1.21.6" + is-glob "^4.0.3" + postcss "^8.4.47" + resolve "^1.22.8" + sucrase "^3.35.0" + chokidar "^3.6.0" + fast-glob "^3.3.2" lilconfig "^3.1.3" + didyoumean "^1.2.2" micromatch "^4.0.8" - normalize-path "^3.0.0" - object-hash "^3.0.0" picocolors "^1.1.1" - postcss "^8.4.47" - postcss-import "^15.1.0" postcss-js "^4.0.1" - postcss-load-config "^4.0.2" + glob-parent "^6.0.2" + object-hash "^3.0.0" + normalize-path "^3.0.0" + postcss-import "^15.1.0" postcss-nested "^6.2.0" + "@alloc/quick-lru" "^5.2.0" + postcss-load-config "^4.0.2" postcss-selector-parser "^6.1.2" - resolve "^1.22.8" - sucrase "^3.35.0" tailwindcss-animate@^1.0.7: version "1.0.7" @@ -12140,20 +12118,20 @@ tar@^2.0.0: resolved "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz" integrity sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA== dependencies: - block-stream "*" fstream "^1.0.12" inherits "2" + block-stream "*" tar-fs@^3.0.8: version "3.0.8" resolved "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.8.tgz" integrity sha512-ZoROL70jptorGAlgAYiLoBLItEKw/fUxg9BSYK/dF/GAGYFJOJJJMvjPAKDJraCXFwadD456FCuvLWgfhMsPwg== - optionalDependencies: - bare-fs "^4.0.1" - bare-path "^3.0.0" dependencies: pump "^3.0.0" tar-stream "^3.1.5" + optionalDependencies: + bare-fs "^4.0.1" + bare-path "^3.0.0" tar-stream@^3.1.5: version "3.1.7" @@ -12224,11 +12202,11 @@ tinyexec@^0.3.1: integrity sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA== tinyglobby@^0.2.2: - version "0.2.10" - resolved "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.10.tgz" - integrity sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew== + version "0.2.11" + resolved "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.11.tgz" + integrity sha512-32TmKeeKUahv0Go8WmQgiEp9Y21NuxjwjqiRC1nrUB51YacfSwuB44xgXD+HdIppmMRgjQNPdrHyA6vIybYZ+g== dependencies: - fdir "^6.4.2" + fdir "^6.4.3" picomatch "^4.0.2" tinygradient@^1.1.5: @@ -12236,8 +12214,8 @@ tinygradient@^1.1.5: resolved "https://registry.npmjs.org/tinygradient/-/tinygradient-1.1.5.tgz" integrity sha512-8nIfc2vgQ4TeLnk2lFj4tRLvvJwEfQuabdsmvDdQPT0xlk9TaNtpGd6nNRxXoK6vQhN6RSzj+Cnp5tTQmpxmbw== dependencies: - "@types/tinycolor2" "^1.4.0" tinycolor2 "^1.0.0" + "@types/tinycolor2" "^1.4.0" tippy.js@^6.3.7: version "6.3.7" @@ -12368,11 +12346,11 @@ turbo@^2.4.2: resolved "https://registry.npmjs.org/turbo/-/turbo-2.4.2.tgz" integrity sha512-Qxi0ioQCxMRUCcHKHZkTnYH8e7XCpNfg9QiJcyfWIc+ZXeaCjzV5rCGlbQlTXMAtI8qgfP8fZADv3CFtPwqdPQ== optionalDependencies: - turbo-darwin-64 "2.4.2" - turbo-darwin-arm64 "2.4.2" turbo-linux-64 "2.4.2" - turbo-linux-arm64 "2.4.2" + turbo-darwin-64 "2.4.2" turbo-windows-64 "2.4.2" + turbo-linux-arm64 "2.4.2" + turbo-darwin-arm64 "2.4.2" turbo-windows-arm64 "2.4.2" turbo-darwin-64@2.4.2: @@ -12430,8 +12408,8 @@ type-is@~1.6.18: resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== dependencies: - media-typer "0.3.0" mime-types "~2.1.24" + media-typer "0.3.0" typed-array-buffer@^1.0.3: version "1.0.3" @@ -12490,7 +12468,7 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typescript@*, typescript@5.7.3, typescript@>=5.0.0, typescript@>=5.1.0, typescript@>=5.7.2, typescript@^5.0.0, typescript@^5.5.4, typescript@^5.6.3, typescript@^5.7.2, typescript@^5.7.3: +typescript@5.7.3, typescript@>=5.7.2, typescript@^5.5.4, typescript@^5.6.3, typescript@^5.7.2, typescript@^5.7.3: version "5.7.3" resolved "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz" integrity sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw== @@ -12617,14 +12595,14 @@ update-browserslist-db@^1.1.1: picocolors "^1.1.1" uploadthing@^7.2.0, uploadthing@^7.5.0: - version "7.5.1" - resolved "https://registry.npmjs.org/uploadthing/-/uploadthing-7.5.1.tgz" - integrity sha512-p5VxxT4i7LYLiKE+FgtMnIztvDfgZ1IptY62PF2YpgvxFccIbX/OXx8OcW/psjKCmPC7PXEt3e9d+bduYJOmDw== + version "7.5.2" + resolved "https://registry.npmjs.org/uploadthing/-/uploadthing-7.5.2.tgz" + integrity sha512-hrvsVXgu6cYYJW97UuFLd3U2+TrPGyMBtPYSkqSTVq45Orkq9qFk095qkXYIW4EA/DyvCo78VV25HfSXT3EH7w== dependencies: "@effect/platform" "0.72.0" "@standard-schema/spec" "1.0.0-beta.4" "@uploadthing/mime-types" "0.3.4" - "@uploadthing/shared" "7.1.6" + "@uploadthing/shared" "7.1.7" effect "3.12.0" uri-js@^4.2.2: @@ -12651,13 +12629,13 @@ use-debounce@^10.0.4: resolved "https://registry.npmjs.org/use-debounce/-/use-debounce-10.0.4.tgz" integrity sha512-6Cf7Yr7Wk7Kdv77nnJMf6de4HuDE4dTxKij+RqE9rufDsI6zsbjyAxcH5y2ueJCQAnfgKbzXbZHYlkFwmBlWkw== -use-intl@^3.26.3: - version "3.26.3" - resolved "https://registry.npmjs.org/use-intl/-/use-intl-3.26.3.tgz" - integrity sha512-yY0a2YseO17cKwHA9M6fcpiEJ2Uo81DEU0NOUxNTp6lJVNOuI6nULANPVVht6IFdrYFtlsMmMoc97+Eq9/Tnng== +use-intl@^3.26.4: + version "3.26.4" + resolved "https://registry.npmjs.org/use-intl/-/use-intl-3.26.4.tgz" + integrity sha512-5DhN+YfsocNO7LiLpns7/pxRcMHA4DgBZQo5Z6uw3LvX9XIZyPAdRBdFPE2eBKTAwhY77k5eBhxqDtx8wzUaBg== dependencies: - "@formatjs/fast-memoize" "^2.2.0" intl-messageformat "^10.5.14" + "@formatjs/fast-memoize" "^2.2.0" use-isomorphic-layout-effect@^1.1.1: version "1.2.0" @@ -12684,7 +12662,7 @@ use-sidecar@^1.1.2, use-sidecar@^1.1.3: detect-node-es "^1.1.0" tslib "^2.0.0" -use-sync-external-store@>=1.2.0, use-sync-external-store@^1, use-sync-external-store@^1.2.2, use-sync-external-store@^1.4.0: +use-sync-external-store@^1, use-sync-external-store@^1.2.2, use-sync-external-store@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz" integrity sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw== @@ -12743,9 +12721,9 @@ verror@1.10.0: resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== dependencies: + extsprintf "^1.2.0" assert-plus "^1.0.0" core-util-is "1.0.2" - extsprintf "^1.2.0" vfile@^6.0.0: version "6.0.3" @@ -12768,31 +12746,31 @@ victory-vendor@^36.6.8: resolved "https://registry.npmjs.org/victory-vendor/-/victory-vendor-36.9.2.tgz" integrity sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ== dependencies: - "@types/d3-array" "^3.0.3" - "@types/d3-ease" "^3.0.0" - "@types/d3-interpolate" "^3.0.1" - "@types/d3-scale" "^4.0.2" - "@types/d3-shape" "^3.1.0" - "@types/d3-time" "^3.0.0" - "@types/d3-timer" "^3.0.0" - d3-array "^3.1.6" d3-ease "^3.0.1" - d3-interpolate "^3.0.1" + d3-time "^3.0.0" + d3-array "^3.1.6" d3-scale "^4.0.2" d3-shape "^3.1.0" - d3-time "^3.0.0" d3-timer "^3.0.1" + "@types/d3-ease" "^3.0.0" + "@types/d3-time" "^3.0.0" + d3-interpolate "^3.0.1" + "@types/d3-array" "^3.0.3" + "@types/d3-scale" "^4.0.2" + "@types/d3-shape" "^3.1.0" + "@types/d3-timer" "^3.0.0" + "@types/d3-interpolate" "^3.0.1" -vue@3.5.13, "vue@>=3.2.26 < 4", vue@^3.3.4: +vue@3.5.13, "vue@>=3.2.26 < 4": version "3.5.13" resolved "https://registry.npmjs.org/vue/-/vue-3.5.13.tgz" integrity sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ== dependencies: + "@vue/shared" "3.5.13" + "@vue/runtime-dom" "3.5.13" "@vue/compiler-dom" "3.5.13" "@vue/compiler-sfc" "3.5.13" - "@vue/runtime-dom" "3.5.13" "@vue/server-renderer" "3.5.13" - "@vue/shared" "3.5.13" w3c-keyname@^2.2.0: version "2.2.8" @@ -13032,8 +13010,8 @@ write-file-atomic@^3.0.0: integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== dependencies: imurmurhash "^0.1.4" - is-typedarray "^1.0.0" signal-exit "^3.0.2" + is-typedarray "^1.0.0" typedarray-to-buffer "^3.1.5" ws@^7.5.3: @@ -13123,13 +13101,13 @@ yargs@^17.7.2: resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== dependencies: + y18n "^5.0.5" cliui "^8.0.1" escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" string-width "^4.2.3" - y18n "^5.0.5" yargs-parser "^21.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" yargs-parser@^21.1.1: version "21.1.1" @@ -13146,8 +13124,8 @@ yauzl@^2.10.0: resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz" integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== dependencies: - buffer-crc32 "~0.2.3" fd-slicer "~1.1.0" + buffer-crc32 "~0.2.3" zimmerframe@^1.1.2: version "1.1.2"