From f98b73f073944c446d679335e01c7fc1e8d6373f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89mile=20R=C3=A9?= Date: Thu, 18 Jun 2026 19:10:00 +0200 Subject: [PATCH] Upgrade frontend toolchain to latest majors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bump React 19.2, Relay 21, React Router 8, Vite 8 with @vitejs/plugin-react 6, ESLint 10, GraphQL 17, TypeScript 6, @types/node 24, and Tailwind 4.3 across the workspaces. vite-plugin-react 6 (Vite 8) no longer runs Babel, so the Relay tagged-template transform now runs through @rolldown/plugin-babel in the console and trust Vite configs. Relay 21 ships first-party types and enables the ambiguous-alias check by default; disable that flag to preserve existing queries and add explicit usePreloadedQuery type arguments where the new types no longer infer the operation. TypeScript 6 deprecations and stricter inference are addressed in tsconfigs and call sites. Keep n8n-node on ESLint 9 and eslint-plugin-react on 7.37.5, the newest releases compatible with their toolchains. Signed-off-by: Émile Ré --- apps/console/package.json | 37 +- apps/console/src/components/SortableTable.tsx | 7 +- .../src/components/table/EditableTable.tsx | 2 +- .../components/table/SortableDataTable.tsx | 9 +- .../src/hooks/useMutationWithIncrement.ts | 8 +- .../src/hooks/useMutationWithToasts.ts | 6 +- .../apiKeys/_components/PersonalAPIKeyRow.tsx | 4 +- .../src/pages/iam/auth/ConsentPage.tsx | 2 +- .../pages/iam/auth/DeviceActivationPage.tsx | 2 +- .../src/pages/iam/auth/ResetPasswordPage.tsx | 4 +- .../iam/auth/sign-in/PasswordSignInPage.tsx | 4 +- .../settings/AuditLogSettingsPage.tsx | 2 +- .../settings/SAMLSettingsPage.tsx | 2 +- .../settings/SCIMSettingsPage.tsx | 2 +- .../CreateCsvAccessReviewSourcePage.tsx | 8 +- .../_components/AccessReviewSourceRow.tsx | 10 +- .../_components/EntryDecisionActions.tsx | 6 +- .../_components/EntryFlagSelect.tsx | 6 +- .../campaigns/AccessReviewCampaignsTab.tsx | 8 +- .../campaigns/CampaignDetailPage.tsx | 26 +- .../dialogs/AddAccessReviewSourceDialog.tsx | 6 +- .../dialogs/AddCampaignSourceDialog.tsx | 6 +- .../CreateAccessReviewCampaignDialog.tsx | 6 +- .../sources/AccessReviewSourcesTab.tsx | 8 +- .../assets/dialogs/PublishAssetListDialog.tsx | 4 +- .../pages/organizations/audits/AuditsPage.tsx | 2 +- .../context/ContextPageLoader.tsx | 2 +- .../cookie-banners/NewCookieBannerPage.tsx | 4 +- .../CookieBannerConfigLayout.tsx | 10 +- .../CookieBannerConsentRecordPage.tsx | 2 +- .../CookieBannerConsentRecordsPage.tsx | 2 +- .../display/CookieBannerDisplayPage.tsx | 2 +- .../display/_components/CategoryDialog.tsx | 4 +- .../display/_components/CategorySection.tsx | 18 +- .../resources/CookieBannerResourcesPage.tsx | 2 +- .../_components/TrackerResourceRow.tsx | 10 +- .../settings/CookieBannerSettingsPage.tsx | 2 +- .../_components/BannerSettingsForm.tsx | 4 +- .../trackers/CookieBannerTrackersPage.tsx | 2 +- .../trackers/TrackerPatternDetailPage.tsx | 2 +- .../_components/MoveToCategoryDropdown.tsx | 2 +- .../_components/MoveToCategorySelect.tsx | 2 +- .../_components/TrackerPatternRow.tsx | 12 +- .../CookieBannerTranslationsPage.tsx | 2 +- .../_components/TranslationEditor.tsx | 4 +- .../overview/CookieBannersOverviewPage.tsx | 6 +- .../data/dialogs/PublishDataListDialog.tsx | 4 +- .../DocumentVersionsDropdownMenu.tsx | 4 +- .../documents/approve/DocumentApprovePage.tsx | 6 +- .../description/DocumentDescriptionPage.tsx | 5 +- .../EmployeeDocumentSignaturePage.tsx | 8 +- .../findings/FindingDetailsPage.tsx | 7 +- .../organizations/findings/FindingsPage.tsx | 7 +- .../findings/dialogs/CreateFindingDialog.tsx | 3 +- .../dialogs/PublishFindingListDialog.tsx | 4 +- .../frameworks/FrameworkControlPage.tsx | 7 +- .../frameworks/FrameworksPage.tsx | 2 +- .../measures/MeasureDetailPage.tsx | 2 +- .../organizations/measures/MeasuresPage.tsx | 7 +- .../obligations/ObligationsPage.tsx | 2 +- .../dialogs/PublishObligationListDialog.tsx | 4 +- .../ProcessingActivitiesPage.tsx | 2 +- .../ProcessingActivityDetailsPage.tsx | 2 +- ...taProtectionImpactAssessmentListDialog.tsx | 4 +- .../PublishProcessingActivityListDialog.tsx | 4 +- ...lishTransferImpactAssessmentListDialog.tsx | 4 +- .../RiskAssessmentDetailPage.tsx | 6 +- .../risk-assessments/RiskAssessmentsPage.tsx | 2 +- .../organizations/risks/RiskDetailLayout.tsx | 2 +- .../pages/organizations/risks/RisksPage.tsx | 2 +- .../risks/_components/FormRiskDialog.tsx | 6 +- .../risks/_components/LinkScenarioDialog.tsx | 2 +- .../_components/PublishRiskListDialog.tsx | 4 +- .../risks/_components/RiskRow.tsx | 4 +- .../risks/controls/RiskControlsPage.tsx | 2 +- .../risks/documents/RiskDocumentsPage.tsx | 2 +- .../risks/measures/RiskMeasuresPage.tsx | 2 +- .../risks/obligations/RiskObligationsPage.tsx | 2 +- .../risks/overview/RiskOverviewPage.tsx | 2 +- .../risks/scenarios/RiskScenariosPage.tsx | 2 +- .../StatementOfApplicabilityDetailPage.tsx | 6 +- .../StatementsOfApplicabilityPage.tsx | 2 +- .../AddApplicabilityStatementDialog.tsx | 2 +- .../CreateStatementOfApplicabilityDialog.tsx | 4 +- .../dialogs/LinkControlDialog.tsx | 2 +- .../PublishStatementOfApplicabilityDialog.tsx | 4 +- .../pages/organizations/tasks/TasksPage.tsx | 5 +- .../third-parties/ThirdPartiesPage.tsx | 2 +- .../third-parties/ThirdPartyDetailPage.tsx | 2 +- .../dialogs/CommonThirdPartyCombobox.tsx | 2 +- .../dialogs/PublishThirdPartyListDialog.tsx | 4 +- .../third-parties/dialogs/VettingDialog.tsx | 6 +- .../ThirdPartyThirdPartiesPage.tsx | 2 +- apps/console/tsconfig.app.json | 3 +- apps/console/vite.config.ts | 51 +- apps/trust/package.json | 37 +- apps/trust/src/layouts/MainLayout.tsx | 2 +- apps/trust/src/pages/DocumentPage.tsx | 2 +- apps/trust/src/pages/NDAPage.tsx | 2 +- apps/trust/src/pages/SubprocessorsPage.tsx | 2 +- apps/trust/src/pages/auth/ConnectPage.tsx | 2 +- apps/trust/tsconfig.app.json | 3 +- apps/trust/vite.config.ts | 9 +- examples/cookie-banner-react/package.json | 14 +- package-lock.json | 3261 ++++++++++------- package.json | 4 +- packages/cookie-banner/package.json | 2 +- .../src/detectors/cookie-detector.ts | 1 + packages/coredata/package.json | 2 +- packages/emails/package.json | 10 +- packages/eslint-config/package.json | 17 +- packages/eslint-config/src/reactConfigs.ts | 5 +- packages/helpers/package.json | 2 +- packages/hooks/package.json | 2 +- packages/i18n/package.json | 2 +- packages/n8n-node/package.json | 2 +- packages/n8n-node/tsconfig.json | 1 + packages/prosemirror/package.json | 2 +- packages/relay/package.json | 12 +- packages/routes/package.json | 10 +- packages/routes/src/relay.tsx | 13 +- packages/ui/package.json | 28 +- packages/ui/src/Atoms/Table/Table.tsx | 2 +- packages/ui/src/Foundation.stories.tsx | 3 +- packages/ui/src/Layouts/Layout.tsx | 4 +- .../ui/src/Molecules/Dialog/ConfirmDialog.tsx | 10 +- .../MeasureImplementation.stories.tsx | 10 +- .../src/RichEditor/SlashCommandExtension.ts | 2 +- .../ui/src/RichEditor/_lib/cellDomElement.ts | 2 +- relay.config.json | 3 + 130 files changed, 2228 insertions(+), 1763 deletions(-) diff --git a/apps/console/package.json b/apps/console/package.json index 9584acecd..6d274d38a 100644 --- a/apps/console/package.json +++ b/apps/console/package.json @@ -23,34 +23,35 @@ "@probo/ui": "1.0.0", "@tanstack/react-query": "^5.76.1", "clsx": "^2.1.1", - "react": "^19.1.0", - "react-dom": "^19.1.0", + "react": "^19.2.7", + "react-dom": "^19.2.7", "react-dropzone": "^14.3.8", "react-error-boundary": "^6.0.0", "react-hook-form": "^7.56.4", "react-pdf": "^10.3.0", - "react-relay": "^20.1.1", - "react-router": "^7.17.0", - "relay-runtime": "^20.1.1", + "react-relay": "^21.0.1", + "react-router": "^8.0.0", + "relay-runtime": "^21.0.1", "use-debounce": "^10.0.5", "usehooks-ts": "^3.1.1", "zod": "^3.25.17" }, "devDependencies": { + "@babel/core": "^7.29.0", "@probo/eslint-config": "1.0.0", "@probo/eslint-plugin-relay-types": "^1.0.0", - "@tailwindcss/vite": "^4.1.7", - "@types/node": "^22.15.21", - "@types/react": "^19.1.2", - "@types/react-dom": "^19.1.2", - "@types/react-relay": "^18.2.1", - "@types/relay-runtime": "^20.1.1", - "@vitejs/plugin-react": "^5.1.4", - "babel-plugin-relay": "^20.1.1", - "eslint": "^9.39.2", - "graphql": "^16.11.0", - "tailwindcss": "^4.1.7", - "typescript": "~5.8.3", - "vite": "^7.3.2" + "@rolldown/plugin-babel": "^0.2.3", + "@tailwindcss/vite": "^4.3.1", + "@types/babel__core": "^7.20.5", + "@types/node": "^24", + "@types/react": "^19.2.17", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^6.0.2", + "babel-plugin-relay": "^21.0.1", + "eslint": "^10.5.0", + "graphql": "^17.0.1", + "tailwindcss": "^4.3.1", + "typescript": "~6.0.3", + "vite": "^8.0.16" } } diff --git a/apps/console/src/components/SortableTable.tsx b/apps/console/src/components/SortableTable.tsx index f20ed9a66..19cc36237 100644 --- a/apps/console/src/components/SortableTable.tsx +++ b/apps/console/src/components/SortableTable.tsx @@ -39,12 +39,15 @@ export type Order = { const defaultPageSize = 50; -export const SortableContext = createContext({ +export const SortableContext = createContext<{ + order: Order; + changeOrder: (order: Order) => void; +}>({ order: { direction: "DESC", field: "CREATED_AT", }, - changeOrder: (() => {}) as (order: Order) => void, + changeOrder: () => {}, }); const defaultOrder = { diff --git a/apps/console/src/components/table/EditableTable.tsx b/apps/console/src/components/table/EditableTable.tsx index 8bc8ee746..e888234dd 100644 --- a/apps/console/src/components/table/EditableTable.tsx +++ b/apps/console/src/components/table/EditableTable.tsx @@ -25,7 +25,7 @@ import { } from "@probo/ui"; import { clsx } from "clsx"; import { type ReactNode } from "react"; -import type { KeyType, KeyTypeData } from "react-relay/relay-hooks/helpers"; +import type { KeyType, KeyTypeData } from "react-relay/ReactRelayTypes"; import type { usePaginationFragmentHookType } from "react-relay/relay-hooks/usePaginationFragment"; import type { GraphQLTaggedNode, OperationType } from "relay-runtime"; import { z } from "zod"; diff --git a/apps/console/src/components/table/SortableDataTable.tsx b/apps/console/src/components/table/SortableDataTable.tsx index b3cb73ba1..31441088b 100644 --- a/apps/console/src/components/table/SortableDataTable.tsx +++ b/apps/console/src/components/table/SortableDataTable.tsx @@ -39,18 +39,21 @@ type Order = { export const defaultPageSize = 50; -export const SortableContext = createContext({ +export const SortableContext = createContext<{ + order: Order; + onOrderChange: (order: Order) => void; +}>({ order: { direction: "DESC", field: "CREATED_AT", }, - onOrderChange: (() => {}) as (order: Order) => void, + onOrderChange: () => {}, }); const defaultOrder = { direction: "DESC", field: "CREATED_AT", -} as Order; +}; export function SortableDataTable({ refetch, diff --git a/apps/console/src/hooks/useMutationWithIncrement.ts b/apps/console/src/hooks/useMutationWithIncrement.ts index 8d7695b1c..84f63ceaf 100644 --- a/apps/console/src/hooks/useMutationWithIncrement.ts +++ b/apps/console/src/hooks/useMutationWithIncrement.ts @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatError, type GraphQLError } from "@probo/helpers"; +import { formatError } from "@probo/helpers"; import { useTranslate } from "@probo/i18n"; import { useToast } from "@probo/ui"; import { useCallback } from "react"; @@ -60,7 +60,7 @@ export function useMutationWithIncrement( const errorTitle = options.errorMessage ?? __("Failed to commit this operation"); toast({ title: __("Error"), - description: formatError(errorTitle, error as GraphQLError[]), + description: formatError(errorTitle, error), variant: "error", }); } else { @@ -78,7 +78,7 @@ export function useMutationWithIncrement( const errorTitle = options.errorMessage ?? __("Failed to commit this operation"); toast({ title: __("Error"), - description: formatError(errorTitle, error as GraphQLError), + description: formatError(errorTitle, error), variant: "error", }); queryOptions.onError?.(error); @@ -100,7 +100,7 @@ export function updateStoreCounter( ) { commitLocalUpdate(relayEnv, (store) => { const node = store?.get(recordId)?.getLinkedRecord(nodeName); - const previousValue = node?.getValue(fieldName); + const previousValue: unknown = node?.getValue(fieldName); if (node && typeof previousValue === "number") { node.setValue(previousValue + value, fieldName); } diff --git a/apps/console/src/hooks/useMutationWithToasts.ts b/apps/console/src/hooks/useMutationWithToasts.ts index aa9f2eb73..bd5da50ad 100644 --- a/apps/console/src/hooks/useMutationWithToasts.ts +++ b/apps/console/src/hooks/useMutationWithToasts.ts @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatError, type GraphQLError } from "@probo/helpers"; +import { formatError } from "@probo/helpers"; import { useTranslate } from "@probo/i18n"; import { useToast } from "@probo/ui"; import { useCallback } from "react"; @@ -50,7 +50,7 @@ export function useMutationWithToasts( const errorTitle = options.errorMessage ?? __("Failed to commit this operation"); toast({ title: __("Error"), - description: formatError(errorTitle, error as GraphQLError[]), + description: formatError(errorTitle, error), variant: "error", }); reject(new Error(errorTitle)); @@ -74,7 +74,7 @@ export function useMutationWithToasts( const errorTitle = options.errorMessage ?? __("Failed to commit this operation"); toast({ title: __("Error"), - description: formatError(errorTitle, error as GraphQLError), + description: formatError(errorTitle, error), variant: "error", }); reject(error); diff --git a/apps/console/src/pages/iam/apiKeys/_components/PersonalAPIKeyRow.tsx b/apps/console/src/pages/iam/apiKeys/_components/PersonalAPIKeyRow.tsx index 4384dba4a..59659687f 100644 --- a/apps/console/src/pages/iam/apiKeys/_components/PersonalAPIKeyRow.tsx +++ b/apps/console/src/pages/iam/apiKeys/_components/PersonalAPIKeyRow.tsx @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatDate, formatError, type GraphQLError } from "@probo/helpers"; +import { formatDate, formatError } from "@probo/helpers"; import { useTranslate } from "@probo/i18n"; import { Button, Spinner, Td, Tr, useConfirm, useToast } from "@probo/ui"; import { clsx } from "clsx"; @@ -81,7 +81,7 @@ export function PersonalAPIKeyRow(props: { title: __("Error"), description: formatError( __("Failed to revoke API key."), - errors as GraphQLError[], + errors, ), variant: "error", }); diff --git a/apps/console/src/pages/iam/auth/ConsentPage.tsx b/apps/console/src/pages/iam/auth/ConsentPage.tsx index 6f3b150fe..303f473f8 100644 --- a/apps/console/src/pages/iam/auth/ConsentPage.tsx +++ b/apps/console/src/pages/iam/auth/ConsentPage.tsx @@ -160,7 +160,7 @@ export default function ConsentPage(props: { const { toast } = useToast(); const [deviceResult, setDeviceResult] = useState<"authorized" | "denied" | null>(null); - const data = usePreloadedQuery(consentPageQuery, props.queryRef); + const data = usePreloadedQuery(consentPageQuery, props.queryRef); usePageTitle(__("Authorize Application")); const { node: consent } = data; diff --git a/apps/console/src/pages/iam/auth/DeviceActivationPage.tsx b/apps/console/src/pages/iam/auth/DeviceActivationPage.tsx index c5e63cf37..869e3b777 100644 --- a/apps/console/src/pages/iam/auth/DeviceActivationPage.tsx +++ b/apps/console/src/pages/iam/auth/DeviceActivationPage.tsx @@ -55,7 +55,7 @@ export default function DeviceActivationPage(props: { const navigate = useNavigate(); const [searchParams] = useSearchParams(); - usePreloadedQuery(deviceActivationPageQuery, props.queryRef); + usePreloadedQuery(deviceActivationPageQuery, props.queryRef); usePageTitle(__("Device Activation")); const preset = (searchParams.get("user_code") ?? "").replace(/-/g, ""); diff --git a/apps/console/src/pages/iam/auth/ResetPasswordPage.tsx b/apps/console/src/pages/iam/auth/ResetPasswordPage.tsx index 22289f3b5..309c1639e 100644 --- a/apps/console/src/pages/iam/auth/ResetPasswordPage.tsx +++ b/apps/console/src/pages/iam/auth/ResetPasswordPage.tsx @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatError, type GraphQLError } from "@probo/helpers"; +import { formatError } from "@probo/helpers"; import { usePageTitle } from "@probo/hooks"; import { useTranslate } from "@probo/i18n"; import { Button, Field, useToast } from "@probo/ui"; @@ -92,7 +92,7 @@ export default function ResetPasswordPage() { title: __("Reset failed"), description: formatError( __("Password reset failed"), - e as GraphQLError, + e, ), variant: "error", }); diff --git a/apps/console/src/pages/iam/auth/sign-in/PasswordSignInPage.tsx b/apps/console/src/pages/iam/auth/sign-in/PasswordSignInPage.tsx index eccd68a73..7b37519cf 100644 --- a/apps/console/src/pages/iam/auth/sign-in/PasswordSignInPage.tsx +++ b/apps/console/src/pages/iam/auth/sign-in/PasswordSignInPage.tsx @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatError, type GraphQLError } from "@probo/helpers"; +import { formatError } from "@probo/helpers"; import { useTranslate } from "@probo/i18n"; import { Button, Field, IconChevronLeft, useToast } from "@probo/ui"; import type { FormEventHandler } from "react"; @@ -71,7 +71,7 @@ export default function PasswordSignInPage() { title: __("Error"), description: formatError( __("Failed to login"), - error as GraphQLError, + error, ), variant: "error", }); diff --git a/apps/console/src/pages/iam/organizations/settings/AuditLogSettingsPage.tsx b/apps/console/src/pages/iam/organizations/settings/AuditLogSettingsPage.tsx index 9e8746971..a9b221da3 100644 --- a/apps/console/src/pages/iam/organizations/settings/AuditLogSettingsPage.tsx +++ b/apps/console/src/pages/iam/organizations/settings/AuditLogSettingsPage.tsx @@ -175,7 +175,7 @@ export function AuditLogSettingsPage(props: { }) { const { __ } = useTranslate(); - const { organization } = usePreloadedQuery( + const { organization } = usePreloadedQuery( auditLogSettingsPageQuery, props.queryRef, ); diff --git a/apps/console/src/pages/iam/organizations/settings/SAMLSettingsPage.tsx b/apps/console/src/pages/iam/organizations/settings/SAMLSettingsPage.tsx index 47db8fdd4..53ae8b6f7 100644 --- a/apps/console/src/pages/iam/organizations/settings/SAMLSettingsPage.tsx +++ b/apps/console/src/pages/iam/organizations/settings/SAMLSettingsPage.tsx @@ -60,7 +60,7 @@ export function SAMLSettingsPage(props: { const { __ } = useTranslate(); - const { organization } = usePreloadedQuery(samlSettingsPageQuery, queryRef); + const { organization } = usePreloadedQuery(samlSettingsPageQuery, queryRef); if (organization.__typename !== "Organization") { throw new Error("invalid node type"); } diff --git a/apps/console/src/pages/iam/organizations/settings/SCIMSettingsPage.tsx b/apps/console/src/pages/iam/organizations/settings/SCIMSettingsPage.tsx index 0d87a2906..c9765d1c4 100644 --- a/apps/console/src/pages/iam/organizations/settings/SCIMSettingsPage.tsx +++ b/apps/console/src/pages/iam/organizations/settings/SCIMSettingsPage.tsx @@ -72,7 +72,7 @@ export function SCIMSettingsPage(props: { const connectorId = searchParams.get("connector_id"); const mutationTriggeredRef = useRef(false); - const { organization } = usePreloadedQuery(scimSettingsPageQuery, queryRef); + const { organization } = usePreloadedQuery(scimSettingsPageQuery, queryRef); if (organization.__typename !== "Organization") { throw new Error("invalid node type"); } diff --git a/apps/console/src/pages/organizations/access-reviews/CreateCsvAccessReviewSourcePage.tsx b/apps/console/src/pages/organizations/access-reviews/CreateCsvAccessReviewSourcePage.tsx index a89836094..87b8e4c9e 100644 --- a/apps/console/src/pages/organizations/access-reviews/CreateCsvAccessReviewSourcePage.tsx +++ b/apps/console/src/pages/organizations/access-reviews/CreateCsvAccessReviewSourcePage.tsx @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatError, type GraphQLError } from "@probo/helpers"; +import { formatError } from "@probo/helpers"; import { usePageTitle } from "@probo/hooks"; import { useTranslate } from "@probo/i18n"; import { @@ -70,7 +70,7 @@ export default function CreateCsvAccessReviewSourcePage({ usePageTitle(__("Add CSV Access Source")); - const { organization } = usePreloadedQuery(createCsvAccessReviewSourcePageQuery, queryRef); + const { organization } = usePreloadedQuery(createCsvAccessReviewSourcePageQuery, queryRef); if (organization.__typename !== "Organization") { throw new Error("Organization not found"); } @@ -112,7 +112,7 @@ export default function CreateCsvAccessReviewSourcePage({ title: __("Error"), description: formatError( __("Failed to create access source"), - errors as GraphQLError[], + errors, ), variant: "error", }); @@ -130,7 +130,7 @@ export default function CreateCsvAccessReviewSourcePage({ title: __("Error"), description: formatError( __("Failed to create access source"), - error as GraphQLError, + error, ), variant: "error", }); diff --git a/apps/console/src/pages/organizations/access-reviews/_components/AccessReviewSourceRow.tsx b/apps/console/src/pages/organizations/access-reviews/_components/AccessReviewSourceRow.tsx index 654377d76..a7ae3d4f7 100644 --- a/apps/console/src/pages/organizations/access-reviews/_components/AccessReviewSourceRow.tsx +++ b/apps/console/src/pages/organizations/access-reviews/_components/AccessReviewSourceRow.tsx @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatDate, formatError, type GraphQLError, sprintf } from "@probo/helpers"; +import { formatDate, formatError, sprintf } from "@probo/helpers"; import { useTranslate } from "@probo/i18n"; import { ActionDropdown, @@ -147,7 +147,7 @@ export function AccessReviewSourceRow({ fKey, connectionId, organizationId }: Pr title: __("Error"), description: formatError( __("Failed to delete access source"), - errors as GraphQLError[], + errors, ), variant: "error", }); @@ -158,7 +158,7 @@ export function AccessReviewSourceRow({ fKey, connectionId, organizationId }: Pr title: __("Error"), description: formatError( __("Failed to delete access source"), - error as GraphQLError, + error, ), variant: "error", }); @@ -188,7 +188,7 @@ export function AccessReviewSourceRow({ fKey, connectionId, organizationId }: Pr title: __("Error"), description: formatError( __("Failed to configure source"), - errors as GraphQLError[], + errors, ), variant: "error", }); @@ -205,7 +205,7 @@ export function AccessReviewSourceRow({ fKey, connectionId, organizationId }: Pr title: __("Error"), description: formatError( __("Failed to configure source"), - error as GraphQLError, + error, ), variant: "error", }); diff --git a/apps/console/src/pages/organizations/access-reviews/_components/EntryDecisionActions.tsx b/apps/console/src/pages/organizations/access-reviews/_components/EntryDecisionActions.tsx index 5b8e13258..546bb63e6 100644 --- a/apps/console/src/pages/organizations/access-reviews/_components/EntryDecisionActions.tsx +++ b/apps/console/src/pages/organizations/access-reviews/_components/EntryDecisionActions.tsx @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatError, type GraphQLError } from "@probo/helpers"; +import { formatError } from "@probo/helpers"; import { useTranslate } from "@probo/i18n"; import { Badge, @@ -79,7 +79,7 @@ export function EntryDecisionActions({ entryId, decision }: Props) { title: __("Error"), description: formatError( __("Failed to record decision"), - errors as GraphQLError[], + errors, ), variant: "error", }); @@ -95,7 +95,7 @@ export function EntryDecisionActions({ entryId, decision }: Props) { title: __("Error"), description: formatError( __("Failed to record decision"), - error as GraphQLError, + error, ), variant: "error", }); diff --git a/apps/console/src/pages/organizations/access-reviews/_components/EntryFlagSelect.tsx b/apps/console/src/pages/organizations/access-reviews/_components/EntryFlagSelect.tsx index 0e0ed4e06..7f85548f0 100644 --- a/apps/console/src/pages/organizations/access-reviews/_components/EntryFlagSelect.tsx +++ b/apps/console/src/pages/organizations/access-reviews/_components/EntryFlagSelect.tsx @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatError, type GraphQLError } from "@probo/helpers"; +import { formatError } from "@probo/helpers"; import { useTranslate } from "@probo/i18n"; import { Badge, Checkbox, useToast } from "@probo/ui"; import * as Popover from "@radix-ui/react-popover"; @@ -83,7 +83,7 @@ export function EntryFlagSelect({ entryId, currentFlags }: Props) { title: __("Error"), description: formatError( __("Failed to flag entry"), - errors as GraphQLError[], + errors, ), variant: "error", }); @@ -94,7 +94,7 @@ export function EntryFlagSelect({ entryId, currentFlags }: Props) { title: __("Error"), description: formatError( __("Failed to flag entry"), - error as GraphQLError, + error, ), variant: "error", }); diff --git a/apps/console/src/pages/organizations/access-reviews/campaigns/AccessReviewCampaignsTab.tsx b/apps/console/src/pages/organizations/access-reviews/campaigns/AccessReviewCampaignsTab.tsx index 18be27c6c..42d10415c 100644 --- a/apps/console/src/pages/organizations/access-reviews/campaigns/AccessReviewCampaignsTab.tsx +++ b/apps/console/src/pages/organizations/access-reviews/campaigns/AccessReviewCampaignsTab.tsx @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatError, type GraphQLError, sprintf } from "@probo/helpers"; +import { formatError, sprintf } from "@probo/helpers"; import { useTranslate } from "@probo/i18n"; import { ActionDropdown, @@ -106,7 +106,7 @@ export default function AccessReviewCampaignsTab({ queryRef }: Props) { const confirm = useConfirm(); const { toast } = useToast(); - const { organization } = usePreloadedQuery(accessReviewCampaignsTabQuery, queryRef); + const { organization } = usePreloadedQuery(accessReviewCampaignsTabQuery, queryRef); if (organization.__typename !== "Organization") { throw new Error("Organization not found"); } @@ -143,7 +143,7 @@ export default function AccessReviewCampaignsTab({ queryRef }: Props) { title: __("Error"), description: formatError( __("Failed to delete campaign"), - errors as GraphQLError[], + errors, ), variant: "error", }); @@ -160,7 +160,7 @@ export default function AccessReviewCampaignsTab({ queryRef }: Props) { title: __("Error"), description: formatError( __("Failed to delete campaign"), - error as GraphQLError, + error, ), variant: "error", }); diff --git a/apps/console/src/pages/organizations/access-reviews/campaigns/CampaignDetailPage.tsx b/apps/console/src/pages/organizations/access-reviews/campaigns/CampaignDetailPage.tsx index c9f68de90..0b0573529 100644 --- a/apps/console/src/pages/organizations/access-reviews/campaigns/CampaignDetailPage.tsx +++ b/apps/console/src/pages/organizations/access-reviews/campaigns/CampaignDetailPage.tsx @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatDate, formatError, type GraphQLError, sprintf } from "@probo/helpers"; +import { formatDate, formatError, sprintf } from "@probo/helpers"; import { useList } from "@probo/hooks"; import { useTranslate } from "@probo/i18n"; import { @@ -199,7 +199,7 @@ export default function CampaignDetailPage({ queryRef }: Props) { const organizationId = useOrganizationId(); const navigate = useNavigate(); const environment = useRelayEnvironment(); - const data = usePreloadedQuery(campaignDetailPageQuery, queryRef); + const data = usePreloadedQuery(campaignDetailPageQuery, queryRef); if (data.node.__typename !== "AccessReviewCampaign") { throw new Error("Campaign not found"); @@ -269,7 +269,7 @@ export default function CampaignDetailPage({ queryRef }: Props) { title: __("Error"), description: formatError( __("Failed to start campaign"), - errors as GraphQLError[], + errors, ), variant: "error", }); @@ -286,7 +286,7 @@ export default function CampaignDetailPage({ queryRef }: Props) { title: __("Error"), description: formatError( __("Failed to start campaign"), - error as GraphQLError, + error, ), variant: "error", }); @@ -315,7 +315,7 @@ export default function CampaignDetailPage({ queryRef }: Props) { title: __("Error"), description: formatError( __("Failed to delete campaign"), - errors as GraphQLError[], + errors, ), variant: "error", }); @@ -335,7 +335,7 @@ export default function CampaignDetailPage({ queryRef }: Props) { title: __("Error"), description: formatError( __("Failed to delete campaign"), - error as GraphQLError, + error, ), variant: "error", }); @@ -368,7 +368,7 @@ export default function CampaignDetailPage({ queryRef }: Props) { title: __("Error"), description: formatError( __("Failed to complete campaign"), - errors as GraphQLError[], + errors, ), variant: "error", }); @@ -387,7 +387,7 @@ export default function CampaignDetailPage({ queryRef }: Props) { title: __("Error"), description: formatError( __("Failed to complete campaign"), - error as GraphQLError, + error, ), variant: "error", }); @@ -524,7 +524,7 @@ function CampaignSourceCard({ source, isPendingActions }: { source: CampaignSour input: { decisions: selection.map(id => ({ accessReviewEntryId: id, - decision: "APPROVED" as AccessReviewEntryDecision, + decision: "APPROVED", })), }, }, @@ -534,7 +534,7 @@ function CampaignSourceCard({ source, isPendingActions }: { source: CampaignSour title: __("Error"), description: formatError( __("Failed to record decisions"), - errors as GraphQLError[], + errors, ), variant: "error", }); @@ -552,7 +552,7 @@ function CampaignSourceCard({ source, isPendingActions }: { source: CampaignSour title: __("Error"), description: formatError( __("Failed to record decisions"), - error as GraphQLError, + error, ), variant: "error", }); @@ -877,7 +877,7 @@ function CampaignSourceCard({ source, isPendingActions }: { source: CampaignSour title: __("Error"), description: formatError( __("Failed to record decisions"), - errors as GraphQLError[], + errors, ), variant: "error", }); @@ -898,7 +898,7 @@ function CampaignSourceCard({ source, isPendingActions }: { source: CampaignSour title: __("Error"), description: formatError( __("Failed to record decisions"), - error as GraphQLError, + error, ), variant: "error", }); diff --git a/apps/console/src/pages/organizations/access-reviews/dialogs/AddAccessReviewSourceDialog.tsx b/apps/console/src/pages/organizations/access-reviews/dialogs/AddAccessReviewSourceDialog.tsx index 18bf9a620..5ce7f3238 100644 --- a/apps/console/src/pages/organizations/access-reviews/dialogs/AddAccessReviewSourceDialog.tsx +++ b/apps/console/src/pages/organizations/access-reviews/dialogs/AddAccessReviewSourceDialog.tsx @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatError, type GraphQLError, sprintf } from "@probo/helpers"; +import { formatError, sprintf } from "@probo/helpers"; import { useTranslate } from "@probo/i18n"; import { ActionDropdown, @@ -337,7 +337,7 @@ export function AddAccessReviewSourceDialog({ title: __("Error"), description: formatError( __("Failed to create access source"), - errors as GraphQLError[], + errors, ), variant: "error", }); @@ -356,7 +356,7 @@ export function AddAccessReviewSourceDialog({ title: __("Error"), description: formatError( __("Failed to create access source"), - error as GraphQLError, + error, ), variant: "error", }); diff --git a/apps/console/src/pages/organizations/access-reviews/dialogs/AddCampaignSourceDialog.tsx b/apps/console/src/pages/organizations/access-reviews/dialogs/AddCampaignSourceDialog.tsx index 46d6e5ee0..523df02b5 100644 --- a/apps/console/src/pages/organizations/access-reviews/dialogs/AddCampaignSourceDialog.tsx +++ b/apps/console/src/pages/organizations/access-reviews/dialogs/AddCampaignSourceDialog.tsx @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatError, type GraphQLError } from "@probo/helpers"; +import { formatError } from "@probo/helpers"; import { useTranslate } from "@probo/i18n"; import { Breadcrumb, @@ -128,7 +128,7 @@ export function AddCampaignSourceDialog({ title: __("Error"), description: formatError( __("Failed to add source"), - errors as GraphQLError[], + errors, ), variant: "error", }); @@ -147,7 +147,7 @@ export function AddCampaignSourceDialog({ title: __("Error"), description: formatError( __("Failed to add source"), - error as GraphQLError, + error, ), variant: "error", }); diff --git a/apps/console/src/pages/organizations/access-reviews/dialogs/CreateAccessReviewCampaignDialog.tsx b/apps/console/src/pages/organizations/access-reviews/dialogs/CreateAccessReviewCampaignDialog.tsx index 62973ed34..c672ae6a6 100644 --- a/apps/console/src/pages/organizations/access-reviews/dialogs/CreateAccessReviewCampaignDialog.tsx +++ b/apps/console/src/pages/organizations/access-reviews/dialogs/CreateAccessReviewCampaignDialog.tsx @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatError, type GraphQLError } from "@probo/helpers"; +import { formatError } from "@probo/helpers"; import { useTranslate } from "@probo/i18n"; import { Breadcrumb, @@ -129,7 +129,7 @@ export function CreateAccessReviewCampaignDialog({ title: __("Error"), description: formatError( __("Failed to create campaign"), - errors as GraphQLError[], + errors, ), variant: "error", }); @@ -149,7 +149,7 @@ export function CreateAccessReviewCampaignDialog({ title: __("Error"), description: formatError( __("Failed to create campaign"), - error as GraphQLError, + error, ), variant: "error", }); diff --git a/apps/console/src/pages/organizations/access-reviews/sources/AccessReviewSourcesTab.tsx b/apps/console/src/pages/organizations/access-reviews/sources/AccessReviewSourcesTab.tsx index de60b7748..8113f2eef 100644 --- a/apps/console/src/pages/organizations/access-reviews/sources/AccessReviewSourcesTab.tsx +++ b/apps/console/src/pages/organizations/access-reviews/sources/AccessReviewSourcesTab.tsx @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatError, type GraphQLError } from "@probo/helpers"; +import { formatError } from "@probo/helpers"; import { useTranslate } from "@probo/i18n"; import { Button, @@ -102,7 +102,7 @@ export default function AccessReviewSourcesTab({ queryRef }: Props) { const [searchParams, setSearchParams] = useSearchParams(); const processedConnectorIdRef = useRef(null); - const { organization, accessReviewDrivers } = usePreloadedQuery(accessReviewSourcesTabQuery, queryRef); + const { organization, accessReviewDrivers } = usePreloadedQuery(accessReviewSourcesTabQuery, queryRef); if (organization.__typename !== "Organization") { throw new Error("Organization not found"); } @@ -186,7 +186,7 @@ export default function AccessReviewSourcesTab({ queryRef }: Props) { title: __("Error"), description: formatError( __("Failed to create access source"), - errors as GraphQLError[], + errors, ), variant: "error", }); @@ -214,7 +214,7 @@ export default function AccessReviewSourcesTab({ queryRef }: Props) { title: __("Error"), description: formatError( __("Failed to create access source"), - error as GraphQLError, + error, ), variant: "error", }); diff --git a/apps/console/src/pages/organizations/assets/dialogs/PublishAssetListDialog.tsx b/apps/console/src/pages/organizations/assets/dialogs/PublishAssetListDialog.tsx index d7ae723df..70c94771c 100644 --- a/apps/console/src/pages/organizations/assets/dialogs/PublishAssetListDialog.tsx +++ b/apps/console/src/pages/organizations/assets/dialogs/PublishAssetListDialog.tsx @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatError, type GraphQLError } from "@probo/helpers"; +import { formatError } from "@probo/helpers"; import { useTranslate } from "@probo/i18n"; import { Button, @@ -117,7 +117,7 @@ export function PublishAssetListDialog({ title: __("Error"), description: formatError( __("Failed to publish asset list"), - error as GraphQLError, + error, ), variant: "error", }); diff --git a/apps/console/src/pages/organizations/audits/AuditsPage.tsx b/apps/console/src/pages/organizations/audits/AuditsPage.tsx index 44d3548cb..31bf03673 100644 --- a/apps/console/src/pages/organizations/audits/AuditsPage.tsx +++ b/apps/console/src/pages/organizations/audits/AuditsPage.tsx @@ -109,7 +109,7 @@ export default function AuditsPage(props: Props) { const { toast } = useToast(); const organizationId = useOrganizationId(); - const data = usePreloadedQuery(auditsQuery, props.queryRef); + const data = usePreloadedQuery(auditsQuery, props.queryRef); // eslint-disable-next-line relay/generated-typescript-types const pagination = usePaginationFragment( paginatedAuditsFragment, diff --git a/apps/console/src/pages/organizations/context/ContextPageLoader.tsx b/apps/console/src/pages/organizations/context/ContextPageLoader.tsx index bab542198..28c7b06bf 100644 --- a/apps/console/src/pages/organizations/context/ContextPageLoader.tsx +++ b/apps/console/src/pages/organizations/context/ContextPageLoader.tsx @@ -47,7 +47,7 @@ function ContextPageQueryLoader() { } function ContextPageInner({ queryRef }: { queryRef: PreloadedQuery }) { - const data = usePreloadedQuery(contextPageQuery, queryRef); + const data = usePreloadedQuery(contextPageQuery, queryRef); return ; } diff --git a/apps/console/src/pages/organizations/cookie-banners/NewCookieBannerPage.tsx b/apps/console/src/pages/organizations/cookie-banners/NewCookieBannerPage.tsx index 23bc1a3b3..779d8cea5 100644 --- a/apps/console/src/pages/organizations/cookie-banners/NewCookieBannerPage.tsx +++ b/apps/console/src/pages/organizations/cookie-banners/NewCookieBannerPage.tsx @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatError, type GraphQLError } from "@probo/helpers"; +import { formatError } from "@probo/helpers"; import { usePageTitle } from "@probo/hooks"; import { useTranslate } from "@probo/i18n"; import { @@ -87,7 +87,7 @@ export default function NewCookieBannerPage() { onError(error) { toast({ title: __("Error"), - description: formatError(__("Failed to create cookie banner"), error as GraphQLError), + description: formatError(__("Failed to create cookie banner"), error), variant: "error", }); }, diff --git a/apps/console/src/pages/organizations/cookie-banners/configuration/CookieBannerConfigLayout.tsx b/apps/console/src/pages/organizations/cookie-banners/configuration/CookieBannerConfigLayout.tsx index c0c02005c..8e7b96395 100644 --- a/apps/console/src/pages/organizations/cookie-banners/configuration/CookieBannerConfigLayout.tsx +++ b/apps/console/src/pages/organizations/cookie-banners/configuration/CookieBannerConfigLayout.tsx @@ -13,7 +13,7 @@ // PERFORMANCE OF THIS SOFTWARE. import { ClipboardTextIcon, CodeIcon, MagnifyingGlassIcon } from "@phosphor-icons/react"; -import { formatError, type GraphQLError } from "@probo/helpers"; +import { formatError } from "@probo/helpers"; import { useTranslate } from "@probo/i18n"; import { Badge, @@ -112,7 +112,7 @@ export default function CookieBannerConfigLayout({ queryRef }: CookieBannerConfi const organizationId = useOrganizationId(); const { cookieBannerId } = useParams<{ cookieBannerId: string }>(); - const data = usePreloadedQuery(cookieBannerConfigLayoutQuery, queryRef); + const data = usePreloadedQuery(cookieBannerConfigLayoutQuery, queryRef); if (data.node.__typename !== "CookieBanner") { throw new Error("invalid type for node"); } @@ -133,7 +133,7 @@ export default function CookieBannerConfigLayout({ queryRef }: CookieBannerConfi toast({ title: __("Success"), description: __("Banner deactivated"), variant: "success" }); }, onError(error) { - toast({ title: __("Error"), description: formatError(__("Failed to deactivate"), error as GraphQLError), variant: "error" }); + toast({ title: __("Error"), description: formatError(__("Failed to deactivate"), error), variant: "error" }); }, }); } else { @@ -143,7 +143,7 @@ export default function CookieBannerConfigLayout({ queryRef }: CookieBannerConfi toast({ title: __("Success"), description: __("Banner activated"), variant: "success" }); }, onError(error) { - toast({ title: __("Error"), description: formatError(__("Failed to activate"), error as GraphQLError), variant: "error" }); + toast({ title: __("Error"), description: formatError(__("Failed to activate"), error), variant: "error" }); }, }); } @@ -156,7 +156,7 @@ export default function CookieBannerConfigLayout({ queryRef }: CookieBannerConfi toast({ title: __("Success"), description: __("Version published"), variant: "success" }); }, onError(error) { - toast({ title: __("Error"), description: formatError(__("Failed to publish"), error as GraphQLError), variant: "error" }); + toast({ title: __("Error"), description: formatError(__("Failed to publish"), error), variant: "error" }); }, }); }; diff --git a/apps/console/src/pages/organizations/cookie-banners/configuration/consent-records/CookieBannerConsentRecordPage.tsx b/apps/console/src/pages/organizations/cookie-banners/configuration/consent-records/CookieBannerConsentRecordPage.tsx index c0e6036b0..9fad79f71 100644 --- a/apps/console/src/pages/organizations/cookie-banners/configuration/consent-records/CookieBannerConsentRecordPage.tsx +++ b/apps/console/src/pages/organizations/cookie-banners/configuration/consent-records/CookieBannerConsentRecordPage.tsx @@ -77,7 +77,7 @@ export default function CookieBannerConsentRecordPage({ }: CookieBannerConsentRecordPageProps) { const { __ } = useTranslate(); const organizationId = useOrganizationId(); - const data = usePreloadedQuery(cookieBannerConsentRecordPageQuery, queryRef); + const data = usePreloadedQuery(cookieBannerConsentRecordPageQuery, queryRef); if (data.node.__typename !== "CookieConsentRecord") { throw new Error("invalid type for node"); diff --git a/apps/console/src/pages/organizations/cookie-banners/configuration/consent-records/CookieBannerConsentRecordsPage.tsx b/apps/console/src/pages/organizations/cookie-banners/configuration/consent-records/CookieBannerConsentRecordsPage.tsx index 2f16da78d..df88cb9ff 100644 --- a/apps/console/src/pages/organizations/cookie-banners/configuration/consent-records/CookieBannerConsentRecordsPage.tsx +++ b/apps/console/src/pages/organizations/cookie-banners/configuration/consent-records/CookieBannerConsentRecordsPage.tsx @@ -100,7 +100,7 @@ export default function CookieBannerConsentRecordsPage({ queryRef, }: CookieBannerConsentRecordsPageProps) { const { __ } = useTranslate(); - const data = usePreloadedQuery(cookieBannerConsentRecordsPageQuery, queryRef); + const data = usePreloadedQuery(cookieBannerConsentRecordsPageQuery, queryRef); if (data.node.__typename !== "CookieBanner") { throw new Error("invalid type for node"); diff --git a/apps/console/src/pages/organizations/cookie-banners/configuration/display/CookieBannerDisplayPage.tsx b/apps/console/src/pages/organizations/cookie-banners/configuration/display/CookieBannerDisplayPage.tsx index 3caf07529..71739daff 100644 --- a/apps/console/src/pages/organizations/cookie-banners/configuration/display/CookieBannerDisplayPage.tsx +++ b/apps/console/src/pages/organizations/cookie-banners/configuration/display/CookieBannerDisplayPage.tsx @@ -56,7 +56,7 @@ export default function CookieBannerDisplayPage({ queryRef, }: CookieBannerDisplayPageProps) { const { __ } = useTranslate(); - const data = usePreloadedQuery(cookieBannerDisplayPageQuery, queryRef); + const data = usePreloadedQuery(cookieBannerDisplayPageQuery, queryRef); if (data.node.__typename !== "CookieBanner") { throw new Error("invalid type for node"); diff --git a/apps/console/src/pages/organizations/cookie-banners/configuration/display/_components/CategoryDialog.tsx b/apps/console/src/pages/organizations/cookie-banners/configuration/display/_components/CategoryDialog.tsx index 23a270c72..6fe04b4b2 100644 --- a/apps/console/src/pages/organizations/cookie-banners/configuration/display/_components/CategoryDialog.tsx +++ b/apps/console/src/pages/organizations/cookie-banners/configuration/display/_components/CategoryDialog.tsx @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatError, type GraphQLError } from "@probo/helpers"; +import { formatError } from "@probo/helpers"; import { useTranslate } from "@probo/i18n"; import { Button, @@ -118,7 +118,7 @@ export function CategoryDialog({ onOpenChange(false); }, onError(error) { - toast({ title: __("Error"), description: formatError(__("Failed to create category"), error as GraphQLError), variant: "error" }); + toast({ title: __("Error"), description: formatError(__("Failed to create category"), error), variant: "error" }); }, }); }; diff --git a/apps/console/src/pages/organizations/cookie-banners/configuration/display/_components/CategorySection.tsx b/apps/console/src/pages/organizations/cookie-banners/configuration/display/_components/CategorySection.tsx index 506a16fd1..5e0f20946 100644 --- a/apps/console/src/pages/organizations/cookie-banners/configuration/display/_components/CategorySection.tsx +++ b/apps/console/src/pages/organizations/cookie-banners/configuration/display/_components/CategorySection.tsx @@ -340,7 +340,7 @@ export function CategorySection({ categoryKey, connectionId }: CategorySectionPr title: __("Error"), description: formatError( __("Failed to update category"), - error as GraphQLError, + error, ), variant: "error", }); @@ -388,7 +388,7 @@ export function CategorySection({ categoryKey, connectionId }: CategorySectionPr title: __("Error"), description: formatError( __("Failed to add cookie"), - error as GraphQLError, + error, ), variant: "error", }); @@ -432,7 +432,7 @@ export function CategorySection({ categoryKey, connectionId }: CategorySectionPr title: __("Error"), description: formatError( __("Failed to update cookie"), - error as GraphQLError, + error, ), variant: "error", }); @@ -463,7 +463,7 @@ export function CategorySection({ categoryKey, connectionId }: CategorySectionPr title: __("Error"), description: formatError( __("Failed to update cookie"), - error as GraphQLError, + error, ), variant: "error", }); @@ -501,7 +501,7 @@ export function CategorySection({ categoryKey, connectionId }: CategorySectionPr title: __("Error"), description: formatError( __("Failed to delete cookie"), - error as GraphQLError, + error, ), variant: "error", }); @@ -542,7 +542,7 @@ export function CategorySection({ categoryKey, connectionId }: CategorySectionPr resolve(); }, onError(error) { - toast({ title: __("Error"), description: formatError(__("Failed to delete category"), error as GraphQLError), variant: "error" }); + toast({ title: __("Error"), description: formatError(__("Failed to delete category"), error), variant: "error" }); resolve(); }, }); @@ -566,7 +566,7 @@ export function CategorySection({ categoryKey, connectionId }: CategorySectionPr } }, onError(error) { - toast({ title: __("Error"), description: formatError(__("Failed to reorder"), error as GraphQLError), variant: "error" }); + toast({ title: __("Error"), description: formatError(__("Failed to reorder"), error), variant: "error" }); }, }); }; @@ -582,7 +582,7 @@ export function CategorySection({ categoryKey, connectionId }: CategorySectionPr } }, onError(error) { - toast({ title: __("Error"), description: formatError(__("Failed to reorder"), error as GraphQLError), variant: "error" }); + toast({ title: __("Error"), description: formatError(__("Failed to reorder"), error), variant: "error" }); }, }); }; @@ -647,7 +647,7 @@ export function CategorySection({ categoryKey, connectionId }: CategorySectionPr title: __("Error"), description: formatError( __("Failed to move cookie"), - error as GraphQLError, + error, ), variant: "error", }); diff --git a/apps/console/src/pages/organizations/cookie-banners/configuration/resources/CookieBannerResourcesPage.tsx b/apps/console/src/pages/organizations/cookie-banners/configuration/resources/CookieBannerResourcesPage.tsx index 79aa7ffbc..c210f78fe 100644 --- a/apps/console/src/pages/organizations/cookie-banners/configuration/resources/CookieBannerResourcesPage.tsx +++ b/apps/console/src/pages/organizations/cookie-banners/configuration/resources/CookieBannerResourcesPage.tsx @@ -97,7 +97,7 @@ export default function CookieBannerResourcesPage({ queryRef, }: CookieBannerResourcesPageProps) { const { __ } = useTranslate(); - const data = usePreloadedQuery(cookieBannerResourcesPageQuery, queryRef); + const data = usePreloadedQuery(cookieBannerResourcesPageQuery, queryRef); if (data.node.__typename !== "CookieBanner") { throw new Error("invalid type for node"); diff --git a/apps/console/src/pages/organizations/cookie-banners/configuration/resources/_components/TrackerResourceRow.tsx b/apps/console/src/pages/organizations/cookie-banners/configuration/resources/_components/TrackerResourceRow.tsx index e3064c01d..8fb844b7b 100644 --- a/apps/console/src/pages/organizations/cookie-banners/configuration/resources/_components/TrackerResourceRow.tsx +++ b/apps/console/src/pages/organizations/cookie-banners/configuration/resources/_components/TrackerResourceRow.tsx @@ -13,7 +13,7 @@ // PERFORMANCE OF THIS SOFTWARE. import { EyeIcon, EyeSlashIcon } from "@phosphor-icons/react"; -import { formatError, type GraphQLError } from "@probo/helpers"; +import { formatError } from "@probo/helpers"; import { useTranslate } from "@probo/i18n"; import { ActionDropdown, @@ -176,7 +176,7 @@ export function TrackerResourceRow({ resourceKey, connectionId }: TrackerResourc resolve(); }, onError(error) { - toast({ title: __("Error"), description: formatError(__("Failed to delete resource"), error as GraphQLError), variant: "error" }); + toast({ title: __("Error"), description: formatError(__("Failed to delete resource"), error), variant: "error" }); resolve(); }, }); @@ -216,7 +216,7 @@ export function TrackerResourceRow({ resourceKey, connectionId }: TrackerResourc toast({ title: __("Success"), description: __("Resource moved"), variant: "success" }); }, onError(error) { - toast({ title: __("Error"), description: formatError(__("Failed to move resource"), error as GraphQLError), variant: "error" }); + toast({ title: __("Error"), description: formatError(__("Failed to move resource"), error), variant: "error" }); }, }); }; @@ -236,7 +236,7 @@ export function TrackerResourceRow({ resourceKey, connectionId }: TrackerResourc } }, onError(error) { - toast({ title: __("Error"), description: formatError(__("Failed to update resource"), error as GraphQLError), variant: "error" }); + toast({ title: __("Error"), description: formatError(__("Failed to update resource"), error), variant: "error" }); }, }); }; @@ -259,7 +259,7 @@ export function TrackerResourceRow({ resourceKey, connectionId }: TrackerResourc setIsEditing(false); }, onError(error) { - toast({ title: __("Error"), description: formatError(__("Failed to update resource"), error as GraphQLError), variant: "error" }); + toast({ title: __("Error"), description: formatError(__("Failed to update resource"), error), variant: "error" }); }, }); }; diff --git a/apps/console/src/pages/organizations/cookie-banners/configuration/settings/CookieBannerSettingsPage.tsx b/apps/console/src/pages/organizations/cookie-banners/configuration/settings/CookieBannerSettingsPage.tsx index 03372a419..e4afdf1e8 100644 --- a/apps/console/src/pages/organizations/cookie-banners/configuration/settings/CookieBannerSettingsPage.tsx +++ b/apps/console/src/pages/organizations/cookie-banners/configuration/settings/CookieBannerSettingsPage.tsx @@ -38,7 +38,7 @@ interface CookieBannerSettingsPageProps { export default function CookieBannerSettingsPage({ queryRef, }: CookieBannerSettingsPageProps) { - const data = usePreloadedQuery(cookieBannerSettingsPageQuery, queryRef); + const data = usePreloadedQuery(cookieBannerSettingsPageQuery, queryRef); if (data.node.__typename !== "CookieBanner") { throw new Error("invalid type for node"); diff --git a/apps/console/src/pages/organizations/cookie-banners/configuration/settings/_components/BannerSettingsForm.tsx b/apps/console/src/pages/organizations/cookie-banners/configuration/settings/_components/BannerSettingsForm.tsx index 6f7276bcd..4ed5c062f 100644 --- a/apps/console/src/pages/organizations/cookie-banners/configuration/settings/_components/BannerSettingsForm.tsx +++ b/apps/console/src/pages/organizations/cookie-banners/configuration/settings/_components/BannerSettingsForm.tsx @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatError, type GraphQLError } from "@probo/helpers"; +import { formatError } from "@probo/helpers"; import { useTranslate } from "@probo/i18n"; import { Button, Card, Field, Input, Label, Option, Select, useToast } from "@probo/ui"; import { Controller, useForm } from "react-hook-form"; @@ -100,7 +100,7 @@ export function BannerSettingsForm({ cookieBannerKey }: BannerSettingsFormProps) toast({ title: __("Success"), description: __("Banner settings updated"), variant: "success" }); }, onError(error) { - toast({ title: __("Error"), description: formatError(__("Failed to update"), error as GraphQLError), variant: "error" }); + toast({ title: __("Error"), description: formatError(__("Failed to update"), error), variant: "error" }); }, }); }; diff --git a/apps/console/src/pages/organizations/cookie-banners/configuration/trackers/CookieBannerTrackersPage.tsx b/apps/console/src/pages/organizations/cookie-banners/configuration/trackers/CookieBannerTrackersPage.tsx index b0a9b5dc7..f0d924e5c 100644 --- a/apps/console/src/pages/organizations/cookie-banners/configuration/trackers/CookieBannerTrackersPage.tsx +++ b/apps/console/src/pages/organizations/cookie-banners/configuration/trackers/CookieBannerTrackersPage.tsx @@ -121,7 +121,7 @@ export default function CookieBannerTrackersPage({ queryRef, }: CookieBannerTrackersPageProps) { const { __ } = useTranslate(); - const data = usePreloadedQuery(cookieBannerTrackersPageQuery, queryRef); + const data = usePreloadedQuery(cookieBannerTrackersPageQuery, queryRef); if (data.node.__typename !== "CookieBanner") { throw new Error("invalid type for node"); diff --git a/apps/console/src/pages/organizations/cookie-banners/configuration/trackers/TrackerPatternDetailPage.tsx b/apps/console/src/pages/organizations/cookie-banners/configuration/trackers/TrackerPatternDetailPage.tsx index f72f16b69..c65718c70 100644 --- a/apps/console/src/pages/organizations/cookie-banners/configuration/trackers/TrackerPatternDetailPage.tsx +++ b/apps/console/src/pages/organizations/cookie-banners/configuration/trackers/TrackerPatternDetailPage.tsx @@ -55,7 +55,7 @@ export default function TrackerPatternDetailPage({ }: TrackerPatternDetailPageProps) { const { __ } = useTranslate(); const organizationId = useOrganizationId(); - const data = usePreloadedQuery(trackerPatternDetailPageQuery, queryRef); + const data = usePreloadedQuery(trackerPatternDetailPageQuery, queryRef); if (data.cookieBanner.__typename !== "CookieBanner") { throw new Error("invalid type for cookieBanner node"); diff --git a/apps/console/src/pages/organizations/cookie-banners/configuration/trackers/_components/MoveToCategoryDropdown.tsx b/apps/console/src/pages/organizations/cookie-banners/configuration/trackers/_components/MoveToCategoryDropdown.tsx index e5a70cc7a..bc1d741a4 100644 --- a/apps/console/src/pages/organizations/cookie-banners/configuration/trackers/_components/MoveToCategoryDropdown.tsx +++ b/apps/console/src/pages/organizations/cookie-banners/configuration/trackers/_components/MoveToCategoryDropdown.tsx @@ -47,7 +47,7 @@ export function MoveToCategoryDropdown({ onMove, }: MoveToCategoryDropdownProps) { const { __ } = useTranslate(); - const data = usePreloadedQuery(moveToCategoryDropdownQuery, queryRef); + const data = usePreloadedQuery(moveToCategoryDropdownQuery, queryRef); if (data.node.__typename !== "CookieBanner") { return null; diff --git a/apps/console/src/pages/organizations/cookie-banners/configuration/trackers/_components/MoveToCategorySelect.tsx b/apps/console/src/pages/organizations/cookie-banners/configuration/trackers/_components/MoveToCategorySelect.tsx index a803ad7e4..d520e67f3 100644 --- a/apps/console/src/pages/organizations/cookie-banners/configuration/trackers/_components/MoveToCategorySelect.tsx +++ b/apps/console/src/pages/organizations/cookie-banners/configuration/trackers/_components/MoveToCategorySelect.tsx @@ -80,7 +80,7 @@ interface MoveToCategoryOptionsProps { function MoveToCategoryOptions({ queryRef }: MoveToCategoryOptionsProps) { const { __ } = useTranslate(); - const data = usePreloadedQuery(moveToCategoryDropdownQuery, queryRef); + const data = usePreloadedQuery(moveToCategoryDropdownQuery, queryRef); if (data.node.__typename !== "CookieBanner") { return null; diff --git a/apps/console/src/pages/organizations/cookie-banners/configuration/trackers/_components/TrackerPatternRow.tsx b/apps/console/src/pages/organizations/cookie-banners/configuration/trackers/_components/TrackerPatternRow.tsx index f6539abe3..bf8476e14 100644 --- a/apps/console/src/pages/organizations/cookie-banners/configuration/trackers/_components/TrackerPatternRow.tsx +++ b/apps/console/src/pages/organizations/cookie-banners/configuration/trackers/_components/TrackerPatternRow.tsx @@ -13,7 +13,7 @@ // PERFORMANCE OF THIS SOFTWARE. import { DownloadSimpleIcon, EyeIcon, EyeSlashIcon } from "@phosphor-icons/react"; -import { formatError, getTrackerSourceBadge, getTrackerTypeBadge, type GraphQLError, humanizeSeconds } from "@probo/helpers"; +import { formatError, getTrackerSourceBadge, getTrackerTypeBadge, humanizeSeconds } from "@probo/helpers"; import { useTranslate } from "@probo/i18n"; import { ActionDropdown, @@ -191,7 +191,7 @@ export function TrackerPatternRow({ patternKey, connectionId }: TrackerPatternRo resolve(); }, onError(error) { - toast({ title: __("Error"), description: formatError(__("Failed to delete cookie"), error as GraphQLError), variant: "error" }); + toast({ title: __("Error"), description: formatError(__("Failed to delete cookie"), error), variant: "error" }); resolve(); }, }); @@ -223,7 +223,7 @@ export function TrackerPatternRow({ patternKey, connectionId }: TrackerPatternRo toast({ title: __("Success"), description: __("Cookie moved"), variant: "success" }); }, onError(error) { - toast({ title: __("Error"), description: formatError(__("Failed to move cookie"), error as GraphQLError), variant: "error" }); + toast({ title: __("Error"), description: formatError(__("Failed to move cookie"), error), variant: "error" }); }, }); }; @@ -243,7 +243,7 @@ export function TrackerPatternRow({ patternKey, connectionId }: TrackerPatternRo } }, onError(error) { - toast({ title: __("Error"), description: formatError(__("Failed to update cookie"), error as GraphQLError), variant: "error" }); + toast({ title: __("Error"), description: formatError(__("Failed to update cookie"), error), variant: "error" }); }, }); }; @@ -286,7 +286,7 @@ export function TrackerPatternRow({ patternKey, connectionId }: TrackerPatternRo toast({ title: __("Success"), description: __("Third party imported"), variant: "success" }); }, onError(error) { - toast({ title: __("Error"), description: formatError(__("Failed to import third party"), error as GraphQLError), variant: "error" }); + toast({ title: __("Error"), description: formatError(__("Failed to import third party"), error), variant: "error" }); }, }); }; @@ -309,7 +309,7 @@ export function TrackerPatternRow({ patternKey, connectionId }: TrackerPatternRo setIsEditing(false); }, onError(error) { - toast({ title: __("Error"), description: formatError(__("Failed to update cookie"), error as GraphQLError), variant: "error" }); + toast({ title: __("Error"), description: formatError(__("Failed to update cookie"), error), variant: "error" }); }, }); }; diff --git a/apps/console/src/pages/organizations/cookie-banners/configuration/translations/CookieBannerTranslationsPage.tsx b/apps/console/src/pages/organizations/cookie-banners/configuration/translations/CookieBannerTranslationsPage.tsx index 6f31e2f8a..0fb057667 100644 --- a/apps/console/src/pages/organizations/cookie-banners/configuration/translations/CookieBannerTranslationsPage.tsx +++ b/apps/console/src/pages/organizations/cookie-banners/configuration/translations/CookieBannerTranslationsPage.tsx @@ -60,7 +60,7 @@ export default function CookieBannerTranslationsPage({ queryRef, }: CookieBannerTranslationsPageProps) { const { __ } = useTranslate(); - const data = usePreloadedQuery(cookieBannerTranslationsPageQuery, queryRef); + const data = usePreloadedQuery(cookieBannerTranslationsPageQuery, queryRef); if (data.node.__typename !== "CookieBanner") { throw new Error("invalid type for node"); diff --git a/apps/console/src/pages/organizations/cookie-banners/configuration/translations/_components/TranslationEditor.tsx b/apps/console/src/pages/organizations/cookie-banners/configuration/translations/_components/TranslationEditor.tsx index 346ca9594..ed687e9f4 100644 --- a/apps/console/src/pages/organizations/cookie-banners/configuration/translations/_components/TranslationEditor.tsx +++ b/apps/console/src/pages/organizations/cookie-banners/configuration/translations/_components/TranslationEditor.tsx @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatError, type GraphQLError } from "@probo/helpers"; +import { formatError } from "@probo/helpers"; import { useTranslate } from "@probo/i18n"; import { Button, useToast } from "@probo/ui"; import { useMemo } from "react"; @@ -150,7 +150,7 @@ export function TranslationEditor({ title: __("Error"), description: formatError( __("Failed to save translation"), - error as GraphQLError, + error, ), variant: "error", }); diff --git a/apps/console/src/pages/organizations/cookie-banners/overview/CookieBannersOverviewPage.tsx b/apps/console/src/pages/organizations/cookie-banners/overview/CookieBannersOverviewPage.tsx index 12bbef196..89f6f6414 100644 --- a/apps/console/src/pages/organizations/cookie-banners/overview/CookieBannersOverviewPage.tsx +++ b/apps/console/src/pages/organizations/cookie-banners/overview/CookieBannersOverviewPage.tsx @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatError, type GraphQLError, sprintf } from "@probo/helpers"; +import { formatError, sprintf } from "@probo/helpers"; import { usePageTitle } from "@probo/hooks"; import { useTranslate } from "@probo/i18n"; import { @@ -84,7 +84,7 @@ export function CookieBannersOverviewPage({ queryRef }: CookieBannersOverviewPag usePageTitle(__("Cookie Banners")); - const { organization } = usePreloadedQuery(cookieBannersOverviewPageQuery, queryRef); + const { organization } = usePreloadedQuery(cookieBannersOverviewPageQuery, queryRef); if (organization.__typename !== "Organization") { throw new Error("invalid type for node"); } @@ -125,7 +125,7 @@ export function CookieBannersOverviewPage({ queryRef }: CookieBannersOverviewPag title: __("Error"), description: formatError( __("Failed to delete cookie banner"), - error as GraphQLError, + error, ), variant: "error", }); diff --git a/apps/console/src/pages/organizations/data/dialogs/PublishDataListDialog.tsx b/apps/console/src/pages/organizations/data/dialogs/PublishDataListDialog.tsx index 1cd1cbce2..00fc83227 100644 --- a/apps/console/src/pages/organizations/data/dialogs/PublishDataListDialog.tsx +++ b/apps/console/src/pages/organizations/data/dialogs/PublishDataListDialog.tsx @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatError, type GraphQLError } from "@probo/helpers"; +import { formatError } from "@probo/helpers"; import { useTranslate } from "@probo/i18n"; import { Button, @@ -117,7 +117,7 @@ export function PublishDataListDialog({ title: __("Error"), description: formatError( __("Failed to publish data list"), - error as GraphQLError, + error, ), variant: "error", }); diff --git a/apps/console/src/pages/organizations/documents/_components/DocumentVersionsDropdownMenu.tsx b/apps/console/src/pages/organizations/documents/_components/DocumentVersionsDropdownMenu.tsx index 9435e2ea6..dc8aab4f5 100644 --- a/apps/console/src/pages/organizations/documents/_components/DocumentVersionsDropdownMenu.tsx +++ b/apps/console/src/pages/organizations/documents/_components/DocumentVersionsDropdownMenu.tsx @@ -69,7 +69,7 @@ export function DocumentVersionsDropdownMenu(props: { } const lastVersion = document.lastVersion?.edges[0].node; - const currentVersion = lastVersion ?? version as NonNullable; + const currentVersion = lastVersion ?? version; return ( <> @@ -77,7 +77,7 @@ export function DocumentVersionsDropdownMenu(props: { ))} diff --git a/apps/console/src/pages/organizations/documents/approve/DocumentApprovePage.tsx b/apps/console/src/pages/organizations/documents/approve/DocumentApprovePage.tsx index 02edfabda..fc2e0a5ac 100644 --- a/apps/console/src/pages/organizations/documents/approve/DocumentApprovePage.tsx +++ b/apps/console/src/pages/organizations/documents/approve/DocumentApprovePage.tsx @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatDate, formatError, type GraphQLError } from "@probo/helpers"; +import { formatDate, formatError } from "@probo/helpers"; import { usePageTitle } from "@probo/hooks"; import { useTranslate } from "@probo/i18n"; import { @@ -468,7 +468,7 @@ function DocumentApproveContent({ title: __("Error"), description: formatError( __("Failed to load PDF"), - errors as GraphQLError[], + errors, ), variant: "error", }); @@ -485,7 +485,7 @@ function DocumentApproveContent({ title: __("Error"), description: formatError( __("Failed to load PDF"), - error as GraphQLError, + error, ), variant: "error", }); diff --git a/apps/console/src/pages/organizations/documents/description/DocumentDescriptionPage.tsx b/apps/console/src/pages/organizations/documents/description/DocumentDescriptionPage.tsx index ef8e0978f..f8329d35a 100644 --- a/apps/console/src/pages/organizations/documents/description/DocumentDescriptionPage.tsx +++ b/apps/console/src/pages/organizations/documents/description/DocumentDescriptionPage.tsx @@ -96,7 +96,10 @@ export function DocumentDescriptionPage(props: { } const lastVersion = document.lastVersion?.edges[0].node; - const currentVersion = lastVersion ?? version as NonNullable; + const currentVersion = lastVersion ?? version; + if (!currentVersion) { + throw new Error("Document version not found"); + } const [updateContent] = useMutation(updateContentMutation); diff --git a/apps/console/src/pages/organizations/employee/EmployeeDocumentSignaturePage.tsx b/apps/console/src/pages/organizations/employee/EmployeeDocumentSignaturePage.tsx index 2044e8910..011c79d24 100644 --- a/apps/console/src/pages/organizations/employee/EmployeeDocumentSignaturePage.tsx +++ b/apps/console/src/pages/organizations/employee/EmployeeDocumentSignaturePage.tsx @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatError, type GraphQLError } from "@probo/helpers"; +import { formatError } from "@probo/helpers"; import { usePageTitle } from "@probo/hooks"; import { useTranslate } from "@probo/i18n"; import { Card, Spinner, useToast } from "@probo/ui"; @@ -180,7 +180,7 @@ function DocumentSignatureContent({ title: __("Error"), description: formatError( __("Failed to sign document"), - error as GraphQLError, + error, ), variant: "error", }); @@ -203,7 +203,7 @@ function DocumentSignatureContent({ title: __("Error"), description: formatError( __("Failed to load PDF"), - errors as GraphQLError[], + errors, ), variant: "error", }); @@ -220,7 +220,7 @@ function DocumentSignatureContent({ title: __("Error"), description: formatError( __("Failed to load PDF"), - error as GraphQLError, + error, ), variant: "error", }); diff --git a/apps/console/src/pages/organizations/findings/FindingDetailsPage.tsx b/apps/console/src/pages/organizations/findings/FindingDetailsPage.tsx index 3d41cc743..fbe1ca2fe 100644 --- a/apps/console/src/pages/organizations/findings/FindingDetailsPage.tsx +++ b/apps/console/src/pages/organizations/findings/FindingDetailsPage.tsx @@ -18,7 +18,6 @@ import { getStatusLabel, getStatusOptions, getStatusVariant, - type GraphQLError, sprintf, } from "@probo/helpers"; import { useTranslate } from "@probo/i18n"; @@ -209,7 +208,7 @@ export default function FindingDetailsPage(props: Props) { title: __("Error"), description: formatError( __("Failed to delete finding"), - error as GraphQLError[], + error, ), variant: "error", }); @@ -227,7 +226,7 @@ export default function FindingDetailsPage(props: Props) { title: __("Error"), description: formatError( __("Failed to delete finding"), - error as GraphQLError, + error, ), variant: "error", }); @@ -294,7 +293,7 @@ export default function FindingDetailsPage(props: Props) { title: __("Error"), description: formatError( __("Failed to update finding"), - error as GraphQLError, + error, ), variant: "error", }); diff --git a/apps/console/src/pages/organizations/findings/FindingsPage.tsx b/apps/console/src/pages/organizations/findings/FindingsPage.tsx index a81acf048..b4434658f 100644 --- a/apps/console/src/pages/organizations/findings/FindingsPage.tsx +++ b/apps/console/src/pages/organizations/findings/FindingsPage.tsx @@ -18,7 +18,6 @@ import { getStatusLabel, getStatusOptions, getStatusVariant, - type GraphQLError, sprintf, } from "@probo/helpers"; import { usePageTitle } from "@probo/hooks"; @@ -176,7 +175,7 @@ export default function FindingsPage({ queryRef }: FindingsPageProps) { usePageTitle(__("Findings")); const navigate = useNavigate(); - const organization = usePreloadedQuery(findingsPageQuery, queryRef); + const organization = usePreloadedQuery(findingsPageQuery, queryRef); const defaultApproverIds = (organization.node.findingsDocument?.defaultApprovers ?? []).map(a => a.id); const [isPending, startTransition] = useTransition(); @@ -451,7 +450,7 @@ function FindingRow(props: FindingRowProps) { title: __("Error"), description: formatError( __("Failed to delete finding"), - error as GraphQLError[], + error, ), variant: "error", }); @@ -469,7 +468,7 @@ function FindingRow(props: FindingRowProps) { title: __("Error"), description: formatError( __("Failed to delete finding"), - error as GraphQLError, + error, ), variant: "error", }); diff --git a/apps/console/src/pages/organizations/findings/dialogs/CreateFindingDialog.tsx b/apps/console/src/pages/organizations/findings/dialogs/CreateFindingDialog.tsx index bbf4dce5d..e45644a94 100644 --- a/apps/console/src/pages/organizations/findings/dialogs/CreateFindingDialog.tsx +++ b/apps/console/src/pages/organizations/findings/dialogs/CreateFindingDialog.tsx @@ -16,7 +16,6 @@ import { formatDatetime, formatError, getStatusOptions, - type GraphQLError, } from "@probo/helpers"; import { useTranslate } from "@probo/i18n"; import { @@ -171,7 +170,7 @@ export function CreateFindingDialog({ onError(error) { toast({ title: __("Error"), - description: formatError(__("Failed to create finding"), error as GraphQLError), + description: formatError(__("Failed to create finding"), error), variant: "error", }); }, diff --git a/apps/console/src/pages/organizations/findings/dialogs/PublishFindingListDialog.tsx b/apps/console/src/pages/organizations/findings/dialogs/PublishFindingListDialog.tsx index 6106c6727..fceac006c 100644 --- a/apps/console/src/pages/organizations/findings/dialogs/PublishFindingListDialog.tsx +++ b/apps/console/src/pages/organizations/findings/dialogs/PublishFindingListDialog.tsx @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatError, type GraphQLError } from "@probo/helpers"; +import { formatError } from "@probo/helpers"; import { useTranslate } from "@probo/i18n"; import { Button, @@ -117,7 +117,7 @@ export function PublishFindingListDialog({ title: __("Error"), description: formatError( __("Failed to publish finding list"), - error as GraphQLError, + error, ), variant: "error", }); diff --git a/apps/console/src/pages/organizations/frameworks/FrameworkControlPage.tsx b/apps/console/src/pages/organizations/frameworks/FrameworkControlPage.tsx index c2abe7d69..0d4c0e3df 100644 --- a/apps/console/src/pages/organizations/frameworks/FrameworkControlPage.tsx +++ b/apps/console/src/pages/organizations/frameworks/FrameworkControlPage.tsx @@ -15,7 +15,6 @@ import { formatError, getControlMaturityLevelLabel, - type GraphQLError, } from "@probo/helpers"; import { promisifyMutation } from "@probo/helpers"; import { useTranslate } from "@probo/i18n"; @@ -183,7 +182,7 @@ export default function FrameworkControlPage({ queryRef }: Props) { framework: FrameworkDetailPageFragment$data; }>(); const connectionId = framework.controls.__id; - const control = usePreloadedQuery(frameworkControlNodeQuery, queryRef).node; + const control = usePreloadedQuery(frameworkControlNodeQuery, queryRef).node; const organizationId = useOrganizationId(); const confirm = useConfirm(); const navigate = useNavigate(); @@ -249,7 +248,7 @@ export default function FrameworkControlPage({ queryRef }: Props) { title: __("Error"), description: formatError( errorMessage, - error as GraphQLError, + error, ), variant: "error", }); @@ -261,7 +260,7 @@ export default function FrameworkControlPage({ queryRef }: Props) { title: __("Error"), description: formatError( errorMessage, - error as GraphQLError, + error, ), variant: "error", }); diff --git a/apps/console/src/pages/organizations/frameworks/FrameworksPage.tsx b/apps/console/src/pages/organizations/frameworks/FrameworksPage.tsx index 3df36c938..83f969307 100644 --- a/apps/console/src/pages/organizations/frameworks/FrameworksPage.tsx +++ b/apps/console/src/pages/organizations/frameworks/FrameworksPage.tsx @@ -69,7 +69,7 @@ const importFrameworkMutation = graphql` export default function FrameworksPage(props: Props) { const { __ } = useTranslate(); usePageTitle(__("Frameworks")); - const data = usePreloadedQuery(frameworksQuery, props.queryRef); + const data = usePreloadedQuery(frameworksQuery, props.queryRef); const connectionId = data.organization.frameworks!.__id; const frameworks = data.organization.frameworks?.edges.map(edge => edge.node) ?? []; diff --git a/apps/console/src/pages/organizations/measures/MeasureDetailPage.tsx b/apps/console/src/pages/organizations/measures/MeasureDetailPage.tsx index fc08fff7c..064557b82 100644 --- a/apps/console/src/pages/organizations/measures/MeasureDetailPage.tsx +++ b/apps/console/src/pages/organizations/measures/MeasureDetailPage.tsx @@ -137,7 +137,7 @@ type Props = { export default function MeasureDetailPage(props: Props) { const { measureId } = useParams<{ measureId: string }>(); const organizationId = useOrganizationId(); - const data = usePreloadedQuery(measureNodeQuery, props.queryRef); + const data = usePreloadedQuery(measureNodeQuery, props.queryRef); const measure = data.node; const { __ } = useTranslate(); const [deleteMeasure] = useDeleteMeasureMutation(); diff --git a/apps/console/src/pages/organizations/measures/MeasuresPage.tsx b/apps/console/src/pages/organizations/measures/MeasuresPage.tsx index 2e123ad4c..16d15f6b3 100644 --- a/apps/console/src/pages/organizations/measures/MeasuresPage.tsx +++ b/apps/console/src/pages/organizations/measures/MeasuresPage.tsx @@ -15,7 +15,6 @@ import { formatError, getMeasureStateLabel, - type GraphQLError, sprintf, } from "@probo/helpers"; import { usePageTitle } from "@probo/hooks"; @@ -174,7 +173,7 @@ export default function MeasuresPage({ queryRef }: MeasuresPageProps) { usePageTitle(__("Measures")); - const { organization } = usePreloadedQuery(measuresPageQuery, queryRef); + const { organization } = usePreloadedQuery(measuresPageQuery, queryRef); if (organization.__typename !== "Organization") { throw new Error("invalid node type"); } @@ -455,7 +454,7 @@ function MeasureRow(props: MeasureRowProps) { title: __("Error"), description: formatError( __("Failed to delete measure"), - error as GraphQLError[], + error, ), variant: "error", }); @@ -473,7 +472,7 @@ function MeasureRow(props: MeasureRowProps) { title: __("Error"), description: formatError( __("Failed to delete measure"), - error as GraphQLError, + error, ), variant: "error", }); diff --git a/apps/console/src/pages/organizations/obligations/ObligationsPage.tsx b/apps/console/src/pages/organizations/obligations/ObligationsPage.tsx index d360dfe87..4a9e6f280 100644 --- a/apps/console/src/pages/organizations/obligations/ObligationsPage.tsx +++ b/apps/console/src/pages/organizations/obligations/ObligationsPage.tsx @@ -115,7 +115,7 @@ export default function ObligationsPage({ queryRef }: ObligationsPageProps) { usePageTitle(__("Obligations")); - const organization = usePreloadedQuery(obligationsQuery, queryRef); + const organization = usePreloadedQuery(obligationsQuery, queryRef); const defaultApproverIds = (organization.node.obligationsDocument?.defaultApprovers ?? []).map(a => a.id); const { diff --git a/apps/console/src/pages/organizations/obligations/dialogs/PublishObligationListDialog.tsx b/apps/console/src/pages/organizations/obligations/dialogs/PublishObligationListDialog.tsx index 71660e0b9..7aabd2dff 100644 --- a/apps/console/src/pages/organizations/obligations/dialogs/PublishObligationListDialog.tsx +++ b/apps/console/src/pages/organizations/obligations/dialogs/PublishObligationListDialog.tsx @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatError, type GraphQLError } from "@probo/helpers"; +import { formatError } from "@probo/helpers"; import { useTranslate } from "@probo/i18n"; import { Button, @@ -117,7 +117,7 @@ export function PublishObligationListDialog({ title: __("Error"), description: formatError( __("Failed to publish obligation list"), - error as GraphQLError, + error, ), variant: "error", }); diff --git a/apps/console/src/pages/organizations/processingActivities/ProcessingActivitiesPage.tsx b/apps/console/src/pages/organizations/processingActivities/ProcessingActivitiesPage.tsx index 034d4de06..add7cd4a7 100644 --- a/apps/console/src/pages/organizations/processingActivities/ProcessingActivitiesPage.tsx +++ b/apps/console/src/pages/organizations/processingActivities/ProcessingActivitiesPage.tsx @@ -196,7 +196,7 @@ export default function ProcessingActivitiesPage({ usePageTitle(__("Processing Activities")); - const organization = usePreloadedQuery(processingActivitiesQuery, queryRef); + const organization = usePreloadedQuery(processingActivitiesQuery, queryRef); const paDocument = organization.node.processingActivitiesDocument; const dpiaDocument = organization.node.dataProtectionImpactAssessmentsDocument; diff --git a/apps/console/src/pages/organizations/processingActivities/ProcessingActivityDetailsPage.tsx b/apps/console/src/pages/organizations/processingActivities/ProcessingActivityDetailsPage.tsx index dda5e133d..9e762bf7b 100644 --- a/apps/console/src/pages/organizations/processingActivities/ProcessingActivityDetailsPage.tsx +++ b/apps/console/src/pages/organizations/processingActivities/ProcessingActivityDetailsPage.tsx @@ -244,7 +244,7 @@ export default function ProcessingActivityDetailsPage(props: Props) { activity?.dataProtectionImpactAssessment?.potentialRisk || "", mitigations: activity?.dataProtectionImpactAssessment?.mitigations || "", residualRisk: (activity?.dataProtectionImpactAssessment?.residualRisk - || "") as ProcessingActivityDPIAResidualRisk | "", + || ""), }, }); diff --git a/apps/console/src/pages/organizations/processingActivities/dialogs/PublishDataProtectionImpactAssessmentListDialog.tsx b/apps/console/src/pages/organizations/processingActivities/dialogs/PublishDataProtectionImpactAssessmentListDialog.tsx index 2625b7b2f..073f78aba 100644 --- a/apps/console/src/pages/organizations/processingActivities/dialogs/PublishDataProtectionImpactAssessmentListDialog.tsx +++ b/apps/console/src/pages/organizations/processingActivities/dialogs/PublishDataProtectionImpactAssessmentListDialog.tsx @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatError, type GraphQLError } from "@probo/helpers"; +import { formatError } from "@probo/helpers"; import { useTranslate } from "@probo/i18n"; import { Button, @@ -117,7 +117,7 @@ export function PublishDataProtectionImpactAssessmentListDialog({ title: __("Error"), description: formatError( __("Failed to publish Data Protection Impact Assessments"), - error as GraphQLError, + error, ), variant: "error", }); diff --git a/apps/console/src/pages/organizations/processingActivities/dialogs/PublishProcessingActivityListDialog.tsx b/apps/console/src/pages/organizations/processingActivities/dialogs/PublishProcessingActivityListDialog.tsx index f842f2847..1cfd2ef17 100644 --- a/apps/console/src/pages/organizations/processingActivities/dialogs/PublishProcessingActivityListDialog.tsx +++ b/apps/console/src/pages/organizations/processingActivities/dialogs/PublishProcessingActivityListDialog.tsx @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatError, type GraphQLError } from "@probo/helpers"; +import { formatError } from "@probo/helpers"; import { useTranslate } from "@probo/i18n"; import { Button, @@ -117,7 +117,7 @@ export function PublishProcessingActivityListDialog({ title: __("Error"), description: formatError( __("Failed to publish processing activities"), - error as GraphQLError, + error, ), variant: "error", }); diff --git a/apps/console/src/pages/organizations/processingActivities/dialogs/PublishTransferImpactAssessmentListDialog.tsx b/apps/console/src/pages/organizations/processingActivities/dialogs/PublishTransferImpactAssessmentListDialog.tsx index f6337590c..4c04bc557 100644 --- a/apps/console/src/pages/organizations/processingActivities/dialogs/PublishTransferImpactAssessmentListDialog.tsx +++ b/apps/console/src/pages/organizations/processingActivities/dialogs/PublishTransferImpactAssessmentListDialog.tsx @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatError, type GraphQLError } from "@probo/helpers"; +import { formatError } from "@probo/helpers"; import { useTranslate } from "@probo/i18n"; import { Button, @@ -117,7 +117,7 @@ export function PublishTransferImpactAssessmentListDialog({ title: __("Error"), description: formatError( __("Failed to publish Transfer Impact Assessments"), - error as GraphQLError, + error, ), variant: "error", }); diff --git a/apps/console/src/pages/organizations/risk-assessments/RiskAssessmentDetailPage.tsx b/apps/console/src/pages/organizations/risk-assessments/RiskAssessmentDetailPage.tsx index 35615aea1..6b325ada2 100644 --- a/apps/console/src/pages/organizations/risk-assessments/RiskAssessmentDetailPage.tsx +++ b/apps/console/src/pages/organizations/risk-assessments/RiskAssessmentDetailPage.tsx @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatDate, formatError, type GraphQLError } from "@probo/helpers"; +import { formatDate, formatError } from "@probo/helpers"; import { usePageTitle } from "@probo/hooks"; import { useTranslate } from "@probo/i18n"; import { @@ -89,7 +89,7 @@ export default function RiskAssessmentDetailPage({ queryRef }: RiskAssessmentDet const navigate = useNavigate(); const confirm = useConfirm(); const { toast } = useToast(); - const data = usePreloadedQuery(riskAssessmentDetailPageQuery, queryRef); + const data = usePreloadedQuery(riskAssessmentDetailPageQuery, queryRef); const ra = data.node; const [deleteRiskAssessment] = useMutation(deleteMutation); @@ -133,7 +133,7 @@ export default function RiskAssessmentDetailPage({ queryRef }: RiskAssessmentDet onError(error) { toast({ title: __("Error"), - description: formatError(__("Failed to delete risk assessment"), error as GraphQLError), + description: formatError(__("Failed to delete risk assessment"), error), variant: "error", }); reject(error); diff --git a/apps/console/src/pages/organizations/risk-assessments/RiskAssessmentsPage.tsx b/apps/console/src/pages/organizations/risk-assessments/RiskAssessmentsPage.tsx index 182f33de1..811fb4bd1 100644 --- a/apps/console/src/pages/organizations/risk-assessments/RiskAssessmentsPage.tsx +++ b/apps/console/src/pages/organizations/risk-assessments/RiskAssessmentsPage.tsx @@ -95,7 +95,7 @@ export default function RiskAssessmentsPage({ queryRef }: RiskAssessmentsPagePro const { __ } = useTranslate(); const organizationId = useOrganizationId(); - const data = usePreloadedQuery(riskAssessmentsPageQuery, queryRef); + const data = usePreloadedQuery(riskAssessmentsPageQuery, queryRef); const { data: fragmentData, ...pagination } = usePaginationFragment< RiskAssessmentsPageRefetchQuery, RiskAssessmentsPageFragment$key diff --git a/apps/console/src/pages/organizations/risks/RiskDetailLayout.tsx b/apps/console/src/pages/organizations/risks/RiskDetailLayout.tsx index 1e17a7d72..89ae8963a 100644 --- a/apps/console/src/pages/organizations/risks/RiskDetailLayout.tsx +++ b/apps/console/src/pages/organizations/risks/RiskDetailLayout.tsx @@ -107,7 +107,7 @@ export default function RiskDetailLayout(props: RiskDetailLayoutProps) { } const { __ } = useTranslate(); - const data = usePreloadedQuery(riskDetailLayoutQuery, props.queryRef); + const data = usePreloadedQuery(riskDetailLayoutQuery, props.queryRef); if (data.node?.__typename !== "Risk") { throw new Error("Risk not found"); } diff --git a/apps/console/src/pages/organizations/risks/RisksPage.tsx b/apps/console/src/pages/organizations/risks/RisksPage.tsx index fc7363ba9..c7d812ead 100644 --- a/apps/console/src/pages/organizations/risks/RisksPage.tsx +++ b/apps/console/src/pages/organizations/risks/RisksPage.tsx @@ -110,7 +110,7 @@ export default function RisksPage(props: RisksPageProps) { const organizationId = useOrganizationId(); const navigate = useNavigate(); - const queryData = usePreloadedQuery(risksPageQuery, props.queryRef); + const queryData = usePreloadedQuery(risksPageQuery, props.queryRef); const { data: fragmentData, ...pagination } = usePaginationFragment< RisksPageRefetchQuery, RisksPageFragment$key diff --git a/apps/console/src/pages/organizations/risks/_components/FormRiskDialog.tsx b/apps/console/src/pages/organizations/risks/_components/FormRiskDialog.tsx index 52859d466..8cfd065f9 100644 --- a/apps/console/src/pages/organizations/risks/_components/FormRiskDialog.tsx +++ b/apps/console/src/pages/organizations/risks/_components/FormRiskDialog.tsx @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatError, getRiskImpacts, getRiskLikelihoods, type GraphQLError } from "@probo/helpers"; +import { formatError, getRiskImpacts, getRiskLikelihoods } from "@probo/helpers"; import { useToggle } from "@probo/hooks"; import { useTranslate } from "@probo/i18n"; import { @@ -180,7 +180,7 @@ export function FormRiskDialog({ title: __("Error"), description: formatError( __("Failed to update risk"), - error as GraphQLError, + error, ), variant: "error", }); @@ -212,7 +212,7 @@ export function FormRiskDialog({ title: __("Error"), description: formatError( __("Failed to create risk"), - error as GraphQLError, + error, ), variant: "error", }); diff --git a/apps/console/src/pages/organizations/risks/_components/LinkScenarioDialog.tsx b/apps/console/src/pages/organizations/risks/_components/LinkScenarioDialog.tsx index 76e557b1c..6d46bbf94 100644 --- a/apps/console/src/pages/organizations/risks/_components/LinkScenarioDialog.tsx +++ b/apps/console/src/pages/organizations/risks/_components/LinkScenarioDialog.tsx @@ -123,7 +123,7 @@ type ContentProps = Omit & { }; function LinkScenarioDialogContent(props: ContentProps) { - const query = usePreloadedQuery(scenariosQuery, props.queryRef); + const query = usePreloadedQuery(scenariosQuery, props.queryRef); const { data, loadNext, hasNext, isLoadingNext } = usePaginationFragment( scenariosFragment, diff --git a/apps/console/src/pages/organizations/risks/_components/PublishRiskListDialog.tsx b/apps/console/src/pages/organizations/risks/_components/PublishRiskListDialog.tsx index 6aa4207c5..60c98b42b 100644 --- a/apps/console/src/pages/organizations/risks/_components/PublishRiskListDialog.tsx +++ b/apps/console/src/pages/organizations/risks/_components/PublishRiskListDialog.tsx @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatError, type GraphQLError } from "@probo/helpers"; +import { formatError } from "@probo/helpers"; import { useTranslate } from "@probo/i18n"; import { Button, @@ -118,7 +118,7 @@ export function PublishRiskListDialog({ title: __("Error"), description: formatError( __("Failed to publish risks"), - error as GraphQLError, + error, ), variant: "error", }); diff --git a/apps/console/src/pages/organizations/risks/_components/RiskRow.tsx b/apps/console/src/pages/organizations/risks/_components/RiskRow.tsx index 50eb012ad..772400709 100644 --- a/apps/console/src/pages/organizations/risks/_components/RiskRow.tsx +++ b/apps/console/src/pages/organizations/risks/_components/RiskRow.tsx @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatError, getTreatment, type GraphQLError, sprintf } from "@probo/helpers"; +import { formatError, getTreatment, sprintf } from "@probo/helpers"; import { useTranslate } from "@probo/i18n"; import { ActionDropdown, @@ -95,7 +95,7 @@ export function RiskRow(props: RiskRowProps) { title: __("Error"), description: formatError( __("Failed to delete risk"), - error as GraphQLError, + error, ), variant: "error", }); diff --git a/apps/console/src/pages/organizations/risks/controls/RiskControlsPage.tsx b/apps/console/src/pages/organizations/risks/controls/RiskControlsPage.tsx index c03d1de96..9475c89ee 100644 --- a/apps/console/src/pages/organizations/risks/controls/RiskControlsPage.tsx +++ b/apps/console/src/pages/organizations/risks/controls/RiskControlsPage.tsx @@ -81,7 +81,7 @@ interface RiskControlsPageProps { export default function RiskControlsPage(props: RiskControlsPageProps) { const { __ } = useTranslate(); const organizationId = useOrganizationId(); - const data = usePreloadedQuery(riskControlsPageQuery, props.queryRef); + const data = usePreloadedQuery(riskControlsPageQuery, props.queryRef); if (data.node?.__typename !== "Risk") { throw new Error("Risk not found"); } diff --git a/apps/console/src/pages/organizations/risks/documents/RiskDocumentsPage.tsx b/apps/console/src/pages/organizations/risks/documents/RiskDocumentsPage.tsx index 26deadd59..4856f4348 100644 --- a/apps/console/src/pages/organizations/risks/documents/RiskDocumentsPage.tsx +++ b/apps/console/src/pages/organizations/risks/documents/RiskDocumentsPage.tsx @@ -76,7 +76,7 @@ interface RiskDocumentsPageProps { } export default function RiskDocumentsPage(props: RiskDocumentsPageProps) { - const data = usePreloadedQuery(riskDocumentsPageQuery, props.queryRef); + const data = usePreloadedQuery(riskDocumentsPageQuery, props.queryRef); if (data.node?.__typename !== "Risk") { throw new Error("Risk not found"); } diff --git a/apps/console/src/pages/organizations/risks/measures/RiskMeasuresPage.tsx b/apps/console/src/pages/organizations/risks/measures/RiskMeasuresPage.tsx index c81f982d5..17ee52210 100644 --- a/apps/console/src/pages/organizations/risks/measures/RiskMeasuresPage.tsx +++ b/apps/console/src/pages/organizations/risks/measures/RiskMeasuresPage.tsx @@ -76,7 +76,7 @@ interface RiskMeasuresPageProps { } export default function RiskMeasuresPage(props: RiskMeasuresPageProps) { - const data = usePreloadedQuery(riskMeasuresPageQuery, props.queryRef); + const data = usePreloadedQuery(riskMeasuresPageQuery, props.queryRef); if (data.node?.__typename !== "Risk") { throw new Error("Risk not found"); } diff --git a/apps/console/src/pages/organizations/risks/obligations/RiskObligationsPage.tsx b/apps/console/src/pages/organizations/risks/obligations/RiskObligationsPage.tsx index d4bf84b9b..4e4d936fb 100644 --- a/apps/console/src/pages/organizations/risks/obligations/RiskObligationsPage.tsx +++ b/apps/console/src/pages/organizations/risks/obligations/RiskObligationsPage.tsx @@ -76,7 +76,7 @@ interface RiskObligationsPageProps { } export default function RiskObligationsPage(props: RiskObligationsPageProps) { - const data = usePreloadedQuery(riskObligationsPageQuery, props.queryRef); + const data = usePreloadedQuery(riskObligationsPageQuery, props.queryRef); if (data.node?.__typename !== "Risk") { throw new Error("Risk not found"); } diff --git a/apps/console/src/pages/organizations/risks/overview/RiskOverviewPage.tsx b/apps/console/src/pages/organizations/risks/overview/RiskOverviewPage.tsx index ab963842e..dbf08e006 100644 --- a/apps/console/src/pages/organizations/risks/overview/RiskOverviewPage.tsx +++ b/apps/console/src/pages/organizations/risks/overview/RiskOverviewPage.tsx @@ -37,7 +37,7 @@ interface RiskOverviewPageProps { } export default function RiskOverviewPage(props: RiskOverviewPageProps) { - const data = usePreloadedQuery(riskOverviewPageQuery, props.queryRef); + const data = usePreloadedQuery(riskOverviewPageQuery, props.queryRef); if (data.node?.__typename !== "Risk") { throw new Error("Risk not found"); } diff --git a/apps/console/src/pages/organizations/risks/scenarios/RiskScenariosPage.tsx b/apps/console/src/pages/organizations/risks/scenarios/RiskScenariosPage.tsx index c45ee6b8f..522494b83 100644 --- a/apps/console/src/pages/organizations/risks/scenarios/RiskScenariosPage.tsx +++ b/apps/console/src/pages/organizations/risks/scenarios/RiskScenariosPage.tsx @@ -94,7 +94,7 @@ interface RiskScenariosPageProps { export default function RiskScenariosPage(props: RiskScenariosPageProps) { const { __ } = useTranslate(); const organizationId = useOrganizationId(); - const data = usePreloadedQuery(riskScenariosPageQuery, props.queryRef); + const data = usePreloadedQuery(riskScenariosPageQuery, props.queryRef); if (data.node?.__typename !== "Risk") { throw new Error("Risk not found"); } diff --git a/apps/console/src/pages/organizations/statements-of-applicability/StatementOfApplicabilityDetailPage.tsx b/apps/console/src/pages/organizations/statements-of-applicability/StatementOfApplicabilityDetailPage.tsx index cfe5e06fa..17a3ea204 100644 --- a/apps/console/src/pages/organizations/statements-of-applicability/StatementOfApplicabilityDetailPage.tsx +++ b/apps/console/src/pages/organizations/statements-of-applicability/StatementOfApplicabilityDetailPage.tsx @@ -138,7 +138,7 @@ export default function StatementOfApplicabilityDetailPage(props: Props) { statementOfApplicabilityId: string; }>(); const organizationId = useOrganizationId(); - const data = usePreloadedQuery(statementOfApplicabilityDetailPageQuery, props.queryRef); + const data = usePreloadedQuery(statementOfApplicabilityDetailPageQuery, props.queryRef); const statementOfApplicability = data.node; const { __ } = useTranslate(); const navigate = useNavigate(); @@ -244,7 +244,7 @@ export default function StatementOfApplicabilityDetailPage(props: Props) { title: __("Error"), description: formatError( __("Failed to update Statement of Applicability"), - error as GraphQLError, + error, ), variant: "error", }); @@ -300,7 +300,7 @@ export default function StatementOfApplicabilityDetailPage(props: Props) { title: __("Error"), description: formatError( __("Failed to update approvers"), - error as GraphQLError, + error, ), variant: "error", }); diff --git a/apps/console/src/pages/organizations/statements-of-applicability/StatementsOfApplicabilityPage.tsx b/apps/console/src/pages/organizations/statements-of-applicability/StatementsOfApplicabilityPage.tsx index 9bd57511c..847eae35a 100644 --- a/apps/console/src/pages/organizations/statements-of-applicability/StatementsOfApplicabilityPage.tsx +++ b/apps/console/src/pages/organizations/statements-of-applicability/StatementsOfApplicabilityPage.tsx @@ -92,7 +92,7 @@ export default function StatementsOfApplicabilityPage({ usePageTitle(__("Statements of Applicability")); - const { organization } = usePreloadedQuery(statementsOfApplicabilityPageQuery, queryRef); + const { organization } = usePreloadedQuery(statementsOfApplicabilityPageQuery, queryRef); if (organization.__typename !== "Organization") { throw new Error("Organization not found"); diff --git a/apps/console/src/pages/organizations/statements-of-applicability/dialogs/AddApplicabilityStatementDialog.tsx b/apps/console/src/pages/organizations/statements-of-applicability/dialogs/AddApplicabilityStatementDialog.tsx index b40870610..298bf941f 100644 --- a/apps/console/src/pages/organizations/statements-of-applicability/dialogs/AddApplicabilityStatementDialog.tsx +++ b/apps/console/src/pages/organizations/statements-of-applicability/dialogs/AddApplicabilityStatementDialog.tsx @@ -376,7 +376,7 @@ function AddApplicabilityStatementDialogContent({ applicabilityStatementId: applicability?.id ?? null, applicability: applicability?.applicability ?? null, justification: applicability?.justification ?? null, - } as ControlWithStatement; + }; }); }, [data.organization?.controls, applicabilityMap]); diff --git a/apps/console/src/pages/organizations/statements-of-applicability/dialogs/CreateStatementOfApplicabilityDialog.tsx b/apps/console/src/pages/organizations/statements-of-applicability/dialogs/CreateStatementOfApplicabilityDialog.tsx index b00b1a2e9..a86ac57dc 100644 --- a/apps/console/src/pages/organizations/statements-of-applicability/dialogs/CreateStatementOfApplicabilityDialog.tsx +++ b/apps/console/src/pages/organizations/statements-of-applicability/dialogs/CreateStatementOfApplicabilityDialog.tsx @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatError, type GraphQLError } from "@probo/helpers"; +import { formatError } from "@probo/helpers"; import { useTranslate } from "@probo/i18n"; import { Breadcrumb, @@ -113,7 +113,7 @@ export function CreateStatementOfApplicabilityDialog({ title: __("Error"), description: formatError( __("Failed to create statement of applicability"), - error as GraphQLError, + error, ), variant: "error", }); diff --git a/apps/console/src/pages/organizations/statements-of-applicability/dialogs/LinkControlDialog.tsx b/apps/console/src/pages/organizations/statements-of-applicability/dialogs/LinkControlDialog.tsx index 6075c414b..85e01dfcf 100644 --- a/apps/console/src/pages/organizations/statements-of-applicability/dialogs/LinkControlDialog.tsx +++ b/apps/console/src/pages/organizations/statements-of-applicability/dialogs/LinkControlDialog.tsx @@ -332,7 +332,7 @@ function LinkControlDialogContent({ applicabilityStatementId: applicability?.id ?? null, applicability: applicability?.applicability ?? null, justification: applicability?.justification ?? null, - } as Control; + }; }); }, [data.organization?.controls, applicabilityMap]); diff --git a/apps/console/src/pages/organizations/statements-of-applicability/dialogs/PublishStatementOfApplicabilityDialog.tsx b/apps/console/src/pages/organizations/statements-of-applicability/dialogs/PublishStatementOfApplicabilityDialog.tsx index cf368f3b1..ae40cc975 100644 --- a/apps/console/src/pages/organizations/statements-of-applicability/dialogs/PublishStatementOfApplicabilityDialog.tsx +++ b/apps/console/src/pages/organizations/statements-of-applicability/dialogs/PublishStatementOfApplicabilityDialog.tsx @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatError, type GraphQLError } from "@probo/helpers"; +import { formatError } from "@probo/helpers"; import { useTranslate } from "@probo/i18n"; import { Button, @@ -119,7 +119,7 @@ export function PublishStatementOfApplicabilityDialog({ title: __("Error"), description: formatError( __("Failed to publish Statement of Applicability"), - error as GraphQLError, + error, ), variant: "error", }); diff --git a/apps/console/src/pages/organizations/tasks/TasksPage.tsx b/apps/console/src/pages/organizations/tasks/TasksPage.tsx index 3f428cc51..c6d5542a3 100644 --- a/apps/console/src/pages/organizations/tasks/TasksPage.tsx +++ b/apps/console/src/pages/organizations/tasks/TasksPage.tsx @@ -18,7 +18,6 @@ import { Button, IconPlusLarge, PageHeader } from "@probo/ui"; import { type PreloadedQuery, usePreloadedQuery } from "react-relay"; import { graphql } from "relay-runtime"; -import type { TasksCardOrganizationFragment$key } from "#/__generated__/core/TasksCardOrganizationFragment.graphql"; import type { TasksPageQuery } from "#/__generated__/core/TasksPageQuery.graphql"; import TaskFormDialog from "#/components/tasks/TaskFormDialog"; import { OrganizationTasksCard } from "#/components/tasks/TasksCard"; @@ -39,13 +38,13 @@ interface Props { export default function TasksPage({ queryRef }: Props) { const { __ } = useTranslate(); - const query = usePreloadedQuery(tasksPageQuery, queryRef); + const query = usePreloadedQuery(tasksPageQuery, queryRef); usePageTitle(__("Tasks")); return (
( (thirdPartiesQuery, props.queryRef); // eslint-disable-next-line relay/generated-typescript-types const pagination = usePaginationFragment( paginatedThirdPartiesFragment, diff --git a/apps/console/src/pages/organizations/third-parties/ThirdPartyDetailPage.tsx b/apps/console/src/pages/organizations/third-parties/ThirdPartyDetailPage.tsx index dfe40e1ed..091ccd10e 100644 --- a/apps/console/src/pages/organizations/third-parties/ThirdPartyDetailPage.tsx +++ b/apps/console/src/pages/organizations/third-parties/ThirdPartyDetailPage.tsx @@ -58,7 +58,7 @@ type Props = { export default function ThirdPartyDetailPage(props: Props) { const environment = useRelayEnvironment(); - const { node: thirdParty } = usePreloadedQuery(thirdPartyNodeQuery, props.queryRef); + const { node: thirdParty } = usePreloadedQuery(thirdPartyNodeQuery, props.queryRef); const { __ } = useTranslate(); const organizationId = useOrganizationId(); const thirdPartyIdRef = useRef(thirdParty.id); diff --git a/apps/console/src/pages/organizations/third-parties/dialogs/CommonThirdPartyCombobox.tsx b/apps/console/src/pages/organizations/third-parties/dialogs/CommonThirdPartyCombobox.tsx index 2ebd8b3e7..0237c2a35 100644 --- a/apps/console/src/pages/organizations/third-parties/dialogs/CommonThirdPartyCombobox.tsx +++ b/apps/console/src/pages/organizations/third-parties/dialogs/CommonThirdPartyCombobox.tsx @@ -90,7 +90,7 @@ export function CommonThirdPartyCombobox({ onSelect, excludeNames, }: CommonThirdPartyComboboxProps) { - const data = usePreloadedQuery(commonThirdPartiesQuery, queryRef); + const data = usePreloadedQuery(commonThirdPartiesQuery, queryRef); const items = excludeNames ? data.commonThirdParties.filter(tp => !excludeNames.has(tp.name.toLowerCase())) diff --git a/apps/console/src/pages/organizations/third-parties/dialogs/PublishThirdPartyListDialog.tsx b/apps/console/src/pages/organizations/third-parties/dialogs/PublishThirdPartyListDialog.tsx index e8b3efd83..15ba1669c 100644 --- a/apps/console/src/pages/organizations/third-parties/dialogs/PublishThirdPartyListDialog.tsx +++ b/apps/console/src/pages/organizations/third-parties/dialogs/PublishThirdPartyListDialog.tsx @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatError, type GraphQLError } from "@probo/helpers"; +import { formatError } from "@probo/helpers"; import { useTranslate } from "@probo/i18n"; import { Button, @@ -118,7 +118,7 @@ export function PublishThirdPartyListDialog({ title: __("Error"), description: formatError( __("Failed to publish third parties"), - error as GraphQLError, + error, ), variant: "error", }); diff --git a/apps/console/src/pages/organizations/third-parties/dialogs/VettingDialog.tsx b/apps/console/src/pages/organizations/third-parties/dialogs/VettingDialog.tsx index ac0aac107..25490c764 100644 --- a/apps/console/src/pages/organizations/third-parties/dialogs/VettingDialog.tsx +++ b/apps/console/src/pages/organizations/third-parties/dialogs/VettingDialog.tsx @@ -12,7 +12,7 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatError, type GraphQLError } from "@probo/helpers"; +import { formatError } from "@probo/helpers"; import { useTranslate } from "@probo/i18n"; import { Button, @@ -85,7 +85,7 @@ export function VettingDialog({ thirdPartyId, websiteUrl, children }: VettingDia title: __("Error"), description: formatError( __("Failed to start vetting."), - errors as GraphQLError[], + errors, ), variant: "error", }); @@ -104,7 +104,7 @@ export function VettingDialog({ thirdPartyId, websiteUrl, children }: VettingDia title: __("Error"), description: formatError( __("Failed to start vetting."), - error as GraphQLError, + error, ), variant: "error", }); diff --git a/apps/console/src/pages/organizations/third-parties/third-parties/ThirdPartyThirdPartiesPage.tsx b/apps/console/src/pages/organizations/third-parties/third-parties/ThirdPartyThirdPartiesPage.tsx index dc474b9e3..75e11727d 100644 --- a/apps/console/src/pages/organizations/third-parties/third-parties/ThirdPartyThirdPartiesPage.tsx +++ b/apps/console/src/pages/organizations/third-parties/third-parties/ThirdPartyThirdPartiesPage.tsx @@ -126,7 +126,7 @@ interface Props { } export default function ThirdPartyThirdPartiesPage({ queryRef }: Props) { - const { node } = usePreloadedQuery(thirdPartyThirdPartiesPageQuery, queryRef); + const { node } = usePreloadedQuery(thirdPartyThirdPartiesPageQuery, queryRef); const thirdParty = node.__typename === "ThirdParty" ? node : null; const { __ } = useTranslate(); const organizationId = useOrganizationId(); diff --git a/apps/console/tsconfig.app.json b/apps/console/tsconfig.app.json index 1fdb3f133..a60b37b47 100644 --- a/apps/console/tsconfig.app.json +++ b/apps/console/tsconfig.app.json @@ -14,9 +14,8 @@ "moduleDetection": "force", "noEmit": true, "jsx": "react-jsx", - "baseUrl": ".", "paths": { - "#/*": ["src/*"] + "#/*": ["./src/*"] }, /* Linting */ diff --git a/apps/console/vite.config.ts b/apps/console/vite.config.ts index 871fdaf85..08af834ea 100644 --- a/apps/console/vite.config.ts +++ b/apps/console/vite.config.ts @@ -15,42 +15,45 @@ import { createRequire } from "node:module"; import { fileURLToPath, URL } from "node:url"; +import babel from "@rolldown/plugin-babel"; import tailwindcss from "@tailwindcss/vite"; import react from "@vitejs/plugin-react"; import { defineConfig } from "vite"; const require = createRequire(import.meta.url); +// @vitejs/plugin-react@6 (Vite 8) no longer runs Babel, so the Relay tagged +// template transform is applied via @rolldown/plugin-babel instead. The iam +// pages and the rest of the app compile against separate artifact directories. +const iamFiles = /src[/\\]pages[/\\]iam[/\\]/; + // https://vite.dev/config/ export default defineConfig({ plugins: [ - react({ - exclude: ["src/pages/iam/**/*"], - babel: { - plugins: [ - [ - "relay", - { - eagerEsModules: true, - artifactDirectory: "src/__generated__/core", - }, - ], + react(), + babel({ + exclude: [/[/\\]node_modules[/\\]/, /\0rolldown[/\\]runtime\.js/, iamFiles], + plugins: [ + [ + "relay", + { + eagerEsModules: true, + artifactDirectory: "src/__generated__/core", + }, ], - }, + ], }), - react({ - include: ["src/pages/iam/**/*"], - babel: { - plugins: [ - [ - "relay", - { - eagerEsModules: true, - artifactDirectory: "src/__generated__/iam", - }, - ], + babel({ + include: /src[/\\]pages[/\\]iam[/\\].*\.[jt]sx?(?:$|\?)/, + plugins: [ + [ + "relay", + { + eagerEsModules: true, + artifactDirectory: "src/__generated__/iam", + }, ], - }, + ], }), tailwindcss(), ], diff --git a/apps/trust/package.json b/apps/trust/package.json index 4b10f6832..c203cdb15 100644 --- a/apps/trust/package.json +++ b/apps/trust/package.json @@ -18,33 +18,34 @@ "@probo/routes": "^1.0.0", "@probo/ui": "1.0.0", "clsx": "^2.1.1", - "react": "^19.1.0", - "react-dom": "^19.1.0", + "react": "^19.2.7", + "react-dom": "^19.2.7", "react-error-boundary": "^6.0.0", "react-hook-form": "^7.56.4", "react-pdf": "^10.3.0", - "react-relay": "^20.1.1", - "react-router": "^7.17.0", - "relay-runtime": "^20.1.1", + "react-relay": "^21.0.1", + "react-router": "^8.0.0", + "relay-runtime": "^21.0.1", "usehooks-ts": "^3.1.1", "zod": "^3.25.71" }, "devDependencies": { + "@babel/core": "^7.29.0", "@probo/eslint-config": "1.0.0", "@probo/eslint-plugin-relay-types": "^1.0.0", - "@tailwindcss/vite": "^4.1.7", - "@types/node": "^22.15.21", - "@types/react": "^19.1.2", - "@types/react-dom": "^19.1.2", - "@types/react-relay": "^18.2.1", - "@types/relay-runtime": "^20.1.1", - "@vitejs/plugin-react": "^5.1.4", - "babel-plugin-relay": "^20.1.1", - "eslint": "^9.39.2", - "graphql": "^16.11.0", - "tailwindcss": "^4.1.7", - "typescript": "~5.8.3", - "vite": "^7.3.2" + "@rolldown/plugin-babel": "^0.2.3", + "@tailwindcss/vite": "^4.3.1", + "@types/babel__core": "^7.20.5", + "@types/node": "^24", + "@types/react": "^19.2.17", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^6.0.2", + "babel-plugin-relay": "^21.0.1", + "eslint": "^10.5.0", + "graphql": "^17.0.1", + "tailwindcss": "^4.3.1", + "typescript": "~6.0.3", + "vite": "^8.0.16" }, "volta": { "node": "24.4.0" diff --git a/apps/trust/src/layouts/MainLayout.tsx b/apps/trust/src/layouts/MainLayout.tsx index 96cdd410b..c17c25a21 100644 --- a/apps/trust/src/layouts/MainLayout.tsx +++ b/apps/trust/src/layouts/MainLayout.tsx @@ -30,7 +30,7 @@ type Props = { export function MainLayout(props: Props) { const { __ } = useTranslate(); - const data = usePreloadedQuery(currentTrustGraphQuery, props.queryRef); + const data = usePreloadedQuery(currentTrustGraphQuery, props.queryRef); const trustCenter = data.currentTrustCenter; const isAuthenticated = data.viewer != null; diff --git a/apps/trust/src/pages/DocumentPage.tsx b/apps/trust/src/pages/DocumentPage.tsx index 1f8a4978d..536977adb 100644 --- a/apps/trust/src/pages/DocumentPage.tsx +++ b/apps/trust/src/pages/DocumentPage.tsx @@ -218,7 +218,7 @@ export function DocumentPage({ queryRef }: Props) { const [fileData, setFileData] = useState(null); const [exportError, setExportError] = useState(null); - const data = usePreloadedQuery(documentPageQuery, queryRef); + const data = usePreloadedQuery(documentPageQuery, queryRef); const trustCenter = data.currentTrustCenter; const node = data.node; diff --git a/apps/trust/src/pages/NDAPage.tsx b/apps/trust/src/pages/NDAPage.tsx index 00a30f6c2..3a2a6e17f 100644 --- a/apps/trust/src/pages/NDAPage.tsx +++ b/apps/trust/src/pages/NDAPage.tsx @@ -104,7 +104,7 @@ export function NDAPage(props: { const isMobile = width < 1100; const isDesktop = !isMobile; - const queryData = usePreloadedQuery(ndaPageQuery, props.queryRef); + const queryData = usePreloadedQuery(ndaPageQuery, props.queryRef); const trustCenter = queryData.currentTrustCenter; const viewer = queryData.viewer; diff --git a/apps/trust/src/pages/SubprocessorsPage.tsx b/apps/trust/src/pages/SubprocessorsPage.tsx index 5f1ab74c2..7e28ccc44 100644 --- a/apps/trust/src/pages/SubprocessorsPage.tsx +++ b/apps/trust/src/pages/SubprocessorsPage.tsx @@ -27,7 +27,7 @@ type Props = { export function SubprocessorsPage({ queryRef }: Props) { const { __ } = useTranslate(); - const data = usePreloadedQuery(currentTrustSubprocessorsQuery, queryRef); + const data = usePreloadedQuery(currentTrustSubprocessorsQuery, queryRef); const subprocessors = data.currentTrustCenter?.subprocessors.edges.map(edge => edge.node) ?? []; diff --git a/apps/trust/src/pages/auth/ConnectPage.tsx b/apps/trust/src/pages/auth/ConnectPage.tsx index ac215c4e7..591b8263b 100644 --- a/apps/trust/src/pages/auth/ConnectPage.tsx +++ b/apps/trust/src/pages/auth/ConnectPage.tsx @@ -67,7 +67,7 @@ export function ConnectPage(props: { const { __ } = useTranslate(); const { toast } = useToast(); const [magicLinkSent, setMagicLinkSent] = useState(false); - const interval = useRef(undefined); + const interval = useRef>(undefined); const [timer, setTimer] = useState(timerDurationSeconds); const safeContinueUrl = useSafeContinueUrl(); diff --git a/apps/trust/tsconfig.app.json b/apps/trust/tsconfig.app.json index 1fdb3f133..a60b37b47 100644 --- a/apps/trust/tsconfig.app.json +++ b/apps/trust/tsconfig.app.json @@ -14,9 +14,8 @@ "moduleDetection": "force", "noEmit": true, "jsx": "react-jsx", - "baseUrl": ".", "paths": { - "#/*": ["src/*"] + "#/*": ["./src/*"] }, /* Linting */ diff --git a/apps/trust/vite.config.ts b/apps/trust/vite.config.ts index 173436ca8..6aa228f29 100644 --- a/apps/trust/vite.config.ts +++ b/apps/trust/vite.config.ts @@ -14,13 +14,20 @@ import { fileURLToPath, URL } from "node:url"; +import babel from "@rolldown/plugin-babel"; import tailwindcss from "@tailwindcss/vite"; import react from "@vitejs/plugin-react"; import { defineConfig } from "vite"; // https://vite.dev/config/ +// @vitejs/plugin-react@6 (Vite 8) no longer runs Babel, so the Relay tagged +// template transform is applied via @rolldown/plugin-babel instead. export default defineConfig({ - plugins: [react({ babel: { plugins: ["relay"] } }), tailwindcss()], + plugins: [ + react(), + babel({ plugins: ["relay"] }), + tailwindcss(), + ], build: { assetsDir: "assets", }, diff --git a/examples/cookie-banner-react/package.json b/examples/cookie-banner-react/package.json index 66a8df571..9d88e9c76 100644 --- a/examples/cookie-banner-react/package.json +++ b/examples/cookie-banner-react/package.json @@ -10,14 +10,14 @@ "dependencies": { "@probo/cookie-banner": "*", "posthog-js": "^1.376.2", - "react": "^19.2.1", - "react-dom": "^19.2.1" + "react": "^19.2.7", + "react-dom": "^19.2.7" }, "devDependencies": { - "@types/react": "^19.2.1", - "@types/react-dom": "^19.2.1", - "@vitejs/plugin-react": "^4.5.2", - "typescript": "~5.8.3", - "vite": "^6.3.5" + "@types/react": "^19.2.17", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^6.0.2", + "typescript": "~6.0.3", + "vite": "^8.0.16" } } diff --git a/package-lock.json b/package-lock.json index 86623ba9f..b27277886 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,10 +12,10 @@ "examples/*" ], "dependencies": { - "react-dom": "^19.2.1" + "react-dom": "^19.2.7" }, "devDependencies": { - "relay-compiler": "^20.1.1", + "relay-compiler": "^21.0.1", "turbo": "^2.9.14" }, "engines": { @@ -39,35 +39,230 @@ "@probo/ui": "1.0.0", "@tanstack/react-query": "^5.76.1", "clsx": "^2.1.1", - "react": "^19.1.0", - "react-dom": "^19.1.0", + "react": "^19.2.7", + "react-dom": "^19.2.7", "react-dropzone": "^14.3.8", "react-error-boundary": "^6.0.0", "react-hook-form": "^7.56.4", "react-pdf": "^10.3.0", - "react-relay": "^20.1.1", - "react-router": "^7.17.0", - "relay-runtime": "^20.1.1", + "react-relay": "^21.0.1", + "react-router": "^8.0.0", + "relay-runtime": "^21.0.1", "use-debounce": "^10.0.5", "usehooks-ts": "^3.1.1", "zod": "^3.25.17" }, "devDependencies": { + "@babel/core": "^7.29.0", "@probo/eslint-config": "1.0.0", "@probo/eslint-plugin-relay-types": "^1.0.0", - "@tailwindcss/vite": "^4.1.7", - "@types/node": "^22.15.21", - "@types/react": "^19.1.2", - "@types/react-dom": "^19.1.2", - "@types/react-relay": "^18.2.1", - "@types/relay-runtime": "^20.1.1", - "@vitejs/plugin-react": "^5.1.4", - "babel-plugin-relay": "^20.1.1", - "eslint": "^9.39.2", - "graphql": "^16.11.0", - "tailwindcss": "^4.1.7", - "typescript": "~5.8.3", - "vite": "^7.3.2" + "@rolldown/plugin-babel": "^0.2.3", + "@tailwindcss/vite": "^4.3.1", + "@types/babel__core": "^7.20.5", + "@types/node": "^24", + "@types/react": "^19.2.17", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^6.0.2", + "babel-plugin-relay": "^21.0.1", + "eslint": "^10.5.0", + "graphql": "^17.0.1", + "tailwindcss": "^4.3.1", + "typescript": "~6.0.3", + "vite": "^8.0.16" + } + }, + "apps/console/node_modules/@eslint/config-array": { + "version": "0.23.5", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.5.tgz", + "integrity": "sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^3.0.5", + "debug": "^4.3.1", + "minimatch": "^10.2.4" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "apps/console/node_modules/@eslint/config-helpers": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.6.0.tgz", + "integrity": "sha512-ii6Bw9jJ2zi2cWA2Z+9/QZ/+3DX6kwaV5Q986D/CdP3Lap3w/pgQZ373FV7byY/i7L4IRH/G43I5dz1ClsCbpA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^1.2.1" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "apps/console/node_modules/@eslint/core": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.2.1.tgz", + "integrity": "sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "apps/console/node_modules/@eslint/object-schema": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.5.tgz", + "integrity": "sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "apps/console/node_modules/@eslint/plugin-kit": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.7.2.tgz", + "integrity": "sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^1.2.1", + "levn": "^0.4.1" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "apps/console/node_modules/eslint": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.5.0.tgz", + "integrity": "sha512-1y+7C+vi12bUK1IpZeaV3gsH9fHLBmPvYmPx42pvT/E9yG0IC8g3PUZZgp0+JLJl7ZDK0flc2gc+Aw9dpCvIsQ==", + "dev": true, + "license": "MIT", + "workspaces": [ + "packages/*" + ], + "dependencies": { + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.2", + "@eslint/config-array": "^0.23.5", + "@eslint/config-helpers": "^0.6.0", + "@eslint/core": "^1.2.1", + "@eslint/plugin-kit": "^0.7.2", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.14.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^9.1.2", + "eslint-visitor-keys": "^5.0.1", + "espree": "^11.2.0", + "esquery": "^1.7.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "minimatch": "^10.2.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "apps/console/node_modules/eslint-scope": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-9.1.2.tgz", + "integrity": "sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@types/esrecurse": "^4.3.1", + "@types/estree": "^1.0.8", + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "apps/console/node_modules/eslint-visitor-keys": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "apps/console/node_modules/espree": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-11.2.0.tgz", + "integrity": "sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.16.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^5.0.1" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "apps/console/node_modules/graphql": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-17.0.1.tgz", + "integrity": "sha512-8eWbg5Zcv/8o20nzEjHUGPTj20MLFJjc5kagbIPxbaeGxvFwpitJhemEC/k17n5+UD4M/9ea5rTuce78mELujQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^22.0.0 || ^24.0.0 || ^25.0.0 || >=26.0.0" + } + }, + "apps/console/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" } }, "apps/trust": { @@ -81,33 +276,228 @@ "@probo/routes": "^1.0.0", "@probo/ui": "1.0.0", "clsx": "^2.1.1", - "react": "^19.1.0", - "react-dom": "^19.1.0", + "react": "^19.2.7", + "react-dom": "^19.2.7", "react-error-boundary": "^6.0.0", "react-hook-form": "^7.56.4", "react-pdf": "^10.3.0", - "react-relay": "^20.1.1", - "react-router": "^7.17.0", - "relay-runtime": "^20.1.1", + "react-relay": "^21.0.1", + "react-router": "^8.0.0", + "relay-runtime": "^21.0.1", "usehooks-ts": "^3.1.1", "zod": "^3.25.71" }, "devDependencies": { + "@babel/core": "^7.29.0", "@probo/eslint-config": "1.0.0", "@probo/eslint-plugin-relay-types": "^1.0.0", - "@tailwindcss/vite": "^4.1.7", - "@types/node": "^22.15.21", - "@types/react": "^19.1.2", - "@types/react-dom": "^19.1.2", - "@types/react-relay": "^18.2.1", - "@types/relay-runtime": "^20.1.1", - "@vitejs/plugin-react": "^5.1.4", - "babel-plugin-relay": "^20.1.1", - "eslint": "^9.39.2", - "graphql": "^16.11.0", - "tailwindcss": "^4.1.7", - "typescript": "~5.8.3", - "vite": "^7.3.2" + "@rolldown/plugin-babel": "^0.2.3", + "@tailwindcss/vite": "^4.3.1", + "@types/babel__core": "^7.20.5", + "@types/node": "^24", + "@types/react": "^19.2.17", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^6.0.2", + "babel-plugin-relay": "^21.0.1", + "eslint": "^10.5.0", + "graphql": "^17.0.1", + "tailwindcss": "^4.3.1", + "typescript": "~6.0.3", + "vite": "^8.0.16" + } + }, + "apps/trust/node_modules/@eslint/config-array": { + "version": "0.23.5", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.5.tgz", + "integrity": "sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^3.0.5", + "debug": "^4.3.1", + "minimatch": "^10.2.4" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "apps/trust/node_modules/@eslint/config-helpers": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.6.0.tgz", + "integrity": "sha512-ii6Bw9jJ2zi2cWA2Z+9/QZ/+3DX6kwaV5Q986D/CdP3Lap3w/pgQZ373FV7byY/i7L4IRH/G43I5dz1ClsCbpA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^1.2.1" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "apps/trust/node_modules/@eslint/core": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.2.1.tgz", + "integrity": "sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "apps/trust/node_modules/@eslint/object-schema": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.5.tgz", + "integrity": "sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "apps/trust/node_modules/@eslint/plugin-kit": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.7.2.tgz", + "integrity": "sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^1.2.1", + "levn": "^0.4.1" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "apps/trust/node_modules/eslint": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.5.0.tgz", + "integrity": "sha512-1y+7C+vi12bUK1IpZeaV3gsH9fHLBmPvYmPx42pvT/E9yG0IC8g3PUZZgp0+JLJl7ZDK0flc2gc+Aw9dpCvIsQ==", + "dev": true, + "license": "MIT", + "workspaces": [ + "packages/*" + ], + "dependencies": { + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.2", + "@eslint/config-array": "^0.23.5", + "@eslint/config-helpers": "^0.6.0", + "@eslint/core": "^1.2.1", + "@eslint/plugin-kit": "^0.7.2", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.14.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^9.1.2", + "eslint-visitor-keys": "^5.0.1", + "espree": "^11.2.0", + "esquery": "^1.7.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "minimatch": "^10.2.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "apps/trust/node_modules/eslint-scope": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-9.1.2.tgz", + "integrity": "sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@types/esrecurse": "^4.3.1", + "@types/estree": "^1.0.8", + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "apps/trust/node_modules/eslint-visitor-keys": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "apps/trust/node_modules/espree": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-11.2.0.tgz", + "integrity": "sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.16.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^5.0.1" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "apps/trust/node_modules/graphql": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-17.0.1.tgz", + "integrity": "sha512-8eWbg5Zcv/8o20nzEjHUGPTj20MLFJjc5kagbIPxbaeGxvFwpitJhemEC/k17n5+UD4M/9ea5rTuce78mELujQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^22.0.0 || ^24.0.0 || ^25.0.0 || >=26.0.0" + } + }, + "apps/trust/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" } }, "examples/cookie-banner-react": { @@ -116,627 +506,15 @@ "dependencies": { "@probo/cookie-banner": "*", "posthog-js": "^1.376.2", - "react": "^19.2.1", - "react-dom": "^19.2.1" + "react": "^19.2.7", + "react-dom": "^19.2.7" }, "devDependencies": { - "@types/react": "^19.2.1", - "@types/react-dom": "^19.2.1", - "@vitejs/plugin-react": "^4.5.2", - "typescript": "~5.8.3", - "vite": "^6.3.5" - } - }, - "examples/cookie-banner-react/node_modules/@esbuild/aix-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", - "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "examples/cookie-banner-react/node_modules/@esbuild/android-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", - "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "examples/cookie-banner-react/node_modules/@esbuild/android-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", - "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "examples/cookie-banner-react/node_modules/@esbuild/android-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", - "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "examples/cookie-banner-react/node_modules/@esbuild/darwin-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", - "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "examples/cookie-banner-react/node_modules/@esbuild/darwin-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", - "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "examples/cookie-banner-react/node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", - "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "examples/cookie-banner-react/node_modules/@esbuild/freebsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", - "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "examples/cookie-banner-react/node_modules/@esbuild/linux-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", - "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "examples/cookie-banner-react/node_modules/@esbuild/linux-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", - "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "examples/cookie-banner-react/node_modules/@esbuild/linux-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", - "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "examples/cookie-banner-react/node_modules/@esbuild/linux-loong64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", - "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "examples/cookie-banner-react/node_modules/@esbuild/linux-mips64el": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", - "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "examples/cookie-banner-react/node_modules/@esbuild/linux-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", - "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "examples/cookie-banner-react/node_modules/@esbuild/linux-riscv64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", - "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "examples/cookie-banner-react/node_modules/@esbuild/linux-s390x": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", - "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "examples/cookie-banner-react/node_modules/@esbuild/linux-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", - "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "examples/cookie-banner-react/node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", - "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "examples/cookie-banner-react/node_modules/@esbuild/netbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", - "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "examples/cookie-banner-react/node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", - "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "examples/cookie-banner-react/node_modules/@esbuild/openbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", - "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "examples/cookie-banner-react/node_modules/@esbuild/openharmony-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", - "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": ">=18" - } - }, - "examples/cookie-banner-react/node_modules/@esbuild/sunos-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", - "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "examples/cookie-banner-react/node_modules/@esbuild/win32-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", - "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "examples/cookie-banner-react/node_modules/@esbuild/win32-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", - "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "examples/cookie-banner-react/node_modules/@esbuild/win32-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", - "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "examples/cookie-banner-react/node_modules/@rolldown/pluginutils": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", - "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==", - "dev": true, - "license": "MIT" - }, - "examples/cookie-banner-react/node_modules/@vitejs/plugin-react": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz", - "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.28.0", - "@babel/plugin-transform-react-jsx-self": "^7.27.1", - "@babel/plugin-transform-react-jsx-source": "^7.27.1", - "@rolldown/pluginutils": "1.0.0-beta.27", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.17.0" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" - } - }, - "examples/cookie-banner-react/node_modules/esbuild": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", - "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.12", - "@esbuild/android-arm": "0.25.12", - "@esbuild/android-arm64": "0.25.12", - "@esbuild/android-x64": "0.25.12", - "@esbuild/darwin-arm64": "0.25.12", - "@esbuild/darwin-x64": "0.25.12", - "@esbuild/freebsd-arm64": "0.25.12", - "@esbuild/freebsd-x64": "0.25.12", - "@esbuild/linux-arm": "0.25.12", - "@esbuild/linux-arm64": "0.25.12", - "@esbuild/linux-ia32": "0.25.12", - "@esbuild/linux-loong64": "0.25.12", - "@esbuild/linux-mips64el": "0.25.12", - "@esbuild/linux-ppc64": "0.25.12", - "@esbuild/linux-riscv64": "0.25.12", - "@esbuild/linux-s390x": "0.25.12", - "@esbuild/linux-x64": "0.25.12", - "@esbuild/netbsd-arm64": "0.25.12", - "@esbuild/netbsd-x64": "0.25.12", - "@esbuild/openbsd-arm64": "0.25.12", - "@esbuild/openbsd-x64": "0.25.12", - "@esbuild/openharmony-arm64": "0.25.12", - "@esbuild/sunos-x64": "0.25.12", - "@esbuild/win32-arm64": "0.25.12", - "@esbuild/win32-ia32": "0.25.12", - "@esbuild/win32-x64": "0.25.12" - } - }, - "examples/cookie-banner-react/node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "examples/cookie-banner-react/node_modules/react-refresh": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", - "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "examples/cookie-banner-react/node_modules/vite": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.2.tgz", - "integrity": "sha512-2N/55r4JDJ4gdrCvGgINMy+HH3iRpNIz8K6SFwVsA+JbQScLiC+clmAxBgwiSPgcG9U15QmvqCGWzMbqda5zGQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "^0.25.0", - "fdir": "^6.4.4", - "picomatch": "^4.0.2", - "postcss": "^8.5.3", - "rollup": "^4.34.9", - "tinyglobby": "^0.2.13" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", - "jiti": ">=1.21.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } + "@types/react": "^19.2.17", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^6.0.2", + "typescript": "~6.0.3", + "vite": "^8.0.16" } }, "node_modules/@adobe/css-tools": { @@ -989,16 +767,6 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", - "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-string-parser": { "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", @@ -1056,38 +824,6 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", - "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", - "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/runtime": { "version": "7.29.2", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.2.tgz", @@ -1329,21 +1065,21 @@ } }, "node_modules/@emnapi/core": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", - "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz", + "integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==", "dev": true, "license": "MIT", "optional": true, "dependencies": { - "@emnapi/wasi-threads": "1.2.1", + "@emnapi/wasi-threads": "1.2.2", "tslib": "^2.4.0" } }, "node_modules/@emnapi/runtime": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", - "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz", + "integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==", "dev": true, "license": "MIT", "optional": true, @@ -1352,9 +1088,9 @@ } }, "node_modules/@emnapi/wasi-threads": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", - "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz", + "integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==", "dev": true, "license": "MIT", "optional": true, @@ -4050,6 +3786,17 @@ "node": ">=14" } }, + "node_modules/@oxc-project/types": { + "version": "0.137.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.137.0.tgz", + "integrity": "sha512-WT+Gb24i8hmvo85AIv2oEYouEXkRlKAlT9WaCa3TfLgNCN+GhrJOGZuIlMouAh38Qe4QOx26eUOVsq70qXrywA==", + "dev": true, + "license": "MIT", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, "node_modules/@package-json/types": { "version": "0.0.12", "resolved": "https://registry.npmjs.org/@package-json/types/-/types-0.0.12.tgz", @@ -5233,10 +4980,333 @@ "integrity": "sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==", "license": "MIT" }, + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.1.2.tgz", + "integrity": "sha512-2cZ+7xRS+DBcuJBJKnfzsbleumJhBqSlJVpuzHC0nTqfd3QQ7Vx2/x5YR/D7cBamKSeWplwo82Fn9lqYUDEMfA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "peer": true, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.1.2.tgz", + "integrity": "sha512-RkPMJnygxsgOYdkfqgpwY0/Fzm8d0VQe6HGU2/B00Xa9eqdLbrII+DOKAodbJAn3ZL1AJxGHkZRPYazgGY6Ljw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.1.2.tgz", + "integrity": "sha512-Uiczh6vFhwyfd7WNe7Q7mCA4KxAiLdz7jPE/WGizfRpIieoyFuNVMmM8HqZ9HwudTkY6/AeMQwlNJ9NJijguWw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.1.2.tgz", + "integrity": "sha512-+TpdtTRgHiJFjCVFbw311SuLk3KfytPOQQn+VlAEv+gBxYPtL7E6JS9e/tk+8CwxhIZvemJKo4rTKgfWNsKkkA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "peer": true, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.1.2.tgz", + "integrity": "sha512-4lv1/tkmi7ueIVHnyreaOeUpiZP26BH9rRy6hoYfR9310A2B9nUEVRDvBx69vx64Nr3eTPPRkyciqJJs+j9Jmw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.1.2.tgz", + "integrity": "sha512-gBSUVO0eaWgw1JMjK3gB8BMlX2Mk148s2lTiVT3e9vjVxbl7UDfMWWY8CfIaaqiXuM9fVTMxIpUz6CAo/B6Vlw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.1.2.tgz", + "integrity": "sha512-LjQP/iZLBu8o8PjIfk4x3At0/mT6h282pvz8Z5LAyhGbu/kDezyO7ea62rF5uoqmgnIYqbN/MqJ3Si3Aymi7xQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.1.2.tgz", + "integrity": "sha512-X/7bVLWelEsbyWDUSXt7zVsTniLLPIY2n1rH58qr78l9i7MNbbxBWD8gI2vRfBWf4NUXJCUuQnfZDsp32LqsfQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.1.2.tgz", + "integrity": "sha512-gb6dYKW/1KDorGXyy48glEBJs/sxVSC5pcVrox/pFGV4mvwSFeg2sK5L2tRkVsVlh7kueqOgg4GEcuipJcGuKg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.2.tgz", + "integrity": "sha512-JY4w85pU3iAiJVMh5nuk4/Mh9GjMsupe8MrIN53rwxAZW64GKrWeJBuN6SxQg9QTU5uB1cxyhDzW8jqRn1EABw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.1.2.tgz", + "integrity": "sha512-xvpA7o5KCYLB0Rwscmuylb1/zHHSUx4g4xilm4prC5jP76pEUlzBmMbgpbh7bVDbId4NcfT96gN5i6mE6UDaiw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.1.2.tgz", + "integrity": "sha512-p/ts6KBLjuk49Bp21XH77poQGt02iNz7ChgHep7tudPOaLinR/De/RHdxF8w8Yj4r/bF/bqXwH6PZrB2sA+Nvw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "peer": true, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.1.2.tgz", + "integrity": "sha512-VMu/wmrZ9hJzYlRhbw7jK5PODlugyKZ5mOdX78+lS8OvuFkWNQdz1pFLrI2p3P0pjXOmUZ7B48o5VnMH9QOGtg==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@emnapi/core": "1.11.1", + "@emnapi/runtime": "1.11.1", + "@napi-rs/wasm-runtime": "^1.1.5" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-wasm32-wasi/node_modules/@napi-rs/wasm-runtime": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.5.tgz", + "integrity": "sha512-AWPoBRJ9tsnVhor4sjO7rkni+7p+2IAEFj6cx06UgP10jkQHqay/36uRV/bFkgrh18D9vb4cr8Q0Pthskgzy+Q==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1" + } + }, + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.1.2.tgz", + "integrity": "sha512-xtUJqs8qEkuSviS0n1tsohaPuz3a1SPhZywOji4Oo+sgrJs8daEDMZ0QtqL0OS7dx8PoVpg2J/ZZycPY5I2+Zg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.1.2.tgz", + "integrity": "sha512-85YiLQqjUKgSO/Zjnf9e0XIn5Ymrh1fLDWBeAkZqpuBR/3R8TpfoHXuyblqyQrftSSgWO9qpcHN8mkyKsLraoA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/plugin-babel": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/plugin-babel/-/plugin-babel-0.2.3.tgz", + "integrity": "sha512-+zEk16yGlz1F9STiRr6uG9hmIXb6nprjLczV/htGptYuLoCuxb+itZ03RKCEeOhBpDDd1NU7qF6x1VLMUp62bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=22.12.0 || ^24.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.29.0 || ^8.0.0-rc.1", + "@babel/plugin-transform-runtime": "^7.29.0 || ^8.0.0-rc.1", + "@babel/runtime": "^7.27.0 || ^8.0.0-rc.1", + "rolldown": "^1.0.0-rc.5", + "vite": "^8.0.0" + }, + "peerDependenciesMeta": { + "@babel/plugin-transform-runtime": { + "optional": true + }, + "@babel/runtime": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-rc.3", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.3.tgz", - "integrity": "sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", + "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", "dev": true, "license": "MIT" }, @@ -5263,356 +5333,6 @@ } } }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.1.tgz", - "integrity": "sha512-d6FinEBLdIiK+1uACUttJKfgZREXrF0Qc2SmLII7W2AD8FfiZ9Wjd+rD/iRuf5s5dWrr1GgwXCvPqOuDquOowA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.1.tgz", - "integrity": "sha512-YjG/EwIDvvYI1YvYbHvDz/BYHtkY4ygUIXHnTdLhG+hKIQFBiosfWiACWortsKPKU/+dUwQQCKQM3qrDe8c9BA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.1.tgz", - "integrity": "sha512-mjCpF7GmkRtSJwon+Rq1N8+pI+8l7w5g9Z3vWj4T7abguC4Czwi3Yu/pFaLvA3TTeMVjnu3ctigusqWUfjZzvw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.1.tgz", - "integrity": "sha512-haZ7hJ1JT4e9hqkoT9R/19XW2QKqjfJVv+i5AGg57S+nLk9lQnJ1F/eZloRO3o9Scy9CM3wQ9l+dkXtcBgN5Ew==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.1.tgz", - "integrity": "sha512-czw90wpQq3ZsAVBlinZjAYTKduOjTywlG7fEeWKUA7oCmpA8xdTkxZZlwNJKWqILlq0wehoZcJYfBvOyhPTQ6w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.1.tgz", - "integrity": "sha512-KVB2rqsxTHuBtfOeySEyzEOB7ltlB/ux38iu2rBQzkjbwRVlkhAGIEDiiYnO2kFOkJp+Z7pUXKyrRRFuFUKt+g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.1.tgz", - "integrity": "sha512-L+34Qqil+v5uC0zEubW7uByo78WOCIrBvci69E7sFASRl0X7b/MB6Cqd1lky/CtcSVTydWa2WZwFuWexjS5o6g==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.1.tgz", - "integrity": "sha512-n83O8rt4v34hgFzlkb1ycniJh7IR5RCIqt6mz1VRJD6pmhRi0CXdmfnLu9dIUS6buzh60IvACM842Ffb3xd6Gg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.1.tgz", - "integrity": "sha512-Nql7sTeAzhTAja3QXeAI48+/+GjBJ+QmAH13snn0AJSNL50JsDqotyudHyMbO2RbJkskbMbFJfIJKWA6R1LCJQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.1.tgz", - "integrity": "sha512-+pUymDhd0ys9GcKZPPWlFiZ67sTWV5UU6zOJat02M1+PiuSGDziyRuI/pPue3hoUwm2uGfxdL+trT6Z9rxnlMA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.1.tgz", - "integrity": "sha512-VSvgvQeIcsEvY4bKDHEDWcpW4Yw7BtlKG1GUT4FzBUlEKQK0rWHYBqQt6Fm2taXS+1bXvJT6kICu5ZwqKCnvlQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loong64-musl": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.1.tgz", - "integrity": "sha512-4LqhUomJqwe641gsPp6xLfhqWMbQV04KtPp7/dIp0nzPxAkNY1AbwL5W0MQpcalLYk07vaW9Kp1PBhdpZYYcEw==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.1.tgz", - "integrity": "sha512-tLQQ9aPvkBxOc/EUT6j3pyeMD6Hb8QF2BTBnCQWP/uu1lhc9AIrIjKnLYMEroIz/JvtGYgI9dF3AxHZNaEH0rw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-ppc64-musl": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.1.tgz", - "integrity": "sha512-RMxFhJwc9fSXP6PqmAz4cbv3kAyvD1etJFjTx4ONqFP9DkTkXsAMU4v3Vyc5BgzC+anz7nS/9tp4obsKfqkDHg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.1.tgz", - "integrity": "sha512-QKgFl+Yc1eEk6MmOBfRHYF6lTxiiiV3/z/BRrbSiW2I7AFTXoBFvdMEyglohPj//2mZS4hDOqeB0H1ACh3sBbg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.1.tgz", - "integrity": "sha512-RAjXjP/8c6ZtzatZcA1RaQr6O1TRhzC+adn8YZDnChliZHviqIjmvFwHcxi4JKPSDAt6Uhf/7vqcBzQJy0PDJg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.1.tgz", - "integrity": "sha512-wcuocpaOlaL1COBYiA89O6yfjlp3RwKDeTIA0hM7OpmhR1Bjo9j31G1uQVpDlTvwxGn2nQs65fBFL5UFd76FcQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.1.tgz", - "integrity": "sha512-77PpsFQUCOiZR9+LQEFg9GClyfkNXj1MP6wRnzYs0EeWbPcHs02AXu4xuUbM1zhwn3wqaizle3AEYg5aeoohhg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.1.tgz", - "integrity": "sha512-5cIATbk5vynAjqqmyBjlciMJl1+R/CwX9oLk/EyiFXDWd95KpHdrOJT//rnUl4cUcskrd0jCCw3wpZnhIHdD9w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-openbsd-x64": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.1.tgz", - "integrity": "sha512-cl0w09WsCi17mcmWqqglez9Gk8isgeWvoUZ3WiJFYSR3zjBQc2J5/ihSjpl+VLjPqjQ/1hJRcqBfLjssREQILw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ] - }, - "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.1.tgz", - "integrity": "sha512-4Cv23ZrONRbNtbZa37mLSueXUCtN7MXccChtKpUnQNgF010rjrjfHx3QxkS2PI7LqGT5xXyYs1a7LbzAwT0iCA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.1.tgz", - "integrity": "sha512-i1okWYkA4FJICtr7KpYzFpRTHgy5jdDbZiWfvny21iIKky5YExiDXP+zbXzm3dUcFpkEeYNHgQ5fuG236JPq0g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.1.tgz", - "integrity": "sha512-u09m3CuwLzShA0EYKMNiFgcjjzwqtUMLmuCJLeZWjjOYA3IT2Di09KaxGBTP9xVztWyIWjVdsB2E9goMjZvTQg==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.1.tgz", - "integrity": "sha512-k+600V9Zl1CM7eZxJgMyTUzmrmhB/0XZnF4pRypKAlAgxmedUA+1v9R+XOFv56W4SlHEzfeMtzujLJD22Uz5zg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.1.tgz", - "integrity": "sha512-lWMnixq/QzxyhTV6NjQJ4SFo1J6PvOX8vUx5Wb4bBPsEb+8xZ89Bz6kOXpfXj9ak9AHTQVQzlgzBEc1SyM27xQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, "node_modules/@selderee/plugin-htmlparser2": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@selderee/plugin-htmlparser2/-/plugin-htmlparser2-0.11.0.tgz", @@ -5881,49 +5601,49 @@ } }, "node_modules/@tailwindcss/node": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.2.2.tgz", - "integrity": "sha512-pXS+wJ2gZpVXqFaUEjojq7jzMpTGf8rU6ipJz5ovJV6PUGmlJ+jvIwGrzdHdQ80Sg+wmQxUFuoW1UAAwHNEdFA==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.3.1.tgz", + "integrity": "sha512-6NDaqRoAMSXD1mr/RXu0HBvNE9a2n5tHPsxu9XHLws8o4Twes5rBM2205SUUiJ9goAtadrN6xTGX0UDEwp/N4A==", "dev": true, "license": "MIT", "dependencies": { "@jridgewell/remapping": "^2.3.5", - "enhanced-resolve": "^5.19.0", - "jiti": "^2.6.1", + "enhanced-resolve": "5.21.6", + "jiti": "^2.7.0", "lightningcss": "1.32.0", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", - "tailwindcss": "4.2.2" + "tailwindcss": "4.3.1" } }, "node_modules/@tailwindcss/oxide": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.2.2.tgz", - "integrity": "sha512-qEUA07+E5kehxYp9BVMpq9E8vnJuBHfJEC0vPC5e7iL/hw7HR61aDKoVoKzrG+QKp56vhNZe4qwkRmMC0zDLvg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.3.1.tgz", + "integrity": "sha512-yVPyo8RNkabVr3O2EhHEE0Rewu7YKzc1DhIqfL46LKveFrmu9XbDazNOJY7/GRuvw1h6u3utWnR29H/p5JPlgA==", "dev": true, "license": "MIT", "engines": { "node": ">= 20" }, "optionalDependencies": { - "@tailwindcss/oxide-android-arm64": "4.2.2", - "@tailwindcss/oxide-darwin-arm64": "4.2.2", - "@tailwindcss/oxide-darwin-x64": "4.2.2", - "@tailwindcss/oxide-freebsd-x64": "4.2.2", - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.2", - "@tailwindcss/oxide-linux-arm64-gnu": "4.2.2", - "@tailwindcss/oxide-linux-arm64-musl": "4.2.2", - "@tailwindcss/oxide-linux-x64-gnu": "4.2.2", - "@tailwindcss/oxide-linux-x64-musl": "4.2.2", - "@tailwindcss/oxide-wasm32-wasi": "4.2.2", - "@tailwindcss/oxide-win32-arm64-msvc": "4.2.2", - "@tailwindcss/oxide-win32-x64-msvc": "4.2.2" + "@tailwindcss/oxide-android-arm64": "4.3.1", + "@tailwindcss/oxide-darwin-arm64": "4.3.1", + "@tailwindcss/oxide-darwin-x64": "4.3.1", + "@tailwindcss/oxide-freebsd-x64": "4.3.1", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.1", + "@tailwindcss/oxide-linux-arm64-gnu": "4.3.1", + "@tailwindcss/oxide-linux-arm64-musl": "4.3.1", + "@tailwindcss/oxide-linux-x64-gnu": "4.3.1", + "@tailwindcss/oxide-linux-x64-musl": "4.3.1", + "@tailwindcss/oxide-wasm32-wasi": "4.3.1", + "@tailwindcss/oxide-win32-arm64-msvc": "4.3.1", + "@tailwindcss/oxide-win32-x64-msvc": "4.3.1" } }, "node_modules/@tailwindcss/oxide-android-arm64": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.2.2.tgz", - "integrity": "sha512-dXGR1n+P3B6748jZO/SvHZq7qBOqqzQ+yFrXpoOWWALWndF9MoSKAT3Q0fYgAzYzGhxNYOoysRvYlpixRBBoDg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.1.tgz", + "integrity": "sha512-SVlyf61g374l5cHyg8x9kf5xmLcOaxvOTsbsqDnSsDJaKOEFZ7GCvi84VAVGpxojYOs1+3K6M0UjXfqPU8vmOQ==", "cpu": [ "arm64" ], @@ -5938,9 +5658,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-arm64": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.2.2.tgz", - "integrity": "sha512-iq9Qjr6knfMpZHj55/37ouZeykwbDqF21gPFtfnhCCKGDcPI/21FKC9XdMO/XyBM7qKORx6UIhGgg6jLl7BZlg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.1.tgz", + "integrity": "sha512-hVnWLwv+e/l7c4WKyVtHVrIPvYdqWHjRB3MDIqARynzFtnQg85kmQEFCbV9Ja0VVx4xXTIiDWY60Y7iz/iNoDA==", "cpu": [ "arm64" ], @@ -5955,9 +5675,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-x64": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.2.2.tgz", - "integrity": "sha512-BlR+2c3nzc8f2G639LpL89YY4bdcIdUmiOOkv2GQv4/4M0vJlpXEa0JXNHhCHU7VWOKWT/CjqHdTP8aUuDJkuw==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.1.tgz", + "integrity": "sha512-Cf7abu0WVgbhU7ANgPUnSAvm7nCvMweusHb8FnaHlLfv/Caq4GYaEZg7ZImzzmjx4lIAfuS8q+eLIS7A7IzxIg==", "cpu": [ "x64" ], @@ -5972,9 +5692,9 @@ } }, "node_modules/@tailwindcss/oxide-freebsd-x64": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.2.2.tgz", - "integrity": "sha512-YUqUgrGMSu2CDO82hzlQ5qSb5xmx3RUrke/QgnoEx7KvmRJHQuZHZmZTLSuuHwFf0DJPybFMXMYf+WJdxHy/nQ==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.1.tgz", + "integrity": "sha512-ZZqzX2Y+GXtXXfqSfpJhDm60OoZfvLHLCgm+J7NVqgHHJjG/m9ugZI77RwTsVd4fnBJuCFP6Ae6kTJb71UdS8g==", "cpu": [ "x64" ], @@ -5989,9 +5709,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.2.2.tgz", - "integrity": "sha512-FPdhvsW6g06T9BWT0qTwiVZYE2WIFo2dY5aCSpjG/S/u1tby+wXoslXS0kl3/KXnULlLr1E3NPRRw0g7t2kgaQ==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.1.tgz", + "integrity": "sha512-/Ah/xik0LaMYfv9DZ0S/t4pBlBNYOcqtRwusjgovHkvT8ixueWCLyJjsaF5kQIckjb4IT8Q6K6p/iPmZMixYgg==", "cpu": [ "arm" ], @@ -6006,9 +5726,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.2.2.tgz", - "integrity": "sha512-4og1V+ftEPXGttOO7eCmW7VICmzzJWgMx+QXAJRAhjrSjumCwWqMfkDrNu1LXEQzNAwz28NCUpucgQPrR4S2yw==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.1.tgz", + "integrity": "sha512-gqdFoVJlw444GvpnheZLHmvTzSxI/cOUUh2KSNejQjTcYkW062SVD+En0rUgD+QV91bz1XGIGtt1HJd48xUGbQ==", "cpu": [ "arm64" ], @@ -6023,9 +5743,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-musl": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.2.2.tgz", - "integrity": "sha512-oCfG/mS+/+XRlwNjnsNLVwnMWYH7tn/kYPsNPh+JSOMlnt93mYNCKHYzylRhI51X+TbR+ufNhhKKzm6QkqX8ag==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.1.tgz", + "integrity": "sha512-Bwv9KwOvE0VKa86xPFif9b9c3Y1NxOV1P0gLti/IYaWEsQYZXDlxfGEtA8mdDZ7SG3wyNXAWYT5SIn3giL57oA==", "cpu": [ "arm64" ], @@ -6040,9 +5760,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-gnu": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.2.2.tgz", - "integrity": "sha512-rTAGAkDgqbXHNp/xW0iugLVmX62wOp2PoE39BTCGKjv3Iocf6AFbRP/wZT/kuCxC9QBh9Pu8XPkv/zCZB2mcMg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.1.tgz", + "integrity": "sha512-Ymi8O8T15HYQdOUWUtTI6ldN0neHP85FC+Qz32xTcZ7iJXtem/x8ITev0o1e9e5rkqj4lONZfTRLvkmin1+tKg==", "cpu": [ "x64" ], @@ -6057,9 +5777,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-musl": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.2.2.tgz", - "integrity": "sha512-XW3t3qwbIwiSyRCggeO2zxe3KWaEbM0/kW9e8+0XpBgyKU4ATYzcVSMKteZJ1iukJ3HgHBjbg9P5YPRCVUxlnQ==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.1.tgz", + "integrity": "sha512-M+P/91qJ6uILLw4k2G93GMDRAXj61SMvFQYt39AqvUqYgExXpLL5aepfns7sj4HiAQeolirQF9E0lzRvdf4zPQ==", "cpu": [ "x64" ], @@ -6074,9 +5794,9 @@ } }, "node_modules/@tailwindcss/oxide-wasm32-wasi": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.2.2.tgz", - "integrity": "sha512-eKSztKsmEsn1O5lJ4ZAfyn41NfG7vzCg496YiGtMDV86jz1q/irhms5O0VrY6ZwTUkFy/EKG3RfWgxSI3VbZ8Q==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.1.tgz", + "integrity": "sha512-zsM8uOeqvVGHsAXsJxsT28ttosFahLJKCLOTUBqRAtKnVgGSRitds9T432QiT8b77Yga7JIBkulIRRlJPtYhRA==", "bundleDependencies": [ "@napi-rs/wasm-runtime", "@emnapi/core", @@ -6092,11 +5812,11 @@ "license": "MIT", "optional": true, "dependencies": { - "@emnapi/core": "^1.8.1", - "@emnapi/runtime": "^1.8.1", - "@emnapi/wasi-threads": "^1.1.0", - "@napi-rs/wasm-runtime": "^1.1.1", - "@tybys/wasm-util": "^0.10.1", + "@emnapi/core": "^1.10.0", + "@emnapi/runtime": "^1.10.0", + "@emnapi/wasi-threads": "^1.2.1", + "@napi-rs/wasm-runtime": "^1.1.4", + "@tybys/wasm-util": "^0.10.2", "tslib": "^2.8.1" }, "engines": { @@ -6104,9 +5824,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.2.2.tgz", - "integrity": "sha512-qPmaQM4iKu5mxpsrWZMOZRgZv1tOZpUm+zdhhQP0VhJfyGGO3aUKdbh3gDZc/dPLQwW4eSqWGrrcWNBZWUWaXQ==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.1.tgz", + "integrity": "sha512-aiNvSq9BsVk8V513lDKlrCFAgf8qBMPZTpgEhInL+NwQqs97mYmupVMrPrgBBSL8Pv/0zXu9MrMF9rMun1ZeNg==", "cpu": [ "arm64" ], @@ -6121,9 +5841,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-x64-msvc": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.2.2.tgz", - "integrity": "sha512-1T/37VvI7WyH66b+vqHj/cLwnCxt7Qt3WFu5Q8hk65aOvlwAhs7rAp1VkulBJw/N4tMirXjVnylTR72uI0HGcA==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.1.tgz", + "integrity": "sha512-xDEyu1rg290472FEGaKHnzyDyh5QH+AlWvsU5hMoMtPpzmKlRI0jaYKCgSHDYtaQWZOYbMaduSyCwFwY4n1HmA==", "cpu": [ "x64" ], @@ -6151,15 +5871,15 @@ } }, "node_modules/@tailwindcss/vite": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.2.2.tgz", - "integrity": "sha512-mEiF5HO1QqCLXoNEfXVA1Tzo+cYsrqV7w9Juj2wdUFyW07JRenqMG225MvPwr3ZD9N1bFQj46X7r33iHxLUW0w==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.3.1.tgz", + "integrity": "sha512-hItDHuIIlEV61R+faXu66s1K36aTurO/Qw0e45Vskz57gXl9pWOT6eg3zmcEui6CZXddbN7zd41bwmvag4JGwQ==", "dev": true, "license": "MIT", "dependencies": { - "@tailwindcss/node": "4.2.2", - "@tailwindcss/oxide": "4.2.2", - "tailwindcss": "4.2.2" + "@tailwindcss/node": "4.3.1", + "@tailwindcss/oxide": "4.3.1", + "tailwindcss": "4.3.1" }, "peerDependencies": { "vite": "^5.2.0 || ^6 || ^7 || ^8" @@ -6872,9 +6592,9 @@ ] }, "node_modules/@tybys/wasm-util": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", - "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.2.tgz", + "integrity": "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==", "dev": true, "license": "MIT", "optional": true, @@ -7231,6 +6951,13 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/esrecurse": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@types/esrecurse/-/esrecurse-4.3.1.tgz", + "integrity": "sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/estree": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", @@ -7306,12 +7033,12 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.19.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.17.tgz", - "integrity": "sha512-wGdMcf+vPYM6jikpS/qhg6WiqSV/OhG+jeeHT/KlVqxYfD40iYJf9/AE1uQxVWFvU7MipKRkRv8NSHiCGgPr8Q==", + "version": "24.13.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.13.2.tgz", + "integrity": "sha512-fRa09kZTgu8o71KFcDjUFuc7F+dEbZYZmkI0mg5YBTRs0yMKjYHsq/c0urDKeDb+D5qVgXOdFcuu+DZPKOITwA==", "license": "MIT", "dependencies": { - "undici-types": "~6.21.0" + "undici-types": "~7.18.0" } }, "node_modules/@types/node-fetch": { @@ -7334,9 +7061,9 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "19.2.14", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz", - "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", + "version": "19.2.17", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.17.tgz", + "integrity": "sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==", "license": "MIT", "dependencies": { "csstype": "^3.2.2" @@ -7351,24 +7078,6 @@ "@types/react": "^19.2.0" } }, - "node_modules/@types/react-relay": { - "version": "18.2.1", - "resolved": "https://registry.npmjs.org/@types/react-relay/-/react-relay-18.2.1.tgz", - "integrity": "sha512-KgmFapsxAylhxcFfaAv5GZZJhTHnDvV8IDZVsUm5afpJUvgZC1Y68ssfOGsFfiFY/2EhxHM/YPfpdKbfmF3Ecg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/react": "*", - "@types/relay-runtime": "*" - } - }, - "node_modules/@types/relay-runtime": { - "version": "20.1.1", - "resolved": "https://registry.npmjs.org/@types/relay-runtime/-/relay-runtime-20.1.1.tgz", - "integrity": "sha512-loM2iJteknnJcsxrynmBVb7pIDkSkJUuCMnAa/oDFcrvaxkDvq8iy0J2UshMdDy14iJJocDblXeAu7c6Q1+Ucw==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/resolve": { "version": "1.20.6", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.6.tgz", @@ -7420,17 +7129,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.58.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.58.2.tgz", - "integrity": "sha512-aC2qc5thQahutKjP+cl8cgN9DWe3ZUqVko30CMSZHnFEHyhOYoZSzkGtAI2mcwZ38xeImDucI4dnqsHiOYuuCw==", + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.61.1.tgz", + "integrity": "sha512-ZPlVl3PB3et/59Ne0fv/sci6ZXz4T4Hp4nTJ56i/Y0gR89ARb+KphojTq6j+56E5PIezmOIOOWyY+aWQFd+IkQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.58.2", - "@typescript-eslint/type-utils": "8.58.2", - "@typescript-eslint/utils": "8.58.2", - "@typescript-eslint/visitor-keys": "8.58.2", + "@typescript-eslint/scope-manager": "8.61.1", + "@typescript-eslint/type-utils": "8.61.1", + "@typescript-eslint/utils": "8.61.1", + "@typescript-eslint/visitor-keys": "8.61.1", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.5.0" @@ -7443,22 +7152,22 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.58.2", + "@typescript-eslint/parser": "^8.61.1", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/parser": { - "version": "8.58.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.58.2.tgz", - "integrity": "sha512-/Zb/xaIDfxeJnvishjGdcR4jmr7S+bda8PKNhRGdljDM+elXhlvN0FyPSsMnLmJUrVG9aPO6dof80wjMawsASg==", + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.61.1.tgz", + "integrity": "sha512-PJ5vePq5/ognBbrIcoC5+SHO5dfpeLPzP9FpLkzWrguoYQEeeSjlJpVwOpo1JRSTEi7dRcwNy4h4dzV70PqHcg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.58.2", - "@typescript-eslint/types": "8.58.2", - "@typescript-eslint/typescript-estree": "8.58.2", - "@typescript-eslint/visitor-keys": "8.58.2", + "@typescript-eslint/scope-manager": "8.61.1", + "@typescript-eslint/types": "8.61.1", + "@typescript-eslint/typescript-estree": "8.61.1", + "@typescript-eslint/visitor-keys": "8.61.1", "debug": "^4.4.3" }, "engines": { @@ -7474,14 +7183,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.58.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.58.2.tgz", - "integrity": "sha512-Cq6UfpZZk15+r87BkIh5rDpi38W4b+Sjnb8wQCPPDDweS/LRCFjCyViEbzHk5Ck3f2QDfgmlxqSa7S7clDtlfg==", + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.61.1.tgz", + "integrity": "sha512-PrC4JYGmR241lYnfhmKGTXkFqv8+ymbTFgSAY0fVXpY82/QkMw5TZPl+vGzuDDU2QYJk9fIDOBTntF+yDv9LEA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.58.2", - "@typescript-eslint/types": "^8.58.2", + "@typescript-eslint/tsconfig-utils": "^8.61.1", + "@typescript-eslint/types": "^8.61.1", "debug": "^4.4.3" }, "engines": { @@ -7496,14 +7205,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.58.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.58.2.tgz", - "integrity": "sha512-SgmyvDPexWETQek+qzZnrG6844IaO02UVyOLhI4wpo82dpZJY9+6YZCKAMFzXb7qhx37mFK1QcPQ18tud+vo6Q==", + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.61.1.tgz", + "integrity": "sha512-L2bdIeoQS8FlKAvONAr20w6OcLXeB+qiDKbAooS9A0Ben+iSIkBef0FxqwKWYqt5sa0i4KJtxVyVmhMylKzF5w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.58.2", - "@typescript-eslint/visitor-keys": "8.58.2" + "@typescript-eslint/types": "8.61.1", + "@typescript-eslint/visitor-keys": "8.61.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -7514,9 +7223,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.58.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.58.2.tgz", - "integrity": "sha512-3SR+RukipDvkkKp/d0jP0dyzuls3DbGmwDpVEc5wqk5f38KFThakqAAO0XMirWAE+kT00oTauTbzMFGPoAzB0A==", + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.61.1.tgz", + "integrity": "sha512-UN/H4di+OO7EWx2ovME+8t31YO+KVnK0RRKEHR3kOt21/Ay8BOq3M1OMvWs5vNiqcFCYGYoxK3MXPZzmMUE+yg==", "dev": true, "license": "MIT", "engines": { @@ -7531,15 +7240,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.58.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.58.2.tgz", - "integrity": "sha512-Z7EloNR/B389FvabdGeTo2XMs4W9TjtPiO9DAsmT0yom0bwlPyRjkJ1uCdW1DvrrrYP50AJZ9Xc3sByZA9+dcg==", + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.61.1.tgz", + "integrity": "sha512-GYRicKmVK0C4fsKgaACaknOUAq9Oa2kwsjnpFhFcS/5p4Ht5IP9OVLbgIgcK4SRk92nVHFluurg1lumD9dBcLw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.58.2", - "@typescript-eslint/typescript-estree": "8.58.2", - "@typescript-eslint/utils": "8.58.2", + "@typescript-eslint/types": "8.61.1", + "@typescript-eslint/typescript-estree": "8.61.1", + "@typescript-eslint/utils": "8.61.1", "debug": "^4.4.3", "ts-api-utils": "^2.5.0" }, @@ -7556,9 +7265,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.58.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.58.2.tgz", - "integrity": "sha512-9TukXyATBQf/Jq9AMQXfvurk+G5R2MwfqQGDR2GzGz28HvY/lXNKGhkY+6IOubwcquikWk5cjlgPvD2uAA7htQ==", + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.61.1.tgz", + "integrity": "sha512-G+CRlPqLv7Bz1IZVs03x5K59F1veqL0EJUROAdGhKsEq8qOiRiZbI+HUojPq5l0fEGOKModD9br6lObhB8zkoA==", "dev": true, "license": "MIT", "engines": { @@ -7570,16 +7279,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.58.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.58.2.tgz", - "integrity": "sha512-ELGuoofuhhoCvNbQjFFiobFcGgcDCEm0ThWdmO4Z0UzLqPXS3KFvnEZ+SHewwOYHjM09tkzOWXNTv9u6Gqtyuw==", + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.61.1.tgz", + "integrity": "sha512-u+oQD3BqYWPc8YV9Zab4vaJElJuwOLPRc10Jm1o/qS+6Qwen14HCWwx0Seo4LnSn2wxea2Ik8DxPt2/FHmuhrg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.58.2", - "@typescript-eslint/tsconfig-utils": "8.58.2", - "@typescript-eslint/types": "8.58.2", - "@typescript-eslint/visitor-keys": "8.58.2", + "@typescript-eslint/project-service": "8.61.1", + "@typescript-eslint/tsconfig-utils": "8.61.1", + "@typescript-eslint/types": "8.61.1", + "@typescript-eslint/visitor-keys": "8.61.1", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", @@ -7598,16 +7307,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.58.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.58.2.tgz", - "integrity": "sha512-QZfjHNEzPY8+l0+fIXMvuQ2sJlplB4zgDZvA+NmvZsZv3EQwOcc1DuIU1VJUTWZ/RKouBMhDyNaBMx4sWvrzRA==", + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.61.1.tgz", + "integrity": "sha512-1+P/3Dj6jvtybE1q0HQ6yBt/gq+oKJyLdEv4HdnqasaEXRSYCAsD59mXEVQnM/ULNdQxbX77tdG4jPRjIS6knA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.58.2", - "@typescript-eslint/types": "8.58.2", - "@typescript-eslint/typescript-estree": "8.58.2" + "@typescript-eslint/scope-manager": "8.61.1", + "@typescript-eslint/types": "8.61.1", + "@typescript-eslint/typescript-estree": "8.61.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -7622,13 +7331,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.58.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.58.2.tgz", - "integrity": "sha512-f1WO2Lx8a9t8DARmcWAUPJbu0G20bJlj8L4z72K00TMeJAoyLr/tHhI/pzYBLrR4dXWkcxO1cWYZEOX8DKHTqA==", + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.61.1.tgz", + "integrity": "sha512-6fJ9MHWtK14C1DSkiMlHUSOmrVebL7150xZJBlJiL62jjhIA4JmOq6flwBgDxIdBKKdoiZRel+dfPD5MLfny3w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.58.2", + "@typescript-eslint/types": "8.61.1", "eslint-visitor-keys": "^5.0.0" }, "engines": { @@ -7938,24 +7647,29 @@ } }, "node_modules/@vitejs/plugin-react": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.2.0.tgz", - "integrity": "sha512-YmKkfhOAi3wsB1PhJq5Scj3GXMn3WvtQ/JC0xoopuHoXSdmtdStOpFrYaT1kie2YgFBcIe64ROzMYRjCrYOdYw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.0.2.tgz", + "integrity": "sha512-DlSMqo4WhThw4vB8Mpn0Woe9J+Jfq1geJ61AKW0QEgLzGMNwtIMdxbDUzLxcun8W7NbJO0e2Jg/Nxm3cCSVzzg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "^7.29.0", - "@babel/plugin-transform-react-jsx-self": "^7.27.1", - "@babel/plugin-transform-react-jsx-source": "^7.27.1", - "@rolldown/pluginutils": "1.0.0-rc.3", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.18.0" + "@rolldown/pluginutils": "^1.0.0" }, "engines": { "node": "^20.19.0 || >=22.12.0" }, "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" + "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0", + "babel-plugin-react-compiler": "^1.0.0", + "vite": "^8.0.0" + }, + "peerDependenciesMeta": { + "@rolldown/plugin-babel": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + } } }, "node_modules/@vitest/expect": { @@ -8790,9 +8504,9 @@ } }, "node_modules/babel-plugin-relay": { - "version": "20.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-relay/-/babel-plugin-relay-20.1.1.tgz", - "integrity": "sha512-BWlqLPiHbxZTxlyng2rVgsZCwztHNje7H8FR4c+UKy3ErQJBG6BKLr9vUdeR7mAZCH2v0sOAxNhG6zR1FrWjAg==", + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/babel-plugin-relay/-/babel-plugin-relay-21.0.1.tgz", + "integrity": "sha512-/eswQ+KRhZApdgCzORcBHQ6xVtiIQvOseAEO7XbvcufQ7r8/IKd5NmuwBIjKH2w3kpLKYjw77o4xOjAAqjdQ7Q==", "dev": true, "license": "MIT", "dependencies": { @@ -9496,18 +9210,11 @@ "dev": true, "license": "MIT" }, - "node_modules/cookie": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz", - "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } + "node_modules/cookie-es": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-3.1.1.tgz", + "integrity": "sha512-UaXxwISYJPTr9hwQxMFYZ7kNhSXboMXP+Z3TRX6f1/NyaGPfuNUZOWP1pUEb75B2HjfklIYLVRfWiFZJyC6Npg==", + "license": "MIT" }, "node_modules/core-js": { "version": "3.49.0", @@ -10716,14 +10423,14 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.20.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.20.1.tgz", - "integrity": "sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==", + "version": "5.21.6", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.21.6.tgz", + "integrity": "sha512-aNnGCvbJ/RIyWo1IuhNdVjnNF+EjH9wpzpNHt+ci/m9He9LJvUN8wrCcXjp9cWsGNAuvSpVFTx/vraAFQ8qGjQ==", "dev": true, "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", - "tapable": "^2.3.0" + "tapable": "^2.3.3" }, "engines": { "node": ">=10.13.0" @@ -11770,9 +11477,9 @@ } }, "node_modules/eslint-plugin-react-hooks": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.1.0.tgz", - "integrity": "sha512-LDicyhrRFrIaheDYryeM2W8gWyZXnAs4zIr2WVPiOSeTmIu2RjR4x/9N0xLaRWZ+9hssBDGo3AadcohuzAvSvg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.1.1.tgz", + "integrity": "sha512-f2I7Gw6JbvCexzIInuSbZpfdQ44D7iqdWX01FKLvrPgqxoE7oMj8clOfto8U6vYiz4yd5oKu39rRSVOe1zRu0g==", "dev": true, "license": "MIT", "dependencies": { @@ -12661,9 +12368,9 @@ } }, "node_modules/globals": { - "version": "17.5.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-17.5.0.tgz", - "integrity": "sha512-qoV+HK2yFl/366t2/Cb3+xxPUo5BuMynomoDmiaZBIdbs+0pYbjfZU+twLhGKp4uCZ/+NbtpVepH5bGCxRyy2g==", + "version": "17.6.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-17.6.0.tgz", + "integrity": "sha512-sepffkT8stwnIYbsMBpoCHJuJM5l98FUF2AnE07hfvE0m/qp3R586hw4jF4uadbhvg1ooIdzuu7CsfD2jzCaNA==", "dev": true, "license": "MIT", "engines": { @@ -12752,6 +12459,7 @@ "version": "16.13.2", "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.13.2.tgz", "integrity": "sha512-5bJ+nf/UCpAjHM8i06fl7eLyVC9iuNAjm9qzkiu2ZGhM0VscSvS6WDPfAwkdkBuoXGM9FJSbKl6wylMwP9Ktig==", + "dev": true, "license": "MIT", "engines": { "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" @@ -14077,9 +13785,9 @@ "license": "ISC" }, "node_modules/jiti": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", - "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz", + "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==", "dev": true, "license": "MIT", "bin": { @@ -16228,9 +15936,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", + "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", "dev": true, "funding": [ { @@ -17133,9 +16841,9 @@ } }, "node_modules/postcss": { - "version": "8.5.10", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.10.tgz", - "integrity": "sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==", + "version": "8.5.15", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", + "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", "dev": true, "funding": [ { @@ -17153,7 +16861,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.11", + "nanoid": "^3.3.12", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -17608,9 +17316,9 @@ "license": "MIT" }, "node_modules/react": { - "version": "19.2.5", - "resolved": "https://registry.npmjs.org/react/-/react-19.2.5.tgz", - "integrity": "sha512-llUJLzz1zTUBrskt2pwZgLq59AemifIftw4aB7JxOqf1HY2FDaGDxgwpAPVzHU1kdWabH7FauP4i1oEeer2WCA==", + "version": "19.2.7", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.7.tgz", + "integrity": "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==", "license": "MIT", "engines": { "node": ">=0.10.0" @@ -17662,15 +17370,15 @@ } }, "node_modules/react-dom": { - "version": "19.2.5", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.5.tgz", - "integrity": "sha512-J5bAZz+DXMMwW/wV3xzKke59Af6CHY7G4uYLN1OvBcKEsWOs4pQExj86BBKamxl/Ik5bx9whOrvBlSDfWzgSag==", + "version": "19.2.7", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.7.tgz", + "integrity": "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ==", "license": "MIT", "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { - "react": "^19.2.5" + "react": "^19.2.7" } }, "node_modules/react-dropzone": { @@ -18391,27 +18099,17 @@ } } }, - "node_modules/react-refresh": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.18.0.tgz", - "integrity": "sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/react-relay": { - "version": "20.1.1", - "resolved": "https://registry.npmjs.org/react-relay/-/react-relay-20.1.1.tgz", - "integrity": "sha512-pwl7wHHXCOx32dOg4TVNkhVojgGVvOBMo9pcMGeM1BIFYvmwGauKTtBB+qr5buXHGooCL8TXjMVg+ZLizIsbeQ==", + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/react-relay/-/react-relay-21.0.1.tgz", + "integrity": "sha512-08BBmpdolP8vslClnszG+g4vkcbVHvaoR0BDHyhicwpCfbtnVGe73/MfPja/xj30eLWSP5WPYNqZupTdEPZvtw==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.25.0", "fbjs": "^3.0.2", "invariant": "^2.2.4", "nullthrows": "^1.1.1", - "relay-runtime": "20.1.1" + "relay-runtime": "21.0.1" }, "peerDependencies": { "react": "^16.9.0 || ^17 || ^18 || ^19" @@ -18465,20 +18163,19 @@ } }, "node_modules/react-router": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.17.0.tgz", - "integrity": "sha512-FDELK7rTMlCHO5+reyXsPlmfr7N1F91lPHsWYfMEGQm/KQ+F4JFM8jGoeQDmDvdTs93Fw9aSilH+uKRb4/jXvQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-8.0.0.tgz", + "integrity": "sha512-AyS7LUn9M3g2/IBJDJNpWqElaQjPVBHGgMsdLGee6B2JLwP9STSpRwN8N4SauOeFTb0X5ZN0wxa1Iek78jF8Iw==", "license": "MIT", "dependencies": { - "cookie": "^1.0.1", - "set-cookie-parser": "^2.6.0" + "cookie-es": "^3.1.1" }, "engines": { - "node": ">=20.0.0" + "node": ">=22.22.0" }, "peerDependencies": { - "react": ">=18", - "react-dom": ">=18" + "react": ">=19.2.7", + "react-dom": ">=19.2.7" }, "peerDependenciesMeta": { "react-dom": { @@ -18645,9 +18342,9 @@ } }, "node_modules/relay-compiler": { - "version": "20.1.1", - "resolved": "https://registry.npmjs.org/relay-compiler/-/relay-compiler-20.1.1.tgz", - "integrity": "sha512-J/FFFLS/3vnbDkyQMw8l3Ev7dNHXMgC1RAs0fITz4Q63TFPOw142knKxY1Mm5ZZBABkAs9g2JghXaqM+phwTxw==", + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/relay-compiler/-/relay-compiler-21.0.1.tgz", + "integrity": "sha512-Wqlg3MtHyBlAYByVo24Wy9H3n2bAw991gPmzdo3XfNv+TzhI8zuGogtiae+7NORI7zhghgZaHC7Sp8S8ZPRYEA==", "dev": true, "license": "MIT", "bin": { @@ -18655,9 +18352,9 @@ } }, "node_modules/relay-runtime": { - "version": "20.1.1", - "resolved": "https://registry.npmjs.org/relay-runtime/-/relay-runtime-20.1.1.tgz", - "integrity": "sha512-N98ZkkyuIHdXmHaPuljihM1QbFYXATF0gxA0CESFphszsQzXs9A/zZloVfzdOI/xg3B3CfM/5nozvIoeTDIcfw==", + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/relay-runtime/-/relay-runtime-21.0.1.tgz", + "integrity": "sha512-OS+We56sp6gkGVEcce9VCNOeg/sMbxT9unEoerQPgNAICHowSWrXNc6LJxF2OqjypxYF7kaLDSPPiaPii2Pw1g==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.25.0", @@ -18876,49 +18573,39 @@ "integrity": "sha512-NS3levdsRIUOmiJ8FZWCP7LG3QpJyrs/TE0Zpf1yvZu8cAJJ6QMW92H1c7kWpdIHo8RvmLxN/o2JXTKHp74lUA==", "license": "Unlicense" }, - "node_modules/rollup": { - "version": "4.60.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.1.tgz", - "integrity": "sha512-VmtB2rFU/GroZ4oL8+ZqXgSA38O6GR8KSIvWmEFv63pQ0G6KaBH9s07PO8XTXP4vI+3UJUEypOfjkGfmSBBR0w==", + "node_modules/rolldown": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.1.2.tgz", + "integrity": "sha512-x0CrQQqCXWGeI8dTvFfN/Dnv3yMKT9hv5jFjlOreKAx9wqLq9wz7VvLLHyaAXC90/CpggTu9SisSbsJJTPSjNQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { - "@types/estree": "1.0.8" + "@oxc-project/types": "=0.137.0", + "@rolldown/pluginutils": "^1.0.0" }, "bin": { - "rollup": "dist/bin/rollup" + "rolldown": "bin/cli.mjs" }, "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" + "node": "^20.19.0 || >=22.12.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.60.1", - "@rollup/rollup-android-arm64": "4.60.1", - "@rollup/rollup-darwin-arm64": "4.60.1", - "@rollup/rollup-darwin-x64": "4.60.1", - "@rollup/rollup-freebsd-arm64": "4.60.1", - "@rollup/rollup-freebsd-x64": "4.60.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.60.1", - "@rollup/rollup-linux-arm-musleabihf": "4.60.1", - "@rollup/rollup-linux-arm64-gnu": "4.60.1", - "@rollup/rollup-linux-arm64-musl": "4.60.1", - "@rollup/rollup-linux-loong64-gnu": "4.60.1", - "@rollup/rollup-linux-loong64-musl": "4.60.1", - "@rollup/rollup-linux-ppc64-gnu": "4.60.1", - "@rollup/rollup-linux-ppc64-musl": "4.60.1", - "@rollup/rollup-linux-riscv64-gnu": "4.60.1", - "@rollup/rollup-linux-riscv64-musl": "4.60.1", - "@rollup/rollup-linux-s390x-gnu": "4.60.1", - "@rollup/rollup-linux-x64-gnu": "4.60.1", - "@rollup/rollup-linux-x64-musl": "4.60.1", - "@rollup/rollup-openbsd-x64": "4.60.1", - "@rollup/rollup-openharmony-arm64": "4.60.1", - "@rollup/rollup-win32-arm64-msvc": "4.60.1", - "@rollup/rollup-win32-ia32-msvc": "4.60.1", - "@rollup/rollup-win32-x64-gnu": "4.60.1", - "@rollup/rollup-win32-x64-msvc": "4.60.1", - "fsevents": "~2.3.2" + "@rolldown/binding-android-arm64": "1.1.2", + "@rolldown/binding-darwin-arm64": "1.1.2", + "@rolldown/binding-darwin-x64": "1.1.2", + "@rolldown/binding-freebsd-x64": "1.1.2", + "@rolldown/binding-linux-arm-gnueabihf": "1.1.2", + "@rolldown/binding-linux-arm64-gnu": "1.1.2", + "@rolldown/binding-linux-arm64-musl": "1.1.2", + "@rolldown/binding-linux-ppc64-gnu": "1.1.2", + "@rolldown/binding-linux-s390x-gnu": "1.1.2", + "@rolldown/binding-linux-x64-gnu": "1.1.2", + "@rolldown/binding-linux-x64-musl": "1.1.2", + "@rolldown/binding-openharmony-arm64": "1.1.2", + "@rolldown/binding-wasm32-wasi": "1.1.2", + "@rolldown/binding-win32-arm64-msvc": "1.1.2", + "@rolldown/binding-win32-x64-msvc": "1.1.2" } }, "node_modules/rope-sequence": { @@ -19116,12 +18803,6 @@ "upper-case-first": "^2.0.2" } }, - "node_modules/set-cookie-parser": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz", - "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==", - "license": "MIT" - }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", @@ -19837,15 +19518,15 @@ } }, "node_modules/tailwindcss": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.2.tgz", - "integrity": "sha512-KWBIxs1Xb6NoLdMVqhbhgwZf2PGBpPEiwOqgI4pFIYbNTfBXiKYyWoTsXgBQ9WFg/OlhnvHaY+AEpW7wSmFo2Q==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.1.tgz", + "integrity": "sha512-hk+TB1m+K8CYNrP6rjQaq/Y+4Zylwpa87mLYBKCunwnnQ9p+fHb7kmSfGqyEJoxF/O6CDyABWVFEafNSYKll+Q==", "license": "MIT" }, "node_modules/tapable": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.2.tgz", - "integrity": "sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", + "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", "dev": true, "license": "MIT", "engines": { @@ -19887,9 +19568,9 @@ } }, "node_modules/tinyglobby": { - "version": "0.2.16", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", - "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", "dev": true, "license": "MIT", "dependencies": { @@ -20331,9 +20012,9 @@ } }, "node_modules/typescript": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", - "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", "dev": true, "license": "Apache-2.0", "bin": { @@ -20345,16 +20026,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.58.2", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.58.2.tgz", - "integrity": "sha512-V8iSng9mRbdZjl54VJ9NKr6ZB+dW0J3TzRXRGcSbLIej9jV86ZRtlYeTKDR/QLxXykocJ5icNzbsl2+5TzIvcQ==", + "version": "8.61.1", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.61.1.tgz", + "integrity": "sha512-V7PayAfJokV3pEHgN7/v03D1SpujhRfQtYLbLIiBfDDncdg4PAiRBfoS4cnCANK4jmAPncczi59QO3afiXUlNw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.58.2", - "@typescript-eslint/parser": "8.58.2", - "@typescript-eslint/typescript-estree": "8.58.2", - "@typescript-eslint/utils": "8.58.2" + "@typescript-eslint/eslint-plugin": "8.61.1", + "@typescript-eslint/parser": "8.61.1", + "@typescript-eslint/typescript-estree": "8.61.1", + "@typescript-eslint/utils": "8.61.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -20462,9 +20143,9 @@ } }, "node_modules/undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", + "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", "license": "MIT" }, "node_modules/unified": { @@ -20858,18 +20539,17 @@ } }, "node_modules/vite": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.2.tgz", - "integrity": "sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg==", + "version": "8.0.16", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.16.tgz", + "integrity": "sha512-h9bXPmJichP5fLmVQo3PyaGSDE2n3aPuomeAlVRm0JLmt4rY6zmPKd59HYI4LNW8oTK7tlTsuC7l/m7awx9Jcw==", "dev": true, "license": "MIT", "dependencies": { - "esbuild": "^0.27.0", - "fdir": "^6.5.0", - "picomatch": "^4.0.3", - "postcss": "^8.5.6", - "rollup": "^4.43.0", - "tinyglobby": "^0.2.15" + "lightningcss": "^1.32.0", + "picomatch": "^4.0.4", + "postcss": "^8.5.15", + "rolldown": "1.0.3", + "tinyglobby": "^0.2.17" }, "bin": { "vite": "bin/vite.js" @@ -20885,9 +20565,10 @@ }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.1.18", + "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", - "lightningcss": "^1.21.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", @@ -20900,15 +20581,18 @@ "@types/node": { "optional": true }, + "@vitejs/devtools": { + "optional": true + }, + "esbuild": { + "optional": true + }, "jiti": { "optional": true }, "less": { "optional": true }, - "lightningcss": { - "optional": true - }, "sass": { "optional": true }, @@ -20932,6 +20616,326 @@ } } }, + "node_modules/vite/node_modules/@emnapi/core": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", + "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.1", + "tslib": "^2.4.0" + } + }, + "node_modules/vite/node_modules/@emnapi/runtime": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", + "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/vite/node_modules/@emnapi/wasi-threads": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", + "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/vite/node_modules/@napi-rs/wasm-runtime": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.5.tgz", + "integrity": "sha512-AWPoBRJ9tsnVhor4sjO7rkni+7p+2IAEFj6cx06UgP10jkQHqay/36uRV/bFkgrh18D9vb4cr8Q0Pthskgzy+Q==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1" + } + }, + "node_modules/vite/node_modules/@oxc-project/types": { + "version": "0.133.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.133.0.tgz", + "integrity": "sha512-KzkdCd6Uxqnf6l3HOw1xfatAlUURA0g14cvBYFyJ5SaNOQbOUvBr9PKArcPcrNIeRsBdgcUzOGrhKveVpvOIGA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-android-arm64": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.3.tgz", + "integrity": "sha512-454rs7jHngixp/NMxd5srYD57OnzSlZ/eFTETjORQHLwJG1lRtmNOJcBerZlfu4GjKqeq8aCCIQrMdHyhI51Hw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.3.tgz", + "integrity": "sha512-PcAhP+ynjURNyy8SKGl5DQP94aGuB/7JrXJb/t7P+hanXvQVMWzUvRRhBAcg/lNRadBhoUPqSoP4xw5tR/KBEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-darwin-x64": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.3.tgz", + "integrity": "sha512-9YpfeUvSE2RS7wysJ81uOZkXJz7f7Q55H2Gvp3VEw/EsahqDtrphrZ0EwDLK5vvKOzaCrBsjF8JmnMLcUt78Gg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.3.tgz", + "integrity": "sha512-yB1IlAsSNHncV6SCTL27/MVGR5htvQsoGxIv5KMGXALp+Ll1wYsn+x98M9MW7qa+NdSbvrrY7ANI4wLJ0n1e6g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.3.tgz", + "integrity": "sha512-Yi30IVAAfLUCy2MseFjbB1jAMDl1VMCAas5StnYp8da9+CKvMd2H2cbEjWcw5NPaPqzvYkVIaF1nNUG+b7u/sw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.3.tgz", + "integrity": "sha512-jsO7R8To+AdlYgUmN5sHSCZbfhtMBkO0WUx8iORQnPcMMdgr7qM2DQmMwgabs3GhNztdmoKkMKQFHD6DTMCIQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.3.tgz", + "integrity": "sha512-VWkUHwWriDciit80wleYwKILoR/KMvxh/IdwS/paX+ZgpuRpCrKLUdadJbc0NpBEiyhpYawsJ73j9aCvOH+f7Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.3.tgz", + "integrity": "sha512-5f1laC0SlIR0yDbFCd8acUhvJIag6N3zC5P7oUPN6wX0aOma+uKJ0wBDH5aq7I1PVI2ttTlhJwzwRIBnLiSGEg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.3.tgz", + "integrity": "sha512-Iq4ko0r4XsgbrF/LunNgHtAGLRRVE2kXonAXQ/MV0mC6jQpMOhW1SvtZja2EhC/kd05++bP78dsqBeIQyYJ6Yg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.3.tgz", + "integrity": "sha512-B8m6tD5+/N5FeNQFbKlLA/2yVq9ycQP1SeedyEYYKWBNR3ZQbkvIUcNnDNM03lO1l5F2roiiFJGgvoLLyZXtSg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.3.tgz", + "integrity": "sha512-pSdpdUJHkuCxun9LE7jvgUB9qsRgaiyNNCX7m/AvHTcq67AiT/Yhoxvw5zPfhrM8k/BfP8ce/hMOpthKDpEUow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.3.tgz", + "integrity": "sha512-OXXS3RKJgX2uLwM+gYyuH5omcH8fL1LJs96pZGgtetVCahON57+d4SJHzTgZiOjxgGkSnpXpOsWuPDGAKAigEg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.3.tgz", + "integrity": "sha512-JTtb8BWFynicNSoPrehsCzBtOKjZ6jhMiPFEmOiuXg1Fl8dn2KHQob+GuPSGR0dryQa1PQJbzjF3dqO/whhjLg==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "1.10.0", + "@emnapi/runtime": "1.10.0", + "@napi-rs/wasm-runtime": "^1.1.4" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.3.tgz", + "integrity": "sha512-gEdFFEN70A/jxb2svrWsN3aDL7OUtmvlOy+6fa2jxG8K0wQ1ZbdeLGnidov6Yu5/733dI5ySfzFlQ/cb0bSz1g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.3.tgz", + "integrity": "sha512-eXB7CHuaQdqmJcc3koCNtNPmT/bj2gc999kUFgBxG8Ac0NdgXc4rkCHhqrgrhN3zddvvvrgzj1e90SuSfmyIXA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, "node_modules/vite/node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -20947,6 +20951,40 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/vite/node_modules/rolldown": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.3.tgz", + "integrity": "sha512-i00lAJ2ks1BYr7rjNjKC7BcqAS7nVfiT3QX1SI5aY+AFHblCmaUf9OE9dbdzDvW6dJxbi2ZCZiy9v3CcwOiX3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.133.0", + "@rolldown/pluginutils": "^1.0.0" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.0.3", + "@rolldown/binding-darwin-arm64": "1.0.3", + "@rolldown/binding-darwin-x64": "1.0.3", + "@rolldown/binding-freebsd-x64": "1.0.3", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.3", + "@rolldown/binding-linux-arm64-gnu": "1.0.3", + "@rolldown/binding-linux-arm64-musl": "1.0.3", + "@rolldown/binding-linux-ppc64-gnu": "1.0.3", + "@rolldown/binding-linux-s390x-gnu": "1.0.3", + "@rolldown/binding-linux-x64-gnu": "1.0.3", + "@rolldown/binding-linux-x64-musl": "1.0.3", + "@rolldown/binding-openharmony-arm64": "1.0.3", + "@rolldown/binding-wasm32-wasi": "1.0.3", + "@rolldown/binding-win32-arm64-msvc": "1.0.3", + "@rolldown/binding-win32-x64-msvc": "1.0.3" + } + }, "node_modules/vitest": { "version": "4.1.8", "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.8.tgz", @@ -21639,7 +21677,7 @@ "license": "MIT", "devDependencies": { "esbuild": "^0.28.1", - "typescript": "~5.8.3" + "typescript": "~6.0.3" } }, "packages/cookie-banner/node_modules/@esbuild/aix-ppc64": { @@ -22131,7 +22169,7 @@ "version": "1.0.0", "license": "ISC", "devDependencies": { - "typescript": "^5.8.3", + "typescript": "~6.0.3", "vitest": "^4.1.8" } }, @@ -22139,15 +22177,15 @@ "name": "@probo/emails", "version": "0.1.0", "dependencies": { - "react": "^19.0.0", - "react-dom": "^19.0.0", + "react": "^19.2.7", + "react-dom": "^19.2.7", "react-email": "^6.6.3" }, "devDependencies": { - "@types/node": "^22.10.7", - "@types/react": "^19.0.6", + "@types/node": "^24", + "@types/react": "^19.2.17", "tsx": "^4.21.0", - "typescript": "^5.7.3" + "typescript": "~6.0.3" } }, "packages/eslint-config": { @@ -22155,17 +22193,223 @@ "version": "1.0.0", "license": "ISC", "devDependencies": { - "@eslint/js": "^9.39.2", + "@eslint/js": "^10.0.1", "@probo/eslint-plugin-relay-types": "^1.0.0", - "@stylistic/eslint-plugin": "^5.7.0", - "eslint": "^9.39.2", - "eslint-plugin-import-x": "^4.16.1", + "@stylistic/eslint-plugin": "^5.10.0", + "eslint": "^10.5.0", + "eslint-plugin-import-x": "^4.16.2", "eslint-plugin-react": "^7.37.5", - "eslint-plugin-react-hooks": "^7.0.1", + "eslint-plugin-react-hooks": "^7.1.1", "eslint-plugin-relay": "^2.0.0", - "globals": "^17.0.0", - "typescript": "^5.8.3", - "typescript-eslint": "^8.53.1" + "globals": "^17.6.0", + "jiti": "^2.2.0", + "typescript": "~6.0.3", + "typescript-eslint": "^8.61.1" + } + }, + "packages/eslint-config/node_modules/@eslint/config-array": { + "version": "0.23.5", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.5.tgz", + "integrity": "sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^3.0.5", + "debug": "^4.3.1", + "minimatch": "^10.2.4" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "packages/eslint-config/node_modules/@eslint/config-helpers": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.6.0.tgz", + "integrity": "sha512-ii6Bw9jJ2zi2cWA2Z+9/QZ/+3DX6kwaV5Q986D/CdP3Lap3w/pgQZ373FV7byY/i7L4IRH/G43I5dz1ClsCbpA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^1.2.1" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "packages/eslint-config/node_modules/@eslint/core": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.2.1.tgz", + "integrity": "sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "packages/eslint-config/node_modules/@eslint/js": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-10.0.1.tgz", + "integrity": "sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "eslint": "^10.0.0" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "packages/eslint-config/node_modules/@eslint/object-schema": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.5.tgz", + "integrity": "sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "packages/eslint-config/node_modules/@eslint/plugin-kit": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.7.2.tgz", + "integrity": "sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^1.2.1", + "levn": "^0.4.1" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "packages/eslint-config/node_modules/eslint": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.5.0.tgz", + "integrity": "sha512-1y+7C+vi12bUK1IpZeaV3gsH9fHLBmPvYmPx42pvT/E9yG0IC8g3PUZZgp0+JLJl7ZDK0flc2gc+Aw9dpCvIsQ==", + "dev": true, + "license": "MIT", + "workspaces": [ + "packages/*" + ], + "dependencies": { + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.2", + "@eslint/config-array": "^0.23.5", + "@eslint/config-helpers": "^0.6.0", + "@eslint/core": "^1.2.1", + "@eslint/plugin-kit": "^0.7.2", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.14.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^9.1.2", + "eslint-visitor-keys": "^5.0.1", + "espree": "^11.2.0", + "esquery": "^1.7.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "minimatch": "^10.2.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "packages/eslint-config/node_modules/eslint-scope": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-9.1.2.tgz", + "integrity": "sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@types/esrecurse": "^4.3.1", + "@types/estree": "^1.0.8", + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "packages/eslint-config/node_modules/eslint-visitor-keys": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "packages/eslint-config/node_modules/espree": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-11.2.0.tgz", + "integrity": "sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.16.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^5.0.1" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "packages/eslint-config/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" } }, "packages/eslint-relay-plugin-types": { @@ -22180,7 +22424,7 @@ "@probo/coredata": "^1.0.0" }, "devDependencies": { - "typescript": "^5.8.3", + "typescript": "~6.0.3", "vitest": "^4.1.8" } }, @@ -22189,7 +22433,7 @@ "version": "1.0.0", "license": "ISC", "devDependencies": { - "typescript": "^5.8.3", + "typescript": "~6.0.3", "vitest": "^4.1.8" } }, @@ -22198,7 +22442,7 @@ "version": "1.0.0", "license": "ISC", "devDependencies": { - "@types/react": "^19.1.2" + "@types/react": "^19.2.17" }, "peerDependencies": { "react": "^19.0" @@ -22210,7 +22454,7 @@ "license": "MIT", "devDependencies": { "@n8n/node-cli": "^0.24.1", - "eslint": "^9.39.2" + "eslint": "^9.39.4" }, "peerDependencies": { "n8n-workflow": "*" @@ -22226,7 +22470,7 @@ "marked": "^15.0.12" }, "devDependencies": { - "typescript": "~5.8.3" + "typescript": "~6.0.3" } }, "packages/react-lazy": { @@ -22241,17 +22485,26 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "graphql": "^16.12.0" + "graphql": "^17.0.1" }, "devDependencies": { - "typescript": "^5.8.3", + "typescript": "~6.0.3", "vitest": "^4.1.8" }, "peerDependencies": { - "react": "^19.2.1", - "react-relay": "^20.1.1", - "react-router": "^7.17.0", - "relay-runtime": "^20.1.1" + "react": "^19.2.7", + "react-relay": "^21.0.1", + "react-router": "^8.0.0", + "relay-runtime": "^21.0.1" + } + }, + "packages/relay/node_modules/graphql": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-17.0.1.tgz", + "integrity": "sha512-8eWbg5Zcv/8o20nzEjHUGPTj20MLFJjc5kagbIPxbaeGxvFwpitJhemEC/k17n5+UD4M/9ea5rTuce78mELujQ==", + "license": "MIT", + "engines": { + "node": "^22.0.0 || ^24.0.0 || ^25.0.0 || >=26.0.0" } }, "packages/routes": { @@ -22259,14 +22512,14 @@ "version": "1.0.0", "license": "ISC", "devDependencies": { - "typescript": "^5.8.3", + "typescript": "~6.0.3", "vitest": "^4.1.8" }, "peerDependencies": { - "react": "^19.2.1", - "react-relay": "^20.1.1", - "react-router": "^7.17.0", - "relay-runtime": "^20.1.1" + "react": "^19.2.7", + "react-relay": "^21.0.1", + "react-router": "^8.0.0", + "relay-runtime": "^21.0.1" } }, "packages/tsconfig": { @@ -22308,7 +22561,7 @@ "remark-gfm": "^4.0.1", "tailwind-merge": "^3.4.0", "tailwind-variants": "^1.0.0", - "tailwindcss": "^4.1.7", + "tailwindcss": "^4.3.1", "tw-animate-css": "^1.3.0", "zustand": "^5.0.4" }, @@ -22320,27 +22573,92 @@ "@storybook/react": "^10.2.8", "@storybook/react-vite": "^10.2.8", "@tailwindcss/typography": "^0.5.16", - "@tailwindcss/vite": "^4.1.17", - "@types/react": "^19.1.2", - "@types/react-dom": "^19.1.2", - "@vitejs/plugin-react": "^5.1.4", + "@tailwindcss/vite": "^4.3.1", + "@types/react": "^19.2.17", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^6.0.2", "@vitest/browser": "4.1.8", "@vitest/coverage-v8": "4.1.8", - "eslint": "^9.39.2", + "eslint": "^10.5.0", "playwright": "^1.55.1", - "react": "^19.1.0", + "react": "^19.2.7", "react-docgen": "^7.1.1", - "react-dom": "^19.1.0", - "react-router": "^7.17.0", + "react-dom": "^19.2.7", + "react-router": "^8.0.0", "storybook": "^10.2.10", - "typescript": "~5.8.3", - "vite": "^7.3.2", + "typescript": "~6.0.3", + "vite": "^8.0.16", "vitest": "^4.1.8" }, "peerDependencies": { - "react": "^19.1.0", - "react-dom": "^19.1.0", - "react-router": "^7.17.0" + "react": "^19.2.7", + "react-dom": "^19.2.7", + "react-router": "^8.0.0" + } + }, + "packages/ui/node_modules/@eslint/config-array": { + "version": "0.23.5", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.5.tgz", + "integrity": "sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^3.0.5", + "debug": "^4.3.1", + "minimatch": "^10.2.4" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "packages/ui/node_modules/@eslint/config-helpers": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.6.0.tgz", + "integrity": "sha512-ii6Bw9jJ2zi2cWA2Z+9/QZ/+3DX6kwaV5Q986D/CdP3Lap3w/pgQZ373FV7byY/i7L4IRH/G43I5dz1ClsCbpA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^1.2.1" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "packages/ui/node_modules/@eslint/core": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.2.1.tgz", + "integrity": "sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "packages/ui/node_modules/@eslint/object-schema": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.5.tgz", + "integrity": "sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "packages/ui/node_modules/@eslint/plugin-kit": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.7.2.tgz", + "integrity": "sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^1.2.1", + "levn": "^0.4.1" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" } }, "packages/ui/node_modules/@storybook/addon-vitest": { @@ -22554,6 +22872,115 @@ "node": ">=18" } }, + "packages/ui/node_modules/eslint": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.5.0.tgz", + "integrity": "sha512-1y+7C+vi12bUK1IpZeaV3gsH9fHLBmPvYmPx42pvT/E9yG0IC8g3PUZZgp0+JLJl7ZDK0flc2gc+Aw9dpCvIsQ==", + "dev": true, + "license": "MIT", + "workspaces": [ + "packages/*" + ], + "dependencies": { + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.2", + "@eslint/config-array": "^0.23.5", + "@eslint/config-helpers": "^0.6.0", + "@eslint/core": "^1.2.1", + "@eslint/plugin-kit": "^0.7.2", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.14.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^9.1.2", + "eslint-visitor-keys": "^5.0.1", + "espree": "^11.2.0", + "esquery": "^1.7.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "minimatch": "^10.2.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "packages/ui/node_modules/eslint-scope": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-9.1.2.tgz", + "integrity": "sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@types/esrecurse": "^4.3.1", + "@types/estree": "^1.0.8", + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "packages/ui/node_modules/eslint-visitor-keys": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "packages/ui/node_modules/espree": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-11.2.0.tgz", + "integrity": "sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.16.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^5.0.1" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "packages/ui/node_modules/estree-walker": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", @@ -22564,6 +22991,16 @@ "@types/estree": "^1.0.0" } }, + "packages/ui/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, "packages/ui/node_modules/tinyrainbow": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.0.tgz", diff --git a/package.json b/package.json index d8e1c9a04..e488e7f7c 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "relay": "npm run relay-clean && npm run relay-compile" }, "devDependencies": { - "relay-compiler": "^20.1.1", + "relay-compiler": "^21.0.1", "turbo": "^2.9.14" }, "graphql": { @@ -44,6 +44,6 @@ "license": "MIT", "packageManager": "npm@11.8.0", "dependencies": { - "react-dom": "^19.2.1" + "react-dom": "^19.2.7" } } diff --git a/packages/cookie-banner/package.json b/packages/cookie-banner/package.json index ed6b616c5..568cd198c 100644 --- a/packages/cookie-banner/package.json +++ b/packages/cookie-banner/package.json @@ -56,6 +56,6 @@ }, "devDependencies": { "esbuild": "^0.28.1", - "typescript": "~5.8.3" + "typescript": "~6.0.3" } } diff --git a/packages/cookie-banner/src/detectors/cookie-detector.ts b/packages/cookie-banner/src/detectors/cookie-detector.ts index 1f433f5af..7574991e3 100644 --- a/packages/cookie-banner/src/detectors/cookie-detector.ts +++ b/packages/cookie-banner/src/detectors/cookie-detector.ts @@ -113,6 +113,7 @@ export class CookieDetector implements Detector { this.cookieStoreHandler = (event: CookieChangeEvent) => { for (const cookie of event.changed) { + if (cookie.name === undefined) continue; if (this.knownNames.has(cookie.name)) continue; const maxAge = cookie.expires diff --git a/packages/coredata/package.json b/packages/coredata/package.json index 5315bfac5..b2b759f6f 100644 --- a/packages/coredata/package.json +++ b/packages/coredata/package.json @@ -11,7 +11,7 @@ "author": "", "license": "ISC", "devDependencies": { - "typescript": "^5.8.3", + "typescript": "~6.0.3", "vitest": "^4.1.8" } } diff --git a/packages/emails/package.json b/packages/emails/package.json index a762d2e7b..a5a65182e 100644 --- a/packages/emails/package.json +++ b/packages/emails/package.json @@ -9,14 +9,14 @@ "export": "email export" }, "dependencies": { - "react": "^19.0.0", - "react-dom": "^19.0.0", + "react": "^19.2.7", + "react-dom": "^19.2.7", "react-email": "^6.6.3" }, "devDependencies": { - "@types/node": "^22.10.7", - "@types/react": "^19.0.6", + "@types/node": "^24", + "@types/react": "^19.2.17", "tsx": "^4.21.0", - "typescript": "^5.7.3" + "typescript": "~6.0.3" } } diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json index 1f7f70a4d..20f15d74c 100644 --- a/packages/eslint-config/package.json +++ b/packages/eslint-config/package.json @@ -26,16 +26,17 @@ "author": "", "license": "ISC", "devDependencies": { - "@eslint/js": "^9.39.2", + "@eslint/js": "^10.0.1", "@probo/eslint-plugin-relay-types": "^1.0.0", - "@stylistic/eslint-plugin": "^5.7.0", - "eslint-plugin-import-x": "^4.16.1", - "eslint-plugin-react-hooks": "^7.0.1", + "@stylistic/eslint-plugin": "^5.10.0", + "eslint-plugin-import-x": "^4.16.2", + "eslint-plugin-react-hooks": "^7.1.1", "eslint-plugin-react": "^7.37.5", "eslint-plugin-relay": "^2.0.0", - "eslint": "^9.39.2", - "globals": "^17.0.0", - "typescript-eslint": "^8.53.1", - "typescript": "^5.8.3" + "eslint": "^10.5.0", + "globals": "^17.6.0", + "jiti": "^2.2.0", + "typescript-eslint": "^8.61.1", + "typescript": "~6.0.3" } } diff --git a/packages/eslint-config/src/reactConfigs.ts b/packages/eslint-config/src/reactConfigs.ts index 6223ea4c8..2576e7ddb 100644 --- a/packages/eslint-config/src/reactConfigs.ts +++ b/packages/eslint-config/src/reactConfigs.ts @@ -31,7 +31,10 @@ export const reactConfigs: FlatConfig.ConfigArray = [ { settings: { react: { - version: "detect", + // Pin an explicit version: eslint-plugin-react@7.37.5 predates ESLint 10 + // and its "detect" path calls the removed context.getFilename(), which + // crashes under ESLint 10. + version: "19.2", }, }, }, diff --git a/packages/helpers/package.json b/packages/helpers/package.json index b1103de9a..cd3266d9d 100644 --- a/packages/helpers/package.json +++ b/packages/helpers/package.json @@ -11,7 +11,7 @@ "author": "", "license": "ISC", "devDependencies": { - "typescript": "^5.8.3", + "typescript": "~6.0.3", "vitest": "^4.1.8" }, "dependencies": { diff --git a/packages/hooks/package.json b/packages/hooks/package.json index 7b4d72a58..3f855c20f 100644 --- a/packages/hooks/package.json +++ b/packages/hooks/package.json @@ -11,7 +11,7 @@ "author": "", "license": "ISC", "devDependencies": { - "typescript": "^5.8.3", + "typescript": "~6.0.3", "vitest": "^4.1.8" } } diff --git a/packages/i18n/package.json b/packages/i18n/package.json index d44ecbcfb..8f36046f2 100644 --- a/packages/i18n/package.json +++ b/packages/i18n/package.json @@ -4,7 +4,7 @@ "author": "", "main": "./TranslatorProvider.tsx", "devDependencies": { - "@types/react": "^19.1.2" + "@types/react": "^19.2.17" }, "peerDependencies": { "react": "^19.0" diff --git a/packages/n8n-node/package.json b/packages/n8n-node/package.json index 0a300ddbf..cb15b9bc6 100644 --- a/packages/n8n-node/package.json +++ b/packages/n8n-node/package.json @@ -56,6 +56,6 @@ }, "devDependencies": { "@n8n/node-cli": "^0.24.1", - "eslint": "^9.39.2" + "eslint": "^9.39.4" } } diff --git a/packages/n8n-node/tsconfig.json b/packages/n8n-node/tsconfig.json index 441af5ff5..17cc37137 100644 --- a/packages/n8n-node/tsconfig.json +++ b/packages/n8n-node/tsconfig.json @@ -3,6 +3,7 @@ "strict": true, "module": "commonjs", "moduleResolution": "node", + "ignoreDeprecations": "6.0", "target": "es2019", "lib": ["es2019", "es2020", "es2022.error"], "removeComments": true, diff --git a/packages/prosemirror/package.json b/packages/prosemirror/package.json index 198e2fe28..f9f362a40 100644 --- a/packages/prosemirror/package.json +++ b/packages/prosemirror/package.json @@ -15,6 +15,6 @@ "marked": "^15.0.12" }, "devDependencies": { - "typescript": "~5.8.3" + "typescript": "~6.0.3" } } diff --git a/packages/relay/package.json b/packages/relay/package.json index 1d3c24259..f766b10f2 100644 --- a/packages/relay/package.json +++ b/packages/relay/package.json @@ -12,16 +12,16 @@ "author": "", "license": "ISC", "devDependencies": { - "typescript": "^5.8.3", + "typescript": "~6.0.3", "vitest": "^4.1.8" }, "peerDependencies": { - "react": "^19.2.1", - "react-relay": "^20.1.1", - "react-router": "^7.17.0", - "relay-runtime": "^20.1.1" + "react": "^19.2.7", + "react-relay": "^21.0.1", + "react-router": "^8.0.0", + "relay-runtime": "^21.0.1" }, "dependencies": { - "graphql": "^16.12.0" + "graphql": "^17.0.1" } } diff --git a/packages/routes/package.json b/packages/routes/package.json index f08b9ad90..04badc1e5 100644 --- a/packages/routes/package.json +++ b/packages/routes/package.json @@ -11,13 +11,13 @@ "author": "", "license": "ISC", "devDependencies": { - "typescript": "^5.8.3", + "typescript": "~6.0.3", "vitest": "^4.1.8" }, "peerDependencies": { - "react": "^19.2.1", - "react-relay": "^20.1.1", - "react-router": "^7.17.0", - "relay-runtime": "^20.1.1" + "react": "^19.2.7", + "react-relay": "^21.0.1", + "react-router": "^8.0.0", + "relay-runtime": "^21.0.1" } } diff --git a/packages/routes/src/relay.tsx b/packages/routes/src/relay.tsx index 80119755e..3285a941a 100644 --- a/packages/routes/src/relay.tsx +++ b/packages/routes/src/relay.tsx @@ -18,14 +18,19 @@ import { type LoaderFunction, type LoaderFunctionArgs, useLoaderData } from "rea import { type OperationType } from "relay-runtime"; import { useCleanup } from "@probo/hooks"; +// Infer the concrete `queryRef` type from a naked type position. Relay 21's +// first-party types model `PreloadedQuery#variables` as `VariablesOf`, +// which prevents inferring `TQuery` through it, so we infer the whole queryRef. export function withQueryRef< - TQuery extends OperationType, - TEnvironmentProviderOptions = EnvironmentProviderOptions + TQueryRef extends PreloadedQuery >( - Component: ComponentType<{ queryRef: PreloadedQuery }>, + Component: ComponentType<{ queryRef: TQueryRef }>, ) { return () => { - const { queryRef, dispose } = useLoaderData(); + const { queryRef, dispose } = useLoaderData() as { + queryRef: TQueryRef; + dispose: () => void; + }; useCleanup(dispose, 1000); diff --git a/packages/ui/package.json b/packages/ui/package.json index cef662507..410961285 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -42,7 +42,7 @@ "remark-gfm": "^4.0.1", "tailwind-merge": "^3.4.0", "tailwind-variants": "^1.0.0", - "tailwindcss": "^4.1.7", + "tailwindcss": "^4.3.1", "tw-animate-css": "^1.3.0", "zustand": "^5.0.4" }, @@ -54,27 +54,27 @@ "@storybook/react": "^10.2.8", "@storybook/react-vite": "^10.2.8", "@tailwindcss/typography": "^0.5.16", - "@tailwindcss/vite": "^4.1.17", - "@types/react": "^19.1.2", - "@types/react-dom": "^19.1.2", - "@vitejs/plugin-react": "^5.1.4", + "@tailwindcss/vite": "^4.3.1", + "@types/react": "^19.2.17", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^6.0.2", "@vitest/browser": "4.1.8", "@vitest/coverage-v8": "4.1.8", - "eslint": "^9.39.2", + "eslint": "^10.5.0", "playwright": "^1.55.1", - "react": "^19.1.0", + "react": "^19.2.7", "react-docgen": "^7.1.1", - "react-dom": "^19.1.0", - "react-router": "^7.17.0", + "react-dom": "^19.2.7", + "react-router": "^8.0.0", "storybook": "^10.2.10", - "typescript": "~5.8.3", - "vite": "^7.3.2", + "typescript": "~6.0.3", + "vite": "^8.0.16", "vitest": "^4.1.8" }, "peerDependencies": { - "react": "^19.1.0", - "react-dom": "^19.1.0", - "react-router": "^7.17.0" + "react": "^19.2.7", + "react-dom": "^19.2.7", + "react-router": "^8.0.0" }, "volta": { "node": "24.4.0" diff --git a/packages/ui/src/Atoms/Table/Table.tsx b/packages/ui/src/Atoms/Table/Table.tsx index 083256d49..b3287f8e4 100644 --- a/packages/ui/src/Atoms/Table/Table.tsx +++ b/packages/ui/src/Atoms/Table/Table.tsx @@ -81,7 +81,7 @@ export function Th({ ); } -const TrContext = createContext({} as { to?: string }); +const TrContext = createContext<{ to?: string }>({}); export function Tr({ to, diff --git a/packages/ui/src/Foundation.stories.tsx b/packages/ui/src/Foundation.stories.tsx index 4e585461d..1bdfe2733 100644 --- a/packages/ui/src/Foundation.stories.tsx +++ b/packages/ui/src/Foundation.stories.tsx @@ -14,6 +14,7 @@ import { objectKeys } from "@probo/helpers"; import type { Meta, StoryObj } from "@storybook/react"; +import type { ComponentType } from "react"; import * as icons from "./Atoms/Icons"; @@ -183,7 +184,7 @@ export const Icons: Story = {
{objectKeys(icons).map((k) => { /* eslint import-x/namespace: ['error', { allowComputed: true }] */ - const IconComponent = icons[k]; + const IconComponent = icons[k] as ComponentType; return (