diff --git a/apps/docs/CONTRIBUTING.md b/apps/docs/CONTRIBUTING.md index 843af5ed2e4..cfb0c34b6db 100644 --- a/apps/docs/CONTRIBUTING.md +++ b/apps/docs/CONTRIBUTING.md @@ -147,7 +147,7 @@ If you're a library maintainer, follow these steps when updating function parame ## Content reuse -If you copy the same content multiple times across different files, create a **partial** for content reuse instead. Partials are MDX files contained in [`apps/docs/components/MDX`](https://github.com/supabase/supabase/tree/master/apps/docs/components/MDX). They contain reusable snippets that can be inserted in multiple pages. For example, you can create a partial to define a common setup step for a group of tutorials. +If you copy the same content multiple times across different files, create a **partial** for content reuse instead. Partials are MDX files contained in [`apps/docs/content/_partials`](https://github.com/supabase/supabase/tree/master/apps/docs/content/_partials). They contain reusable snippets that can be inserted in multiple pages. For example, you can create a partial to define a common setup step for a group of tutorials. To use a partial, import it into your MDX file. You can also set up a partial to automatically import by including it in the `components` within [`apps/docs/components/index.tsx`](https://github.com/supabase/supabase/blob/master/apps/docs/components/index.tsx). diff --git a/apps/docs/app/guides/database/extensions/wrappers/[[...slug]]/page.tsx b/apps/docs/app/guides/database/extensions/wrappers/[[...slug]]/page.tsx index d695b03374a..239763225b5 100644 --- a/apps/docs/app/guides/database/extensions/wrappers/[[...slug]]/page.tsx +++ b/apps/docs/app/guides/database/extensions/wrappers/[[...slug]]/page.tsx @@ -1,28 +1,30 @@ import matter from 'gray-matter' +import Link from 'next/link' +import { notFound } from 'next/navigation' import { readFile } from 'node:fs/promises' import { join, relative } from 'node:path' import rehypeSlug from 'rehype-slug' import emoji from 'remark-emoji' -import Link from 'next/link' +// End of third-party imports + +import { IS_PROD, isFeatureEnabled } from 'common' import { Button } from 'ui' import { Admonition } from 'ui-patterns' - -import { Guide, GuideArticle, GuideHeader, GuideFooter, GuideMdxContent } from '~/features/ui/guide' -import { newEditLink } from '~/features/helpers.edit-link' import { genGuideMeta, genGuidesStaticParams, removeRedundantH1, } from '~/features/docs/GuidesMdx.utils' +import { newEditLink } from '~/features/helpers.edit-link' import { REVALIDATION_TAGS } from '~/features/helpers.fetch' +import { Guide, GuideArticle, GuideFooter, GuideHeader, GuideMdxContent } from '~/features/ui/guide' import { GUIDES_DIRECTORY, isValidGuideFrontmatter } from '~/lib/docs' -import { UrlTransformFunction, linkTransform } from '~/lib/mdx/plugins/rehypeLinkTransform' +import { linkTransform, type UrlTransformFunction } from '~/lib/mdx/plugins/rehypeLinkTransform' import remarkMkDocsAdmonition from '~/lib/mdx/plugins/remarkAdmonition' import { removeTitle } from '~/lib/mdx/plugins/remarkRemoveTitle' import remarkPyMdownTabs from '~/lib/mdx/plugins/remarkTabs' import { octokit } from '~/lib/octokit' -import { SerializeOptions } from '~/types/next-mdx-remote-serialize' -import { IS_PROD } from 'common' +import type { SerializeOptions } from '~/types/next-mdx-remote-serialize' // We fetch these docs at build time from an external repo const org = 'supabase' @@ -85,7 +87,10 @@ async function getLatestRelease(after: string | null = null) { after, request: { fetch: (url: RequestInfo | URL, options?: RequestInit) => - fetch(url, { ...options, next: { tags: [REVALIDATION_TAGS.WRAPPERS] } }), + fetch(url, { + ...options, + next: { tags: [REVALIDATION_TAGS.WRAPPERS] }, + }), }, }) @@ -243,6 +248,10 @@ interface Params { } const WrappersDocs = async (props: { params: Promise }) => { + if (!isFeatureEnabled('docs:fdw')) { + notFound() + } + const params = await props.params const { isExternal, meta, assetsBaseUrl, ...data } = await getContent(params) diff --git a/apps/docs/components/HomePageCover.tsx b/apps/docs/components/HomePageCover.tsx index 3cb33e4ed5c..5e35276d153 100644 --- a/apps/docs/components/HomePageCover.tsx +++ b/apps/docs/components/HomePageCover.tsx @@ -2,11 +2,12 @@ import { ChevronRight, Play, Sparkles } from 'lucide-react' import Link from 'next/link' +// End of third-party imports import { isFeatureEnabled, useBreakpoint } from 'common' import { cn, IconBackground } from 'ui' import { IconPanel } from 'ui-patterns/IconPanel' - +import { useCustomContent } from '../hooks/custom-content/useCustomContent' import DocsCoverLogo from './DocsCoverLogo' const { sdkDart: sdkDartEnabled, sdkKotlin: sdkKotlinEnabled } = isFeatureEnabled([ @@ -36,6 +37,7 @@ function AiPrompt({ className }: { className?: string }) { const HomePageCover = (props) => { const isXs = useBreakpoint(639) const iconSize = isXs ? 'sm' : 'lg' + const { homepageHeading } = useCustomContent(['homepage:heading']) const frameworks = [ { @@ -141,7 +143,9 @@ const HomePageCover = (props) => {
diff --git a/apps/studio/components/interfaces/Auth/Policies/PolicyEditorModal/PolicyEditorModalTitle.tsx b/apps/studio/components/interfaces/Auth/Policies/PolicyEditorModal/PolicyEditorModalTitle.tsx index dc196a4e6e7..cb6071b0db2 100644 --- a/apps/studio/components/interfaces/Auth/Policies/PolicyEditorModal/PolicyEditorModalTitle.tsx +++ b/apps/studio/components/interfaces/Auth/Policies/PolicyEditorModal/PolicyEditorModalTitle.tsx @@ -2,6 +2,7 @@ import { noop } from 'lodash' import { ChevronLeft, FlaskConical } from 'lucide-react' import { DocsButton } from 'components/ui/DocsButton' +import { DOCS_URL } from 'lib/constants' import { Button } from 'ui' import { POLICY_MODAL_VIEWS } from '../Policies.constants' @@ -59,10 +60,7 @@ const PolicyEditorModalTitle = ({ Try Supabase Assistant )} - +
) diff --git a/apps/studio/components/interfaces/Auth/ProtectionAuthSettingsForm/ProtectionAuthSettingsForm.tsx b/apps/studio/components/interfaces/Auth/ProtectionAuthSettingsForm/ProtectionAuthSettingsForm.tsx index 791d1ccd6f1..748806817ca 100644 --- a/apps/studio/components/interfaces/Auth/ProtectionAuthSettingsForm/ProtectionAuthSettingsForm.tsx +++ b/apps/studio/components/interfaces/Auth/ProtectionAuthSettingsForm/ProtectionAuthSettingsForm.tsx @@ -13,6 +13,7 @@ import NoPermission from 'components/ui/NoPermission' import { useAuthConfigQuery } from 'data/auth/auth-config-query' import { useAuthConfigUpdateMutation } from 'data/auth/auth-config-update-mutation' import { useAsyncCheckPermissions } from 'hooks/misc/useCheckPermissions' +import { DOCS_URL } from 'lib/constants' import { AlertDescription_Shadcn_, AlertTitle_Shadcn_, @@ -214,9 +215,9 @@ export const ProtectionAuthSettingsForm = () => { { allowed, for example, https://*.domain.com - + {isLoading && ( diff --git a/apps/studio/components/interfaces/Auth/ThirdPartyAuthForm/IntegrationCard.tsx b/apps/studio/components/interfaces/Auth/ThirdPartyAuthForm/IntegrationCard.tsx index 4737f81cf43..be336c3519e 100644 --- a/apps/studio/components/interfaces/Auth/ThirdPartyAuthForm/IntegrationCard.tsx +++ b/apps/studio/components/interfaces/Auth/ThirdPartyAuthForm/IntegrationCard.tsx @@ -1,8 +1,8 @@ import { Check } from 'lucide-react' import Image from 'next/image' -import { useParams } from 'common' import { ThirdPartyAuthIntegration } from 'data/third-party-auth/integrations-query' +import { DOCS_URL } from 'lib/constants' import { Badge, Button } from 'ui' import { AWS_IDP_REGIONS } from './AwsRegionSelector' import { @@ -29,7 +29,7 @@ export const getIntegrationTypeDescription = (type: INTEGRATION_TYPES) => { users. You can read more in the{' '}
documentation @@ -44,7 +44,7 @@ export const getIntegrationTypeDescription = (type: INTEGRATION_TYPES) => { read more in the{' '} documentation @@ -58,7 +58,7 @@ export const getIntegrationTypeDescription = (type: INTEGRATION_TYPES) => { can read more in the{' '} documentation @@ -73,7 +73,7 @@ export const getIntegrationTypeDescription = (type: INTEGRATION_TYPES) => { more in the{' '} documentation @@ -88,7 +88,7 @@ export const getIntegrationTypeDescription = (type: INTEGRATION_TYPES) => { more in the{' '} documentation diff --git a/apps/studio/components/interfaces/Auth/ThirdPartyAuthForm/index.tsx b/apps/studio/components/interfaces/Auth/ThirdPartyAuthForm/index.tsx index 3962304fe17..99890c35aaf 100644 --- a/apps/studio/components/interfaces/Auth/ThirdPartyAuthForm/index.tsx +++ b/apps/studio/components/interfaces/Auth/ThirdPartyAuthForm/index.tsx @@ -18,6 +18,7 @@ import { useThirdPartyAuthIntegrationsQuery, } from 'data/third-party-auth/integrations-query' import { useAsyncCheckPermissions } from 'hooks/misc/useCheckPermissions' +import { DOCS_URL } from 'lib/constants' import { cn } from 'ui' import ConfirmationModal from 'ui-patterns/Dialogs/ConfirmationModal' import { AddIntegrationDropdown } from './AddIntegrationDropdown' @@ -73,14 +74,16 @@ export const ThirdPartyAuthForm = () => {
Billing is based on the number of monthly active users (MAUs) requesting your API throughout the billing period. Refer to our{' '} - + billing docs {' '} for more information.
- + {integrations.length !== 0 && ( )} diff --git a/apps/studio/components/interfaces/Auth/Users/UsersV2.tsx b/apps/studio/components/interfaces/Auth/Users/UsersV2.tsx index e2819a9bdca..d1564757727 100644 --- a/apps/studio/components/interfaces/Auth/Users/UsersV2.tsx +++ b/apps/studio/components/interfaces/Auth/Users/UsersV2.tsx @@ -317,7 +317,7 @@ export const UsersV2 = () => { value={search} onChange={(e) => setSearch(e.target.value)} onKeyDown={(e) => { - if (e.code === 'Enter') { + if (e.code === 'Enter' || e.code === 'NumpadEnter') { setSearch(search.trim()) setFilterKeywords(search.trim().toLocaleLowerCase()) } diff --git a/apps/studio/components/interfaces/Billing/SpendCapModal.tsx b/apps/studio/components/interfaces/Billing/SpendCapModal.tsx index a119c087a63..e0c132c4a09 100644 --- a/apps/studio/components/interfaces/Billing/SpendCapModal.tsx +++ b/apps/studio/components/interfaces/Billing/SpendCapModal.tsx @@ -1,4 +1,5 @@ import { DocsButton } from 'components/ui/DocsButton' +import { DOCS_URL } from 'lib/constants' import { Button, Modal, Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from 'ui' interface SpendCapModalProps { @@ -15,7 +16,7 @@ const SpendCapModal = ({ visible, onHide }: SpendCapModalProps) => { header={
Spend Cap - +
} showCloseButton={false} diff --git a/apps/studio/components/interfaces/Billing/Usage/UsageWarningAlerts/CPUWarnings.tsx b/apps/studio/components/interfaces/Billing/Usage/UsageWarningAlerts/CPUWarnings.tsx index fc254440a42..daf855d7baa 100644 --- a/apps/studio/components/interfaces/Billing/Usage/UsageWarningAlerts/CPUWarnings.tsx +++ b/apps/studio/components/interfaces/Billing/Usage/UsageWarningAlerts/CPUWarnings.tsx @@ -1,6 +1,8 @@ -import { AlertTitle } from '@ui/components/shadcn/ui/alert' import { AlertCircle } from 'lucide-react' import Link from 'next/link' + +import { AlertTitle } from '@ui/components/shadcn/ui/alert' +import { DOCS_URL } from 'lib/constants' import { AlertDescription_Shadcn_, Alert_Shadcn_, Button } from 'ui' interface CPUWarningsProps { @@ -22,9 +24,7 @@ const CPUWarnings = ({ isFreePlan, upgradeUrl, severity }: CPUWarningsProps) =>
diff --git a/apps/studio/components/interfaces/Connect/Connect.constants.ts b/apps/studio/components/interfaces/Connect/Connect.constants.ts index 80f82d9560a..33ff40fa88b 100644 --- a/apps/studio/components/interfaces/Connect/Connect.constants.ts +++ b/apps/studio/components/interfaces/Connect/Connect.constants.ts @@ -1,3 +1,4 @@ +import { DOCS_URL } from 'lib/constants' import { CodeBlockLang } from 'ui' export type DatabaseConnectionType = @@ -75,7 +76,7 @@ export const FRAMEWORKS: ConnectionType[] = [ key: 'nextjs', label: 'Next.js', icon: 'nextjs', - guideLink: 'https://supabase.com/docs/guides/getting-started/quickstarts/nextjs', + guideLink: `${DOCS_URL}/guides/getting-started/quickstarts/nextjs`, children: [ { key: 'app', @@ -109,8 +110,7 @@ export const FRAMEWORKS: ConnectionType[] = [ key: 'remix', label: 'Remix', icon: 'remix', - guideLink: - 'https://supabase.com/docs/guides/auth/server-side/creating-a-client?framework=remix&environment=remix-loader', + guideLink: `${DOCS_URL}/guides/auth/server-side/creating-a-client?framework=remix&environment=remix-loader`, children: [ { key: 'supabasejs', @@ -124,7 +124,7 @@ export const FRAMEWORKS: ConnectionType[] = [ key: 'react', label: 'React', icon: 'react', - guideLink: 'https://supabase.com/docs/guides/getting-started/quickstarts/reactjs', + guideLink: `${DOCS_URL}/guides/getting-started/quickstarts/reactjs`, children: [ { key: 'create-react-app', @@ -158,7 +158,7 @@ export const FRAMEWORKS: ConnectionType[] = [ key: 'nuxt', label: 'Nuxt', icon: 'nuxt', - guideLink: 'https://supabase.com/docs/guides/getting-started/quickstarts/nuxtjs', + guideLink: `${DOCS_URL}/guides/getting-started/quickstarts/nuxtjs`, children: [ { key: 'supabasejs', @@ -172,7 +172,7 @@ export const FRAMEWORKS: ConnectionType[] = [ key: 'vuejs', label: 'Vue.JS', icon: 'vuejs', - guideLink: 'https://supabase.com/docs/guides/getting-started/quickstarts/vue', + guideLink: `${DOCS_URL}/guides/getting-started/quickstarts/vue`, children: [ { key: 'supabasejs', @@ -187,7 +187,7 @@ export const FRAMEWORKS: ConnectionType[] = [ key: 'sveltekit', label: 'SvelteKit', icon: 'sveltekit', - guideLink: 'https://supabase.com/docs/guides/getting-started/quickstarts/sveltekit', + guideLink: `${DOCS_URL}/guides/getting-started/quickstarts/sveltekit`, children: [ { key: 'supabasejs', @@ -201,7 +201,7 @@ export const FRAMEWORKS: ConnectionType[] = [ key: 'solidjs', label: 'Solid.js', icon: 'solidjs', - guideLink: 'https://supabase.com/docs/guides/getting-started/quickstarts/solidjs', + guideLink: `${DOCS_URL}/guides/getting-started/quickstarts/solidjs`, children: [ { key: 'supabasejs', @@ -229,7 +229,7 @@ export const FRAMEWORKS: ConnectionType[] = [ key: 'refine', label: 'refine', icon: 'refine', - guideLink: 'https://supabase.com/docs/guides/getting-started/quickstarts/refine', + guideLink: `${DOCS_URL}/guides/getting-started/quickstarts/refine`, children: [ { key: 'supabasejs', @@ -246,7 +246,7 @@ export const MOBILES: ConnectionType[] = [ key: 'exporeactnative', label: 'Expo React Native', icon: 'expo', - guideLink: 'https://supabase.com/docs/guides/getting-started/tutorials/with-expo-react-native', + guideLink: `${DOCS_URL}/guides/getting-started/tutorials/with-expo-react-native`, children: [ { key: 'supabasejs', @@ -260,7 +260,7 @@ export const MOBILES: ConnectionType[] = [ key: 'flutter', label: 'Flutter', icon: 'flutter', - guideLink: 'https://supabase.com/docs/guides/getting-started/tutorials/with-flutter', + guideLink: `${DOCS_URL}/guides/getting-started/tutorials/with-flutter`, children: [ { key: 'supabaseflutter', @@ -274,7 +274,7 @@ export const MOBILES: ConnectionType[] = [ key: 'ionicreact', label: 'Ionic React', icon: 'react', - guideLink: 'https://supabase.com/docs/guides/getting-started/tutorials/with-ionic-react', + guideLink: `${DOCS_URL}/guides/getting-started/tutorials/with-ionic-react`, children: [ { key: 'supabasejs', @@ -288,7 +288,7 @@ export const MOBILES: ConnectionType[] = [ key: 'swift', label: 'Swift', icon: 'swift', - guideLink: 'https://supabase.com/docs/guides/getting-started/tutorials/with-swift', + guideLink: `${DOCS_URL}/guides/getting-started/tutorials/with-swift`, children: [ { key: 'supabaseswift', @@ -302,7 +302,7 @@ export const MOBILES: ConnectionType[] = [ key: 'androidkotlin', label: 'Android Kotlin', icon: 'kotlin', - guideLink: 'https://supabase.com/docs/guides/getting-started/tutorials/with-kotlin', + guideLink: `${DOCS_URL}/guides/getting-started/tutorials/with-kotlin`, children: [ { key: 'supabasekt', @@ -316,7 +316,7 @@ export const MOBILES: ConnectionType[] = [ key: 'ionicangular', label: 'Ionic Angular', icon: 'ionic-angular', - guideLink: 'https://supabase.com/docs/guides/getting-started/tutorials/with-ionic-angular', + guideLink: `${DOCS_URL}/guides/getting-started/tutorials/with-ionic-angular`, children: [ { key: 'supabasejs', @@ -340,8 +340,7 @@ export const ORMS: ConnectionType[] = [ key: 'drizzle', label: 'Drizzle', icon: 'drizzle', - guideLink: - 'https://supabase.com/docs/guides/database/connecting-to-postgres#connecting-with-drizzle', + guideLink: `${DOCS_URL}/guides/database/connecting-to-postgres#connecting-with-drizzle`, children: [], }, ] diff --git a/apps/studio/components/interfaces/Database/Backups/BackupItem.tsx b/apps/studio/components/interfaces/Database/Backups/BackupItem.tsx index 85a69d5680e..f298ebd9142 100644 --- a/apps/studio/components/interfaces/Database/Backups/BackupItem.tsx +++ b/apps/studio/components/interfaces/Database/Backups/BackupItem.tsx @@ -7,6 +7,7 @@ import { InlineLink } from 'components/ui/InlineLink' import { useBackupDownloadMutation } from 'data/database/backup-download-mutation' import type { DatabaseBackup } from 'data/database/backups-query' import { useAsyncCheckPermissions } from 'hooks/misc/useCheckPermissions' +import { DOCS_URL } from 'lib/constants' import { Badge, Tooltip, TooltipContent, TooltipTrigger } from 'ui' import { TimestampInfo } from 'ui-patterns' @@ -75,7 +76,9 @@ export const BackupItem = ({ index, isHealthy, backup, onSelectBackup }: BackupI <> Physical backups cannot be downloaded through the dashboard. You can still download it via pgdump by following our guide{' '} - + here . diff --git a/apps/studio/components/interfaces/Database/Extensions/EnableExtensionModal.tsx b/apps/studio/components/interfaces/Database/Extensions/EnableExtensionModal.tsx index 91414881c7f..c6b58a9307a 100644 --- a/apps/studio/components/interfaces/Database/Extensions/EnableExtensionModal.tsx +++ b/apps/studio/components/interfaces/Database/Extensions/EnableExtensionModal.tsx @@ -10,6 +10,7 @@ import { useSchemasQuery } from 'data/database/schemas-query' import { executeSql } from 'data/sql/execute-sql-query' import { useIsOrioleDb, useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import { useProtectedSchemas } from 'hooks/useProtectedSchemas' +import { DOCS_URL } from 'lib/constants' import { AlertDescription_Shadcn_, AlertTitle_Shadcn_, @@ -146,7 +147,7 @@ const EnableExtensionModal = ({ visible, extension, onCancel }: EnableExtensionM {extension.name} cannot be accelerated by indexes on tables that are using the OrioleDB access method - + )} diff --git a/apps/studio/components/interfaces/Database/Extensions/ExtensionRow.tsx b/apps/studio/components/interfaces/Database/Extensions/ExtensionRow.tsx index 3139f8286e7..d418a6ce95c 100644 --- a/apps/studio/components/interfaces/Database/Extensions/ExtensionRow.tsx +++ b/apps/studio/components/interfaces/Database/Extensions/ExtensionRow.tsx @@ -9,6 +9,7 @@ import { useDatabaseExtensionDisableMutation } from 'data/database-extensions/da import { DatabaseExtension } from 'data/database-extensions/database-extensions-query' import { useAsyncCheckPermissions } from 'hooks/misc/useCheckPermissions' import { useIsOrioleDb, useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' +import { DOCS_URL } from 'lib/constants' import { extensions } from 'shared-data' import { Button, Switch, TableCell, TableRow, Tooltip, TooltipContent, TooltipTrigger } from 'ui' import { Admonition } from 'ui-patterns' @@ -37,7 +38,7 @@ export const ExtensionRow = ({ extension }: ExtensionRowProps) => { const extensionMeta = extensions.find((item) => item.name === extension.name) const docsUrl = extensionMeta?.link.startsWith('/guides') - ? `https://supabase.com/docs${extensionMeta?.link}` + ? `${DOCS_URL}${extensionMeta?.link}` : extensionMeta?.link ?? undefined const { mutate: disableExtension, isLoading: isDisabling } = useDatabaseExtensionDisableMutation({ diff --git a/apps/studio/components/interfaces/Database/Extensions/Extensions.tsx b/apps/studio/components/interfaces/Database/Extensions/Extensions.tsx index 0885380baa2..08ec649e6d2 100644 --- a/apps/studio/components/interfaces/Database/Extensions/Extensions.tsx +++ b/apps/studio/components/interfaces/Database/Extensions/Extensions.tsx @@ -11,6 +11,7 @@ import { GenericSkeletonLoader } from 'components/ui/ShimmeringLoader' import { useDatabaseExtensionsQuery } from 'data/database-extensions/database-extensions-query' import { useAsyncCheckPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' +import { DOCS_URL } from 'lib/constants' import { Card, Input, @@ -72,7 +73,7 @@ export const Extensions = () => { className="w-52" icon={} /> - +
diff --git a/apps/studio/components/interfaces/Database/Hooks/HooksList/HooksList.tsx b/apps/studio/components/interfaces/Database/Hooks/HooksList/HooksList.tsx index 7e43bf126ac..56dbdfbd013 100644 --- a/apps/studio/components/interfaces/Database/Hooks/HooksList/HooksList.tsx +++ b/apps/studio/components/interfaces/Database/Hooks/HooksList/HooksList.tsx @@ -12,6 +12,7 @@ import { GenericSkeletonLoader } from 'components/ui/ShimmeringLoader' import { useDatabaseHooksQuery } from 'data/database-triggers/database-triggers-query' import { useAsyncCheckPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' +import { DOCS_URL } from 'lib/constants' import { noop } from 'lib/void' import { Input } from 'ui' import { HooksListEmpty } from './HooksListEmpty' @@ -63,7 +64,7 @@ export const HooksList = ({ onChange={(e) => setFilterString(e.target.value)} />
- + createHook()} disabled={!isPermissionsLoaded || !canCreateWebhooks} diff --git a/apps/studio/components/interfaces/Database/Indexes/CreateIndexSidePanel.tsx b/apps/studio/components/interfaces/Database/Indexes/CreateIndexSidePanel.tsx index fbf2c949d63..a76f24f6ae7 100644 --- a/apps/studio/components/interfaces/Database/Indexes/CreateIndexSidePanel.tsx +++ b/apps/studio/components/interfaces/Database/Indexes/CreateIndexSidePanel.tsx @@ -11,6 +11,7 @@ import { useSchemasQuery } from 'data/database/schemas-query' import { useTableColumnsQuery } from 'data/database/table-columns-query' import { useEntityTypesQuery } from 'data/entity-types/entity-types-infinite-query' import { useIsOrioleDb, useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' +import { DOCS_URL } from 'lib/constants' import { Button, CommandEmpty_Shadcn_, @@ -379,7 +380,7 @@ CREATE INDEX ON "${selectedSchema}"."${selectedEntity}" USING ${selectedIndexTyp description="More index types may be supported when OrioleDB is no longer in preview" > {/* [Joshen Oriole] Hook up proper docs URL */} - + )} diff --git a/apps/studio/components/interfaces/Database/Replication/DestinationPanel.tsx b/apps/studio/components/interfaces/Database/Replication/DestinationPanel.tsx index 10c152d69ee..812ad66d7b8 100644 --- a/apps/studio/components/interfaces/Database/Replication/DestinationPanel.tsx +++ b/apps/studio/components/interfaces/Database/Replication/DestinationPanel.tsx @@ -5,12 +5,15 @@ import { toast } from 'sonner' import * as z from 'zod' import { useParams } from 'common' +import { InlineLink } from 'components/ui/InlineLink' +import { useCheckPrimaryKeysExists } from 'data/database/primary-keys-exists-query' import { useCreateDestinationPipelineMutation } from 'data/replication/create-destination-pipeline-mutation' import { useReplicationDestinationByIdQuery } from 'data/replication/destination-by-id-query' import { useReplicationPipelineByIdQuery } from 'data/replication/pipeline-by-id-query' import { useReplicationPublicationsQuery } from 'data/replication/publications-query' import { useStartPipelineMutation } from 'data/replication/start-pipeline-mutation' import { useUpdateDestinationPipelineMutation } from 'data/replication/update-destination-pipeline-mutation' +import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import { PipelineStatusRequestStatus, usePipelineRequestStatus, @@ -44,6 +47,7 @@ import { Admonition } from 'ui-patterns' import { FormItemLayout } from 'ui-patterns/form/FormItemLayout/FormItemLayout' import NewPublicationPanel from './NewPublicationPanel' import PublicationsComboBox from './PublicationsComboBox' +import { ReplicationDisclaimerDialog } from './ReplicationDisclaimerDialog' const formId = 'destination-editor' const types = ['BigQuery'] as const @@ -80,10 +84,15 @@ export const DestinationPanel = ({ existingDestination, }: DestinationPanelProps) => { const { ref: projectRef } = useParams() + const { data: project } = useSelectedProjectQuery() const { setRequestStatus } = usePipelineRequestStatus() const editMode = !!existingDestination const [publicationPanelVisible, setPublicationPanelVisible] = useState(false) + const [showDisclaimerDialog, setShowDisclaimerDialog] = useState(false) + const [pendingFormValues, setPendingFormValues] = useState | null>( + null + ) const { mutateAsync: createDestinationPipeline, isLoading: creatingDestinationPipeline } = useCreateDestinationPipelineMutation({ @@ -142,9 +151,21 @@ export const DestinationPanel = ({ const isSelectedPublicationMissing = isSuccessPublications && !!publicationName && !publicationNames.includes(publicationName) - const isSubmitDisabled = isSaving || isSelectedPublicationMissing + const selectedPublication = publications.find((pub) => pub.name === publicationName) + const { data: checkPrimaryKeysExistsData, isLoading: isLoadingCheck } = useCheckPrimaryKeysExists( + { + projectRef: project?.ref, + connectionString: project?.connectionString, + tables: selectedPublication?.tables ?? [], + }, + { enabled: visible && !!selectedPublication } + ) + const hasTablesWithNoPrimaryKeys = (checkPrimaryKeysExistsData?.offendingTables ?? []).length > 0 - const onSubmit = async (data: z.infer) => { + const isSubmitDisabled = + isSaving || isSelectedPublicationMissing || isLoadingCheck || hasTablesWithNoPrimaryKeys + + const submitPipeline = async (data: z.infer) => { if (!projectRef) return console.error('Project ref is required') if (!sourceId) return console.error('Source id is required') if (isSelectedPublicationMissing) { @@ -236,6 +257,32 @@ export const DestinationPanel = ({ } } + const onSubmit = async (data: z.infer) => { + if (!editMode) { + setPendingFormValues(data) + setShowDisclaimerDialog(true) + return + } + + await submitPipeline(data) + } + + const handleDisclaimerDialogChange = (open: boolean) => { + setShowDisclaimerDialog(open) + if (!open) { + setPendingFormValues(null) + } + } + + const handleDisclaimerConfirm = async () => { + if (!pendingFormValues) return + + const values = pendingFormValues + setPendingFormValues(null) + setShowDisclaimerDialog(false) + await submitPipeline(values) + } + useEffect(() => { if (editMode && destinationData && pipelineData) { form.reset(defaultValues) @@ -303,12 +350,13 @@ export const DestinationPanel = ({ setPublicationPanelVisible(true)} /> - {isSelectedPublicationMissing && ( + {isSelectedPublicationMissing ? (

The publication{' '} @@ -317,7 +365,29 @@ export const DestinationPanel = ({ another one.

- )} + ) : hasTablesWithNoPrimaryKeys ? ( + +

+ Replication requires every table in the publication to have a + primary key to work, which these tables are missing: +

+
    + {(checkPrimaryKeysExistsData?.offendingTables ?? []).map((x) => { + const value = `${x.schema}.${x.name}` + return ( +
  • + + {value} + +
  • + ) + })} +
+

+ Ensure that these tables have primary keys first. +

+
+ ) : null} )} /> @@ -487,6 +557,13 @@ export const DestinationPanel = ({ + + {
{/* [Joshen] Placeholder for when we have documentation */} - +
) : hasDestinations ? ( diff --git a/apps/studio/components/interfaces/Database/Replication/ErroredTableDetails.tsx b/apps/studio/components/interfaces/Database/Replication/ErroredTableDetails.tsx index c38c6c272ce..ba0bdad5e4d 100644 --- a/apps/studio/components/interfaces/Database/Replication/ErroredTableDetails.tsx +++ b/apps/studio/components/interfaces/Database/Replication/ErroredTableDetails.tsx @@ -1,7 +1,7 @@ import { useParams } from 'common' import { InlineLink } from 'components/ui/InlineLink' -import { TableState } from './ReplicationPipelineStatus.types' -import { isValidRetryPolicy } from './ReplicationPipelineStatus.utils' +import { TableState } from './ReplicationPipelineStatus/ReplicationPipelineStatus.types' +import { isValidRetryPolicy } from './ReplicationPipelineStatus/ReplicationPipelineStatus.utils' import { RetryCountdown } from './RetryCountdown' import { RetryOptionsDropdown } from './RetryOptionsDropdown' diff --git a/apps/studio/components/interfaces/Database/Replication/PublicationsComboBox.tsx b/apps/studio/components/interfaces/Database/Replication/PublicationsComboBox.tsx index bc949d7f1c4..268edf139cd 100644 --- a/apps/studio/components/interfaces/Database/Replication/PublicationsComboBox.tsx +++ b/apps/studio/components/interfaces/Database/Replication/PublicationsComboBox.tsx @@ -1,7 +1,9 @@ import { Check, ChevronsUpDown, Loader2, Plus } from 'lucide-react' import { useEffect, useState } from 'react' +import { ControllerRenderProps } from 'react-hook-form' import { Button, + cn, Command_Shadcn_, CommandEmpty_Shadcn_, CommandGroup_Shadcn_, @@ -14,18 +16,19 @@ import { PopoverTrigger_Shadcn_, ScrollArea, } from 'ui' -import { ControllerRenderProps } from 'react-hook-form' interface PublicationsComboBoxProps { publications: string[] - loading: boolean + isLoadingPublications: boolean + isLoadingCheck: boolean onNewPublicationClick: () => void field: ControllerRenderProps } const PublicationsComboBox = ({ publications, - loading, + isLoadingPublications, + isLoadingCheck, onNewPublicationClick, field, }: PublicationsComboBoxProps) => { @@ -62,13 +65,16 @@ const PublicationsComboBox = ({ + + + + + ) +} diff --git a/apps/studio/components/interfaces/Database/Replication/ReplicationPipelineStatus.tsx b/apps/studio/components/interfaces/Database/Replication/ReplicationPipelineStatus/ReplicationPipelineStatus.tsx similarity index 75% rename from apps/studio/components/interfaces/Database/Replication/ReplicationPipelineStatus.tsx rename to apps/studio/components/interfaces/Database/Replication/ReplicationPipelineStatus/ReplicationPipelineStatus.tsx index 61197040cde..ec36254a3e7 100644 --- a/apps/studio/components/interfaces/Database/Replication/ReplicationPipelineStatus.tsx +++ b/apps/studio/components/interfaces/Database/Replication/ReplicationPipelineStatus/ReplicationPipelineStatus.tsx @@ -4,10 +4,12 @@ import { Ban, ChevronLeft, ExternalLink, + Info, Pause, Play, RotateCcw, Search, + WifiOff, X, } from 'lucide-react' import Link from 'next/link' @@ -31,17 +33,18 @@ import { import { Badge, Button, cn } from 'ui' import { GenericSkeletonLoader } from 'ui-patterns' import { Input } from 'ui-patterns/DataInputs/Input' -import { ErroredTableDetails } from './ErroredTableDetails' +import { ErroredTableDetails } from '../ErroredTableDetails' import { PIPELINE_ACTIONABLE_STATES, PIPELINE_ERROR_MESSAGES, getStatusName, -} from './Pipeline.utils' -import { PipelineStatus, PipelineStatusName } from './PipelineStatus' -import { STATUS_REFRESH_FREQUENCY_MS } from './Replication.constants' -import { TableState } from './ReplicationPipelineStatus.types' +} from '../Pipeline.utils' +import { PipelineStatus, PipelineStatusName } from '../PipelineStatus' +import { STATUS_REFRESH_FREQUENCY_MS } from '../Replication.constants' +import { UpdateVersionModal } from '../UpdateVersionModal' +import { SlotLagMetrics, TableState } from './ReplicationPipelineStatus.types' import { getDisabledStateConfig, getStatusConfig } from './ReplicationPipelineStatus.utils' -import { UpdateVersionModal } from './UpdateVersionModal' +import { SlotLagMetricsInline, SlotLagMetricsList } from './SlotLagMetrics' /** * Component for displaying replication pipeline status and table replication details. @@ -82,7 +85,6 @@ export const ReplicationPipelineStatus = () => { const { data: replicationStatusData, - error: statusError, isLoading: isStatusLoading, isError: isStatusError, } = useReplicationPipelineReplicationStatusQuery( @@ -107,12 +109,14 @@ export const ReplicationPipelineStatus = () => { const config = getDisabledStateConfig({ requestStatus, statusName }) const tableStatuses = replicationStatusData?.table_statuses || [] + const applyLagMetrics = replicationStatusData?.apply_lag const filteredTableStatuses = filterString.length === 0 ? tableStatuses - : tableStatuses.filter((table: TableState) => + : tableStatuses.filter((table) => table.table_name.toLowerCase().includes(filterString.toLowerCase()) ) + const tablesWithLag = tableStatuses.filter((table) => Boolean(table.table_sync_lag)) const isPipelineRunning = statusName === 'started' const hasTableData = tableStatuses.length > 0 @@ -121,6 +125,10 @@ export const ReplicationPipelineStatus = () => { requestStatus === PipelineStatusRequestStatus.StopRequested || requestStatus === PipelineStatusRequestStatus.RestartRequested const showDisabledState = !isPipelineRunning || isEnablingDisabling + const refreshIntervalLabel = + STATUS_REFRESH_FREQUENCY_MS >= 1000 + ? `${Math.round(STATUS_REFRESH_FREQUENCY_MS / 1000)}s` + : `${STATUS_REFRESH_FREQUENCY_MS}ms` const logsUrl = `/project/${projectRef}/logs/etl-replication-logs${ pipelineId ? `?f=${encodeURIComponent(JSON.stringify({ pipeline_id: pipelineId }))}` : '' @@ -242,46 +250,105 @@ export const ReplicationPipelineStatus = () => { - - {(isPipelineLoading || isStatusLoading) && } - {isPipelineError && ( )} {isStatusError && ( - +
+ + Live updates paused + Retrying automatically +
+ )} + + {showDisabledState && ( +
+
+
+
{config.icon}
+
+
+

{config.title}

+

{config.message}

+
+
+
+ )} + + {(isPipelineLoading || isStatusLoading) && ( +
+
+
+
+
+ +
+ )} + + {applyLagMetrics && ( +
+
+
+

Replication lag

+

+ Snapshot of how far this pipeline is trailing behind right now. +

+
+

+ Updates every {refreshIntervalLabel} +

+
+ + {isStatusError && ( +

+ Unable to refresh data. Showing the last values we received. +

+ )} + + + + {tablesWithLag.length > 0 && ( + <> +
+
+
+ + + During initial sync, tables can copy and stream independently before + reconciling with the overall pipeline. + +
+
+
    + {tablesWithLag.map((table) => ( +
  • + +
  • + ))} +
+
+
+ + )} +
)} {hasTableData && ( -
- {showDisabledState && ( -
-
-
-
{config.icon}
-
-
-

{config.title}

-

{config.message}

-
-
-
- )} - +
{/* [Joshen] Should update to use new Table components next time */} { )} - {filteredTableStatuses.map((table: TableState, index: number) => { - const statusConfig = getStatusConfig(table.state) + {filteredTableStatuses.map((table, index) => { + const statusConfig = getStatusConfig(table.state as TableState['state']) return ( @@ -342,7 +409,7 @@ export const ReplicationPipelineStatus = () => { Status unavailable while pipeline is {config.badge.toLowerCase()}

) : ( -
+
{statusConfig.description}
diff --git a/apps/studio/components/interfaces/Database/Replication/ReplicationPipelineStatus.types.ts b/apps/studio/components/interfaces/Database/Replication/ReplicationPipelineStatus/ReplicationPipelineStatus.types.ts similarity index 62% rename from apps/studio/components/interfaces/Database/Replication/ReplicationPipelineStatus.types.ts rename to apps/studio/components/interfaces/Database/Replication/ReplicationPipelineStatus/ReplicationPipelineStatus.types.ts index f3c3cf2b8e1..02aa0c694a9 100644 --- a/apps/studio/components/interfaces/Database/Replication/ReplicationPipelineStatus.types.ts +++ b/apps/studio/components/interfaces/Database/Replication/ReplicationPipelineStatus/ReplicationPipelineStatus.types.ts @@ -3,6 +3,16 @@ export type RetryPolicy = | { policy: 'manual_retry' } | { policy: 'timed_retry'; next_retry: string } +export type SlotLagMetrics = { + restart_lsn_bytes: number + confirmed_flush_lsn_bytes: number + safe_wal_size_bytes: number + write_lag?: number + flush_lag?: number +} + +export type SlotLagMetricKey = keyof SlotLagMetrics + export type TableState = { table_id: number table_name: string @@ -12,4 +22,5 @@ export type TableState = { | { name: 'copied_table' } | { name: 'following_wal'; lag: number } | { name: 'error'; reason: string; solution?: string; retry_policy: RetryPolicy } + table_sync_lag?: SlotLagMetrics } diff --git a/apps/studio/components/interfaces/Database/Replication/ReplicationPipelineStatus.utils.tsx b/apps/studio/components/interfaces/Database/Replication/ReplicationPipelineStatus/ReplicationPipelineStatus.utils.tsx similarity index 57% rename from apps/studio/components/interfaces/Database/Replication/ReplicationPipelineStatus.utils.tsx rename to apps/studio/components/interfaces/Database/Replication/ReplicationPipelineStatus/ReplicationPipelineStatus.utils.tsx index a4d3504431b..76552b4d1df 100644 --- a/apps/studio/components/interfaces/Database/Replication/ReplicationPipelineStatus.utils.tsx +++ b/apps/studio/components/interfaces/Database/Replication/ReplicationPipelineStatus/ReplicationPipelineStatus.utils.tsx @@ -1,46 +1,57 @@ -import { ReplicationPipelineStatusData } from 'data/replication/pipeline-status-query' +import dayjs from 'dayjs' import { Activity, Clock, HelpCircle, Loader2, XCircle } from 'lucide-react' + +import { ReplicationPipelineStatusData } from 'data/replication/pipeline-status-query' +import { formatBytes } from 'lib/helpers' import { PipelineStatusRequestStatus } from 'state/replication-pipeline-request-status' import { Badge } from 'ui' -import { getPipelineStateMessages } from './Pipeline.utils' +import { getPipelineStateMessages } from '../Pipeline.utils' import { RetryPolicy, TableState } from './ReplicationPipelineStatus.types' +const numberFormatter = new Intl.NumberFormat() + export const getStatusConfig = (state: TableState['state']) => { switch (state.name) { case 'queued': return { badge: Queued, - description: 'Waiting to start replication', + description: 'Table is waiting for ETL to pick it up for replication.', + tooltip: 'Table is waiting for ETL to pick it up for replication.', color: 'text-warning', } case 'copying_table': return { badge: Copying, - description: 'Initial data copy in progress', + description: "Table's existing rows are being copied before live streaming begins.", + tooltip: "Table's existing rows are being copied before live streaming begins.", color: 'text-brand-600', } case 'copied_table': return { badge: Copied, - description: 'Initial copy completed', + description: "Table copy is complete and it's preparing to follow WAL changes.", + tooltip: "Table copy is complete and it's preparing to follow WAL changes.", color: 'text-success-600', } case 'following_wal': return { badge: Live, - description: `Replicating live changes`, + description: 'Table is streaming new changes in real time from the WAL.', + tooltip: 'Table is streaming new changes in real time from the WAL.', color: 'text-success-600', } case 'error': return { badge: Error, - description:
{state.reason}
, + description: 'Replication is paused because the table encountered an error.', + tooltip: 'Replication is paused because the table encountered an error.', color: 'text-destructive-600', } default: return { badge: Unknown, - description: 'Unknown status', + description: 'Table status is unavailable.', + tooltip: 'Table status is unavailable.', color: 'text-warning', } } @@ -122,3 +133,57 @@ export const isValidRetryPolicy = (policy: any): policy is RetryPolicy => { return false } } + +const formatLagBytesValue = (value?: number) => { + if (typeof value !== 'number' || Number.isNaN(value)) { + return { display: '—', detail: undefined } + } + + const decimals = value < 1024 ? 0 : value < 1024 * 1024 ? 1 : 2 + const display = formatBytes(value, decimals) + const detail = `${numberFormatter.format(value)} bytes` + + return { display, detail } +} + +const formatLagDurationValue = (value?: number) => { + if (typeof value !== 'number' || Number.isNaN(value)) { + return { display: '—', detail: undefined } + } + + const sign = value < 0 ? '-' : '' + const absMilliseconds = Math.abs(value) + const duration = dayjs.duration(absMilliseconds, 'milliseconds') + + if (absMilliseconds < 1000) { + return { display: `${value} ms`, detail: undefined } + } + + const seconds = duration.asSeconds() + if (seconds < 60) { + const decimals = seconds >= 10 ? 1 : 2 + return { + display: `${sign}${seconds.toFixed(decimals)} s`, + detail: `${numberFormatter.format(value)} ms`, + } + } + + const minutes = duration.asMinutes() + if (minutes < 60) { + const roundedSeconds = Math.round(seconds) + return { + display: `${sign}${minutes.toFixed(minutes >= 10 ? 1 : 2)} min`, + detail: `${numberFormatter.format(roundedSeconds)} s`, + } + } + + const hours = duration.asHours() + const roundedMinutes = Math.round(minutes) + return { + display: `${sign}${hours.toFixed(hours >= 10 ? 1 : 2)} h`, + detail: `${numberFormatter.format(roundedMinutes)} min`, + } +} + +export const getFormattedLagValue = (type: 'bytes' | 'duration', value?: number) => + type === 'bytes' ? formatLagBytesValue(value) : formatLagDurationValue(value) diff --git a/apps/studio/components/interfaces/Database/Replication/ReplicationPipelineStatus/SlotLagMetrics.tsx b/apps/studio/components/interfaces/Database/Replication/ReplicationPipelineStatus/SlotLagMetrics.tsx new file mode 100644 index 00000000000..1e11718fbec --- /dev/null +++ b/apps/studio/components/interfaces/Database/Replication/ReplicationPipelineStatus/SlotLagMetrics.tsx @@ -0,0 +1,126 @@ +import { Info } from 'lucide-react' + +import { Tooltip, TooltipContent, TooltipTrigger } from 'ui' +import { SlotLagMetricKey, SlotLagMetrics } from './ReplicationPipelineStatus.types' +import { getFormattedLagValue } from './ReplicationPipelineStatus.utils' + +const SLOT_LAG_FIELDS: { + key: SlotLagMetricKey + label: string + type: 'bytes' | 'duration' + description: string +}[] = [ + { + key: 'confirmed_flush_lsn_bytes', + label: 'WAL Flush lag (size)', + type: 'bytes', + description: + 'Bytes between the newest WAL record applied locally and the latest flushed WAL record acknowledged by ETL.', + }, + { + key: 'flush_lag', + label: 'WAL Flush lag (time)', + type: 'duration', + description: + 'Time between flushing recent WAL locally and receiving notification that ETL has written and flushed it.', + }, + { + key: 'safe_wal_size_bytes', + label: 'Remaining WAL size', + type: 'bytes', + description: + 'Bytes still available to write to WAL before this slot risks entering the "lost" state.', + }, +] + +export const SlotLagMetricsInline = ({ + tableName, + metrics, +}: { + tableName: string + metrics: SlotLagMetrics +}) => { + return ( +
+ + {tableName} + + • +
+ {SLOT_LAG_FIELDS.map(({ key, label, type }) => { + const { display } = getFormattedLagValue(type, metrics[key]) + return ( + + + {label} + + {display} + + ) + })} +
+
+ ) +} + +export const SlotLagMetricsList = ({ + metrics, + size = 'default', + showMetricInfo = true, +}: { + metrics: SlotLagMetrics + size?: 'default' | 'compact' + showMetricInfo?: boolean +}) => { + const gridClasses = + size === 'default' + ? 'grid-cols-1 sm:grid-cols-2 xl:grid-cols-3 gap-y-4 gap-x-6' + : 'grid-cols-2 gap-y-2 gap-x-4' + + const labelClasses = + size === 'default' ? 'text-xs text-foreground-light' : 'text-[11px] text-foreground-lighter' + + const valueClasses = + size === 'default' + ? 'text-sm font-medium text-foreground' + : 'text-xs font-medium text-foreground' + + return ( +
+ {SLOT_LAG_FIELDS.map(({ key, label, type, description }) => ( +
+
+ + {label} + {showMetricInfo && ( + + + + + + {description} + + + )} + +
+ {(() => { + const { display, detail } = getFormattedLagValue(type, metrics[key]) + return ( +
+ {display} + {detail && {detail}} +
+ ) + })()} +
+ ))} +
+ ) +} diff --git a/apps/studio/components/interfaces/DiskManagement/DiskManagementForm.tsx b/apps/studio/components/interfaces/DiskManagement/DiskManagementForm.tsx index cf0757aee79..a79cfa8db1e 100644 --- a/apps/studio/components/interfaces/DiskManagement/DiskManagementForm.tsx +++ b/apps/studio/components/interfaces/DiskManagement/DiskManagementForm.tsx @@ -32,7 +32,7 @@ import { useIsAwsK8sCloudProvider, useSelectedProjectQuery, } from 'hooks/misc/useSelectedProject' -import { GB, PROJECT_STATUS } from 'lib/constants' +import { DOCS_URL, GB, PROJECT_STATUS } from 'lib/constants' import { CloudProvider } from 'shared-data' import { Button, @@ -372,7 +372,7 @@ export function DiskManagementForm() { )} @@ -385,7 +385,7 @@ export function DiskManagementForm() { )} diff --git a/apps/studio/components/interfaces/DiskManagement/DiskManagementPanelForm.tsx b/apps/studio/components/interfaces/DiskManagement/DiskManagementPanelForm.tsx index 7c6c56ef9ec..e9a580af50c 100644 --- a/apps/studio/components/interfaces/DiskManagement/DiskManagementPanelForm.tsx +++ b/apps/studio/components/interfaces/DiskManagement/DiskManagementPanelForm.tsx @@ -2,6 +2,7 @@ import Link from 'next/link' import { useParams } from 'common' import { FormHeader } from 'components/ui/Forms/FormHeader' +import { DOCS_URL } from 'lib/constants' import { Button } from 'ui' import { NoticeBar } from './ui/NoticeBar' @@ -13,7 +14,7 @@ export function DiskManagementPanelForm() {
diff --git a/apps/studio/components/interfaces/DiskManagement/fields/DiskSizeField.tsx b/apps/studio/components/interfaces/DiskManagement/fields/DiskSizeField.tsx index ce2105adb22..9b6057676a2 100644 --- a/apps/studio/components/interfaces/DiskManagement/fields/DiskSizeField.tsx +++ b/apps/studio/components/interfaces/DiskManagement/fields/DiskSizeField.tsx @@ -8,7 +8,7 @@ import { useDiskUtilizationQuery } from 'data/config/disk-utilization-query' import dayjs from 'dayjs' import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' -import { GB } from 'lib/constants' +import { DOCS_URL, GB } from 'lib/constants' import { Button, FormControl_Shadcn_, FormField_Shadcn_, Input_Shadcn_, Skeleton, cn } from 'ui' import { FormItemLayout } from 'ui-patterns/form/FormItemLayout/FormItemLayout' import { DiskStorageSchemaType } from '../DiskManagement.schema' @@ -156,10 +156,7 @@ export function DiskSizeField({ `Your plan includes ${includedDiskGB} GB of disk size for ${watchedStorageType}.`}
- +

Generating types - +

@@ -53,10 +54,8 @@ export default function GeneratingTypes({ selectedLang }: Props) {

You can generate types from your database either through the{' '} - - Supabase CLI - - , or by downloading the types file via the button on the right and importing it in your + Supabase CLI, or + by downloading the types file via the button on the right and importing it in your application within src/index.ts.

diff --git a/apps/studio/components/interfaces/Docs/Pages/UserManagement.tsx b/apps/studio/components/interfaces/Docs/Pages/UserManagement.tsx index ff4ef5661eb..35a056b4a02 100644 --- a/apps/studio/components/interfaces/Docs/Pages/UserManagement.tsx +++ b/apps/studio/components/interfaces/Docs/Pages/UserManagement.tsx @@ -4,6 +4,7 @@ import { useRouter } from 'next/router' import { useParams } from 'common' import { useProjectSettingsV2Query } from 'data/config/project-settings-v2-query' import { useIsFeatureEnabled } from 'hooks/misc/useIsFeatureEnabled' +import { DOCS_URL } from 'lib/constants' import { makeRandomString } from 'lib/helpers' import CodeSnippet from '../CodeSnippet' import Snippets from '../Snippets' @@ -179,11 +180,7 @@ export const UserManagement = ({ selectedLang, showApiKey }: UserManagementProps

View all the available{' '} - + Third Party OAuth providers

diff --git a/apps/studio/components/interfaces/Docs/ResourceContent.tsx b/apps/studio/components/interfaces/Docs/ResourceContent.tsx index cefe96e153c..610eb85c4dd 100644 --- a/apps/studio/components/interfaces/Docs/ResourceContent.tsx +++ b/apps/studio/components/interfaces/Docs/ResourceContent.tsx @@ -8,6 +8,7 @@ import Snippets from 'components/interfaces/Docs/Snippets' import { useCustomDomainsQuery } from 'data/custom-domains/custom-domains-query' import { useProjectJsonSchemaQuery } from 'data/docs/project-json-schema-query' import { useIsFeatureEnabled } from 'hooks/misc/useIsFeatureEnabled' +import { DOCS_URL } from 'lib/constants' interface ResourceContentProps { apiEndpoint: string @@ -120,7 +121,7 @@ const ResourceContent = ({

@@ -157,7 +158,7 @@ const ResourceContent = ({

Supabase provides a wide range of filters.

@@ -188,7 +189,7 @@ const ResourceContent = ({

@@ -228,7 +229,7 @@ const ResourceContent = ({

@@ -256,7 +257,7 @@ const ResourceContent = ({

@@ -285,7 +286,7 @@ const ResourceContent = ({

diff --git a/apps/studio/components/interfaces/Functions/EdgeFunctionDetails/EdgeFunctionDetails.tsx b/apps/studio/components/interfaces/Functions/EdgeFunctionDetails/EdgeFunctionDetails.tsx index d4b163cfee4..74aab28e1c1 100644 --- a/apps/studio/components/interfaces/Functions/EdgeFunctionDetails/EdgeFunctionDetails.tsx +++ b/apps/studio/components/interfaces/Functions/EdgeFunctionDetails/EdgeFunctionDetails.tsx @@ -19,6 +19,7 @@ import { useEdgeFunctionQuery } from 'data/edge-functions/edge-function-query' import { useEdgeFunctionDeleteMutation } from 'data/edge-functions/edge-functions-delete-mutation' import { useEdgeFunctionUpdateMutation } from 'data/edge-functions/edge-functions-update-mutation' import { useAsyncCheckPermissions } from 'hooks/misc/useCheckPermissions' +import { DOCS_URL } from 'lib/constants' import { Alert_Shadcn_, AlertDescription_Shadcn_, @@ -378,7 +379,7 @@ export const EdgeFunctionDetails = () => { icon={} > diff --git a/apps/studio/components/interfaces/Functions/FunctionsEmptyState.tsx b/apps/studio/components/interfaces/Functions/FunctionsEmptyState.tsx index 2d288a5bfc2..a89cd1c85a0 100644 --- a/apps/studio/components/interfaces/Functions/FunctionsEmptyState.tsx +++ b/apps/studio/components/interfaces/Functions/FunctionsEmptyState.tsx @@ -1,6 +1,7 @@ import { Code, Github, Lock, Play, Server, Terminal } from 'lucide-react' import Link from 'next/link' import { useRouter } from 'next/router' +import { useMemo } from 'react' import { useParams } from 'common' import { ScaffoldSectionTitle } from 'components/layouts/Scaffold' @@ -8,7 +9,9 @@ import { DocsButton } from 'components/ui/DocsButton' import { ResourceItem } from 'components/ui/Resource/ResourceItem' import { ResourceList } from 'components/ui/Resource/ResourceList' import { useSendEventMutation } from 'data/telemetry/send-event-mutation' +import { useIsFeatureEnabled } from 'hooks/misc/useIsFeatureEnabled' import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization' +import { DOCS_URL } from 'lib/constants' import { useAiAssistantStateSnapshot } from 'state/ai-assistant-state' import { AiIconAnimation, @@ -39,6 +42,16 @@ export const FunctionsEmptyState = () => { const { mutate: sendEvent } = useSendEventMutation() const { data: org } = useSelectedOrganizationQuery() + const showStripeExample = useIsFeatureEnabled('edge_functions:show_stripe_example') + const templates = useMemo(() => { + if (showStripeExample) { + return EDGE_FUNCTION_TEMPLATES + } + + // Filter out Stripe template + return EDGE_FUNCTION_TEMPLATES.filter((template) => template.value !== 'stripe-webhook') + }, [showStripeExample]) + return ( <> @@ -157,7 +170,7 @@ export const FunctionsEmptyState = () => { Start with a template - {EDGE_FUNCTION_TEMPLATES.map((template) => ( + {templates.map((template) => ( } @@ -181,6 +194,16 @@ export const FunctionsEmptyState = () => { } export const FunctionsEmptyStateLocal = () => { + const showStripeExample = useIsFeatureEnabled('edge_functions:show_stripe_example') + const templates = useMemo(() => { + if (showStripeExample) { + return EDGE_FUNCTION_TEMPLATES + } + + // Filter out Stripe template + return EDGE_FUNCTION_TEMPLATES.filter((template) => template.value !== 'stripe-webhook') + }, [showStripeExample]) + return ( <>

- +
@@ -237,7 +262,9 @@ supabase start # start the supabase stack supabase functions serve # start the Functions watcher`.trim()} />
- +
@@ -263,7 +290,9 @@ curl --request POST 'http://localhost:54321/functions/v1/hello-world' \\ --data '{ "name":"Functions" }'`.trim()} />
- +
@@ -284,7 +313,7 @@ curl --request POST 'http://localhost:54321/functions/v1/hello-world' \\ on providers like Fly.io, Digital Ocean, or AWS.

- + @@ -295,7 +324,7 @@ curl --request POST 'http://localhost:54321/functions/v1/hello-world' \\ Explore our templates - {EDGE_FUNCTION_TEMPLATES.map((template) => ( + {templates.map((template) => ( {
- + diff --git a/apps/studio/components/interfaces/Functions/TerminalInstructions.tsx b/apps/studio/components/interfaces/Functions/TerminalInstructions.tsx index 363fd7c1056..edcd5584372 100644 --- a/apps/studio/components/interfaces/Functions/TerminalInstructions.tsx +++ b/apps/studio/components/interfaces/Functions/TerminalInstructions.tsx @@ -9,6 +9,7 @@ import { useAccessTokensQuery } from 'data/access-tokens/access-tokens-query' import { getKeys, useAPIKeysQuery } from 'data/api-keys/api-keys-query' import { useProjectSettingsV2Query } from 'data/config/project-settings-v2-query' import { useCustomDomainsQuery } from 'data/custom-domains/custom-domains-query' +import { DOCS_URL } from 'lib/constants' import { Button, CollapsibleContent_Shadcn_, @@ -140,7 +141,7 @@ export const TerminalInstructions = forwardRef<

- + @@ -100,11 +97,7 @@ export const NewProjectPanel = () => { type="default" asChild > - + About Auth @@ -136,11 +129,7 @@ export const NewProjectPanel = () => { type="default" asChild > - + About Storage @@ -173,7 +162,7 @@ export const NewProjectPanel = () => { asChild > @@ -206,11 +195,7 @@ export const NewProjectPanel = () => { type="default" asChild > - + About Realtime @@ -229,7 +214,7 @@ export const NewProjectPanel = () => {

Connecting to your new project

Interact with your database through the{' '} - + Supabase client libraries {' '} with your API keys. @@ -244,11 +229,7 @@ export const NewProjectPanel = () => { View API settings diff --git a/apps/studio/components/interfaces/Home/ServiceStatus.tsx b/apps/studio/components/interfaces/Home/ServiceStatus.tsx index 1481e45a357..a0c6dc343e4 100644 --- a/apps/studio/components/interfaces/Home/ServiceStatus.tsx +++ b/apps/studio/components/interfaces/Home/ServiceStatus.tsx @@ -13,6 +13,7 @@ import { } from 'data/service-status/service-status-query' import { useIsFeatureEnabled } from 'hooks/misc/useIsFeatureEnabled' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' +import { DOCS_URL } from 'lib/constants' import { Button, InfoIcon, @@ -213,7 +214,7 @@ export const ServiceStatus = () => { { name: 'Edge Functions', error: undefined, - docsUrl: 'https://supabase.com/docs/guides/functions/troubleshooting', + docsUrl: `${DOCS_URL}/guides/functions/troubleshooting`, isLoading, isHealthy: !!edgeFunctionsStatus?.healthy, status: edgeFunctionsStatus?.healthy diff --git a/apps/studio/components/interfaces/HomeNew/GettingStarted/GettingStartedSection.tsx b/apps/studio/components/interfaces/HomeNew/GettingStarted/GettingStartedSection.tsx index c567f0d3714..4771b751fb6 100644 --- a/apps/studio/components/interfaces/HomeNew/GettingStarted/GettingStartedSection.tsx +++ b/apps/studio/components/interfaces/HomeNew/GettingStarted/GettingStartedSection.tsx @@ -20,7 +20,7 @@ import { useTablesQuery } from 'data/tables/tables-query' import { useSendEventMutation } from 'data/telemetry/send-event-mutation' import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' -import { BASE_PATH } from 'lib/constants' +import { BASE_PATH, DOCS_URL } from 'lib/constants' import { useAiAssistantStateSnapshot } from 'state/ai-assistant-state' import { AiIconAnimation, @@ -167,7 +167,7 @@ export function GettingStartedSection({ actions: [ { label: 'Create schema file', - href: 'https://supabase.com/docs/guides/local-development/declarative-database-schemas', + href: `${DOCS_URL}/guides/local-development/declarative-database-schemas`, variant: 'default', }, { @@ -192,7 +192,7 @@ export function GettingStartedSection({ actions: [ { label: 'Create a seed file', - href: 'https://supabase.com/docs/guides/local-development/seeding-your-database', + href: `${DOCS_URL}/guides/local-development/seeding-your-database`, variant: 'default', }, { @@ -262,7 +262,7 @@ export function GettingStartedSection({ actions: [ { label: 'Read docs', - href: 'https://supabase.com/docs/guides/auth', + href: `${DOCS_URL}/guides/auth`, variant: 'default', }, ], @@ -426,7 +426,7 @@ export function GettingStartedSection({ actions: [ { label: 'Read docs', - href: 'https://supabase.com/docs/guides/auth', + href: `${DOCS_URL}/guides/auth`, variant: 'default', }, ], diff --git a/apps/studio/components/interfaces/HomeNew/ServiceStatus.tsx b/apps/studio/components/interfaces/HomeNew/ServiceStatus.tsx index 48cad4cd278..294aecd09b8 100644 --- a/apps/studio/components/interfaces/HomeNew/ServiceStatus.tsx +++ b/apps/studio/components/interfaces/HomeNew/ServiceStatus.tsx @@ -12,6 +12,7 @@ import { } from 'data/service-status/service-status-query' import { useIsFeatureEnabled } from 'hooks/misc/useIsFeatureEnabled' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' +import { DOCS_URL } from 'lib/constants' import { InfoIcon, PopoverContent_Shadcn_, PopoverTrigger_Shadcn_, Popover_Shadcn_, cn } from 'ui' /** @@ -200,7 +201,7 @@ export const ServiceStatus = () => { { name: 'Edge Functions', error: undefined, - docsUrl: 'https://supabase.com/docs/guides/functions/troubleshooting', + docsUrl: `${DOCS_URL}/guides/functions/troubleshooting`, isLoading, isHealthy: !!edgeFunctionsStatus?.healthy, status: edgeFunctionsStatus?.healthy diff --git a/apps/studio/components/interfaces/HomeNew/TopSection.tsx b/apps/studio/components/interfaces/HomeNew/TopSection.tsx index 0d44224947a..ecdc0167b66 100644 --- a/apps/studio/components/interfaces/HomeNew/TopSection.tsx +++ b/apps/studio/components/interfaces/HomeNew/TopSection.tsx @@ -5,6 +5,7 @@ import { ProjectPausedState } from 'components/layouts/ProjectLayout/PausedState import { ComputeBadgeWrapper } from 'components/ui/ComputeBadgeWrapper' import { InlineLink } from 'components/ui/InlineLink' import { ProjectUpgradeFailedBanner } from 'components/ui/ProjectUpgradeFailedBanner' +import { DOCS_URL } from 'lib/constants' import { ReactFlowProvider } from 'reactflow' import { Badge, cn, Tooltip, TooltipContent, TooltipTrigger } from 'ui' import { InstanceConfiguration } from '../Settings/Infrastructure/InfrastructureConfiguration/InstanceConfiguration' @@ -54,7 +55,7 @@ export const TopSection = ({ This project is using Postgres with OrioleDB which is currently in preview and not suitable for production workloads. View our{' '} - + documentation {' '} for all limitations. diff --git a/apps/studio/components/interfaces/Integrations/CronJobs/CronJobsTab.tsx b/apps/studio/components/interfaces/Integrations/CronJobs/CronJobsTab.tsx index 7240e0d909c..65fb83d93a4 100644 --- a/apps/studio/components/interfaces/Integrations/CronJobs/CronJobsTab.tsx +++ b/apps/studio/components/interfaces/Integrations/CronJobs/CronJobsTab.tsx @@ -144,7 +144,7 @@ export const CronjobsTab = () => { value={search ?? ''} onChange={(e) => setSearch(e.target.value)} onKeyDown={(e) => { - if (e.code === 'Enter') setSearchQuery(search.trim()) + if (e.code === 'Enter' || e.code === 'NumpadEnter') setSearchQuery(search.trim()) }} actions={[ search && ( diff --git a/apps/studio/components/interfaces/Integrations/Landing/Integrations.constants.tsx b/apps/studio/components/interfaces/Integrations/Landing/Integrations.constants.tsx index 2e10655b7f4..e95efa48267 100644 --- a/apps/studio/components/interfaces/Integrations/Landing/Integrations.constants.tsx +++ b/apps/studio/components/interfaces/Integrations/Landing/Integrations.constants.tsx @@ -4,7 +4,7 @@ import Image from 'next/image' import { ComponentType, ReactNode } from 'react' import { GenericSkeletonLoader } from 'components/ui/ShimmeringLoader' -import { BASE_PATH } from 'lib/constants' +import { BASE_PATH, DOCS_URL } from 'lib/constants' import { cn } from 'ui' import { UpgradeDatabaseAlert } from '../Queues/UpgradeDatabaseAlert' import { WRAPPERS } from '../Wrappers/Wrappers.constants' @@ -177,7 +177,7 @@ const supabaseIntegrations: IntegrationDefinition[] = [ ), description: 'Application level encryption for your project', - docsUrl: 'https://supabase.com/docs', + docsUrl: DOCS_URL, author: authorSupabase, navigation: [ { @@ -221,7 +221,7 @@ const supabaseIntegrations: IntegrationDefinition[] = [ ), description: 'Send real-time data from your database to another system when a table event occurs', - docsUrl: 'https://supabase.com/docs', + docsUrl: DOCS_URL, author: authorSupabase, requiredExtensions: [], navigation: [ @@ -275,7 +275,7 @@ const supabaseIntegrations: IntegrationDefinition[] = [ /> ), description: 'Run GraphQL queries through our interactive in-browser IDE', - docsUrl: 'https://supabase.com/docs', + docsUrl: DOCS_URL, author: authorSupabase, navigation: [ { diff --git a/apps/studio/components/interfaces/Integrations/Queues/QueuesTab.tsx b/apps/studio/components/interfaces/Integrations/Queues/QueuesTab.tsx index 60ffde22d84..723e1c64de9 100644 --- a/apps/studio/components/interfaces/Integrations/Queues/QueuesTab.tsx +++ b/apps/studio/components/interfaces/Integrations/Queues/QueuesTab.tsx @@ -66,7 +66,7 @@ export const QueuesTab = () => { value={search ?? ''} onChange={(e) => setSearch(e.target.value)} onKeyDown={(e) => { - if (e.code === 'Enter') setSearchQuery(search.trim()) + if (e.code === 'Enter' || e.code === 'NumpadEnter') setSearchQuery(search.trim()) }} actions={[ search && ( diff --git a/apps/studio/components/interfaces/Integrations/Vault/Secrets/SecretsManagement.tsx b/apps/studio/components/interfaces/Integrations/Vault/Secrets/SecretsManagement.tsx index 7a0575c6da2..7c90a3ac264 100644 --- a/apps/studio/components/interfaces/Integrations/Vault/Secrets/SecretsManagement.tsx +++ b/apps/studio/components/interfaces/Integrations/Vault/Secrets/SecretsManagement.tsx @@ -10,6 +10,7 @@ import { DocsButton } from 'components/ui/DocsButton' import { useVaultSecretsQuery } from 'data/vault/vault-secrets-query' import { useAsyncCheckPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' +import { DOCS_URL } from 'lib/constants' import type { VaultSecret } from 'types' import { Button, @@ -127,7 +128,7 @@ export const SecretsManagement = () => { > Refresh - + { item.name === lint.name)?.docsLink || - 'https://supabase.com/docs/guides/database/database-linter' + `${DOCS_URL}/guides/database/database-linter` } target="_blank" rel="noreferrer" diff --git a/apps/studio/components/interfaces/Linter/Linter.utils.tsx b/apps/studio/components/interfaces/Linter/Linter.utils.tsx index 0b114eb79fc..84d512d441e 100644 --- a/apps/studio/components/interfaces/Linter/Linter.utils.tsx +++ b/apps/studio/components/interfaces/Linter/Linter.utils.tsx @@ -14,6 +14,7 @@ import Link from 'next/link' import { LINTER_LEVELS, LintInfo } from 'components/interfaces/Linter/Linter.constants' import { LINT_TYPES, Lint } from 'data/lint/lint-query' +import { DOCS_URL } from 'lib/constants' import { Badge, Button } from 'ui' export const lintInfoMap: LintInfo[] = [ @@ -24,8 +25,7 @@ export const lintInfoMap: LintInfo[] = [ link: ({ projectRef, metadata }) => `/project/${projectRef}/database/indexes?schema=${metadata?.schema}`, linkText: 'Create an index', - docsLink: - 'https://supabase.com/docs/guides/database/database-linter?queryGroups=lint&lint=0001_unindexed_foreign_keys', + docsLink: `${DOCS_URL}/guides/database/database-linter?queryGroups=lint&lint=0001_unindexed_foreign_keys`, category: 'performance', }, { @@ -34,8 +34,7 @@ export const lintInfoMap: LintInfo[] = [ icon: , link: ({ projectRef }) => `/project/${projectRef}/editor`, linkText: 'View table', - docsLink: - 'https://supabase.com/docs/guides/database/database-linter?queryGroups=lint&lint=0002_auth_users_exposed', + docsLink: `${DOCS_URL}/guides/database/database-linter?queryGroups=lint&lint=0002_auth_users_exposed`, category: 'security', }, { @@ -44,8 +43,7 @@ export const lintInfoMap: LintInfo[] = [ icon: , link: ({ projectRef }) => `/project/${projectRef}/auth/policies`, linkText: 'View policies', - docsLink: - 'https://supabase.com/docs/guides/database/database-linter?queryGroups=lint&lint=0003_auth_rls_initplan', + docsLink: `${DOCS_URL}/guides/database/database-linter?queryGroups=lint&lint=0003_auth_rls_initplan`, category: 'performance', }, { @@ -54,8 +52,7 @@ export const lintInfoMap: LintInfo[] = [ icon: , link: ({ projectRef }) => `/project/${projectRef}/editor`, linkText: 'View table', - docsLink: - 'https://supabase.com/docs/guides/database/database-linter?queryGroups=lint&lint=0004_no_primary_key', + docsLink: `${DOCS_URL}/guides/database/database-linter?queryGroups=lint&lint=0004_no_primary_key`, category: 'performance', }, { @@ -65,8 +62,7 @@ export const lintInfoMap: LintInfo[] = [ link: ({ projectRef, metadata }) => `/project/${projectRef}/database/indexes?schema=${metadata?.schema}&table=${metadata?.name}`, linkText: 'View index', - docsLink: - 'https://supabase.com/docs/guides/database/database-linter?queryGroups=lint&lint=0005_unused_index', + docsLink: `${DOCS_URL}/guides/database/database-linter?queryGroups=lint&lint=0005_unused_index`, category: 'performance', }, { @@ -76,8 +72,7 @@ export const lintInfoMap: LintInfo[] = [ link: ({ projectRef, metadata }) => `/project/${projectRef}/auth/policies?schema=${metadata?.schema}&search=${metadata?.name}`, linkText: 'View policies', - docsLink: - 'https://supabase.com/docs/guides/database/database-linter?queryGroups=lint&lint=0006_multiple_permissive_policies', + docsLink: `${DOCS_URL}/guides/database/database-linter?queryGroups=lint&lint=0006_multiple_permissive_policies`, category: 'performance', }, { @@ -87,8 +82,7 @@ export const lintInfoMap: LintInfo[] = [ link: ({ projectRef, metadata }) => `/project/${projectRef}/auth/policies?schema=${metadata?.schema}&search=${metadata?.name}`, linkText: 'View policies', - docsLink: - 'https://supabase.com/docs/guides/database/database-linter?queryGroups=lint&lint=0007_policy_exists_rls_disabled', + docsLink: `${DOCS_URL}/guides/database/database-linter?queryGroups=lint&lint=0007_policy_exists_rls_disabled`, category: 'security', }, { @@ -98,8 +92,7 @@ export const lintInfoMap: LintInfo[] = [ link: ({ projectRef, metadata }) => `/project/${projectRef}/auth/policies?schema=${metadata?.schema}&search=${metadata?.name}`, linkText: 'View table', - docsLink: - 'https://supabase.com/docs/guides/database/database-linter?queryGroups=lint&lint=0008_rls_enabled_no_policy', + docsLink: `${DOCS_URL}/guides/database/database-linter?queryGroups=lint&lint=0008_rls_enabled_no_policy`, category: 'security', }, { @@ -109,8 +102,7 @@ export const lintInfoMap: LintInfo[] = [ link: ({ projectRef, metadata }) => `/project/${projectRef}/database/indexes?schema=${metadata?.schema}&table=${metadata?.name}`, linkText: 'View index', - docsLink: - 'https://supabase.com/docs/guides/database/database-linter?queryGroups=lint&lint=0009_duplicate_index', + docsLink: `${DOCS_URL}/guides/database/database-linter?queryGroups=lint&lint=0009_duplicate_index`, category: 'performance', }, { @@ -118,10 +110,9 @@ export const lintInfoMap: LintInfo[] = [ title: 'Security Definer View', icon: , link: () => - 'https://supabase.com/docs/guides/database/database-linter?queryGroups=lint&lint=0010_security_definer_view', + `${DOCS_URL}/guides/database/database-linter?queryGroups=lint&lint=0010_security_definer_view`, linkText: 'View docs', - docsLink: - 'https://supabase.com/docs/guides/database/database-linter?queryGroups=lint&lint=0010_security_definer_view', + docsLink: `${DOCS_URL}/guides/database/database-linter?queryGroups=lint&lint=0010_security_definer_view`, category: 'security', }, { @@ -131,8 +122,7 @@ export const lintInfoMap: LintInfo[] = [ link: ({ projectRef, metadata }) => `/project/${projectRef}/database/functions?schema=${metadata?.schema}&search=${metadata?.name}`, linkText: 'View functions', - docsLink: - 'https://supabase.com/docs/guides/database/database-linter?queryGroups=lint&lint=0011_function_search_path_mutable', + docsLink: `${DOCS_URL}/guides/database/database-linter?queryGroups=lint&lint=0011_function_search_path_mutable`, category: 'security', }, { @@ -142,8 +132,7 @@ export const lintInfoMap: LintInfo[] = [ link: ({ projectRef, metadata }) => `/project/${projectRef}/auth/policies?schema=${metadata?.schema}&search=${metadata?.name}`, linkText: 'View policies', - docsLink: - 'https://supabase.com/docs/guides/database/database-linter?queryGroups=lint&lint=0013_rls_disabled_in_public', + docsLink: `${DOCS_URL}/guides/database/database-linter?queryGroups=lint&lint=0013_rls_disabled_in_public`, category: 'security', }, { @@ -153,8 +142,7 @@ export const lintInfoMap: LintInfo[] = [ link: ({ projectRef, metadata }) => `/project/${projectRef}/database/extensions?filter=${metadata?.name}`, linkText: 'View extension', - docsLink: - 'https://supabase.com/docs/guides/database/database-linter?queryGroups=lint&lint=0014_extension_in_public', + docsLink: `${DOCS_URL}/guides/database/database-linter?queryGroups=lint&lint=0014_extension_in_public`, category: 'security', }, { @@ -163,7 +151,7 @@ export const lintInfoMap: LintInfo[] = [ icon: , link: ({ projectRef }) => `/project/${projectRef}/auth/providers`, linkText: 'View settings', - docsLink: 'https://supabase.com/docs/guides/platform/going-into-prod#security', + docsLink: `${DOCS_URL}/guides/platform/going-into-prod#security`, category: 'security', }, { @@ -172,7 +160,7 @@ export const lintInfoMap: LintInfo[] = [ icon: , link: ({ projectRef }) => `/project/${projectRef}/auth/providers`, linkText: 'View settings', - docsLink: 'https://supabase.com/docs/guides/platform/going-into-prod#security', + docsLink: `${DOCS_URL}/guides/platform/going-into-prod#security`, category: 'security', }, { @@ -181,30 +169,25 @@ export const lintInfoMap: LintInfo[] = [ icon: , link: ({ projectRef }) => `/project/${projectRef}/auth/policies`, linkText: 'View policies', - docsLink: - 'https://supabase.com/docs/guides/database/database-linter?queryGroups=lint&lint=0015_rls_references_user_metadata', + docsLink: `${DOCS_URL}/guides/database/database-linter?queryGroups=lint&lint=0015_rls_references_user_metadata`, category: 'security', }, { name: 'materialized_view_in_api', title: 'Materialized View in API', icon: , - link: () => - `https://supabase.com/docs/guides/database/database-advisors?lint=0016_materialized_view_in_api`, + link: () => `${DOCS_URL}/guides/database/database-advisors?lint=0016_materialized_view_in_api`, linkText: 'View docs', - docsLink: - 'https://supabase.com/docs/guides/database/database-advisors?lint=0016_materialized_view_in_api', + docsLink: `${DOCS_URL}/guides/database/database-advisors?lint=0016_materialized_view_in_api`, category: 'security', }, { name: 'foreign_table_in_api', title: 'Foreign Table in API', icon: , - link: () => - `https://supabase.com/docs/guides/database/database-linter?lint=0017_foreign_table_in_api`, + link: () => `${DOCS_URL}/guides/database/database-linter?lint=0017_foreign_table_in_api`, linkText: 'View docs', - docsLink: - 'https://supabase.com/docs/guides/database/database-linter?lint=0017_foreign_table_in_api', + docsLink: `${DOCS_URL}/guides/database/database-linter?lint=0017_foreign_table_in_api`, category: 'security', }, { @@ -212,10 +195,9 @@ export const lintInfoMap: LintInfo[] = [ title: 'Unsupported reg types', icon: , link: () => - `https://supabase.com/docs/guides/database/database-advisors?lint=0018_unsupported_reg_types&queryGroups=lint`, + `${DOCS_URL}/guides/database/database-advisors?lint=0018_unsupported_reg_types&queryGroups=lint`, linkText: 'View docs', - docsLink: - 'https://supabase.com/docs/guides/database/database-advisors?lint=0018_unsupported_reg_types&queryGroups=lint', + docsLink: `${DOCS_URL}/guides/database/database-advisors?lint=0018_unsupported_reg_types&queryGroups=lint`, category: 'security', }, { @@ -224,7 +206,7 @@ export const lintInfoMap: LintInfo[] = [ icon: , link: ({ projectRef }) => `/project/${projectRef}/database/settings`, linkText: 'View settings', - docsLink: 'https://supabase.com/docs/guides/platform/ssl-enforcement', + docsLink: `${DOCS_URL}/guides/platform/ssl-enforcement`, category: 'security', }, { @@ -233,7 +215,7 @@ export const lintInfoMap: LintInfo[] = [ icon: , link: ({ projectRef }) => `/project/${projectRef}/database/settings`, linkText: 'View settings', - docsLink: 'https://supabase.com/docs/guides/platform/network-restrictions', + docsLink: `${DOCS_URL}/guides/platform/network-restrictions`, category: 'security', }, { @@ -242,7 +224,7 @@ export const lintInfoMap: LintInfo[] = [ icon: , link: ({ projectRef }) => `/project/${projectRef}/auth/providers?provider=Email`, linkText: 'View settings', - docsLink: 'https://supabase.com/docs/guides/platform/going-into-prod#security', + docsLink: `${DOCS_URL}/guides/platform/going-into-prod#security`, category: 'security', }, { @@ -251,7 +233,7 @@ export const lintInfoMap: LintInfo[] = [ icon: , link: ({ projectRef }) => `/project/${projectRef}/database/backups/pitr`, linkText: 'View settings', - docsLink: 'https://supabase.com/docs/guides/platform/backups#point-in-time-recovery', + docsLink: `${DOCS_URL}/guides/platform/backups#point-in-time-recovery`, category: 'security', }, { @@ -260,8 +242,7 @@ export const lintInfoMap: LintInfo[] = [ icon: , link: ({ projectRef }) => `/project/${projectRef}/auth/providers?provider=Email`, linkText: 'View settings', - docsLink: - 'https://supabase.com/docs/guides/auth/password-security#password-strength-and-leaked-password-protection', + docsLink: `${DOCS_URL}/guides/auth/password-security#password-strength-and-leaked-password-protection`, category: 'security', }, { @@ -270,7 +251,7 @@ export const lintInfoMap: LintInfo[] = [ icon: , link: ({ projectRef }) => `/project/${projectRef}/auth/mfa`, linkText: 'View settings', - docsLink: 'https://supabase.com/docs/guides/auth/auth-mfa', + docsLink: `${DOCS_URL}/guides/auth/auth-mfa`, category: 'security', }, { @@ -279,7 +260,7 @@ export const lintInfoMap: LintInfo[] = [ icon: , link: ({ projectRef }) => `/project/${projectRef}/auth/providers?provider=Email`, linkText: 'View settings', - docsLink: 'https://supabase.com/docs/guides/auth/password-security', + docsLink: `${DOCS_URL}/guides/auth/password-security`, category: 'security', }, { @@ -288,7 +269,7 @@ export const lintInfoMap: LintInfo[] = [ icon: , link: ({ projectRef }) => `/project/${projectRef}/settings/api`, linkText: 'View settings', - docsLink: 'https://supabase.com/docs/guides/api/api-keys#the-servicerole-key', + docsLink: `${DOCS_URL}/guides/api/api-keys#the-servicerole-key`, category: 'security', }, { @@ -297,7 +278,7 @@ export const lintInfoMap: LintInfo[] = [ icon: , link: ({ projectRef }) => `/project/${projectRef}/auth/mfa`, linkText: 'View settings', - docsLink: 'https://supabase.com/docs/guides/auth/auth-mfa', + docsLink: `${DOCS_URL}/guides/auth/auth-mfa`, category: 'security', }, { @@ -306,7 +287,7 @@ export const lintInfoMap: LintInfo[] = [ icon: , link: ({ projectRef }) => `/project/${projectRef}/settings/infrastructure`, linkText: 'View settings', - docsLink: 'https://supabase.com/docs/guides/platform/upgrading', + docsLink: `${DOCS_URL}/guides/platform/upgrading`, category: 'security', }, ] diff --git a/apps/studio/components/interfaces/Linter/LinterPageFooter.tsx b/apps/studio/components/interfaces/Linter/LinterPageFooter.tsx index 76bb8b6a3d1..8601f60fafc 100644 --- a/apps/studio/components/interfaces/Linter/LinterPageFooter.tsx +++ b/apps/studio/components/interfaces/Linter/LinterPageFooter.tsx @@ -1,6 +1,7 @@ -import { X } from 'lucide-react' import { LOCAL_STORAGE_KEYS } from 'common' import { useLocalStorageQuery } from 'hooks/misc/useLocalStorage' +import { DOCS_URL } from 'lib/constants' +import { X } from 'lucide-react' import { Button, cn } from 'ui' import { Markdown } from '../Markdown' @@ -75,8 +76,8 @@ const LinterPageFooter = ({

Inspect your database for potential issues

)} diff --git a/apps/studio/components/interfaces/LogDrains/LogDrainDestinationSheetForm.tsx b/apps/studio/components/interfaces/LogDrains/LogDrainDestinationSheetForm.tsx index 5bffac5f3cd..6596c861070 100644 --- a/apps/studio/components/interfaces/LogDrains/LogDrainDestinationSheetForm.tsx +++ b/apps/studio/components/interfaces/LogDrains/LogDrainDestinationSheetForm.tsx @@ -6,9 +6,9 @@ import { toast } from 'sonner' import { z } from 'zod' import { useParams } from 'common' -import { LogDrainData, useLogDrainsQuery } from 'data/log-drains/log-drains-query' - import { DocsButton } from 'components/ui/DocsButton' +import { LogDrainData, useLogDrainsQuery } from 'data/log-drains/log-drains-query' +import { DOCS_URL } from 'lib/constants' import { Button, Form_Shadcn_, @@ -533,7 +533,7 @@ export function LogDrainDestinationSheetForm({ } diff --git a/apps/studio/components/interfaces/Organization/BillingSettings/BillingBreakdown/BillingBreakdown.constants.ts b/apps/studio/components/interfaces/Organization/BillingSettings/BillingBreakdown/BillingBreakdown.constants.ts index 2b1150e1ace..95b8b36bf29 100644 --- a/apps/studio/components/interfaces/Organization/BillingSettings/BillingBreakdown/BillingBreakdown.constants.ts +++ b/apps/studio/components/interfaces/Organization/BillingSettings/BillingBreakdown/BillingBreakdown.constants.ts @@ -1,4 +1,5 @@ import { PricingMetric } from 'data/analytics/org-daily-stats-query' +import { DOCS_URL } from 'lib/constants' export const USAGE_APPROACHING_THRESHOLD = 0.8 @@ -111,7 +112,7 @@ export const BILLING_BREAKDOWN_METRICS: Metric[] = [ tip: 'Each project gets provisioned with 8 GB of GP3 disk for free. When you get close to the disk size limit, we autoscale your disk by 1.5x. Each GB of provisioned disk size beyond 8 GB incurs a GB-Hr every hour. Each extra GB is billed at $0.125/month ($0.000171/GB-Hr), prorated down to the hour.', docLink: { title: 'Read more', - url: 'https://supabase.com/docs/guides/platform/manage-your-usage/disk-size', + url: `${DOCS_URL}/guides/platform/manage-your-usage/disk-size`, }, }, { diff --git a/apps/studio/components/interfaces/Organization/BillingSettings/BillingBreakdown/ComputeMetric.tsx b/apps/studio/components/interfaces/Organization/BillingSettings/BillingBreakdown/ComputeMetric.tsx index df14738bfd7..a57b997751d 100644 --- a/apps/studio/components/interfaces/Organization/BillingSettings/BillingBreakdown/ComputeMetric.tsx +++ b/apps/studio/components/interfaces/Organization/BillingSettings/BillingBreakdown/ComputeMetric.tsx @@ -2,6 +2,7 @@ import Link from 'next/link' import { ComputeUsageMetric, PricingMetric } from 'data/analytics/org-daily-stats-query' import type { OrgUsageResponse } from 'data/usage/org-usage-query' +import { DOCS_URL } from 'lib/constants' import { formatCurrency } from 'lib/helpers' import { ChevronRight } from 'lucide-react' import { useMemo } from 'react' @@ -74,7 +75,7 @@ export const ComputeMetric = ({ Each Preview branch is a separate environment with all Supabase services (Database, Auth, Storage, etc.).{' '} @@ -87,7 +88,7 @@ export const ComputeMetric = ({ active, it incurs compute costs based on the compute size of your project. Paused projects do not incur compute costs.{' '} diff --git a/apps/studio/components/interfaces/Organization/BillingSettings/BillingBreakdown/UpcomingInvoice.tsx b/apps/studio/components/interfaces/Organization/BillingSettings/BillingBreakdown/UpcomingInvoice.tsx index e9b43d2dc65..b11a717a703 100644 --- a/apps/studio/components/interfaces/Organization/BillingSettings/BillingBreakdown/UpcomingInvoice.tsx +++ b/apps/studio/components/interfaces/Organization/BillingSettings/BillingBreakdown/UpcomingInvoice.tsx @@ -2,70 +2,50 @@ import Link from 'next/link' import AlertError from 'components/ui/AlertError' import ShimmeringLoader from 'components/ui/ShimmeringLoader' +import { PricingMetric } from 'data/analytics/org-daily-stats-query' import { UpcomingInvoiceResponse, useOrgUpcomingInvoiceQuery, } from 'data/invoices/org-invoice-upcoming-query' +import { DOCS_URL } from 'lib/constants' import { formatCurrency } from 'lib/helpers' -import { Table, TableBody, TableCell, TableFooter, TableRow } from 'ui' -import { billingMetricUnit, formatUsage } from '../helpers' -import { InfoTooltip } from 'ui-patterns/info-tooltip' -import { PricingMetric } from 'data/analytics/org-daily-stats-query' -import _ from 'lodash' import React from 'react' +import { Table, TableBody, TableCell, TableFooter, TableRow } from 'ui' +import { InfoTooltip } from 'ui-patterns/info-tooltip' +import { billingMetricUnit, formatUsage } from '../helpers' export interface UpcomingInvoiceProps { slug?: string } const usageBillingDocsLink: { [K in PricingMetric]?: string } = { - [PricingMetric.MONTHLY_ACTIVE_USERS]: - 'https://supabase.com/docs/guides/platform/manage-your-usage/monthly-active-users', - [PricingMetric.MONTHLY_ACTIVE_SSO_USERS]: - 'https://supabase.com/docs/guides/platform/manage-your-usage/monthly-active-users-sso', - [PricingMetric.MONTHLY_ACTIVE_THIRD_PARTY_USERS]: - 'https://supabase.com/docs/guides/platform/manage-your-usage/monthly-active-users-third-party', - [PricingMetric.AUTH_MFA_PHONE]: - 'https://supabase.com/docs/guides/platform/manage-your-usage/advanced-mfa-phone', + [PricingMetric.MONTHLY_ACTIVE_USERS]: `${DOCS_URL}/guides/platform/manage-your-usage/monthly-active-users`, + [PricingMetric.MONTHLY_ACTIVE_SSO_USERS]: `${DOCS_URL}/guides/platform/manage-your-usage/monthly-active-users-sso`, + [PricingMetric.MONTHLY_ACTIVE_THIRD_PARTY_USERS]: `${DOCS_URL}/guides/platform/manage-your-usage/monthly-active-users-third-party`, + [PricingMetric.AUTH_MFA_PHONE]: `${DOCS_URL}/guides/platform/manage-your-usage/advanced-mfa-phone`, - [PricingMetric.EGRESS]: 'https://supabase.com/docs/guides/platform/manage-your-usage/egress', - [PricingMetric.CACHED_EGRESS]: - 'https://supabase.com/docs/guides/platform/manage-your-usage/egress', + [PricingMetric.EGRESS]: `${DOCS_URL}/guides/platform/manage-your-usage/egress`, + [PricingMetric.CACHED_EGRESS]: `${DOCS_URL}/guides/platform/manage-your-usage/egress`, - [PricingMetric.FUNCTION_INVOCATIONS]: - 'https://supabase.com/docs/guides/platform/manage-your-usage/edge-function-invocations', + [PricingMetric.FUNCTION_INVOCATIONS]: `${DOCS_URL}/guides/platform/manage-your-usage/edge-function-invocations`, - [PricingMetric.STORAGE_SIZE]: - 'https://supabase.com/docs/guides/platform/manage-your-usage/storage-size', - [PricingMetric.STORAGE_IMAGES_TRANSFORMED]: - 'https://supabase.com/docs/guides/platform/manage-your-usage/storage-image-transformations', + [PricingMetric.STORAGE_SIZE]: `${DOCS_URL}/guides/platform/manage-your-usage/storage-size`, + [PricingMetric.STORAGE_IMAGES_TRANSFORMED]: `${DOCS_URL}/guides/platform/manage-your-usage/storage-image-transformations`, - [PricingMetric.REALTIME_MESSAGE_COUNT]: - 'https://supabase.com/docs/guides/platform/manage-your-usage/realtime-messages', - [PricingMetric.REALTIME_PEAK_CONNECTIONS]: - 'https://supabase.com/docs/guides/platform/manage-your-usage/realtime-peak-connections', + [PricingMetric.REALTIME_MESSAGE_COUNT]: `${DOCS_URL}/guides/platform/manage-your-usage/realtime-messages`, + [PricingMetric.REALTIME_PEAK_CONNECTIONS]: `${DOCS_URL}/guides/platform/manage-your-usage/realtime-peak-connections`, - [PricingMetric.CUSTOM_DOMAIN]: - 'https://supabase.com/docs/guides/platform/manage-your-usage/custom-domains', - [PricingMetric.IPV4]: 'https://supabase.com/docs/guides/platform/manage-your-usage/ipv4', - [PricingMetric.PITR_7]: - 'https://supabase.com/docs/guides/platform/manage-your-usage/point-in-time-recovery', - [PricingMetric.PITR_14]: - 'https://supabase.com/docs/guides/platform/manage-your-usage/point-in-time-recovery', - [PricingMetric.PITR_28]: - 'https://supabase.com/docs/guides/platform/manage-your-usage/point-in-time-recovery', - [PricingMetric.DISK_SIZE_GB_HOURS_GP3]: - 'https://supabase.com/docs/guides/platform/manage-your-usage/disk-size', - [PricingMetric.DISK_SIZE_GB_HOURS_IO2]: - 'https://supabase.com/docs/guides/platform/manage-your-usage/disk-size', - [PricingMetric.DISK_IOPS_GP3]: - 'https://supabase.com/docs/guides/platform/manage-your-usage/disk-iops', - [PricingMetric.DISK_IOPS_IO2]: - 'https://supabase.com/docs/guides/platform/manage-your-usage/disk-iops', - [PricingMetric.DISK_THROUGHPUT_GP3]: - 'https://supabase.com/docs/guides/platform/manage-your-usage/disk-throughput', - [PricingMetric.LOG_DRAIN]: - 'https://supabase.com/docs/guides/platform/manage-your-usage/log-drains', + [PricingMetric.CUSTOM_DOMAIN]: `${DOCS_URL}/guides/platform/manage-your-usage/custom-domains`, + [PricingMetric.IPV4]: `${DOCS_URL}/guides/platform/manage-your-usage/ipv4`, + [PricingMetric.PITR_7]: `${DOCS_URL}/guides/platform/manage-your-usage/point-in-time-recovery`, + [PricingMetric.PITR_14]: `${DOCS_URL}/guides/platform/manage-your-usage/point-in-time-recovery`, + [PricingMetric.PITR_28]: `${DOCS_URL}/guides/platform/manage-your-usage/point-in-time-recovery`, + [PricingMetric.DISK_SIZE_GB_HOURS_GP3]: `${DOCS_URL}/guides/platform/manage-your-usage/disk-size`, + [PricingMetric.DISK_SIZE_GB_HOURS_IO2]: `${DOCS_URL}/guides/platform/manage-your-usage/disk-size`, + [PricingMetric.DISK_IOPS_GP3]: `${DOCS_URL}/guides/platform/manage-your-usage/disk-iops`, + [PricingMetric.DISK_IOPS_IO2]: `${DOCS_URL}/guides/platform/manage-your-usage/disk-iops`, + [PricingMetric.DISK_THROUGHPUT_GP3]: `${DOCS_URL}/guides/platform/manage-your-usage/disk-throughput`, + [PricingMetric.LOG_DRAIN]: `${DOCS_URL}/guides/platform/manage-your-usage/log-drains`, } const UpcomingInvoice = ({ slug }: UpcomingInvoiceProps) => { @@ -147,7 +127,7 @@ const UpcomingInvoice = ({ slug }: UpcomingInvoiceProps) => { compute costs starting at $10/month, independent of activity. See{' '} docs @@ -167,9 +147,7 @@ const UpcomingInvoice = ({ slug }: UpcomingInvoiceProps) => { Compute, Disk Size, provisioned Disk IOPS, provisioned Disk Throughput, and IPv4. See{' '} docs @@ -200,9 +178,7 @@ const UpcomingInvoice = ({ slug }: UpcomingInvoiceProps) => { See{' '} docs diff --git a/apps/studio/components/interfaces/Organization/BillingSettings/CostControl/CostControl.tsx b/apps/studio/components/interfaces/Organization/BillingSettings/CostControl/CostControl.tsx index 652d7960555..edf665e233e 100644 --- a/apps/studio/components/interfaces/Organization/BillingSettings/CostControl/CostControl.tsx +++ b/apps/studio/components/interfaces/Organization/BillingSettings/CostControl/CostControl.tsx @@ -12,17 +12,16 @@ import { } from 'components/layouts/Scaffold' import AlertError from 'components/ui/AlertError' import NoPermission from 'components/ui/NoPermission' +import PartnerIcon from 'components/ui/PartnerIcon' import { PARTNER_TO_NAME } from 'components/ui/PartnerManagedResource' import ShimmeringLoader from 'components/ui/ShimmeringLoader' import { useOrgSubscriptionQuery } from 'data/subscriptions/org-subscription-query' import { useAsyncCheckPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization' -import { BASE_PATH } from 'lib/constants' +import { BASE_PATH, DOCS_URL } from 'lib/constants' import { MANAGED_BY } from 'lib/constants/infrastructure' import { useOrgSettingsPageStateSnapshot } from 'state/organization-settings' import { Alert, AlertTitle_Shadcn_, Alert_Shadcn_, Button } from 'ui' - -import PartnerIcon from 'components/ui/PartnerIcon' import ProjectUpdateDisabledTooltip from '../ProjectUpdateDisabledTooltip' import SpendCapSidePanel from './SpendCapSidePanel' @@ -78,7 +77,7 @@ const CostControl = ({}: CostControlProps) => {

More information

diff --git a/apps/studio/components/interfaces/Organization/BillingSettings/CostControl/SpendCapSidePanel.tsx b/apps/studio/components/interfaces/Organization/BillingSettings/CostControl/SpendCapSidePanel.tsx index 367a5480ec6..6051d14608b 100644 --- a/apps/studio/components/interfaces/Organization/BillingSettings/CostControl/SpendCapSidePanel.tsx +++ b/apps/studio/components/interfaces/Organization/BillingSettings/CostControl/SpendCapSidePanel.tsx @@ -10,7 +10,7 @@ import Table from 'components/to-be-cleaned/Table' import { useOrgSubscriptionQuery } from 'data/subscriptions/org-subscription-query' import { useOrgSubscriptionUpdateMutation } from 'data/subscriptions/org-subscription-update-mutation' import { useAsyncCheckPermissions } from 'hooks/misc/useCheckPermissions' -import { BASE_PATH, PRICING_TIER_PRODUCT_IDS } from 'lib/constants' +import { BASE_PATH, DOCS_URL, PRICING_TIER_PRODUCT_IDS } from 'lib/constants' import { ChevronRight, ExternalLink } from 'lucide-react' import { pricing } from 'shared-data/pricing' import { useOrgSettingsPageStateSnapshot } from 'state/organization-settings' @@ -108,7 +108,7 @@ const SpendCapSidePanel = () => {

Spend cap

)}
@@ -139,7 +138,7 @@ export const Restriction = () => { )} @@ -179,7 +178,7 @@ export const Restriction = () => { )} @@ -217,7 +216,7 @@ export const Restriction = () => { )} diff --git a/apps/studio/components/interfaces/Organization/BillingSettings/Subscription/SubscriptionPlanUpdateDialog.tsx b/apps/studio/components/interfaces/Organization/BillingSettings/Subscription/SubscriptionPlanUpdateDialog.tsx index 279e1240dcf..ebce8bcb1be 100644 --- a/apps/studio/components/interfaces/Organization/BillingSettings/Subscription/SubscriptionPlanUpdateDialog.tsx +++ b/apps/studio/components/interfaces/Organization/BillingSettings/Subscription/SubscriptionPlanUpdateDialog.tsx @@ -19,7 +19,12 @@ import { useConfirmPendingSubscriptionChangeMutation } from 'data/subscriptions/ import { useOrgSubscriptionUpdateMutation } from 'data/subscriptions/org-subscription-update-mutation' import { SubscriptionTier } from 'data/subscriptions/types' import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization' -import { PRICING_TIER_PRODUCT_IDS, PROJECT_STATUS, STRIPE_PUBLIC_KEY } from 'lib/constants' +import { + DOCS_URL, + PRICING_TIER_PRODUCT_IDS, + PROJECT_STATUS, + STRIPE_PUBLIC_KEY, +} from 'lib/constants' import { formatCurrency } from 'lib/helpers' import { useTheme } from 'next-themes' import { plans as subscriptionsPlans } from 'shared-data/plans' @@ -351,9 +356,7 @@ export const SubscriptionPlanUpdateDialog = ({ Credits; additional projects start at $10 /month regardless of usage.{' '} Learn more @@ -589,7 +592,7 @@ export const SubscriptionPlanUpdateDialog = ({ /month regardless of usage.{' '} diff --git a/apps/studio/components/interfaces/Organization/CloudMarketplace/AwsMarketplaceCreateNewOrg.tsx b/apps/studio/components/interfaces/Organization/CloudMarketplace/AwsMarketplaceCreateNewOrg.tsx index e9c9a2b7a9f..d07d7a2db4b 100644 --- a/apps/studio/components/interfaces/Organization/CloudMarketplace/AwsMarketplaceCreateNewOrg.tsx +++ b/apps/studio/components/interfaces/Organization/CloudMarketplace/AwsMarketplaceCreateNewOrg.tsx @@ -1,20 +1,22 @@ -import { useAwsManagedOrganizationCreateMutation } from '../../../../data/organizations/organization-create-mutation' -import { toast } from 'sonner' +import Link from 'next/link' +import { useRouter } from 'next/router' import { SubmitHandler } from 'react-hook-form' -import NewAwsMarketplaceOrgForm, { - CREATE_AWS_MANAGED_ORG_FORM_ID, - NewMarketplaceOrgForm, -} from './NewAwsMarketplaceOrgForm' +import { toast } from 'sonner' + +import { useAwsManagedOrganizationCreateMutation } from 'data/organizations/organization-create-mutation' +import { DOCS_URL } from 'lib/constants' +import { Button } from 'ui' import { ScaffoldSection, ScaffoldSectionContent, ScaffoldSectionDetail, } from '../../../layouts/Scaffold' -import Link from 'next/link' -import { Button } from 'ui' -import { useRouter } from 'next/router' import AwsMarketplaceAutoRenewalWarning from './AwsMarketplaceAutoRenewalWarning' import { CloudMarketplaceOnboardingInfo } from './cloud-marketplace-query' +import NewAwsMarketplaceOrgForm, { + CREATE_AWS_MANAGED_ORG_FORM_ID, + NewMarketplaceOrgForm, +} from './NewAwsMarketplaceOrgForm' interface Props { onboardingInfo?: CloudMarketplaceOnboardingInfo | undefined @@ -61,11 +63,7 @@ const AwsMarketplaceCreateNewOrg = ({ onboardingInfo }: Props) => {

You can read more on billing through AWS in our {''} {/*TODO(thomas): Update docs link once the new docs exist*/} - + Billing Docs.

diff --git a/apps/studio/components/interfaces/Organization/CloudMarketplace/AwsMarketplaceLinkExistingOrg.tsx b/apps/studio/components/interfaces/Organization/CloudMarketplace/AwsMarketplaceLinkExistingOrg.tsx index 7b25463cd94..8baf88672b2 100644 --- a/apps/studio/components/interfaces/Organization/CloudMarketplace/AwsMarketplaceLinkExistingOrg.tsx +++ b/apps/studio/components/interfaces/Organization/CloudMarketplace/AwsMarketplaceLinkExistingOrg.tsx @@ -1,5 +1,4 @@ import { zodResolver } from '@hookform/resolvers/zod' -import { RadioGroupCard, RadioGroupCardItem } from '@ui/components/radio-group-card' import { cn } from '@ui/lib/utils' import { Boxes, ChevronRight } from 'lucide-react' import Link from 'next/link' @@ -7,6 +6,13 @@ import { useRouter } from 'next/router' import { useMemo, useState } from 'react' import { SubmitHandler, useForm } from 'react-hook-form' import { toast } from 'sonner' +import { z } from 'zod' + +import { RadioGroupCard, RadioGroupCardItem } from '@ui/components/radio-group-card' +import { useOrganizationLinkAwsMarketplaceMutation } from 'data/organizations/organization-link-aws-marketplace-mutation' +import { useProjectsQuery } from 'data/projects/projects-query' +import { DOCS_URL } from 'lib/constants' +import { Organization } from 'types' import { Button, Collapsible_Shadcn_, @@ -17,10 +23,6 @@ import { Skeleton, } from 'ui' import { FormItemLayout } from 'ui-patterns/form/FormItemLayout/FormItemLayout' -import { z } from 'zod' -import { useOrganizationLinkAwsMarketplaceMutation } from '../../../../data/organizations/organization-link-aws-marketplace-mutation' -import { useProjectsQuery } from '../../../../data/projects/projects-query' -import { Organization } from '../../../../types' import { ScaffoldSection, ScaffoldSectionContent, @@ -139,11 +141,7 @@ const AwsMarketplaceLinkExistingOrg = ({

You can read more on billing through AWS in our {''} {/*TODO(thomas): Update docs link once the new docs exist*/} - + Billing Docs.

diff --git a/apps/studio/components/interfaces/Organization/OAuthApps/OAuthSecrets/OAuthSecrets.tsx b/apps/studio/components/interfaces/Organization/OAuthApps/OAuthSecrets/OAuthSecrets.tsx index 5cc983beeb9..2a770aa08ff 100644 --- a/apps/studio/components/interfaces/Organization/OAuthApps/OAuthSecrets/OAuthSecrets.tsx +++ b/apps/studio/components/interfaces/Organization/OAuthApps/OAuthSecrets/OAuthSecrets.tsx @@ -8,6 +8,7 @@ import { useClientSecretCreateMutation } from 'data/oauth-secrets/client-secret- import { CreatedSecret, useClientSecretsQuery } from 'data/oauth-secrets/client-secrets-query' import { OAuthApp } from 'data/oauth/oauth-apps-query' import { useAsyncCheckPermissions } from 'hooks/misc/useCheckPermissions' +import { DOCS_URL } from 'lib/constants' import { Alert_Shadcn_, AlertTitle_Shadcn_, InfoIcon } from 'ui' import { SecretRow } from './SecretRow' @@ -42,7 +43,9 @@ export const OAuthSecrets = ({ selectedApp }: Props) => { Client secrets For handling callbacks in the OAuth 2.0 flow. Learn more{' '} - + here . diff --git a/apps/studio/components/interfaces/Organization/OAuthApps/PublishAppSidePanel/index.tsx b/apps/studio/components/interfaces/Organization/OAuthApps/PublishAppSidePanel/index.tsx index 3da24607846..287f8ec0b94 100644 --- a/apps/studio/components/interfaces/Organization/OAuthApps/PublishAppSidePanel/index.tsx +++ b/apps/studio/components/interfaces/Organization/OAuthApps/PublishAppSidePanel/index.tsx @@ -11,6 +11,7 @@ import { } from 'data/oauth/oauth-app-create-mutation' import { useOAuthAppUpdateMutation } from 'data/oauth/oauth-app-update-mutation' import type { OAuthApp } from 'data/oauth/oauth-apps-query' +import { DOCS_URL } from 'lib/constants' import { isValidHttpUrl, uuidv4 } from 'lib/helpers' import { uploadAttachment } from 'lib/upload' import { @@ -349,7 +350,7 @@ export const PublishAppSidePanel = ({ projects. - + diff --git a/apps/studio/components/interfaces/Organization/SSO/SSOConfig.tsx b/apps/studio/components/interfaces/Organization/SSO/SSOConfig.tsx index 66d036610fe..3d8359288c8 100644 --- a/apps/studio/components/interfaces/Organization/SSO/SSOConfig.tsx +++ b/apps/studio/components/interfaces/Organization/SSO/SSOConfig.tsx @@ -12,6 +12,7 @@ import { useSSOConfigCreateMutation } from 'data/sso/sso-config-create-mutation' import { useOrgSSOConfigQuery } from 'data/sso/sso-config-query' import { useSSOConfigUpdateMutation } from 'data/sso/sso-config-update-mutation' import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization' +import { DOCS_URL } from 'lib/constants' import { AlertDescription_Shadcn_, AlertTitle_Shadcn_, @@ -219,7 +220,7 @@ export const SSOConfig = () => { Enable and configure SSO for your organization. Learn more about SSO{' '} here diff --git a/apps/studio/components/interfaces/Organization/TeamSettings/InviteMemberButton.tsx b/apps/studio/components/interfaces/Organization/TeamSettings/InviteMemberButton.tsx index a1c756df52d..8c420f75008 100644 --- a/apps/studio/components/interfaces/Organization/TeamSettings/InviteMemberButton.tsx +++ b/apps/studio/components/interfaces/Organization/TeamSettings/InviteMemberButton.tsx @@ -17,6 +17,7 @@ import { useHasAccessToProjectLevelPermissions } from 'data/subscriptions/org-su import { doPermissionsCheck, useGetPermissions } from 'hooks/misc/useCheckPermissions' import { useIsFeatureEnabled } from 'hooks/misc/useIsFeatureEnabled' import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization' +import { DOCS_URL } from 'lib/constants' import { useProfile } from 'lib/profile' import { Button, @@ -300,7 +301,7 @@ export const InviteMemberButton = () => {
)} - +
diff --git a/apps/studio/components/interfaces/QueryPerformance/QueryDetail.tsx b/apps/studio/components/interfaces/QueryPerformance/QueryDetail.tsx index 78f7b829128..f35e1e9e30f 100644 --- a/apps/studio/components/interfaces/QueryPerformance/QueryDetail.tsx +++ b/apps/studio/components/interfaces/QueryPerformance/QueryDetail.tsx @@ -11,6 +11,7 @@ import { QUERY_PERFORMANCE_COLUMNS, QUERY_PERFORMANCE_REPORT_TYPES, } from './QueryPerformance.constants' +import { formatDuration } from './QueryPerformance.utils' interface QueryDetailProps { reportType: QUERY_PERFORMANCE_REPORT_TYPES @@ -41,22 +42,6 @@ export const QueryDetail = ({ selectedRow, onClickViewSuggestion }: QueryDetailP const [isExpanded, setIsExpanded] = useState(false) - const formatDuration = (seconds: number) => { - const dur = dayjs.duration(seconds, 'seconds') - - const minutes = Math.floor(dur.asMinutes()) - const remainingSeconds = dur.seconds() + dur.milliseconds() / 1000 - - const parts = [] - if (minutes > 0) parts.push(`${minutes}m`) - if (remainingSeconds > 0) { - const formattedSeconds = remainingSeconds.toFixed(2) - parts.push(`${formattedSeconds}s`) - } - - return parts.join(' ') - } - return ( @@ -146,10 +131,10 @@ export const QueryDetail = ({ selectedRow, onClickViewSuggestion }: QueryDetailP - {formatDuration(totalTime / 1000)} + {formatDuration(totalTime)}

) : ( diff --git a/apps/studio/components/interfaces/QueryPerformance/QueryPerformance.constants.ts b/apps/studio/components/interfaces/QueryPerformance/QueryPerformance.constants.ts index 4b96763edfa..97de6b437b1 100644 --- a/apps/studio/components/interfaces/QueryPerformance/QueryPerformance.constants.ts +++ b/apps/studio/components/interfaces/QueryPerformance/QueryPerformance.constants.ts @@ -62,4 +62,9 @@ export const QUERY_PERFORMANCE_ROLE_DESCRIPTION = [ description: 'An internal role Supabase uses for administrative tasks, such as running upgrades and automations.', }, + { + name: 'pgbouncer', + description: + 'PgBouncer is a lightweight connection pooler for PostgreSQL. Available on paid plans only.', + }, ] as const diff --git a/apps/studio/components/interfaces/QueryPerformance/QueryPerformance.tsx b/apps/studio/components/interfaces/QueryPerformance/QueryPerformance.tsx index c65e22d85a9..d57961890d5 100644 --- a/apps/studio/components/interfaces/QueryPerformance/QueryPerformance.tsx +++ b/apps/studio/components/interfaces/QueryPerformance/QueryPerformance.tsx @@ -9,15 +9,15 @@ import { executeSql } from 'data/sql/execute-sql-query' import { DbQueryHook } from 'hooks/analytics/useDbQuery' import { useLocalStorageQuery } from 'hooks/misc/useLocalStorage' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' -import { IS_PLATFORM } from 'lib/constants' +import { DOCS_URL, IS_PLATFORM } from 'lib/constants' import { useDatabaseSelectorStateSnapshot } from 'state/database-selector' import { Button, LoadingLine, cn } from 'ui' import ConfirmationModal from 'ui-patterns/Dialogs/ConfirmationModal' import { Markdown } from '../Markdown' import { PresetHookResult } from '../Reports/Reports.utils' -import { QueryPerformanceMetrics } from './QueryPerformanceMetrics' import { QueryPerformanceFilterBar } from './QueryPerformanceFilterBar' import { QueryPerformanceGrid } from './QueryPerformanceGrid' +import { QueryPerformanceMetrics } from './QueryPerformanceMetrics' interface QueryPerformanceProps { queryHitRate: PresetHookResult @@ -100,7 +100,7 @@ export const QueryPerformance = ({

How is this report generated?

@@ -108,8 +108,8 @@ export const QueryPerformance = ({

Inspect your database for potential issues

diff --git a/apps/studio/components/interfaces/QueryPerformance/QueryPerformance.utils.test.ts b/apps/studio/components/interfaces/QueryPerformance/QueryPerformance.utils.test.ts new file mode 100644 index 00000000000..fe898f94d90 --- /dev/null +++ b/apps/studio/components/interfaces/QueryPerformance/QueryPerformance.utils.test.ts @@ -0,0 +1,24 @@ +import { describe, it, expect } from 'vitest' +import { formatDuration } from './QueryPerformance.utils' + +describe('formatDuration', () => { + it('should format seconds', () => { + expect(formatDuration(1000)).toBe('1.00s') + expect(formatDuration(30000)).toBe('30.00s') + }) + + it('should format minutes and seconds', () => { + expect(formatDuration(60000)).toBe('1m') + expect(formatDuration(125000)).toBe('2m 5s') + }) + + it('should format hours, minutes and seconds', () => { + expect(formatDuration(3600000)).toBe('1h') + expect(formatDuration(3661000)).toBe('1h 1m 1s') + }) + + it('should format days, hours, minutes and seconds', () => { + expect(formatDuration(86400000)).toBe('1d') + expect(formatDuration(90061000)).toBe('1d 1h 1m 1s') + }) +}) diff --git a/apps/studio/components/interfaces/QueryPerformance/QueryPerformance.utils.ts b/apps/studio/components/interfaces/QueryPerformance/QueryPerformance.utils.ts new file mode 100644 index 00000000000..ce7d211123e --- /dev/null +++ b/apps/studio/components/interfaces/QueryPerformance/QueryPerformance.utils.ts @@ -0,0 +1,26 @@ +import dayjs from 'dayjs' +import duration from 'dayjs/plugin/duration' + +dayjs.extend(duration) + +export const formatDuration = (milliseconds: number) => { + const duration = dayjs.duration(milliseconds, 'milliseconds') + + const days = Math.floor(duration.asDays()) + const hours = duration.hours() + const minutes = duration.minutes() + const seconds = duration.seconds() + const totalSeconds = duration.asSeconds() + + if (totalSeconds < 60) { + return `${totalSeconds.toFixed(2)}s` + } + + const parts = [] + if (days > 0) parts.push(`${days}d`) + if (hours > 0) parts.push(`${hours}h`) + if (minutes > 0) parts.push(`${minutes}m`) + if (seconds > 0) parts.push(`${seconds}s`) + + return parts.length > 0 ? parts.join(' ') : '0s' +} diff --git a/apps/studio/components/interfaces/QueryPerformance/QueryPerformanceGrid.tsx b/apps/studio/components/interfaces/QueryPerformance/QueryPerformanceGrid.tsx index 62e3bb49732..fc8122627a0 100644 --- a/apps/studio/components/interfaces/QueryPerformance/QueryPerformanceGrid.tsx +++ b/apps/studio/components/interfaces/QueryPerformance/QueryPerformanceGrid.tsx @@ -32,6 +32,7 @@ import { QUERY_PERFORMANCE_ROLE_DESCRIPTION, } from './QueryPerformance.constants' import { useQueryPerformanceSort } from './hooks/useQueryPerformanceSort' +import { formatDuration } from './QueryPerformance.utils' interface QueryPerformanceGridProps { queryPerformanceQuery: DbQueryHook @@ -173,14 +174,10 @@ export const QueryPerformanceGrid = ({ queryPerformanceQuery }: QueryPerformance / - {(totalTime / 1000).toLocaleString(undefined, { - minimumFractionDigits: 2, - maximumFractionDigits: 2, - })} - s + {formatDuration(totalTime)} ) : ( diff --git a/apps/studio/components/interfaces/QueryPerformance/TextSearchPopover.tsx b/apps/studio/components/interfaces/QueryPerformance/TextSearchPopover.tsx index adbff893682..1e6be9f3c9e 100644 --- a/apps/studio/components/interfaces/QueryPerformance/TextSearchPopover.tsx +++ b/apps/studio/components/interfaces/QueryPerformance/TextSearchPopover.tsx @@ -54,7 +54,8 @@ export const TextSearchPopover = ({ className="text-xs font-mono tracking-tight" placeholder={placeholder ?? 'Search for a query'} onKeyDown={(event) => { - if (event.metaKey && event.code === 'Enter') applySearch() + if (event.metaKey && (event.code === 'Enter' || event.code === 'NumpadEnter')) + applySearch() }} /> diff --git a/apps/studio/components/interfaces/Realtime/Inspector/ChooseChannelPopover/index.tsx b/apps/studio/components/interfaces/Realtime/Inspector/ChooseChannelPopover/index.tsx index 4851d41d6ea..3d16108accc 100644 --- a/apps/studio/components/interfaces/Realtime/Inspector/ChooseChannelPopover/index.tsx +++ b/apps/studio/components/interfaces/Realtime/Inspector/ChooseChannelPopover/index.tsx @@ -9,6 +9,7 @@ import { DocsButton } from 'components/ui/DocsButton' import { getTemporaryAPIKey } from 'data/api-keys/temp-api-keys-query' import { useSendEventMutation } from 'data/telemetry/send-event-mutation' import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization' +import { DOCS_URL } from 'lib/constants' import { Button, FormControl_Shadcn_, @@ -135,7 +136,7 @@ export const ChooseChannelPopover = ({ config, onChangeConfig }: ChooseChannelPo target="_blank" rel="noreferrer" className="underline hover:text-foreground transition" - href="https://supabase.com/docs/guides/realtime/concepts#channels" + href={`${DOCS_URL}/guides/realtime/concepts#channels`} > our docs @@ -173,7 +174,7 @@ export const ChooseChannelPopover = ({ config, onChangeConfig }: ChooseChannelPo diff --git a/apps/studio/components/interfaces/Realtime/Inspector/MessagesTable.tsx b/apps/studio/components/interfaces/Realtime/Inspector/MessagesTable.tsx index 7fc0eb6271e..f104df260ae 100644 --- a/apps/studio/components/interfaces/Realtime/Inspector/MessagesTable.tsx +++ b/apps/studio/components/interfaces/Realtime/Inspector/MessagesTable.tsx @@ -12,6 +12,7 @@ import ShimmerLine from 'components/ui/ShimmerLine' import { useSendEventMutation } from 'data/telemetry/send-event-mutation' import { useAsyncCheckPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization' +import { DOCS_URL } from 'lib/constants' import { Button, IconBroadcast, IconDatabaseChanges, IconPresence, cn } from 'ui' import { GenericSkeletonLoader } from 'ui-patterns' import MessageSelection from './MessageSelection' @@ -98,7 +99,7 @@ const NoResultAlert = ({

Not sure what to do?

Browse our documentation

- + diff --git a/apps/studio/components/interfaces/Realtime/Inspector/NoChannelEmptyState.tsx b/apps/studio/components/interfaces/Realtime/Inspector/NoChannelEmptyState.tsx index 342aca9b110..74ee5a9eec1 100644 --- a/apps/studio/components/interfaces/Realtime/Inspector/NoChannelEmptyState.tsx +++ b/apps/studio/components/interfaces/Realtime/Inspector/NoChannelEmptyState.tsx @@ -1,4 +1,5 @@ import { DocsButton } from 'components/ui/DocsButton' +import { DOCS_URL } from 'lib/constants' import { cn } from 'ui' const NoChannelEmptyState = () => { @@ -18,7 +19,7 @@ const NoChannelEmptyState = () => {

Not sure what to do?

Browse our documentation

- + ) diff --git a/apps/studio/components/interfaces/Realtime/Inspector/RealtimeFilterPopover/index.tsx b/apps/studio/components/interfaces/Realtime/Inspector/RealtimeFilterPopover/index.tsx index 55f0fd2a566..1e5ac85c025 100644 --- a/apps/studio/components/interfaces/Realtime/Inspector/RealtimeFilterPopover/index.tsx +++ b/apps/studio/components/interfaces/Realtime/Inspector/RealtimeFilterPopover/index.tsx @@ -5,6 +5,7 @@ import { Dispatch, SetStateAction, useState } from 'react' import { useParams } from 'common' import { useSendEventMutation } from 'data/telemetry/send-event-mutation' import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization' +import { DOCS_URL } from 'lib/constants' import { Badge, Button, @@ -180,7 +181,7 @@ export const RealtimeFilterPopover = ({ config, onChangeConfig }: RealtimeFilter className="underline" target="_blank" rel="noreferrer" - href="https://supabase.com/docs/guides/realtime/postgres-changes#available-filters" + href={`${DOCS_URL}/guides/realtime/postgres-changes#available-filters`} > our docs diff --git a/apps/studio/components/interfaces/Reports/ReportFilterBar.tsx b/apps/studio/components/interfaces/Reports/ReportFilterBar.tsx index d8696526c32..2f411de9dc9 100644 --- a/apps/studio/components/interfaces/Reports/ReportFilterBar.tsx +++ b/apps/studio/components/interfaces/Reports/ReportFilterBar.tsx @@ -23,6 +23,7 @@ import { DatePickerValue, LogsDatePicker } from '../Settings/Logs/Logs.DatePicke import { REPORTS_DATEPICKER_HELPERS } from './Reports.constants' import type { ReportFilterItem } from './Reports.types' import { Popover, PopoverContent, PopoverTrigger } from '@ui/components/shadcn/ui/popover' +import { Network } from 'lucide-react' interface ReportFilterBarProps { filters: ReportFilterItem[] @@ -46,8 +47,7 @@ const PRODUCT_FILTERS = [ key: 'rest', filterKey: 'request.path', filterValue: '/rest', - label: 'REST', - description: 'Requests made to PostgREST', + label: 'Data API (PostgREST)', icon: Database, }, { @@ -55,7 +55,6 @@ const PRODUCT_FILTERS = [ filterKey: 'request.path', filterValue: '/auth', label: 'Auth', - description: 'Auth and authorization requests', icon: Auth, }, { @@ -63,7 +62,6 @@ const PRODUCT_FILTERS = [ filterKey: 'request.path', filterValue: '/storage', label: 'Storage', - description: 'Storage asset requests', icon: Storage, }, { @@ -71,15 +69,13 @@ const PRODUCT_FILTERS = [ filterKey: 'request.path', filterValue: '/realtime', label: 'Realtime', - description: 'Realtime connection requests', icon: Realtime, }, { key: 'graphql', filterKey: 'request.path', filterValue: '/graphql', - label: 'GraphQL', - description: 'Requests made to pg_graphql', + label: 'GraphQL (pg_graphql)', icon: null, }, ] @@ -210,7 +206,8 @@ const ReportFilterBar = ({ handleProductFilterChange(null)}> -

All Requests

+ + All Requests
{PRODUCT_FILTERS.map((productFilter) => { @@ -226,13 +223,13 @@ const ReportFilterBar = ({ {productFilter.key === 'graphql' ? ( code.replace(/svg/, 'svg class="m-auto text-color-inherit"') } /> ) : Icon !== null ? ( - + ) : null}

{productFilter.label}

-

- {productFilter.description} -

) diff --git a/apps/studio/components/interfaces/RoleImpersonationSelector/UserImpersonationSelector.tsx b/apps/studio/components/interfaces/RoleImpersonationSelector/UserImpersonationSelector.tsx index befa9621cfb..139998920ee 100644 --- a/apps/studio/components/interfaces/RoleImpersonationSelector/UserImpersonationSelector.tsx +++ b/apps/studio/components/interfaces/RoleImpersonationSelector/UserImpersonationSelector.tsx @@ -10,6 +10,7 @@ import { User, useUsersInfiniteQuery } from 'data/auth/users-infinite-query' import { useCustomAccessTokenHookDetails } from 'hooks/misc/useCustomAccessTokenHookDetails' import { useLocalStorage } from 'hooks/misc/useLocalStorage' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' +import { DOCS_URL } from 'lib/constants' import { useRoleImpersonationStateSnapshot } from 'state/role-impersonation-state' import { ResponseError } from 'types' import { @@ -393,10 +394,7 @@ const UserImpersonationSelector = () => { AAL1 verifies users via standard login methods, while AAL2 adds a second authentication factor. If you're not using MFA, you can leave this on AAL1. Learn more about MFA{' '} - - here - - . + here. diff --git a/apps/studio/components/interfaces/SQLEditor/DownloadSnippetModal.tsx b/apps/studio/components/interfaces/SQLEditor/DownloadSnippetModal.tsx index 935e6d6c9c7..c531a7df6e6 100644 --- a/apps/studio/components/interfaces/SQLEditor/DownloadSnippetModal.tsx +++ b/apps/studio/components/interfaces/SQLEditor/DownloadSnippetModal.tsx @@ -5,6 +5,7 @@ import { useState } from 'react' import type { ModalProps } from '@ui/components/Modal/Modal' import TwoOptionToggle from 'components/ui/TwoOptionToggle' +import { DOCS_URL } from 'lib/constants' import { useSqlEditorV2StateSnapshot } from 'state/sql-editor-v2' import { Button, CodeBlock, Modal, Tabs } from 'ui' import { Markdown } from '../Markdown' @@ -104,7 +105,7 @@ const DownloadSnippetModal = ({ id, ...props }: DownloadSnippetModalProps) => {
diff --git a/apps/studio/components/interfaces/Settings/Addons/Addons.tsx b/apps/studio/components/interfaces/Settings/Addons/Addons.tsx index 10bdd198f74..bb72a78db3b 100644 --- a/apps/studio/components/interfaces/Settings/Addons/Addons.tsx +++ b/apps/studio/components/interfaces/Settings/Addons/Addons.tsx @@ -36,7 +36,7 @@ import { useSelectedProjectQuery, } from 'hooks/misc/useSelectedProject' import { getCloudProviderArchitecture } from 'lib/cloudprovider-utils' -import { BASE_PATH, INSTANCE_MICRO_SPECS, INSTANCE_NANO_SPECS } from 'lib/constants' +import { BASE_PATH, DOCS_URL, INSTANCE_MICRO_SPECS, INSTANCE_NANO_SPECS } from 'lib/constants' import { getDatabaseMajorVersion, getSemanticVersion } from 'lib/helpers' import { useAddonsPagePanel } from 'state/addons-page' import { Alert, AlertDescription_Shadcn_, AlertTitle_Shadcn_, Alert_Shadcn_, Button } from 'ui' @@ -180,7 +180,7 @@ export const Addons = () => {

More information

@@ -192,7 +192,7 @@ export const Addons = () => {
@@ -347,7 +347,7 @@ export const Addons = () => {

More information

@@ -424,7 +424,7 @@ export const Addons = () => {

More information

@@ -548,7 +548,7 @@ export const Addons = () => {

More information

diff --git a/apps/studio/components/interfaces/Settings/Addons/CustomDomainSidePanel.tsx b/apps/studio/components/interfaces/Settings/Addons/CustomDomainSidePanel.tsx index 7e035c727bc..e400dd79e83 100644 --- a/apps/studio/components/interfaces/Settings/Addons/CustomDomainSidePanel.tsx +++ b/apps/studio/components/interfaces/Settings/Addons/CustomDomainSidePanel.tsx @@ -11,6 +11,7 @@ import { useProjectAddonsQuery } from 'data/subscriptions/project-addons-query' import type { AddonVariantId } from 'data/subscriptions/types' import { useAsyncCheckPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization' +import { DOCS_URL } from 'lib/constants' import { formatCurrency } from 'lib/helpers' import { useAddonsPagePanel } from 'state/addons-page' import { @@ -119,7 +120,7 @@ const CustomDomainSidePanel = () => {

Custom domains

{ipListLoading ? ( diff --git a/apps/studio/components/interfaces/Settings/Database/ConnectionPooling/ConnectionPooling.tsx b/apps/studio/components/interfaces/Settings/Database/ConnectionPooling/ConnectionPooling.tsx index 47e7700820f..cbd149e19ef 100644 --- a/apps/studio/components/interfaces/Settings/Database/ConnectionPooling/ConnectionPooling.tsx +++ b/apps/studio/components/interfaces/Settings/Database/ConnectionPooling/ConnectionPooling.tsx @@ -20,6 +20,7 @@ import { useProjectAddonsQuery } from 'data/subscriptions/project-addons-query' import { useAsyncCheckPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' +import { DOCS_URL } from 'lib/constants' import { AlertDescription_Shadcn_, AlertTitle_Shadcn_, @@ -150,7 +151,9 @@ export const ConnectionPooling = () => { Shared/Dedicated Pooler )}
- +
} footer={ @@ -277,7 +280,9 @@ export const ConnectionPooling = () => {

Please refer to our{' '} - + documentation {' '} to find out more. diff --git a/apps/studio/components/interfaces/Settings/Database/DatabaseReadOnlyAlert.tsx b/apps/studio/components/interfaces/Settings/Database/DatabaseReadOnlyAlert.tsx index a5e4a9e7beb..79beef58d7c 100644 --- a/apps/studio/components/interfaces/Settings/Database/DatabaseReadOnlyAlert.tsx +++ b/apps/studio/components/interfaces/Settings/Database/DatabaseReadOnlyAlert.tsx @@ -5,6 +5,7 @@ import { useState } from 'react' import { useResourceWarningsQuery } from 'data/usage/resource-warnings-query' import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization' +import { DOCS_URL } from 'lib/constants' import { AlertDescription_Shadcn_, AlertTitle_Shadcn_, Alert_Shadcn_, Button } from 'ui' import ConfirmDisableReadOnlyModeModal from './DatabaseSettings/ConfirmDisableReadOnlyModal' @@ -62,7 +63,7 @@ export const DatabaseReadOnlyAlert = () => {

diff --git a/apps/studio/components/interfaces/Settings/Database/NetworkRestrictions/AddRestrictionModal.tsx b/apps/studio/components/interfaces/Settings/Database/NetworkRestrictions/AddRestrictionModal.tsx index a57804265de..4ec7c60267d 100644 --- a/apps/studio/components/interfaces/Settings/Database/NetworkRestrictions/AddRestrictionModal.tsx +++ b/apps/studio/components/interfaces/Settings/Database/NetworkRestrictions/AddRestrictionModal.tsx @@ -5,6 +5,7 @@ import { Button, Form, Input, Modal, Tooltip, TooltipContent, TooltipTrigger } f import InformationBox from 'components/ui/InformationBox' import { useNetworkRestrictionsQuery } from 'data/network-restrictions/network-restrictions-query' import { useNetworkRestrictionsApplyMutation } from 'data/network-restrictions/network-retrictions-apply-mutation' +import { DOCS_URL } from 'lib/constants' import { HelpCircle } from 'lucide-react' import { checkIfPrivate, @@ -165,7 +166,7 @@ const AddRestrictionModal = ({ title="Note: Restrictions only apply to direct connections to your database and connection pooler" description="They do not currently apply to APIs offered over HTTPS, such as PostgREST, Storage, or Authentication." urlLabel="Learn more" - url="https://supabase.com/docs/guides/platform/network-restrictions#limitations" + url={`${DOCS_URL}/guides/platform/network-restrictions#limitations`} />
diff --git a/apps/studio/components/interfaces/Settings/Database/NetworkRestrictions/NetworkRestrictions.tsx b/apps/studio/components/interfaces/Settings/Database/NetworkRestrictions/NetworkRestrictions.tsx index 65455dd2ef4..070aa1788e4 100644 --- a/apps/studio/components/interfaces/Settings/Database/NetworkRestrictions/NetworkRestrictions.tsx +++ b/apps/studio/components/interfaces/Settings/Database/NetworkRestrictions/NetworkRestrictions.tsx @@ -12,6 +12,7 @@ import ShimmeringLoader from 'components/ui/ShimmeringLoader' import { useNetworkRestrictionsQuery } from 'data/network-restrictions/network-restrictions-query' import { useAsyncCheckPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' +import { DOCS_URL } from 'lib/constants' import { Badge, Button, @@ -109,7 +110,7 @@ const NetworkRestrictions = () => { description="Allow specific IP ranges to have access to your database." />
- + {!canUpdateNetworkRestrictions ? ( {

Which pooling mode should I use?

- +
diff --git a/apps/studio/components/interfaces/Settings/Database/SSLConfiguration.tsx b/apps/studio/components/interfaces/Settings/Database/SSLConfiguration.tsx index 70092a729d4..570e054c8cf 100644 --- a/apps/studio/components/interfaces/Settings/Database/SSLConfiguration.tsx +++ b/apps/studio/components/interfaces/Settings/Database/SSLConfiguration.tsx @@ -17,6 +17,7 @@ import { useSSLEnforcementUpdateMutation } from 'data/ssl-enforcement/ssl-enforc import { useCustomContent } from 'hooks/custom-content/useCustomContent' import { useAsyncCheckPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' +import { DOCS_URL } from 'lib/constants' import { Alert, Button, Switch, Tooltip, TooltipContent, TooltipTrigger } from 'ui' const SSLConfiguration = () => { @@ -89,7 +90,7 @@ const SSLConfiguration = () => {
- +
{ @@ -67,7 +68,7 @@ const ComplianceConfig = () => { title="High Compliance Configuration" description="For projects storing and processing sensitive data (HIPAA)" /> - +
- +
@@ -363,7 +363,7 @@ const DeployNewReplicaPanel = ({ )} @@ -541,7 +541,7 @@ const DeployNewReplicaPanel = ({

Read more about{' '} { @@ -44,7 +46,7 @@ export const ObjectsToBeDroppedWarning = ({

diff --git a/apps/studio/components/interfaces/Storage/BucketRow.tsx b/apps/studio/components/interfaces/Storage/BucketRow.tsx index 031de7b1412..4cfcdeb3794 100644 --- a/apps/studio/components/interfaces/Storage/BucketRow.tsx +++ b/apps/studio/components/interfaces/Storage/BucketRow.tsx @@ -44,13 +44,14 @@ export const BucketRow = ({ bucket, projectRef = '', isSelected = false }: Bucke {/* Even though we trim whitespaces from bucket names, there may be some existing buckets with trailing whitespaces. */}

{bucket.name} @@ -106,7 +107,7 @@ export const BucketRow = ({ bucket, projectRef = '', isSelected = false }: Bucke ) : ( -

+
)} diff --git a/apps/studio/components/interfaces/Storage/EditBucketModal.tsx b/apps/studio/components/interfaces/Storage/EditBucketModal.tsx index 8f8cad5bede..47e7f318a09 100644 --- a/apps/studio/components/interfaces/Storage/EditBucketModal.tsx +++ b/apps/studio/components/interfaces/Storage/EditBucketModal.tsx @@ -14,7 +14,7 @@ import { InlineLink } from 'components/ui/InlineLink' import { useProjectStorageConfigQuery } from 'data/config/project-storage-config-query' import { useBucketUpdateMutation } from 'data/storage/bucket-update-mutation' import { Bucket } from 'data/storage/buckets-query' -import { IS_PLATFORM } from 'lib/constants' +import { DOCS_URL, IS_PLATFORM } from 'lib/constants' import { Button, Dialog, @@ -267,7 +267,9 @@ export const EditBucketModal = ({ visible, bucket, onClose }: EditBucketModalPro

Assets cached in the CDN may still be publicly accessible. You can consider{' '} - + purging the cache {' '} or moving your assets to a new bucket. diff --git a/apps/studio/components/interfaces/Storage/StoragePolicies/StoragePoliciesEditPolicyModal.tsx b/apps/studio/components/interfaces/Storage/StoragePolicies/StoragePoliciesEditPolicyModal.tsx index 3259f2cd36c..4b013668ce2 100644 --- a/apps/studio/components/interfaces/Storage/StoragePolicies/StoragePoliciesEditPolicyModal.tsx +++ b/apps/studio/components/interfaces/Storage/StoragePolicies/StoragePoliciesEditPolicyModal.tsx @@ -6,6 +6,7 @@ import { POLICY_MODAL_VIEWS } from 'components/interfaces/Auth/Policies/Policies import PolicySelection from 'components/interfaces/Auth/Policies/PolicySelection' import PolicyTemplates from 'components/interfaces/Auth/Policies/PolicyTemplates' import { DocsButton } from 'components/ui/DocsButton' +import { DOCS_URL } from 'lib/constants' import { ChevronLeft } from 'lucide-react' import { Modal } from 'ui' import { @@ -184,7 +185,7 @@ const StoragePoliciesEditPolicyModal = ({ return (

{getTitle()}

- +
) } diff --git a/apps/studio/components/interfaces/Storage/StoragePolicies/StoragePoliciesEditor.tsx b/apps/studio/components/interfaces/Storage/StoragePolicies/StoragePoliciesEditor.tsx index b695460ab50..6b200e675f9 100644 --- a/apps/studio/components/interfaces/Storage/StoragePolicies/StoragePoliciesEditor.tsx +++ b/apps/studio/components/interfaces/Storage/StoragePolicies/StoragePoliciesEditor.tsx @@ -3,6 +3,7 @@ import { Badge, Button, Checkbox, Modal } from 'ui' import { PolicyName, PolicyRoles } from 'components/interfaces/Auth/Policies/PolicyEditor' import SqlEditor from 'components/ui/SqlEditor' +import { DOCS_URL } from 'lib/constants' import { STORAGE_CLIENT_LIBRARY_MAPPINGS } from '../Storage.constants' import { deriveAllowedClientLibraryMethods } from '../Storage.utils' @@ -35,7 +36,7 @@ const PolicyAllowedOperations = ({ allowedOperations = [], onToggleOperation = (

Based on the operations you have selected, you can use the highlighted functions in the{' '} { Connect to your bucket using any S3-compatible service via the S3 protocol

- +
diff --git a/apps/studio/components/interfaces/Storage/StorageSettings/StorageSettings.tsx b/apps/studio/components/interfaces/Storage/StorageSettings/StorageSettings.tsx index bd0cfb22d80..9e0f0836b57 100644 --- a/apps/studio/components/interfaces/Storage/StorageSettings/StorageSettings.tsx +++ b/apps/studio/components/interfaces/Storage/StorageSettings/StorageSettings.tsx @@ -18,6 +18,7 @@ import { useProjectStorageConfigUpdateUpdateMutation } from 'data/config/project import { useBucketsQuery } from 'data/storage/buckets-query' import { useAsyncCheckPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization' +import { DOCS_URL } from 'lib/constants' import { formatBytes } from 'lib/helpers' import { Button, @@ -236,7 +237,9 @@ export const StorageSettings = () => { description={ <> Optimize and resize images on the fly.{' '} - + Learn more . @@ -274,7 +277,7 @@ export const StorageSettings = () => { Loading bucket information... )}{' '} - + Learn more . diff --git a/apps/studio/components/interfaces/Support/IssueSuggestions.tsx b/apps/studio/components/interfaces/Support/IssueSuggestions.tsx new file mode 100644 index 00000000000..0ca5fd69632 --- /dev/null +++ b/apps/studio/components/interfaces/Support/IssueSuggestions.tsx @@ -0,0 +1,65 @@ +import { SupportCategories } from '@supabase/shared-types/out/constants' +import { InlineLink } from 'components/ui/InlineLink' +import { Admonition } from 'ui-patterns' + +const className = 'col-span-2 mb-0' + +export const IssueSuggestion = ({ + category, + projectRef, +}: { + category: string + projectRef?: string +}) => { + const baseUrl = `/project/${projectRef === 'no-project' ? '_' : projectRef}` + + if (category === SupportCategories.PROBLEM) { + return ( + + Logs can help you identify errors that you might be running into when using your project's + API or client libraries. View logs for each product{' '} + here. + + ) + } + + if (category === SupportCategories.DATABASE_UNRESPONSIVE) { + return ( + + High memory or low disk IO bandwidth may be slowing down your database. Verify by checking + the infrastructure activity of your project{' '} + + here + + . + + ) + } + + if (category === SupportCategories.PERFORMANCE_ISSUES) { + return ( + + Identify slow running queries and get actionable insights on how to optimize them with the + Query Performance Advisor{' '} + + here + + . + + ) + } + + return null +} diff --git a/apps/studio/components/interfaces/Support/Success.tsx b/apps/studio/components/interfaces/Support/Success.tsx index ff8f5037a0e..4d428c6a376 100644 --- a/apps/studio/components/interfaces/Support/Success.tsx +++ b/apps/studio/components/interfaces/Support/Success.tsx @@ -2,6 +2,7 @@ import { Check, ExternalLink, Mail, Search } from 'lucide-react' import Link from 'next/link' import { useState } from 'react' +import { useProjectDetailQuery } from 'data/projects/project-detail-query' import { useProfile } from 'lib/profile' import { Button, Input, Separator } from 'ui' import { CATEGORY_OPTIONS } from './Support.constants' @@ -9,18 +10,16 @@ import { CATEGORY_OPTIONS } from './Support.constants' interface SuccessProps { sentCategory?: string selectedProject?: string - projects?: any[] } -const Success = ({ - sentCategory = '', - selectedProject = 'no-project', - projects = [], -}: SuccessProps) => { +export const Success = ({ sentCategory = '', selectedProject = 'no-project' }: SuccessProps) => { const { profile } = useProfile() const respondToEmail = profile?.primary_email ?? 'your email' - const project = projects.find((p) => p.ref === selectedProject) + const { data: project } = useProjectDetailQuery( + { ref: selectedProject }, + { enabled: selectedProject !== 'no-project' } + ) const projectName = project ? project.name : 'No specific project' const categoriesToShowAdditionalResources = ['Problem', 'Unresponsive', 'Performance'] @@ -98,5 +97,3 @@ const Success = ({
) } - -export default Success diff --git a/apps/studio/components/interfaces/Support/SupportForm.utils.tsx b/apps/studio/components/interfaces/Support/SupportForm.utils.tsx index 08737d01312..0a8c7682d59 100644 --- a/apps/studio/components/interfaces/Support/SupportForm.utils.tsx +++ b/apps/studio/components/interfaces/Support/SupportForm.utils.tsx @@ -7,6 +7,7 @@ import { type DocsSearchResult as Page, type DocsSearchResultSection as PageSection, } from 'common' +import { DOCS_URL } from 'lib/constants' import { uuidv4 } from 'lib/helpers' const SUPPORT_API_URL = process.env.NEXT_PUBLIC_SUPPORT_API_URL || '' @@ -96,7 +97,7 @@ export function generateLink(pageType: PageType, link: string): string { switch (pageType) { case PageType.Markdown: case PageType.Reference: - return `https://supabase.com/docs${link}` + return `${DOCS_URL}${link}` case PageType.Integration: return `https://supabase.com${link}` case PageType.GithubDiscussion: diff --git a/apps/studio/components/interfaces/Support/SupportFormV2.tsx b/apps/studio/components/interfaces/Support/SupportFormV2.tsx index 9c2fc2c6df2..23f571d3a55 100644 --- a/apps/studio/components/interfaces/Support/SupportFormV2.tsx +++ b/apps/studio/components/interfaces/Support/SupportFormV2.tsx @@ -1,5 +1,6 @@ import { zodResolver } from '@hookform/resolvers/zod' import * as Sentry from '@sentry/nextjs' +import { AnimatePresence, motion } from 'framer-motion' import { Book, Check, @@ -13,6 +14,7 @@ import { X, } from 'lucide-react' import Link from 'next/link' +import { useRouter } from 'next/router' import { ChangeEvent, useEffect, useMemo, useRef, useState } from 'react' import { SubmitHandler, useForm } from 'react-hook-form' import { toast } from 'sonner' @@ -20,15 +22,17 @@ import * as z from 'zod' import { useDocsSearch, useParams, type DocsSearchResult as Page } from 'common' import { CLIENT_LIBRARIES } from 'common/constants' +import CopyButton from 'components/ui/CopyButton' import { OrganizationProjectSelector } from 'components/ui/OrganizationProjectSelector' import { getProjectAuthConfig } from 'data/auth/auth-config-query' import { useSendSupportTicketMutation } from 'data/feedback/support-ticket-send' import { useOrganizationsQuery } from 'data/organizations/organizations-query' -import type { Project } from 'data/projects/project-detail-query' -import { useProjectsQuery } from 'data/projects/projects-query' +import { getProjectDetail } from 'data/projects/project-detail-query' import { useSendEventMutation } from 'data/telemetry/send-event-mutation' +import { DOCS_URL } from 'lib/constants' import { detectBrowser } from 'lib/helpers' import { useProfile } from 'lib/profile' +import { useQueryState } from 'nuqs' import { Badge, Button, @@ -57,6 +61,7 @@ import { FormItemLayout } from 'ui-patterns/form/FormItemLayout/FormItemLayout' import { MultiSelectV2 } from 'ui-patterns/MultiSelectDeprecated/MultiSelectV2' import ShimmeringLoader from 'ui-patterns/ShimmeringLoader' import { IPV4SuggestionAlert } from './IPV4SuggestionAlert' +import { IssueSuggestion } from './IssueSuggestions' import { LibrarySuggestions } from './LibrarySuggestions' import { PlanExpectationInfoBox } from './PlanExpectationInfoBox' import { @@ -66,12 +71,46 @@ import { SEVERITY_OPTIONS, } from './Support.constants' import { formatMessage, uploadAttachments } from './SupportForm.utils' -import { useRouter } from 'next/router' const MAX_ATTACHMENTS = 5 const INCLUDE_DISCUSSIONS = ['Problem', 'Database_unresponsive'] const CONTAINER_CLASSES = 'px-6' +const FormSchema = z + .object({ + organizationSlug: z.string().min(1, 'Please select an organization'), + projectRef: z.string().min(1, 'Please select a project'), + category: z.string().min(1, 'Please select an issue type'), + severity: z.string(), + library: z.string(), + subject: z.string().min(1, 'Please add a subject heading'), + message: z.string().min(1, "Please add a message about the issue that you're facing"), + affectedServices: z.string(), + allowSupportAccess: z.boolean(), + }) + .refine( + (data) => { + return !(data.category === 'Problem' && data.library === '') + }, + { + message: "Please select the library that you're facing issues with", + path: ['library'], + } + ) + +const defaultValues = { + organizationSlug: '', + // [Joshen TODO] We should refactor this to accept a null value instead of a magic string + projectRef: 'no-project', + category: '', + severity: 'Low', + library: '', + subject: '', + message: '', + affectedServices: '', + allowSupportAccess: true, +} + interface SupportFormV2Props { onProjectSelected: (value: string) => void onOrganizationSelected: (value: string) => void @@ -86,9 +125,12 @@ export const SupportFormV2 = ({ setSentCategory, }: SupportFormV2Props) => { const { profile } = useProfile() + const [highlightRef, setHighlightRef] = useQueryState('highlight', { defaultValue: '' }) + + // [Joshen] Ideally refactor all these to use nuqs const { - projectRef: ref, - slug, + projectRef: urlRef, + slug: urlSlug, category: urlCategory, subject: urlSubject, message: urlMessage, @@ -103,40 +145,6 @@ export const SupportFormV2 = ({ const [uploadedFiles, setUploadedFiles] = useState([]) const [uploadedDataUrls, setUploadedDataUrls] = useState([]) - const FormSchema = z - .object({ - organizationSlug: z.string().min(1, 'Please select an organization'), - projectRef: z.string().min(1, 'Please select a project'), - category: z.string().min(1, 'Please select an issue type'), - severity: z.string(), - library: z.string(), - subject: z.string().min(1, 'Please add a subject heading'), - message: z.string().min(1, "Please add a message about the issue that you're facing"), - affectedServices: z.string(), - allowSupportAccess: z.boolean(), - }) - .refine( - (data) => { - return !(data.category === 'Problem' && data.library === '') - }, - { - message: "Please select the library that you're facing issues with", - path: ['library'], - } - ) - - const defaultValues = { - organizationSlug: '', - projectRef: 'no-project', - category: '', - severity: 'Low', - library: '', - subject: '', - message: '', - affectedServices: '', - allowSupportAccess: true, - } - const form = useForm>({ mode: 'onBlur', reValidateMode: 'onBlur', @@ -158,8 +166,6 @@ export const SupportFormV2 = ({ () => organizations?.find((org) => org.slug === organizationSlug), [organizationSlug, organizations] ) - const { data, isLoading: isLoadingProjects, isSuccess: isSuccessProjects } = useProjectsQuery() - const allProjects = data?.projects ?? [] const { mutate: sendEvent } = useSendEventMutation() @@ -189,10 +195,6 @@ export const SupportFormV2 = ({ const respondToEmail = profile?.primary_email ?? 'your email' const subscriptionPlanId = selectedOrganization?.plan.id - const projects = [ - ...(allProjects ?? []).filter((project) => project.organization_slug === organizationSlug), - { ref: 'no-project', name: 'No specific project' } as Partial, - ] const hasResults = state.status === 'fullResults' || state.status === 'partialResults' || @@ -286,28 +288,32 @@ export const SupportFormV2 = ({ useEffect(() => { // For prefilling form fields via URL, project ref will taking higher precedence than org slug - if (isSuccessOrganizations && isSuccessProjects) { - if (organizations.length === 0) { - form.setValue('organizationSlug', 'no-org') - } else if (ref) { - const selectedProject = allProjects.find((p) => p.ref === ref) - if (selectedProject !== undefined) { - form.setValue('organizationSlug', selectedProject.organization_slug) - form.setValue('projectRef', selectedProject.ref) - } - } else if (slug) { - if (organizations.some((it) => it.slug === slug)) { - form.setValue('organizationSlug', slug) - } - } else if (ref === undefined && slug === undefined) { - const firstOrganization = organizations?.[0] - if (firstOrganization !== undefined) { - form.setValue('organizationSlug', firstOrganization.slug) + const prefillForm = async () => { + if (isSuccessOrganizations) { + if (organizations.length === 0) { + form.setValue('organizationSlug', 'no-org') + } else if (urlRef) { + // Check validity of project via project details + const selectedProject = await getProjectDetail({ ref: urlRef }) + if (!!selectedProject) { + const org = organizations.find((x) => x.id === selectedProject.organization_id) + if (!!org) form.setValue('organizationSlug', org.slug) + form.setValue('projectRef', selectedProject.ref) + } + } else if (urlSlug) { + if (organizations.some((it) => it.slug === urlSlug)) { + form.setValue('organizationSlug', urlSlug) + } + } else if (!urlRef && !urlSlug) { + const firstOrganization = organizations?.[0] + if (!!firstOrganization) { + form.setValue('organizationSlug', firstOrganization.slug) + } } } } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [ref, slug, isSuccessOrganizations, isSuccessProjects]) + prefillForm() + }, [urlRef, urlSlug, isSuccessOrganizations]) useEffect(() => { if (urlCategory) { @@ -400,19 +406,21 @@ export const SupportFormV2 = ({ )} /> -
+
( - + field.onChange(projects[0]?.ref ?? 'no-project')} + onInitialLoad={(projects) => { + if (!urlRef) field.onChange(projects[0]?.ref ?? 'no-project') + }} onSelect={(project) => field.onChange(project.ref)} renderTrigger={({ isLoading, project }) => (
) diff --git a/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/TableEditor.tsx b/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/TableEditor.tsx index 1d60e546fc7..8c9dbacc7e5 100644 --- a/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/TableEditor.tsx +++ b/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/TableEditor.tsx @@ -22,6 +22,7 @@ import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import { useUrlState } from 'hooks/ui/useUrlState' import { useProtectedSchemas } from 'hooks/useProtectedSchemas' +import { DOCS_URL } from 'lib/constants' import { useTableEditorStateSnapshot } from 'state/table-editor' import { Badge, Checkbox, Input, SidePanel } from 'ui' import { Admonition } from 'ui-patterns' @@ -334,7 +335,7 @@ export const TableEditor = ({ ) : ( @@ -352,7 +353,7 @@ export const TableEditor = ({ )} diff --git a/apps/studio/components/layouts/AppLayout/ClockSkewBanner.tsx b/apps/studio/components/layouts/AppLayout/ClockSkewBanner.tsx index 3ba765b5eab..61bbe5881a7 100644 --- a/apps/studio/components/layouts/AppLayout/ClockSkewBanner.tsx +++ b/apps/studio/components/layouts/AppLayout/ClockSkewBanner.tsx @@ -1,5 +1,5 @@ import { fetchHandler } from 'data/fetchers' -import { BASE_PATH } from 'lib/constants' +import { BASE_PATH, DOCS_URL } from 'lib/constants' import { useCallback, useEffect, useState } from 'react' import { Button } from 'ui' @@ -47,7 +47,7 @@ export const ClockSkewBanner = () => { Your computer's clock appears to be inaccurate. This can cause issues with certain features.

diff --git a/apps/studio/components/layouts/AppLayout/ProjectDropdown.tsx b/apps/studio/components/layouts/AppLayout/ProjectDropdown.tsx index de923374f34..542053c815b 100644 --- a/apps/studio/components/layouts/AppLayout/ProjectDropdown.tsx +++ b/apps/studio/components/layouts/AppLayout/ProjectDropdown.tsx @@ -73,7 +73,9 @@ export const ProjectDropdown = () => { setOpen={setOpen} selectedRef={ref} onSelect={(project) => { - router.push(`/project/${project.ref}`) + const sanitizedRoute = sanitizeRoute(router.route, router.query) + const href = sanitizedRoute?.replace('[ref]', project.ref) ?? `/project/${project.ref}` + router.push(href) }} renderTrigger={() => (
- +
diff --git a/apps/studio/components/ui/AIAssistantPanel/AIOnboarding.tsx b/apps/studio/components/ui/AIAssistantPanel/AIOnboarding.tsx index d267fdd661d..e7cc40af960 100644 --- a/apps/studio/components/ui/AIAssistantPanel/AIOnboarding.tsx +++ b/apps/studio/components/ui/AIAssistantPanel/AIOnboarding.tsx @@ -1,5 +1,6 @@ import { motion } from 'framer-motion' import { BarChart, FileText, Shield } from 'lucide-react' +// End of third-party imports import { useParams } from 'common' import { LINTER_LEVELS } from 'components/interfaces/Linter/Linter.constants' @@ -7,7 +8,7 @@ import { createLintSummaryPrompt } from 'components/interfaces/Linter/Linter.uti import { type Lint, useProjectLintsQuery } from 'data/lint/lint-query' import { Button, Skeleton } from 'ui' import { codeSnippetPrompts, defaultPrompts } from './AIAssistant.prompts' -import { type SqlSnippet } from './AIAssistant.types' +import type { SqlSnippet } from './AIAssistant.types' interface AIOnboardingProps { sqlSnippets?: SqlSnippet[] @@ -137,7 +138,7 @@ export const AIOnboarding = ({ onFocusInput?.() }} > - {lint.detail ? lint.detail.replace(/`/g, '') : lint.title} + {lint.detail ? lint.detail.replace(/\\`/g, '') : lint.title} ) })} diff --git a/apps/studio/components/ui/DataTable/DataTableFilters/DataTableFilterResetButton.tsx b/apps/studio/components/ui/DataTable/DataTableFilters/DataTableFilterResetButton.tsx index 2279eb48b17..baae73eb654 100644 --- a/apps/studio/components/ui/DataTable/DataTableFilters/DataTableFilterResetButton.tsx +++ b/apps/studio/components/ui/DataTable/DataTableFilters/DataTableFilterResetButton.tsx @@ -24,7 +24,7 @@ export function DataTableFilterResetButton({ value: _value }: DataTableFi }} onKeyDown={(e) => { e.stopPropagation() - if (e.code === 'Enter') { + if (e.code === 'Enter' || e.code === 'NumpadEnter') { column?.setFilterValue(undefined) } }} diff --git a/apps/studio/components/ui/GrafanaPromoBanner.tsx b/apps/studio/components/ui/GrafanaPromoBanner.tsx index 22598234352..c3bbab5918d 100644 --- a/apps/studio/components/ui/GrafanaPromoBanner.tsx +++ b/apps/studio/components/ui/GrafanaPromoBanner.tsx @@ -1,9 +1,10 @@ +import { BookOpen } from 'lucide-react' +import Link from 'next/link' + import { useParams } from 'common' import { useSendEventMutation } from 'data/telemetry/send-event-mutation' import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization' -import { BASE_PATH } from 'lib/constants' -import { BookOpen } from 'lucide-react' -import Link from 'next/link' +import { BASE_PATH, DOCS_URL } from 'lib/constants' import { Alert_Shadcn_, AlertDescription_Shadcn_, AlertTitle_Shadcn_, Button, cn } from 'ui' const GrafanaPromoBanner = () => ( @@ -58,7 +59,7 @@ const GrafanaBannerActions = ({ className }: { className?: string }) => {
*/} - +
), }) @@ -121,7 +122,7 @@ export const useTableRowDeleteMutation = ({ each row before updating or deleting the row.

- +
), diff --git a/apps/studio/data/table-rows/table-rows-query.ts b/apps/studio/data/table-rows/table-rows-query.ts index 3e56d290f6f..6f66c6be909 100644 --- a/apps/studio/data/table-rows/table-rows-query.ts +++ b/apps/studio/data/table-rows/table-rows-query.ts @@ -54,7 +54,8 @@ export async function executeWithRetry( try { return await fn() } catch (error: any) { - if (error?.status === 429 && attempt < maxRetries) { + // Our custom ResponseError's use 'code' instead of 'status' + if ((error?.status ?? error?.code) === 429 && attempt < maxRetries) { // Get retry delay from headers or use exponential backoff (1s, then 2s, then 4s) const retryAfter = error.headers?.get('retry-after') const delayMs = retryAfter ? parseInt(retryAfter) * 1000 : baseDelay * Math.pow(2, attempt) diff --git a/apps/studio/hooks/analytics/useLogsQuery.tsx b/apps/studio/hooks/analytics/useLogsQuery.tsx index 4e4f8b84aed..33d9404c64e 100644 --- a/apps/studio/hooks/analytics/useLogsQuery.tsx +++ b/apps/studio/hooks/analytics/useLogsQuery.tsx @@ -16,6 +16,7 @@ import { checkForWithClause, } from 'components/interfaces/Settings/Logs/Logs.utils' import { get } from 'data/fetchers' +import { DOCS_URL } from 'lib/constants' export interface LogsQueryHook { params: LogsEndpointParams @@ -98,13 +99,13 @@ const useLogsQuery = ( if (usesWith) { error = { message: 'The parser does not yet support WITH and subquery statements.', - docs: 'https://supabase.com/docs/guides/platform/advanced-log-filtering#the-with-keyword-and-subqueries-are-not-supported', + docs: `${DOCS_URL}/guides/platform/advanced-log-filtering#the-with-keyword-and-subqueries-are-not-supported`, } } if (usesILIKE) { error = { message: 'BigQuery does not support ILIKE. Use REGEXP_CONTAINS instead.', - docs: 'https://supabase.com/docs/guides/platform/advanced-log-filtering#the-ilike-and-similar-to-keywords-are-not-supported', + docs: `${DOCS_URL}/guides/platform/advanced-log-filtering#the-ilike-and-similar-to-keywords-are-not-supported`, } } } diff --git a/apps/studio/lib/ai/prompts.ts b/apps/studio/lib/ai/prompts.ts index 0cd8fae47dd..19c52759561 100644 --- a/apps/studio/lib/ai/prompts.ts +++ b/apps/studio/lib/ai/prompts.ts @@ -116,7 +116,7 @@ CREATE POLICY "User file access" ON storage.objects FOR SELECT TO authenticated ALTER TABLE customers ENABLE ROW LEVEL SECURITY; -- Secure helper function -gCREATE OR REPLACE FUNCTION get_user_tenant() RETURNS uuid LANGUAGE sql SECURITY DEFINER STABLE AS $$ +CREATE OR REPLACE FUNCTION get_user_tenant() RETURNS uuid LANGUAGE sql SECURITY DEFINER STABLE AS $$ SELECT tenant_id FROM user_profiles WHERE auth_user_id = auth.uid(); $$; REVOKE EXECUTE ON FUNCTION get_user_tenant() FROM anon, authenticated; @@ -137,7 +137,7 @@ export const EDGE_FUNCTION_PROMPT = ` # Writing Supabase Edge Functions As an expert in TypeScript and the Deno JavaScript runtime, generate **high-quality Supabase Edge Functions** that comply with the following best practices: -After producing or editing code, validate that it follows the guidelines above and that all imports, environment variables, and file operations are compliant. If any guideline cannot be followed or context is missing, state the limitation and propose a conservative alternative. +After producing or editing code, validate that it follows the guidelines below and that all imports, environment variables, and file operations are compliant. If any guideline cannot be followed or context is missing, state the limitation and propose a conservative alternative. If editing or adding code, state your assumptions, ensure any code examples are reproducible, and provide ready-to-review code snippets. Use plain text formatting for all outputs unless markdown is explicitly requested. @@ -227,31 +227,8 @@ Deno.serve(async (req: Request) => { ); }); \`\`\` - ` -export const REALTIME_PROMPT = ` -# Enabling Realtime Capabilities with Supabase -You are an expert in developing realtime experiences using Supabase Realtime. Your role is to assist the user in setting up a realtime experience tailored to their project requirements. - -## Steps to Follow -1. Begin by asking the user which type of realtime experience they wish to implement. -2. Gather necessary context by utilizing the following tools: \`list_tables\`, \`list_policies\`, and \`list_functions\`. Use only the tools listed here; do not invoke others unless confirmed with the user. -3. Before each step, use the \`search_docs\` tool and state in one line the purpose and minimal inputs for using it, retrieving the most current guides and examples relevant to the specific use case (e.g., realtime broadcast or realtime presence). -4. Clearly outline the steps you will take to help the user establish the realtime experience. -5. For each step: - - First, use \`search_docs\` again to locate the most pertinent examples, stating its purpose and inputs before the call. - - Next, use \`execute_sql\` to run any required SQL statements or generate the appropriate \`supabase-js\` code as needed. After each code or SQL step, validate the result in 1–2 lines and proceed or self-correct if the validation fails. - - Proceed one step at a time, ensuring the user understands each action. - -## Guidelines -- Messages may be broadcast from either the client side or the server side, including via database triggers and functions. -- Always create and enforce policies to control who can read and write messages. -- Utilize channel names to provide additional context to policies (for example: \`room:{topic}\`, \`tenant:{tenant_id}\`). - -Set reasoning_effort based on the complexity of the user’s task; keep tool calls terse, but be more complete in final explanations. - -` export const PG_BEST_PRACTICES = ` # Postgres Best Practices @@ -315,12 +292,13 @@ export const GENERAL_PROMPT = ` Act as a Supabase Postgres expert to assist users in efficiently managing their Supabase projects. ## Instructions Support the user by: +- Gathering context from the database using the \`list_tables\`, \`list_extensions\`, and \`list_edge_functions\` tools - Writing SQL queries - Creating Edge Functions - Debugging issues - Monitoring project status ## Tools -- Use available context gathering tools such as \`list_tables\`, \`list_extensions\`, and \`list_edge_functions\` whenever relevant for context. +- Always use available context gathering tools such as \`list_tables\`, \`list_extensions\`, and \`list_edge_functions\` - Tools are for assistant use only; do not imply user access to them. - Only use the tools listed above. For read-only or information-gathering operations, call tools automatically; for potentially destructive actions, obtain explicit user confirmation before proceeding. - Tool access may be limited by organizational settings. If required permissions for a task are unavailable, inform the user of this limitation and propose alternatives if possible. diff --git a/apps/studio/lib/api/self-hosted/generate-types.ts b/apps/studio/lib/api/self-hosted/generate-types.ts new file mode 100644 index 00000000000..e46fbdd9e03 --- /dev/null +++ b/apps/studio/lib/api/self-hosted/generate-types.ts @@ -0,0 +1,48 @@ +import { fetchGet } from 'data/fetchers' +import { PG_META_URL } from 'lib/constants' +import { assertSelfHosted } from './util' +import { ResponseError } from 'types' + +export type GenerateTypescriptTypesOptions = { + headers?: HeadersInit +} + +type GenerateTypescriptTypesResult = { + types: string +} + +/** + * Generates TypeScript types for the self-hosted Postgres instance via pg-meta service. + * + * _Only call this from server-side self-hosted code._ + */ +export async function generateTypescriptTypes({ + headers, +}: GenerateTypescriptTypesOptions): Promise { + assertSelfHosted() + + const includedSchema = ['public', 'graphql_public', 'storage'].join(',') + + const excludedSchema = [ + 'auth', + 'cron', + 'extensions', + 'graphql', + 'net', + 'pgsodium', + 'pgsodium_masks', + 'realtime', + 'supabase_functions', + 'supabase_migrations', + 'vault', + '_analytics', + '_realtime', + ].join(',') + + const response = await fetchGet( + `${PG_META_URL}/generators/typescript?included_schema=${includedSchema}&excluded_schemas=${excludedSchema}`, + { headers } + ) + + return response +} diff --git a/apps/studio/lib/api/self-hosted/mcp.ts b/apps/studio/lib/api/self-hosted/mcp.ts index a182a1917c7..ea9722f5f86 100644 --- a/apps/studio/lib/api/self-hosted/mcp.ts +++ b/apps/studio/lib/api/self-hosted/mcp.ts @@ -1,15 +1,23 @@ import { ApplyMigrationOptions, DatabaseOperations, + DevelopmentOperations, ExecuteSqlOptions, } from '@supabase/mcp-server-supabase/platform' import { applyAndTrackMigrations, listMigrationVersions } from './migrations' import { executeQuery } from './query' +import { getProjectSettings } from './settings' +import { generateTypescriptTypes } from './generate-types' +import { ResponseError } from 'types' export type GetDatabaseOperationsOptions = { headers?: HeadersInit } +export type GetDevelopmentOperationsOptions = { + headers?: HeadersInit +} + export function getDatabaseOperations({ headers, }: GetDatabaseOperationsOptions): DatabaseOperations { @@ -43,3 +51,33 @@ export function getDatabaseOperations({ }, } } + +export function getDevelopmentOperations({ + headers, +}: GetDevelopmentOperationsOptions): DevelopmentOperations { + return { + async getProjectUrl(_projectRef) { + const settings = getProjectSettings() + return `${settings.app_config.protocol}://${settings.app_config.endpoint}` + }, + async getAnonKey(_projectRef) { + const settings = getProjectSettings() + const anonKey = settings.service_api_keys.find((key) => key.name === 'anon key') + + if (!anonKey) { + throw new Error('Anon key not found in project settings') + } + + return anonKey.api_key + }, + async generateTypescriptTypes(_projectRef) { + const response = await generateTypescriptTypes({ headers }) + + if (response instanceof ResponseError) { + throw response + } + + return response + }, + } +} diff --git a/apps/studio/lib/api/self-hosted/settings.ts b/apps/studio/lib/api/self-hosted/settings.ts new file mode 100644 index 00000000000..8cff8486de0 --- /dev/null +++ b/apps/studio/lib/api/self-hosted/settings.ts @@ -0,0 +1,59 @@ +import { components } from 'api-types' +import { PROJECT_ENDPOINT, PROJECT_ENDPOINT_PROTOCOL } from 'lib/constants/api' +import { assertSelfHosted } from './util' + +type ProjectAppConfig = components['schemas']['ProjectSettingsResponse']['app_config'] & { + protocol?: string +} + +export type ProjectSettings = components['schemas']['ProjectSettingsResponse'] & { + app_config?: ProjectAppConfig +} + +/** + * Gets self-hosted project settings + * + * _Only call this from server-side self-hosted code._ + */ +export function getProjectSettings() { + assertSelfHosted() + + const response = { + app_config: { + db_schema: 'public', + endpoint: PROJECT_ENDPOINT, + storage_endpoint: PROJECT_ENDPOINT, + // manually added to force the frontend to use the correct URL + protocol: PROJECT_ENDPOINT_PROTOCOL, + }, + cloud_provider: 'AWS', + db_dns_name: '-', + db_host: 'localhost', + db_ip_addr_config: 'legacy' as const, + db_name: 'postgres', + db_port: 5432, + db_user: 'postgres', + inserted_at: '2021-08-02T06:40:40.646Z', + jwt_secret: + process.env.AUTH_JWT_SECRET ?? 'super-secret-jwt-token-with-at-least-32-characters-long', + name: process.env.DEFAULT_PROJECT_NAME || 'Default Project', + ref: 'default', + region: 'ap-southeast-1', + service_api_keys: [ + { + api_key: process.env.SUPABASE_SERVICE_KEY ?? '', + name: 'service_role key', + tags: 'service_role', + }, + { + api_key: process.env.SUPABASE_ANON_KEY ?? '', + name: 'anon key', + tags: 'anon', + }, + ], + ssl_enforced: false, + status: 'ACTIVE_HEALTHY', + } satisfies ProjectSettings + + return response +} diff --git a/apps/studio/lib/constants/index.ts b/apps/studio/lib/constants/index.ts index 79338ec013d..4a95864039e 100644 --- a/apps/studio/lib/constants/index.ts +++ b/apps/studio/lib/constants/index.ts @@ -45,6 +45,8 @@ export const POSTHOG_URL = export const USAGE_APPROACHING_THRESHOLD = 0.75 +export const DOCS_URL = process.env.NEXT_PUBLIC_DOCS_URL || 'https://supabase.com/docs' + export const OPT_IN_TAGS = { AI_SQL: 'AI_SQL_GENERATOR_OPT_IN', AI_DATA: 'AI_DATA_GENERATOR_OPT_IN', diff --git a/apps/studio/lib/github.ts b/apps/studio/lib/github.ts index 5d96032ef12..d2493e2ddcf 100644 --- a/apps/studio/lib/github.ts +++ b/apps/studio/lib/github.ts @@ -19,7 +19,10 @@ const GITHUB_INTEGRATION_AUTHORIZATION_URL = `https://github.com/login/oauth/aut export const GITHUB_INTEGRATION_INSTALLATION_URL = `https://github.com/apps/${GITHUB_INTEGRATION_APP_NAME}/installations/new` export const GITHUB_INTEGRATION_REVOKE_AUTHORIZATION_URL = `https://github.com/settings/connections/applications/${GITHUB_INTEGRATION_CLIENT_ID}` -export function openInstallGitHubIntegrationWindow(type: 'install' | 'authorize') { +export function openInstallGitHubIntegrationWindow( + type: 'install' | 'authorize', + closeCallback?: () => void +) { const w = 600 const h = 800 @@ -37,10 +40,10 @@ export function openInstallGitHubIntegrationWindow(type: 'install' | 'authorize' ? document.documentElement.clientHeight : screen.height - let windowUrl + let windowUrl: string | undefined if (type === 'install') { windowUrl = GITHUB_INTEGRATION_INSTALLATION_URL - } else if (type === 'authorize') { + } else { const state = makeRandomString(32) localStorage.setItem(LOCAL_STORAGE_KEYS.GITHUB_AUTHORIZATION_STATE, state) windowUrl = `${GITHUB_INTEGRATION_AUTHORIZATION_URL}&state=${state}` @@ -60,6 +63,20 @@ export function openInstallGitHubIntegrationWindow(type: 'install' | 'authorize' ` ) if (newWindow) { + if (closeCallback) { + // Poll to check if window is closed + const checkClosed = setInterval(() => { + if (newWindow.closed) { + clearInterval(checkClosed) + closeCallback() + } + }, 500) // Check every 500ms + + // Add a timeout to prevent infinite polling + setTimeout(() => { + clearInterval(checkClosed) + }, 300000) // 5 minutes timeout + } newWindow.focus() } } diff --git a/apps/studio/pages/account/tokens.tsx b/apps/studio/pages/account/tokens.tsx index cae0704f8f8..b03c749d4b1 100644 --- a/apps/studio/pages/account/tokens.tsx +++ b/apps/studio/pages/account/tokens.tsx @@ -14,6 +14,7 @@ import { ScaffoldSectionTitle, } from 'components/layouts/Scaffold' import { NewAccessToken } from 'data/access-tokens/access-tokens-create-mutation' +import { DOCS_URL } from 'lib/constants' import type { NextPageWithLayout } from 'types' import { Button } from 'ui' import { Input } from 'ui-patterns/DataInputs/Input' @@ -45,20 +46,12 @@ const UserAccessTokens: NextPageWithLayout = () => { />
diff --git a/apps/studio/pages/api/mcp/index.ts b/apps/studio/pages/api/mcp/index.ts index d57898fe490..c2ed15f8bcd 100644 --- a/apps/studio/pages/api/mcp/index.ts +++ b/apps/studio/pages/api/mcp/index.ts @@ -2,12 +2,12 @@ import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/ import { createSupabaseMcpServer, SupabasePlatform } from '@supabase/mcp-server-supabase' import { stripIndent } from 'common-tags' import { commaSeparatedStringIntoArray, fromNodeHeaders } from 'lib/api/apiHelpers' -import { getDatabaseOperations } from 'lib/api/self-hosted/mcp' +import { getDatabaseOperations, getDevelopmentOperations } from 'lib/api/self-hosted/mcp' import { DEFAULT_PROJECT } from 'lib/constants/api' import { NextApiRequest, NextApiResponse } from 'next' import { z } from 'zod' -const supportedFeatureGroupSchema = z.enum(['docs', 'database']) +const supportedFeatureGroupSchema = z.enum(['docs', 'database', 'development']) const mcpQuerySchema = z.object({ features: z @@ -46,6 +46,7 @@ async function handlePost(req: NextApiRequest, res: NextApiResponse) { const platform: SupabasePlatform = { database: getDatabaseOperations({ headers }), + development: getDevelopmentOperations({ headers }), } try { diff --git a/apps/studio/pages/api/platform/projects/[ref]/run-lints.ts b/apps/studio/pages/api/platform/projects/[ref]/run-lints.ts index e58f7b326f7..4431f0c0597 100644 --- a/apps/studio/pages/api/platform/projects/[ref]/run-lints.ts +++ b/apps/studio/pages/api/platform/projects/[ref]/run-lints.ts @@ -4,7 +4,7 @@ import { paths } from 'api-types' import { fetchPost } from 'data/fetchers' import { constructHeaders } from 'lib/api/apiHelpers' import apiWrapper from 'lib/api/apiWrapper' -import { PG_META_URL } from 'lib/constants' +import { DOCS_URL, PG_META_URL } from 'lib/constants' export default (req: NextApiRequest, res: NextApiResponse) => apiWrapper(req, res, handler) @@ -92,7 +92,7 @@ select fk.table_name, fk.fkey_name ) as detail, - 'https://supabase.com/docs/guides/database/database-linter?lint=0001_unindexed_foreign_keys' as remediation, + '${DOCS_URL}/guides/database/database-linter?lint=0001_unindexed_foreign_keys' as remediation, jsonb_build_object( 'schema', fk.schema_name, 'name', fk.table_name, @@ -132,7 +132,7 @@ select 'View/Materialized View "%s" in the public schema may expose \`auth.users\` data to anon or authenticated roles.', c.relname ) as detail, - 'https://supabase.com/docs/guides/database/database-linter?lint=0002_auth_users_exposed' as remediation, + '${DOCS_URL}/guides/database/database-linter?lint=0002_auth_users_exposed' as remediation, jsonb_build_object( 'schema', n.nspname, 'name', c.relname, @@ -246,12 +246,12 @@ select array['PERFORMANCE'] as categories, 'Detects if calls to \`auth.()\` in RLS policies are being unnecessarily re-evaluated for each row' as description, format( - 'Table \`%s.%s\` has a row level security policy \`%s\` that re-evaluates an auth.() for each row. This produces suboptimal query performance at scale. Resolve the issue by replacing \`auth.()\` with \`(select auth.())\`. See [docs](https://supabase.com/docs/guides/database/postgres/row-level-security#call-functions-with-select) for more info.', + 'Table \`%s.%s\` has a row level security policy \`%s\` that re-evaluates an auth.() for each row. This produces suboptimal query performance at scale. Resolve the issue by replacing \`auth.()\` with \`(select auth.())\`. See [docs](${DOCS_URL}/guides/database/postgres/row-level-security#call-functions-with-select) for more info.', schema_name, table_name, policy_name ) as detail, - 'https://supabase.com/docs/guides/database/database-linter?lint=0003_auth_rls_initplan' as remediation, + '${DOCS_URL}/guides/database/database-linter?lint=0003_auth_rls_initplan' as remediation, jsonb_build_object( 'schema', schema_name, 'name', table_name, @@ -315,7 +315,7 @@ select pgns.nspname, pgc.relname ) as detail, - 'https://supabase.com/docs/guides/database/database-linter?lint=0004_no_primary_key' as remediation, + '${DOCS_URL}/guides/database/database-linter?lint=0004_no_primary_key' as remediation, jsonb_build_object( 'schema', pgns.nspname, 'name', pgc.relname, @@ -362,7 +362,7 @@ select psui.schemaname, psui.relname ) as detail, - 'https://supabase.com/docs/guides/database/database-linter?lint=0005_unused_index' as remediation, + '${DOCS_URL}/guides/database/database-linter?lint=0005_unused_index' as remediation, jsonb_build_object( 'schema', psui.schemaname, 'name', psui.relname, @@ -407,7 +407,7 @@ select act.cmd, array_agg(p.polname order by p.polname) ) as detail, - 'https://supabase.com/docs/guides/database/database-linter?lint=0006_multiple_permissive_policies' as remediation, + '${DOCS_URL}/guides/database/database-linter?lint=0006_multiple_permissive_policies' as remediation, jsonb_build_object( 'schema', n.nspname, 'name', c.relname, @@ -478,7 +478,7 @@ select c.relname, array_agg(p.polname order by p.polname) ) as detail, - 'https://supabase.com/docs/guides/database/database-linter?lint=0007_policy_exists_rls_disabled' as remediation, + '${DOCS_URL}/guides/database/database-linter?lint=0007_policy_exists_rls_disabled' as remediation, jsonb_build_object( 'schema', n.nspname, 'name', c.relname, @@ -523,7 +523,7 @@ select n.nspname, c.relname ) as detail, - 'https://supabase.com/docs/guides/database/database-linter?lint=0008_rls_enabled_no_policy' as remediation, + '${DOCS_URL}/guides/database/database-linter?lint=0008_rls_enabled_no_policy' as remediation, jsonb_build_object( 'schema', n.nspname, 'name', c.relname, @@ -570,7 +570,7 @@ select c.relname, array_agg(pi.indexname order by pi.indexname) ) as detail, - 'https://supabase.com/docs/guides/database/database-linter?lint=0009_duplicate_index' as remediation, + '${DOCS_URL}/guides/database/database-linter?lint=0009_duplicate_index' as remediation, jsonb_build_object( 'schema', n.nspname, 'name', c.relname, @@ -624,7 +624,7 @@ select n.nspname, c.relname ) as detail, - 'https://supabase.com/docs/guides/database/database-linter?lint=0010_security_definer_view' as remediation, + '${DOCS_URL}/guides/database/database-linter?lint=0010_security_definer_view' as remediation, jsonb_build_object( 'schema', n.nspname, 'name', c.relname, @@ -677,7 +677,7 @@ select n.nspname, p.proname ) as detail, - 'https://supabase.com/docs/guides/database/database-linter?lint=0011_function_search_path_mutable' as remediation, + '${DOCS_URL}/guides/database/database-linter?lint=0011_function_search_path_mutable' as remediation, jsonb_build_object( 'schema', n.nspname, 'name', p.proname, @@ -717,7 +717,7 @@ select n.nspname, c.relname ) as detail, - 'https://supabase.com/docs/guides/database/database-linter?lint=0013_rls_disabled_in_public' as remediation, + '${DOCS_URL}/guides/database/database-linter?lint=0013_rls_disabled_in_public' as remediation, jsonb_build_object( 'schema', n.nspname, 'name', c.relname, @@ -757,7 +757,7 @@ select 'Extension \`%s\` is installed in the public schema. Move it to another schema.', pe.extname ) as detail, - 'https://supabase.com/docs/guides/database/database-linter?lint=0014_extension_in_public' as remediation, + '${DOCS_URL}/guides/database/database-linter?lint=0014_extension_in_public' as remediation, jsonb_build_object( 'schema', pe.extnamespace::regnamespace, 'name', pe.extname, @@ -811,7 +811,7 @@ select table_name, policy_name ) as detail, - 'https://supabase.com/docs/guides/database/database-linter?lint=0015_rls_references_user_metadata' as remediation, + '${DOCS_URL}/guides/database/database-linter?lint=0015_rls_references_user_metadata' as remediation, jsonb_build_object( 'schema', schema_name, 'name', table_name, @@ -847,7 +847,7 @@ select n.nspname, c.relname ) as detail, - 'https://supabase.com/docs/guides/database/database-linter?lint=0016_materialized_view_in_api' as remediation, + '${DOCS_URL}/guides/database/database-linter?lint=0016_materialized_view_in_api' as remediation, jsonb_build_object( 'schema', n.nspname, 'name', c.relname, @@ -890,7 +890,7 @@ select n.nspname, c.relname ) as detail, - 'https://supabase.com/docs/guides/database/database-linter?lint=0017_foreign_table_in_api' as remediation, + '${DOCS_URL}/guides/database/database-linter?lint=0017_foreign_table_in_api' as remediation, jsonb_build_object( 'schema', n.nspname, 'name', c.relname, @@ -935,7 +935,7 @@ select a.attname, t.typname ) as detail, - 'https://supabase.com/docs/guides/database/database-linter?lint=unsupported_reg_types' as remediation, + '${DOCS_URL}/guides/database/database-linter?lint=unsupported_reg_types' as remediation, jsonb_build_object( 'schema', n.nspname, 'name', c.relname, diff --git a/apps/studio/pages/api/platform/projects/[ref]/settings.ts b/apps/studio/pages/api/platform/projects/[ref]/settings.ts index a241ec28567..ba8b4746ca9 100644 --- a/apps/studio/pages/api/platform/projects/[ref]/settings.ts +++ b/apps/studio/pages/api/platform/projects/[ref]/settings.ts @@ -2,7 +2,7 @@ import { NextApiRequest, NextApiResponse } from 'next' import { components } from 'api-types' import apiWrapper from 'lib/api/apiWrapper' -import { PROJECT_ENDPOINT, PROJECT_ENDPOINT_PROTOCOL } from 'lib/constants/api' +import { getProjectSettings } from 'lib/api/self-hosted/settings' type ProjectAppConfig = components['schemas']['ProjectSettingsResponse']['app_config'] & { protocol?: string @@ -26,42 +26,7 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { } const handleGetAll = async (req: NextApiRequest, res: NextApiResponse) => { - const response: ProjectSettings = { - app_config: { - db_schema: 'public', - endpoint: PROJECT_ENDPOINT, - storage_endpoint: PROJECT_ENDPOINT, - // manually added to force the frontend to use the correct URL - protocol: PROJECT_ENDPOINT_PROTOCOL, - }, - cloud_provider: 'AWS', - db_dns_name: '-', - db_host: 'localhost', - db_ip_addr_config: 'legacy' as const, - db_name: 'postgres', - db_port: 5432, - db_user: 'postgres', - inserted_at: '2021-08-02T06:40:40.646Z', - jwt_secret: - process.env.AUTH_JWT_SECRET ?? 'super-secret-jwt-token-with-at-least-32-characters-long', - name: process.env.DEFAULT_PROJECT_NAME || 'Default Project', - ref: 'default', - region: 'ap-southeast-1', - service_api_keys: [ - { - api_key: process.env.SUPABASE_SERVICE_KEY ?? '', - name: 'service_role key', - tags: 'service_role', - }, - { - api_key: process.env.SUPABASE_ANON_KEY ?? '', - name: 'anon key', - tags: 'anon', - }, - ], - ssl_enforced: false, - status: 'ACTIVE_HEALTHY', - } + const response = getProjectSettings() return res.status(200).json(response) } diff --git a/apps/studio/pages/api/v1/projects/[ref]/types/typescript.ts b/apps/studio/pages/api/v1/projects/[ref]/types/typescript.ts index 904ea6598be..789b1651bd5 100644 --- a/apps/studio/pages/api/v1/projects/[ref]/types/typescript.ts +++ b/apps/studio/pages/api/v1/projects/[ref]/types/typescript.ts @@ -1,9 +1,9 @@ import { NextApiRequest, NextApiResponse } from 'next' -import { fetchGet } from 'data/fetchers' import { constructHeaders } from 'lib/api/apiHelpers' import apiWrapper from 'lib/api/apiWrapper' -import { PG_META_URL } from 'lib/constants' +import { generateTypescriptTypes } from 'lib/api/self-hosted/generate-types' +import { ResponseError } from 'types' export default (req: NextApiRequest, res: NextApiResponse) => apiWrapper(req, res, handler, { withAuth: true }) @@ -21,35 +21,13 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { } const handleGetAll = async (req: NextApiRequest, res: NextApiResponse) => { - const includedSchema = ['public', 'graphql_public', 'storage'].join(',') - - const excludedSchema = [ - 'auth', - 'cron', - 'extensions', - 'graphql', - 'net', - 'pgsodium', - 'pgsodium_masks', - 'realtime', - 'supabase_functions', - 'supabase_migrations', - 'vault', - '_analytics', - '_realtime', - ].join(',') - const headers = constructHeaders(req.headers) - const response = await fetchGet( - `${PG_META_URL}/generators/typescript?included_schema=${includedSchema}&excluded_schemas=${excludedSchema}`, - { headers } - ) + const response = await generateTypescriptTypes({ headers }) - if (response.error) { - const { code, message } = response.error - return res.status(code).json({ message }) - } else { - return res.status(200).json(response) + if (response instanceof ResponseError) { + return res.status(response.code ?? 500).json({ message: response.message }) } + + return res.status(200).json(response) } diff --git a/apps/studio/pages/forgot-password.tsx b/apps/studio/pages/forgot-password.tsx index 03f7a5a75fa..8952cd12cc6 100644 --- a/apps/studio/pages/forgot-password.tsx +++ b/apps/studio/pages/forgot-password.tsx @@ -1,6 +1,7 @@ +import Link from 'next/link' + import { ForgotPasswordWizard } from 'components/interfaces/SignIn/ForgotPasswordWizard' import ForgotPasswordLayout from 'components/layouts/SignInLayout/ForgotPasswordLayout' -import Link from 'next/link' import type { NextPageWithLayout } from 'types' const ForgotPasswordPage: NextPageWithLayout = () => { @@ -23,7 +24,7 @@ const ForgotPasswordPage: NextPageWithLayout = () => { ForgotPasswordPage.getLayout = (page) => ( {page} diff --git a/apps/studio/pages/new/[slug].tsx b/apps/studio/pages/new/[slug].tsx index c1c01b84783..cadcae32c74 100644 --- a/apps/studio/pages/new/[slug].tsx +++ b/apps/studio/pages/new/[slug].tsx @@ -58,6 +58,7 @@ import { getCloudProviderArchitecture } from 'lib/cloudprovider-utils' import { AWS_REGIONS_DEFAULT, DEFAULT_MINIMUM_PASSWORD_STRENGTH, + DOCS_URL, FLY_REGIONS_DEFAULT, MANAGED_BY, PROJECT_STATUS, @@ -66,7 +67,7 @@ import { } from 'lib/constants' import passwordStrength from 'lib/password-strength' import { generateStrongPassword } from 'lib/project' -import type { CloudProvider } from 'shared-data' +import { AWS_REGIONS, type CloudProvider } from 'shared-data' import type { NextPageWithLayout } from 'types' import { Badge, @@ -159,6 +160,7 @@ const Wizard: NextPageWithLayout = () => { const projectCreationDisabled = useFlag('disableProjectCreationAndUpdate') const showPostgresVersionSelector = useFlag('showPostgresVersionSelector') const cloudProviderEnabled = useFlag('enableFlyCloudProvider') + const { data: membersExceededLimit } = useFreeProjectLimitCheckQuery( { slug }, { enabled: isFreePlan } @@ -258,7 +260,9 @@ const Wizard: NextPageWithLayout = () => { const regionError = smartRegionEnabled ? availableRegionsError : defaultRegionError const defaultRegion = smartRegionEnabled ? availableRegionsData?.recommendations.smartGroup.name - : _defaultRegion + : defaultProvider === 'AWS_NIMBUS' + ? AWS_REGIONS.EAST_US.displayName + : _defaultRegion const { can: isAdmin } = useAsyncCheckPermissions(PermissionAction.CREATE, 'projects') @@ -502,7 +506,7 @@ const Wizard: NextPageWithLayout = () => {

Each project includes a dedicated Postgres instance running on its own server. You are charged for the{' '} - + Compute resource {' '} of that server, independent of your database usage. @@ -751,7 +755,7 @@ const Wizard: NextPageWithLayout = () => {

Compute add-ons

@@ -761,7 +765,7 @@ const Wizard: NextPageWithLayout = () => {

Compute billing

@@ -1026,7 +1030,7 @@ const Wizard: NextPageWithLayout = () => { monthly costs by ${additionalMonthlySpend}, independent of how actively you use it. By clicking "I understand", you agree to the additional costs.{' '} diff --git a/apps/studio/pages/project/[ref]/advisors/performance.tsx b/apps/studio/pages/project/[ref]/advisors/performance.tsx index 3b0e83b7a23..2e830a927cf 100644 --- a/apps/studio/pages/project/[ref]/advisors/performance.tsx +++ b/apps/studio/pages/project/[ref]/advisors/performance.tsx @@ -12,6 +12,7 @@ import DefaultLayout from 'components/layouts/DefaultLayout' import { FormHeader } from 'components/ui/Forms/FormHeader' import { Lint, useProjectLintsQuery } from 'data/lint/lint-query' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' +import { DOCS_URL } from 'lib/constants' import type { NextPageWithLayout } from 'types' import { LoadingLine } from 'ui' @@ -60,7 +61,7 @@ const ProjectLints: NextPageWithLayout = () => { { @@ -49,7 +50,9 @@ const QueryPerformanceReport: NextPageWithLayout = () => { actions={
- +
} diff --git a/apps/studio/pages/project/[ref]/advisors/security.tsx b/apps/studio/pages/project/[ref]/advisors/security.tsx index aaa28234f92..4007964fa3e 100644 --- a/apps/studio/pages/project/[ref]/advisors/security.tsx +++ b/apps/studio/pages/project/[ref]/advisors/security.tsx @@ -12,6 +12,7 @@ import DefaultLayout from 'components/layouts/DefaultLayout' import { FormHeader } from 'components/ui/Forms/FormHeader' import { Lint, useProjectLintsQuery } from 'data/lint/lint-query' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' +import { DOCS_URL } from 'lib/constants' import type { NextPageWithLayout } from 'types' import { LoadingLine } from 'ui' @@ -62,7 +63,7 @@ const ProjectLints: NextPageWithLayout = () => { { @@ -38,9 +39,7 @@ const AuditLogsPage: NextPageWithLayout = () => { ) } -const secondaryActions = [ - , -] +const secondaryActions = [] AuditLogsPage.getLayout = (page) => ( diff --git a/apps/studio/pages/project/[ref]/auth/hooks.tsx b/apps/studio/pages/project/[ref]/auth/hooks.tsx index 023327154fa..b3a04bfb3ba 100644 --- a/apps/studio/pages/project/[ref]/auth/hooks.tsx +++ b/apps/studio/pages/project/[ref]/auth/hooks.tsx @@ -8,6 +8,7 @@ import { ScaffoldContainer, ScaffoldSection } from 'components/layouts/Scaffold' import { DocsButton } from 'components/ui/DocsButton' import NoPermission from 'components/ui/NoPermission' import { useAsyncCheckPermissions } from 'hooks/misc/useCheckPermissions' +import { DOCS_URL } from 'lib/constants' import type { NextPageWithLayout } from 'types' import { GenericSkeletonLoader } from 'ui-patterns' @@ -33,9 +34,7 @@ const Hooks: NextPageWithLayout = () => { ) } -const secondaryActions = [ - , -] +const secondaryActions = [] Hooks.getLayout = (page) => ( diff --git a/apps/studio/pages/project/[ref]/auth/policies.tsx b/apps/studio/pages/project/[ref]/auth/policies.tsx index cc3bd1269d5..d3552118935 100644 --- a/apps/studio/pages/project/[ref]/auth/policies.tsx +++ b/apps/studio/pages/project/[ref]/auth/policies.tsx @@ -24,6 +24,7 @@ import { useAsyncCheckPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import { useUrlState } from 'hooks/ui/useUrlState' import { useIsProtectedSchema } from 'hooks/useProtectedSchemas' +import { DOCS_URL } from 'lib/constants' import type { NextPageWithLayout } from 'types' import { Input } from 'ui-patterns/DataInputs/Input' @@ -240,7 +241,7 @@ AuthPoliciesPage.getLayout = (page) => ( title="Policies" subtitle="Manage Row Level Security policies for your tables" secondaryActions={ - + } size="large" > diff --git a/apps/studio/pages/project/[ref]/auth/rate-limits.tsx b/apps/studio/pages/project/[ref]/auth/rate-limits.tsx index 4b6d186e64d..a58829a8791 100644 --- a/apps/studio/pages/project/[ref]/auth/rate-limits.tsx +++ b/apps/studio/pages/project/[ref]/auth/rate-limits.tsx @@ -12,6 +12,7 @@ import { GenericSkeletonLoader } from 'components/ui/ShimmeringLoader' import { UnknownInterface } from 'components/ui/UnknownInterface' import { useAsyncCheckPermissions } from 'hooks/misc/useCheckPermissions' import { useIsFeatureEnabled } from 'hooks/misc/useIsFeatureEnabled' +import { DOCS_URL } from 'lib/constants' import type { NextPageWithLayout } from 'types' const RateLimitsPage: NextPageWithLayout = () => { @@ -51,7 +52,9 @@ RateLimitsPage.getLayout = (page) => ( title="Rate Limits" subtitle="Safeguard against bursts of incoming traffic to prevent abuse and maximize stability" primaryActions={ - + } > {page} diff --git a/apps/studio/pages/project/[ref]/branches/index.tsx b/apps/studio/pages/project/[ref]/branches/index.tsx index ab2a15e25af..411755feb33 100644 --- a/apps/studio/pages/project/[ref]/branches/index.tsx +++ b/apps/studio/pages/project/[ref]/branches/index.tsx @@ -22,6 +22,7 @@ import { useSendEventMutation } from 'data/telemetry/send-event-mutation' import { useAsyncCheckPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' +import { DOCS_URL } from 'lib/constants' import { useAppStateSnapshot } from 'state/app-state' import type { NextPageWithLayout } from 'types' import { Button } from 'ui' @@ -223,7 +224,7 @@ BranchesPage.getLayout = (page) => { Branching Feedback - +
) diff --git a/apps/studio/pages/project/[ref]/branches/merge-requests.tsx b/apps/studio/pages/project/[ref]/branches/merge-requests.tsx index 536e5f4a21d..a0fa030ca11 100644 --- a/apps/studio/pages/project/[ref]/branches/merge-requests.tsx +++ b/apps/studio/pages/project/[ref]/branches/merge-requests.tsx @@ -27,6 +27,7 @@ import { useSendEventMutation } from 'data/telemetry/send-event-mutation' import { useAsyncCheckPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' +import { DOCS_URL } from 'lib/constants' import type { NextPageWithLayout } from 'types' import { Button, @@ -386,7 +387,7 @@ const MergeRequestsPageWrapper = ({ children }: PropsWithChildren<{}>) => { Branching Feedback - +
) diff --git a/apps/studio/pages/project/[ref]/database/backups/pitr.tsx b/apps/studio/pages/project/[ref]/database/backups/pitr.tsx index 94679b8eeb6..b211f18d665 100644 --- a/apps/studio/pages/project/[ref]/database/backups/pitr.tsx +++ b/apps/studio/pages/project/[ref]/database/backups/pitr.tsx @@ -17,7 +17,7 @@ import { useBackupsQuery } from 'data/database/backups-query' import { useAsyncCheckPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization' import { useIsOrioleDbInAws, useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' -import { PROJECT_STATUS } from 'lib/constants' +import { DOCS_URL, PROJECT_STATUS } from 'lib/constants' import type { NextPageWithLayout } from 'types' import { Alert_Shadcn_, AlertDescription_Shadcn_, AlertTitle_Shadcn_ } from 'ui' import { Admonition } from 'ui-patterns' @@ -73,7 +73,7 @@ const PITR = () => { title="Database backups are not available for OrioleDB" description="OrioleDB is currently in public alpha and projects created are strictly ephemeral with no database backups" > - + ) } diff --git a/apps/studio/pages/project/[ref]/database/backups/restore-to-new-project.tsx b/apps/studio/pages/project/[ref]/database/backups/restore-to-new-project.tsx index 56016f6392c..a95b71e6339 100644 --- a/apps/studio/pages/project/[ref]/database/backups/restore-to-new-project.tsx +++ b/apps/studio/pages/project/[ref]/database/backups/restore-to-new-project.tsx @@ -30,7 +30,7 @@ import { useIsOrioleDb, useSelectedProjectQuery, } from 'hooks/misc/useSelectedProject' -import { PROJECT_STATUS } from 'lib/constants' +import { DOCS_URL, PROJECT_STATUS } from 'lib/constants' import { getDatabaseMajorVersion } from 'lib/helpers' import type { NextPageWithLayout } from 'types' import { Alert_Shadcn_, AlertDescription_Shadcn_, AlertTitle_Shadcn_, Badge, Button } from 'ui' @@ -269,7 +269,7 @@ const RestoreToNewProject = () => { in our docs diff --git a/apps/studio/pages/project/[ref]/database/backups/scheduled.tsx b/apps/studio/pages/project/[ref]/database/backups/scheduled.tsx index b0a3b0c6c80..26662ba7b00 100644 --- a/apps/studio/pages/project/[ref]/database/backups/scheduled.tsx +++ b/apps/studio/pages/project/[ref]/database/backups/scheduled.tsx @@ -16,6 +16,7 @@ import { GenericSkeletonLoader } from 'components/ui/ShimmeringLoader' import { useBackupsQuery } from 'data/database/backups-query' import { useAsyncCheckPermissions } from 'hooks/misc/useCheckPermissions' import { useIsOrioleDbInAws } from 'hooks/misc/useSelectedProject' +import { DOCS_URL } from 'lib/constants' import type { NextPageWithLayout } from 'types' import { Admonition } from 'ui-patterns' @@ -47,7 +48,7 @@ const DatabaseScheduledBackups: NextPageWithLayout = () => { title="Database backups are not available for OrioleDB" description="OrioleDB is currently in public alpha and projects created are strictly ephemeral with no database backups" > - + ) : (
@@ -79,7 +80,7 @@ const DatabaseScheduledBackups: NextPageWithLayout = () => { terms of the granular recovery that can be performed.{' '} Learn more diff --git a/apps/studio/pages/project/[ref]/database/column-privileges.tsx b/apps/studio/pages/project/[ref]/database/column-privileges.tsx index 899e0ba4360..6b39bbab9f2 100644 --- a/apps/studio/pages/project/[ref]/database/column-privileges.tsx +++ b/apps/studio/pages/project/[ref]/database/column-privileges.tsx @@ -31,6 +31,7 @@ import { useLocalStorage } from 'hooks/misc/useLocalStorage' import { useQuerySchemaState } from 'hooks/misc/useSchemaQueryState' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import { useIsProtectedSchema } from 'hooks/useProtectedSchemas' +import { DOCS_URL } from 'lib/constants' import type { NextPageWithLayout } from 'types' import { AlertDescription_Shadcn_, AlertTitle_Shadcn_, Alert_Shadcn_, Button } from 'ui' @@ -227,7 +228,7 @@ const PrivilegesPage: NextPageWithLayout = () => {

Grant or revoke privileges on a column based on user role.

- +
{isEnabled ? ( diff --git a/apps/studio/pages/project/[ref]/database/functions.tsx b/apps/studio/pages/project/[ref]/database/functions.tsx index 1ab76e36bb8..83b5f67490e 100644 --- a/apps/studio/pages/project/[ref]/database/functions.tsx +++ b/apps/studio/pages/project/[ref]/database/functions.tsx @@ -12,6 +12,7 @@ import { FormHeader } from 'components/ui/Forms/FormHeader' import NoPermission from 'components/ui/NoPermission' import { DatabaseFunction } from 'data/database-functions/database-functions-query' import { useAsyncCheckPermissions } from 'hooks/misc/useCheckPermissions' +import { DOCS_URL } from 'lib/constants' import type { NextPageWithLayout } from 'types' const DatabaseFunctionsPage: NextPageWithLayout = () => { @@ -67,7 +68,7 @@ const DatabaseFunctionsPage: NextPageWithLayout = () => {
{ return ( @@ -28,14 +29,14 @@ const IndexesPage: NextPageWithLayout = () => {
- + {!(logDrains?.length === 0) && ( - - ))} - - - {' '} + { + const el = document.getElementById('projectRef-field') + el?.scrollIntoView({ behavior: 'smooth', block: 'center', inline: 'center' }) + setHighlightRef('true') + }} + > + include your project ID + {' '} and as much information as possible.

diff --git a/apps/studio/scripts/download-graphql-schema.mts b/apps/studio/scripts/download-graphql-schema.mts index 668f9a9b9ec..f703fdf728a 100644 --- a/apps/studio/scripts/download-graphql-schema.mts +++ b/apps/studio/scripts/download-graphql-schema.mts @@ -5,8 +5,11 @@ import { fileURLToPath } from 'node:url' const __dirname = path.dirname(fileURLToPath(import.meta.url)) +// Note: This is a build-time script, so we use the fallback URL directly +const DOCS_URL = process.env.NEXT_PUBLIC_DOCS_URL || 'https://supabase.com/docs' + async function downloadGraphQLSchema() { - const schemaEndpoint = 'https://supabase.com/docs/api/graphql' + const schemaEndpoint = `${DOCS_URL}/api/graphql` const outputPath = path.join(__dirname, './schema.graphql') const schemaQuery = stripIndent` @@ -17,7 +20,7 @@ async function downloadGraphQLSchema() { try { const response = await fetch(schemaEndpoint, { - method: 'POST', + method: 'POST', body: JSON.stringify({ query: schemaQuery.trim(), }), diff --git a/apps/ui-library/components/block-item.tsx b/apps/ui-library/components/block-item.tsx index e4618d1c926..4d386f4bed4 100644 --- a/apps/ui-library/components/block-item.tsx +++ b/apps/ui-library/components/block-item.tsx @@ -12,9 +12,11 @@ interface BlockItemProps { } export const BlockItem = ({ name }: BlockItemProps) => { + const framework = name.includes('vue') || name.includes('nuxtjs') ? 'vue' : 'react' + return (
- +
) diff --git a/apps/ui-library/components/command.tsx b/apps/ui-library/components/command.tsx index 752d33bcc6a..ab540984b7c 100644 --- a/apps/ui-library/components/command.tsx +++ b/apps/ui-library/components/command.tsx @@ -8,13 +8,15 @@ import { useLocalStorage } from './use-local-storage' interface CommandCopyProps { name: string highlight?: boolean + // For Vue, we need to use the `shadcn-vue` package instead of `shadcn` + framework?: 'react' | 'vue' } type PackageManager = 'npm' | 'pnpm' | 'yarn' | 'bun' const LOCAL_STORAGE_KEY = 'package-manager-copy-command' -export function Command({ name, highlight }: CommandCopyProps) { +export function Command({ name, highlight, framework = 'react' }: CommandCopyProps) { const [value, setValue] = useLocalStorage(LOCAL_STORAGE_KEY, 'npm') const getBaseUrl = () => { @@ -30,12 +32,27 @@ export function Command({ name, highlight }: CommandCopyProps) { const baseUrl = getBaseUrl() const componentPath = `${process.env.NEXT_PUBLIC_BASE_PATH ?? ''}/r/${name}.json` - const commands: Record = { - npm: `npx shadcn@latest add ${baseUrl}${componentPath}`, - pnpm: `pnpm dlx shadcn@latest add ${baseUrl}${componentPath}`, - yarn: `yarn dlx shadcn@latest add ${baseUrl}${componentPath}`, - bun: `bunx --bun shadcn@latest add ${baseUrl}${componentPath}`, - } + const commands: Record = + framework === 'react' + ? { + npm: `npx shadcn@latest add ${baseUrl}${componentPath}`, + pnpm: `pnpm dlx shadcn@latest add ${baseUrl}${componentPath}`, + yarn: `yarn dlx shadcn@latest add ${baseUrl}${componentPath}`, + bun: `bunx --bun shadcn@latest add ${baseUrl}${componentPath}`, + } + : framework === 'vue' + ? { + npm: `npx shadcn-vue@latest add ${baseUrl}${componentPath}`, + pnpm: `pnpm dlx shadcn-vue@latest add ${baseUrl}${componentPath}`, + yarn: `yarn dlx shadcn-vue@latest add ${baseUrl}${componentPath}`, + bun: `bunx --bun shadcn-vue@latest add ${baseUrl}${componentPath}`, + } + : { + npm: `npx shadcn@latest add ${baseUrl}${componentPath}`, + pnpm: `pnpm dlx shadcn@latest add ${baseUrl}${componentPath}`, + yarn: `yarn dlx shadcn@latest add ${baseUrl}${componentPath}`, + bun: `bunx --bun shadcn@latest add ${baseUrl}${componentPath}`, + } return ( diff --git a/apps/ui-library/config/docs.ts b/apps/ui-library/config/docs.ts index c257d7dacf9..da2017ab269 100644 --- a/apps/ui-library/config/docs.ts +++ b/apps/ui-library/config/docs.ts @@ -54,7 +54,7 @@ export const componentPages: SidebarNavGroup = { items: [ { title: 'Client', - supportedFrameworks: ['nextjs', 'react-router', 'tanstack', 'react'], + supportedFrameworks: ['nextjs', 'react-router', 'tanstack', 'react', 'vue', 'nuxtjs'], href: '/docs/nextjs/client', items: [], commandItemLabel: 'Supabase Client', @@ -141,4 +141,6 @@ export const frameworkTitles: Record = { 'react-router': 'React Router', tanstack: 'TanStack Start', react: 'React SPA', + vue: 'Vue', + nuxtjs: 'Nuxt.js', } diff --git a/apps/ui-library/content/docs/nuxtjs/client.mdx b/apps/ui-library/content/docs/nuxtjs/client.mdx new file mode 100644 index 00000000000..b580c5d836f --- /dev/null +++ b/apps/ui-library/content/docs/nuxtjs/client.mdx @@ -0,0 +1,44 @@ +--- +title: Supabase Client Libraries +description: Supabase client for Nuxt.js +--- + +## Installation + + + +## Folder structure + + + +## Usage + +This block installs a Supabase client for connecting your Nuxt.js project to Supabase. It's designed to fully supports server-side rendering (SSR). + +If you've already set up your Supabase client—either using the `npm create nuxt@latest` template or another method—you can continue using your existing setup. + +### Getting started + +After installing the block, you'll have the following environment variables in your `.env.local` file: + +```env +NUXT_PUBLIC_SUPABASE_URL= +NUXT_PUBLIC_SUPABASE_PUBLISHABLE_OR_ANON_KEY= +``` + +- If you're using supabase.com, you can find these values in the [Connect modal](https://supabase.com/dashboard/project/_?showConnect=true&tab=frameworks&framework=vuejs&using=supabasejs) under App Frameworks or in your project's [API keys](https://supabase.com/dashboard/project/_/settings/api-keys). + +- If you're using a local instance of Supabase, you can find these values by running `supabase start` or `supabase status` (if you already have it running). + +- Nuxt recommends [NuxtSupabase](https://supabase.nuxtjs.org/) module to integrate Nuxt application with Supabase. It’s an alternative to this approach, but both approaches are fine. + + + {' '} + This Supabase client is built for SSR with the Nuxt.js. If you're building a Vue SPA, use the [Vue + SPA client](/ui/docs/vue/client) instead.{' '} + + +## Further reading + +- [Use Supabase with Nuxt](https://supabase.com/docs/guides/getting-started/quickstarts/nuxtjs) +- [Build a User Management App with Nuxt 3](https://supabase.com/docs/guides/getting-started/tutorials/with-nuxt-3) diff --git a/apps/ui-library/content/docs/vue/client.mdx b/apps/ui-library/content/docs/vue/client.mdx new file mode 100644 index 00000000000..89b3e0131c2 --- /dev/null +++ b/apps/ui-library/content/docs/vue/client.mdx @@ -0,0 +1,59 @@ +--- +title: Supabase Client Libraries +description: Supabase client for Vue Single Page Applications +--- + +## Installation + + + +## Folder structure + + + +## Usage + +This block installs a Supabase client for connecting your Vue project to Supabase. It's designed for use in client-side components. + +If you've already set up a Supabase client in your project, you can just continue using that existing setup. + +### Getting started + +After installing the block, you'll have the following environment variables in your `.env.local` file: + +```env +VITE_SUPABASE_URL= +VITE_SUPABASE_PUBLISHABLE_OR_ANON_KEY= +``` + +- If you're using supabase.com, you can find these values in the [Connect modal](https://supabase.com/dashboard/project/_?showConnect=true&tab=frameworks&framework=vuejs&using=supabasejs) under App Frameworks or in your project's [API keys](https://supabase.com/dashboard/project/_/settings/api-keys). + +- If you're using a local instance of Supabase, you can find these values by running `supabase start` or `supabase status` (if you already have it running). + +You can use the client in your Vue component like following: + +```vue + + + +``` + +## Further reading + +- [Generating TypeScript types for your client](https://supabase.com/docs/guides/api/rest/generating-types) +- [Use Supabase with Vue](https://supabase.com/docs/guides/getting-started/quickstarts/vue) diff --git a/apps/ui-library/package.json b/apps/ui-library/package.json index 0ea480022cc..c0e79c9dd34 100644 --- a/apps/ui-library/package.json +++ b/apps/ui-library/package.json @@ -7,7 +7,7 @@ "preinstall": "npx only-allow pnpm", "dev": "next dev --port 3004", "build": "pnpm run content:build && pnpm run build:registry && pnpm run build:llms && next build --turbopack", - "build:registry": "tsx --tsconfig ./tsconfig.scripts.json ./scripts/build-registry.mts && prettier --cache --write registry.json && rimraf -G public/r && shadcn build && tsx scripts/clean-registry.ts", + "build:registry": "tsx --tsconfig ./tsconfig.scripts.json ./scripts/build-registry.mts && prettier --cache --write registry.json && rimraf -G public/r && shadcn build && cp node_modules/@supabase/vue-blocks/public/r/* public/r && tsx scripts/clean-registry.ts", "build:llms": "tsx --tsconfig ./tsconfig.scripts.json ./scripts/build-llms-txt.ts", "start": "next start", "lint": "next lint", @@ -50,6 +50,7 @@ "@supabase/postgrest-js": "*", "@supabase/supa-mdx-lint": "0.2.6-alpha", "@tanstack/react-query": "^5.83.0", + "@supabase/vue-blocks": "workspace:*", "axios": "^1.11.0", "class-variance-authority": "*", "cmdk": "^1.0.0", diff --git a/apps/ui-library/public/llms.txt b/apps/ui-library/public/llms.txt index b7779d597af..15deae095cc 100644 --- a/apps/ui-library/public/llms.txt +++ b/apps/ui-library/public/llms.txt @@ -81,3 +81,7 @@ Library of components for your project. The components integrate with Supabase a - Real-time cursor sharing for collaborative applications - [Social Authentication](https://supabase.com/ui/docs/tanstack/social-auth) - Social authentication block for Tanstack Start +- [Supabase Client Libraries](https://supabase.com/ui/docs/vue/client) + - Supabase client for Vue Single Page Applications +- [Supabase Client Libraries](https://supabase.com/ui/docs/nuxtjs/client) + - Supabase client for Nuxt.js diff --git a/apps/ui-library/public/r/supabase-client-nuxtjs.json b/apps/ui-library/public/r/supabase-client-nuxtjs.json new file mode 100644 index 00000000000..6aa1f242d47 --- /dev/null +++ b/apps/ui-library/public/r/supabase-client-nuxtjs.json @@ -0,0 +1,42 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "supabase-client-nuxtjs", + "type": "registry:lib", + "title": "Supabase Client for Nuxt.js", + "description": "", + "dependencies": [ + "@supabase/ssr@latest", + "@supabase/supabase-js@latest" + ], + "registryDependencies": [], + "files": [ + { + "path": "registry/default/clients/nuxtjs/lib/supabase/client.ts", + "content": "import { createBrowserClient } from '@supabase/ssr'\n\nexport function createClient() {\n return createBrowserClient(\n process.env.NUXT_PUBLIC_SUPABASE_URL!,\n process.env.NUXT_PUBLIC_SUPABASE_PUBLISHABLE_OR_ANON_KEY!\n )\n}\n", + "type": "registry:lib" + }, + { + "path": "registry/default/clients/nuxtjs/server/middleware/is-authenticated.ts", + "content": "import { defineNuxtRouteMiddleware, navigateTo, useRequestEvent } from 'nuxt/app'\nimport { createSupabaseServerClient } from '../supabase/client'\n\nexport default defineNuxtRouteMiddleware(async (to) => {\n const event = useRequestEvent()\n\n // create Supabase SSR client directly here\n const supabase = createSupabaseServerClient(event);\n\n // check current user\n const { data: { user } } = await supabase.auth.getUser()\n\n if (!user && to.path !== '/login') {\n return navigateTo('/login')\n }\n})\n", + "type": "registry:file", + "target": "server/middleware/is-authenticated.ts" + }, + { + "path": "registry/default/clients/nuxtjs/server/api/profile.get.ts", + "content": "import { createError, defineEventHandler } from 'h3';\nimport { createSupabaseServerClient } from '../supabase/client';\n\nexport default defineEventHandler(async (event) => {\n // Create Supabase SSR client\n const supabase = createSupabaseServerClient(event)\n\n // Example: get user session\n const {\n data: { user },\n } = await supabase.auth.getUser();\n\n if (!user) {\n return { error: 'Not authenticated' };\n }\n\n // Fetch profile row\n const { data, error } = await supabase\n .from('profiles')\n .select('*')\n .eq('id', user.id)\n .single();\n\n if (error) {\n throw createError({ statusCode: 500, statusMessage: error.message });\n }\n\n return { profile: data };\n});\n", + "type": "registry:file", + "target": "server/api/profile.get.ts" + }, + { + "path": "registry/default/clients/nuxtjs/server/supabase/client.ts", + "content": "import { createServerClient } from '@supabase/ssr'\nimport { getCookie, setCookie, deleteCookie, H3Event, EventHandlerRequest } from 'h3'\n\nexport const createSupabaseServerClient = (event: H3Event | undefined) => {\n return createServerClient(\n process.env.NUXT_PUBLIC_SUPABASE_URL!,\n process.env.NUXT_PUBLIC_SUPABASE_PUBLISHABLE_OR_ANON_KEY!,\n {\n cookies: {\n get: (key) => getCookie(event!, key),\n set: (key, value, options) => setCookie(event!, key, value, options),\n remove: (key, options) => deleteCookie(event!, key, options),\n },\n }\n )\n}", + "type": "registry:file", + "target": "server/supabase/client.ts" + } + ], + "envVars": { + "NUXT_PUBLIC_SUPABASE_URL": "", + "NUXT_PUBLIC_SUPABASE_PUBLISHABLE_OR_ANON_KEY": "" + }, + "docs": "You'll need to set the following environment variables in your project: `NUXT_PUBLIC_SUPABASE_URL` and `NUXT_PUBLIC_SUPABASE_PUBLISHABLE_OR_ANON_KEY`." +} \ No newline at end of file diff --git a/apps/ui-library/public/r/supabase-client-vue.json b/apps/ui-library/public/r/supabase-client-vue.json new file mode 100644 index 00000000000..18c9f129fa2 --- /dev/null +++ b/apps/ui-library/public/r/supabase-client-vue.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "supabase-client-vue", + "type": "registry:lib", + "title": "Supabase Client for Vue", + "description": "", + "dependencies": [ + "@supabase/supabase-js@latest" + ], + "registryDependencies": [], + "files": [ + { + "path": "registry/default/clients/vue/lib/supabase/client.ts", + "content": "/// \nimport { createClient as createSupabaseClient } from '@supabase/supabase-js'\n\nexport function createClient() {\n return createSupabaseClient(\n import.meta.env.VITE_SUPABASE_URL!,\n import.meta.env.VITE_SUPABASE_PUBLISHABLE_OR_ANON_KEY!\n )\n}\n", + "type": "registry:lib" + } + ], + "envVars": { + "VITE_SUPABASE_URL": "", + "VITE_SUPABASE_PUBLISHABLE_OR_ANON_KEY": "" + }, + "docs": "You'll need to set the following environment variables in your project: `VITE_SUPABASE_URL` and `VITE_SUPABASE_PUBLISHABLE_OR_ANON_KEY`." +} \ No newline at end of file diff --git a/apps/ui-library/registry/default/platform/platform-kit-nextjs/components/supabase-manager/logs.tsx b/apps/ui-library/registry/default/platform/platform-kit-nextjs/components/supabase-manager/logs.tsx index ae7e0cc89e2..afefc2e5048 100644 --- a/apps/ui-library/registry/default/platform/platform-kit-nextjs/components/supabase-manager/logs.tsx +++ b/apps/ui-library/registry/default/platform/platform-kit-nextjs/components/supabase-manager/logs.tsx @@ -36,7 +36,7 @@ const logTypes = [ { value: LogsTableName.FN_EDGE, label: 'Function Edge Logs', - description: 'Edge function execution logs with request/response data', + description: 'Edge function execution logs with request and response metadata', }, { value: LogsTableName.AUTH, @@ -66,7 +66,7 @@ const logTypes = [ { value: LogsTableName.EDGE, label: 'Edge Logs', - description: 'HTTP requests and responses from Edge Functions', + description: 'HTTP requests and responses from the data API', }, { @@ -89,11 +89,6 @@ const logTypes = [ label: 'PgBouncer Logs', description: 'Legacy connection pooling logs', }, - { - value: LogsTableName.WAREHOUSE, - label: 'Warehouse Logs', - description: 'Data warehouse operations and analytics', - }, { value: LogsTableName.PG_UPGRADE, label: 'PostgreSQL Upgrade Logs', diff --git a/apps/ui-library/registry/default/platform/platform-kit-nextjs/lib/logs.ts b/apps/ui-library/registry/default/platform/platform-kit-nextjs/lib/logs.ts index 2ebf5e5a06b..5535ca07ff9 100644 --- a/apps/ui-library/registry/default/platform/platform-kit-nextjs/lib/logs.ts +++ b/apps/ui-library/registry/default/platform/platform-kit-nextjs/lib/logs.ts @@ -10,7 +10,6 @@ export enum LogsTableName { POSTGREST = 'postgrest_logs', SUPAVISOR = 'supavisor_logs', PGBOUNCER = 'pgbouncer_logs', - WAREHOUSE = 'warehouse_logs', PG_UPGRADE = 'pg_upgrade_logs', } diff --git a/apps/ui-library/types/nav.ts b/apps/ui-library/types/nav.ts index e866ae4b067..65845b2ca80 100644 --- a/apps/ui-library/types/nav.ts +++ b/apps/ui-library/types/nav.ts @@ -1,4 +1,4 @@ -type supportedFrameworks = 'nextjs' | 'react-router' | 'tanstack' | 'react' +type supportedFrameworks = 'nextjs' | 'react-router' | 'tanstack' | 'react' | 'vue' | 'nuxtjs' export interface NavItem { title: string href?: string diff --git a/apps/www/lib/rewrites.js b/apps/www/lib/rewrites.js index 6187f334617..a4e58dea85c 100644 --- a/apps/www/lib/rewrites.js +++ b/apps/www/lib/rewrites.js @@ -1,4 +1,4 @@ -module.exports = [ +const rewrites = [ { source: '/:path*', destination: `/:path*`, @@ -11,21 +11,16 @@ module.exports = [ source: '/dashboard/:path*', destination: `${process.env.NEXT_PUBLIC_STUDIO_URL}/:path*`, }, - { - source: '/docs', - destination: `${process.env.NEXT_PUBLIC_DOCS_URL}`, - }, - { - // redirect /docs/ - // trailing slash caused by docusaurus issue with multizone - source: '/docs/', - destination: `${process.env.NEXT_PUBLIC_DOCS_URL}`, - }, - { - source: '/docs/:path*', - destination: `${process.env.NEXT_PUBLIC_DOCS_URL}/:path*`, - }, - + ...(process.env.NEXT_PUBLIC_VERCEL_ENV === 'production' + ? [ + { source: '/docs', destination: `${process.env.NEXT_PUBLIC_DOCS_URL}` }, + { + source: '/docs/', + destination: `${process.env.NEXT_PUBLIC_DOCS_URL}`, + }, + { source: '/docs/:path*', destination: `${process.env.NEXT_PUBLIC_DOCS_URL}/:path*` }, + ] + : []), { source: '/ui', destination: `${process.env.NEXT_PUBLIC_UI_LIBRARY_URL}`, @@ -70,8 +65,7 @@ module.exports = [ source: '/llms/:path(.*\\.txt$)', destination: `${process.env.NEXT_PUBLIC_DOCS_URL}/llms/:path`, }, - { - source: '/feed.xml', - destination: `/rss.xml`, - }, + { source: '/feed.xml', destination: `/rss.xml` }, ] + +module.exports = rewrites diff --git a/blocks/vue/.gitignore b/blocks/vue/.gitignore new file mode 100644 index 00000000000..57c2e5aba20 --- /dev/null +++ b/blocks/vue/.gitignore @@ -0,0 +1,38 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js +.yarn/install-state.gz + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts + +.contentlayer \ No newline at end of file diff --git a/blocks/vue/__registry__/index.tsx b/blocks/vue/__registry__/index.tsx new file mode 100644 index 00000000000..06dc12b2921 --- /dev/null +++ b/blocks/vue/__registry__/index.tsx @@ -0,0 +1,33 @@ + +// @ts-nocheck +// This file is autogenerated by scripts/build-registry.ts +// Do not edit this file directly. +import * as React from "react" + +export const Index: Record = { + "default": { + + "supabase-client-nuxtjs": { + name: "supabase-client-nuxtjs", + type: "registry:lib", + registryDependencies: [], + source: "", + files: ["registry/default/clients/nuxtjs/lib/supabase/client.ts","registry/default/clients/nuxtjs/lib/supabase/middleware.ts","registry/default/clients/nuxtjs/lib/supabase/server.ts"], + category: "undefined", + subcategory: "undefined", + chunks: [] + } + , + "supabase-client-vue": { + name: "supabase-client-vue", + type: "registry:lib", + registryDependencies: [], + source: "", + files: ["registry/default/clients/vue/lib/supabase/client.ts"], + category: "undefined", + subcategory: "undefined", + chunks: [] + } + + }, +} diff --git a/blocks/vue/components.json b/blocks/vue/components.json new file mode 100644 index 00000000000..80d94f1fc9c --- /dev/null +++ b/blocks/vue/components.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "new-york", + "rsc": true, + "tsx": true, + "tailwind": { + "config": "tailwind.config.js", + "css": "app/globals.css", + "baseColor": "gray", + "cssVariables": true, + "prefix": "" + }, + "aliases": { + "components": "@/registry/default/components", + "utils": "@/lib/utils", + "ui": "@/registry/default/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" + }, + "iconLibrary": "lucide" +} diff --git a/blocks/vue/lib/process-registry.ts b/blocks/vue/lib/process-registry.ts new file mode 100644 index 00000000000..3d8bd3d04bf --- /dev/null +++ b/blocks/vue/lib/process-registry.ts @@ -0,0 +1,86 @@ +import * as fs from 'fs' + +export interface RegistryNode { + name: string + path: string + originalPath: string + type: 'directory' | 'file' + children?: RegistryNode[] + content?: string +} + +interface RegistryFile { + path: string + target?: string + type: string + content: string +} + +const DEFAULT_PATHS = { + component: '/components', + hook: '/hooks', + util: '/lib', +} as const + +/** + * Converts a flat registry array into a hierarchical file tree structure + */ +export function generateRegistryTree(registryPath: string): RegistryNode[] { + const registry = JSON.parse(fs.readFileSync(registryPath, 'utf-8')) as { files: RegistryFile[] } + const tree: RegistryNode[] = [] + + const sortedRegistry = [...registry.files].sort((a, b) => a.path.localeCompare(b.path)) + + for (const file of sortedRegistry) { + const itemPath = file.target || getDefaultPath(file) + const pathParts = itemPath.split('/').filter(Boolean) + let currentLevel = tree + + for (let i = 0; i < pathParts.length; i++) { + const part = pathParts[i] + const isLast = i === pathParts.length - 1 + const path = '/' + pathParts.slice(0, i + 1).join('/') + + let node = currentLevel.find((n) => n.name === part) + + // Remove any paths in the file content that point to the block directory. + const content = file.content + .replaceAll(/@\/registry\/default\/blocks\/.+?\//gi, '@/') + .replaceAll(/@\/registry\/default\/fixtures\//gi, '@/') + .replaceAll(/@\/registry\/default\//gi, '@/') + .replaceAll(/@\/clients\/.+?\//gi, '@/') + + if (!node) { + node = { + name: part, + path, + originalPath: file.path, + type: isLast ? 'file' : 'directory', + ...(isLast ? { content } : { children: [] }), + } + currentLevel.push(node) + } + + if (!isLast) { + node.children = node.children || [] + currentLevel = node.children + } + } + } + + return tree +} + +/** + * Determines the default path for an item based on its type + */ +function getDefaultPath(item: RegistryFile): string { + const type = item.type.toLowerCase() || '' + const basePath = DEFAULT_PATHS[type as keyof typeof DEFAULT_PATHS] || '' + // clean all paths that start with paths specific to this repo organization + const filePath = item.path + .replace(/registry\/default\/blocks\/.+?\//, '') + .replace(/registry\/default\/clients\/.+?\//, '') + + return `${basePath}/${filePath}` +} diff --git a/blocks/vue/package.json b/blocks/vue/package.json new file mode 100644 index 00000000000..31d14500184 --- /dev/null +++ b/blocks/vue/package.json @@ -0,0 +1,23 @@ +{ + "name": "@supabase/vue-blocks", + "version": "0.1.0", + "private": true, + "type": "module", + "scripts": { + "preinstall": "npx only-allow pnpm", + "build": "prettier --cache --write registry.json && rimraf -G public/r && shadcn build && tsx scripts/clean-registry.ts", + "clean": "rimraf node_modules .next .turbo", + "typecheck": "tsc --noEmit -p tsconfig.json" + }, + "dependencies": { + "h3": "^1.15.4", + "nuxt": "^4.0.3", + "@supabase/ssr": "^0.6.1", + "@supabase/supabase-js": "^2.49.1" + }, + "devDependencies": { + "shadcn": "^2.10.0", + "tsconfig": "workspace:*", + "vite": "catalog:" + } +} diff --git a/blocks/vue/public/r/supabase-client-nuxtjs.json b/blocks/vue/public/r/supabase-client-nuxtjs.json new file mode 100644 index 00000000000..6aa1f242d47 --- /dev/null +++ b/blocks/vue/public/r/supabase-client-nuxtjs.json @@ -0,0 +1,42 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "supabase-client-nuxtjs", + "type": "registry:lib", + "title": "Supabase Client for Nuxt.js", + "description": "", + "dependencies": [ + "@supabase/ssr@latest", + "@supabase/supabase-js@latest" + ], + "registryDependencies": [], + "files": [ + { + "path": "registry/default/clients/nuxtjs/lib/supabase/client.ts", + "content": "import { createBrowserClient } from '@supabase/ssr'\n\nexport function createClient() {\n return createBrowserClient(\n process.env.NUXT_PUBLIC_SUPABASE_URL!,\n process.env.NUXT_PUBLIC_SUPABASE_PUBLISHABLE_OR_ANON_KEY!\n )\n}\n", + "type": "registry:lib" + }, + { + "path": "registry/default/clients/nuxtjs/server/middleware/is-authenticated.ts", + "content": "import { defineNuxtRouteMiddleware, navigateTo, useRequestEvent } from 'nuxt/app'\nimport { createSupabaseServerClient } from '../supabase/client'\n\nexport default defineNuxtRouteMiddleware(async (to) => {\n const event = useRequestEvent()\n\n // create Supabase SSR client directly here\n const supabase = createSupabaseServerClient(event);\n\n // check current user\n const { data: { user } } = await supabase.auth.getUser()\n\n if (!user && to.path !== '/login') {\n return navigateTo('/login')\n }\n})\n", + "type": "registry:file", + "target": "server/middleware/is-authenticated.ts" + }, + { + "path": "registry/default/clients/nuxtjs/server/api/profile.get.ts", + "content": "import { createError, defineEventHandler } from 'h3';\nimport { createSupabaseServerClient } from '../supabase/client';\n\nexport default defineEventHandler(async (event) => {\n // Create Supabase SSR client\n const supabase = createSupabaseServerClient(event)\n\n // Example: get user session\n const {\n data: { user },\n } = await supabase.auth.getUser();\n\n if (!user) {\n return { error: 'Not authenticated' };\n }\n\n // Fetch profile row\n const { data, error } = await supabase\n .from('profiles')\n .select('*')\n .eq('id', user.id)\n .single();\n\n if (error) {\n throw createError({ statusCode: 500, statusMessage: error.message });\n }\n\n return { profile: data };\n});\n", + "type": "registry:file", + "target": "server/api/profile.get.ts" + }, + { + "path": "registry/default/clients/nuxtjs/server/supabase/client.ts", + "content": "import { createServerClient } from '@supabase/ssr'\nimport { getCookie, setCookie, deleteCookie, H3Event, EventHandlerRequest } from 'h3'\n\nexport const createSupabaseServerClient = (event: H3Event | undefined) => {\n return createServerClient(\n process.env.NUXT_PUBLIC_SUPABASE_URL!,\n process.env.NUXT_PUBLIC_SUPABASE_PUBLISHABLE_OR_ANON_KEY!,\n {\n cookies: {\n get: (key) => getCookie(event!, key),\n set: (key, value, options) => setCookie(event!, key, value, options),\n remove: (key, options) => deleteCookie(event!, key, options),\n },\n }\n )\n}", + "type": "registry:file", + "target": "server/supabase/client.ts" + } + ], + "envVars": { + "NUXT_PUBLIC_SUPABASE_URL": "", + "NUXT_PUBLIC_SUPABASE_PUBLISHABLE_OR_ANON_KEY": "" + }, + "docs": "You'll need to set the following environment variables in your project: `NUXT_PUBLIC_SUPABASE_URL` and `NUXT_PUBLIC_SUPABASE_PUBLISHABLE_OR_ANON_KEY`." +} \ No newline at end of file diff --git a/blocks/vue/public/r/supabase-client-vue.json b/blocks/vue/public/r/supabase-client-vue.json new file mode 100644 index 00000000000..18c9f129fa2 --- /dev/null +++ b/blocks/vue/public/r/supabase-client-vue.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "supabase-client-vue", + "type": "registry:lib", + "title": "Supabase Client for Vue", + "description": "", + "dependencies": [ + "@supabase/supabase-js@latest" + ], + "registryDependencies": [], + "files": [ + { + "path": "registry/default/clients/vue/lib/supabase/client.ts", + "content": "/// \nimport { createClient as createSupabaseClient } from '@supabase/supabase-js'\n\nexport function createClient() {\n return createSupabaseClient(\n import.meta.env.VITE_SUPABASE_URL!,\n import.meta.env.VITE_SUPABASE_PUBLISHABLE_OR_ANON_KEY!\n )\n}\n", + "type": "registry:lib" + } + ], + "envVars": { + "VITE_SUPABASE_URL": "", + "VITE_SUPABASE_PUBLISHABLE_OR_ANON_KEY": "" + }, + "docs": "You'll need to set the following environment variables in your project: `VITE_SUPABASE_URL` and `VITE_SUPABASE_PUBLISHABLE_OR_ANON_KEY`." +} \ No newline at end of file diff --git a/blocks/vue/registry.json b/blocks/vue/registry.json new file mode 100644 index 00000000000..72133a53e50 --- /dev/null +++ b/blocks/vue/registry.json @@ -0,0 +1,62 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry.json", + "name": "Supabase UI Library", + "homepage": "https://supabase.com/ui", + "items": [ + { + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "supabase-client-nuxtjs", + "type": "registry:lib", + "title": "Supabase Client for Nuxt.js", + "description": "", + "registryDependencies": [], + "dependencies": ["@supabase/ssr@latest", "@supabase/supabase-js@latest"], + "docs": "You'll need to set the following environment variables in your project: `NUXT_PUBLIC_SUPABASE_URL` and `NUXT_PUBLIC_SUPABASE_PUBLISHABLE_OR_ANON_KEY`.", + "envVars": { + "NUXT_PUBLIC_SUPABASE_URL": "", + "NUXT_PUBLIC_SUPABASE_PUBLISHABLE_OR_ANON_KEY": "" + }, + "files": [ + { + "path": "registry/default/clients/nuxtjs/lib/supabase/client.ts", + "type": "registry:lib" + }, + { + "path": "registry/default/clients/nuxtjs/server/middleware/is-authenticated.ts", + "type": "registry:file", + "target": "server/middleware/is-authenticated.ts" + }, + { + "path": "registry/default/clients/nuxtjs/server/api/profile.get.ts", + "type": "registry:file", + "target": "server/api/profile.get.ts" + }, + { + "path": "registry/default/clients/nuxtjs/server/supabase/client.ts", + "type": "registry:file", + "target": "server/supabase/client.ts" + } + ] + }, + { + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "supabase-client-vue", + "type": "registry:lib", + "title": "Supabase Client for Vue", + "description": "", + "registryDependencies": [], + "dependencies": ["@supabase/supabase-js@latest"], + "docs": "You'll need to set the following environment variables in your project: `VITE_SUPABASE_URL` and `VITE_SUPABASE_PUBLISHABLE_OR_ANON_KEY`.", + "envVars": { + "VITE_SUPABASE_URL": "", + "VITE_SUPABASE_PUBLISHABLE_OR_ANON_KEY": "" + }, + "files": [ + { + "path": "registry/default/clients/vue/lib/supabase/client.ts", + "type": "registry:lib" + } + ] + } + ] +} diff --git a/blocks/vue/registry/clients.ts b/blocks/vue/registry/clients.ts new file mode 100644 index 00000000000..aa8ec2a6337 --- /dev/null +++ b/blocks/vue/registry/clients.ts @@ -0,0 +1,5 @@ +import { type Registry } from 'shadcn/registry' +import nuxtjs from './default/clients/nuxtjs/registry-item.json' with { type: 'json' } +import vue from './default/clients/vue/registry-item.json' with { type: 'json' } + +export const clients = [nuxtjs, vue] as Registry['items'] diff --git a/blocks/vue/registry/default/clients/nuxtjs/lib/supabase/client.ts b/blocks/vue/registry/default/clients/nuxtjs/lib/supabase/client.ts new file mode 100644 index 00000000000..727df157302 --- /dev/null +++ b/blocks/vue/registry/default/clients/nuxtjs/lib/supabase/client.ts @@ -0,0 +1,8 @@ +import { createBrowserClient } from '@supabase/ssr' + +export function createClient() { + return createBrowserClient( + process.env.NUXT_PUBLIC_SUPABASE_URL!, + process.env.NUXT_PUBLIC_SUPABASE_PUBLISHABLE_OR_ANON_KEY! + ) +} diff --git a/blocks/vue/registry/default/clients/nuxtjs/registry-item.json b/blocks/vue/registry/default/clients/nuxtjs/registry-item.json new file mode 100644 index 00000000000..7a12eb7cf38 --- /dev/null +++ b/blocks/vue/registry/default/clients/nuxtjs/registry-item.json @@ -0,0 +1,35 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "supabase-client-nuxtjs", + "type": "registry:lib", + "title": "Supabase Client for Nuxt.js", + "description": "", + "registryDependencies": [], + "dependencies": ["@supabase/ssr@latest", "@supabase/supabase-js@latest"], + "docs": "You'll need to set the following environment variables in your project: `NUXT_PUBLIC_SUPABASE_URL` and `NUXT_PUBLIC_SUPABASE_PUBLISHABLE_OR_ANON_KEY`.", + "envVars": { + "NUXT_PUBLIC_SUPABASE_URL": "", + "NUXT_PUBLIC_SUPABASE_PUBLISHABLE_OR_ANON_KEY": "" + }, + "files": [ + { + "path": "registry/default/clients/nuxtjs/lib/supabase/client.ts", + "type": "registry:lib" + }, + { + "path": "registry/default/clients/nuxtjs/server/middleware/is-authenticated.ts", + "type": "registry:file", + "target": "server/middleware/is-authenticated.ts" + }, + { + "path": "registry/default/clients/nuxtjs/server/api/profile.get.ts", + "type": "registry:file", + "target": "server/api/profile.get.ts" + }, + { + "path": "registry/default/clients/nuxtjs/server/supabase/client.ts", + "type": "registry:file", + "target": "server/supabase/client.ts" + } + ] +} diff --git a/blocks/vue/registry/default/clients/nuxtjs/server/api/profile.get.ts b/blocks/vue/registry/default/clients/nuxtjs/server/api/profile.get.ts new file mode 100644 index 00000000000..bddd10a7d3e --- /dev/null +++ b/blocks/vue/registry/default/clients/nuxtjs/server/api/profile.get.ts @@ -0,0 +1,29 @@ +import { createError, defineEventHandler } from 'h3'; +import { createSupabaseServerClient } from '../supabase/client'; + +export default defineEventHandler(async (event) => { + // Create Supabase SSR client + const supabase = createSupabaseServerClient(event) + + // Example: get user session + const { + data: { user }, + } = await supabase.auth.getUser(); + + if (!user) { + return { error: 'Not authenticated' }; + } + + // Fetch profile row + const { data, error } = await supabase + .from('profiles') + .select('*') + .eq('id', user.id) + .single(); + + if (error) { + throw createError({ statusCode: 500, statusMessage: error.message }); + } + + return { profile: data }; +}); diff --git a/blocks/vue/registry/default/clients/nuxtjs/server/middleware/is-authenticated.ts b/blocks/vue/registry/default/clients/nuxtjs/server/middleware/is-authenticated.ts new file mode 100644 index 00000000000..f95070dd6ce --- /dev/null +++ b/blocks/vue/registry/default/clients/nuxtjs/server/middleware/is-authenticated.ts @@ -0,0 +1,16 @@ +import { defineNuxtRouteMiddleware, navigateTo, useRequestEvent } from 'nuxt/app' +import { createSupabaseServerClient } from '../supabase/client' + +export default defineNuxtRouteMiddleware(async (to) => { + const event = useRequestEvent() + + // create Supabase SSR client directly here + const supabase = createSupabaseServerClient(event); + + // check current user + const { data: { user } } = await supabase.auth.getUser() + + if (!user && to.path !== '/login') { + return navigateTo('/login') + } +}) diff --git a/blocks/vue/registry/default/clients/nuxtjs/server/supabase/client.ts b/blocks/vue/registry/default/clients/nuxtjs/server/supabase/client.ts new file mode 100644 index 00000000000..abbffcc2d1e --- /dev/null +++ b/blocks/vue/registry/default/clients/nuxtjs/server/supabase/client.ts @@ -0,0 +1,16 @@ +import { createServerClient } from '@supabase/ssr' +import { getCookie, setCookie, deleteCookie, H3Event, EventHandlerRequest } from 'h3' + +export const createSupabaseServerClient = (event: H3Event | undefined) => { + return createServerClient( + process.env.NUXT_PUBLIC_SUPABASE_URL!, + process.env.NUXT_PUBLIC_SUPABASE_PUBLISHABLE_OR_ANON_KEY!, + { + cookies: { + get: (key) => getCookie(event!, key), + set: (key, value, options) => setCookie(event!, key, value, options), + remove: (key, options) => deleteCookie(event!, key, options), + }, + } + ) +} \ No newline at end of file diff --git a/blocks/vue/registry/default/clients/vue/lib/supabase/client.ts b/blocks/vue/registry/default/clients/vue/lib/supabase/client.ts new file mode 100644 index 00000000000..cd4773bfcad --- /dev/null +++ b/blocks/vue/registry/default/clients/vue/lib/supabase/client.ts @@ -0,0 +1,9 @@ +/// +import { createClient as createSupabaseClient } from '@supabase/supabase-js' + +export function createClient() { + return createSupabaseClient( + import.meta.env.VITE_SUPABASE_URL!, + import.meta.env.VITE_SUPABASE_PUBLISHABLE_OR_ANON_KEY! + ) +} diff --git a/blocks/vue/registry/default/clients/vue/registry-item.json b/blocks/vue/registry/default/clients/vue/registry-item.json new file mode 100644 index 00000000000..438879c0a04 --- /dev/null +++ b/blocks/vue/registry/default/clients/vue/registry-item.json @@ -0,0 +1,20 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "supabase-client-vue", + "type": "registry:lib", + "title": "Supabase Client for Vue", + "description": "", + "registryDependencies": [], + "dependencies": ["@supabase/supabase-js@latest"], + "docs": "You'll need to set the following environment variables in your project: `VITE_SUPABASE_URL` and `VITE_SUPABASE_PUBLISHABLE_OR_ANON_KEY`.", + "envVars": { + "VITE_SUPABASE_URL": "", + "VITE_SUPABASE_PUBLISHABLE_OR_ANON_KEY": "" + }, + "files": [ + { + "path": "registry/default/clients/vue/lib/supabase/client.ts", + "type": "registry:lib" + } + ] +} diff --git a/blocks/vue/registry/index.ts b/blocks/vue/registry/index.ts new file mode 100644 index 00000000000..9fbd60b0c50 --- /dev/null +++ b/blocks/vue/registry/index.ts @@ -0,0 +1,9 @@ +import { type Registry } from 'shadcn/registry' + +import { clients } from './clients' + +export const registry = { + name: 'Supabase UI Library', + homepage: 'https://supabase.com/ui', + items: [...clients], +} satisfies Registry diff --git a/blocks/vue/scripts/clean-registry.ts b/blocks/vue/scripts/clean-registry.ts new file mode 100644 index 00000000000..57efd766a41 --- /dev/null +++ b/blocks/vue/scripts/clean-registry.ts @@ -0,0 +1,55 @@ +import * as fs from 'fs' +import * as path from 'path' + +function processJsonFile(filePath: string) { + try { + // Read the file + const content = fs.readFileSync(filePath, 'utf8') + const json = JSON.parse(content) + + // Convert to string to do replacement + let stringified = JSON.stringify(json, null, 2) + + // Perform the replacement + stringified = stringified + .replace(/\/ui\/example\/password-based-auth/g, '') + .replace(/\/example\/password-based-auth/g, '') + .replaceAll( + "import { Link } from '@/registry/default/components/ui/link'", + "import Link from 'next/link'" + ) + + // Write back to file + fs.writeFileSync(filePath, stringified) + console.log(`✓ Updated ${filePath}`) + } catch (error) { + console.error(`Error processing ${filePath}:`, error) + } +} + +function processDirectory(directoryPath: string) { + const files = fs.readdirSync(directoryPath) + + files.forEach((file) => { + const fullPath = path.join(directoryPath, file) + const stat = fs.statSync(fullPath) + + if (stat.isDirectory()) { + processDirectory(fullPath) + } else if (path.extname(file) === '.json') { + processJsonFile(fullPath) + } + }) +} + +// Start processing from the specified directory +const targetDir = path.join(process.cwd(), 'public/r') + +if (!fs.existsSync(targetDir)) { + console.error('Target directory does not exist:', targetDir) + process.exit(1) +} + +console.log('Starting JSON file processing...') +processDirectory(targetDir) +console.log('Processing complete!') diff --git a/blocks/vue/tsconfig.base.json b/blocks/vue/tsconfig.base.json new file mode 100644 index 00000000000..d72a9f3a278 --- /dev/null +++ b/blocks/vue/tsconfig.base.json @@ -0,0 +1,20 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "display": "Default", + "compilerOptions": { + "composite": false, + "declaration": true, + "declarationMap": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "inlineSources": false, + "isolatedModules": true, + "moduleResolution": "node", + "noUnusedLocals": false, + "noUnusedParameters": false, + "preserveWatchOutput": true, + "skipLibCheck": true, + "strict": true + }, + "exclude": ["node_modules"] +} diff --git a/blocks/vue/tsconfig.json b/blocks/vue/tsconfig.json new file mode 100644 index 00000000000..e4e203e6a02 --- /dev/null +++ b/blocks/vue/tsconfig.json @@ -0,0 +1,31 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "tsconfig/base.json", + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "incremental": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "baseUrl": ".", + "paths": { + "@/*": ["./*"] + }, + "plugins": [ + { + "name": "next" + } + ] + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules", "./scripts/build-registry.mts"] +} diff --git a/blocks/vue/tsconfig.scripts.json b/blocks/vue/tsconfig.scripts.json new file mode 100644 index 00000000000..7d81d8fcb5f --- /dev/null +++ b/blocks/vue/tsconfig.scripts.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "./tsconfig.json", + "compilerOptions": { + "target": "es6", + "module": "ESNext", + "moduleResolution": "node", + "esModuleInterop": true, + "isolatedModules": false + }, + "include": [".contentlayer/generated", "scripts/**/*.ts"], + "exclude": ["node_modules"] +} diff --git a/packages/api-types/types/api.d.ts b/packages/api-types/types/api.d.ts index cd450364c17..3db1c4b63b7 100644 --- a/packages/api-types/types/api.d.ts +++ b/packages/api-types/types/api.d.ts @@ -475,14 +475,20 @@ export interface paths { path?: never cookie?: never } - /** Lists project addons */ + /** + * List billing addons and compute instance selections + * @description Returns the billing addons that are currently applied, including the active compute instance size, and lists every addon option that can be provisioned with pricing metadata. + */ get: operations['v1-list-project-addons'] put?: never post?: never delete?: never options?: never head?: never - /** Applies project addon */ + /** + * Apply or update billing addons, including compute instance size + * @description Selects an addon variant, for example scaling the project’s compute instance up or down, and applies it to the project. + */ patch: operations['v1-apply-project-addon'] trace?: never } @@ -496,7 +502,10 @@ export interface paths { get?: never put?: never post?: never - /** Removes project addon */ + /** + * Remove billing addons or revert compute instance sizing + * @description Disables the selected addon variant, including rolling the compute instance back to its previous size. + */ delete: operations['v1-remove-project-addon'] options?: never head?: never @@ -2190,39 +2199,75 @@ export interface components { algorithm: 'EdDSA' | 'ES256' | 'RS256' | 'HS256' private_jwk?: | { + /** @enum {string} */ + alg?: 'RS256' d: string dp: string dq: string /** @enum {string} */ e: 'AQAB' + /** @enum {boolean} */ + ext?: true + key_ops?: ('sign' | 'verify')[] + /** Format: uuid */ + kid?: string /** @enum {string} */ kty: 'RSA' n: string p: string q: string qi: string + /** @enum {string} */ + use?: 'sig' } | { + /** @enum {string} */ + alg?: 'ES256' /** @enum {string} */ crv: 'P-256' d: string + /** @enum {boolean} */ + ext?: true + key_ops?: ('sign' | 'verify')[] + /** Format: uuid */ + kid?: string /** @enum {string} */ kty: 'EC' + /** @enum {string} */ + use?: 'sig' x: string y: string } | { + /** @enum {string} */ + alg?: 'EdDSA' /** @enum {string} */ crv: 'Ed25519' d: string + /** @enum {boolean} */ + ext?: true + key_ops?: ('sign' | 'verify')[] + /** Format: uuid */ + kid?: string /** @enum {string} */ kty: 'OKP' + /** @enum {string} */ + use?: 'sig' x: string } | { + /** @enum {string} */ + alg?: 'HS256' + /** @enum {boolean} */ + ext?: true k: string + key_ops?: ('sign' | 'verify')[] + /** Format: uuid */ + kid?: string /** @enum {string} */ kty: 'oct' + /** @enum {string} */ + use?: 'sig' } /** @enum {string} */ status?: 'in_use' | 'standby' @@ -2699,7 +2744,7 @@ export interface components { * @description Resource indicator for MCP (Model Context Protocol) clients * @enum {string} */ - resource?: 'http://localhost:8080/mcp' + resource?: 'http://localhost:8080/mcp' | 'http://localhost:8080/mcp' } OAuthTokenResponse: { access_token: string @@ -2900,6 +2945,7 @@ export interface components { cursor?: string data: { description: string | null + favorite: boolean id: string inserted_at: string name: string @@ -2924,11 +2970,16 @@ export interface components { } SnippetResponse: { content: { - favorite: boolean + /** + * @deprecated + * @description Deprecated: Rely on root-level favorite property instead. + */ + favorite?: boolean schema_version: string sql: string } description: string | null + favorite: boolean id: string inserted_at: string name: string @@ -4052,7 +4103,7 @@ export interface operations { organization_slug?: string redirect_uri: string /** @description Resource indicator for MCP (Model Context Protocol) clients */ - resource?: 'http://localhost:8080/mcp' + resource?: 'http://localhost:8080/mcp' | 'http://localhost:8080/mcp' response_mode?: string response_type: 'code' | 'token' | 'id_token token' scope?: string @@ -4219,12 +4270,27 @@ export interface operations { 'application/json': components['schemas']['V1OrganizationSlugResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-list-organization-members': { @@ -4247,12 +4313,27 @@ export interface operations { 'application/json': components['schemas']['V1OrganizationMemberResponse'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-get-organization-project-claim': { @@ -4276,12 +4357,27 @@ export interface operations { 'application/json': components['schemas']['OrganizationProjectClaimResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-claim-project-for-organization': { @@ -4303,12 +4399,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-list-all-projects': { @@ -4373,12 +4484,27 @@ export interface operations { 'application/json': components['schemas']['V1ProjectWithDatabaseResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve project */ 500: { headers: { @@ -4408,12 +4534,27 @@ export interface operations { 'application/json': components['schemas']['V1ProjectRefResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-get-performance-advisors': { @@ -4436,12 +4577,27 @@ export interface operations { 'application/json': components['schemas']['V1ProjectAdvisorsResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-get-security-advisors': { @@ -4466,12 +4622,27 @@ export interface operations { 'application/json': components['schemas']['V1ProjectAdvisorsResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-get-project-function-combined-stats': { @@ -4497,12 +4668,27 @@ export interface operations { 'application/json': components['schemas']['AnalyticsResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get project's function combined statistics */ 500: { headers: { @@ -4536,12 +4722,27 @@ export interface operations { 'application/json': components['schemas']['AnalyticsResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-get-project-usage-api-count': { @@ -4566,12 +4767,27 @@ export interface operations { 'application/json': components['schemas']['V1GetUsageApiCountResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get project's usage api counts */ 500: { headers: { @@ -4601,12 +4817,27 @@ export interface operations { 'application/json': components['schemas']['V1GetUsageApiRequestsCountResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get project's usage api requests count */ 500: { headers: { @@ -4639,12 +4870,27 @@ export interface operations { 'application/json': components['schemas']['ApiKeyResponse'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-create-project-api-key': { @@ -4674,12 +4920,27 @@ export interface operations { 'application/json': components['schemas']['ApiKeyResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-get-project-api-key': { @@ -4706,12 +4967,27 @@ export interface operations { 'application/json': components['schemas']['ApiKeyResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-delete-project-api-key': { @@ -4741,12 +5017,27 @@ export interface operations { 'application/json': components['schemas']['ApiKeyResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-update-project-api-key': { @@ -4777,12 +5068,27 @@ export interface operations { 'application/json': components['schemas']['ApiKeyResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-get-project-legacy-api-keys': { @@ -4805,12 +5111,27 @@ export interface operations { 'application/json': components['schemas']['LegacyApiKeysResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-update-project-legacy-api-keys': { @@ -4836,12 +5157,27 @@ export interface operations { 'application/json': components['schemas']['LegacyApiKeysResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-list-project-addons': { @@ -4864,12 +5200,27 @@ export interface operations { 'application/json': components['schemas']['ListProjectAddonsResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to list project addons */ 500: { headers: { @@ -4901,12 +5252,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to apply project addon */ 500: { headers: { @@ -4958,12 +5324,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to remove project addon */ 500: { headers: { @@ -4993,12 +5374,27 @@ export interface operations { 'application/json': components['schemas']['BranchResponse'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve database branches */ 500: { headers: { @@ -5032,12 +5428,27 @@ export interface operations { 'application/json': components['schemas']['BranchResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to create database branch */ 500: { headers: { @@ -5065,12 +5476,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to disable preview branching */ 500: { headers: { @@ -5101,12 +5527,27 @@ export interface operations { 'application/json': components['schemas']['BranchResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to fetch database branch */ 500: { headers: { @@ -5136,12 +5577,27 @@ export interface operations { 'application/json': components['schemas']['ProjectClaimTokenResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-create-project-claim-token': { @@ -5164,12 +5620,27 @@ export interface operations { 'application/json': components['schemas']['CreateProjectClaimTokenResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-delete-project-claim-token': { @@ -5190,12 +5661,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-create-login-role': { @@ -5222,12 +5708,27 @@ export interface operations { 'application/json': components['schemas']['CreateRoleResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to create login role */ 500: { headers: { @@ -5257,12 +5758,27 @@ export interface operations { 'application/json': components['schemas']['DeleteRolesResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to delete login roles */ 500: { headers: { @@ -5292,12 +5808,27 @@ export interface operations { 'application/json': components['schemas']['AuthConfigResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve project's auth config */ 500: { headers: { @@ -5331,12 +5862,27 @@ export interface operations { 'application/json': components['schemas']['AuthConfigResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update project's auth config */ 500: { headers: { @@ -5366,12 +5912,27 @@ export interface operations { 'application/json': components['schemas']['SigningKeysResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-create-project-signing-key': { @@ -5398,12 +5959,27 @@ export interface operations { 'application/json': components['schemas']['SigningKeyResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-get-project-signing-key': { @@ -5427,12 +6003,27 @@ export interface operations { 'application/json': components['schemas']['SigningKeyResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-remove-project-signing-key': { @@ -5456,12 +6047,27 @@ export interface operations { 'application/json': components['schemas']['SigningKeyResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-update-project-signing-key': { @@ -5489,12 +6095,27 @@ export interface operations { 'application/json': components['schemas']['SigningKeyResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-get-legacy-signing-key': { @@ -5517,12 +6138,27 @@ export interface operations { 'application/json': components['schemas']['SigningKeyResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-create-legacy-signing-key': { @@ -5545,12 +6181,27 @@ export interface operations { 'application/json': components['schemas']['SigningKeyResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-list-all-sso-provider': { @@ -5573,6 +6224,14 @@ export interface operations { 'application/json': components['schemas']['ListProvidersResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown @@ -5586,6 +6245,13 @@ export interface operations { } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-create-a-sso-provider': { @@ -5612,6 +6278,14 @@ export interface operations { 'application/json': components['schemas']['CreateProviderResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown @@ -5625,6 +6299,13 @@ export interface operations { } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-get-a-sso-provider': { @@ -5648,6 +6329,14 @@ export interface operations { 'application/json': components['schemas']['GetProviderResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown @@ -5661,6 +6350,13 @@ export interface operations { } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-update-a-sso-provider': { @@ -5688,6 +6384,14 @@ export interface operations { 'application/json': components['schemas']['UpdateProviderResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown @@ -5701,6 +6405,13 @@ export interface operations { } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-delete-a-sso-provider': { @@ -5724,6 +6435,14 @@ export interface operations { 'application/json': components['schemas']['DeleteProviderResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown @@ -5737,6 +6456,13 @@ export interface operations { } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-list-project-tpa-integrations': { @@ -5759,12 +6485,27 @@ export interface operations { 'application/json': components['schemas']['ThirdPartyAuth'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-create-project-tpa-integration': { @@ -5791,12 +6532,27 @@ export interface operations { 'application/json': components['schemas']['ThirdPartyAuth'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-get-project-tpa-integration': { @@ -5820,12 +6576,27 @@ export interface operations { 'application/json': components['schemas']['ThirdPartyAuth'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-delete-project-tpa-integration': { @@ -5849,12 +6620,27 @@ export interface operations { 'application/json': components['schemas']['ThirdPartyAuth'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-get-project-pgbouncer-config': { @@ -5877,12 +6663,27 @@ export interface operations { 'application/json': components['schemas']['V1PgbouncerConfigResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve project's pgbouncer config */ 500: { headers: { @@ -5912,12 +6713,27 @@ export interface operations { 'application/json': components['schemas']['SupavisorConfigResponse'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve project's supavisor config */ 500: { headers: { @@ -5951,12 +6767,27 @@ export interface operations { 'application/json': components['schemas']['UpdateSupavisorConfigResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update project's supavisor config */ 500: { headers: { @@ -5986,12 +6817,27 @@ export interface operations { 'application/json': components['schemas']['PostgresConfigResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve project's Postgres config */ 500: { headers: { @@ -6025,12 +6871,27 @@ export interface operations { 'application/json': components['schemas']['PostgresConfigResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update project's Postgres config */ 500: { headers: { @@ -6060,12 +6921,27 @@ export interface operations { 'application/json': components['schemas']['StorageConfigResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve project's storage config */ 500: { headers: { @@ -6097,12 +6973,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update project's storage config */ 500: { headers: { @@ -6132,12 +7023,27 @@ export interface operations { 'application/json': components['schemas']['UpdateCustomHostnameResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve project's custom hostname config */ 500: { headers: { @@ -6165,12 +7071,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to delete project custom hostname configuration */ 500: { headers: { @@ -6200,12 +7121,27 @@ export interface operations { 'application/json': components['schemas']['UpdateCustomHostnameResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to activate project custom hostname configuration */ 500: { headers: { @@ -6239,12 +7175,27 @@ export interface operations { 'application/json': components['schemas']['UpdateCustomHostnameResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update project custom hostname configuration */ 500: { headers: { @@ -6274,12 +7225,27 @@ export interface operations { 'application/json': components['schemas']['UpdateCustomHostnameResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to verify project custom hostname configuration */ 500: { headers: { @@ -6309,12 +7275,27 @@ export interface operations { 'application/json': components['schemas']['V1BackupsResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get backups */ 500: { headers: { @@ -6346,12 +7327,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-get-restore-point': { @@ -6376,12 +7372,27 @@ export interface operations { 'application/json': components['schemas']['V1RestorePointResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get requested restore points */ 500: { headers: { @@ -6415,12 +7426,27 @@ export interface operations { 'application/json': components['schemas']['V1RestorePointResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-undo': { @@ -6445,12 +7471,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-get-database-metadata': { @@ -6473,12 +7514,27 @@ export interface operations { 'application/json': components['schemas']['GetProjectDbMetadataResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-get-jit-access': { @@ -6501,12 +7557,27 @@ export interface operations { 'application/json': components['schemas']['JitAccessResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to list database jit access */ 500: { headers: { @@ -6540,12 +7611,27 @@ export interface operations { 'application/json': components['schemas']['JitAccessResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to upsert database migration */ 500: { headers: { @@ -6579,12 +7665,27 @@ export interface operations { 'application/json': components['schemas']['JitAuthorizeAccessResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to authorize database jit access */ 500: { headers: { @@ -6613,12 +7714,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to remove JIT access */ 500: { headers: { @@ -6648,12 +7764,27 @@ export interface operations { 'application/json': components['schemas']['JitListAccessResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to list database jit access */ 500: { headers: { @@ -6683,12 +7814,27 @@ export interface operations { 'application/json': components['schemas']['V1ListMigrationsResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to list database migrations */ 500: { headers: { @@ -6723,12 +7869,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to upsert database migration */ 500: { headers: { @@ -6763,12 +7924,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to apply database migration */ 500: { headers: { @@ -6800,12 +7976,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to run sql query */ 500: { headers: { @@ -6833,12 +8024,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to enable Database Webhooks on the project */ 500: { headers: { @@ -6868,12 +8074,27 @@ export interface operations { 'application/json': components['schemas']['FunctionResponse'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve project's functions */ 500: { headers: { @@ -6907,6 +8128,13 @@ export interface operations { 'application/json': components['schemas']['BulkUpdateFunctionResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Maximum number of functions reached for Plan */ 402: { headers: { @@ -6914,12 +8142,20 @@ export interface operations { } content?: never } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update functions */ 500: { headers: { @@ -6964,6 +8200,13 @@ export interface operations { 'application/json': components['schemas']['FunctionResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Maximum number of functions reached for Plan */ 402: { headers: { @@ -6971,12 +8214,20 @@ export interface operations { } content?: never } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to create project's function */ 500: { headers: { @@ -7008,12 +8259,27 @@ export interface operations { 'application/json': components['schemas']['FunctionSlugResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve function with given slug */ 500: { headers: { @@ -7043,12 +8309,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to delete function with given slug */ 500: { headers: { @@ -7095,12 +8376,27 @@ export interface operations { 'application/json': components['schemas']['FunctionResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update function with given slug */ 500: { headers: { @@ -7132,12 +8428,27 @@ export interface operations { 'application/json': components['schemas']['StreamableFile'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve function body with given slug */ 500: { headers: { @@ -7175,6 +8486,13 @@ export interface operations { 'application/json': components['schemas']['DeployFunctionResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Maximum number of functions reached for Plan */ 402: { headers: { @@ -7182,12 +8500,20 @@ export interface operations { } content?: never } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to deploy function */ 500: { headers: { @@ -7229,12 +8555,27 @@ export interface operations { 'application/json': components['schemas']['V1ServiceHealthResponse'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve project's service health status */ 500: { headers: { @@ -7266,12 +8607,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to remove network bans. */ 500: { headers: { @@ -7301,12 +8657,27 @@ export interface operations { 'application/json': components['schemas']['NetworkBanResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve project's network bans */ 500: { headers: { @@ -7336,12 +8707,27 @@ export interface operations { 'application/json': components['schemas']['NetworkBanResponseEnriched'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve project's enriched network bans */ 500: { headers: { @@ -7371,12 +8757,27 @@ export interface operations { 'application/json': components['schemas']['NetworkRestrictionsResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve project's network restrictions */ 500: { headers: { @@ -7410,12 +8811,27 @@ export interface operations { 'application/json': components['schemas']['NetworkRestrictionsV2Response'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update project network restrictions */ 500: { headers: { @@ -7449,12 +8865,27 @@ export interface operations { 'application/json': components['schemas']['NetworkRestrictionsResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update project network restrictions */ 500: { headers: { @@ -7482,12 +8913,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-get-pgsodium-config': { @@ -7510,12 +8956,27 @@ export interface operations { 'application/json': components['schemas']['PgsodiumConfigResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve project's pgsodium config */ 500: { headers: { @@ -7549,12 +9010,27 @@ export interface operations { 'application/json': components['schemas']['PgsodiumConfigResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update project's pgsodium config */ 500: { headers: { @@ -7584,12 +9060,27 @@ export interface operations { 'application/json': components['schemas']['PostgrestConfigWithJWTSecretResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve project's postgrest config */ 500: { headers: { @@ -7623,12 +9114,27 @@ export interface operations { 'application/json': components['schemas']['V1PostgrestConfigResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update project's postgrest config */ 500: { headers: { @@ -7660,12 +9166,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to remove read replica */ 500: { headers: { @@ -7697,12 +9218,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to set up read replica */ 500: { headers: { @@ -7732,12 +9268,27 @@ export interface operations { 'application/json': components['schemas']['ReadOnlyStatusResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get project readonly mode status */ 500: { headers: { @@ -7765,12 +9316,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to disable project's readonly mode */ 500: { headers: { @@ -7800,12 +9366,27 @@ export interface operations { 'application/json': components['schemas']['GetProjectAvailableRestoreVersionsResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-restore-a-project': { @@ -7826,12 +9407,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-cancel-a-project-restoration': { @@ -7852,12 +9448,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } 'v1-list-all-secrets': { @@ -7880,12 +9491,27 @@ export interface operations { 'application/json': components['schemas']['SecretResponse'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve project's secrets */ 500: { headers: { @@ -7917,12 +9543,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to create project's secrets */ 500: { headers: { @@ -7954,12 +9595,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to delete secrets with given names */ 500: { headers: { @@ -7989,12 +9645,27 @@ export interface operations { 'application/json': components['schemas']['SslEnforcementResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve project's SSL enforcement config */ 500: { headers: { @@ -8028,12 +9699,27 @@ export interface operations { 'application/json': components['schemas']['SslEnforcementResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update project's SSL enforcement configuration. */ 500: { headers: { @@ -8063,12 +9749,27 @@ export interface operations { 'application/json': components['schemas']['V1StorageBucketResponse'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get list of buckets */ 500: { headers: { @@ -8100,12 +9801,27 @@ export interface operations { 'application/json': components['schemas']['TypescriptResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to generate TypeScript types */ 500: { headers: { @@ -8139,12 +9855,27 @@ export interface operations { 'application/json': components['schemas']['ProjectUpgradeInitiateResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to initiate project upgrade */ 500: { headers: { @@ -8174,12 +9905,27 @@ export interface operations { 'application/json': components['schemas']['ProjectUpgradeEligibilityResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to determine project upgrade eligibility */ 500: { headers: { @@ -8211,12 +9957,27 @@ export interface operations { 'application/json': components['schemas']['DatabaseUpgradeStatusResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve project upgrade status */ 500: { headers: { @@ -8246,12 +10007,27 @@ export interface operations { 'application/json': components['schemas']['VanitySubdomainConfigResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get project vanity subdomain configuration */ 500: { headers: { @@ -8279,12 +10055,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to delete project vanity subdomain configuration */ 500: { headers: { @@ -8318,12 +10109,27 @@ export interface operations { 'application/json': components['schemas']['ActivateVanitySubdomainResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to activate project vanity subdomain configuration */ 500: { headers: { @@ -8357,12 +10163,27 @@ export interface operations { 'application/json': components['schemas']['SubdomainAvailabilityResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to check project vanity subdomain configuration */ 500: { headers: { diff --git a/packages/api-types/types/platform.d.ts b/packages/api-types/types/platform.d.ts index 525b4f25613..5c0a5cc0d85 100644 --- a/packages/api-types/types/platform.d.ts +++ b/packages/api-types/types/platform.d.ts @@ -4668,6 +4668,7 @@ export interface components { [key: string]: unknown } description?: string + favorite?: boolean /** Format: uuid */ folder_id?: (null | (string | null)) | null id?: string @@ -5143,6 +5144,11 @@ export interface components { * @example 200 */ max_fill_ms?: number + /** + * @description Maximum batch size + * @example 200 + */ + max_size?: number } /** * @description Publication name @@ -5166,6 +5172,11 @@ export interface components { * @example 200 */ max_fill_ms?: number + /** + * @description Maximum batch size + * @example 200 + */ + max_size?: number } /** * @description Publication name @@ -5644,7 +5655,7 @@ export interface components { logo_uri?: string redirect_uris: string[] response_types?: string[] - /** @default analytics:read */ + /** @default organizations:read projects:read projects:write database:write database:read analytics:read secrets:read edge_functions:read edge_functions:write environment:read environment:write storage:read */ scope?: string token_endpoint_auth_method?: string } @@ -5739,6 +5750,8 @@ export interface components { expires_at: string icon?: string name: string + /** @enum {string} */ + registration_type: 'manual' | 'dynamic' scopes?: ( | 'analytics:read' | 'analytics:write' @@ -6103,7 +6116,7 @@ export interface components { [key: string]: unknown } description?: string - favorite: boolean | null + favorite: boolean folder_id?: string | null id: string inserted_at: string @@ -6122,7 +6135,7 @@ export interface components { data: { contents: { description?: string - favorite?: boolean | null + favorite: boolean folder_id?: string | null id: string inserted_at: string @@ -6152,7 +6165,7 @@ export interface components { [key: string]: unknown } description?: string - favorite?: boolean | null + favorite: boolean folder_id?: string | null id: string inserted_at: string @@ -7933,6 +7946,34 @@ export interface components { }[] } ReplicationPipelineReplicationStatusResponse: { + /** @description The apply worker lag */ + apply_lag?: { + /** + * @description Bytes between the current WAL location and the confirmed flush LSN. + * @example 2048 + */ + confirmed_flush_lsn_bytes: number + /** + * @description Flush lag expressed in milliseconds. + * @example 1200 + */ + flush_lag?: number + /** + * @description Bytes between the current WAL location and the slot restart LSN. + * @example 1024 + */ + restart_lsn_bytes: number + /** + * @description How many bytes of WAL are still safe to build up before the limit of the slot is reached. + * @example 8192 + */ + safe_wal_size_bytes: number + /** + * @description Write lag expressed in milliseconds. + * @example 1500 + */ + write_lag?: number + } /** * @description Pipeline id * @example 1012 @@ -7955,7 +7996,6 @@ export interface components { name: 'copied_table' } | { - lag: number /** @enum {string} */ name: 'following_wal' } @@ -7993,6 +8033,34 @@ export interface components { * @example public.orders */ table_name: string + /** @description The table sync worker lag */ + table_sync_lag?: { + /** + * @description Bytes between the current WAL location and the confirmed flush LSN. + * @example 2048 + */ + confirmed_flush_lsn_bytes: number + /** + * @description Flush lag expressed in milliseconds. + * @example 1200 + */ + flush_lag?: number + /** + * @description Bytes between the current WAL location and the slot restart LSN. + * @example 1024 + */ + restart_lsn_bytes: number + /** + * @description How many bytes of WAL are still safe to build up before the limit of the slot is reached. + * @example 8192 + */ + safe_wal_size_bytes: number + /** + * @description Write lag expressed in milliseconds. + * @example 1500 + */ + write_lag?: number + } }[] } /** @description Pipeline */ @@ -8006,6 +8074,11 @@ export interface components { * @example 200 */ max_fill_ms?: number + /** + * @description Maximum batch size + * @example 200 + */ + max_size?: number } /** * @description Publication name @@ -8061,6 +8134,11 @@ export interface components { * @example 200 */ max_fill_ms?: number + /** + * @description Maximum batch size + * @example 200 + */ + max_size?: number } /** * @description Publication name @@ -8319,7 +8397,6 @@ export interface components { name: 'copied_table' } | { - lag: number /** @enum {string} */ name: 'following_wal' } @@ -8437,6 +8514,7 @@ export interface components { allowSupportAccess?: boolean browserInformation?: string category: string + dashboardSentryIssueId?: string library?: string message: string organizationSlug?: string @@ -9410,6 +9488,11 @@ export interface components { * @example 200 */ max_fill_ms?: number + /** + * @description Maximum batch size + * @example 200 + */ + max_size?: number } /** * @description Publication name @@ -9433,6 +9516,11 @@ export interface components { * @example 200 */ max_fill_ms?: number + /** + * @description Maximum batch size + * @example 200 + */ + max_size?: number } /** * @description Publication name @@ -9666,6 +9754,7 @@ export interface components { [key: string]: unknown } description?: string + favorite?: boolean /** Format: uuid */ folder_id?: (null | (string | null)) | null id: string @@ -9729,7 +9818,7 @@ export interface components { [key: string]: unknown } description?: string - favorite?: boolean | null + favorite: boolean folder_id?: string | null id: string inserted_at: string @@ -9809,12 +9898,27 @@ export interface operations { 'application/json': components['schemas']['GoTrueConfigResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve GoTrue config */ 500: { headers: { @@ -9848,12 +9952,27 @@ export interface operations { 'application/json': components['schemas']['GoTrueConfigResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update GoTrue config */ 500: { headers: { @@ -9887,12 +10006,27 @@ export interface operations { 'application/json': components['schemas']['GoTrueConfigResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update GoTrue config hooks */ 500: { headers: { @@ -9924,12 +10058,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to send an invite to the given email */ 500: { headers: { @@ -9961,12 +10110,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to send a magic link to the given email */ 500: { headers: { @@ -9998,12 +10162,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to send an OTP to the given phone number */ 500: { headers: { @@ -10035,12 +10214,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to send a recovery email to the given email */ 500: { headers: { @@ -10107,12 +10301,27 @@ export interface operations { 'application/json': components['schemas']['CreateUserReponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to create user */ 500: { headers: { @@ -10144,12 +10353,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to delete user */ 500: { headers: { @@ -10184,12 +10408,27 @@ export interface operations { 'application/json': components['schemas']['UpdateUserReponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update user with given ID */ 500: { headers: { @@ -10218,12 +10457,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to delete factors */ 500: { headers: { @@ -10254,12 +10508,27 @@ export interface operations { 'application/json': components['schemas']['ValidateSpamResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to validate spam based on the given email content */ 500: { headers: { @@ -10373,12 +10642,27 @@ export interface operations { 'application/json': components['schemas']['BackupsResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get project backups */ 500: { headers: { @@ -10412,12 +10696,27 @@ export interface operations { 'application/json': components['schemas']['DownloadBackupResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to download project backup */ 500: { headers: { @@ -10447,12 +10746,27 @@ export interface operations { 'application/json': components['schemas']['DownloadableBackupsResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get project backups */ 500: { headers: { @@ -10480,12 +10794,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to enable usage of physical backups */ 500: { headers: { @@ -10517,12 +10846,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to restore project to a previous point in time */ 500: { headers: { @@ -10554,12 +10898,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to restore project backup */ 500: { headers: { @@ -10591,12 +10950,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to restore project with physical backup */ 500: { headers: { @@ -10626,12 +11000,27 @@ export interface operations { 'application/json': components['schemas']['CloneBackupsResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to list available valid backups */ 500: { headers: { @@ -10665,12 +11054,27 @@ export interface operations { 'application/json': components['schemas']['ProjectClonedResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to clone the current project */ 500: { headers: { @@ -10700,12 +11104,27 @@ export interface operations { 'application/json': components['schemas']['ProjectClonedStatusResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve clone project status */ 500: { headers: { @@ -10733,12 +11152,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to enable Database Webhooks on the project */ 500: { headers: { @@ -10772,12 +11206,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get hook logs with the given ID */ 500: { headers: { @@ -10952,12 +11401,27 @@ export interface operations { 'application/json': components['schemas']['GetOrganizationIntegrationResponse'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get integration with the given organization slug */ 500: { headers: { @@ -11297,12 +11761,27 @@ export interface operations { 'application/json': components['schemas']['PrivateLinkResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve organization's PrivateLink config */ 500: { headers: { @@ -11335,12 +11814,27 @@ export interface operations { 'application/json': components['schemas']['PrivateLinkResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update organization's PrivateLink configuration. */ 500: { headers: { @@ -11863,12 +12357,27 @@ export interface operations { 'application/json': components['schemas']['OrganizationSlugResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } OrganizationSlugController_deleteOrganization: { @@ -11889,12 +12398,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to delete organization */ 500: { headers: { @@ -11928,12 +12452,27 @@ export interface operations { 'application/json': components['schemas']['UpdateOrganizationResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update organization */ 500: { headers: { @@ -11968,12 +12507,27 @@ export interface operations { 'application/json': components['schemas']['AuditLogsResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get an organization's audit logs */ 500: { headers: { @@ -12007,12 +12561,27 @@ export interface operations { 'application/json': components['schemas']['OrganizationSlugAvailableVersionsResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to determine available Postgres versions */ 500: { headers: { @@ -12047,12 +12616,27 @@ export interface operations { 'application/json': components['schemas']['CreditsTopUpResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to top up credit balance */ 500: { headers: { @@ -12085,12 +12669,27 @@ export interface operations { 'application/json': components['schemas']['Invoice'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve invoices */ 500: { headers: { @@ -12120,12 +12719,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve the total count of invoices */ 500: { headers: { @@ -12156,12 +12770,27 @@ export interface operations { 'application/json': components['schemas']['Invoice'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve invoice */ 500: { headers: { @@ -12192,12 +12821,27 @@ export interface operations { 'application/json': components['schemas']['InvoicePaymentLinkResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve invoice payment link */ 500: { headers: { @@ -12227,12 +12871,27 @@ export interface operations { 'application/json': components['schemas']['UpcomingInvoice'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve upcoming invoice */ 500: { headers: { @@ -12262,12 +12921,27 @@ export interface operations { 'application/json': components['schemas']['PlansResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get subscription Plans */ 500: { headers: { @@ -12297,12 +12971,27 @@ export interface operations { 'application/json': components['schemas']['GetSubscriptionResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve subscription */ 500: { headers: { @@ -12336,12 +13025,27 @@ export interface operations { 'application/json': components['schemas']['UpdateSubscriptionResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update subscription change */ 500: { headers: { @@ -12373,12 +13077,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to confirm subscription change */ 500: { headers: { @@ -12410,12 +13129,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to preview subscription changes */ 500: { headers: { @@ -12447,12 +13181,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to make organization being billed by AWS Marketplace */ 500: { headers: { @@ -12482,12 +13231,27 @@ export interface operations { 'application/json': components['schemas']['GetCloudMarketplaceRedirectUrlResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get AWS Marketplace redirect url */ 500: { headers: { @@ -12517,12 +13281,27 @@ export interface operations { 'application/json': components['schemas']['CustomerResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve the Billing customer */ 500: { headers: { @@ -12554,12 +13333,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update the billing customer */ 500: { headers: { @@ -12638,12 +13432,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get daily organization stats */ 500: { headers: { @@ -12675,12 +13484,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get daily organization stats for compute */ 500: { headers: { @@ -12711,12 +13535,27 @@ export interface operations { 'application/json': components['schemas']['CreateDpaDocumentResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } OrgDocumentsController_getSoc2Type2ReportUrl: { @@ -12739,12 +13578,27 @@ export interface operations { 'application/json': components['schemas']['OrgDocumentUrlResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } OrgDocumentsController_getStandardSecurityQuestionnaireUrl: { @@ -12767,12 +13621,27 @@ export interface operations { 'application/json': components['schemas']['OrgDocumentUrlResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } MembersController_getMembers: { @@ -12823,12 +13692,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to remove organization member */ 500: { headers: { @@ -12861,12 +13745,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to assign organization member with new role */ 500: { headers: { @@ -12900,12 +13799,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update organization member role */ 500: { headers: { @@ -12935,12 +13849,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to remove organization member role */ 500: { headers: { @@ -12970,12 +13899,27 @@ export interface operations { 'application/json': components['schemas']['InvitationResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get organization invitations */ 500: { headers: { @@ -13007,12 +13951,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to create organization invitation */ 500: { headers: { @@ -13041,12 +14000,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to delete organization invitation with given id */ 500: { headers: { @@ -13135,12 +14109,27 @@ export interface operations { 'application/json': components['schemas']['MfaStatusResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get organization MFA status */ 500: { headers: { @@ -13175,12 +14164,27 @@ export interface operations { 'application/json': components['schemas']['MfaStatusResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update organization MFA enforcement */ 500: { headers: { @@ -13210,12 +14214,27 @@ export interface operations { 'application/json': components['schemas']['MemberWithFreeProjectLimit'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve organization members who have reached their free project limit */ 500: { headers: { @@ -13247,12 +14266,27 @@ export interface operations { 'application/json': components['schemas']['OAuthAppResponse'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } OAuthAppsController_createOAuthApp: { @@ -13279,12 +14313,27 @@ export interface operations { 'application/json': components['schemas']['CreateOAuthAppResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } OAuthAppClientSecretsController_listClientSecrets: { @@ -13308,12 +14357,27 @@ export interface operations { 'application/json': components['schemas']['ListOAuthAppClientSecretsResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } OAuthAppClientSecretsController_CreateClientSecret: { @@ -13337,12 +14401,27 @@ export interface operations { 'application/json': components['schemas']['CreateOAuthAppClientSecretResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } OAuthAppClientSecretsController_RemoveClientSecret: { @@ -13365,12 +14444,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } OAuthAppsController_updateOAuthApp: { @@ -13398,12 +14492,27 @@ export interface operations { 'application/json': components['schemas']['PutOAuthAppResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } OAuthAppsController_removeOAuthApp: { @@ -13427,12 +14536,27 @@ export interface operations { 'application/json': components['schemas']['DeleteOAuthAppResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } OAuthAppsController_revokeAuthorizedOAuthApp: { @@ -13456,12 +14580,27 @@ export interface operations { 'application/json': components['schemas']['RevokeAuthorizedOAuthAppResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } OrganizationOAuthAuthorizationsController_approveAuthorizationRequest: { @@ -13486,12 +14625,27 @@ export interface operations { 'application/json': components['schemas']['ApproveAuthorizationResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } OrganizationOAuthAuthorizationsController_declineAuthorizationRequest: { @@ -13516,12 +14670,27 @@ export interface operations { 'application/json': components['schemas']['DeclineAuthorizationResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } PaymentsController_getPaymentMethods: { @@ -13544,12 +14713,27 @@ export interface operations { 'application/json': components['schemas']['PaymentsResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get Stripe payment methods */ 500: { headers: { @@ -13581,12 +14765,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to detach Stripe payment method */ 500: { headers: { @@ -13618,12 +14817,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to mark payment method as default */ 500: { headers: { @@ -13653,12 +14867,27 @@ export interface operations { 'application/json': components['schemas']['SetupIntentResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to set up a payment method */ 500: { headers: { @@ -13730,12 +14959,27 @@ export interface operations { 'application/json': components['schemas']['OrganizationRoleResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve the organization's roles */ 500: { headers: { @@ -13765,12 +15009,27 @@ export interface operations { 'application/json': components['schemas']['GetSSOProviderResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } SSOProvidersController_updateSSOProvider: { @@ -13797,12 +15056,27 @@ export interface operations { 'application/json': components['schemas']['UpdateSSOProviderResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } SSOProvidersController_createSSOProvider: { @@ -13829,12 +15103,27 @@ export interface operations { 'application/json': components['schemas']['CreateSSOProviderResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } SSOProvidersController_deleteSSOProvider: { @@ -13855,12 +15144,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } TaxIdsController_getTaxId: { @@ -13883,12 +15187,27 @@ export interface operations { 'application/json': components['schemas']['TaxIdResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve the organization's tax ID */ 500: { headers: { @@ -13922,12 +15241,27 @@ export interface operations { 'application/json': components['schemas']['TaxIdResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to create the tax ID */ 500: { headers: { @@ -13955,12 +15289,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to delete the tax ID */ 500: { headers: { @@ -13995,12 +15344,27 @@ export interface operations { 'application/json': components['schemas']['OrgUsageResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get usage stats */ 500: { headers: { @@ -14115,12 +15479,27 @@ export interface operations { 'application/json': components['schemas']['PostgresColumnPrivileges'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve column privileges */ 500: { headers: { @@ -14158,12 +15537,27 @@ export interface operations { 'application/json': components['schemas']['PostgresColumnPrivileges'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to grant column privileges */ 500: { headers: { @@ -14201,12 +15595,27 @@ export interface operations { 'application/json': components['schemas']['PostgresColumnPrivileges'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to revoke column privileges */ 500: { headers: { @@ -14243,12 +15652,27 @@ export interface operations { 'application/json': components['schemas']['PostgresColumn'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get pg.columns */ 500: { headers: { @@ -14286,12 +15710,27 @@ export interface operations { 'application/json': components['schemas']['PostgresColumn'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to create pg.column */ 500: { headers: { @@ -14329,12 +15768,27 @@ export interface operations { 'application/json': components['schemas']['PostgresColumn'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to delete pg.column with the given ID */ 500: { headers: { @@ -14374,12 +15828,27 @@ export interface operations { 'application/json': components['schemas']['PostgresColumn'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update pg.column with the given ID */ 500: { headers: { @@ -14413,12 +15882,27 @@ export interface operations { 'application/json': components['schemas']['PostgresExtension'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get pg.extensions */ 500: { headers: { @@ -14456,12 +15940,27 @@ export interface operations { 'application/json': components['schemas']['PostgresExtension'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to create pg.extension */ 500: { headers: { @@ -14497,12 +15996,27 @@ export interface operations { 'application/json': components['schemas']['PostgresExtension'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to delete pg.extension with the given ID */ 500: { headers: { @@ -14541,12 +16055,27 @@ export interface operations { 'application/json': components['schemas']['PostgresForeignTable'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve database foreign tables */ 500: { headers: { @@ -14583,12 +16112,27 @@ export interface operations { 'application/json': components['schemas']['PostgresFunction'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get pg.functions */ 500: { headers: { @@ -14626,12 +16170,27 @@ export interface operations { 'application/json': components['schemas']['PostgresFunction'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to create pg.function */ 500: { headers: { @@ -14667,12 +16226,27 @@ export interface operations { 'application/json': components['schemas']['PostgresFunction'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to delete pg.function with the given ID */ 500: { headers: { @@ -14712,12 +16286,27 @@ export interface operations { 'application/json': components['schemas']['PostgresFunction'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update pg.function with the given ID */ 500: { headers: { @@ -14759,12 +16348,27 @@ export interface operations { 'application/json': components['schemas']['PostgresMaterializedView'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve database materialized views */ 500: { headers: { @@ -14801,12 +16405,27 @@ export interface operations { 'application/json': components['schemas']['PostgresPolicy'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get pg.policies */ 500: { headers: { @@ -14844,12 +16463,27 @@ export interface operations { 'application/json': components['schemas']['PostgresPolicy'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to create pg.policy */ 500: { headers: { @@ -14885,12 +16519,27 @@ export interface operations { 'application/json': components['schemas']['PostgresPolicy'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to delete pg.policy with the given ID */ 500: { headers: { @@ -14930,12 +16579,27 @@ export interface operations { 'application/json': components['schemas']['PostgresPolicy'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update pg.policy with the given ID */ 500: { headers: { @@ -14969,12 +16633,27 @@ export interface operations { 'application/json': components['schemas']['PostgresPublication'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get pg.publications */ 500: { headers: { @@ -15012,12 +16691,27 @@ export interface operations { 'application/json': components['schemas']['PostgresPublication'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to create pg.publication */ 500: { headers: { @@ -15053,12 +16747,27 @@ export interface operations { 'application/json': components['schemas']['PostgresPublication'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to delete pg.publication with the given ID */ 500: { headers: { @@ -15098,12 +16807,27 @@ export interface operations { 'application/json': components['schemas']['PostgresPublication'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update pg.publication with the given ID */ 500: { headers: { @@ -15139,12 +16863,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to run sql query */ 500: { headers: { @@ -15176,12 +16915,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to format sql query */ 500: { headers: { @@ -15215,12 +16969,27 @@ export interface operations { 'application/json': components['schemas']['ValidateQueryResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to validate sql query */ 500: { headers: { @@ -15254,12 +17023,27 @@ export interface operations { 'application/json': components['schemas']['PostgresSchema'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get pg.schemas */ 500: { headers: { @@ -15297,12 +17081,27 @@ export interface operations { 'application/json': components['schemas']['PostgresSchema'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to create pg.schema */ 500: { headers: { @@ -15338,12 +17137,27 @@ export interface operations { 'application/json': components['schemas']['PostgresSchema'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to delete pg.schema with the given ID */ 500: { headers: { @@ -15383,12 +17197,27 @@ export interface operations { 'application/json': components['schemas']['PostgresSchema'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update pg.schema with the given ID */ 500: { headers: { @@ -15430,12 +17259,27 @@ export interface operations { 'application/json': components['schemas']['PostgresTable'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get pg.tables or pg.table with the given ID */ 500: { headers: { @@ -15473,12 +17317,27 @@ export interface operations { 'application/json': components['schemas']['PostgresTable'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to create pg.table */ 500: { headers: { @@ -15516,12 +17375,27 @@ export interface operations { 'application/json': components['schemas']['PostgresTable'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to delete pg.table with the given ID */ 500: { headers: { @@ -15561,12 +17435,27 @@ export interface operations { 'application/json': components['schemas']['PostgresTable'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update pg.table with the given ID */ 500: { headers: { @@ -15603,12 +17492,27 @@ export interface operations { 'application/json': components['schemas']['PostgresTrigger'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get pg.triggers */ 500: { headers: { @@ -15646,12 +17550,27 @@ export interface operations { 'application/json': components['schemas']['PostgresTrigger'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to create pg.trigger */ 500: { headers: { @@ -15687,12 +17606,27 @@ export interface operations { 'application/json': components['schemas']['PostgresTrigger'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to delete pg.trigger with the given ID */ 500: { headers: { @@ -15732,12 +17666,27 @@ export interface operations { 'application/json': components['schemas']['PostgresTrigger'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update pg.trigger with the given ID */ 500: { headers: { @@ -15774,12 +17723,27 @@ export interface operations { 'application/json': components['schemas']['PostgresType'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get pg.types */ 500: { headers: { @@ -15821,12 +17785,27 @@ export interface operations { 'application/json': components['schemas']['PostgresView'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve database views */ 500: { headers: { @@ -15903,7 +17882,6 @@ export interface operations { } content?: never } - /** @description Forbidden action */ 403: { headers: { [name: string]: unknown @@ -16246,12 +18224,27 @@ export interface operations { 'application/json': components['schemas']['ProjectDetailResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } ProjectsRefController_deleteProject: { @@ -16274,12 +18267,27 @@ export interface operations { 'application/json': components['schemas']['RemoveProjectResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } ProjectsRefController_updateProject: { @@ -16306,12 +18314,27 @@ export interface operations { 'application/json': components['schemas']['ProjectRefResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update project */ 500: { headers: { @@ -16344,12 +18367,27 @@ export interface operations { 'application/json': components['schemas']['AnalyticsResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get project's function request statistics */ 500: { headers: { @@ -16382,12 +18420,27 @@ export interface operations { 'application/json': components['schemas']['AnalyticsResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get project's function request statistics */ 500: { headers: { @@ -16420,12 +18473,27 @@ export interface operations { 'application/json': components['schemas']['AnalyticsResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get project's function resource usage */ 500: { headers: { @@ -16459,12 +18527,27 @@ export interface operations { 'application/json': components['schemas']['AnalyticsResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get project's logs */ 500: { headers: { @@ -16498,12 +18581,27 @@ export interface operations { 'application/json': components['schemas']['AnalyticsResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get project's logs */ 500: { headers: { @@ -16535,12 +18633,27 @@ export interface operations { 'application/json': components['schemas']['AnalyticsResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get project's usage api counts */ 500: { headers: { @@ -16570,12 +18683,27 @@ export interface operations { 'application/json': components['schemas']['AnalyticsResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get project's usage api requests count */ 500: { headers: { @@ -16605,12 +18733,27 @@ export interface operations { 'application/json': components['schemas']['LFBackend'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to fetch log drains */ 500: { headers: { @@ -16644,12 +18787,27 @@ export interface operations { 'application/json': components['schemas']['LFBackend'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to create a log drain */ 500: { headers: { @@ -16685,12 +18843,27 @@ export interface operations { 'application/json': components['schemas']['LFBackend'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update log drain */ 500: { headers: { @@ -16720,12 +18893,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to delete a log drain */ 500: { headers: { @@ -16755,12 +18943,27 @@ export interface operations { 'application/json': components['schemas']['LFAccessToken'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to fetch warehouse access tokens */ 500: { headers: { @@ -16787,12 +18990,27 @@ export interface operations { 'application/json': components['schemas']['LFAccessToken'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to create warehouse access token */ 500: { headers: { @@ -16817,12 +19035,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to delete warehouse access token */ 500: { headers: { @@ -16852,12 +19085,27 @@ export interface operations { 'application/json': components['schemas']['LFSource'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to fetch telemetry collections */ 500: { headers: { @@ -16891,12 +19139,27 @@ export interface operations { 'application/json': components['schemas']['LFSource'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to create telemetry collection */ 500: { headers: { @@ -16927,12 +19190,27 @@ export interface operations { 'application/json': components['schemas']['LFSource'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to fetch telemetry collection */ 500: { headers: { @@ -16963,12 +19241,27 @@ export interface operations { 'application/json': components['schemas']['LFSource'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to delete telemetry collection */ 500: { headers: { @@ -17003,12 +19296,27 @@ export interface operations { 'application/json': components['schemas']['LFSource'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update telemetry collection */ 500: { headers: { @@ -17040,12 +19348,27 @@ export interface operations { 'application/json': components['schemas']['LFSource'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to fetch telemetry collection schema */ 500: { headers: { @@ -17075,12 +19398,27 @@ export interface operations { 'application/json': components['schemas']['LFEndpoint'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to fetch warehouse endpoints */ 500: { headers: { @@ -17107,12 +19445,27 @@ export interface operations { 'application/json': components['schemas']['LFEndpoint'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to create warehouse endpoint */ 500: { headers: { @@ -17139,12 +19492,27 @@ export interface operations { 'application/json': components['schemas']['LFEndpoint'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update warehouse endpoint */ 500: { headers: { @@ -17169,12 +19537,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to delete warehouse endpoint */ 500: { headers: { @@ -17202,12 +19585,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to fetch warehouse queries */ 500: { headers: { @@ -17235,12 +19633,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to parse warehouse query */ 500: { headers: { @@ -17270,12 +19683,27 @@ export interface operations { 'application/json': components['schemas']['LFUser'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to fetch or provision warehouse tenant */ 500: { headers: { @@ -17309,12 +19737,27 @@ export interface operations { 'application/json': components['schemas']['TemporaryApiKeyResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } ProjectsApiController_projectGraphql: { @@ -17341,12 +19784,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to query project Graphql */ 500: { headers: { @@ -17374,12 +19832,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get project OpenApi */ 500: { headers: { @@ -17409,12 +19882,27 @@ export interface operations { 'application/json': components['schemas']['ProjectAddonsResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get project addons */ 500: { headers: { @@ -17446,12 +19934,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update project addon */ 500: { headers: { @@ -17506,12 +20009,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to remove project addon */ 500: { headers: { @@ -17541,12 +20059,27 @@ export interface operations { 'application/json': components['schemas']['PgbouncerConfigResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve project's pgbouncer config */ 500: { headers: { @@ -17580,12 +20113,27 @@ export interface operations { 'application/json': components['schemas']['UpdatePoolingConfigResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update project's pgbouncer config */ 500: { headers: { @@ -17615,12 +20163,27 @@ export interface operations { 'application/json': components['schemas']['PgbouncerStatusResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve project's pgbouncer status */ 500: { headers: { @@ -17650,12 +20213,27 @@ export interface operations { 'application/json': components['schemas']['PostgresConfigResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve project's Postgres config */ 500: { headers: { @@ -17689,12 +20267,27 @@ export interface operations { 'application/json': components['schemas']['PostgresConfigResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update project's Postgres config */ 500: { headers: { @@ -17724,12 +20317,27 @@ export interface operations { 'application/json': components['schemas']['GetPostgrestConfigResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve project's postgrest config */ 500: { headers: { @@ -17763,12 +20371,27 @@ export interface operations { 'application/json': components['schemas']['UpdatePostgrestConfigResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update project's postgrest config */ 500: { headers: { @@ -17799,12 +20422,27 @@ export interface operations { 'application/json': components['schemas']['RealtimeConfigResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } RealtimeConfigController_updateConfig: { @@ -17829,12 +20467,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } SecretsConfigController_updateConfig: { @@ -17861,12 +20514,27 @@ export interface operations { 'application/json': components['schemas']['UpdateSecretsResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update project's secrets config */ 500: { headers: { @@ -17896,12 +20564,27 @@ export interface operations { 'application/json': components['schemas']['GetJwtSecretUpdateStatus'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve JWT secret update status */ 500: { headers: { @@ -17931,12 +20614,27 @@ export interface operations { 'application/json': components['schemas']['StorageConfigResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve project's storage config */ 500: { headers: { @@ -17970,12 +20668,27 @@ export interface operations { 'application/json': components['schemas']['StorageConfigResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update project's storage config */ 500: { headers: { @@ -18005,12 +20718,27 @@ export interface operations { 'application/json': components['schemas']['SupavisorConfigResponse'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve project's supavisor config */ 500: { headers: { @@ -18044,12 +20772,27 @@ export interface operations { 'application/json': components['schemas']['UpdateSupavisorConfigResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update project's supavisor config */ 500: { headers: { @@ -18089,12 +20832,27 @@ export interface operations { 'application/json': components['schemas']['GetUserContentResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve project's content */ 500: { headers: { @@ -18126,12 +20884,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update project's content */ 500: { headers: { @@ -18165,12 +20938,27 @@ export interface operations { 'application/json': components['schemas']['UserContentObject'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to create project's content */ 500: { headers: { @@ -18202,12 +20990,27 @@ export interface operations { 'application/json': components['schemas']['BulkDeleteUserContentResponse'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to delete project's contents */ 500: { headers: { @@ -18240,12 +21043,27 @@ export interface operations { 'application/json': components['schemas']['GetContentCountV2Response'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve user's content counts */ 500: { headers: { @@ -18283,12 +21101,27 @@ export interface operations { 'application/json': components['schemas']['GetUserContentFolderResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve project's content root folder */ 500: { headers: { @@ -18322,12 +21155,27 @@ export interface operations { 'application/json': components['schemas']['CreateUserContentFolderResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to create project's content folder */ 500: { headers: { @@ -18354,12 +21202,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to delete project's content folders */ 500: { headers: { @@ -18397,12 +21260,27 @@ export interface operations { 'application/json': components['schemas']['GetUserContentFolderResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve project's content folder */ 500: { headers: { @@ -18436,12 +21314,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update project's content folder */ 500: { headers: { @@ -18472,12 +21365,27 @@ export interface operations { 'application/json': components['schemas']['GetUserContentByIdResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve project's content by the given id */ 500: { headers: { @@ -18543,12 +21451,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get daily project stats */ 500: { headers: { @@ -18578,12 +21501,27 @@ export interface operations { 'application/json': components['schemas']['DatabaseDetailResponse'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } DatabasesStatusesController_getStatus: { @@ -18606,12 +21544,27 @@ export interface operations { 'application/json': components['schemas']['DatabaseStatusResponse'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get statuses of databases of a project */ 500: { headers: { @@ -18643,12 +21596,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update database password */ 500: { headers: { @@ -18678,12 +21646,27 @@ export interface operations { 'application/json': components['schemas']['DiskResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get database disk attributes */ 500: { headers: { @@ -18715,12 +21698,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to modify database disk */ 500: { headers: { @@ -18750,12 +21748,27 @@ export interface operations { 'application/json': components['schemas']['DiskAutoscaleConfig'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get project disk autoscale config */ 500: { headers: { @@ -18789,12 +21802,27 @@ export interface operations { 'application/json': components['schemas']['DiskAutoscaleConfig'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update project disk autoscale config */ 500: { headers: { @@ -18824,12 +21852,27 @@ export interface operations { 'application/json': components['schemas']['DiskUtilMetricsResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get disk utilization */ 500: { headers: { @@ -18852,6 +21895,34 @@ export interface operations { | 'cpu_usage_busy_idle' | 'max_cpu_usage' | 'avg_cpu_usage' + | 'ram_usage' + | 'ram_usage_total' + | 'ram_usage_available' + | 'ram_usage_used' + | 'ram_usage_free' + | 'ram_usage_cache_and_buffers' + | 'ram_usage_swap' + | 'swap_usage' + | 'client_connections_pgbouncer' + | 'network_receive_bytes' + | 'network_transmit_bytes' + | 'pgbouncer_pools_client_active_connections' + | 'supavisor_connections_active' + | 'client_connections_postgres' + | 'client_connections_authenticator' + | 'client_connections_supabase_auth_admin' + | 'client_connections_supabase_storage_admin' + | 'client_connections_supabase_admin' + | 'client_connections_other' + | 'realtime_connections_connected' + | 'realtime_channel_joins' + | 'realtime_channel_events' + | 'realtime_channel_presence_events' + | 'realtime_channel_db_events' + | 'realtime_authorization_rls_execution_time' + | 'realtime_payload_size' + | 'realtime_replication_connection_lag' + | 'realtime_sum_connections_connected' | 'disk_io_budget' | 'disk_io_consumption' | 'disk_io_usage' @@ -18865,37 +21936,9 @@ export interface operations { | 'disk_fs_used' | 'disk_fs_used_wal' | 'disk_fs_used_system' - | 'ram_usage' - | 'ram_usage_total' - | 'ram_usage_available' - | 'ram_usage_used' - | 'ram_usage_free' - | 'ram_usage_cache_and_buffers' - | 'ram_usage_swap' - | 'swap_usage' - | 'client_connections_pgbouncer' | 'physical_replication_lag_physical_replica_lag_seconds' | 'pg_stat_database_num_backends' - | 'supavisor_connections_active' - | 'client_connections_postgres' - | 'client_connections_authenticator' - | 'client_connections_supabase_auth_admin' - | 'client_connections_supabase_storage_admin' - | 'client_connections_supabase_admin' - | 'client_connections_other' | 'max_db_connections' - | 'network_receive_bytes' - | 'network_transmit_bytes' - | 'pgbouncer_pools_client_active_connections' - | 'realtime_connections_connected' - | 'realtime_channel_joins' - | 'realtime_channel_events' - | 'realtime_channel_presence_events' - | 'realtime_channel_db_events' - | 'realtime_authorization_rls_execution_time' - | 'realtime_payload_size' - | 'realtime_sum_connections_connected' - | 'realtime_replication_connection_lag' databaseIdentifier?: string endDate: string interval?: '1m' | '5m' | '10m' | '30m' | '1h' | '1d' @@ -18916,12 +21959,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get project's usage metrics */ 500: { headers: { @@ -18949,12 +22007,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get project health check */ 500: { headers: { @@ -18984,12 +22057,27 @@ export interface operations { 'application/json': components['schemas']['LoadBalancerDetailResponse'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } ProjectAdvisorNotificationsController_listNotificationExceptions: { @@ -19012,12 +22100,27 @@ export interface operations { 'application/json': components['schemas']['ListNotificationExceptionsResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve advisor notification exceptions */ 500: { headers: { @@ -19051,12 +22154,27 @@ export interface operations { 'application/json': components['schemas']['CreateNotificationExceptionsResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to create advisor notification exceptions */ 500: { headers: { @@ -19086,12 +22204,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to delete advisor notification exceptions */ 500: { headers: { @@ -19124,12 +22257,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update advisor notification exceptions */ 500: { headers: { @@ -19157,12 +22305,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to pause the project */ 500: { headers: { @@ -19192,12 +22355,27 @@ export interface operations { 'application/json': components['schemas']['PauseStatusResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } ResizeController_resizeDatabase: { @@ -19222,12 +22400,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to resize database disk */ 500: { headers: { @@ -19259,12 +22452,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to restart project */ 500: { headers: { @@ -19296,12 +22504,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to restart given services */ 500: { headers: { @@ -19335,12 +22558,27 @@ export interface operations { 'application/json': components['schemas']['UnpauseProjectResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to unpause project */ 500: { headers: { @@ -19370,12 +22608,27 @@ export interface operations { 'application/json': components['schemas']['RestoreCancellation'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to cancel project restoration */ 500: { headers: { @@ -19405,12 +22658,27 @@ export interface operations { 'application/json': components['schemas']['UnpauseProjectAvailableVersionsResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve available versions */ 500: { headers: { @@ -19440,12 +22708,27 @@ export interface operations { 'application/json': components['schemas']['GetProjectLintsResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } ProjectRunLintsController_runLintByName: { @@ -19498,12 +22781,27 @@ export interface operations { 'application/json': components['schemas']['RunLintByNameResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } ProjectRunLintsController_runLeakedServiceKeyLint: { @@ -19526,12 +22824,27 @@ export interface operations { 'application/json': components['schemas']['GetLeakedServiceKeyLintResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } ProjectRunLintsController_runAuthBackupAdminLint: { @@ -19554,12 +22867,27 @@ export interface operations { 'application/json': components['schemas']['AuthBackupAdminLintResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } ProjectServiceVersionsController_getServiceVersions: { @@ -19582,12 +22910,27 @@ export interface operations { 'application/json': components['schemas']['ServiceVersions'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } SettingsController_getProjectSettings: { @@ -19610,12 +22953,27 @@ export interface operations { 'application/json': components['schemas']['ProjectSettingsResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to retrieve project's settings */ 500: { headers: { @@ -19649,12 +23007,27 @@ export interface operations { 'application/json': components['schemas']['ProjectSensitivityResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update project */ 500: { headers: { @@ -19682,12 +23055,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get project's status */ 500: { headers: { @@ -19719,12 +23107,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } ProjectTransferController_previewTransfer: { @@ -19751,12 +23154,27 @@ export interface operations { 'application/json': components['schemas']['PreviewProjectTransferResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } ProjectsController_getRegions: { @@ -19800,12 +23218,27 @@ export interface operations { 'application/json': components['schemas']['GetProjectByFlyExtensionIdResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } } } ReplicationDestinationsController_getDestinations: { @@ -19829,12 +23262,27 @@ export interface operations { 'application/json': components['schemas']['ReplicationDestinationsResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Unexpected error while listing destinations. */ 500: { headers: { @@ -19869,12 +23317,27 @@ export interface operations { 'application/json': components['schemas']['CreateDestinationResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Unexpected error while creating destination. */ 500: { headers: { @@ -19909,12 +23372,27 @@ export interface operations { 'application/json': components['schemas']['CreateDestinationPipelineResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Unexpected error while creating destination or pipeline. */ 500: { headers: { @@ -19951,12 +23429,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Unexpected error while updating destination or pipeline. */ 500: { headers: { @@ -19989,12 +23482,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Unexpected error while deleting destination or pipeline. */ 500: { headers: { @@ -20027,12 +23535,27 @@ export interface operations { 'application/json': components['schemas']['ReplicationDestinationResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Unexpected error while retrieving destination. */ 500: { headers: { @@ -20067,12 +23590,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Unexpected error while updating destination. */ 500: { headers: { @@ -20103,12 +23641,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Unexpected error while deleting destination. */ 500: { headers: { @@ -20139,12 +23692,27 @@ export interface operations { 'application/json': components['schemas']['ReplicationPipelinesResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Unexpected error while listing pipelines. */ 500: { headers: { @@ -20179,12 +23747,27 @@ export interface operations { 'application/json': components['schemas']['CreatePipelineResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Unexpected error while creating pipeline. */ 500: { headers: { @@ -20217,12 +23800,27 @@ export interface operations { 'application/json': components['schemas']['ReplicationPipelineResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Unexpected error while retrieving pipeline. */ 500: { headers: { @@ -20257,12 +23855,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Unexpected error while updating pipeline. */ 500: { headers: { @@ -20293,12 +23906,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Unexpected error while deleting pipeline. */ 500: { headers: { @@ -20331,12 +23959,27 @@ export interface operations { 'application/json': components['schemas']['ReplicationPipelineReplicationStatusResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Unexpected error while retrieving replication status. */ 500: { headers: { @@ -20373,12 +24016,27 @@ export interface operations { 'application/json': components['schemas']['RollbackTableStateResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Unexpected error while rolling back table state. */ 500: { headers: { @@ -20409,12 +24067,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Unexpected error while starting pipeline. */ 500: { headers: { @@ -20447,12 +24120,27 @@ export interface operations { 'application/json': components['schemas']['ReplicationPipelineStatusResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Unexpected error while retrieving pipeline status. */ 500: { headers: { @@ -20483,12 +24171,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Unexpected error while stopping pipeline. */ 500: { headers: { @@ -20521,12 +24224,27 @@ export interface operations { 'application/json': components['schemas']['ReplicationPipelineVersionResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Unexpected error while retrieving pipeline version. */ 500: { headers: { @@ -20561,12 +24279,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Unexpected error while updating pipeline version. */ 500: { headers: { @@ -20597,12 +24330,27 @@ export interface operations { 'application/json': components['schemas']['ReplicationSourcesResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Unexpected error while listing sources. */ 500: { headers: { @@ -20633,12 +24381,27 @@ export interface operations { 'application/json': components['schemas']['CreateSourceResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Unexpected error while creating source. */ 500: { headers: { @@ -20671,12 +24434,27 @@ export interface operations { 'application/json': components['schemas']['ReplicationPublicationsResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Unexpected error while listing publications. */ 500: { headers: { @@ -20711,12 +24489,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Unexpected error while creating publication. */ 500: { headers: { @@ -20749,12 +24542,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Unexpected error while deleting publication. */ 500: { headers: { @@ -20787,12 +24595,27 @@ export interface operations { 'application/json': components['schemas']['ReplicationTablesResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Unexpected error while listing tables. */ 500: { headers: { @@ -20823,12 +24646,27 @@ export interface operations { 'application/json': components['schemas']['CreateTenantSourceResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Unexpected error while creating tenant or source. */ 500: { headers: { @@ -20924,12 +24762,27 @@ export interface operations { 'application/json': components['schemas']['GetArchiveResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get project storage archive */ 500: { headers: { @@ -20957,12 +24810,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to create project storage archive */ 500: { headers: { @@ -20992,12 +24860,27 @@ export interface operations { 'application/json': components['schemas']['StorageBucketResponse'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get list of buckets */ 500: { headers: { @@ -21029,12 +24912,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to create bucket */ 500: { headers: { @@ -21066,12 +24964,27 @@ export interface operations { 'application/json': components['schemas']['StorageBucketResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get bucket */ 500: { headers: { @@ -21101,12 +25014,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to delete bucket */ 500: { headers: { @@ -21140,12 +25068,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to update bucket */ 500: { headers: { @@ -21175,12 +25118,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to empty bucket */ 500: { headers: { @@ -21214,12 +25172,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to delete objects */ 500: { headers: { @@ -21255,12 +25228,27 @@ export interface operations { 'application/json': components['schemas']['CopyObjectResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to copy object */ 500: { headers: { @@ -21296,12 +25284,27 @@ export interface operations { 'application/json': components['schemas']['StreamableFile'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to download the file */ 500: { headers: { @@ -21337,12 +25340,27 @@ export interface operations { 'application/json': components['schemas']['StorageObject'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get list of objects with the given bucket */ 500: { headers: { @@ -21376,12 +25394,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to move object */ 500: { headers: { @@ -21417,12 +25450,27 @@ export interface operations { 'application/json': components['schemas']['PublicUrlResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to create public URL */ 500: { headers: { @@ -21458,12 +25506,27 @@ export interface operations { 'application/json': components['schemas']['SignedUrlResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to create a signed URL */ 500: { headers: { @@ -21499,12 +25562,27 @@ export interface operations { 'application/json': components['schemas']['SignedUrlsResponse'][] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get multiple signed URLs */ 500: { headers: { @@ -21534,12 +25612,27 @@ export interface operations { 'application/json': components['schemas']['GetStorageCredentialsResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to get project storage credentials */ 500: { headers: { @@ -21573,12 +25666,27 @@ export interface operations { 'application/json': components['schemas']['CreateStorageCredentialResponse'] } } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to create project storage credential */ 500: { headers: { @@ -21608,12 +25716,27 @@ export interface operations { } content?: never } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden action */ 403: { headers: { [name: string]: unknown } content?: never } + /** @description Rate limit exceeded */ + 429: { + headers: { + [name: string]: unknown + } + content?: never + } /** @description Failed to delete project storage credential */ 500: { headers: { diff --git a/packages/common/enabled-features/enabled-features.json b/packages/common/enabled-features/enabled-features.json index e65cb086e7a..996dc0790ac 100644 --- a/packages/common/enabled-features/enabled-features.json +++ b/packages/common/enabled-features/enabled-features.json @@ -40,6 +40,8 @@ "docs:auth_troubleshooting": true, "docs:compliance": true, "docs:contribution": true, + "docs:fdw": true, + "docs:footer": true, "docs:self-hosting": true, "docs:framework_quickstarts": true, "docs:full_getting_started": true, @@ -51,6 +53,8 @@ "docs:production_checklist": true, "docs:web_apps": true, + "edge_functions:show_stripe_example": true, + "feedback:docs": true, "integrations:partners": true, diff --git a/packages/common/enabled-features/enabled-features.schema.json b/packages/common/enabled-features/enabled-features.schema.json index 06ce9d6586a..21a69510b58 100644 --- a/packages/common/enabled-features/enabled-features.schema.json +++ b/packages/common/enabled-features/enabled-features.schema.json @@ -144,6 +144,14 @@ "type": "boolean", "description": "Enable documentation on contribution" }, + "docs:fdw": { + "type": "boolean", + "description": "Enable documentation on foreign data wrappers" + }, + "docs:footer": { + "type": "boolean", + "description": "Enable footer on docs site" + }, "docs:framework_quickstarts": { "type": "boolean", "description": "Enable framework quickstarts documentation" @@ -185,6 +193,11 @@ "description": "Enable web apps getting started documentation" }, + "edge_functions:show_stripe_example": { + "type": "boolean", + "description": "Show all the Stripe example in edge function templates in the edge functions page." + }, + "feedback:docs": { "type": "boolean", "description": "Enable feedback submission for docs site" @@ -368,6 +381,8 @@ "docs:auth_troubleshooting", "docs:compliance", "docs:contribution", + "docs:fdw", + "docs:footer", "docs:framework_quickstarts", "docs:full_getting_started", "docs:full_platform", diff --git a/packages/pg-meta/src/sql/studio/check-primary-keys-exists.ts b/packages/pg-meta/src/sql/studio/check-primary-keys-exists.ts new file mode 100644 index 00000000000..203e72bf423 --- /dev/null +++ b/packages/pg-meta/src/sql/studio/check-primary-keys-exists.ts @@ -0,0 +1,20 @@ +export const getCheckPrimaryKeysExistsSQL = (tables: { name: string; schema: string }[]) => { + const formattedTables = tables.map((table) => `'${table.schema}.${table.name}'`).join(',') + + return /* SQL */ ` +WITH targets(rel) AS ( + SELECT unnest(ARRAY[${formattedTables}]::regclass[]) +) +SELECT + c.oid AS id, + n.nspname AS schema, + c.relname AS name, + (con.conrelid IS NOT NULL) AS has_primary_key +FROM targets t +JOIN pg_class c ON c.oid = t.rel +JOIN pg_namespace n ON n.oid = c.relnamespace +LEFT JOIN pg_constraint con + ON con.conrelid = c.oid AND con.contype = 'p' +ORDER BY n.nspname, c.relname; +` +} diff --git a/packages/shared-data/regions.ts b/packages/shared-data/regions.ts index d38d8db339d..51d59e0d910 100644 --- a/packages/shared-data/regions.ts +++ b/packages/shared-data/regions.ts @@ -1,5 +1,5 @@ export type CloudProvider = 'FLY' | 'AWS' | 'AWS_K8S' | 'AWS_NIMBUS' -export type Region = typeof AWS_REGIONS | typeof FLY_REGIONS +export type Region = Partial | Partial export const AWS_REGIONS = { WEST_US: { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 963deb0a236..3f34bd9d089 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -180,7 +180,7 @@ importers: version: 0.511.0(react@18.3.1) next: specifier: 'catalog:' - version: 15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) + version: 15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) payload: specifier: 3.52.0 version: 3.52.0(graphql@16.11.0)(typescript@5.9.2) @@ -237,10 +237,10 @@ importers: version: 1.2.0 next: specifier: 'catalog:' - version: 15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) + version: 15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) next-contentlayer2: specifier: 0.4.6 - version: 0.4.6(contentlayer2@0.4.6(esbuild@0.25.2)(markdown-wasm@1.2.0)(supports-color@8.1.1))(esbuild@0.25.2)(markdown-wasm@1.2.0)(next@15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1) + version: 0.4.6(contentlayer2@0.4.6(esbuild@0.25.2)(markdown-wasm@1.2.0)(supports-color@8.1.1))(esbuild@0.25.2)(markdown-wasm@1.2.0)(next@15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1) next-themes: specifier: ^0.3.0 version: 0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -382,7 +382,7 @@ importers: version: 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@sentry/nextjs': specifier: ^10.3.0 - version: 10.3.0(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1)(supports-color@8.1.1)(webpack@5.94.0) + version: 10.3.0(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1)(supports-color@8.1.1)(webpack@5.94.0) '@supabase/supabase-js': specifier: 'catalog:' version: 2.49.3 @@ -490,7 +490,7 @@ importers: version: 1.0.1 next: specifier: 'catalog:' - version: 15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) + version: 15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) next-mdx-remote: specifier: ^4.4.1 version: 4.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1) @@ -502,7 +502,7 @@ importers: version: 0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) nuqs: specifier: ^1.19.1 - version: 1.19.1(next@15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)) + version: 1.19.1(next@15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)) openai: specifier: ^4.75.1 version: 4.104.0(encoding@0.1.13)(ws@8.18.3)(zod@3.25.76) @@ -600,6 +600,9 @@ importers: '@supabase/supa-mdx-lint': specifier: 0.3.1 version: 0.3.1 + '@testing-library/react': + specifier: ^16.0.0 + version: 16.0.0(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/common-tags': specifier: ^1.8.4 version: 1.8.4 @@ -701,13 +704,13 @@ importers: version: 5.1.3 vite: specifier: 'catalog:' - version: 6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) + version: 6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) vite-tsconfig-paths: specifier: ^4.3.2 - version: 4.3.2(supports-color@8.1.1)(typescript@5.9.2)(vite@6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5)) + version: 4.3.2(supports-color@8.1.1)(typescript@5.9.2)(vite@6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5)) vitest: specifier: ^3.0.5 - version: 3.0.9(@types/node@22.13.14)(jiti@2.4.2)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) + version: 3.0.9(@types/node@22.13.14)(jiti@2.5.1)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) apps/studio: dependencies: @@ -794,7 +797,7 @@ importers: version: 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@sentry/nextjs': specifier: ^10.3.0 - version: 10.3.0(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1)(supports-color@8.1.1)(webpack@5.94.0) + version: 10.3.0(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1)(supports-color@8.1.1)(webpack@5.94.0) '@std/path': specifier: npm:@jsr/std__path@^1.0.8 version: '@jsr/std__path@1.0.8' @@ -845,7 +848,7 @@ importers: version: 2.1.0(@aws-sdk/credential-provider-web-identity@3.830.0) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(supports-color@8.1.1)(vite@6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5)) + version: 4.3.4(supports-color@8.1.1)(vite@6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1)) '@zip.js/zip.js': specifier: ^2.7.29 version: 2.7.30 @@ -935,13 +938,13 @@ importers: version: 0.52.2 next: specifier: 'catalog:' - version: 15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) + version: 15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) next-themes: specifier: ^0.3.0 version: 0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) nuqs: specifier: ^2.4.1 - version: 2.4.1(next@15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react-router@7.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 2.4.1(next@15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react-router@7.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) openai: specifier: ^4.75.1 version: 4.104.0(encoding@0.1.13)(ws@8.18.3)(zod@3.25.76) @@ -1212,7 +1215,7 @@ importers: version: 2.4.11(typescript@5.9.2) next-router-mock: specifier: ^0.9.13 - version: 0.9.13(next@15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1) + version: 0.9.13(next@15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1) node-mocks-http: specifier: ^1.17.2 version: 1.17.2(@types/node@22.13.14) @@ -1239,13 +1242,13 @@ importers: version: 5.9.2 vite: specifier: 'catalog:' - version: 6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) + version: 6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1) vite-tsconfig-paths: specifier: ^4.3.2 - version: 4.3.2(supports-color@8.1.1)(typescript@5.9.2)(vite@6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5)) + version: 4.3.2(supports-color@8.1.1)(typescript@5.9.2)(vite@6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1)) vitest: specifier: ^3.0.5 - version: 3.0.9(@types/node@22.13.14)(@vitest/ui@3.0.4)(jiti@2.4.2)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.4.11(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) + version: 3.0.9(@types/node@22.13.14)(@vitest/ui@3.0.4)(jiti@2.5.1)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.4.11(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1) apps/ui-library: dependencies: @@ -1338,13 +1341,16 @@ importers: version: 1.1.8(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-router/fs-routes': specifier: ^7.4.0 - version: 7.4.0(@react-router/dev@7.4.0(@types/node@24.3.1)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(react-router@7.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(vite@6.3.5(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5))(yaml@2.4.5))(typescript@5.9.2) + version: 7.4.0(@react-router/dev@7.4.0(@types/node@24.3.1)(babel-plugin-macros@3.1.0)(jiti@2.5.1)(react-router@7.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(vite@6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1))(yaml@2.8.1))(typescript@5.9.2) '@supabase/postgrest-js': specifier: '*' version: 1.19.2 '@supabase/supa-mdx-lint': specifier: 0.2.6-alpha version: 0.2.6-alpha + '@supabase/vue-blocks': + specifier: workspace:* + version: link:../../blocks/vue '@tanstack/react-query': specifier: ^5.83.0 version: 5.83.0(react@18.3.1) @@ -1383,10 +1389,10 @@ importers: version: 0.436.0(react@18.3.1) next: specifier: 'catalog:' - version: 15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) + version: 15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) next-contentlayer2: specifier: 0.4.6 - version: 0.4.6(contentlayer2@0.4.6(esbuild@0.25.2)(markdown-wasm@1.2.0)(supports-color@8.1.1))(esbuild@0.25.2)(markdown-wasm@1.2.0)(next@15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1) + version: 0.4.6(contentlayer2@0.4.6(esbuild@0.25.2)(markdown-wasm@1.2.0)(supports-color@8.1.1))(esbuild@0.25.2)(markdown-wasm@1.2.0)(next@15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1) next-themes: specifier: ^0.3.0 version: 0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1456,7 +1462,7 @@ importers: devDependencies: '@react-router/dev': specifier: ^7.1.5 - version: 7.4.0(@types/node@24.3.1)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(react-router@7.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(vite@6.3.5(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5))(yaml@2.4.5) + version: 7.4.0(@types/node@24.3.1)(babel-plugin-macros@3.1.0)(jiti@2.5.1)(react-router@7.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(vite@6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1))(yaml@2.8.1) '@shikijs/compat': specifier: ^1.1.7 version: 1.6.0 @@ -1471,7 +1477,7 @@ importers: version: 1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tanstack/react-start': specifier: ^1.114.25 - version: 1.114.27(@electric-sql/pglite@0.2.15)(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/node@24.3.1)(aws4fetch@1.0.20)(babel-plugin-macros@3.1.0)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(vite@6.3.5(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5))(webpack@5.94.0(esbuild@0.25.2))(yaml@2.4.5) + version: 1.114.27(@electric-sql/pglite@0.2.15)(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/node@24.3.1)(aws4fetch@1.0.20)(babel-plugin-macros@3.1.0)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.5.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(vite@6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1))(webpack@5.94.0(esbuild@0.25.2))(yaml@2.8.1) '@types/common-tags': specifier: ^1.8.4 version: 1.8.4 @@ -1525,7 +1531,7 @@ importers: version: 5.9.2 vite: specifier: 'catalog:' - version: 6.3.5(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) + version: 6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1) apps/www: dependencies: @@ -1573,7 +1579,7 @@ importers: version: 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@sentry/nextjs': specifier: ^10 - version: 10.3.0(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1)(supports-color@8.1.1)(webpack@5.94.0) + version: 10.3.0(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1)(supports-color@8.1.1)(webpack@5.94.0) '@supabase/supabase-js': specifier: 'catalog:' version: 2.49.3 @@ -1633,7 +1639,7 @@ importers: version: 1.2.0 next: specifier: 'catalog:' - version: 15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) + version: 15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) next-mdx-remote: specifier: ^4.4.1 version: 4.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1) @@ -1771,6 +1777,31 @@ importers: specifier: 'catalog:' version: 3.25.76 + blocks/vue: + dependencies: + '@supabase/ssr': + specifier: ^0.6.1 + version: 0.6.1(@supabase/supabase-js@2.49.3) + '@supabase/supabase-js': + specifier: ^2.49.1 + version: 2.49.3 + h3: + specifier: ^1.15.4 + version: 1.15.4 + nuxt: + specifier: ^4.0.3 + version: 4.1.2(@electric-sql/pglite@0.2.15)(@parcel/watcher@2.5.1)(@types/node@24.3.1)(@vue/compiler-sfc@3.5.21)(aws4fetch@1.0.20)(db0@0.3.2(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(eslint@8.57.0(supports-color@8.1.1))(ioredis@5.7.0(supports-color@8.1.1))(magicast@0.3.5)(rollup@4.50.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(typescript@5.9.2)(vite@6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1))(yaml@2.8.1) + devDependencies: + shadcn: + specifier: ^2.10.0 + version: 2.10.0(@types/node@24.3.1)(supports-color@8.1.1)(typescript@5.9.2) + tsconfig: + specifier: workspace:* + version: link:../../packages/tsconfig + vite: + specifier: 'catalog:' + version: 6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) + e2e/studio: dependencies: '@playwright/test': @@ -1848,10 +1879,10 @@ importers: version: 5.9.2 vite: specifier: 'catalog:' - version: 6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.4.5) + version: 6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) vitest: specifier: ^3.0.5 - version: 3.0.9(@types/node@22.13.14)(@vitest/ui@3.0.4)(jiti@2.4.2)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.4.5) + version: 3.0.9(@types/node@22.13.14)(@vitest/ui@3.0.4)(jiti@2.5.1)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) packages/api-types: devDependencies: @@ -1911,7 +1942,7 @@ importers: version: 4.17.21 next: specifier: 'catalog:' - version: 15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) + version: 15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) next-themes: specifier: ^0.3.0 version: 0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1957,13 +1988,13 @@ importers: version: 5.9.2 vitest: specifier: ^3.0.5 - version: 3.0.9(@types/node@22.13.14)(@vitest/ui@3.0.4)(jiti@2.4.2)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.4.5) + version: 3.0.9(@types/node@22.13.14)(@vitest/ui@3.0.4)(jiti@2.5.1)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) packages/config: dependencies: '@mertasan/tailwindcss-variables': specifier: ^2.2.3 - version: 2.7.0(autoprefixer@10.4.16(postcss@8.5.3))(postcss@8.5.3) + version: 2.7.0(autoprefixer@10.4.21(postcss@8.5.6))(postcss@8.5.6) '@radix-ui/colors': specifier: ^0.1.8 version: 0.1.9 @@ -2060,7 +2091,7 @@ importers: version: 8.11.11 '@vitest/coverage-v8': specifier: ^3.0.9 - version: 3.0.9(supports-color@8.1.1)(vitest@3.0.9(@types/node@24.3.1)(jiti@2.4.2)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@24.3.1)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.4.5)) + version: 3.0.9(supports-color@8.1.1)(vitest@3.0.9(@types/node@24.3.1)(jiti@2.5.1)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@24.3.1)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)) npm-run-all: specifier: ^4.1.5 version: 4.1.5 @@ -2075,10 +2106,10 @@ importers: version: 5.9.2 vite: specifier: 'catalog:' - version: 6.3.5(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.4.5) + version: 6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) vitest: specifier: ^3.0.5 - version: 3.0.9(@types/node@24.3.1)(jiti@2.4.2)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@24.3.1)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.4.5) + version: 3.0.9(@types/node@24.3.1)(jiti@2.5.1)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@24.3.1)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) packages/shared-data: {} @@ -2211,7 +2242,7 @@ importers: version: 0.436.0(react@18.3.1) next: specifier: 'catalog:' - version: 15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) + version: 15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) next-themes: specifier: ^0.3.0 version: 0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -2296,7 +2327,7 @@ importers: version: 15.5.7 '@vitest/coverage-v8': specifier: ^3.0.9 - version: 3.0.9(supports-color@8.1.1)(vitest@3.0.9(@types/node@22.13.14)(jiti@2.4.2)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.4.5)) + version: 3.0.9(supports-color@8.1.1)(vitest@3.0.9(@types/node@22.13.14)(jiti@2.5.1)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)) common: specifier: workspace:* version: link:../common @@ -2317,10 +2348,10 @@ importers: version: 5.9.2 vite: specifier: 'catalog:' - version: 6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.4.5) + version: 6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) vitest: specifier: ^3.0.5 - version: 3.0.9(@types/node@22.13.14)(@vitest/ui@3.0.4)(jiti@2.4.2)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.4.5) + version: 3.0.9(@types/node@22.13.14)(@vitest/ui@3.0.4)(jiti@2.5.1)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) packages/ui-patterns: dependencies: @@ -2338,7 +2369,7 @@ importers: version: 2.49.3 '@vitest/coverage-v8': specifier: ^3.0.9 - version: 3.0.9(supports-color@8.1.1)(vitest@3.0.9(@types/node@22.13.14)(jiti@2.4.2)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5)) + version: 3.0.9(supports-color@8.1.1)(vitest@3.0.9(@types/node@22.13.14)(jiti@2.5.1)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1)) class-variance-authority: specifier: ^0.6.0 version: 0.6.1 @@ -2380,7 +2411,7 @@ importers: version: 0.52.2 next: specifier: 'catalog:' - version: 15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) + version: 15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) next-themes: specifier: '*' version: 0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -2489,7 +2520,7 @@ importers: version: link:../api-types next-router-mock: specifier: ^0.9.13 - version: 0.9.13(next@15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1) + version: 0.9.13(next@15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1) tsx: specifier: ^4.19.3 version: 4.19.3 @@ -2504,10 +2535,10 @@ importers: version: 6.0.3 vite: specifier: 'catalog:' - version: 6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) + version: 6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1) vitest: specifier: ^3.0.5 - version: 3.0.9(@types/node@22.13.14)(jiti@2.4.2)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) + version: 3.0.9(@types/node@22.13.14)(jiti@2.5.1)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1) packages: @@ -2979,10 +3010,6 @@ packages: resolution: {integrity: sha512-DIIotRnefVL6DiaHtO6/21DhJ4JZnnIwdNbpwiAhdt/AVbttcE4yw925gsjur0OGv5BTYXQXU3YnANBYnZjuQA==} engines: {node: '>=18.0.0'} - '@babel/code-frame@7.24.7': - resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} - engines: {node: '>=6.9.0'} - '@babel/code-frame@7.26.2': resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} @@ -2995,28 +3022,54 @@ packages: resolution: {integrity: sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==} engines: {node: '>=6.9.0'} + '@babel/compat-data@7.28.4': + resolution: {integrity: sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==} + engines: {node: '>=6.9.0'} + '@babel/core@7.26.10': resolution: {integrity: sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==} engines: {node: '>=6.9.0'} + '@babel/core@7.28.4': + resolution: {integrity: sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==} + engines: {node: '>=6.9.0'} + '@babel/generator@7.27.0': resolution: {integrity: sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==} engines: {node: '>=6.9.0'} + '@babel/generator@7.28.3': + resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==} + engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.25.9': resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.27.3': + resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} + engines: {node: '>=6.9.0'} + '@babel/helper-compilation-targets@7.26.5': resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==} engines: {node: '>=6.9.0'} + '@babel/helper-compilation-targets@7.27.2': + resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-create-class-features-plugin@7.27.0': resolution: {integrity: sha512-vSGCvMecvFCd/BdpGlhpXYNhhC4ccxyvQWpbGL4CWbvfEoLFWUZuSuf7s9Aw70flgQF+6vptvgK2IfOnKlRmBg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-create-class-features-plugin@7.28.3': + resolution: {integrity: sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-environment-visitor@7.24.7': resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} engines: {node: '>=6.9.0'} @@ -3025,6 +3078,10 @@ packages: resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==} engines: {node: '>=6.9.0'} + '@babel/helper-globals@7.28.0': + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} + engines: {node: '>=6.9.0'} + '@babel/helper-hoist-variables@7.24.7': resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} engines: {node: '>=6.9.0'} @@ -3033,34 +3090,66 @@ packages: resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==} engines: {node: '>=6.9.0'} + '@babel/helper-member-expression-to-functions@7.27.1': + resolution: {integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==} + engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.25.9': resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.27.1': + resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} + engines: {node: '>=6.9.0'} + '@babel/helper-module-transforms@7.26.0': resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-module-transforms@7.28.3': + resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-optimise-call-expression@7.25.9': resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==} engines: {node: '>=6.9.0'} + '@babel/helper-optimise-call-expression@7.27.1': + resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} + engines: {node: '>=6.9.0'} + '@babel/helper-plugin-utils@7.26.5': resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==} engines: {node: '>=6.9.0'} + '@babel/helper-plugin-utils@7.27.1': + resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} + engines: {node: '>=6.9.0'} + '@babel/helper-replace-supers@7.26.5': resolution: {integrity: sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-replace-supers@7.27.1': + resolution: {integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-skip-transparent-expression-wrappers@7.25.9': resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==} engines: {node: '>=6.9.0'} + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': + resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==} + engines: {node: '>=6.9.0'} + '@babel/helper-split-export-declaration@7.24.7': resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} engines: {node: '>=6.9.0'} @@ -3073,6 +3162,10 @@ packages: resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.24.7': resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} @@ -3089,12 +3182,16 @@ packages: resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.27.1': + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} + engines: {node: '>=6.9.0'} + '@babel/helpers@7.26.10': resolution: {integrity: sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g==} engines: {node: '>=6.9.0'} - '@babel/highlight@7.24.7': - resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} + '@babel/helpers@7.28.4': + resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} engines: {node: '>=6.9.0'} '@babel/parser@7.24.7': @@ -3112,6 +3209,11 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.28.4': + resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/plugin-syntax-decorators@7.25.9': resolution: {integrity: sha512-ryzI0McXUPJnRCvMo4lumIKZUzhYUO/ScI+Mz4YVaTLt04DHNSjEUjKVvbzQjZFLuod/cYEc07mJWhzl6v4DPg==} engines: {node: '>=6.9.0'} @@ -3130,12 +3232,24 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-jsx@7.27.1': + resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-typescript@7.25.9': resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-typescript@7.27.1': + resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-modules-commonjs@7.26.3': resolution: {integrity: sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==} engines: {node: '>=6.9.0'} @@ -3160,6 +3274,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-typescript@7.28.0': + resolution: {integrity: sha512-4AEiDEBPIZvLQaWlc9liCavE0xRM0dNca41WtBeM3jgFptfUOSG9z0uteLhq6+3rq+WB6jIvUwKDTpXEHPJ2Vg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/preset-typescript@7.26.0': resolution: {integrity: sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==} engines: {node: '>=6.9.0'} @@ -3178,6 +3298,10 @@ packages: resolution: {integrity: sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==} engines: {node: '>=6.9.0'} + '@babel/template@7.27.2': + resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} + engines: {node: '>=6.9.0'} + '@babel/traverse@7.24.7': resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==} engines: {node: '>=6.9.0'} @@ -3186,6 +3310,10 @@ packages: resolution: {integrity: sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==} engines: {node: '>=6.9.0'} + '@babel/traverse@7.28.4': + resolution: {integrity: sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==} + engines: {node: '>=6.9.0'} + '@babel/types@7.24.7': resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==} engines: {node: '>=6.9.0'} @@ -3194,6 +3322,10 @@ packages: resolution: {integrity: sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==} engines: {node: '>=6.9.0'} + '@babel/types@7.28.4': + resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==} + engines: {node: '>=6.9.0'} + '@bcoe/v8-coverage@1.0.2': resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} engines: {node: '>=18'} @@ -3396,12 +3528,18 @@ packages: '@electric-sql/pglite@0.2.15': resolution: {integrity: sha512-Jiq31Dnk+rg8rMhcSxs4lQvHTyizNo5b269c1gCC3ldQ0sCLrNVPGzy+KnmonKy1ZArTUuXZf23/UamzFMKVaA==} + '@emnapi/core@1.5.0': + resolution: {integrity: sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==} + '@emnapi/runtime@0.43.1': resolution: {integrity: sha512-Q5sMc4Z4gsD4tlmlyFu+MpNAwpR7Gv2errDhVJ+SOhNjWcx8UTqy+hswb8L31RfC8jBvDgcnT87l3xI2w08rAg==} '@emnapi/runtime@1.5.0': resolution: {integrity: sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==} + '@emnapi/wasi-threads@1.1.0': + resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} + '@emotion/babel-plugin@11.13.5': resolution: {integrity: sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==} @@ -4303,6 +4441,9 @@ packages: '@ioredis/commands@1.2.0': resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==} + '@ioredis/commands@1.4.0': + resolution: {integrity: sha512-aFT2yemJJo+TZCmieA7qnYGQooOS7QfNmYrzGtsYd3g9j5iDP8AimYYAesf79ohjbLG12XxC4nG5DyEnC88AsQ==} + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -4326,6 +4467,9 @@ packages: resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} engines: {node: '>=6.0.0'} + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} @@ -4349,8 +4493,8 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - '@jridgewell/trace-mapping@0.3.30': - resolution: {integrity: sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==} + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} @@ -4601,6 +4745,9 @@ packages: resolution: {integrity: sha512-3fkKj25kEjsfObL6IlKPAlHYPq/oYwUkkQ03zsTTiDjD7vg/RxjdiLeCydqtxHZP0JgsXL3D/X5oAkMGzuUp/Q==} engines: {node: '>=12'} + '@napi-rs/wasm-runtime@1.0.5': + resolution: {integrity: sha512-TBr9Cf9onSAS2LQ2+QHx6XcC6h9+RIzJgbqG3++9TUZSH204AwEy5jg3BTQ0VATsyoGj4ee49tN/y6rvaOOtcg==} + '@netlify/functions@3.0.4': resolution: {integrity: sha512-Ox8+ABI+nsLK+c4/oC5dpquXuEIjzfTlJrdQKgQijCsDQoje7inXFAtKDLvvaGvuvE+PVpMLwQcIUL6P9Ob1hQ==} engines: {node: '>=18.0.0'} @@ -4733,6 +4880,52 @@ packages: react: ^18 || ^19.0.0-rc-915b914b3a-20240515 react-dom: ^18 + '@nuxt/cli@3.28.0': + resolution: {integrity: sha512-WQ751WxWLBIeH3TDFt/LWQ2znyAKxpR5+gpv80oerwnVQs4GKajAfR6dIgExXZkjaPUHEFv2lVD9vM+frbprzw==} + engines: {node: ^16.10.0 || >=18.0.0} + hasBin: true + + '@nuxt/devalue@2.0.2': + resolution: {integrity: sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA==} + + '@nuxt/devtools-kit@2.6.3': + resolution: {integrity: sha512-cDmai3Ws6AbJlYy1p4CCwc718cfbqtAjXe6oEc6q03zoJnvX1PsvKUfmU+yuowfqTSR6DZRmH4SjCBWuMjgaKQ==} + peerDependencies: + vite: '>=6.0' + + '@nuxt/devtools-wizard@2.6.3': + resolution: {integrity: sha512-FWXPkuJ1RUp+9nWP5Vvk29cJPNtm4OO38bgr9G8vGbqcRznzgaSODH/92c8sm2dKR7AF+9MAYLL+BexOWOkljQ==} + hasBin: true + + '@nuxt/devtools@2.6.3': + resolution: {integrity: sha512-n+8we7pr0tNl6w+KfbFDXZsYpWIYL4vG/daIdRF66lQ6fLyQy/CcxDAx8+JNu3Ew96RjuBtWRSbCCv454L5p0Q==} + hasBin: true + peerDependencies: + vite: '>=6.0' + + '@nuxt/kit@3.19.2': + resolution: {integrity: sha512-+QiqO0WcIxsKLUqXdVn3m4rzTRm2fO9MZgd330utCAaagGmHsgiMJp67kE14boJEPutnikfz3qOmrzBnDIHUUg==} + engines: {node: '>=18.12.0'} + + '@nuxt/kit@4.1.2': + resolution: {integrity: sha512-P5q41xeEOa6ZQC0PvIP7TSBmOAMxXK4qihDcCbYIJq8RcVsEPbGZVlidmxE6EOw1ucSyodq9nbV31FAKwoL4NQ==} + engines: {node: '>=18.12.0'} + + '@nuxt/schema@4.1.2': + resolution: {integrity: sha512-uFr13C6c52OFbF3hZVIV65KvhQRyrwp1GlAm7EVNGjebY8279QEel57T4R9UA1dn2Et6CBynBFhWoFwwo97Pig==} + engines: {node: ^14.18.0 || >=16.10.0} + + '@nuxt/telemetry@2.6.6': + resolution: {integrity: sha512-Zh4HJLjzvm3Cq9w6sfzIFyH9ozK5ePYVfCUzzUQNiZojFsI2k1QkSBrVI9BGc6ArKXj/O6rkI6w7qQ+ouL8Cag==} + engines: {node: '>=18.12.0'} + hasBin: true + + '@nuxt/vite-builder@4.1.2': + resolution: {integrity: sha512-to9NKVtzMBtyuhIIVgwo/ph5UCONcxkVsoAjm8HnSkDi0o9nDPhHOAg1AUMlvPnHpdXOzwnSrXo/t8E7W+UZ/A==} + engines: {node: ^20.19.0 || >=22.12.0} + peerDependencies: + vue: ^3.3.4 + '@octokit/auth-app@7.1.5': resolution: {integrity: sha512-boklS4E6LpbA3nRx+SU2fRKRGZJdOGoSZne/i3Y0B5rfHOcGwFgcXrwDLdtbv4igfDSnAkZaoNBv1GYjPDKRNw==} engines: {node: '>= 18'} @@ -5207,6 +5400,294 @@ packages: peerDependencies: '@opentelemetry/api': ^1.1.0 + '@oxc-minify/binding-android-arm64@0.87.0': + resolution: {integrity: sha512-ZbJmAfXvNAamOSnXId3BiM3DiuzlD1isqKjtmRFb/hpvChHHA23FSPrFcO16w+ugZKg33sZ93FinFkKtlC4hww==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [android] + + '@oxc-minify/binding-darwin-arm64@0.87.0': + resolution: {integrity: sha512-ewmNsTY8YbjWOI8+EOWKTVATOYvG4Qq4zQHH5VFBeqhQPVusY1ORD6Ei+BijVKrnlbpjibLlkTl8IWqXCGK89A==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [darwin] + + '@oxc-minify/binding-darwin-x64@0.87.0': + resolution: {integrity: sha512-qDH4w4EYttSC3Cs2VCh+CiMYKrcL2SNmnguBZXoUXe/RNk3csM+RhgcwdpX687xGvOhTFhH5PCIA84qh3ZpIbQ==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [darwin] + + '@oxc-minify/binding-freebsd-x64@0.87.0': + resolution: {integrity: sha512-5kxjHlSev2A09rDeITk+LMHxSrU3Iu8pUb0Zp4m+ul8FKlB9FrvFkAYwbctin6g47O98s3Win7Ewhy0w8JaiUA==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [freebsd] + + '@oxc-minify/binding-linux-arm-gnueabihf@0.87.0': + resolution: {integrity: sha512-NjbGXnNaAl5EgyonaDg2cPyH2pTf5a/+AP/5SRCJ0KetpXV22ZSUCvcy04Yt4QqjMcDs+WnJaGVxwx15Ofr6Gw==} + engines: {node: '>=14.0.0'} + cpu: [arm] + os: [linux] + + '@oxc-minify/binding-linux-arm-musleabihf@0.87.0': + resolution: {integrity: sha512-llAjfCA0iV2LMMl+LTR3JhqAc2iQmj+DTKd0VWOrbNOuNczeE9D5kJFkqYplD73LrkuqxrX9oDeUjjeLdVBPXw==} + engines: {node: '>=14.0.0'} + cpu: [arm] + os: [linux] + + '@oxc-minify/binding-linux-arm64-gnu@0.87.0': + resolution: {integrity: sha512-tf2Shom09AaSmu7U1hYYcEFF/cd+20HtmQ8eyGsRkqD5bqUj6lDu8TNSU9FWZ9tcZ83NzyFMwXZWHyeeIIbpxw==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@oxc-minify/binding-linux-arm64-musl@0.87.0': + resolution: {integrity: sha512-pgWeYfSprtpnJVea9Q5eI6Eo80lDGlMw2JdcSMXmShtBjEhBl6bvDNHlV+6kNfh7iT65y/uC6FR8utFrRghu8A==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@oxc-minify/binding-linux-riscv64-gnu@0.87.0': + resolution: {integrity: sha512-O1QPczlT+lqNZVeKOdFxxL+s1RIlnixaJYFLrcqDcRyn82MGKLz7sAenBTFRQoIfLnSxtMGL6dqHOefYkQx7Cg==} + engines: {node: '>=14.0.0'} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@oxc-minify/binding-linux-s390x-gnu@0.87.0': + resolution: {integrity: sha512-tcwt3ZUWOKfNLXN2edxFVHMlIuPvbuyMaKmRopgljSCfFcNHWhfTNlxlvmECRNhuQ91EcGwte6F1dwoeMCNd7A==} + engines: {node: '>=14.0.0'} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@oxc-minify/binding-linux-x64-gnu@0.87.0': + resolution: {integrity: sha512-Xf4AXF14KXUzSnfgTcFLFSM0TykJhFw14+xwNvlAb6WdqXAKlMrz9joIAezc8dkW1NNscCVTsqBUPJ4RhvCM1Q==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@oxc-minify/binding-linux-x64-musl@0.87.0': + resolution: {integrity: sha512-LIqvpx9UihEW4n9QbEljDnfUdAWqhr6dRqmzSFwVAeLZRUECluLCDdsdwemrC/aZkvnisA4w0LFcFr3HmeTLJg==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@oxc-minify/binding-wasm32-wasi@0.87.0': + resolution: {integrity: sha512-h0xluvc+YryfH5G5dndjGHuA/D4Kp85EkPMxqoOjNudOKDCtdobEaC9horhCqnOOQ0lgn+PGFl3w8u4ToOuRrA==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@oxc-minify/binding-win32-arm64-msvc@0.87.0': + resolution: {integrity: sha512-fgxSx+TUc7e2rNtRAMnhHrjqh1e8p/JKmWxRZXtkILveMr/TOHGiDis7U3JJbwycmTZ+HSsJ/PNFQl+tKzmDxw==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [win32] + + '@oxc-minify/binding-win32-x64-msvc@0.87.0': + resolution: {integrity: sha512-K6TTrlitEJgD0FGIW2r0t3CIJNqBkzHT97h49gZLS24ey2UG1zKt27iSHkpXMJYDiG97ZD2yv3pSph1ctMlFXw==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [win32] + + '@oxc-parser/binding-android-arm64@0.87.0': + resolution: {integrity: sha512-3APxTyYaAjpW5zifjzfsPgoIa4YHwA5GBjtgLRQpGVXCykXBIEbUTokoAs411ZuOwS3sdTVXBTGAdziXRd8rUg==} + engines: {node: '>=20.0.0'} + cpu: [arm64] + os: [android] + + '@oxc-parser/binding-darwin-arm64@0.87.0': + resolution: {integrity: sha512-99e8E76M+k3Gtwvs5EU3VTs2hQkJmvnrl/eu7HkBUc9jLFHA4nVjYSgukMuqahWe270udUYEPRfcWKmoE1Nukg==} + engines: {node: '>=20.0.0'} + cpu: [arm64] + os: [darwin] + + '@oxc-parser/binding-darwin-x64@0.87.0': + resolution: {integrity: sha512-2rRo6Dz560/4ot5Q0KPUTEunEObkP8mDC9mMiH0RJk1FiOb9c+xpPbkYoUHNKuVMm8uIoiBCxIAbPtBhs9QaXQ==} + engines: {node: '>=20.0.0'} + cpu: [x64] + os: [darwin] + + '@oxc-parser/binding-freebsd-x64@0.87.0': + resolution: {integrity: sha512-uR+WZAvWkFQPVoeqXgQFr7iy+3hEI295qTbQ4ujmklgM5eTX3YgMFoIV00Stloxfd1irSDDSaK7ySnnzF6mRJg==} + engines: {node: '>=20.0.0'} + cpu: [x64] + os: [freebsd] + + '@oxc-parser/binding-linux-arm-gnueabihf@0.87.0': + resolution: {integrity: sha512-Emm1NpVGKbwzQOIZJI8ZuZu0z8FAd5xscqdS6qpDFpDdEMxk6ab7o3nM8V09RhNCORAzeUlk4TBHQ2Crzjd50A==} + engines: {node: '>=20.0.0'} + cpu: [arm] + os: [linux] + + '@oxc-parser/binding-linux-arm-musleabihf@0.87.0': + resolution: {integrity: sha512-1PPCxRZSJXzQaqc8y+wH7EqPgSfQ/JU3pK6WTN/1SUe/8paNVSKKqk175a8BbRVxGUtPnwEG89pi+xfPTSE7GA==} + engines: {node: '>=20.0.0'} + cpu: [arm] + os: [linux] + + '@oxc-parser/binding-linux-arm64-gnu@0.87.0': + resolution: {integrity: sha512-fcnnsfcyLamJOMVKq+BQ8dasb8gRnZtNpCUfZhaEFAdXQ7J2RmZreFzlygcn80iti0V7c5LejcjHbF4IdK3GAw==} + engines: {node: '>=20.0.0'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@oxc-parser/binding-linux-arm64-musl@0.87.0': + resolution: {integrity: sha512-tBPkSPgRSSbmrje8CUovISi/Hj/tWjZJ3n/qnrjx2B+u86hWtwLsngtPDQa5d4seSyDaHSx6tNEUcH7+g5Ee0Q==} + engines: {node: '>=20.0.0'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@oxc-parser/binding-linux-riscv64-gnu@0.87.0': + resolution: {integrity: sha512-z4UKGM4wv2wEAQAlx2pBq6+pDJw5J/5oDEXqW6yBSLbWLjLDo4oagmRSE3+giOWteUa+0FVJ+ypq4iYxBkYSWg==} + engines: {node: '>=20.0.0'} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@oxc-parser/binding-linux-s390x-gnu@0.87.0': + resolution: {integrity: sha512-6W1ENe/nZtr2TBnrEzmdGEraEAdZOiH3YoUNNeQWuqwLkmpoHTJJdclieToPe/l2IKJ4WL3FsSLSGHE8yt/OEg==} + engines: {node: '>=20.0.0'} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@oxc-parser/binding-linux-x64-gnu@0.87.0': + resolution: {integrity: sha512-s3kB/Ii3X3IOZ27Iu7wx2zYkIcDO22Emu32SNC6kkUSy09dPBc1yaW14TnAkPMe/rvtuzR512JPWj3iGpl+Dng==} + engines: {node: '>=20.0.0'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@oxc-parser/binding-linux-x64-musl@0.87.0': + resolution: {integrity: sha512-3+M9hfrZSDi4+Uy4Ll3rtOuVG3IHDQlj027jgtmAAHJK1eqp4CQfC7rrwE+LFUqUwX+KD2GwlxR+eHyyEf5Gbg==} + engines: {node: '>=20.0.0'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@oxc-parser/binding-wasm32-wasi@0.87.0': + resolution: {integrity: sha512-2jgeEeOa4GbQQg2Et/gFTgs5wKS/+CxIg+CN2mMOJ4EqbmvUVeGiumO01oFOWTYnJy1oONwIocBzrnMuvOcItA==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@oxc-parser/binding-win32-arm64-msvc@0.87.0': + resolution: {integrity: sha512-KZp9poaBaVvuFM0TrsHCDOjPQK5eMDXblz21boMhKHGW5/bOlkMlg3CYn5j0f67FkK68NSdNKREMxmibBeXllQ==} + engines: {node: '>=20.0.0'} + cpu: [arm64] + os: [win32] + + '@oxc-parser/binding-win32-x64-msvc@0.87.0': + resolution: {integrity: sha512-86uisngtp/8XdcerIKxMyJTqgDSTJatkfpylpUH0d96W8Bb9E+bVvM2fIIhLWB0Eb03PeY2BdIT7DNIln9TnHg==} + engines: {node: '>=20.0.0'} + cpu: [x64] + os: [win32] + + '@oxc-project/types@0.87.0': + resolution: {integrity: sha512-ipZFWVGE9fADBVXXWJWY/cxpysc41Gt5upKDeb32F6WMgFyO7XETUMVq8UuREKCih+Km5E6p2VhEvf6Fuhey6g==} + + '@oxc-transform/binding-android-arm64@0.87.0': + resolution: {integrity: sha512-B7W6J8T9cS054LUGLfYkYz8bz5+t+4yPftZ67Bn6MJ03okMLnbbEfm1bID1tqcP5tJwMurTILVy/dQfDYDcMgQ==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [android] + + '@oxc-transform/binding-darwin-arm64@0.87.0': + resolution: {integrity: sha512-HImW3xOPx7FHKqfC5WfE82onhRfnWQUiB7R+JgYrk+7NR404h3zANSPzu3V/W9lbDxlmHTcqoD2LKbNC5j0TQA==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [darwin] + + '@oxc-transform/binding-darwin-x64@0.87.0': + resolution: {integrity: sha512-MDbgugi6mvuPTfS78E2jyozm7493Kuqmpc5r406CsUdEsXlnsF+xvmKlrW9ZIkisO74dD+HWouSiDtNyPQHjlw==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [darwin] + + '@oxc-transform/binding-freebsd-x64@0.87.0': + resolution: {integrity: sha512-N0M5D/4haJw7BMn2WZ3CWz0WkdLyoK1+3KxOyCv2CPedMCxx6eQay2AtJxSzj9tjVU1+ukbSb2fDO24JIJGsVA==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [freebsd] + + '@oxc-transform/binding-linux-arm-gnueabihf@0.87.0': + resolution: {integrity: sha512-PubObCNOUOzm1S+P0yn7S+/6xRLbSPMqhgrb73L3p+J1Z20fv/FYVg0kFd36Yho24TSC/byOkebEZWAtxCasWw==} + engines: {node: '>=14.0.0'} + cpu: [arm] + os: [linux] + + '@oxc-transform/binding-linux-arm-musleabihf@0.87.0': + resolution: {integrity: sha512-Nk2d/FS7sMCmCl99vHojzigakjDPamkjOXs2i+H71o/NqytS0pk3M+tXat8M3IGpeLJIEszA5Mv+dcq731nlYA==} + engines: {node: '>=14.0.0'} + cpu: [arm] + os: [linux] + + '@oxc-transform/binding-linux-arm64-gnu@0.87.0': + resolution: {integrity: sha512-BxFkIcso2V1+FCDoU+KctxvJzSQVSnEZ5EEQ8O3Up9EoFVQRnZ8ktXvqYj2Oqvc4IYPskLPsKUgc9gdK8wGhUg==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@oxc-transform/binding-linux-arm64-musl@0.87.0': + resolution: {integrity: sha512-MZ1/TNaebhXK73j1UDfwyBFnAy0tT3n6otOkhlt1vlJwqboUS/D7E/XrCZmAuHIfVPxAXRPovkl7kfxLB43SKw==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@oxc-transform/binding-linux-riscv64-gnu@0.87.0': + resolution: {integrity: sha512-JCWE6n4Hicu0FVbvmLdH/dS8V6JykOUsbrbDYm6JwFlHr4eFTTlS2B+mh5KPOxcdeOlv/D/XRnvMJ6WGYs25EA==} + engines: {node: '>=14.0.0'} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@oxc-transform/binding-linux-s390x-gnu@0.87.0': + resolution: {integrity: sha512-n2NTgM+3PqFagJV9UXRDNOmYesF+TO9SF9FeHqwVmW893ayef9KK+vfWAAhvOYHXYaKWT5XoHd87ODD7nruyhw==} + engines: {node: '>=14.0.0'} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@oxc-transform/binding-linux-x64-gnu@0.87.0': + resolution: {integrity: sha512-ZOKW3wx0bW2O7jGdOzr8DyLZqX2C36sXvJdsHj3IueZZ//d/NjLZqEiUKz+q0JlERHtCVKShQ5PLaCx7NpuqNg==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@oxc-transform/binding-linux-x64-musl@0.87.0': + resolution: {integrity: sha512-eIspx/JqkVMPK1CAYEOo2J8o49s4ZTf+32MSMUknIN2ZS1fvRmWS0D/xFFaLP/9UGhdrXRIPbn/iSYEA8JnV/g==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@oxc-transform/binding-wasm32-wasi@0.87.0': + resolution: {integrity: sha512-4uRjJQnt/+kmJUIC6Iwzn+MqqZhLP1zInPtDwgL37KI4VuUewUQWoL+sggMssMEgm7ZJwOPoZ6piuSWwMgOqgQ==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@oxc-transform/binding-win32-arm64-msvc@0.87.0': + resolution: {integrity: sha512-l/qSi4/N5W1yXKU9+1gWGo0tBoRpp4zvHYrpsbq3zbefPL4VYdA0gKF7O10/ZQVkYylzxiVh2zpYO34/FbZdIg==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [win32] + + '@oxc-transform/binding-win32-x64-msvc@0.87.0': + resolution: {integrity: sha512-jG/MhMjfSdyj5KyhnwNWr4mnAlAsz+gNUYpjQ+UXWsfsoB3f8HqbsTkG02RBtNa/IuVQYvYYVf1eIimNN3gBEQ==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [win32] + '@parcel/watcher-android-arm64@2.5.1': resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} engines: {node: '>= 10.0.0'} @@ -5435,13 +5916,22 @@ packages: resolution: {integrity: sha512-FA+nTU8p6OcSH4tLDY5JilGYr1bVWHpNmcLr7xmMEdbWmKHa+3QZ+DqefrXKmdjO/brHTnQZo20lLSjaO7ydog==} engines: {node: '>=18.16.0'} + '@poppinss/colors@4.1.5': + resolution: {integrity: sha512-FvdDqtcRCtz6hThExcFOgW0cWX+xwSMWcRuQe5ZEb2m7cVQOAVZOIMt+/v9RxGiD9/OY16qJBXK4CVKWAPalBw==} + '@poppinss/dumper@0.6.3': resolution: {integrity: sha512-iombbn8ckOixMtuV1p3f8jN6vqhXefNjJttoPaJDMeIk/yIGhkkL3OrHkEjE9SRsgoAx1vBUU2GtgggjvA5hCA==} + '@poppinss/dumper@0.6.4': + resolution: {integrity: sha512-iG0TIdqv8xJ3Lt9O8DrPRxw1MRLjNpoqiSGU03P/wNLP/s0ra0udPJ1J2Tx5M0J3H/cVyEgpbn8xUKRY9j59kQ==} + '@poppinss/exception@1.2.1': resolution: {integrity: sha512-aQypoot0HPSJa6gDPEPTntc1GT6QINrSbgRlRhadGW2WaYqUK3tK4Bw9SBMZXhmxd3GeAlZjVcODHgiu+THY7A==} engines: {node: '>=18'} + '@poppinss/exception@1.2.2': + resolution: {integrity: sha512-m7bpKCD4QMlFCjA/nKTs23fuvoVFoA83brRKmObCUNmi/9tVu8Ve3w4YQAnJu4q3Tjf5fr685HYIC/IA2zHRSg==} + '@prisma/instrumentation@6.13.0': resolution: {integrity: sha512-b97b0sBycGh89RQcqobSgjGl3jwPaC5cQIOFod6EX1v0zIxlXPmL3ckSXxoHpy+Js0QV/tgCzFvqicMJCtezBA==} peerDependencies: @@ -7399,6 +7889,12 @@ packages: resolution: {integrity: sha512-C7c51Nn4yTxXFKvgh2txJFNweaVcfUPQxwEUFw4aWsCmfiBDJsTSwviIF8EcwjQ6k8bPyMWCl1vw4BdxE569Cg==} engines: {node: '>= 10'} + '@rolldown/pluginutils@1.0.0-beta.29': + resolution: {integrity: sha512-NIJgOsMjbxAXvoGq/X0gD7VPMQ8j9g0BiDaNjVNVjvl+iKXxL3Jre0v31RmBYeLEmkbj2s02v8vFTbUXi5XS2Q==} + + '@rolldown/pluginutils@1.0.0-beta.9-commit.d91dfb5': + resolution: {integrity: sha512-8sExkWRK+zVybw3+2/kBkYBFeLnEUWz1fT7BLHplpzmtqkOfTbAQ9gkt4pzwGIIZmg4Qn5US5ACjUBenrhezwQ==} + '@rollup/plugin-alias@5.1.1': resolution: {integrity: sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==} engines: {node: '>=14.0.0'} @@ -7426,6 +7922,15 @@ packages: rollup: optional: true + '@rollup/plugin-commonjs@28.0.6': + resolution: {integrity: sha512-XSQB1K7FUU5QP+3lOQmVCE3I0FcbbNvmNT4VJSj93iUjayaARrTQeoRdiYQoftAJBLrR9t2agwAd3ekaTgHNlw==} + engines: {node: '>=16.0.0 || 14 >= 14.17'} + peerDependencies: + rollup: ^2.68.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + '@rollup/plugin-inject@5.0.5': resolution: {integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==} engines: {node: '>=14.0.0'} @@ -7485,55 +7990,115 @@ packages: cpu: [arm] os: [android] + '@rollup/rollup-android-arm-eabi@4.50.2': + resolution: {integrity: sha512-uLN8NAiFVIRKX9ZQha8wy6UUs06UNSZ32xj6giK/rmMXAgKahwExvK6SsmgU5/brh4w/nSgj8e0k3c1HBQpa0A==} + cpu: [arm] + os: [android] + '@rollup/rollup-android-arm64@4.38.0': resolution: {integrity: sha512-VUsgcy4GhhT7rokwzYQP+aV9XnSLkkhlEJ0St8pbasuWO/vwphhZQxYEKUP3ayeCYLhk6gEtacRpYP/cj3GjyQ==} cpu: [arm64] os: [android] + '@rollup/rollup-android-arm64@4.50.2': + resolution: {integrity: sha512-oEouqQk2/zxxj22PNcGSskya+3kV0ZKH+nQxuCCOGJ4oTXBdNTbv+f/E3c74cNLeMO1S5wVWacSws10TTSB77g==} + cpu: [arm64] + os: [android] + '@rollup/rollup-darwin-arm64@4.38.0': resolution: {integrity: sha512-buA17AYXlW9Rn091sWMq1xGUvWQFOH4N1rqUxGJtEQzhChxWjldGCCup7r/wUnaI6Au8sKXpoh0xg58a7cgcpg==} cpu: [arm64] os: [darwin] + '@rollup/rollup-darwin-arm64@4.50.2': + resolution: {integrity: sha512-OZuTVTpj3CDSIxmPgGH8en/XtirV5nfljHZ3wrNwvgkT5DQLhIKAeuFSiwtbMto6oVexV0k1F1zqURPKf5rI1Q==} + cpu: [arm64] + os: [darwin] + '@rollup/rollup-darwin-x64@4.38.0': resolution: {integrity: sha512-Mgcmc78AjunP1SKXl624vVBOF2bzwNWFPMP4fpOu05vS0amnLcX8gHIge7q/lDAHy3T2HeR0TqrriZDQS2Woeg==} cpu: [x64] os: [darwin] + '@rollup/rollup-darwin-x64@4.50.2': + resolution: {integrity: sha512-Wa/Wn8RFkIkr1vy1k1PB//VYhLnlnn5eaJkfTQKivirOvzu5uVd2It01ukeQstMursuz7S1bU+8WW+1UPXpa8A==} + cpu: [x64] + os: [darwin] + '@rollup/rollup-freebsd-arm64@4.38.0': resolution: {integrity: sha512-zzJACgjLbQTsscxWqvrEQAEh28hqhebpRz5q/uUd1T7VTwUNZ4VIXQt5hE7ncs0GrF+s7d3S4on4TiXUY8KoQA==} cpu: [arm64] os: [freebsd] + '@rollup/rollup-freebsd-arm64@4.50.2': + resolution: {integrity: sha512-QkzxvH3kYN9J1w7D1A+yIMdI1pPekD+pWx7G5rXgnIlQ1TVYVC6hLl7SOV9pi5q9uIDF9AuIGkuzcbF7+fAhow==} + cpu: [arm64] + os: [freebsd] + '@rollup/rollup-freebsd-x64@4.38.0': resolution: {integrity: sha512-hCY/KAeYMCyDpEE4pTETam0XZS4/5GXzlLgpi5f0IaPExw9kuB+PDTOTLuPtM10TlRG0U9OSmXJ+Wq9J39LvAg==} cpu: [x64] os: [freebsd] + '@rollup/rollup-freebsd-x64@4.50.2': + resolution: {integrity: sha512-dkYXB0c2XAS3a3jmyDkX4Jk0m7gWLFzq1C3qUnJJ38AyxIF5G/dyS4N9B30nvFseCfgtCEdbYFhk0ChoCGxPog==} + cpu: [x64] + os: [freebsd] + '@rollup/rollup-linux-arm-gnueabihf@4.38.0': resolution: {integrity: sha512-mimPH43mHl4JdOTD7bUMFhBdrg6f9HzMTOEnzRmXbOZqjijCw8LA5z8uL6LCjxSa67H2xiLFvvO67PT05PRKGg==} cpu: [arm] os: [linux] libc: [glibc] + '@rollup/rollup-linux-arm-gnueabihf@4.50.2': + resolution: {integrity: sha512-9VlPY/BN3AgbukfVHAB8zNFWB/lKEuvzRo1NKev0Po8sYFKx0i+AQlCYftgEjcL43F2h9Ui1ZSdVBc4En/sP2w==} + cpu: [arm] + os: [linux] + libc: [glibc] + '@rollup/rollup-linux-arm-musleabihf@4.38.0': resolution: {integrity: sha512-tPiJtiOoNuIH8XGG8sWoMMkAMm98PUwlriOFCCbZGc9WCax+GLeVRhmaxjJtz6WxrPKACgrwoZ5ia/uapq3ZVg==} cpu: [arm] os: [linux] libc: [musl] + '@rollup/rollup-linux-arm-musleabihf@4.50.2': + resolution: {integrity: sha512-+GdKWOvsifaYNlIVf07QYan1J5F141+vGm5/Y8b9uCZnG/nxoGqgCmR24mv0koIWWuqvFYnbURRqw1lv7IBINw==} + cpu: [arm] + os: [linux] + libc: [musl] + '@rollup/rollup-linux-arm64-gnu@4.38.0': resolution: {integrity: sha512-wZco59rIVuB0tjQS0CSHTTUcEde+pXQWugZVxWaQFdQQ1VYub/sTrNdY76D1MKdN2NB48JDuGABP6o6fqos8mA==} cpu: [arm64] os: [linux] libc: [glibc] + '@rollup/rollup-linux-arm64-gnu@4.50.2': + resolution: {integrity: sha512-df0Eou14ojtUdLQdPFnymEQteENwSJAdLf5KCDrmZNsy1c3YaCNaJvYsEUHnrg+/DLBH612/R0xd3dD03uz2dg==} + cpu: [arm64] + os: [linux] + libc: [glibc] + '@rollup/rollup-linux-arm64-musl@4.38.0': resolution: {integrity: sha512-fQgqwKmW0REM4LomQ+87PP8w8xvU9LZfeLBKybeli+0yHT7VKILINzFEuggvnV9M3x1Ed4gUBmGUzCo/ikmFbQ==} cpu: [arm64] os: [linux] libc: [musl] + '@rollup/rollup-linux-arm64-musl@4.50.2': + resolution: {integrity: sha512-iPeouV0UIDtz8j1YFR4OJ/zf7evjauqv7jQ/EFs0ClIyL+by++hiaDAfFipjOgyz6y6xbDvJuiU4HwpVMpRFDQ==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-loong64-gnu@4.50.2': + resolution: {integrity: sha512-OL6KaNvBopLlj5fTa5D5bau4W82f+1TyTZRr2BdnfsrnQnmdxh4okMxR2DcDkJuh4KeoQZVuvHvzuD/lyLn2Kw==} + cpu: [loong64] + os: [linux] + libc: [glibc] + '@rollup/rollup-linux-loongarch64-gnu@4.38.0': resolution: {integrity: sha512-hz5oqQLXTB3SbXpfkKHKXLdIp02/w3M+ajp8p4yWOWwQRtHWiEOCKtc9U+YXahrwdk+3qHdFMDWR5k+4dIlddg==} cpu: [loong64] @@ -7546,51 +8111,107 @@ packages: os: [linux] libc: [glibc] + '@rollup/rollup-linux-ppc64-gnu@4.50.2': + resolution: {integrity: sha512-I21VJl1w6z/K5OTRl6aS9DDsqezEZ/yKpbqlvfHbW0CEF5IL8ATBMuUx6/mp683rKTK8thjs/0BaNrZLXetLag==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + '@rollup/rollup-linux-riscv64-gnu@4.38.0': resolution: {integrity: sha512-GEAIabR1uFyvf/jW/5jfu8gjM06/4kZ1W+j1nWTSSB3w6moZEBm7iBtzwQ3a1Pxos2F7Gz+58aVEnZHU295QTg==} cpu: [riscv64] os: [linux] libc: [glibc] + '@rollup/rollup-linux-riscv64-gnu@4.50.2': + resolution: {integrity: sha512-Hq6aQJT/qFFHrYMjS20nV+9SKrXL2lvFBENZoKfoTH2kKDOJqff5OSJr4x72ZaG/uUn+XmBnGhfr4lwMRrmqCQ==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + '@rollup/rollup-linux-riscv64-musl@4.38.0': resolution: {integrity: sha512-9EYTX+Gus2EGPbfs+fh7l95wVADtSQyYw4DfSBcYdUEAmP2lqSZY0Y17yX/3m5VKGGJ4UmIH5LHLkMJft3bYoA==} cpu: [riscv64] os: [linux] libc: [musl] + '@rollup/rollup-linux-riscv64-musl@4.50.2': + resolution: {integrity: sha512-82rBSEXRv5qtKyr0xZ/YMF531oj2AIpLZkeNYxmKNN6I2sVE9PGegN99tYDLK2fYHJITL1P2Lgb4ZXnv0PjQvw==} + cpu: [riscv64] + os: [linux] + libc: [musl] + '@rollup/rollup-linux-s390x-gnu@4.38.0': resolution: {integrity: sha512-Mpp6+Z5VhB9VDk7RwZXoG2qMdERm3Jw07RNlXHE0bOnEeX+l7Fy4bg+NxfyN15ruuY3/7Vrbpm75J9QHFqj5+Q==} cpu: [s390x] os: [linux] libc: [glibc] + '@rollup/rollup-linux-s390x-gnu@4.50.2': + resolution: {integrity: sha512-4Q3S3Hy7pC6uaRo9gtXUTJ+EKo9AKs3BXKc2jYypEcMQ49gDPFU2P1ariX9SEtBzE5egIX6fSUmbmGazwBVF9w==} + cpu: [s390x] + os: [linux] + libc: [glibc] + '@rollup/rollup-linux-x64-gnu@4.38.0': resolution: {integrity: sha512-vPvNgFlZRAgO7rwncMeE0+8c4Hmc+qixnp00/Uv3ht2x7KYrJ6ERVd3/R0nUtlE6/hu7/HiiNHJ/rP6knRFt1w==} cpu: [x64] os: [linux] libc: [glibc] + '@rollup/rollup-linux-x64-gnu@4.50.2': + resolution: {integrity: sha512-9Jie/At6qk70dNIcopcL4p+1UirusEtznpNtcq/u/C5cC4HBX7qSGsYIcG6bdxj15EYWhHiu02YvmdPzylIZlA==} + cpu: [x64] + os: [linux] + libc: [glibc] + '@rollup/rollup-linux-x64-musl@4.38.0': resolution: {integrity: sha512-q5Zv+goWvQUGCaL7fU8NuTw8aydIL/C9abAVGCzRReuj5h30TPx4LumBtAidrVOtXnlB+RZkBtExMsfqkMfb8g==} cpu: [x64] os: [linux] libc: [musl] + '@rollup/rollup-linux-x64-musl@4.50.2': + resolution: {integrity: sha512-HPNJwxPL3EmhzeAnsWQCM3DcoqOz3/IC6de9rWfGR8ZCuEHETi9km66bH/wG3YH0V3nyzyFEGUZeL5PKyy4xvw==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@rollup/rollup-openharmony-arm64@4.50.2': + resolution: {integrity: sha512-nMKvq6FRHSzYfKLHZ+cChowlEkR2lj/V0jYj9JnGUVPL2/mIeFGmVM2mLaFeNa5Jev7W7TovXqXIG2d39y1KYA==} + cpu: [arm64] + os: [openharmony] + '@rollup/rollup-win32-arm64-msvc@4.38.0': resolution: {integrity: sha512-u/Jbm1BU89Vftqyqbmxdq14nBaQjQX1HhmsdBWqSdGClNaKwhjsg5TpW+5Ibs1mb8Es9wJiMdl86BcmtUVXNZg==} cpu: [arm64] os: [win32] + '@rollup/rollup-win32-arm64-msvc@4.50.2': + resolution: {integrity: sha512-eFUvvnTYEKeTyHEijQKz81bLrUQOXKZqECeiWH6tb8eXXbZk+CXSG2aFrig2BQ/pjiVRj36zysjgILkqarS2YA==} + cpu: [arm64] + os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.38.0': resolution: {integrity: sha512-mqu4PzTrlpNHHbu5qleGvXJoGgHpChBlrBx/mEhTPpnAL1ZAYFlvHD7rLK839LLKQzqEQMFJfGrrOHItN4ZQqA==} cpu: [ia32] os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.50.2': + resolution: {integrity: sha512-cBaWmXqyfRhH8zmUxK3d3sAhEWLrtMjWBRwdMMHJIXSjvjLKvv49adxiEz+FJ8AP90apSDDBx2Tyd/WylV6ikA==} + cpu: [ia32] + os: [win32] + '@rollup/rollup-win32-x64-msvc@4.38.0': resolution: {integrity: sha512-jjqy3uWlecfB98Psxb5cD6Fny9Fupv9LrDSPTQZUROqjvZmcCqNu4UMl7qqhlUUGpwiAkotj6GYu4SZdcr/nLw==} cpu: [x64] os: [win32] + '@rollup/rollup-win32-x64-msvc@4.50.2': + resolution: {integrity: sha512-APwKy6YUhvZaEoHyM+9xqmTpviEI+9eL7LoCH+aLcvWYHJ663qG5zx7WzWZY+a9qkg5JtzcMyJ9z0WtQBMDmgA==} + cpu: [x64] + os: [win32] + '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} @@ -7780,6 +8401,10 @@ packages: resolution: {integrity: sha512-QWLl2P+rsCJeofkDNIT3WFmb6NrRud1SUYW8dIhXK/46XFV8Q/g7Bsvib0Askb0reRLe+WYPeeE+l5cH7SlkuQ==} engines: {node: '>=18'} + '@sindresorhus/is@7.1.0': + resolution: {integrity: sha512-7F/yz2IphV39hiS2zB4QYVkivrptHHh0K8qJJd9HhuWSdvf8AN7NpebW3CcDZDBQsUPMoDKWsY2WWgW7bqOcfA==} + engines: {node: '>=18'} + '@sindresorhus/merge-streams@2.3.0': resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} engines: {node: '>=18'} @@ -8580,6 +9205,9 @@ packages: '@tweenjs/tween.js@23.1.3': resolution: {integrity: sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA==} + '@tybys/wasm-util@0.10.1': + resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} + '@types/acorn@4.0.6': resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} @@ -8889,6 +9517,10 @@ packages: '@types/parse-numeric-range@0.0.1': resolution: {integrity: sha512-nI3rPGKk8BxedokP2VilnW5JyZHYNjGCUDsAZ2JQgISgDflHNUO0wXMfGYP8CkihrKYDm5tilD52XfGhO/ZFCA==} + '@types/parse-path@7.1.0': + resolution: {integrity: sha512-EULJ8LApcVEPbrfND0cRQqutIOdiIgJ1Mgrhpy755r14xMohPTEpkV/k28SJvuOs9bHRFW8x+KeDAEPiGQPB9Q==} + deprecated: This is a stub types definition. parse-path provides its own type definitions, so you do not need this installed. + '@types/pg-pool@2.0.6': resolution: {integrity: sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ==} @@ -9118,6 +9750,11 @@ packages: '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + '@unhead/vue@2.0.14': + resolution: {integrity: sha512-Ym9f+Kd2Afqek2FtUHvYvK+j2uZ2vbZ6Rr9NCnNGGBMdmafAuiZpT117YGyh0ARcueL6Znia0U8ySqPsnHOZIg==} + peerDependencies: + vue: '>=3.5.18' + '@usercentrics/cmp-browser-sdk@4.42.0': resolution: {integrity: sha512-/cik01TdeiYUV1+EasK83Ip05TDqmowM5tmWGfRDdaOrneSic5BedBdJHKya4pP2vwiYAtzDYVJe4BwPt2M16g==} @@ -9144,6 +9781,11 @@ packages: engines: {node: '>=18'} hasBin: true + '@vercel/nft@0.30.1': + resolution: {integrity: sha512-2mgJZv4AYBFkD/nJ4QmiX5Ymxi+AisPLPcS/KPXVqniyQNqKXX+wjieAbDXQP3HcogfEbpHoRMs49Cd4pfkk8g==} + engines: {node: '>=18'} + hasBin: true + '@vercel/og@0.6.2': resolution: {integrity: sha512-OTe0KE37F5Y2eTys6eMnfopC+P4qr2ooXUTFyFPTplYSPwowmFk/HLD1FXtbKLjqsIH0SgekcJWad+C5uX4nkg==} engines: {node: '>=16'} @@ -9158,6 +9800,20 @@ packages: peerDependencies: vite: ^4.2.0 || ^5.0.0 || ^6.0.0 + '@vitejs/plugin-vue-jsx@5.1.1': + resolution: {integrity: sha512-uQkfxzlF8SGHJJVH966lFTdjM/lGcwJGzwAHpVqAPDD/QcsqoUGa+q31ox1BrUfi+FLP2ChVp7uLXE3DkHyDdQ==} + engines: {node: ^20.19.0 || >=22.12.0} + peerDependencies: + vite: ^5.0.0 || ^6.0.0 || ^7.0.0 + vue: ^3.0.0 + + '@vitejs/plugin-vue@6.0.1': + resolution: {integrity: sha512-+MaE752hU0wfPFJEUAIxqw18+20euHHdxVtMvbFcOEpjEyfqXH/5DCoTHiVJ0J29EhTJdoTkjEv5YBKU9dnoTw==} + engines: {node: ^20.19.0 || >=22.12.0} + peerDependencies: + vite: ^5.0.0 || ^6.0.0 || ^7.0.0 + vue: ^3.2.25 + '@vitest/coverage-v8@3.0.9': resolution: {integrity: sha512-15OACZcBtQ34keIEn19JYTVuMFTlFrClclwWjHo/IRPg/8ELpkgNTl0o7WLP9WO9XGH6+tip9CPYtEOrIDJvBA==} peerDependencies: @@ -9207,6 +9863,91 @@ packages: '@vitest/utils@3.0.9': resolution: {integrity: sha512-ilHM5fHhZ89MCp5aAaM9uhfl1c2JdxVxl3McqsdVyVNN6JffnEen8UMCdRTzOhGXNQGo5GNL9QugHrz727Wnng==} + '@volar/language-core@2.4.23': + resolution: {integrity: sha512-hEEd5ET/oSmBC6pi1j6NaNYRWoAiDhINbT8rmwtINugR39loROSlufGdYMF9TaKGfz+ViGs1Idi3mAhnuPcoGQ==} + + '@volar/source-map@2.4.23': + resolution: {integrity: sha512-Z1Uc8IB57Lm6k7q6KIDu/p+JWtf3xsXJqAX/5r18hYOTpJyBn0KXUR8oTJ4WFYOcDzWC9n3IflGgHowx6U6z9Q==} + + '@vue-macros/common@3.0.0-beta.16': + resolution: {integrity: sha512-8O2gWxWFiaoNkk7PGi0+p7NPGe/f8xJ3/INUufvje/RZOs7sJvlI1jnR4lydtRFa/mU0ylMXUXXjSK0fHDEYTA==} + engines: {node: '>=20.18.0'} + peerDependencies: + vue: ^2.7.0 || ^3.2.25 + peerDependenciesMeta: + vue: + optional: true + + '@vue/babel-helper-vue-transform-on@1.5.0': + resolution: {integrity: sha512-0dAYkerNhhHutHZ34JtTl2czVQHUNWv6xEbkdF5W+Yrv5pCWsqjeORdOgbtW2I9gWlt+wBmVn+ttqN9ZxR5tzA==} + + '@vue/babel-plugin-jsx@1.5.0': + resolution: {integrity: sha512-mneBhw1oOqCd2247O0Yw/mRwC9jIGACAJUlawkmMBiNmL4dGA2eMzuNZVNqOUfYTa6vqmND4CtOPzmEEEqLKFw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + + '@vue/babel-plugin-resolve-type@1.5.0': + resolution: {integrity: sha512-Wm/60o+53JwJODm4Knz47dxJnLDJ9FnKnGZJbUUf8nQRAtt6P+undLUAVU3Ha33LxOJe6IPoifRQ6F/0RrU31w==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@vue/compiler-core@3.5.21': + resolution: {integrity: sha512-8i+LZ0vf6ZgII5Z9XmUvrCyEzocvWT+TeR2VBUVlzIH6Tyv57E20mPZ1bCS+tbejgUgmjrEh7q/0F0bibskAmw==} + + '@vue/compiler-dom@3.5.21': + resolution: {integrity: sha512-jNtbu/u97wiyEBJlJ9kmdw7tAr5Vy0Aj5CgQmo+6pxWNQhXZDPsRr1UWPN4v3Zf82s2H3kF51IbzZ4jMWAgPlQ==} + + '@vue/compiler-sfc@3.5.21': + resolution: {integrity: sha512-SXlyk6I5eUGBd2v8Ie7tF6ADHE9kCR6mBEuPyH1nUZ0h6Xx6nZI29i12sJKQmzbDyr2tUHMhhTt51Z6blbkTTQ==} + + '@vue/compiler-ssr@3.5.21': + resolution: {integrity: sha512-vKQ5olH5edFZdf5ZrlEgSO1j1DMA4u23TVK5XR1uMhvwnYvVdDF0nHXJUblL/GvzlShQbjhZZ2uvYmDlAbgo9w==} + + '@vue/compiler-vue2@2.7.16': + resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} + + '@vue/devtools-api@6.6.4': + resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} + + '@vue/devtools-core@7.7.7': + resolution: {integrity: sha512-9z9TLbfC+AjAi1PQyWX+OErjIaJmdFlbDHcD+cAMYKY6Bh5VlsAtCeGyRMrXwIlMEQPukvnWt3gZBLwTAIMKzQ==} + peerDependencies: + vue: ^3.0.0 + + '@vue/devtools-kit@7.7.7': + resolution: {integrity: sha512-wgoZtxcTta65cnZ1Q6MbAfePVFxfM+gq0saaeytoph7nEa7yMXoi6sCPy4ufO111B9msnw0VOWjPEFCXuAKRHA==} + + '@vue/devtools-shared@7.7.7': + resolution: {integrity: sha512-+udSj47aRl5aKb0memBvcUG9koarqnxNM5yjuREvqwK6T3ap4mn3Zqqc17QrBFTqSMjr3HK1cvStEZpMDpfdyw==} + + '@vue/language-core@3.0.7': + resolution: {integrity: sha512-0sqqyqJ0Gn33JH3TdIsZLCZZ8Gr4kwlg8iYOnOrDDkJKSjFurlQY/bEFQx5zs7SX2C/bjMkmPYq/NiyY1fTOkw==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@vue/reactivity@3.5.21': + resolution: {integrity: sha512-3ah7sa+Cwr9iiYEERt9JfZKPw4A2UlbY8RbbnH2mGCE8NwHkhmlZt2VsH0oDA3P08X3jJd29ohBDtX+TbD9AsA==} + + '@vue/runtime-core@3.5.21': + resolution: {integrity: sha512-+DplQlRS4MXfIf9gfD1BOJpk5RSyGgGXD/R+cumhe8jdjUcq/qlxDawQlSI8hCKupBlvM+3eS1se5xW+SuNAwA==} + + '@vue/runtime-dom@3.5.21': + resolution: {integrity: sha512-3M2DZsOFwM5qI15wrMmNF5RJe1+ARijt2HM3TbzBbPSuBHOQpoidE+Pa+XEaVN+czbHf81ETRoG1ltztP2em8w==} + + '@vue/server-renderer@3.5.21': + resolution: {integrity: sha512-qr8AqgD3DJPJcGvLcJKQo2tAc8OnXRcfxhOJCPF+fcfn5bBGz7VCcO7t+qETOPxpWK1mgysXvVT/j+xWaHeMWA==} + peerDependencies: + vue: 3.5.21 + + '@vue/shared@3.5.21': + resolution: {integrity: sha512-+2k1EQpnYuVuu3N7atWyG3/xoFWIVJZq4Mz8XNOdScFI0etES75fbny/oU4lKWk/577P1zmg0ioYvpGEDZ3DLw==} + '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -9419,6 +10160,9 @@ packages: ajv@8.17.1: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + alien-signals@2.0.7: + resolution: {integrity: sha512-wE7y3jmYeb0+h6mr5BOovuqhFv22O/MV9j5p0ndJsa7z1zJNPGQ4ph5pQk/kTTCWRC3xsA4SmtwmkzQO+7NCNg==} + amazon-cognito-identity-js@6.3.15: resolution: {integrity: sha512-G2mzTlGYHKYh9oZDO0Gk94xVQ4iY9GYWBaYScbDYvz05ps6dqi0IvdNx1Lxi7oA3tjS5X+mUN7/svFJJdOB9YA==} @@ -9475,6 +10219,10 @@ packages: resolution: {integrity: sha512-0qWUglt9JEqLFr3w1I1pbrChn1grhaiAR2ocX1PP/flRmxgtwTzPFFFnfIlD6aMOLQZgSuCRlidD70lvx8yhzg==} engines: {node: '>=14'} + ansis@4.1.0: + resolution: {integrity: sha512-BGcItUBWSMRgOCe+SVZJ+S7yTRG0eGt9cXAHev72yuGcY23hnLA7Bky5L/xLyPINoSN95geovfBkqoTlNZYa7w==} + engines: {node: '>=14'} + any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} @@ -9595,6 +10343,10 @@ packages: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} + ast-kit@2.1.2: + resolution: {integrity: sha512-cl76xfBQM6pztbrFWRnxbrDm9EOqDr1BF6+qQnnDZG2Co2LjyUktkN9GTJfBAfdae+DbT2nJf2nCGAdDDN7W2g==} + engines: {node: '>=20.18.0'} + ast-types-flow@0.0.8: resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} @@ -9602,6 +10354,10 @@ packages: resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} engines: {node: '>=4'} + ast-walker-scope@0.8.2: + resolution: {integrity: sha512-3pYeLyDZ6nJew9QeBhS4Nly02269Dkdk32+zdbbKmL6n4ZuaGorwwA+xx12xgOciA8BF1w9x+dlH7oUkFTW91w==} + engines: {node: '>=20.18.0'} + astral-regex@2.0.0: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} @@ -9637,8 +10393,8 @@ packages: autolinker@0.28.1: resolution: {integrity: sha512-zQAFO1Dlsn69eXaO6+7YZc+v84aquQKbwpzCE3L0stj56ERn9hutFxPopViLjo9G+rWwjozRhgS5KJ25Xy19cQ==} - autoprefixer@10.4.16: - resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==} + autoprefixer@10.4.21: + resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: @@ -9730,6 +10486,10 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + baseline-browser-mapping@2.8.5: + resolution: {integrity: sha512-TiU4qUT9jdCuh4aVOG7H1QozyeI2sZRqoRPdqBIaslfNt4WUSanRBueAwl2x5jt4rXBMim3lIN2x6yT8PDi24Q==} + hasBin: true + before-after-hook@3.0.2: resolution: {integrity: sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==} @@ -9766,6 +10526,9 @@ packages: bintrees@1.0.2: resolution: {integrity: sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw==} + birpc@2.5.0: + resolution: {integrity: sha512-VSWO/W6nNQdyP520F1mhf+Lc2f8pjGQOtoHHm7Ze8Go1kX7akpVIrtTa0fn+HB0QJEDVacl6aO08YE0PgXfdnQ==} + bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} @@ -9819,6 +10582,11 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true + browserslist@4.26.2: + resolution: {integrity: sha512-ECFzp6uFOSB+dcZ5BK/IBaGWssbSYBHvuMeMt3MMFyhI0Z8SqGgEkBLARgpRH3hutIgPVsALcMwbDrJqPxQ65A==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + bser@2.1.1: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} @@ -9864,6 +10632,14 @@ packages: magicast: optional: true + c12@3.3.0: + resolution: {integrity: sha512-K9ZkuyeJQeqLEyqldbYLG3wjqwpw4BVaAqvmxq3GYKK0b1A/yYQdIcJxkzAOWcNVWhJpRXAPfZFueekiY/L8Dw==} + peerDependencies: + magicast: ^0.3.5 + peerDependenciesMeta: + magicast: + optional: true + cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} @@ -9913,8 +10689,11 @@ packages: camelize@1.0.1: resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} - caniuse-lite@1.0.30001741: - resolution: {integrity: sha512-QGUGitqsc8ARjLdgAfxETDhRbJ0REsP6O3I96TAth/mVjh2cYzN2u+3AzPP3aVSm2FehEItaJw1xd+IGBXWeSw==} + caniuse-api@3.0.0: + resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} + + caniuse-lite@1.0.30001743: + resolution: {integrity: sha512-e6Ojr7RV14Un7dz6ASD0aZDmQPT/A+eZU+nuTNfjqmRrmkmQlnTNWH0SKmqagx9PeW87UVqapSurtAXifmtdmw==} capital-case@1.0.4: resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} @@ -9996,10 +10775,6 @@ packages: cheminfo-types@1.8.1: resolution: {integrity: sha512-FRcpVkox+cRovffgqNdDFQ1eUav+i/Vq/CUd1hcfEl2bevntFlzznL+jE8g4twl6ElB7gZjCko6pYpXyMn+6dA==} - chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} - engines: {node: '>= 8.10.0'} - chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} @@ -10200,6 +10975,9 @@ packages: resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} engines: {node: '>=12.5.0'} + colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + colorette@1.4.0: resolution: {integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==} @@ -10223,6 +11001,10 @@ packages: resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} engines: {node: '>=14'} + commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} + engines: {node: '>=16'} + commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -10252,6 +11034,9 @@ packages: compatx@0.1.8: resolution: {integrity: sha512-jcbsEAR81Bt5s1qOFymBufmCbXCXbk0Ql+K5ouj6gCyx2yHlu6AgmGIi9HxfKixpUDO5bCFJUHQ5uM6ecbTebw==} + compatx@0.2.0: + resolution: {integrity: sha512-6gLRNt4ygsi5NyMVhceOCFv14CIdDFN7fQjX1U4+47qVE/+kjPoXMK65KWK+dWxmFzMTuKazoQ9sch6pM0p5oA==} + compress-commons@6.0.2: resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==} engines: {node: '>= 14'} @@ -10293,6 +11078,9 @@ packages: confbox@0.2.1: resolution: {integrity: sha512-hkT3yDPFbs95mNCy1+7qNKC6Pro+/ibzYxtM2iqEigpf0sVw+bg4Zh9/snjsBcf990vfIsg5+1U7VyiyBb3etg==} + confbox@0.2.2: + resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==} + configcat-common@9.3.1: resolution: {integrity: sha512-yVkIbluksD/kZfVyKjLIOpwLrq3/ZRM7Lwrsz89JmbpQ6VtbnelrTQynSPElTtKjrPRZx56v3IZYk3nWTnnM6A==} @@ -10455,6 +11243,9 @@ packages: crossws@0.3.4: resolution: {integrity: sha512-uj0O1ETYX1Bh6uSgktfPvwDiPYGQ3aI4qVsaC/LWpkIzGj1nUYm5FK3K+t11oOlpN01lGbprFCH4wBlKdJjVgw==} + crossws@0.3.5: + resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==} + crypt@0.0.2: resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} @@ -10474,6 +11265,12 @@ packages: resolution: {integrity: sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==} engines: {node: '>=4'} + css-declaration-sorter@7.2.0: + resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.0.9 + css-in-js-utils@3.1.0: resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==} @@ -10490,6 +11287,14 @@ packages: resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} engines: {node: '>=8.0.0'} + css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + + css-tree@3.1.0: + resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + css-what@6.1.0: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} engines: {node: '>= 6'} @@ -10505,6 +11310,28 @@ packages: cssfilter@0.0.10: resolution: {integrity: sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==} + cssnano-preset-default@7.0.9: + resolution: {integrity: sha512-tCD6AAFgYBOVpMBX41KjbvRh9c2uUjLXRyV7KHSIrwHiq5Z9o0TFfUCoM3TwVrRsRteN3sVXGNvjVNxYzkpTsA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + cssnano-utils@5.0.1: + resolution: {integrity: sha512-ZIP71eQgG9JwjVZsTPSqhc6GHgEr53uJ7tK5///VfyWj6Xp2DBmixWHqJgPno+PqATzn48pL42ww9x5SSGmhZg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + cssnano@7.1.1: + resolution: {integrity: sha512-fm4D8ti0dQmFPeF8DXSAA//btEmqCOgAc/9Oa3C1LW94h5usNrJEfrON7b4FkPZgnDEn6OUs5NdxiJZmAtGOpQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + cssom@0.3.8: resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} @@ -10681,6 +11508,32 @@ packages: sqlite3: optional: true + db0@0.3.2: + resolution: {integrity: sha512-xzWNQ6jk/+NtdfLyXEipbX55dmDSeteLFt/ayF+wZUU5bzKgmrDOxmInUTbyVRp46YwnJdkDA1KhB7WIXFofJw==} + peerDependencies: + '@electric-sql/pglite': '*' + '@libsql/client': '*' + better-sqlite3: '*' + drizzle-orm: '*' + mysql2: '*' + sqlite3: '*' + peerDependenciesMeta: + '@electric-sql/pglite': + optional: true + '@libsql/client': + optional: true + better-sqlite3: + optional: true + drizzle-orm: + optional: true + mysql2: + optional: true + sqlite3: + optional: true + + de-indent@1.0.2: + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} + debounce-promise@3.1.2: resolution: {integrity: sha512-rZHcgBkbYavBeD9ej6sP56XfG53d51CD4dnaw989YX/nZ/ZJfgRx/9ePKmTNiUiyQvh4mtrMoS3OAWW+yoYtpg==} @@ -10730,6 +11583,15 @@ packages: supports-color: optional: true + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decimal.js-light@2.5.1: resolution: {integrity: sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==} @@ -10842,6 +11704,9 @@ packages: destr@2.0.3: resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} + destr@2.0.5: + resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} + destroy@1.2.0: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} @@ -10870,6 +11735,9 @@ packages: detect-node-es@1.1.0: resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + devalue@5.3.2: + resolution: {integrity: sha512-UDsjUbpQn9kvm68slnrs+mfxwFkIflOhkanmyabZ8zOYk8SMEIbJ3TK+88g70hSIeytu4y18f0z/hYHMTrXIWw==} + devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} @@ -10888,10 +11756,6 @@ packages: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} - diff@5.1.0: - resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} - engines: {node: '>=0.3.1'} - diff@5.2.0: resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} engines: {node: '>=0.3.1'} @@ -10900,6 +11764,10 @@ packages: resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==} engines: {node: '>=0.3.1'} + diff@8.0.2: + resolution: {integrity: sha512-sSuxWU5j5SR9QQji/o2qMvqRNYRDOcBTgsJ/DeCf4iSN4gW+gNMXM7wFIP+fdXZxoNiAnHUTGjCr+TSWXdRDKg==} + engines: {node: '>=0.3.1'} + dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -10974,6 +11842,10 @@ packages: resolution: {integrity: sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==} engines: {node: '>=12'} + dotenv@17.2.2: + resolution: {integrity: sha512-Sf2LSQP+bOlhKWWyhFsn0UsfdK/kCWRv1iuA2gXAwt3dyNabr6QSj00I2V10pidqz69soatm9ZwZvpQMTIOd5Q==} + engines: {node: '>=12'} + dotty@0.1.2: resolution: {integrity: sha512-V0EWmKeH3DEhMwAZ+8ZB2Ao4OK6p++Z0hsDtZq3N0+0ZMVqkzrcEGROvOnZpLnvBg5PTNG23JEDLAm64gPaotQ==} @@ -11105,6 +11977,9 @@ packages: electron-to-chromium@1.5.215: resolution: {integrity: sha512-TIvGp57UpeNetj/wV/xpFNpWGb0b/ROw372lHPx5Aafx02gjTBtWnEEcaSX3W2dLM3OSdGGyHX/cHl01JQsLaQ==} + electron-to-chromium@1.5.221: + resolution: {integrity: sha512-/1hFJ39wkW01ogqSyYoA4goOXOtMRy6B+yvA1u42nnsEGtHzIzmk93aPISumVQeblj47JUHLC9coCjUxb1EvtQ==} + electron-to-chromium@1.5.88: resolution: {integrity: sha512-K3C2qf1o+bGzbilTDCTBhTQcMS9KW60yTAaTeeXsfvQuTDDwlokLam/AdqlqcSy9u4UainDgsHV23ksXAOgamw==} @@ -11176,6 +12051,9 @@ packages: error-stack-parser@2.1.4: resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + errx@0.1.0: + resolution: {integrity: sha512-fZmsRiDNv07K6s2KkKFTiD2aIvECa7++PKyD5NC32tpRw46qZA3sOz+aM+/V9V0GDHxVTKLziveV4JhzBHDp9Q==} + es-abstract@1.23.3: resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} engines: {node: '>= 0.4'} @@ -11655,6 +12533,9 @@ packages: exsolve@1.0.4: resolution: {integrity: sha512-xsZH6PXaER4XoV+NiT7JHp1bJodJVT+cxeSH1G0f0tlT0lJqYuHUP3bUx2HtfTDvOagMINYp8rsqusxud3RXhw==} + exsolve@1.0.7: + resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==} + ext@1.7.0: resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} @@ -11725,6 +12606,9 @@ packages: fast-loops@1.1.4: resolution: {integrity: sha512-8dbd3XWoKCTms18ize6JmQF1SFnnfj5s0B7rRry22EofgMu7B6LKHVh+XfFqFGsqnbH54xgeO83PzpKI+ODhlg==} + fast-npm-meta@0.4.6: + resolution: {integrity: sha512-zbBBOAOlzxfrU4WSnbCHk/nR6Vf32lSEPxDEvNOR08Z5DSZ/A6qJu0rqrHVcexBTd1hc2gim998xnqF/R1PuEw==} + fast-querystring@1.1.2: resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==} @@ -11788,8 +12672,9 @@ packages: fbjs@3.0.5: resolution: {integrity: sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==} - fdir@6.4.6: - resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: @@ -12053,6 +12938,10 @@ packages: functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + fuse.js@7.1.0: + resolution: {integrity: sha512-trLf4SzuuUxfusZADLINj+dE8clK1frKdmqiJNb1Es75fmI5oY6X2mxLVUciLLjxqw/xr72Dhy+lER6dGd02FQ==} + engines: {node: '>=10'} + gauge@3.0.2: resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} engines: {node: '>=10'} @@ -12089,6 +12978,9 @@ packages: get-port-please@3.1.2: resolution: {integrity: sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==} + get-port-please@3.2.0: + resolution: {integrity: sha512-I9QVvBw5U/hw3RmWpYKRumUeaDgxTPd401x364rLmWBJcOQ753eov1eTgzDqRG9bqFIfDc7gfzcQEWrUri3o1A==} + get-proto@1.0.1: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} @@ -12131,6 +13023,12 @@ packages: resolution: {integrity: sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==} hasBin: true + git-up@8.1.1: + resolution: {integrity: sha512-FDenSF3fVqBYSaJoYy1KSc2wosx0gCvKP+c+PRBht7cAaiCeQlBtfBDX9vgnNOHmdePlSFITVcn4pFfcgNvx3g==} + + git-url-parse@16.1.0: + resolution: {integrity: sha512-cPLz4HuK86wClEW7iDdeAKcCVlWXmrLpb2L+G9goW0Z1dtpNS6BXXSOckUTlJT/LDQViE1QZKstNORzHsLnobw==} + github-from-package@0.0.0: resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} @@ -12174,6 +13072,10 @@ packages: resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==} engines: {node: '>=16 || 14 >=14.17'} + global-directory@4.0.1: + resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} + engines: {node: '>=18'} + global-modules@1.0.0: resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} engines: {node: '>=0.10.0'} @@ -12338,8 +13240,8 @@ packages: h3@1.13.0: resolution: {integrity: sha512-vFEAu/yf8UMUcB4s43OaDaigcqpQd14yanmOsn+NcRX3/guSKncyE2rOYhq8RIchgJrPSs/QiIddnTTR1ddiAg==} - h3@1.15.1: - resolution: {integrity: sha512-+ORaOBttdUm1E2Uu/obAyCguiI7MbBvsLTndc3gyK3zU+SYLoZXlyCP9Xgy0gikkGufFLTZXCXD6+4BsufnmHA==} + h3@1.15.4: + resolution: {integrity: sha512-z5cFQWDffyOe4vQ9xIqNfCZdV4p//vy6fBnr8Q1AWnVZ0teurKMG66rLj++TKwKPUP3u7iMUvrvKaEUiQw2QWQ==} handlebars@4.7.8: resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} @@ -12472,6 +13374,10 @@ packages: hastscript@8.0.0: resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + header-case@2.0.4: resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} @@ -12623,6 +13529,13 @@ packages: resolution: {integrity: sha512-bAH5jbK/F3T3Jls4I0SO1hmPR0dKU0a7+SY6n1yzRtG54FLO8d6w/nxLFX2Nb7dBu6cCWXPaAME6cYqFUMmuCA==} engines: {node: '>= 4'} + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + engines: {node: '>= 4'} + + image-meta@0.2.1: + resolution: {integrity: sha512-K6acvFaelNxx8wc2VjbIzXKDVB0Khs0QT35U6NkGfTdCmjLNcO2945m7RFNR9/RPVFm48hq7QPzK8uGH18HCGw==} + image-size@2.0.2: resolution: {integrity: sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w==} engines: {node: '>=16.x'} @@ -12662,6 +13575,9 @@ packages: import-meta-resolve@4.1.0: resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} + impound@1.0.0: + resolution: {integrity: sha512-8lAJ+1Arw2sMaZ9HE2ZmL5zOcMnt18s6+7Xqgq2aUVy4P1nlzAyPtzCDxsk51KVFwHEEdc6OWvUyqwHwhRYaug==} + imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -12691,6 +13607,10 @@ packages: ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + ini@4.1.1: + resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + inline-style-parser@0.1.1: resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} @@ -12743,6 +13663,10 @@ packages: resolution: {integrity: sha512-tBZlIIWbndeWBWCXWZiqtOF/yxf6yZX3tAlTJ7nfo5jhd6dctNxF7QnYlZLZ1a0o0pDoen7CgZqO+zjNaFbJAg==} engines: {node: '>=12.22.0'} + ioredis@5.7.0: + resolution: {integrity: sha512-NUcA93i1lukyXU+riqEyPtSEkyFq8tX90uL659J+qpCZ3rEdViB/APC58oAhIh3+bJln2hzdlZbBZsGNrlsR8g==} + engines: {node: '>=12.22.0'} + ip-address@9.0.5: resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} engines: {node: '>= 12'} @@ -12906,6 +13830,10 @@ packages: engines: {node: '>=14.16'} hasBin: true + is-installed-globally@1.0.0: + resolution: {integrity: sha512-K55T22lfpQ63N4KEN57jZUAaAYqYHEe8veb/TycJRk9DdSCLLcovXz/mL6mOnhQaZsQGwPhuFopdQIlqGSEjiQ==} + engines: {node: '>=18'} + is-interactive@1.0.0: resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} engines: {node: '>=8'} @@ -12965,6 +13893,10 @@ packages: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} + is-path-inside@4.0.0: + resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==} + engines: {node: '>=12'} + is-plain-obj@4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} @@ -13021,6 +13953,9 @@ packages: resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} engines: {node: '>= 0.4'} + is-ssh@1.4.1: + resolution: {integrity: sha512-JNeu1wQsHjyHgn9NcWTaXq6zWSR6hqE0++zhfZlkFBbScNkyvxCdeV8sRkSBaeLKxmbpR21brail63ACNxJ0Tg==} + is-stream@1.1.0: resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} engines: {node: '>=0.10.0'} @@ -13205,8 +14140,8 @@ packages: resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} hasBin: true - jiti@2.4.2: - resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} + jiti@2.5.1: + resolution: {integrity: sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w==} hasBin: true jose@5.9.6: @@ -13417,6 +14352,9 @@ packages: resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} engines: {node: '>=0.10'} + launch-editor@2.11.1: + resolution: {integrity: sha512-SEET7oNfgSaB6Ym0jufAdCeo3meJVeCaaDyzRygy0xsp2BFKCprcfHljTq4QkzTLUxEKkFK6OK4811YM2oSrRg==} + lazy-cache@2.0.2: resolution: {integrity: sha512-7vp2Acd2+Kz4XkzxGxaB1FWOi8KjWIWsgdfD5MCb86DWvlLqhRPM+d6Pro3iNEL5VT9mstz5hKAlcd+QR6H3aA==} engines: {node: '>=0.10.0'} @@ -13454,6 +14392,10 @@ packages: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} + linear-sum-assignment@1.0.7: resolution: {integrity: sha512-jfLoSGwZNyjfY8eK4ayhjfcIu3BfWvP6sWieYzYI3AWldwXVoWEz1gtrQL10v/8YltYLBunqNjeVFXPMUs+MJg==} @@ -13506,6 +14448,10 @@ packages: resolution: {integrity: sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==} engines: {node: '>=14'} + local-pkg@1.1.2: + resolution: {integrity: sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==} + engines: {node: '>=14'} + locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} @@ -13549,6 +14495,9 @@ packages: lodash.isplainobject@4.0.6: resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} @@ -13565,6 +14514,9 @@ packages: lodash.throttle@4.1.1: resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} + lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + lodash.uniqby@4.5.0: resolution: {integrity: sha512-IRt7cfTtHy6f1aRVA5n7kT8rgN3N1nH6MOWLcHfpWG2SH19E3JksLK38MktLxZDhlAjCP9jpIXkOnRXlu6oByQ==} @@ -13644,9 +14596,19 @@ packages: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true + magic-regexp@0.10.0: + resolution: {integrity: sha512-Uly1Bu4lO1hwHUW0CQeSWuRtzCMNO00CmXtS8N6fyvB3B979GOEEeAkiTUDsmbYLAbvpUS/Kt5c4ibosAzVyVg==} + + magic-string-ast@1.0.2: + resolution: {integrity: sha512-8ngQgLhcT0t3YBdn9CGkZqCYlvwW9pm7aWJwd7AxseVWf1RU8ZHCQvG1mt3N5vvUme+pXTcHB8G/7fE666U8Vw==} + engines: {node: '>=20.18.0'} + magic-string@0.30.17: resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + magic-string@0.30.19: + resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==} + magic-string@0.30.8: resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} engines: {node: '>=12'} @@ -13844,6 +14806,12 @@ packages: mdn-data@2.0.14: resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} + mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + + mdn-data@2.12.2: + resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} + mdurl@1.0.1: resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} @@ -14166,6 +15134,11 @@ packages: engines: {node: '>=16'} hasBin: true + mime@4.1.0: + resolution: {integrity: sha512-X5ju04+cAzsojXKes0B/S4tcYtFAJ6tTMuSPBEn9CPGlrWr8Fiw7qYeLT0XyH80HSoAoqWCaz+MWKh22P7G1cw==} + engines: {node: '>=16'} + hasBin: true + mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -14314,6 +15287,9 @@ packages: mlly@1.7.4: resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} + mlly@1.8.0: + resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==} + mnemonist@0.39.6: resolution: {integrity: sha512-A/0v5Z59y63US00cRSLiloEIw3t5G+MiKz4BhX21FI+YBJXBOGW0ohFxTxO08dsOYlzxo87T7vGfZKYp2bcAWA==} @@ -14346,6 +15322,9 @@ packages: mobx@6.11.0: resolution: {integrity: sha512-qngYCmr0WJiFRSAtYe82DB7SbzvbhehkJjONs8ydynUwoazzUQHZdAlaJqUfks5j4HarhWsZrMRhV7HtSO9HOQ==} + mocked-exports@0.1.1: + resolution: {integrity: sha512-aF7yRQr/Q0O2/4pIXm6PZ5G+jAd7QS4Yu8m+WEeEHGnbo+7mE36CbLSDQiXYV8bVL3NfmdeqPJct0tUlnjVSnA==} + module-details-from-path@1.0.3: resolution: {integrity: sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==} @@ -14395,6 +15374,9 @@ packages: typescript: optional: true + muggle-string@0.4.1: + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + mustache@4.2.0: resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} hasBin: true @@ -14422,11 +15404,24 @@ packages: react: '*' react-dom: '*' + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + nanoid@3.3.8: resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + nanoid@5.1.5: + resolution: {integrity: sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw==} + engines: {node: ^18 || >=20} + hasBin: true + + nanotar@0.2.0: + resolution: {integrity: sha512-9ca1h0Xjvo9bEkE4UOxgAzLV0jHKe6LMaxo37ND2DAhhAtd0j8pR1Wxz+/goMrZO8AEZTWCmyaOsFI/W5AdpCQ==} + napi-build-utils@2.0.0: resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==} @@ -14522,6 +15517,16 @@ packages: xml2js: optional: true + nitropack@2.12.6: + resolution: {integrity: sha512-DEq31s0SP4/Z5DIoVBRo9DbWFPWwIoYD4cQMEz7eE+iJMiAP+1k9A3B9kcc6Ihc0jDJmfUcHYyh6h2XlynCx6g==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + xml2js: ^0.6.2 + peerDependenciesMeta: + xml2js: + optional: true + no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} @@ -14554,6 +15559,9 @@ packages: node-fetch-native@1.6.6: resolution: {integrity: sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==} + node-fetch-native@1.6.7: + resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} + node-fetch@2.7.0: resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} engines: {node: 4.x || >=6.0.0} @@ -14591,6 +15599,9 @@ packages: node-mock-http@1.0.0: resolution: {integrity: sha512-0uGYQ1WQL1M5kKvGRXWQ3uZCHtLTO8hln3oBjIusM75WoesZ909uQJs/Hb946i2SS+Gsrhkaa6iAO17jRIv6DQ==} + node-mock-http@1.0.3: + resolution: {integrity: sha512-jN8dK25fsfnMrVsEhluUTPkBFY+6ybu7jSB1n+ri/vOGjJxU8J9CZhpSGkHXSkFjtUhbmoncG/YG9ta5Ludqog==} + node-mocks-http@1.17.2: resolution: {integrity: sha512-HVxSnjNzE9NzoWMx9T9z4MLqwMpLwVvA0oVZ+L+gXskYXEJ6tFn3Kx4LargoB6ie7ZlCLplv7QbWO6N+MysWGA==} engines: {node: '>=14'} @@ -14615,6 +15626,9 @@ packages: node-releases@2.0.20: resolution: {integrity: sha512-7gK6zSXEH6neM212JgfYFXe+GmZQM+fia5SsusuBIUgnPheLFBmIPhtFoAQRj8/7wASYQnbDlHPVwY0BefoFgA==} + node-releases@2.0.21: + resolution: {integrity: sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==} + node-sql-parser@4.18.0: resolution: {integrity: sha512-2YEOR5qlI1zUFbGMLKNfsrR5JUvFg9LxIRVE+xJe962pfVLH0rnItqLzv96XVs1Y1UIR8FxsXAuvX/lYAWZ2BQ==} engines: {node: '>=8'} @@ -14686,6 +15700,10 @@ packages: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + npm-run-path@6.0.0: + resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==} + engines: {node: '>=18'} + npmlog@5.0.1: resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} deprecated: This package is no longer supported. @@ -14727,11 +15745,24 @@ packages: react-router-dom: optional: true + nuxt@4.1.2: + resolution: {integrity: sha512-g5mwszCZT4ZeGJm83nxoZvtvZoAEaY65VDdn7p7UgznePbRaEJJ1KS1OIld4FPVkoDZ8TEVuDNqI9gUn12Exvg==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@parcel/watcher': ^2.1.0 + '@types/node': '>=18.12.0' + peerDependenciesMeta: + '@parcel/watcher': + optional: true + '@types/node': + optional: true + nwsapi@2.2.22: resolution: {integrity: sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==} - nypm@0.6.0: - resolution: {integrity: sha512-mn8wBFV9G9+UFHIrq+pZ2r2zL4aPau/by3kJb3cM7+5tQHMt6HGQB8FDIeKFYp8o0D2pnH6nVsO88N4AmUxIWg==} + nypm@0.6.2: + resolution: {integrity: sha512-7eM+hpOtrKrBDCh7Ypu2lJ9Z7PNZBdi/8AT3AX8xoCj43BBVHD0hPSTEvMtkMpfs8FCqBGhxB+uToIQimA111g==} engines: {node: ^14.16.0 || >=16.10.0} hasBin: true @@ -14817,6 +15848,10 @@ packages: ohash@2.0.11: resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} + on-change@5.0.1: + resolution: {integrity: sha512-n7THCP7RkyReRSLkJb8kUWoNsxUIBxTkIp3JKno+sEz6o/9AJ3w3P9fzQkITEkMwyTKJjZciF3v/pVoouxZZMg==} + engines: {node: '>=18'} + on-exit-leak-free@2.1.2: resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} engines: {node: '>=14.0.0'} @@ -14850,6 +15885,10 @@ packages: resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} engines: {node: '>=18'} + open@10.2.0: + resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} + engines: {node: '>=18'} + open@8.4.2: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} @@ -14940,6 +15979,23 @@ packages: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} + oxc-minify@0.87.0: + resolution: {integrity: sha512-+UHWp6+0mdq0S2rEsZx9mqgL6JnG9ogO+CU17XccVrPUFtISFcZzk/biTn1JdBYFQ3kztof19pv8blMtgStQ2g==} + engines: {node: '>=14.0.0'} + + oxc-parser@0.87.0: + resolution: {integrity: sha512-uc47XrtHwkBoES4HFgwgfH9sqwAtJXgAIBq4fFBMZ4hWmgVZoExyn+L4g4VuaecVKXkz1bvlaHcfwHAJPQb5Gw==} + engines: {node: '>=20.0.0'} + + oxc-transform@0.87.0: + resolution: {integrity: sha512-dt6INKWY2DKbSc8yR9VQoqBsCjPQ3z/SKv882UqlwFve+K38xtpi2avDlvNd35SpHUwDLDFoV3hMX0U3qOSaaQ==} + engines: {node: '>=14.0.0'} + + oxc-walker@0.5.2: + resolution: {integrity: sha512-XYoZqWwApSKUmSDEFeOKdy3Cdh95cOcSU8f7yskFWE4Rl3cfL5uwyY+EV7Brk9mdNLy+t5SseJajd6g7KncvlA==} + peerDependencies: + oxc-parser: '>=0.72.0' + p-finally@1.0.0: resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} engines: {node: '>=4'} @@ -14959,6 +16015,9 @@ packages: package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + package-manager-detector@1.3.0: + resolution: {integrity: sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==} + pako@0.2.9: resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} @@ -15004,6 +16063,13 @@ packages: resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} engines: {node: '>=0.10.0'} + parse-path@7.1.0: + resolution: {integrity: sha512-EuCycjZtfPcjWk7KTksnJ5xPMvWGA/6i4zrLYhRG0hGvC3GPU/jGUj3Cy+ZR0v30duV3e23R95T1lE2+lsndSw==} + + parse-url@9.2.0: + resolution: {integrity: sha512-bCgsFI+GeGWPAvAiUv63ZorMeif3/U0zaXABGJbOWt5OH2KCaPHF6S+0ok4aqM9RuIPGyZdx9tR9l13PsW4AYQ==} + engines: {node: '>=14.13.0'} + parse5-htmlparser2-tree-adapter@7.0.0: resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} @@ -15111,6 +16177,9 @@ packages: perfect-debounce@1.0.0: resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + perfect-debounce@2.0.0: + resolution: {integrity: sha512-fkEH/OBiKrqqI/yIgjR92lMfs2K8105zt/VT6+7eTjNwisrsh47CeIED9z58zI7DfKdH3uHAn25ziRZn3kgAow==} + perfect-scrollbar@1.5.5: resolution: {integrity: sha512-dzalfutyP3e/FOpdlhVryN4AJ5XDVauVWxybSkLZmakFE2sS3y3pc4JnSprw8tGmHvkaG5Edr5T7LBTZ+WWU2g==} @@ -15216,8 +16285,8 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - picomatch@4.0.2: - resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} engines: {node: '>=12'} pidtree@0.3.1: @@ -15275,6 +16344,9 @@ packages: pkg-types@2.1.0: resolution: {integrity: sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==} + pkg-types@2.3.0: + resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==} + playwright-core@1.53.0: resolution: {integrity: sha512-mGLg8m0pm4+mmtB7M89Xw/GSqoNC+twivl8ITteqvAndachozYe2ZA7srU6uleV1vEdAHYqjq+SV8SNxRRFYBw==} engines: {node: '>=18'} @@ -15300,6 +16372,48 @@ packages: resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} + postcss-calc@10.1.1: + resolution: {integrity: sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw==} + engines: {node: ^18.12 || ^20.9 || >=22.0} + peerDependencies: + postcss: ^8.4.38 + + postcss-colormin@7.0.4: + resolution: {integrity: sha512-ziQuVzQZBROpKpfeDwmrG+Vvlr0YWmY/ZAk99XD+mGEBuEojoFekL41NCsdhyNUtZI7DPOoIWIR7vQQK9xwluw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-convert-values@7.0.7: + resolution: {integrity: sha512-HR9DZLN04Xbe6xugRH6lS4ZQH2zm/bFh/ZyRkpedZozhvh+awAfbA0P36InO4fZfDhvYfNJeNvlTf1sjwGbw/A==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-discard-comments@7.0.4: + resolution: {integrity: sha512-6tCUoql/ipWwKtVP/xYiFf1U9QgJ0PUvxN7pTcsQ8Ns3Fnwq1pU5D5s1MhT/XySeLq6GXNvn37U46Ded0TckWg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-discard-duplicates@7.0.2: + resolution: {integrity: sha512-eTonaQvPZ/3i1ASDHOKkYwAybiM45zFIc7KXils4mQmHLqIswXD9XNOKEVxtTFnsmwYzF66u4LMgSr0abDlh5w==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-discard-empty@7.0.1: + resolution: {integrity: sha512-cFrJKZvcg/uxB6Ijr4l6qmn3pXQBna9zyrPC+sK0zjbkDUZew+6xDltSF7OeB7rAtzaaMVYSdbod+sZOCWnMOg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-discard-overridden@7.0.1: + resolution: {integrity: sha512-7c3MMjjSZ/qYrx3uc1940GSOzN1Iqjtlqe8uoSg+qdVPYyRb0TILSqqmtlSFuE4mTDECwsm397Ya7iXGzfF7lg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + postcss-import@15.1.0: resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} @@ -15324,12 +16438,120 @@ packages: ts-node: optional: true + postcss-merge-longhand@7.0.5: + resolution: {integrity: sha512-Kpu5v4Ys6QI59FxmxtNB/iHUVDn9Y9sYw66D6+SZoIk4QTz1prC4aYkhIESu+ieG1iylod1f8MILMs1Em3mmIw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-merge-rules@7.0.6: + resolution: {integrity: sha512-2jIPT4Tzs8K87tvgCpSukRQ2jjd+hH6Bb8rEEOUDmmhOeTcqDg5fEFK8uKIu+Pvc3//sm3Uu6FRqfyv7YF7+BQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-minify-font-values@7.0.1: + resolution: {integrity: sha512-2m1uiuJeTplll+tq4ENOQSzB8LRnSUChBv7oSyFLsJRtUgAAJGP6LLz0/8lkinTgxrmJSPOEhgY1bMXOQ4ZXhQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-minify-gradients@7.0.1: + resolution: {integrity: sha512-X9JjaysZJwlqNkJbUDgOclyG3jZEpAMOfof6PUZjPnPrePnPG62pS17CjdM32uT1Uq1jFvNSff9l7kNbmMSL2A==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-minify-params@7.0.4: + resolution: {integrity: sha512-3OqqUddfH8c2e7M35W6zIwv7jssM/3miF9cbCSb1iJiWvtguQjlxZGIHK9JRmc8XAKmE2PFGtHSM7g/VcW97sw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-minify-selectors@7.0.5: + resolution: {integrity: sha512-x2/IvofHcdIrAm9Q+p06ZD1h6FPcQ32WtCRVodJLDR+WMn8EVHI1kvLxZuGKz/9EY5nAmI6lIQIrpo4tBy5+ug==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + postcss-nested@6.0.1: resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 + postcss-normalize-charset@7.0.1: + resolution: {integrity: sha512-sn413ofhSQHlZFae//m9FTOfkmiZ+YQXsbosqOWRiVQncU2BA3daX3n0VF3cG6rGLSFVc5Di/yns0dFfh8NFgQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-normalize-display-values@7.0.1: + resolution: {integrity: sha512-E5nnB26XjSYz/mGITm6JgiDpAbVuAkzXwLzRZtts19jHDUBFxZ0BkXAehy0uimrOjYJbocby4FVswA/5noOxrQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-normalize-positions@7.0.1: + resolution: {integrity: sha512-pB/SzrIP2l50ZIYu+yQZyMNmnAcwyYb9R1fVWPRxm4zcUFCY2ign7rcntGFuMXDdd9L2pPNUgoODDk91PzRZuQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-normalize-repeat-style@7.0.1: + resolution: {integrity: sha512-NsSQJ8zj8TIDiF0ig44Byo3Jk9e4gNt9x2VIlJudnQQ5DhWAHJPF4Tr1ITwyHio2BUi/I6Iv0HRO7beHYOloYQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-normalize-string@7.0.1: + resolution: {integrity: sha512-QByrI7hAhsoze992kpbMlJSbZ8FuCEc1OT9EFbZ6HldXNpsdpZr+YXC5di3UEv0+jeZlHbZcoCADgb7a+lPmmQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-normalize-timing-functions@7.0.1: + resolution: {integrity: sha512-bHifyuuSNdKKsnNJ0s8fmfLMlvsQwYVxIoUBnowIVl2ZAdrkYQNGVB4RxjfpvkMjipqvbz0u7feBZybkl/6NJg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-normalize-unicode@7.0.4: + resolution: {integrity: sha512-LvIURTi1sQoZqj8mEIE8R15yvM+OhbR1avynMtI9bUzj5gGKR/gfZFd8O7VMj0QgJaIFzxDwxGl/ASMYAkqO8g==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-normalize-url@7.0.1: + resolution: {integrity: sha512-sUcD2cWtyK1AOL/82Fwy1aIVm/wwj5SdZkgZ3QiUzSzQQofrbq15jWJ3BA7Z+yVRwamCjJgZJN0I9IS7c6tgeQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-normalize-whitespace@7.0.1: + resolution: {integrity: sha512-vsbgFHMFQrJBJKrUFJNZ2pgBeBkC2IvvoHjz1to0/0Xk7sII24T0qFOiJzG6Fu3zJoq/0yI4rKWi7WhApW+EFA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-ordered-values@7.0.2: + resolution: {integrity: sha512-AMJjt1ECBffF7CEON/Y0rekRLS6KsePU6PRP08UqYW4UGFRnTXNrByUzYK1h8AC7UWTZdQ9O3Oq9kFIhm0SFEw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-reduce-initial@7.0.4: + resolution: {integrity: sha512-rdIC9IlMBn7zJo6puim58Xd++0HdbvHeHaPgXsimMfG1ijC5A9ULvNLSE0rUKVJOvNMcwewW4Ga21ngyJjY/+Q==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + + postcss-reduce-transforms@7.0.1: + resolution: {integrity: sha512-MhyEbfrm+Mlp/36hvZ9mT9DaO7dbncU0CvWI8V93LRkY6IYlu38OPg3FObnuKTUxJ4qA8HpurdQOo5CyqqO76g==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + postcss-selector-parser@6.0.10: resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} engines: {node: '>=4'} @@ -15338,6 +16560,22 @@ packages: resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} engines: {node: '>=4'} + postcss-selector-parser@7.1.0: + resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==} + engines: {node: '>=4'} + + postcss-svgo@7.1.0: + resolution: {integrity: sha512-KnAlfmhtoLz6IuU3Sij2ycusNs4jPW+QoFE5kuuUOK8awR6tMxZQrs5Ey3BUz7nFCzT3eqyFgqkyrHiaU2xx3w==} + engines: {node: ^18.12.0 || ^20.9.0 || >= 18} + peerDependencies: + postcss: ^8.4.32 + + postcss-unique-selectors@7.0.4: + resolution: {integrity: sha512-pmlZjsmEAG7cHd7uK3ZiNSW6otSZ13RHuZ/4cDN/bVglS5EpF2r2oxY99SuOHa8m7AWoBCelTS3JPpzsIs8skQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} @@ -15349,6 +16587,10 @@ packages: resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} engines: {node: ^10 || ^12 || >=14} + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + engines: {node: ^10 || ^12 || >=14} + postgres-array@2.0.0: resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} engines: {node: '>=4'} @@ -15446,6 +16688,10 @@ packages: resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==} engines: {node: ^14.13.1 || >=16.0.0} + pretty-bytes@7.0.1: + resolution: {integrity: sha512-285/jRCYIbMGDciDdrw0KPNC4LKEEwz/bwErcYNxSJOi4CpGUuLpb9gQpg3XJP0XYj9ldSRluXxih4lX2YN8Xw==} + engines: {node: '>=20'} + pretty-format@27.5.1: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -15541,6 +16787,9 @@ packages: resolution: {integrity: sha512-YWD03n3shzV9ImZRX3ccbjqLxj7NokGN0V/ESiBV5xWqrommYHYiihuIyavq03pWSGqlyvYUFmfoMKd+1rPA/g==} engines: {node: '>=12.0.0'} + protocols@2.0.2: + resolution: {integrity: sha512-hHVTzba3wboROl0/aWRRG9dMytgH6ow//STBZh43l/wQgmMhYhOFi0EHWAPtoCz9IAUymsyP0TSBHkhgMEGNnQ==} + proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} @@ -15580,6 +16829,9 @@ packages: quansync@0.2.10: resolution: {integrity: sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==} + quansync@0.2.11: + resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} + querystringify@2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} @@ -16128,6 +17380,10 @@ packages: regex@6.0.1: resolution: {integrity: sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==} + regexp-tree@0.1.27: + resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} + hasBin: true + regexp.prototype.flags@1.5.2: resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} engines: {node: '>= 0.4'} @@ -16361,11 +17617,29 @@ packages: rollup: optional: true + rollup-plugin-visualizer@6.0.3: + resolution: {integrity: sha512-ZU41GwrkDcCpVoffviuM9Clwjy5fcUxlz0oMoTXTYsK+tcIFzbdacnrr2n8TXcHxbGKKXtOdjxM2HUS4HjkwIw==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + rolldown: 1.x || ^1.0.0-beta + rollup: 2.x || 3.x || 4.x + peerDependenciesMeta: + rolldown: + optional: true + rollup: + optional: true + rollup@4.38.0: resolution: {integrity: sha512-5SsIRtJy9bf1ErAOiFMFzl64Ex9X5V7bnJ+WlFMb+zmP459OSWCEG7b0ERZ+PEU7xPt4OG3RHbrp1LJlXxYTrw==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + rollup@4.50.2: + resolution: {integrity: sha512-BgLRGy7tNS9H66aIMASq1qSYbAAJV6Z6WR4QYTvj5FgF15rZ/ympT1uixHXwzbZUBDbkvqUI1KR0fH1FhMaQ9w==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + router@2.2.0: resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} engines: {node: '>= 18'} @@ -16444,6 +17718,9 @@ packages: resolution: {integrity: sha512-XU9EELUEZuioT4acLIpCXxHcFzrsC8muvg0MY28d+TlqwxbkTzBmWbw+3+hnCzXT7YZ0Qm8k3eXktDaEu+qmEw==} engines: {node: '>=16'} + sax@1.4.1: + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + saxes@6.0.0: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} @@ -16493,11 +17770,6 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.6.3: - resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} - engines: {node: '>=10'} - hasBin: true - semver@7.7.1: resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} engines: {node: '>=10'} @@ -16606,6 +17878,10 @@ packages: shell-quote@1.8.1: resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + shell-quote@1.8.3: + resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} + engines: {node: '>= 0.4'} + shelljs@0.9.2: resolution: {integrity: sha512-S3I64fEiKgTZzKCC46zT/Ib9meqofLrQVbpSswtjFfAVDW+AZ54WTnAM/3/yENoxz/V1Cy6u3kiiEbQ4DNphvw==} engines: {node: '>=18'} @@ -16681,6 +17957,9 @@ packages: simple-git@3.24.0: resolution: {integrity: sha512-QqAKee9Twv+3k8IFOFfPB2hnk6as6Y6ACUpwCtQvRYBAes23Wv3SZlHVobAzqcE8gfsisCvPw3HGW3HYM+VYYw==} + simple-git@3.28.0: + resolution: {integrity: sha512-Rs/vQRwsn1ILH1oBUy8NucJlXmnnLeLCfcvbSehkPzbv3wwoFWIdtfd6Ndo6ZPhlPsCZ60CPI4rxurnwAa+a2w==} + simple-swizzle@0.2.2: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} @@ -16698,6 +17977,10 @@ packages: resolution: {integrity: sha512-BPwJGUeDaDCHihkORDchNyyTvWFhcusy1XMmhEVTQTwGeybFbp8YEmB+njbPnth1FibULBSBVwCQni25XlCUDg==} engines: {node: '>=18'} + sirv@3.0.2: + resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==} + engines: {node: '>=18'} + sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} @@ -16800,6 +18083,10 @@ packages: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} engines: {node: '>= 8'} + source-map@0.7.6: + resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} + engines: {node: '>= 12'} + space-separated-tokens@1.1.5: resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} @@ -16818,6 +18105,10 @@ packages: spdx-license-ids@3.0.15: resolution: {integrity: sha512-lpT8hSQp9jAKp9mhtBU4Xjon8LPGBvLIuBiSVhMEtmLecTh2mO0tlqrAMp47tBXzMr13NJMQ2lf7RpQGLJ3HsQ==} + speakingurl@14.0.1: + resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} + engines: {node: '>=0.10.0'} + split2@4.2.0: resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} engines: {node: '>= 10.x'} @@ -16896,6 +18187,9 @@ packages: std-env@3.8.1: resolution: {integrity: sha512-vj5lIj3Mwf9D79hBkltk5qmkFI+biIKWS2IBxEyEU3AX1tUf7AoL8nSazCOiiqQsGKIq01SClsKEzweu34uwvA==} + std-env@3.9.0: + resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} + stdin-discarder@0.1.0: resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -17044,6 +18338,9 @@ packages: resolution: {integrity: sha512-ExzDvHYPj6F6QkSNe/JxSlBxTh3OrI6wrAIz53ulxo1c4hBJ1bT9C/JrAthEKHWG9riVH3Xzg7B03Oxty6S2Lw==} engines: {node: '>=16'} + structured-clone-es@1.0.0: + resolution: {integrity: sha512-FL8EeKFFyNQv5cMnXI31CIMCsFarSVI2bF0U0ImeNE3g/F1IvJQyqzOXxPBRXiwQfyBTlbNe88jh1jFW0O/jiQ==} + style-dictionary@3.8.0: resolution: {integrity: sha512-wHlB/f5eO3mDcYv6WtOz6gvQC477jBKrwuIXe+PtHskTCBsJdAOvL8hCquczJxDui2TnwpeNE+2msK91JJomZg==} engines: {node: '>=12.0.0'} @@ -17087,6 +18384,12 @@ packages: babel-plugin-macros: optional: true + stylehacks@7.0.6: + resolution: {integrity: sha512-iitguKivmsueOmTO0wmxURXBP8uqOO+zikLGZ7Mm9e/94R4w5T999Js2taS/KBOnQ/wdC3jN3vNSrkGDrlnqQg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.32 + stylis@4.2.0: resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} @@ -17107,6 +18410,10 @@ packages: resolution: {integrity: sha512-mJiVjfd2vokfDxsQPOwJ/PtanO87LhpYY88ubI5dUB1Ab58Txbyje3+jpm+/83R/fevaq/107NNhtYBLuoTrFg==} engines: {node: '>=10'} + superjson@2.2.2: + resolution: {integrity: sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==} + engines: {node: '>=16'} + supports-color@10.0.0: resolution: {integrity: sha512-HRVVSbCCMbj7/kdWF9Q+bbckjBHLtHMEoJWlkmYzzdwhYMkjkOwubLM6t7NbWKjgKamGDrWL1++KrjUO1t9oAQ==} engines: {node: '>=18'} @@ -17131,6 +18438,11 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} + svgo@4.0.0: + resolution: {integrity: sha512-VvrHQ+9uniE+Mvx3+C9IEe/lWasXCU0nXMY2kZeLrHNICuRiC8uMPyM14UEaMOFA5mhyQqEkB02VoQ16n3DLaw==} + engines: {node: '>=16'} + hasBin: true + svgson@5.3.1: resolution: {integrity: sha512-qdPgvUNWb40gWktBJnbJRelWcPzkLed/ShhnRsjbayXz8OtdPOzbil9jtiZdrYvSDumAz/VNQr6JaNfPx/gvPA==} @@ -17306,10 +18618,17 @@ packages: tinyexec@0.3.2: resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + tinyexec@1.0.1: + resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==} + tinyglobby@0.2.14: resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} engines: {node: '>=12.0.0'} + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + tinypool@1.0.2: resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==} engines: {node: ^18.0.0 || >=20.0.0} @@ -17605,6 +18924,9 @@ packages: resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==} engines: {node: '>= 0.6'} + type-level-regexp@0.1.17: + resolution: {integrity: sha512-wTk4DH3cxwk196uGLK/E9pE45aLfeKJacKmcEgEOA/q5dnPGNxXt0cfYdFxb57L+sEpf1oJH4Dnx/pnRcku9jg==} + type@2.7.3: resolution: {integrity: sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==} @@ -17664,6 +18986,9 @@ packages: ufo@1.5.4: resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} + ufo@1.6.1: + resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} + uglify-js@3.17.4: resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} engines: {node: '>=0.8.0'} @@ -17676,6 +19001,9 @@ packages: ultrahtml@1.5.3: resolution: {integrity: sha512-GykOvZwgDWZlTQMtp5jrD4BVL+gNn2NVlVafjcFUJ7taY20tqYdwdoWBFy6GBJsNTZe1GkGPkSl5knQAjtgceg==} + ultrahtml@1.6.0: + resolution: {integrity: sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==} + un-eval@1.2.0: resolution: {integrity: sha512-Wlj/pum6dQtGTPD/lclDtoVPkSfpjPfy1dwnnKw/sZP5DpBH9fLhBgQfsqNhe5/gS1D+vkZUuB771NRMUPA5CA==} @@ -17719,9 +19047,15 @@ packages: unenv@2.0.0-rc.15: resolution: {integrity: sha512-J/rEIZU8w6FOfLNz/hNKsnY+fFHWnu9MH4yRbSZF3xbbGHovcetXPs7sD+9p8L6CeNC//I9bhRYAOsBt2u7/OA==} + unenv@2.0.0-rc.21: + resolution: {integrity: sha512-Wj7/AMtE9MRnAXa6Su3Lk0LNCfqDYgfwVjwRFVum9U7wsto1imuHqk4kTm7Jni+5A0Hn7dttL6O/zjvUvoo+8A==} + unfetch@4.2.0: resolution: {integrity: sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==} + unhead@2.0.14: + resolution: {integrity: sha512-dRP6OCqtShhMVZQe1F4wdt/WsYl2MskxKK+cvfSo0lQnrPJ4oAUQEkxRg7pPP+vJENabhlir31HwAyHUv7wfMg==} + unicode-trie@2.0.0: resolution: {integrity: sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==} @@ -17739,6 +19073,10 @@ packages: resolution: {integrity: sha512-oVUL7PSlyVV3QRhsdcyYEMaDX8HJyS/CnUonEJTYA3//bWO+o/4gG8F7auGWWWkrrxBQBYOO8DKe+C53ktpRXw==} engines: {node: '>=18.12.0'} + unimport@5.2.0: + resolution: {integrity: sha512-bTuAMMOOqIAyjV4i4UH7P07pO+EsVxmhOzQ2YJ290J6mkLUdozNhb5I/YoOEheeNADC03ent3Qj07X0fWfUpmw==} + engines: {node: '>=18.12.0'} + unique-filename@1.1.1: resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} @@ -17839,6 +19177,19 @@ packages: resolution: {integrity: sha512-8U/MtpkPkkk3Atewj1+RcKIjb5WBimZ/WSLhhR3w6SsIj8XJuKTacSP8g+2JhfSGw0Cb125Y+2zA/IzJZDVbhA==} engines: {node: '>=18.12.0'} + unplugin-utils@0.3.0: + resolution: {integrity: sha512-JLoggz+PvLVMJo+jZt97hdIIIZ2yTzGgft9e9q8iMrC4ewufl62ekeW7mixBghonn2gVb/ICjyvlmOCUBnJLQg==} + engines: {node: '>=20.19.0'} + + unplugin-vue-router@0.15.0: + resolution: {integrity: sha512-PyGehCjd9Ny9h+Uer4McbBjjib3lHihcyUEILa7pHKl6+rh8N7sFyw4ZkV+N30Oq2zmIUG7iKs3qpL0r+gXAaQ==} + peerDependencies: + '@vue/compiler-sfc': ^3.5.17 + vue-router: ^4.5.1 + peerDependenciesMeta: + vue-router: + optional: true + unplugin@1.0.1: resolution: {integrity: sha512-aqrHaVBWW1JVKBHmGo33T5TxeL0qWzfvjWokObHA9bYmN7eNDkwOxmLjhioHl9878qDFMAaT51XNroRyuz7WxA==} @@ -17850,6 +19201,10 @@ packages: resolution: {integrity: sha512-Qp+iiD+qCRnUek+nDoYvtWX7tfnYyXsrOnJ452FRTgOyKmTM7TUJ3l+PLPJOOWPTUyKISKp4isC5JJPSXUjGgw==} engines: {node: '>=18.12.0'} + unplugin@2.3.10: + resolution: {integrity: sha512-6NCPkv1ClwH+/BGE9QeoTIl09nuiAt0gS28nn1PvYXsGKRwM2TCbFA2QiilmehPDTXIe684k4rZI1yl3A1PCUw==} + engines: {node: '>=18.12.0'} + unstorage@1.15.0: resolution: {integrity: sha512-m40eHdGY/gA6xAPqo8eaxqXgBuzQTlAKfmB1iF7oCKXE1HfwHwzDJBywK+qQGn52dta+bPlZluPF7++yR3p/bg==} peerDependencies: @@ -17909,6 +19264,68 @@ packages: uploadthing: optional: true + unstorage@1.17.1: + resolution: {integrity: sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==} + peerDependencies: + '@azure/app-configuration': ^1.8.0 + '@azure/cosmos': ^4.2.0 + '@azure/data-tables': ^13.3.0 + '@azure/identity': ^4.6.0 + '@azure/keyvault-secrets': ^4.9.0 + '@azure/storage-blob': ^12.26.0 + '@capacitor/preferences': ^6.0.3 || ^7.0.0 + '@deno/kv': '>=0.9.0' + '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0 + '@planetscale/database': ^1.19.0 + '@upstash/redis': ^1.34.3 + '@vercel/blob': '>=0.27.1' + '@vercel/functions': ^2.2.12 || ^3.0.0 + '@vercel/kv': ^1.0.1 + aws4fetch: ^1.0.20 + db0: '>=0.2.1' + idb-keyval: ^6.2.1 + ioredis: ^5.4.2 + uploadthing: ^7.4.4 + peerDependenciesMeta: + '@azure/app-configuration': + optional: true + '@azure/cosmos': + optional: true + '@azure/data-tables': + optional: true + '@azure/identity': + optional: true + '@azure/keyvault-secrets': + optional: true + '@azure/storage-blob': + optional: true + '@capacitor/preferences': + optional: true + '@deno/kv': + optional: true + '@netlify/blobs': + optional: true + '@planetscale/database': + optional: true + '@upstash/redis': + optional: true + '@vercel/blob': + optional: true + '@vercel/functions': + optional: true + '@vercel/kv': + optional: true + aws4fetch: + optional: true + db0: + optional: true + idb-keyval: + optional: true + ioredis: + optional: true + uploadthing: + optional: true + untun@0.1.3: resolution: {integrity: sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==} hasBin: true @@ -17917,6 +19334,9 @@ packages: resolution: {integrity: sha512-nwNCjxJTjNuLCgFr42fEak5OcLuB3ecca+9ksPFNvtfYSLpjf+iJqSIaSnIile6ZPbKYxI5k2AfXqeopGudK/g==} hasBin: true + unwasm@0.3.11: + resolution: {integrity: sha512-Vhp5gb1tusSQw5of/g3Q697srYgMXvwMgXMjcG4ZNga02fDX9coxJ9fAb0Ci38hM2Hv/U1FXRPGgjP2BYqhNoQ==} + unwasm@0.3.9: resolution: {integrity: sha512-LDxTx/2DkFURUd+BU1vUsF/moj0JsoTvl+2tcg2AUOiEzVturhGGx17/IMgGvKUYdZwr33EJHtChCJuhu9Ouvg==} @@ -18136,6 +19556,16 @@ packages: resolution: {integrity: sha512-4sL2SMrRzdzClapP44oXdGjCE1oq7/DagsbjY5A09EibmoIO4LP8ScRVdh03lfXxKRk7nCWK7n7dqKvm+fp/9w==} hasBin: true + vite-dev-rpc@1.1.0: + resolution: {integrity: sha512-pKXZlgoXGoE8sEKiKJSng4hI1sQ4wi5YT24FCrwrLt6opmkjlqPPVmiPWWJn8M8byMxRGzp1CrFuqQs4M/Z39A==} + peerDependencies: + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.1 || ^7.0.0-0 + + vite-hot-client@2.1.0: + resolution: {integrity: sha512-7SpgZmU7R+dDnSmvXE1mfDtnHLHQSisdySVR7lO8ceAXvM0otZeuQQ6C8LrS5d/aYyP/QZ0hI0L+dIPrm4YlFQ==} + peerDependencies: + vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 + vite-node@3.0.0-beta.2: resolution: {integrity: sha512-ofTf6cfRdL30Wbl9n/BX81EyIR5s4PReLmSurrxQ+koLaWUNOEo8E0lCM53OJkb8vpa2URM2nSrxZsIFyvY1rg==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -18146,6 +19576,61 @@ packages: engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true + vite-node@3.2.4: + resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + + vite-plugin-checker@0.10.3: + resolution: {integrity: sha512-f4sekUcDPF+T+GdbbE8idb1i2YplBAoH+SfRS0e/WRBWb2rYb1Jf5Pimll0Rj+3JgIYWwG2K5LtBPCXxoibkLg==} + engines: {node: '>=14.16'} + peerDependencies: + '@biomejs/biome': '>=1.7' + eslint: '>=7' + meow: ^13.2.0 + optionator: ^0.9.4 + stylelint: '>=16' + typescript: '*' + vite: '>=2.0.0' + vls: '*' + vti: '*' + vue-tsc: ~2.2.10 || ^3.0.0 + peerDependenciesMeta: + '@biomejs/biome': + optional: true + eslint: + optional: true + meow: + optional: true + optionator: + optional: true + stylelint: + optional: true + typescript: + optional: true + vls: + optional: true + vti: + optional: true + vue-tsc: + optional: true + + vite-plugin-inspect@11.3.3: + resolution: {integrity: sha512-u2eV5La99oHoYPHE6UvbwgEqKKOQGz86wMg40CCosP6q8BkB6e5xPneZfYagK4ojPJSj5anHCrnvC20DpwVdRA==} + engines: {node: '>=14'} + peerDependencies: + '@nuxt/kit': '*' + vite: ^6.0.0 || ^7.0.0-0 + peerDependenciesMeta: + '@nuxt/kit': + optional: true + + vite-plugin-vue-tracer@1.0.0: + resolution: {integrity: sha512-a+UB9IwGx5uwS4uG/a9kM6fCMnxONDkOTbgCUbhFpiGhqfxrrC1+9BibV7sWwUnwj1Dg6MnRxG0trLgUZslDXA==} + peerDependencies: + vite: ^6.0.0 || ^7.0.0 + vue: ^3.5.0 + vite-tsconfig-paths@4.3.2: resolution: {integrity: sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA==} peerDependencies: @@ -18194,6 +19679,46 @@ packages: yaml: optional: true + vite@7.1.5: + resolution: {integrity: sha512-4cKBO9wR75r0BeIWWWId9XK9Lj6La5X846Zw9dFfzMRw38IlTk2iCcUt6hsyiDRcPidc55ZParFYDXi0nXOeLQ==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.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' + sugarss: ^5.0.0 + 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 + vitest@3.0.9: resolution: {integrity: sha512-BbcFDqNyBlfSpATmTtXOAOj71RNKDDvjBM/uPfnxxVGrG+FSH2RQIwgeEngTaTkuU/h0ScFvf+tRcKfYXzBybQ==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -18225,6 +19750,28 @@ packages: vscode-languageserver-types@3.17.5: resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} + vscode-uri@3.1.0: + resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} + + vue-bundle-renderer@2.1.2: + resolution: {integrity: sha512-M4WRBO/O/7G9phGaGH9AOwOnYtY9ZpPoDVpBpRzR2jO5rFL9mgIlQIgums2ljCTC2HL1jDXFQc//CzWcAQHgAw==} + + vue-devtools-stub@0.1.0: + resolution: {integrity: sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ==} + + vue-router@4.5.1: + resolution: {integrity: sha512-ogAF3P97NPm8fJsE4by9dwSYtDwXIY1nFY9T6DyQnGHd1E2Da94w9JIolpe42LJGIl0DwOHBi8TcRPlPGwbTtw==} + peerDependencies: + vue: ^3.2.0 + + vue@3.5.21: + resolution: {integrity: sha512-xxf9rum9KtOdwdRkiApWL+9hZEMWE90FHh8yS1+KJAiWYh+iGWV1FquPjoO9VUHQ+VIhsCXNNyZ5Sf4++RVZBA==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + w3c-keyname@2.2.8: resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} @@ -18360,6 +19907,11 @@ packages: engines: {node: ^16.13.0 || >=18.0.0} hasBin: true + which@5.0.0: + resolution: {integrity: sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==} + engines: {node: ^18.17.0 || >=20.5.0} + hasBin: true + why-is-node-running@2.3.0: resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} engines: {node: '>=8'} @@ -18418,6 +19970,10 @@ packages: utf-8-validate: optional: true + wsl-utils@0.1.0: + resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} + engines: {node: '>=18'} + xml-lexer@0.2.2: resolution: {integrity: sha512-G0i98epIwiUEiKmMcavmVdhtymW+pCAohMRgybyIME9ygfVu8QheIi+YoQh3ngiThsT0SQzJT4R0sKDEv8Ou0w==} @@ -18466,6 +20022,11 @@ packages: engines: {node: '>= 14'} hasBin: true + yaml@2.8.1: + resolution: {integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==} + engines: {node: '>= 14.6'} + hasBin: true + yargs-parser@20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} engines: {node: '>=10'} @@ -18505,6 +20066,12 @@ packages: resolution: {integrity: sha512-fusrlIMLeRvTFYLUjJ9KzlGC3N+6MOPJ68HNj/yJv2nz7zq8t4HEviLms2gkdRPUS7F5rZ5n+pYx9r88m6IE1g==} engines: {node: '>=18'} + youch-core@0.3.3: + resolution: {integrity: sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==} + + youch@4.1.0-beta.11: + resolution: {integrity: sha512-sQi6PERyO/mT8w564ojOVeAlYTtVQmC2GaktQAf+IdI75/GKIggosBuvyVXvEV+FATAT6RbLdIjFoiIId4ozoQ==} + youch@4.1.0-beta.6: resolution: {integrity: sha512-y1aNsEeoLXnWb6pI9TvfNPIxySyo4Un3OGxKn7rsNj8+tgSquzXEWkzfA5y6gU0fvzmQgvx3JBn/p51qQ8Xg9A==} engines: {node: '>=18'} @@ -19917,11 +21484,6 @@ snapshots: '@smithy/types': 4.3.1 tslib: 2.8.1 - '@babel/code-frame@7.24.7': - dependencies: - '@babel/highlight': 7.24.7 - picocolors: 1.1.1 - '@babel/code-frame@7.26.2': dependencies: '@babel/helper-validator-identifier': 7.25.9 @@ -19936,6 +21498,8 @@ snapshots: '@babel/compat-data@7.26.5': {} + '@babel/compat-data@7.28.4': {} + '@babel/core@7.26.10(supports-color@8.1.1)': dependencies: '@ampproject/remapping': 2.3.0 @@ -19956,6 +21520,26 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/core@7.28.4(supports-color@8.1.1)': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.3 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/helpers': 7.28.4 + '@babel/parser': 7.28.4 + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.4(supports-color@8.1.1) + '@babel/types': 7.28.4 + '@jridgewell/remapping': 2.3.5 + convert-source-map: 2.0.0 + debug: 4.4.0(supports-color@8.1.1) + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/generator@7.27.0': dependencies: '@babel/parser': 7.27.0 @@ -19964,10 +21548,22 @@ snapshots: '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.1.0 + '@babel/generator@7.28.3': + dependencies: + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + '@babel/helper-annotate-as-pure@7.25.9': dependencies: '@babel/types': 7.27.0 + '@babel/helper-annotate-as-pure@7.27.3': + dependencies: + '@babel/types': 7.28.4 + '@babel/helper-compilation-targets@7.26.5': dependencies: '@babel/compat-data': 7.26.5 @@ -19976,6 +21572,14 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 + '@babel/helper-compilation-targets@7.27.2': + dependencies: + '@babel/compat-data': 7.28.4 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.24.4 + lru-cache: 5.1.1 + semver: 6.3.1 + '@babel/helper-create-class-features-plugin@7.27.0(@babel/core@7.26.10(supports-color@8.1.1))(supports-color@8.1.1)': dependencies: '@babel/core': 7.26.10(supports-color@8.1.1) @@ -19989,6 +21593,19 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-create-class-features-plugin@7.28.3(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)': + dependencies: + '@babel/core': 7.28.4(supports-color@8.1.1) + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-member-expression-to-functions': 7.27.1(supports-color@8.1.1) + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1(supports-color@8.1.1) + '@babel/traverse': 7.28.4(supports-color@8.1.1) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/helper-environment-visitor@7.24.7': dependencies: '@babel/types': 7.27.0 @@ -19998,6 +21615,8 @@ snapshots: '@babel/template': 7.27.0 '@babel/types': 7.27.0 + '@babel/helper-globals@7.28.0': {} + '@babel/helper-hoist-variables@7.24.7': dependencies: '@babel/types': 7.27.0 @@ -20009,6 +21628,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-member-expression-to-functions@7.27.1(supports-color@8.1.1)': + dependencies: + '@babel/traverse': 7.28.4(supports-color@8.1.1) + '@babel/types': 7.28.4 + transitivePeerDependencies: + - supports-color + '@babel/helper-module-imports@7.25.9(supports-color@8.1.1)': dependencies: '@babel/traverse': 7.27.0(supports-color@8.1.1) @@ -20016,6 +21642,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-imports@7.27.1(supports-color@8.1.1)': + dependencies: + '@babel/traverse': 7.28.4(supports-color@8.1.1) + '@babel/types': 7.28.4 + transitivePeerDependencies: + - supports-color + '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.10(supports-color@8.1.1))(supports-color@8.1.1)': dependencies: '@babel/core': 7.26.10(supports-color@8.1.1) @@ -20025,12 +21658,27 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)': + dependencies: + '@babel/core': 7.28.4(supports-color@8.1.1) + '@babel/helper-module-imports': 7.27.1(supports-color@8.1.1) + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.28.4(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + '@babel/helper-optimise-call-expression@7.25.9': dependencies: '@babel/types': 7.27.0 + '@babel/helper-optimise-call-expression@7.27.1': + dependencies: + '@babel/types': 7.28.4 + '@babel/helper-plugin-utils@7.26.5': {} + '@babel/helper-plugin-utils@7.27.1': {} + '@babel/helper-replace-supers@7.26.5(@babel/core@7.26.10(supports-color@8.1.1))(supports-color@8.1.1)': dependencies: '@babel/core': 7.26.10(supports-color@8.1.1) @@ -20040,6 +21688,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)': + dependencies: + '@babel/core': 7.28.4(supports-color@8.1.1) + '@babel/helper-member-expression-to-functions': 7.27.1(supports-color@8.1.1) + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/traverse': 7.28.4(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + '@babel/helper-skip-transparent-expression-wrappers@7.25.9(supports-color@8.1.1)': dependencies: '@babel/traverse': 7.27.0(supports-color@8.1.1) @@ -20047,6 +21704,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-skip-transparent-expression-wrappers@7.27.1(supports-color@8.1.1)': + dependencies: + '@babel/traverse': 7.28.4(supports-color@8.1.1) + '@babel/types': 7.28.4 + transitivePeerDependencies: + - supports-color + '@babel/helper-split-export-declaration@7.24.7': dependencies: '@babel/types': 7.27.0 @@ -20055,6 +21719,8 @@ snapshots: '@babel/helper-string-parser@7.25.9': {} + '@babel/helper-string-parser@7.27.1': {} + '@babel/helper-validator-identifier@7.24.7': {} '@babel/helper-validator-identifier@7.25.9': {} @@ -20063,21 +21729,21 @@ snapshots: '@babel/helper-validator-option@7.25.9': {} + '@babel/helper-validator-option@7.27.1': {} + '@babel/helpers@7.26.10': dependencies: '@babel/template': 7.27.0 '@babel/types': 7.27.0 - '@babel/highlight@7.24.7': + '@babel/helpers@7.28.4': dependencies: - '@babel/helper-validator-identifier': 7.25.9 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.1.1 + '@babel/template': 7.27.2 + '@babel/types': 7.28.4 '@babel/parser@7.24.7': dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.27.0 '@babel/parser@7.26.10': dependencies: @@ -20087,6 +21753,10 @@ snapshots: dependencies: '@babel/types': 7.27.0 + '@babel/parser@7.28.4': + dependencies: + '@babel/types': 7.28.4 + '@babel/plugin-syntax-decorators@7.25.9(@babel/core@7.26.10(supports-color@8.1.1))': dependencies: '@babel/core': 7.26.10(supports-color@8.1.1) @@ -20102,11 +21772,21 @@ snapshots: '@babel/core': 7.26.10(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))': + dependencies: + '@babel/core': 7.28.4(supports-color@8.1.1) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.10(supports-color@8.1.1))': dependencies: '@babel/core': 7.26.10(supports-color@8.1.1) '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.4(supports-color@8.1.1))': + dependencies: + '@babel/core': 7.28.4(supports-color@8.1.1) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-modules-commonjs@7.26.3(@babel/core@7.26.10(supports-color@8.1.1))(supports-color@8.1.1)': dependencies: '@babel/core': 7.26.10(supports-color@8.1.1) @@ -20136,6 +21816,17 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-typescript@7.28.0(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)': + dependencies: + '@babel/core': 7.28.4(supports-color@8.1.1) + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1(supports-color@8.1.1) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1)) + transitivePeerDependencies: + - supports-color + '@babel/preset-typescript@7.26.0(@babel/core@7.26.10(supports-color@8.1.1))(supports-color@8.1.1)': dependencies: '@babel/core': 7.26.10(supports-color@8.1.1) @@ -20159,6 +21850,12 @@ snapshots: '@babel/parser': 7.27.0 '@babel/types': 7.27.0 + '@babel/template@7.27.2': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 + '@babel/traverse@7.24.7(supports-color@8.1.1)': dependencies: '@babel/code-frame': 7.26.2 @@ -20186,6 +21883,18 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/traverse@7.28.4(supports-color@8.1.1)': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.3 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.28.4 + '@babel/template': 7.27.2 + '@babel/types': 7.28.4 + debug: 4.4.0(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + '@babel/types@7.24.7': dependencies: '@babel/helper-string-parser': 7.24.7 @@ -20197,6 +21906,11 @@ snapshots: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 + '@babel/types@7.28.4': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@bcoe/v8-coverage@1.0.2': {} '@bundled-es-modules/cookie@2.0.1': @@ -20379,8 +22093,8 @@ snapshots: dependencies: '@contentlayer2/core': 0.4.3(esbuild@0.25.2)(markdown-wasm@1.2.0)(supports-color@8.1.1) '@contentlayer2/utils': 0.4.3 - chokidar: 3.5.3 - fast-glob: 3.3.2 + chokidar: 3.6.0 + fast-glob: 3.3.3 gray-matter: 4.0.3 imagescript: 1.3.0 micromatch: 4.0.8 @@ -20418,7 +22132,7 @@ snapshots: '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-node': 1.24.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.36.0 - chokidar: 3.5.3 + chokidar: 3.6.0 hash-wasm: 4.11.0 inflection: 3.0.0 memfs: 4.14.1 @@ -20535,6 +22249,12 @@ snapshots: '@electric-sql/pglite@0.2.15': {} + '@emnapi/core@1.5.0': + dependencies: + '@emnapi/wasi-threads': 1.1.0 + tslib: 2.8.1 + optional: true + '@emnapi/runtime@0.43.1': dependencies: tslib: 2.8.1 @@ -20544,6 +22264,11 @@ snapshots: tslib: 2.8.1 optional: true + '@emnapi/wasi-threads@1.1.0': + dependencies: + tslib: 2.8.1 + optional: true + '@emotion/babel-plugin@11.13.5(supports-color@8.1.1)': dependencies: '@babel/helper-module-imports': 7.25.9(supports-color@8.1.1) @@ -21717,6 +23442,8 @@ snapshots: '@ioredis/commands@1.2.0': {} + '@ioredis/commands@1.4.0': {} + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -21739,7 +23466,7 @@ snapshots: '@jridgewell/gen-mapping@0.3.13': dependencies: '@jridgewell/sourcemap-codec': 1.5.5 - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/gen-mapping@0.3.8': dependencies: @@ -21747,6 +23474,11 @@ snapshots: '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/set-array@1.2.1': {} @@ -21754,12 +23486,12 @@ snapshots: '@jridgewell/source-map@0.3.11': dependencies: '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/source-map@0.3.6': dependencies: '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/sourcemap-codec@1.5.0': {} @@ -21770,7 +23502,7 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping@0.3.30': + '@jridgewell/trace-mapping@0.3.31': dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 @@ -22010,7 +23742,7 @@ snapshots: nopt: 5.0.0 npmlog: 5.0.1 rimraf: 3.0.2 - semver: 7.6.3 + semver: 7.7.2 tar: 6.2.1 transitivePeerDependencies: - encoding @@ -22105,11 +23837,11 @@ snapshots: '@types/react': 18.3.3 react: 18.3.1 - '@mertasan/tailwindcss-variables@2.7.0(autoprefixer@10.4.16(postcss@8.5.3))(postcss@8.5.3)': + '@mertasan/tailwindcss-variables@2.7.0(autoprefixer@10.4.21(postcss@8.5.6))(postcss@8.5.6)': dependencies: - autoprefixer: 10.4.16(postcss@8.5.3) + autoprefixer: 10.4.21(postcss@8.5.6) lodash: 4.17.21 - postcss: 8.5.3 + postcss: 8.5.6 '@mjackson/headers@0.11.1': {} @@ -22214,6 +23946,13 @@ snapshots: '@n1ru4l/push-pull-async-iterable-iterator@3.2.0': {} + '@napi-rs/wasm-runtime@1.0.5': + dependencies: + '@emnapi/core': 1.5.0 + '@emnapi/runtime': 1.5.0 + '@tybys/wasm-util': 0.10.1 + optional: true + '@netlify/functions@3.0.4': dependencies: '@netlify/serverless-functions-api': 1.36.0 @@ -22339,6 +24078,238 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@nuxt/cli@3.28.0(magicast@0.3.5)': + dependencies: + c12: 3.3.0(magicast@0.3.5) + citty: 0.1.6 + clipboardy: 4.0.0 + confbox: 0.2.2 + consola: 3.4.2 + defu: 6.1.4 + exsolve: 1.0.7 + fuse.js: 7.1.0 + get-port-please: 3.2.0 + giget: 2.0.0 + h3: 1.15.4 + httpxy: 0.1.7 + jiti: 2.5.1 + listhen: 1.9.0 + nypm: 0.6.2 + ofetch: 1.4.1 + ohash: 2.0.11 + pathe: 2.0.3 + perfect-debounce: 1.0.0 + pkg-types: 2.3.0 + scule: 1.3.0 + semver: 7.7.2 + std-env: 3.9.0 + tinyexec: 1.0.1 + ufo: 1.6.1 + youch: 4.1.0-beta.11 + transitivePeerDependencies: + - magicast + + '@nuxt/devalue@2.0.2': {} + + '@nuxt/devtools-kit@2.6.3(magicast@0.3.5)(vite@6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1))': + dependencies: + '@nuxt/kit': 3.19.2(magicast@0.3.5) + execa: 8.0.1 + vite: 6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) + transitivePeerDependencies: + - magicast + + '@nuxt/devtools-wizard@2.6.3': + dependencies: + consola: 3.4.2 + diff: 8.0.2 + execa: 8.0.1 + magicast: 0.3.5 + pathe: 2.0.3 + pkg-types: 2.3.0 + prompts: 2.4.2 + semver: 7.7.2 + + '@nuxt/devtools@2.6.3(supports-color@8.1.1)(vite@6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2))': + dependencies: + '@nuxt/devtools-kit': 2.6.3(magicast@0.3.5)(vite@6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)) + '@nuxt/devtools-wizard': 2.6.3 + '@nuxt/kit': 3.19.2(magicast@0.3.5) + '@vue/devtools-core': 7.7.7(vite@6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2)) + '@vue/devtools-kit': 7.7.7 + birpc: 2.5.0 + consola: 3.4.2 + destr: 2.0.5 + error-stack-parser-es: 1.0.5 + execa: 8.0.1 + fast-npm-meta: 0.4.6 + get-port-please: 3.2.0 + hookable: 5.5.3 + image-meta: 0.2.1 + is-installed-globally: 1.0.0 + launch-editor: 2.11.1 + local-pkg: 1.1.2 + magicast: 0.3.5 + nypm: 0.6.2 + ohash: 2.0.11 + pathe: 2.0.3 + perfect-debounce: 1.0.0 + pkg-types: 2.3.0 + semver: 7.7.2 + simple-git: 3.28.0(supports-color@8.1.1) + sirv: 3.0.2 + structured-clone-es: 1.0.0 + tinyglobby: 0.2.15 + vite: 6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) + vite-plugin-inspect: 11.3.3(@nuxt/kit@3.19.2(magicast@0.3.5))(supports-color@8.1.1)(vite@6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)) + vite-plugin-vue-tracer: 1.0.0(vite@6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2)) + which: 5.0.0 + ws: 8.18.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + - vue + + '@nuxt/kit@3.19.2(magicast@0.3.5)': + dependencies: + c12: 3.3.0(magicast@0.3.5) + consola: 3.4.2 + defu: 6.1.4 + destr: 2.0.5 + errx: 0.1.0 + exsolve: 1.0.7 + ignore: 7.0.5 + jiti: 2.5.1 + klona: 2.0.6 + knitwork: 1.2.0 + mlly: 1.8.0 + ohash: 2.0.11 + pathe: 2.0.3 + pkg-types: 2.3.0 + rc9: 2.1.2 + scule: 1.3.0 + semver: 7.7.2 + std-env: 3.9.0 + tinyglobby: 0.2.15 + ufo: 1.6.1 + unctx: 2.4.1 + unimport: 5.2.0 + untyped: 2.0.0 + transitivePeerDependencies: + - magicast + + '@nuxt/kit@4.1.2(magicast@0.3.5)': + dependencies: + c12: 3.3.0(magicast@0.3.5) + consola: 3.4.2 + defu: 6.1.4 + destr: 2.0.5 + errx: 0.1.0 + exsolve: 1.0.7 + ignore: 7.0.5 + jiti: 2.5.1 + klona: 2.0.6 + mlly: 1.8.0 + ohash: 2.0.11 + pathe: 2.0.3 + pkg-types: 2.3.0 + rc9: 2.1.2 + scule: 1.3.0 + semver: 7.7.2 + std-env: 3.9.0 + tinyglobby: 0.2.15 + ufo: 1.6.1 + unctx: 2.4.1 + unimport: 5.2.0 + untyped: 2.0.0 + transitivePeerDependencies: + - magicast + + '@nuxt/schema@4.1.2': + dependencies: + '@vue/shared': 3.5.21 + consola: 3.4.2 + defu: 6.1.4 + pathe: 2.0.3 + pkg-types: 2.3.0 + std-env: 3.9.0 + ufo: 1.6.1 + + '@nuxt/telemetry@2.6.6(magicast@0.3.5)': + dependencies: + '@nuxt/kit': 3.19.2(magicast@0.3.5) + citty: 0.1.6 + consola: 3.4.2 + destr: 2.0.5 + dotenv: 16.5.0 + git-url-parse: 16.1.0 + is-docker: 3.0.0 + ofetch: 1.4.1 + package-manager-detector: 1.3.0 + pathe: 2.0.3 + rc9: 2.1.2 + std-env: 3.9.0 + transitivePeerDependencies: + - magicast + + '@nuxt/vite-builder@4.1.2(@types/node@24.3.1)(eslint@8.57.0(supports-color@8.1.1))(magicast@0.3.5)(rollup@4.50.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))(yaml@2.8.1)': + dependencies: + '@nuxt/kit': 4.1.2(magicast@0.3.5) + '@rollup/plugin-replace': 6.0.2(rollup@4.50.2) + '@vitejs/plugin-vue': 6.0.1(vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2)) + '@vitejs/plugin-vue-jsx': 5.1.1(supports-color@8.1.1)(vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2)) + autoprefixer: 10.4.21(postcss@8.5.6) + consola: 3.4.2 + cssnano: 7.1.1(postcss@8.5.6) + defu: 6.1.4 + esbuild: 0.25.2 + escape-string-regexp: 5.0.0 + exsolve: 1.0.7 + get-port-please: 3.2.0 + h3: 1.15.4 + jiti: 2.5.1 + knitwork: 1.2.0 + magic-string: 0.30.19 + mlly: 1.8.0 + mocked-exports: 0.1.1 + pathe: 2.0.3 + pkg-types: 2.3.0 + postcss: 8.5.6 + rollup-plugin-visualizer: 6.0.3(rollup@4.50.2) + std-env: 3.9.0 + ufo: 1.6.1 + unenv: 2.0.0-rc.21 + vite: 7.1.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) + vite-node: 3.2.4(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) + vite-plugin-checker: 0.10.3(eslint@8.57.0(supports-color@8.1.1))(typescript@5.9.2)(vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)) + vue: 3.5.21(typescript@5.9.2) + vue-bundle-renderer: 2.1.2 + transitivePeerDependencies: + - '@biomejs/biome' + - '@types/node' + - eslint + - less + - lightningcss + - magicast + - meow + - optionator + - rolldown + - rollup + - sass + - sass-embedded + - stylelint + - stylus + - sugarss + - supports-color + - terser + - tsx + - typescript + - vls + - vti + - vue-tsc + - yaml + '@octokit/auth-app@7.1.5': dependencies: '@octokit/auth-oauth-app': 8.1.3 @@ -22911,6 +24882,149 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@oxc-minify/binding-android-arm64@0.87.0': + optional: true + + '@oxc-minify/binding-darwin-arm64@0.87.0': + optional: true + + '@oxc-minify/binding-darwin-x64@0.87.0': + optional: true + + '@oxc-minify/binding-freebsd-x64@0.87.0': + optional: true + + '@oxc-minify/binding-linux-arm-gnueabihf@0.87.0': + optional: true + + '@oxc-minify/binding-linux-arm-musleabihf@0.87.0': + optional: true + + '@oxc-minify/binding-linux-arm64-gnu@0.87.0': + optional: true + + '@oxc-minify/binding-linux-arm64-musl@0.87.0': + optional: true + + '@oxc-minify/binding-linux-riscv64-gnu@0.87.0': + optional: true + + '@oxc-minify/binding-linux-s390x-gnu@0.87.0': + optional: true + + '@oxc-minify/binding-linux-x64-gnu@0.87.0': + optional: true + + '@oxc-minify/binding-linux-x64-musl@0.87.0': + optional: true + + '@oxc-minify/binding-wasm32-wasi@0.87.0': + dependencies: + '@napi-rs/wasm-runtime': 1.0.5 + optional: true + + '@oxc-minify/binding-win32-arm64-msvc@0.87.0': + optional: true + + '@oxc-minify/binding-win32-x64-msvc@0.87.0': + optional: true + + '@oxc-parser/binding-android-arm64@0.87.0': + optional: true + + '@oxc-parser/binding-darwin-arm64@0.87.0': + optional: true + + '@oxc-parser/binding-darwin-x64@0.87.0': + optional: true + + '@oxc-parser/binding-freebsd-x64@0.87.0': + optional: true + + '@oxc-parser/binding-linux-arm-gnueabihf@0.87.0': + optional: true + + '@oxc-parser/binding-linux-arm-musleabihf@0.87.0': + optional: true + + '@oxc-parser/binding-linux-arm64-gnu@0.87.0': + optional: true + + '@oxc-parser/binding-linux-arm64-musl@0.87.0': + optional: true + + '@oxc-parser/binding-linux-riscv64-gnu@0.87.0': + optional: true + + '@oxc-parser/binding-linux-s390x-gnu@0.87.0': + optional: true + + '@oxc-parser/binding-linux-x64-gnu@0.87.0': + optional: true + + '@oxc-parser/binding-linux-x64-musl@0.87.0': + optional: true + + '@oxc-parser/binding-wasm32-wasi@0.87.0': + dependencies: + '@napi-rs/wasm-runtime': 1.0.5 + optional: true + + '@oxc-parser/binding-win32-arm64-msvc@0.87.0': + optional: true + + '@oxc-parser/binding-win32-x64-msvc@0.87.0': + optional: true + + '@oxc-project/types@0.87.0': {} + + '@oxc-transform/binding-android-arm64@0.87.0': + optional: true + + '@oxc-transform/binding-darwin-arm64@0.87.0': + optional: true + + '@oxc-transform/binding-darwin-x64@0.87.0': + optional: true + + '@oxc-transform/binding-freebsd-x64@0.87.0': + optional: true + + '@oxc-transform/binding-linux-arm-gnueabihf@0.87.0': + optional: true + + '@oxc-transform/binding-linux-arm-musleabihf@0.87.0': + optional: true + + '@oxc-transform/binding-linux-arm64-gnu@0.87.0': + optional: true + + '@oxc-transform/binding-linux-arm64-musl@0.87.0': + optional: true + + '@oxc-transform/binding-linux-riscv64-gnu@0.87.0': + optional: true + + '@oxc-transform/binding-linux-s390x-gnu@0.87.0': + optional: true + + '@oxc-transform/binding-linux-x64-gnu@0.87.0': + optional: true + + '@oxc-transform/binding-linux-x64-musl@0.87.0': + optional: true + + '@oxc-transform/binding-wasm32-wasi@0.87.0': + dependencies: + '@napi-rs/wasm-runtime': 1.0.5 + optional: true + + '@oxc-transform/binding-win32-arm64-msvc@0.87.0': + optional: true + + '@oxc-transform/binding-win32-x64-msvc@0.87.0': + optional: true + '@parcel/watcher-android-arm64@2.5.1': optional: true @@ -23106,7 +25220,7 @@ snapshots: graphql-http: 1.22.4(graphql@16.11.0) graphql-playground-html: 1.6.30 http-status: 2.1.0 - next: 15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) + next: 15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) path-to-regexp: 6.3.0 payload: 3.52.0(graphql@16.11.0)(typescript@5.9.2) qs-esm: 7.0.2 @@ -23260,7 +25374,7 @@ snapshots: date-fns: 4.1.0 dequal: 2.0.3 md5: 2.3.0 - next: 15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) + next: 15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) object-to-formdata: 4.5.1 payload: 3.52.0(graphql@16.11.0)(typescript@5.9.2) qs-esm: 7.0.2 @@ -23297,14 +25411,26 @@ snapshots: dependencies: kleur: 4.1.5 + '@poppinss/colors@4.1.5': + dependencies: + kleur: 4.1.5 + '@poppinss/dumper@0.6.3': dependencies: '@poppinss/colors': 4.1.4 '@sindresorhus/is': 7.0.1 supports-color: 10.0.0 + '@poppinss/dumper@0.6.4': + dependencies: + '@poppinss/colors': 4.1.5 + '@sindresorhus/is': 7.1.0 + supports-color: 10.0.0 + '@poppinss/exception@1.2.1': {} + '@poppinss/exception@1.2.2': {} + '@prisma/instrumentation@6.13.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25233,7 +27359,7 @@ snapshots: dependencies: react: 18.3.1 - '@react-router/dev@7.4.0(@types/node@24.3.1)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(react-router@7.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(vite@6.3.5(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5))(yaml@2.4.5)': + '@react-router/dev@7.4.0(@types/node@24.3.1)(babel-plugin-macros@3.1.0)(jiti@2.5.1)(react-router@7.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(vite@6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1))(yaml@2.8.1)': dependencies: '@babel/core': 7.26.10(supports-color@8.1.1) '@babel/generator': 7.27.0 @@ -25262,8 +27388,8 @@ snapshots: semver: 7.7.1 set-cookie-parser: 2.7.1 valibot: 0.41.0(typescript@5.9.2) - vite: 6.3.5(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) - vite-node: 3.0.0-beta.2(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) + vite: 6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1) + vite-node: 3.0.0-beta.2(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1) optionalDependencies: typescript: 5.9.2 transitivePeerDependencies: @@ -25282,9 +27408,9 @@ snapshots: - tsx - yaml - '@react-router/fs-routes@7.4.0(@react-router/dev@7.4.0(@types/node@24.3.1)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(react-router@7.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(vite@6.3.5(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5))(yaml@2.4.5))(typescript@5.9.2)': + '@react-router/fs-routes@7.4.0(@react-router/dev@7.4.0(@types/node@24.3.1)(babel-plugin-macros@3.1.0)(jiti@2.5.1)(react-router@7.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(vite@6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1))(yaml@2.8.1))(typescript@5.9.2)': dependencies: - '@react-router/dev': 7.4.0(@types/node@24.3.1)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(react-router@7.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(vite@6.3.5(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5))(yaml@2.4.5) + '@react-router/dev': 7.4.0(@types/node@24.3.1)(babel-plugin-macros@3.1.0)(jiti@2.5.1)(react-router@7.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(vite@6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1))(yaml@2.8.1) minimatch: 9.0.5 optionalDependencies: typescript: 5.9.2 @@ -25510,141 +27636,228 @@ snapshots: '@resvg/resvg-wasm@2.4.0': {} - '@rollup/plugin-alias@5.1.1(rollup@4.38.0)': + '@rolldown/pluginutils@1.0.0-beta.29': {} + + '@rolldown/pluginutils@1.0.0-beta.9-commit.d91dfb5': {} + + '@rollup/plugin-alias@5.1.1(rollup@4.50.2)': optionalDependencies: - rollup: 4.38.0 + rollup: 4.50.2 '@rollup/plugin-commonjs@28.0.1(rollup@4.38.0)': dependencies: '@rollup/pluginutils': 5.1.4(rollup@4.38.0) commondir: 1.0.1 estree-walker: 2.0.2 - fdir: 6.4.6(picomatch@4.0.2) + fdir: 6.5.0(picomatch@4.0.3) is-reference: 1.2.1 magic-string: 0.30.17 - picomatch: 4.0.2 + picomatch: 4.0.3 optionalDependencies: rollup: 4.38.0 - '@rollup/plugin-commonjs@28.0.3(rollup@4.38.0)': + '@rollup/plugin-commonjs@28.0.3(rollup@4.50.2)': dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.38.0) + '@rollup/pluginutils': 5.1.4(rollup@4.50.2) commondir: 1.0.1 estree-walker: 2.0.2 - fdir: 6.4.6(picomatch@4.0.2) + fdir: 6.5.0(picomatch@4.0.3) is-reference: 1.2.1 magic-string: 0.30.17 - picomatch: 4.0.2 + picomatch: 4.0.3 optionalDependencies: - rollup: 4.38.0 + rollup: 4.50.2 - '@rollup/plugin-inject@5.0.5(rollup@4.38.0)': + '@rollup/plugin-commonjs@28.0.6(rollup@4.50.2)': dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.38.0) + '@rollup/pluginutils': 5.1.4(rollup@4.50.2) + commondir: 1.0.1 estree-walker: 2.0.2 - magic-string: 0.30.17 + fdir: 6.5.0(picomatch@4.0.3) + is-reference: 1.2.1 + magic-string: 0.30.19 + picomatch: 4.0.3 optionalDependencies: - rollup: 4.38.0 + rollup: 4.50.2 - '@rollup/plugin-json@6.1.0(rollup@4.38.0)': + '@rollup/plugin-inject@5.0.5(rollup@4.50.2)': dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.38.0) + '@rollup/pluginutils': 5.1.4(rollup@4.50.2) + estree-walker: 2.0.2 + magic-string: 0.30.19 optionalDependencies: - rollup: 4.38.0 + rollup: 4.50.2 - '@rollup/plugin-node-resolve@16.0.1(rollup@4.38.0)': + '@rollup/plugin-json@6.1.0(rollup@4.50.2)': dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.38.0) + '@rollup/pluginutils': 5.1.4(rollup@4.50.2) + optionalDependencies: + rollup: 4.50.2 + + '@rollup/plugin-node-resolve@16.0.1(rollup@4.50.2)': + dependencies: + '@rollup/pluginutils': 5.1.4(rollup@4.50.2) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-module: 1.0.0 resolve: 1.22.10 optionalDependencies: - rollup: 4.38.0 + rollup: 4.50.2 - '@rollup/plugin-replace@6.0.2(rollup@4.38.0)': + '@rollup/plugin-replace@6.0.2(rollup@4.50.2)': dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.38.0) - magic-string: 0.30.17 + '@rollup/pluginutils': 5.1.4(rollup@4.50.2) + magic-string: 0.30.19 optionalDependencies: - rollup: 4.38.0 + rollup: 4.50.2 - '@rollup/plugin-terser@0.4.4(rollup@4.38.0)': + '@rollup/plugin-terser@0.4.4(rollup@4.50.2)': dependencies: serialize-javascript: 6.0.2 smob: 1.5.0 terser: 5.39.0 optionalDependencies: - rollup: 4.38.0 + rollup: 4.50.2 '@rollup/pluginutils@5.1.4(rollup@4.38.0)': dependencies: '@types/estree': 1.0.5 estree-walker: 2.0.2 - picomatch: 4.0.2 + picomatch: 4.0.3 optionalDependencies: rollup: 4.38.0 + '@rollup/pluginutils@5.1.4(rollup@4.50.2)': + dependencies: + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 4.0.3 + optionalDependencies: + rollup: 4.50.2 + '@rollup/rollup-android-arm-eabi@4.38.0': optional: true + '@rollup/rollup-android-arm-eabi@4.50.2': + optional: true + '@rollup/rollup-android-arm64@4.38.0': optional: true + '@rollup/rollup-android-arm64@4.50.2': + optional: true + '@rollup/rollup-darwin-arm64@4.38.0': optional: true + '@rollup/rollup-darwin-arm64@4.50.2': + optional: true + '@rollup/rollup-darwin-x64@4.38.0': optional: true + '@rollup/rollup-darwin-x64@4.50.2': + optional: true + '@rollup/rollup-freebsd-arm64@4.38.0': optional: true + '@rollup/rollup-freebsd-arm64@4.50.2': + optional: true + '@rollup/rollup-freebsd-x64@4.38.0': optional: true + '@rollup/rollup-freebsd-x64@4.50.2': + optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.38.0': optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.50.2': + optional: true + '@rollup/rollup-linux-arm-musleabihf@4.38.0': optional: true + '@rollup/rollup-linux-arm-musleabihf@4.50.2': + optional: true + '@rollup/rollup-linux-arm64-gnu@4.38.0': optional: true + '@rollup/rollup-linux-arm64-gnu@4.50.2': + optional: true + '@rollup/rollup-linux-arm64-musl@4.38.0': optional: true + '@rollup/rollup-linux-arm64-musl@4.50.2': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.50.2': + optional: true + '@rollup/rollup-linux-loongarch64-gnu@4.38.0': optional: true '@rollup/rollup-linux-powerpc64le-gnu@4.38.0': optional: true + '@rollup/rollup-linux-ppc64-gnu@4.50.2': + optional: true + '@rollup/rollup-linux-riscv64-gnu@4.38.0': optional: true + '@rollup/rollup-linux-riscv64-gnu@4.50.2': + optional: true + '@rollup/rollup-linux-riscv64-musl@4.38.0': optional: true + '@rollup/rollup-linux-riscv64-musl@4.50.2': + optional: true + '@rollup/rollup-linux-s390x-gnu@4.38.0': optional: true + '@rollup/rollup-linux-s390x-gnu@4.50.2': + optional: true + '@rollup/rollup-linux-x64-gnu@4.38.0': optional: true + '@rollup/rollup-linux-x64-gnu@4.50.2': + optional: true + '@rollup/rollup-linux-x64-musl@4.38.0': optional: true + '@rollup/rollup-linux-x64-musl@4.50.2': + optional: true + + '@rollup/rollup-openharmony-arm64@4.50.2': + optional: true + '@rollup/rollup-win32-arm64-msvc@4.38.0': optional: true + '@rollup/rollup-win32-arm64-msvc@4.50.2': + optional: true + '@rollup/rollup-win32-ia32-msvc@4.38.0': optional: true + '@rollup/rollup-win32-ia32-msvc@4.50.2': + optional: true + '@rollup/rollup-win32-x64-msvc@4.38.0': optional: true + '@rollup/rollup-win32-x64-msvc@4.50.2': + optional: true + '@rtsao/scc@1.1.0': {} '@rushstack/eslint-patch@1.10.3': {} @@ -25737,7 +27950,7 @@ snapshots: '@sentry/core@10.3.0': {} - '@sentry/nextjs@10.3.0(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1)(supports-color@8.1.1)(webpack@5.94.0)': + '@sentry/nextjs@10.3.0(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1)(supports-color@8.1.1)(webpack@5.94.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.36.0 @@ -25750,7 +27963,7 @@ snapshots: '@sentry/vercel-edge': 10.3.0 '@sentry/webpack-plugin': 4.0.2(encoding@0.1.13)(supports-color@8.1.1)(webpack@5.94.0) chalk: 3.0.0 - next: 15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) + next: 15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) resolve: 1.22.8 rollup: 4.38.0 stacktrace-parser: 0.1.10 @@ -25913,6 +28126,8 @@ snapshots: '@sindresorhus/is@7.0.1': {} + '@sindresorhus/is@7.1.0': {} + '@sindresorhus/merge-streams@2.3.0': {} '@smithy/abort-controller@2.0.15': @@ -26689,7 +28904,7 @@ snapshots: postcss-selector-parser: 6.0.10 tailwindcss: 3.4.1(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.9.2)) - '@tanstack/directive-functions-plugin@1.114.12(@types/node@24.3.1)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5)': + '@tanstack/directive-functions-plugin@1.114.12(@types/node@24.3.1)(babel-plugin-macros@3.1.0)(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1)': dependencies: '@babel/code-frame': 7.26.2 '@babel/core': 7.26.10(supports-color@8.1.1) @@ -26702,7 +28917,7 @@ snapshots: babel-dead-code-elimination: 1.0.9(supports-color@8.1.1) dedent: 1.5.3(babel-plugin-macros@3.1.0) tiny-invariant: 1.3.3 - vite: 6.3.5(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) + vite: 6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -26768,7 +28983,7 @@ snapshots: tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - '@tanstack/react-start-client@1.114.27(@electric-sql/pglite@0.2.15)(@types/node@24.3.1)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(yaml@2.4.5)': + '@tanstack/react-start-client@1.114.27(@electric-sql/pglite@0.2.15)(@types/node@24.3.1)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.5.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(yaml@2.8.1)': dependencies: '@tanstack/react-router': 1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tanstack/router-core': 1.114.25 @@ -26779,7 +28994,7 @@ snapshots: react-dom: 18.3.1(react@18.3.1) tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - vinxi: 0.5.3(@electric-sql/pglite@0.2.15)(@types/node@24.3.1)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(yaml@2.4.5) + vinxi: 0.5.3(@electric-sql/pglite@0.2.15)(@types/node@24.3.1)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(yaml@2.8.1) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -26823,22 +29038,22 @@ snapshots: - xml2js - yaml - '@tanstack/react-start-config@1.114.27(@electric-sql/pglite@0.2.15)(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/node@24.3.1)(aws4fetch@1.0.20)(babel-plugin-macros@3.1.0)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(vite@6.3.5(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5))(webpack@5.94.0(esbuild@0.25.2))(yaml@2.4.5)': + '@tanstack/react-start-config@1.114.27(@electric-sql/pglite@0.2.15)(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/node@24.3.1)(aws4fetch@1.0.20)(babel-plugin-macros@3.1.0)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.5.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(vite@6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1))(webpack@5.94.0(esbuild@0.25.2))(yaml@2.8.1)': dependencies: - '@tanstack/react-start-plugin': 1.114.12(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) + '@tanstack/react-start-plugin': 1.114.12(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1) '@tanstack/router-core': 1.114.25 '@tanstack/router-generator': 1.114.27(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) - '@tanstack/router-plugin': 1.114.27(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(supports-color@8.1.1)(vite@6.3.5(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5))(webpack@5.94.0(esbuild@0.25.2)) - '@tanstack/server-functions-plugin': 1.114.12(@types/node@24.3.1)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) + '@tanstack/router-plugin': 1.114.27(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(supports-color@8.1.1)(vite@6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1))(webpack@5.94.0(esbuild@0.25.2)) + '@tanstack/server-functions-plugin': 1.114.12(@types/node@24.3.1)(babel-plugin-macros@3.1.0)(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1) '@tanstack/start-server-functions-handler': 1.114.25 - '@vitejs/plugin-react': 4.3.4(supports-color@8.1.1)(vite@6.3.5(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5)) + '@vitejs/plugin-react': 4.3.4(supports-color@8.1.1)(vite@6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1)) import-meta-resolve: 4.1.0 - nitropack: 2.11.7(@electric-sql/pglite@0.2.15)(aws4fetch@1.0.20)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(supports-color@8.1.1)(typescript@5.9.2) + nitropack: 2.11.7(@electric-sql/pglite@0.2.15)(aws4fetch@1.0.20)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(supports-color@8.1.1)(typescript@5.9.2) ofetch: 1.4.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - vinxi: 0.5.3(@electric-sql/pglite@0.2.15)(@types/node@24.3.1)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(yaml@2.4.5) - vite: 6.3.5(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) + vinxi: 0.5.3(@electric-sql/pglite@0.2.15)(@types/node@24.3.1)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(yaml@2.8.1) + vite: 6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1) zod: 3.25.76 transitivePeerDependencies: - '@azure/app-configuration' @@ -26888,7 +29103,7 @@ snapshots: - xml2js - yaml - '@tanstack/react-start-plugin@1.114.12(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5)': + '@tanstack/react-start-plugin@1.114.12(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1)': dependencies: '@babel/code-frame': 7.26.2 '@babel/core': 7.26.10(supports-color@8.1.1) @@ -26900,7 +29115,7 @@ snapshots: '@tanstack/router-utils': 1.114.12 babel-dead-code-elimination: 1.0.9(supports-color@8.1.1) tiny-invariant: 1.3.3 - vite: 6.3.5(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) + vite: 6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - jiti @@ -26915,11 +29130,11 @@ snapshots: - tsx - yaml - '@tanstack/react-start-router-manifest@1.114.25(@electric-sql/pglite@0.2.15)(@types/node@24.3.1)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(yaml@2.4.5)': + '@tanstack/react-start-router-manifest@1.114.25(@electric-sql/pglite@0.2.15)(@types/node@24.3.1)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(yaml@2.8.1)': dependencies: '@tanstack/router-core': 1.114.25 tiny-invariant: 1.3.3 - vinxi: 0.5.3(@electric-sql/pglite@0.2.15)(@types/node@24.3.1)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(yaml@2.4.5) + vinxi: 0.5.3(@electric-sql/pglite@0.2.15)(@types/node@24.3.1)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(yaml@2.8.1) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -26978,20 +29193,20 @@ snapshots: tiny-warning: 1.0.3 unctx: 2.4.1 - '@tanstack/react-start@1.114.27(@electric-sql/pglite@0.2.15)(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/node@24.3.1)(aws4fetch@1.0.20)(babel-plugin-macros@3.1.0)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(vite@6.3.5(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5))(webpack@5.94.0(esbuild@0.25.2))(yaml@2.4.5)': + '@tanstack/react-start@1.114.27(@electric-sql/pglite@0.2.15)(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/node@24.3.1)(aws4fetch@1.0.20)(babel-plugin-macros@3.1.0)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.5.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(vite@6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1))(webpack@5.94.0(esbuild@0.25.2))(yaml@2.8.1)': dependencies: - '@tanstack/react-start-client': 1.114.27(@electric-sql/pglite@0.2.15)(@types/node@24.3.1)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(yaml@2.4.5) - '@tanstack/react-start-config': 1.114.27(@electric-sql/pglite@0.2.15)(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/node@24.3.1)(aws4fetch@1.0.20)(babel-plugin-macros@3.1.0)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(vite@6.3.5(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5))(webpack@5.94.0(esbuild@0.25.2))(yaml@2.4.5) - '@tanstack/react-start-router-manifest': 1.114.25(@electric-sql/pglite@0.2.15)(@types/node@24.3.1)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(yaml@2.4.5) + '@tanstack/react-start-client': 1.114.27(@electric-sql/pglite@0.2.15)(@types/node@24.3.1)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.5.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(yaml@2.8.1) + '@tanstack/react-start-config': 1.114.27(@electric-sql/pglite@0.2.15)(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/node@24.3.1)(aws4fetch@1.0.20)(babel-plugin-macros@3.1.0)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.5.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(vite@6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1))(webpack@5.94.0(esbuild@0.25.2))(yaml@2.8.1) + '@tanstack/react-start-router-manifest': 1.114.25(@electric-sql/pglite@0.2.15)(@types/node@24.3.1)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(yaml@2.8.1) '@tanstack/react-start-server': 1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@tanstack/start-api-routes': 1.114.25(@electric-sql/pglite@0.2.15)(@types/node@24.3.1)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(yaml@2.4.5) - '@tanstack/start-server-functions-client': 1.114.25(@types/node@24.3.1)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) + '@tanstack/start-api-routes': 1.114.25(@electric-sql/pglite@0.2.15)(@types/node@24.3.1)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(yaml@2.8.1) + '@tanstack/start-server-functions-client': 1.114.25(@types/node@24.3.1)(babel-plugin-macros@3.1.0)(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1) '@tanstack/start-server-functions-handler': 1.114.25 - '@tanstack/start-server-functions-server': 1.114.12(@types/node@24.3.1)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) - '@tanstack/start-server-functions-ssr': 1.114.25(@types/node@24.3.1)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) + '@tanstack/start-server-functions-server': 1.114.12(@types/node@24.3.1)(babel-plugin-macros@3.1.0)(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1) + '@tanstack/start-server-functions-ssr': 1.114.25(@types/node@24.3.1)(babel-plugin-macros@3.1.0)(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - vite: 6.3.5(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) + vite: 6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -27074,7 +29289,7 @@ snapshots: optionalDependencies: '@tanstack/react-router': 1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@tanstack/router-plugin@1.114.27(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(supports-color@8.1.1)(vite@6.3.5(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5))(webpack@5.94.0(esbuild@0.25.2))': + '@tanstack/router-plugin@1.114.27(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(supports-color@8.1.1)(vite@6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1))(webpack@5.94.0(esbuild@0.25.2))': dependencies: '@babel/core': 7.26.10(supports-color@8.1.1) '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.10(supports-color@8.1.1)) @@ -27095,7 +29310,7 @@ snapshots: zod: 3.25.76 optionalDependencies: '@tanstack/react-router': 1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - vite: 6.3.5(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) + vite: 6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1) webpack: 5.94.0(esbuild@0.25.2) transitivePeerDependencies: - supports-color @@ -27107,7 +29322,7 @@ snapshots: ansis: 3.17.0 diff: 7.0.0 - '@tanstack/server-functions-plugin@1.114.12(@types/node@24.3.1)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5)': + '@tanstack/server-functions-plugin@1.114.12(@types/node@24.3.1)(babel-plugin-macros@3.1.0)(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1)': dependencies: '@babel/code-frame': 7.26.2 '@babel/core': 7.26.10(supports-color@8.1.1) @@ -27116,7 +29331,7 @@ snapshots: '@babel/template': 7.27.0 '@babel/traverse': 7.27.0(supports-color@8.1.1) '@babel/types': 7.27.0 - '@tanstack/directive-functions-plugin': 1.114.12(@types/node@24.3.1)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) + '@tanstack/directive-functions-plugin': 1.114.12(@types/node@24.3.1)(babel-plugin-macros@3.1.0)(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1) babel-dead-code-elimination: 1.0.9(supports-color@8.1.1) dedent: 1.5.3(babel-plugin-macros@3.1.0) tiny-invariant: 1.3.3 @@ -27135,11 +29350,11 @@ snapshots: - tsx - yaml - '@tanstack/start-api-routes@1.114.25(@electric-sql/pglite@0.2.15)(@types/node@24.3.1)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(yaml@2.4.5)': + '@tanstack/start-api-routes@1.114.25(@electric-sql/pglite@0.2.15)(@types/node@24.3.1)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(yaml@2.8.1)': dependencies: '@tanstack/router-core': 1.114.25 '@tanstack/start-server-core': 1.114.25 - vinxi: 0.5.3(@electric-sql/pglite@0.2.15)(@types/node@24.3.1)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(yaml@2.4.5) + vinxi: 0.5.3(@electric-sql/pglite@0.2.15)(@types/node@24.3.1)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(yaml@2.8.1) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -27201,9 +29416,9 @@ snapshots: tiny-warning: 1.0.3 unctx: 2.4.1 - '@tanstack/start-server-functions-client@1.114.25(@types/node@24.3.1)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5)': + '@tanstack/start-server-functions-client@1.114.25(@types/node@24.3.1)(babel-plugin-macros@3.1.0)(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1)': dependencies: - '@tanstack/server-functions-plugin': 1.114.12(@types/node@24.3.1)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) + '@tanstack/server-functions-plugin': 1.114.12(@types/node@24.3.1)(babel-plugin-macros@3.1.0)(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1) '@tanstack/start-server-functions-fetcher': 1.114.25 transitivePeerDependencies: - '@types/node' @@ -27232,9 +29447,9 @@ snapshots: '@tanstack/start-server-core': 1.114.25 tiny-invariant: 1.3.3 - '@tanstack/start-server-functions-server@1.114.12(@types/node@24.3.1)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5)': + '@tanstack/start-server-functions-server@1.114.12(@types/node@24.3.1)(babel-plugin-macros@3.1.0)(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1)': dependencies: - '@tanstack/server-functions-plugin': 1.114.12(@types/node@24.3.1)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) + '@tanstack/server-functions-plugin': 1.114.12(@types/node@24.3.1)(babel-plugin-macros@3.1.0)(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1) tiny-invariant: 1.3.3 transitivePeerDependencies: - '@types/node' @@ -27251,9 +29466,9 @@ snapshots: - tsx - yaml - '@tanstack/start-server-functions-ssr@1.114.25(@types/node@24.3.1)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5)': + '@tanstack/start-server-functions-ssr@1.114.25(@types/node@24.3.1)(babel-plugin-macros@3.1.0)(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1)': dependencies: - '@tanstack/server-functions-plugin': 1.114.12(@types/node@24.3.1)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) + '@tanstack/server-functions-plugin': 1.114.12(@types/node@24.3.1)(babel-plugin-macros@3.1.0)(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1) '@tanstack/start-client-core': 1.114.25 '@tanstack/start-server-core': 1.114.25 '@tanstack/start-server-functions-fetcher': 1.114.25 @@ -27372,6 +29587,11 @@ snapshots: '@tweenjs/tween.js@23.1.3': {} + '@tybys/wasm-util@0.10.1': + dependencies: + tslib: 2.8.1 + optional: true + '@types/acorn@4.0.6': dependencies: '@types/estree': 1.0.5 @@ -27720,6 +29940,10 @@ snapshots: '@types/parse-numeric-range@0.0.1': {} + '@types/parse-path@7.1.0': + dependencies: + parse-path: 7.1.0 + '@types/pg-pool@2.0.6': dependencies: '@types/pg': 8.15.4 @@ -28013,6 +30237,12 @@ snapshots: '@ungap/structured-clone@1.2.0': {} + '@unhead/vue@2.0.14(vue@3.5.21(typescript@5.9.2))': + dependencies: + hookable: 5.5.3 + unhead: 2.0.14 + vue: 3.5.21(typescript@5.9.2) + '@usercentrics/cmp-browser-sdk@4.42.0': dependencies: '@types/crypto-js': 4.2.2 @@ -28031,10 +30261,10 @@ snapshots: optionalDependencies: '@aws-sdk/credential-provider-web-identity': 3.830.0 - '@vercel/nft@0.29.2(encoding@0.1.13)(rollup@4.38.0)(supports-color@8.1.1)': + '@vercel/nft@0.29.2(rollup@4.50.2)(supports-color@8.1.1)': dependencies: '@mapbox/node-pre-gyp': 2.0.0(encoding@0.1.13)(supports-color@8.1.1) - '@rollup/pluginutils': 5.1.4(rollup@4.38.0) + '@rollup/pluginutils': 5.1.4(rollup@4.50.2) acorn: 8.14.1 acorn-import-attributes: 1.9.5(acorn@8.14.1) async-sema: 3.1.1 @@ -28043,7 +30273,26 @@ snapshots: glob: 10.4.5 graceful-fs: 4.2.11 node-gyp-build: 4.8.4 - picomatch: 4.0.2 + picomatch: 4.0.3 + resolve-from: 5.0.0 + transitivePeerDependencies: + - encoding + - rollup + - supports-color + + '@vercel/nft@0.30.1(encoding@0.1.13)(rollup@4.50.2)(supports-color@8.1.1)': + dependencies: + '@mapbox/node-pre-gyp': 2.0.0(encoding@0.1.13)(supports-color@8.1.1) + '@rollup/pluginutils': 5.1.4(rollup@4.50.2) + acorn: 8.14.1 + acorn-import-attributes: 1.9.5(acorn@8.14.1) + async-sema: 3.1.1 + bindings: 1.5.0 + estree-walker: 2.0.2 + glob: 10.4.5 + graceful-fs: 4.2.11 + node-gyp-build: 4.8.4 + picomatch: 4.0.3 resolve-from: 5.0.0 transitivePeerDependencies: - encoding @@ -28065,7 +30314,7 @@ snapshots: consola: 3.4.2 defu: 6.1.4 get-port-please: 3.1.2 - h3: 1.15.1 + h3: 1.15.4 http-shutdown: 1.2.2 jiti: 1.21.7 mlly: 1.7.4 @@ -28076,29 +30325,47 @@ snapshots: untun: 0.1.3 uqr: 0.1.2 - '@vitejs/plugin-react@4.3.4(supports-color@8.1.1)(vite@6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5))': + '@vitejs/plugin-react@4.3.4(supports-color@8.1.1)(vite@6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1))': dependencies: '@babel/core': 7.26.10(supports-color@8.1.1) '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10(supports-color@8.1.1)) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10(supports-color@8.1.1)) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) + vite: 6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.3.4(supports-color@8.1.1)(vite@6.3.5(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5))': + '@vitejs/plugin-react@4.3.4(supports-color@8.1.1)(vite@6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1))': dependencies: '@babel/core': 7.26.10(supports-color@8.1.1) '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10(supports-color@8.1.1)) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10(supports-color@8.1.1)) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 6.3.5(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) + vite: 6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@3.0.9(supports-color@8.1.1)(vitest@3.0.9(@types/node@22.13.14)(jiti@2.4.2)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5))': + '@vitejs/plugin-vue-jsx@5.1.1(supports-color@8.1.1)(vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2))': + dependencies: + '@babel/core': 7.28.4(supports-color@8.1.1) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1)) + '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1) + '@rolldown/pluginutils': 1.0.0-beta.9-commit.d91dfb5 + '@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1) + vite: 7.1.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) + vue: 3.5.21(typescript@5.9.2) + transitivePeerDependencies: + - supports-color + + '@vitejs/plugin-vue@6.0.1(vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2))': + dependencies: + '@rolldown/pluginutils': 1.0.0-beta.29 + vite: 7.1.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) + vue: 3.5.21(typescript@5.9.2) + + '@vitest/coverage-v8@3.0.9(supports-color@8.1.1)(vitest@3.0.9(@types/node@22.13.14)(jiti@2.5.1)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 @@ -28112,11 +30379,11 @@ snapshots: std-env: 3.8.1 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.0.9(@types/node@22.13.14)(jiti@2.4.2)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) + vitest: 3.0.9(@types/node@22.13.14)(jiti@2.5.1)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@3.0.9(supports-color@8.1.1)(vitest@3.0.9(@types/node@22.13.14)(jiti@2.4.2)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.4.5))': + '@vitest/coverage-v8@3.0.9(supports-color@8.1.1)(vitest@3.0.9(@types/node@22.13.14)(jiti@2.5.1)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 @@ -28130,11 +30397,11 @@ snapshots: std-env: 3.8.1 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.0.9(@types/node@22.13.14)(@vitest/ui@3.0.4)(jiti@2.4.2)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.4.5) + vitest: 3.0.9(@types/node@22.13.14)(@vitest/ui@3.0.4)(jiti@2.5.1)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@3.0.9(supports-color@8.1.1)(vitest@3.0.9(@types/node@24.3.1)(jiti@2.4.2)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@24.3.1)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.4.5))': + '@vitest/coverage-v8@3.0.9(supports-color@8.1.1)(vitest@3.0.9(@types/node@24.3.1)(jiti@2.5.1)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@24.3.1)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 @@ -28148,7 +30415,7 @@ snapshots: std-env: 3.8.1 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.0.9(@types/node@24.3.1)(jiti@2.4.2)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@24.3.1)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.4.5) + vitest: 3.0.9(@types/node@24.3.1)(jiti@2.5.1)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@24.3.1)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) transitivePeerDependencies: - supports-color @@ -28166,7 +30433,7 @@ snapshots: std-env: 3.8.1 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.0.9(@types/node@22.13.14)(@vitest/ui@3.0.4)(jiti@2.4.2)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.4.11(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) + vitest: 3.0.9(@types/node@22.13.14)(@vitest/ui@3.0.4)(jiti@2.5.1)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.4.11(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1) transitivePeerDependencies: - supports-color @@ -28177,41 +30444,50 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.0.9(msw@2.4.11(typescript@5.9.2))(vite@6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5))': + '@vitest/mocker@3.0.9(msw@2.4.11(typescript@5.9.2))(vite@6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.0.9 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: msw: 2.4.11(typescript@5.9.2) - vite: 6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) + vite: 6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1) - '@vitest/mocker@3.0.9(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(vite@6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5))': + '@vitest/mocker@3.0.9(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(vite@6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5))': dependencies: '@vitest/spy': 3.0.9 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: msw: 2.7.3(@types/node@22.13.14)(typescript@5.9.2) - vite: 6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) + vite: 6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) - '@vitest/mocker@3.0.9(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(vite@6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.4.5))': + '@vitest/mocker@3.0.9(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(vite@6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.0.9 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: msw: 2.7.3(@types/node@22.13.14)(typescript@5.9.2) - vite: 6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.4.5) + vite: 6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1) - '@vitest/mocker@3.0.9(msw@2.7.3(@types/node@24.3.1)(typescript@5.9.2))(vite@6.3.5(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.4.5))': + '@vitest/mocker@3.0.9(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(vite@6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1))': + dependencies: + '@vitest/spy': 3.0.9 + estree-walker: 3.0.3 + magic-string: 0.30.17 + optionalDependencies: + msw: 2.7.3(@types/node@22.13.14)(typescript@5.9.2) + vite: 6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) + + '@vitest/mocker@3.0.9(msw@2.7.3(@types/node@24.3.1)(typescript@5.9.2))(vite@6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.0.9 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: msw: 2.7.3(@types/node@24.3.1)(typescript@5.9.2) - vite: 6.3.5(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.4.5) + vite: 6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) '@vitest/pretty-format@3.0.4': dependencies: @@ -28245,7 +30521,7 @@ snapshots: sirv: 3.0.0 tinyglobby: 0.2.14 tinyrainbow: 2.0.0 - vitest: 3.0.9(@types/node@22.13.14)(@vitest/ui@3.0.4)(jiti@2.4.2)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.4.11(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) + vitest: 3.0.9(@types/node@22.13.14)(@vitest/ui@3.0.4)(jiti@2.5.1)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.4.11(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1) '@vitest/utils@3.0.4': dependencies: @@ -28259,6 +30535,151 @@ snapshots: loupe: 3.1.3 tinyrainbow: 2.0.0 + '@volar/language-core@2.4.23': + dependencies: + '@volar/source-map': 2.4.23 + + '@volar/source-map@2.4.23': {} + + '@vue-macros/common@3.0.0-beta.16(vue@3.5.21(typescript@5.9.2))': + dependencies: + '@vue/compiler-sfc': 3.5.21 + ast-kit: 2.1.2 + local-pkg: 1.1.1 + magic-string-ast: 1.0.2 + unplugin-utils: 0.2.4 + optionalDependencies: + vue: 3.5.21(typescript@5.9.2) + + '@vue/babel-helper-vue-transform-on@1.5.0': {} + + '@vue/babel-plugin-jsx@1.5.0(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)': + dependencies: + '@babel/helper-module-imports': 7.27.1(supports-color@8.1.1) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4(supports-color@8.1.1)) + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.4(supports-color@8.1.1) + '@babel/types': 7.28.4 + '@vue/babel-helper-vue-transform-on': 1.5.0 + '@vue/babel-plugin-resolve-type': 1.5.0(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1) + '@vue/shared': 3.5.21 + optionalDependencies: + '@babel/core': 7.28.4(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + + '@vue/babel-plugin-resolve-type@1.5.0(@babel/core@7.28.4(supports-color@8.1.1))(supports-color@8.1.1)': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/core': 7.28.4(supports-color@8.1.1) + '@babel/helper-module-imports': 7.27.1(supports-color@8.1.1) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/parser': 7.28.4 + '@vue/compiler-sfc': 3.5.21 + transitivePeerDependencies: + - supports-color + + '@vue/compiler-core@3.5.21': + dependencies: + '@babel/parser': 7.28.4 + '@vue/shared': 3.5.21 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + + '@vue/compiler-dom@3.5.21': + dependencies: + '@vue/compiler-core': 3.5.21 + '@vue/shared': 3.5.21 + + '@vue/compiler-sfc@3.5.21': + dependencies: + '@babel/parser': 7.28.4 + '@vue/compiler-core': 3.5.21 + '@vue/compiler-dom': 3.5.21 + '@vue/compiler-ssr': 3.5.21 + '@vue/shared': 3.5.21 + estree-walker: 2.0.2 + magic-string: 0.30.19 + postcss: 8.5.6 + source-map-js: 1.2.1 + + '@vue/compiler-ssr@3.5.21': + dependencies: + '@vue/compiler-dom': 3.5.21 + '@vue/shared': 3.5.21 + + '@vue/compiler-vue2@2.7.16': + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + + '@vue/devtools-api@6.6.4': {} + + '@vue/devtools-core@7.7.7(vite@6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2))': + dependencies: + '@vue/devtools-kit': 7.7.7 + '@vue/devtools-shared': 7.7.7 + mitt: 3.0.1 + nanoid: 5.1.5 + pathe: 2.0.3 + vite-hot-client: 2.1.0(vite@6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)) + vue: 3.5.21(typescript@5.9.2) + transitivePeerDependencies: + - vite + + '@vue/devtools-kit@7.7.7': + dependencies: + '@vue/devtools-shared': 7.7.7 + birpc: 2.5.0 + hookable: 5.5.3 + mitt: 3.0.1 + perfect-debounce: 1.0.0 + speakingurl: 14.0.1 + superjson: 2.2.2 + + '@vue/devtools-shared@7.7.7': + dependencies: + rfdc: 1.4.1 + + '@vue/language-core@3.0.7(typescript@5.9.2)': + dependencies: + '@volar/language-core': 2.4.23 + '@vue/compiler-dom': 3.5.21 + '@vue/compiler-vue2': 2.7.16 + '@vue/shared': 3.5.21 + alien-signals: 2.0.7 + muggle-string: 0.4.1 + path-browserify: 1.0.1 + picomatch: 4.0.3 + optionalDependencies: + typescript: 5.9.2 + + '@vue/reactivity@3.5.21': + dependencies: + '@vue/shared': 3.5.21 + + '@vue/runtime-core@3.5.21': + dependencies: + '@vue/reactivity': 3.5.21 + '@vue/shared': 3.5.21 + + '@vue/runtime-dom@3.5.21': + dependencies: + '@vue/reactivity': 3.5.21 + '@vue/runtime-core': 3.5.21 + '@vue/shared': 3.5.21 + csstype: 3.1.3 + + '@vue/server-renderer@3.5.21(vue@3.5.21(typescript@5.9.2))': + dependencies: + '@vue/compiler-ssr': 3.5.21 + '@vue/shared': 3.5.21 + vue: 3.5.21(typescript@5.9.2) + + '@vue/shared@3.5.21': {} + '@webassemblyjs/ast@1.14.1': dependencies: '@webassemblyjs/helper-numbers': 1.13.2 @@ -28508,6 +30929,8 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 + alien-signals@2.0.7: {} + amazon-cognito-identity-js@6.3.15(encoding@0.1.13): dependencies: '@aws-crypto/sha256-js': 1.2.2 @@ -28556,6 +30979,8 @@ snapshots: ansis@3.17.0: {} + ansis@4.1.0: {} + any-promise@1.3.0: {} anymatch@3.1.3: @@ -28719,12 +31144,22 @@ snapshots: assertion-error@2.0.1: {} + ast-kit@2.1.2: + dependencies: + '@babel/parser': 7.28.4 + pathe: 2.0.3 + ast-types-flow@0.0.8: {} ast-types@0.16.1: dependencies: tslib: 2.8.1 + ast-walker-scope@0.8.2: + dependencies: + '@babel/parser': 7.28.4 + ast-kit: 2.1.2 + astral-regex@2.0.0: {} astring@1.8.6: {} @@ -28760,14 +31195,14 @@ snapshots: dependencies: gulp-header: 1.8.12 - autoprefixer@10.4.16(postcss@8.5.3): + autoprefixer@10.4.21(postcss@8.5.6): dependencies: browserslist: 4.25.4 - caniuse-lite: 1.0.30001741 + caniuse-lite: 1.0.30001743 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 - postcss: 8.5.3 + postcss: 8.5.6 postcss-value-parser: 4.2.0 available-typed-arrays@1.0.7: @@ -28856,6 +31291,8 @@ snapshots: base64-js@1.5.1: {} + baseline-browser-mapping@2.8.5: {} + before-after-hook@3.0.2: {} better-ajv-errors@1.2.0(ajv@8.17.1): @@ -28890,6 +31327,8 @@ snapshots: bintrees@1.0.2: {} + birpc@2.5.0: {} + bl@4.1.0: dependencies: buffer: 5.7.1 @@ -28993,18 +31432,26 @@ snapshots: browserslist@4.24.4: dependencies: - caniuse-lite: 1.0.30001741 + caniuse-lite: 1.0.30001743 electron-to-chromium: 1.5.88 node-releases: 2.0.19 update-browserslist-db: 1.1.2(browserslist@4.24.4) browserslist@4.25.4: dependencies: - caniuse-lite: 1.0.30001741 + caniuse-lite: 1.0.30001743 electron-to-chromium: 1.5.215 node-releases: 2.0.20 update-browserslist-db: 1.1.3(browserslist@4.25.4) + browserslist@4.26.2: + dependencies: + baseline-browser-mapping: 2.8.5 + caniuse-lite: 1.0.30001743 + electron-to-chromium: 1.5.221 + node-releases: 2.0.21 + update-browserslist-db: 1.1.3(browserslist@4.26.2) + bser@2.1.1: dependencies: node-int64: 0.4.0 @@ -29054,7 +31501,7 @@ snapshots: dotenv: 16.5.0 exsolve: 1.0.4 giget: 2.0.0 - jiti: 2.4.2 + jiti: 2.5.1 ohash: 2.0.11 pathe: 2.0.3 perfect-debounce: 1.0.0 @@ -29063,6 +31510,23 @@ snapshots: optionalDependencies: magicast: 0.3.5 + c12@3.3.0(magicast@0.3.5): + dependencies: + chokidar: 4.0.3 + confbox: 0.2.2 + defu: 6.1.4 + dotenv: 17.2.2 + exsolve: 1.0.7 + giget: 2.0.0 + jiti: 2.5.1 + ohash: 2.0.11 + pathe: 2.0.3 + perfect-debounce: 2.0.0 + pkg-types: 2.3.0 + rc9: 2.1.2 + optionalDependencies: + magicast: 0.3.5 + cac@6.7.14: {} cacache@15.3.0: @@ -29143,7 +31607,14 @@ snapshots: camelize@1.0.1: {} - caniuse-lite@1.0.30001741: {} + caniuse-api@3.0.0: + dependencies: + browserslist: 4.26.2 + caniuse-lite: 1.0.30001743 + lodash.memoize: 4.1.2 + lodash.uniq: 4.5.0 + + caniuse-lite@1.0.30001743: {} capital-case@1.0.4: dependencies: @@ -29252,18 +31723,6 @@ snapshots: cheminfo-types@1.8.1: {} - chokidar@3.5.3: - dependencies: - anymatch: 3.1.3 - braces: 3.0.3 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - chokidar@3.6.0: dependencies: anymatch: 3.1.3 @@ -29451,6 +31910,8 @@ snapshots: color-convert: 2.0.1 color-string: 1.9.1 + colord@2.9.3: {} + colorette@1.4.0: {} colorette@2.0.20: {} @@ -29470,6 +31931,8 @@ snapshots: commander@10.0.1: {} + commander@11.1.0: {} + commander@2.20.3: {} commander@4.1.1: {} @@ -29492,6 +31955,8 @@ snapshots: compatx@0.1.8: {} + compatx@0.2.0: {} + compress-commons@6.0.2: dependencies: crc-32: 1.2.2 @@ -29553,6 +32018,8 @@ snapshots: confbox@0.2.1: {} + confbox@0.2.2: {} + configcat-common@9.3.1: dependencies: tslib: 2.8.1 @@ -29717,6 +32184,10 @@ snapshots: dependencies: uncrypto: 0.1.3 + crossws@0.3.5: + dependencies: + uncrypto: 0.1.3 + crypt@0.0.2: {} crypto-js@4.2.0: {} @@ -29731,6 +32202,10 @@ snapshots: css-color-keywords@1.0.0: {} + css-declaration-sorter@7.2.0(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + css-in-js-utils@3.1.0: dependencies: hyphenate-style-name: 1.0.4 @@ -29756,6 +32231,16 @@ snapshots: mdn-data: 2.0.14 source-map: 0.6.1 + css-tree@2.2.1: + dependencies: + mdn-data: 2.0.28 + source-map-js: 1.2.1 + + css-tree@3.1.0: + dependencies: + mdn-data: 2.12.2 + source-map-js: 1.2.1 + css-what@6.1.0: {} css.escape@1.5.1: {} @@ -29764,6 +32249,54 @@ snapshots: cssfilter@0.0.10: {} + cssnano-preset-default@7.0.9(postcss@8.5.6): + dependencies: + browserslist: 4.26.2 + css-declaration-sorter: 7.2.0(postcss@8.5.6) + cssnano-utils: 5.0.1(postcss@8.5.6) + postcss: 8.5.6 + postcss-calc: 10.1.1(postcss@8.5.6) + postcss-colormin: 7.0.4(postcss@8.5.6) + postcss-convert-values: 7.0.7(postcss@8.5.6) + postcss-discard-comments: 7.0.4(postcss@8.5.6) + postcss-discard-duplicates: 7.0.2(postcss@8.5.6) + postcss-discard-empty: 7.0.1(postcss@8.5.6) + postcss-discard-overridden: 7.0.1(postcss@8.5.6) + postcss-merge-longhand: 7.0.5(postcss@8.5.6) + postcss-merge-rules: 7.0.6(postcss@8.5.6) + postcss-minify-font-values: 7.0.1(postcss@8.5.6) + postcss-minify-gradients: 7.0.1(postcss@8.5.6) + postcss-minify-params: 7.0.4(postcss@8.5.6) + postcss-minify-selectors: 7.0.5(postcss@8.5.6) + postcss-normalize-charset: 7.0.1(postcss@8.5.6) + postcss-normalize-display-values: 7.0.1(postcss@8.5.6) + postcss-normalize-positions: 7.0.1(postcss@8.5.6) + postcss-normalize-repeat-style: 7.0.1(postcss@8.5.6) + postcss-normalize-string: 7.0.1(postcss@8.5.6) + postcss-normalize-timing-functions: 7.0.1(postcss@8.5.6) + postcss-normalize-unicode: 7.0.4(postcss@8.5.6) + postcss-normalize-url: 7.0.1(postcss@8.5.6) + postcss-normalize-whitespace: 7.0.1(postcss@8.5.6) + postcss-ordered-values: 7.0.2(postcss@8.5.6) + postcss-reduce-initial: 7.0.4(postcss@8.5.6) + postcss-reduce-transforms: 7.0.1(postcss@8.5.6) + postcss-svgo: 7.1.0(postcss@8.5.6) + postcss-unique-selectors: 7.0.4(postcss@8.5.6) + + cssnano-utils@5.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + + cssnano@7.1.1(postcss@8.5.6): + dependencies: + cssnano-preset-default: 7.0.9(postcss@8.5.6) + lilconfig: 3.1.3 + postcss: 8.5.6 + + csso@5.0.5: + dependencies: + css-tree: 2.2.1 + cssom@0.3.8: optional: true @@ -29927,6 +32460,13 @@ snapshots: '@electric-sql/pglite': 0.2.15 drizzle-orm: 0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3) + db0@0.3.2(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)): + optionalDependencies: + '@electric-sql/pglite': 0.2.15 + drizzle-orm: 0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3) + + de-indent@1.0.2: {} + debounce-promise@3.1.2: {} debounce@1.2.1: {} @@ -29967,6 +32507,12 @@ snapshots: optionalDependencies: supports-color: 8.1.1 + debug@4.4.3(supports-color@8.1.1): + dependencies: + ms: 2.1.3 + optionalDependencies: + supports-color: 8.1.1 + decimal.js-light@2.5.1: {} decimal.js@10.6.0: @@ -30050,6 +32596,8 @@ snapshots: destr@2.0.3: {} + destr@2.0.5: {} + destroy@1.2.0: {} detect-file@1.0.0: {} @@ -30064,6 +32612,8 @@ snapshots: detect-node-es@1.1.0: {} + devalue@5.3.2: {} + devlop@1.1.0: dependencies: dequal: 2.0.3 @@ -30077,12 +32627,12 @@ snapshots: diff@4.0.2: optional: true - diff@5.1.0: {} - diff@5.2.0: {} diff@7.0.0: {} + diff@8.0.2: {} + dir-glob@3.0.1: dependencies: path-type: 4.0.0 @@ -30158,6 +32708,8 @@ snapshots: dotenv@16.5.0: {} + dotenv@17.2.2: {} + dotty@0.1.2: {} drange@1.1.1: {} @@ -30208,6 +32760,8 @@ snapshots: electron-to-chromium@1.5.215: {} + electron-to-chromium@1.5.221: {} + electron-to-chromium@1.5.88: {} emoji-regex-xs@1.0.0: {} @@ -30266,6 +32820,8 @@ snapshots: dependencies: stackframe: 1.3.4 + errx@0.1.0: {} + es-abstract@1.23.3: dependencies: array-buffer-byte-length: 1.0.1 @@ -31011,6 +33567,8 @@ snapshots: exsolve@1.0.4: {} + exsolve@1.0.7: {} + ext@1.7.0: dependencies: type: 2.7.3 @@ -31087,6 +33645,8 @@ snapshots: fast-loops@1.1.4: {} + fast-npm-meta@0.4.6: {} + fast-querystring@1.1.2: dependencies: fast-decode-uri-component: 1.0.1 @@ -31172,9 +33732,9 @@ snapshots: transitivePeerDependencies: - encoding - fdir@6.4.6(picomatch@4.0.2): + fdir@6.5.0(picomatch@4.0.3): optionalDependencies: - picomatch: 4.0.2 + picomatch: 4.0.3 fetch-blob@3.2.0: dependencies: @@ -31281,7 +33841,7 @@ snapshots: jose: 5.9.6 optionalDependencies: '@opentelemetry/api': 1.9.0 - next: 15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) + next: 15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -31444,6 +34004,8 @@ snapshots: functions-have-names@1.2.3: {} + fuse.js@7.1.0: {} + gauge@3.0.2: dependencies: aproba: 2.0.0 @@ -31495,6 +34057,8 @@ snapshots: get-port-please@3.1.2: {} + get-port-please@3.2.0: {} + get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 @@ -31540,9 +34104,18 @@ snapshots: consola: 3.4.2 defu: 6.1.4 node-fetch-native: 1.6.6 - nypm: 0.6.0 + nypm: 0.6.2 pathe: 2.0.3 + git-up@8.1.1: + dependencies: + is-ssh: 1.4.1 + parse-url: 9.2.0 + + git-url-parse@16.1.0: + dependencies: + git-up: 8.1.1 + github-from-package@0.0.0: {} github-slugger@2.0.0: {} @@ -31608,6 +34181,10 @@ snapshots: minipass: 4.2.8 path-scurry: 1.11.1 + global-directory@4.0.1: + dependencies: + ini: 4.1.1 + global-modules@1.0.0: dependencies: global-prefix: 1.0.2 @@ -31658,7 +34235,7 @@ snapshots: dependencies: '@sindresorhus/merge-streams': 2.3.0 fast-glob: 3.3.3 - ignore: 7.0.3 + ignore: 7.0.5 path-type: 6.0.0 slash: 5.1.0 unicorn-magic: 0.3.0 @@ -31698,7 +34275,7 @@ snapshots: '@graphql-tools/utils': 10.8.6(graphql@16.11.0) cosmiconfig: 9.0.0(typescript@5.9.2) graphql: 16.11.0 - jiti: 2.4.2 + jiti: 2.5.1 minimatch: 10.0.1 string-env-interpolation: 1.0.1 tslib: 2.8.1 @@ -31812,16 +34389,16 @@ snapshots: uncrypto: 0.1.3 unenv: 1.10.0 - h3@1.15.1: + h3@1.15.4: dependencies: cookie-es: 1.2.2 - crossws: 0.3.4 + crossws: 0.3.5 defu: 6.1.4 - destr: 2.0.3 + destr: 2.0.5 iron-webcrypto: 1.2.1 - node-mock-http: 1.0.0 + node-mock-http: 1.0.3 radix3: 1.1.2 - ufo: 1.5.4 + ufo: 1.6.1 uncrypto: 0.1.3 handlebars@4.7.8: @@ -32103,6 +34680,8 @@ snapshots: property-information: 6.3.0 space-separated-tokens: 2.0.2 + he@1.2.0: {} + header-case@2.0.4: dependencies: capital-case: 1.0.4 @@ -32178,7 +34757,7 @@ snapshots: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2(supports-color@8.1.1) - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color optional: true @@ -32269,6 +34848,10 @@ snapshots: ignore@7.0.3: {} + ignore@7.0.5: {} + + image-meta@0.2.1: {} + image-size@2.0.2: {} imagescript@1.3.0: {} @@ -32305,6 +34888,14 @@ snapshots: import-meta-resolve@4.1.0: {} + impound@1.0.0: + dependencies: + exsolve: 1.0.7 + mocked-exports: 0.1.1 + pathe: 2.0.3 + unplugin: 2.3.10 + unplugin-utils: 0.2.4 + imurmurhash@0.1.4: {} indent-string@4.0.0: {} @@ -32324,6 +34915,8 @@ snapshots: ini@1.3.8: {} + ini@4.1.1: {} + inline-style-parser@0.1.1: {} inline-style-parser@0.2.3: {} @@ -32396,6 +34989,20 @@ snapshots: transitivePeerDependencies: - supports-color + ioredis@5.7.0(supports-color@8.1.1): + dependencies: + '@ioredis/commands': 1.4.0 + cluster-key-slot: 1.1.2 + debug: 4.4.0(supports-color@8.1.1) + denque: 2.1.0 + lodash.defaults: 4.2.0 + lodash.isarguments: 3.1.0 + redis-errors: 1.2.0 + redis-parser: 3.0.0 + standard-as-callback: 2.1.0 + transitivePeerDependencies: + - supports-color + ip-address@9.0.5: dependencies: jsbn: 1.1.0 @@ -32542,6 +35149,11 @@ snapshots: dependencies: is-docker: 3.0.0 + is-installed-globally@1.0.0: + dependencies: + global-directory: 4.0.1 + is-path-inside: 4.0.0 + is-interactive@1.0.0: {} is-interactive@2.0.0: {} @@ -32583,6 +35195,8 @@ snapshots: is-path-inside@3.0.3: {} + is-path-inside@4.0.0: {} + is-plain-obj@4.1.0: {} is-plain-object@2.0.4: @@ -32634,6 +35248,10 @@ snapshots: dependencies: call-bound: 1.0.4 + is-ssh@1.4.1: + dependencies: + protocols: 2.0.2 + is-stream@1.1.0: {} is-stream@2.0.1: {} @@ -32819,7 +35437,7 @@ snapshots: jiti@1.21.7: {} - jiti@2.4.2: {} + jiti@2.5.1: {} jose@5.9.6: {} @@ -33024,6 +35642,11 @@ snapshots: dependencies: language-subtag-registry: 0.3.23 + launch-editor@2.11.1: + dependencies: + picocolors: 1.1.1 + shell-quote: 1.8.3 + lazy-cache@2.0.2: dependencies: set-getter: 0.1.1 @@ -33074,6 +35697,8 @@ snapshots: lilconfig@2.1.0: {} + lilconfig@3.1.3: {} + linear-sum-assignment@1.0.7: dependencies: cheminfo-types: 1.8.1 @@ -33112,15 +35737,15 @@ snapshots: consola: 3.4.2 crossws: 0.3.4 defu: 6.1.4 - get-port-please: 3.1.2 - h3: 1.15.1 + get-port-please: 3.2.0 + h3: 1.15.4 http-shutdown: 1.2.2 - jiti: 2.4.2 - mlly: 1.7.4 + jiti: 2.5.1 + mlly: 1.8.0 node-forge: 1.3.1 pathe: 1.1.2 - std-env: 3.8.1 - ufo: 1.5.4 + std-env: 3.9.0 + ufo: 1.6.1 untun: 0.1.3 uqr: 0.1.2 @@ -33158,10 +35783,16 @@ snapshots: local-pkg@1.1.1: dependencies: - mlly: 1.7.4 - pkg-types: 2.1.0 + mlly: 1.8.0 + pkg-types: 2.3.0 quansync: 0.2.10 + local-pkg@1.1.2: + dependencies: + mlly: 1.8.0 + pkg-types: 2.3.0 + quansync: 0.2.11 + locate-path@6.0.0: dependencies: p-locate: 5.0.0 @@ -33199,6 +35830,8 @@ snapshots: lodash.isplainobject@4.0.6: {} + lodash.memoize@4.1.2: {} + lodash.merge@4.6.2: {} lodash.sortby@4.7.0: {} @@ -33214,6 +35847,8 @@ snapshots: lodash.throttle@4.1.1: {} + lodash.uniq@4.5.0: {} + lodash.uniqby@4.5.0: dependencies: lodash._baseiteratee: 4.7.0 @@ -33289,13 +35924,31 @@ snapshots: lz-string@1.5.0: {} + magic-regexp@0.10.0: + dependencies: + estree-walker: 3.0.3 + magic-string: 0.30.19 + mlly: 1.8.0 + regexp-tree: 0.1.27 + type-level-regexp: 0.1.17 + ufo: 1.6.1 + unplugin: 2.3.10 + + magic-string-ast@1.0.2: + dependencies: + magic-string: 0.30.19 + magic-string@0.30.17: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 + magic-string@0.30.19: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + magic-string@0.30.8: dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.5 magicast@0.3.5: dependencies: @@ -33779,6 +36432,10 @@ snapshots: mdn-data@2.0.14: {} + mdn-data@2.0.28: {} + + mdn-data@2.12.2: {} + mdurl@1.0.1: {} mdurl@2.0.0: {} @@ -34404,6 +37061,8 @@ snapshots: mime@4.0.6: {} + mime@4.1.0: {} + mimic-fn@2.1.0: {} mimic-fn@4.0.0: {} @@ -34552,6 +37211,13 @@ snapshots: pkg-types: 1.3.1 ufo: 1.5.4 + mlly@1.8.0: + dependencies: + acorn: 8.15.0 + pathe: 2.0.3 + pkg-types: 1.3.1 + ufo: 1.6.1 + mnemonist@0.39.6: dependencies: obliterator: 2.0.4 @@ -34574,6 +37240,8 @@ snapshots: mobx@6.11.0: {} + mocked-exports@0.1.1: {} + module-details-from-path@1.0.3: {} monaco-editor@0.52.2: {} @@ -34667,6 +37335,8 @@ snapshots: transitivePeerDependencies: - '@types/node' + muggle-string@0.4.1: {} + mustache@4.2.0: {} mute-stream@0.0.8: {} @@ -34697,8 +37367,14 @@ snapshots: stacktrace-js: 2.0.2 stylis: 4.3.1 + nanoid@3.3.11: {} + nanoid@3.3.8: {} + nanoid@5.1.5: {} + + nanotar@0.2.0: {} + napi-build-utils@2.0.0: {} natural-compare@1.4.0: {} @@ -34716,12 +37392,26 @@ snapshots: neo-async@2.6.2: {} - next-contentlayer2@0.4.6(contentlayer2@0.4.6(esbuild@0.25.2)(markdown-wasm@1.2.0)(supports-color@8.1.1))(esbuild@0.25.2)(markdown-wasm@1.2.0)(next@15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1): + next-contentlayer2@0.4.6(contentlayer2@0.4.6(esbuild@0.25.2)(markdown-wasm@1.2.0)(supports-color@8.1.1))(esbuild@0.25.2)(markdown-wasm@1.2.0)(next@15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1): dependencies: '@contentlayer2/core': 0.4.3(esbuild@0.25.2)(markdown-wasm@1.2.0)(supports-color@8.1.1) '@contentlayer2/utils': 0.4.3 contentlayer2: 0.4.6(esbuild@0.25.2)(markdown-wasm@1.2.0)(supports-color@8.1.1) - next: 15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) + next: 15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + transitivePeerDependencies: + - '@effect-ts/otel-node' + - esbuild + - markdown-wasm + - supports-color + + next-contentlayer2@0.4.6(contentlayer2@0.4.6(esbuild@0.25.2)(markdown-wasm@1.2.0)(supports-color@8.1.1))(esbuild@0.25.2)(markdown-wasm@1.2.0)(next@15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1): + dependencies: + '@contentlayer2/core': 0.4.3(esbuild@0.25.2)(markdown-wasm@1.2.0)(supports-color@8.1.1) + '@contentlayer2/utils': 0.4.3 + contentlayer2: 0.4.6(esbuild@0.25.2)(markdown-wasm@1.2.0)(supports-color@8.1.1) + next: 15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) transitivePeerDependencies: @@ -34745,14 +37435,14 @@ snapshots: dependencies: js-yaml-loader: 1.2.2 - next-router-mock@0.9.13(next@15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1): + next-router-mock@0.9.13(next@15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1): dependencies: - next: 15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) + next: 15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) react: 18.3.1 next-seo@6.5.0(next@15.5.2(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - next: 15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) + next: 15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -34763,15 +37453,41 @@ snapshots: next-tick@1.1.0: {} - next@15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4): + next@15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4): dependencies: '@next/env': 15.5.2 '@swc/helpers': 0.5.15 - caniuse-lite: 1.0.30001741 + caniuse-lite: 1.0.30001743 postcss: 8.4.31 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - styled-jsx: 5.1.6(@babel/core@7.26.10(supports-color@8.1.1))(babel-plugin-macros@3.1.0)(react@18.3.1) + styled-jsx: 5.1.6(@babel/core@7.26.10(supports-color@8.1.1))(react@18.3.1) + optionalDependencies: + '@next/swc-darwin-arm64': 15.5.2 + '@next/swc-darwin-x64': 15.5.2 + '@next/swc-linux-arm64-gnu': 15.5.2 + '@next/swc-linux-arm64-musl': 15.5.2 + '@next/swc-linux-x64-gnu': 15.5.2 + '@next/swc-linux-x64-musl': 15.5.2 + '@next/swc-win32-arm64-msvc': 15.5.2 + '@next/swc-win32-x64-msvc': 15.5.2 + '@opentelemetry/api': 1.9.0 + '@playwright/test': 1.53.0 + sass: 1.77.4 + sharp: 0.34.3 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + + next@15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4): + dependencies: + '@next/env': 15.5.2 + '@swc/helpers': 0.5.15 + caniuse-lite: 1.0.30001743 + postcss: 8.4.31 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + styled-jsx: 5.1.6(@babel/core@7.28.4(supports-color@8.1.1))(babel-plugin-macros@3.1.0)(react@18.3.1) optionalDependencies: '@next/swc-darwin-arm64': 15.5.2 '@next/swc-darwin-x64': 15.5.2 @@ -34791,18 +37507,18 @@ snapshots: nice-try@1.0.5: {} - nitropack@2.11.7(@electric-sql/pglite@0.2.15)(aws4fetch@1.0.20)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(supports-color@8.1.1)(typescript@5.9.2): + nitropack@2.11.7(@electric-sql/pglite@0.2.15)(aws4fetch@1.0.20)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(supports-color@8.1.1)(typescript@5.9.2): dependencies: '@cloudflare/kv-asset-handler': 0.4.0 '@netlify/functions': 3.0.4 - '@rollup/plugin-alias': 5.1.1(rollup@4.38.0) - '@rollup/plugin-commonjs': 28.0.3(rollup@4.38.0) - '@rollup/plugin-inject': 5.0.5(rollup@4.38.0) - '@rollup/plugin-json': 6.1.0(rollup@4.38.0) - '@rollup/plugin-node-resolve': 16.0.1(rollup@4.38.0) - '@rollup/plugin-replace': 6.0.2(rollup@4.38.0) - '@rollup/plugin-terser': 0.4.4(rollup@4.38.0) - '@vercel/nft': 0.29.2(encoding@0.1.13)(rollup@4.38.0)(supports-color@8.1.1) + '@rollup/plugin-alias': 5.1.1(rollup@4.50.2) + '@rollup/plugin-commonjs': 28.0.3(rollup@4.50.2) + '@rollup/plugin-inject': 5.0.5(rollup@4.50.2) + '@rollup/plugin-json': 6.1.0(rollup@4.50.2) + '@rollup/plugin-node-resolve': 16.0.1(rollup@4.50.2) + '@rollup/plugin-replace': 6.0.2(rollup@4.50.2) + '@rollup/plugin-terser': 0.4.4(rollup@4.50.2) + '@vercel/nft': 0.29.2(rollup@4.50.2)(supports-color@8.1.1) archiver: 7.0.1 c12: 3.0.2(magicast@0.3.5) chokidar: 4.0.3 @@ -34823,11 +37539,11 @@ snapshots: exsolve: 1.0.4 globby: 14.1.0 gzip-size: 7.0.0 - h3: 1.15.1 + h3: 1.15.4 hookable: 5.5.3 httpxy: 0.1.7 ioredis: 5.6.0(supports-color@8.1.1) - jiti: 2.4.2 + jiti: 2.5.1 klona: 2.0.6 knitwork: 1.2.0 listhen: 1.9.0 @@ -34845,8 +37561,8 @@ snapshots: pkg-types: 2.1.0 pretty-bytes: 6.1.1 radix3: 1.1.2 - rollup: 4.38.0 - rollup-plugin-visualizer: 5.14.0(rollup@4.38.0) + rollup: 4.50.2 + rollup-plugin-visualizer: 5.14.0(rollup@4.50.2) scule: 1.3.0 semver: 7.7.2 serve-placeholder: 2.0.2 @@ -34893,6 +37609,106 @@ snapshots: - typescript - uploadthing + nitropack@2.12.6(@electric-sql/pglite@0.2.15)(aws4fetch@1.0.20)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(supports-color@8.1.1): + dependencies: + '@cloudflare/kv-asset-handler': 0.4.0 + '@rollup/plugin-alias': 5.1.1(rollup@4.50.2) + '@rollup/plugin-commonjs': 28.0.6(rollup@4.50.2) + '@rollup/plugin-inject': 5.0.5(rollup@4.50.2) + '@rollup/plugin-json': 6.1.0(rollup@4.50.2) + '@rollup/plugin-node-resolve': 16.0.1(rollup@4.50.2) + '@rollup/plugin-replace': 6.0.2(rollup@4.50.2) + '@rollup/plugin-terser': 0.4.4(rollup@4.50.2) + '@vercel/nft': 0.30.1(encoding@0.1.13)(rollup@4.50.2)(supports-color@8.1.1) + archiver: 7.0.1 + c12: 3.3.0(magicast@0.3.5) + chokidar: 4.0.3 + citty: 0.1.6 + compatx: 0.2.0 + confbox: 0.2.2 + consola: 3.4.2 + cookie-es: 2.0.0 + croner: 9.1.0 + crossws: 0.3.5 + db0: 0.3.2(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)) + defu: 6.1.4 + destr: 2.0.5 + dot-prop: 9.0.0 + esbuild: 0.25.2 + escape-string-regexp: 5.0.0 + etag: 1.8.1 + exsolve: 1.0.7 + globby: 14.1.0 + gzip-size: 7.0.0 + h3: 1.15.4 + hookable: 5.5.3 + httpxy: 0.1.7 + ioredis: 5.7.0(supports-color@8.1.1) + jiti: 2.5.1 + klona: 2.0.6 + knitwork: 1.2.0 + listhen: 1.9.0 + magic-string: 0.30.19 + magicast: 0.3.5 + mime: 4.1.0 + mlly: 1.8.0 + node-fetch-native: 1.6.7 + node-mock-http: 1.0.3 + ofetch: 1.4.1 + ohash: 2.0.11 + pathe: 2.0.3 + perfect-debounce: 2.0.0 + pkg-types: 2.3.0 + pretty-bytes: 7.0.1 + radix3: 1.1.2 + rollup: 4.50.2 + rollup-plugin-visualizer: 6.0.3(rollup@4.50.2) + scule: 1.3.0 + semver: 7.7.2 + serve-placeholder: 2.0.2 + serve-static: 2.2.0(supports-color@8.1.1) + source-map: 0.7.6 + std-env: 3.9.0 + ufo: 1.6.1 + ultrahtml: 1.6.0 + uncrypto: 0.1.3 + unctx: 2.4.1 + unenv: 2.0.0-rc.21 + unimport: 5.2.0 + unplugin-utils: 0.3.0 + unstorage: 1.17.1(aws4fetch@1.0.20)(db0@0.3.2(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(ioredis@5.7.0(supports-color@8.1.1)) + untyped: 2.0.0 + unwasm: 0.3.11 + youch: 4.1.0-beta.11 + youch-core: 0.3.3 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@electric-sql/pglite' + - '@libsql/client' + - '@netlify/blobs' + - '@planetscale/database' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - better-sqlite3 + - drizzle-orm + - encoding + - idb-keyval + - mysql2 + - rolldown + - sqlite3 + - supports-color + - uploadthing + no-case@3.0.4: dependencies: lower-case: 2.0.2 @@ -34920,6 +37736,8 @@ snapshots: node-fetch-native@1.6.6: {} + node-fetch-native@1.6.7: {} + node-fetch@2.7.0(encoding@0.1.13): dependencies: whatwg-url: 5.0.0 @@ -34945,7 +37763,7 @@ snapshots: make-fetch-happen: 13.0.1(supports-color@8.1.1) nopt: 7.2.1 proc-log: 3.0.0 - semver: 7.6.3 + semver: 7.7.2 tar: 6.2.1 which: 4.0.0 transitivePeerDependencies: @@ -34971,6 +37789,8 @@ snapshots: node-mock-http@1.0.0: {} + node-mock-http@1.0.3: {} + node-mocks-http@1.17.2(@types/node@22.13.14): dependencies: accepts: 1.3.8 @@ -34999,6 +37819,8 @@ snapshots: node-releases@2.0.20: {} + node-releases@2.0.21: {} + node-sql-parser@4.18.0: dependencies: big-integer: 1.6.51 @@ -35079,6 +37901,11 @@ snapshots: dependencies: path-key: 4.0.0 + npm-run-path@6.0.0: + dependencies: + path-key: 4.0.0 + unicorn-magic: 0.3.0 + npmlog@5.0.1: dependencies: are-we-there-yet: 2.0.0 @@ -35101,29 +37928,152 @@ snapshots: number-flow@0.3.7: {} - nuqs@1.19.1(next@15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)): + nuqs@1.19.1(next@15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)): dependencies: mitt: 3.0.1 - next: 15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) + next: 15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) - nuqs@2.4.1(next@15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react-router@7.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): + nuqs@2.4.1(next@15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react-router@7.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): dependencies: mitt: 3.0.1 react: 18.3.1 optionalDependencies: - next: 15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) + next: 15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) react-router: 7.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + nuxt@4.1.2(@electric-sql/pglite@0.2.15)(@parcel/watcher@2.5.1)(@types/node@24.3.1)(@vue/compiler-sfc@3.5.21)(aws4fetch@1.0.20)(db0@0.3.2(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(eslint@8.57.0(supports-color@8.1.1))(ioredis@5.7.0(supports-color@8.1.1))(magicast@0.3.5)(rollup@4.50.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(typescript@5.9.2)(vite@6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1))(yaml@2.8.1): + dependencies: + '@nuxt/cli': 3.28.0(magicast@0.3.5) + '@nuxt/devalue': 2.0.2 + '@nuxt/devtools': 2.6.3(supports-color@8.1.1)(vite@6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2)) + '@nuxt/kit': 4.1.2(magicast@0.3.5) + '@nuxt/schema': 4.1.2 + '@nuxt/telemetry': 2.6.6(magicast@0.3.5) + '@nuxt/vite-builder': 4.1.2(@types/node@24.3.1)(eslint@8.57.0(supports-color@8.1.1))(magicast@0.3.5)(rollup@4.50.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2))(yaml@2.8.1) + '@unhead/vue': 2.0.14(vue@3.5.21(typescript@5.9.2)) + '@vue/shared': 3.5.21 + c12: 3.3.0(magicast@0.3.5) + chokidar: 4.0.3 + compatx: 0.2.0 + consola: 3.4.2 + cookie-es: 2.0.0 + defu: 6.1.4 + destr: 2.0.5 + devalue: 5.3.2 + errx: 0.1.0 + esbuild: 0.25.2 + escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 + exsolve: 1.0.7 + h3: 1.15.4 + hookable: 5.5.3 + ignore: 7.0.5 + impound: 1.0.0 + jiti: 2.5.1 + klona: 2.0.6 + knitwork: 1.2.0 + magic-string: 0.30.19 + mlly: 1.8.0 + mocked-exports: 0.1.1 + nanotar: 0.2.0 + nitropack: 2.12.6(@electric-sql/pglite@0.2.15)(aws4fetch@1.0.20)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(supports-color@8.1.1) + nypm: 0.6.2 + ofetch: 1.4.1 + ohash: 2.0.11 + on-change: 5.0.1 + oxc-minify: 0.87.0 + oxc-parser: 0.87.0 + oxc-transform: 0.87.0 + oxc-walker: 0.5.2(oxc-parser@0.87.0) + pathe: 2.0.3 + perfect-debounce: 2.0.0 + pkg-types: 2.3.0 + radix3: 1.1.2 + scule: 1.3.0 + semver: 7.7.2 + std-env: 3.9.0 + tinyglobby: 0.2.15 + ufo: 1.6.1 + ultrahtml: 1.6.0 + uncrypto: 0.1.3 + unctx: 2.4.1 + unimport: 5.2.0 + unplugin: 2.3.10 + unplugin-vue-router: 0.15.0(@vue/compiler-sfc@3.5.21)(typescript@5.9.2)(vue-router@4.5.1(vue@3.5.21(typescript@5.9.2)))(vue@3.5.21(typescript@5.9.2)) + unstorage: 1.17.1(aws4fetch@1.0.20)(db0@0.3.2(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(ioredis@5.7.0(supports-color@8.1.1)) + untyped: 2.0.0 + vue: 3.5.21(typescript@5.9.2) + vue-bundle-renderer: 2.1.2 + vue-devtools-stub: 0.1.0 + vue-router: 4.5.1(vue@3.5.21(typescript@5.9.2)) + optionalDependencies: + '@parcel/watcher': 2.5.1 + '@types/node': 24.3.1 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@biomejs/biome' + - '@capacitor/preferences' + - '@deno/kv' + - '@electric-sql/pglite' + - '@libsql/client' + - '@netlify/blobs' + - '@planetscale/database' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - '@vue/compiler-sfc' + - aws4fetch + - better-sqlite3 + - bufferutil + - db0 + - drizzle-orm + - encoding + - eslint + - idb-keyval + - ioredis + - less + - lightningcss + - magicast + - meow + - mysql2 + - optionator + - rolldown + - rollup + - sass + - sass-embedded + - sqlite3 + - stylelint + - stylus + - sugarss + - supports-color + - terser + - tsx + - typescript + - uploadthing + - utf-8-validate + - vite + - vls + - vti + - vue-tsc + - xml2js + - yaml + nwsapi@2.2.22: optional: true - nypm@0.6.0: + nypm@0.6.2: dependencies: citty: 0.1.6 consola: 3.4.2 pathe: 2.0.3 - pkg-types: 2.1.0 - tinyexec: 0.3.2 + pkg-types: 2.3.0 + tinyexec: 1.0.1 oas-kit-common@1.0.8: dependencies: @@ -35225,14 +38175,16 @@ snapshots: ofetch@1.4.1: dependencies: - destr: 2.0.3 + destr: 2.0.5 node-fetch-native: 1.6.6 - ufo: 1.5.4 + ufo: 1.6.1 ohash@1.1.6: {} ohash@2.0.11: {} + on-change@5.0.1: {} + on-exit-leak-free@2.1.2: {} on-finished@2.4.1: @@ -35269,6 +38221,13 @@ snapshots: is-inside-container: 1.0.0 is-wsl: 3.1.0 + open@10.2.0: + dependencies: + default-browser: 5.2.1 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + wsl-utils: 0.1.0 + open@8.4.2: dependencies: define-lazy-prop: 2.0.0 @@ -35386,6 +38345,67 @@ snapshots: object-keys: 1.1.1 safe-push-apply: 1.0.0 + oxc-minify@0.87.0: + optionalDependencies: + '@oxc-minify/binding-android-arm64': 0.87.0 + '@oxc-minify/binding-darwin-arm64': 0.87.0 + '@oxc-minify/binding-darwin-x64': 0.87.0 + '@oxc-minify/binding-freebsd-x64': 0.87.0 + '@oxc-minify/binding-linux-arm-gnueabihf': 0.87.0 + '@oxc-minify/binding-linux-arm-musleabihf': 0.87.0 + '@oxc-minify/binding-linux-arm64-gnu': 0.87.0 + '@oxc-minify/binding-linux-arm64-musl': 0.87.0 + '@oxc-minify/binding-linux-riscv64-gnu': 0.87.0 + '@oxc-minify/binding-linux-s390x-gnu': 0.87.0 + '@oxc-minify/binding-linux-x64-gnu': 0.87.0 + '@oxc-minify/binding-linux-x64-musl': 0.87.0 + '@oxc-minify/binding-wasm32-wasi': 0.87.0 + '@oxc-minify/binding-win32-arm64-msvc': 0.87.0 + '@oxc-minify/binding-win32-x64-msvc': 0.87.0 + + oxc-parser@0.87.0: + dependencies: + '@oxc-project/types': 0.87.0 + optionalDependencies: + '@oxc-parser/binding-android-arm64': 0.87.0 + '@oxc-parser/binding-darwin-arm64': 0.87.0 + '@oxc-parser/binding-darwin-x64': 0.87.0 + '@oxc-parser/binding-freebsd-x64': 0.87.0 + '@oxc-parser/binding-linux-arm-gnueabihf': 0.87.0 + '@oxc-parser/binding-linux-arm-musleabihf': 0.87.0 + '@oxc-parser/binding-linux-arm64-gnu': 0.87.0 + '@oxc-parser/binding-linux-arm64-musl': 0.87.0 + '@oxc-parser/binding-linux-riscv64-gnu': 0.87.0 + '@oxc-parser/binding-linux-s390x-gnu': 0.87.0 + '@oxc-parser/binding-linux-x64-gnu': 0.87.0 + '@oxc-parser/binding-linux-x64-musl': 0.87.0 + '@oxc-parser/binding-wasm32-wasi': 0.87.0 + '@oxc-parser/binding-win32-arm64-msvc': 0.87.0 + '@oxc-parser/binding-win32-x64-msvc': 0.87.0 + + oxc-transform@0.87.0: + optionalDependencies: + '@oxc-transform/binding-android-arm64': 0.87.0 + '@oxc-transform/binding-darwin-arm64': 0.87.0 + '@oxc-transform/binding-darwin-x64': 0.87.0 + '@oxc-transform/binding-freebsd-x64': 0.87.0 + '@oxc-transform/binding-linux-arm-gnueabihf': 0.87.0 + '@oxc-transform/binding-linux-arm-musleabihf': 0.87.0 + '@oxc-transform/binding-linux-arm64-gnu': 0.87.0 + '@oxc-transform/binding-linux-arm64-musl': 0.87.0 + '@oxc-transform/binding-linux-riscv64-gnu': 0.87.0 + '@oxc-transform/binding-linux-s390x-gnu': 0.87.0 + '@oxc-transform/binding-linux-x64-gnu': 0.87.0 + '@oxc-transform/binding-linux-x64-musl': 0.87.0 + '@oxc-transform/binding-wasm32-wasi': 0.87.0 + '@oxc-transform/binding-win32-arm64-msvc': 0.87.0 + '@oxc-transform/binding-win32-x64-msvc': 0.87.0 + + oxc-walker@0.5.2(oxc-parser@0.87.0): + dependencies: + magic-regexp: 0.10.0 + oxc-parser: 0.87.0 + p-finally@1.0.0: {} p-limit@3.1.0: @@ -35402,6 +38422,8 @@ snapshots: package-json-from-dist@1.0.1: {} + package-manager-detector@1.3.0: {} + pako@0.2.9: {} papaparse@5.4.1: {} @@ -35460,7 +38482,7 @@ snapshots: parse-json@8.1.0: dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.26.2 index-to-position: 0.1.2 type-fest: 4.30.0 @@ -35468,6 +38490,15 @@ snapshots: parse-passwd@1.0.0: {} + parse-path@7.1.0: + dependencies: + protocols: 2.0.2 + + parse-url@9.2.0: + dependencies: + '@types/parse-path': 7.1.0 + parse-path: 7.1.0 + parse5-htmlparser2-tree-adapter@7.0.0: dependencies: domhandler: 5.0.3 @@ -35587,6 +38618,8 @@ snapshots: perfect-debounce@1.0.0: {} + perfect-debounce@2.0.0: {} + perfect-scrollbar@1.5.5: {} periscopic@3.1.0: @@ -35699,7 +38732,7 @@ snapshots: picomatch@2.3.1: {} - picomatch@4.0.2: {} + picomatch@4.0.3: {} pidtree@0.3.1: {} @@ -35785,7 +38818,7 @@ snapshots: pkg-types@1.3.1: dependencies: confbox: 0.1.8 - mlly: 1.7.4 + mlly: 1.8.0 pathe: 2.0.3 pkg-types@2.1.0: @@ -35794,6 +38827,12 @@ snapshots: exsolve: 1.0.4 pathe: 2.0.3 + pkg-types@2.3.0: + dependencies: + confbox: 0.2.2 + exsolve: 1.0.7 + pathe: 2.0.3 + playwright-core@1.53.0: {} playwright@1.53.0: @@ -35817,39 +38856,177 @@ snapshots: possible-typed-array-names@1.0.0: {} - postcss-import@15.1.0(postcss@8.5.3): + postcss-calc@10.1.1(postcss@8.5.6): dependencies: - postcss: 8.5.3 + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + postcss-value-parser: 4.2.0 + + postcss-colormin@7.0.4(postcss@8.5.6): + dependencies: + browserslist: 4.26.2 + caniuse-api: 3.0.0 + colord: 2.9.3 + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-convert-values@7.0.7(postcss@8.5.6): + dependencies: + browserslist: 4.26.2 + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-discard-comments@7.0.4(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + + postcss-discard-duplicates@7.0.2(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + + postcss-discard-empty@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + + postcss-discard-overridden@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + + postcss-import@15.1.0(postcss@8.5.6): + dependencies: + postcss: 8.5.6 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.10 - postcss-js@4.0.1(postcss@8.5.3): + postcss-js@4.0.1(postcss@8.5.6): dependencies: camelcase-css: 2.0.1 - postcss: 8.5.3 + postcss: 8.5.6 - postcss-load-config@4.0.1(postcss@8.5.3)(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.9.2)): + postcss-load-config@4.0.1(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.9.2)): dependencies: lilconfig: 2.1.0 - yaml: 2.4.5 + yaml: 2.8.1 optionalDependencies: - postcss: 8.5.3 + postcss: 8.5.6 ts-node: 10.9.2(@types/node@22.13.14)(typescript@5.9.2) - postcss-load-config@4.0.1(postcss@8.5.3)(ts-node@10.9.2(@types/node@24.3.1)(typescript@5.9.2)): + postcss-load-config@4.0.1(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.3.1)(typescript@5.9.2)): dependencies: lilconfig: 2.1.0 - yaml: 2.4.5 + yaml: 2.8.1 optionalDependencies: - postcss: 8.5.3 + postcss: 8.5.6 ts-node: 10.9.2(@types/node@24.3.1)(typescript@5.9.2) - postcss-nested@6.0.1(postcss@8.5.3): + postcss-merge-longhand@7.0.5(postcss@8.5.6): dependencies: - postcss: 8.5.3 + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + stylehacks: 7.0.6(postcss@8.5.6) + + postcss-merge-rules@7.0.6(postcss@8.5.6): + dependencies: + browserslist: 4.26.2 + caniuse-api: 3.0.0 + cssnano-utils: 5.0.1(postcss@8.5.6) + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + + postcss-minify-font-values@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-minify-gradients@7.0.1(postcss@8.5.6): + dependencies: + colord: 2.9.3 + cssnano-utils: 5.0.1(postcss@8.5.6) + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-minify-params@7.0.4(postcss@8.5.6): + dependencies: + browserslist: 4.26.2 + cssnano-utils: 5.0.1(postcss@8.5.6) + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-minify-selectors@7.0.5(postcss@8.5.6): + dependencies: + cssesc: 3.0.0 + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + + postcss-nested@6.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 postcss-selector-parser: 6.0.13 + postcss-normalize-charset@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + + postcss-normalize-display-values@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-normalize-positions@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-normalize-repeat-style@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-normalize-string@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-normalize-timing-functions@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-normalize-unicode@7.0.4(postcss@8.5.6): + dependencies: + browserslist: 4.26.2 + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-normalize-url@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-normalize-whitespace@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-ordered-values@7.0.2(postcss@8.5.6): + dependencies: + cssnano-utils: 5.0.1(postcss@8.5.6) + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-reduce-initial@7.0.4(postcss@8.5.6): + dependencies: + browserslist: 4.26.2 + caniuse-api: 3.0.0 + postcss: 8.5.6 + + postcss-reduce-transforms@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + postcss-selector-parser@6.0.10: dependencies: cssesc: 3.0.0 @@ -35860,11 +39037,27 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 + postcss-selector-parser@7.1.0: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-svgo@7.1.0(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + svgo: 4.0.0 + + postcss-unique-selectors@7.0.4(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + postcss-value-parser@4.2.0: {} postcss@8.4.31: dependencies: - nanoid: 3.3.8 + nanoid: 3.3.11 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -35874,6 +39067,12 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + postcss@8.5.6: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + postgres-array@2.0.0: {} postgres-array@3.0.2: {} @@ -35952,6 +39151,8 @@ snapshots: pretty-bytes@6.1.1: {} + pretty-bytes@7.0.1: {} + pretty-format@27.5.1: dependencies: ansi-regex: 5.0.1 @@ -36047,6 +39248,8 @@ snapshots: '@types/node': 24.3.1 long: 5.2.3 + protocols@2.0.2: {} + proxy-addr@2.0.7: dependencies: forwarded: 0.2.0 @@ -36079,6 +39282,8 @@ snapshots: quansync@0.2.10: {} + quansync@0.2.11: {} + querystringify@2.2.0: {} queue-microtask@1.2.3: {} @@ -36136,7 +39341,7 @@ snapshots: rc9@2.1.2: dependencies: defu: 6.1.4 - destr: 2.0.3 + destr: 2.0.5 rc@1.2.8: dependencies: @@ -36788,6 +39993,8 @@ snapshots: dependencies: regex-utilities: 2.3.0 + regexp-tree@0.1.27: {} + regexp.prototype.flags@1.5.2: dependencies: call-bind: 1.0.7 @@ -36927,7 +40134,7 @@ snapshots: estree-util-value-to-estree: 3.3.3 toml: 3.0.0 unified: 11.0.5 - yaml: 2.4.5 + yaml: 2.8.1 remark-mdx@2.3.0(supports-color@8.1.1): dependencies: @@ -37119,14 +40326,23 @@ snapshots: glob: 11.0.0 package-json-from-dist: 1.0.1 - rollup-plugin-visualizer@5.14.0(rollup@4.38.0): + rollup-plugin-visualizer@5.14.0(rollup@4.50.2): dependencies: open: 8.4.2 - picomatch: 4.0.2 + picomatch: 4.0.3 source-map: 0.7.4 yargs: 17.7.2 optionalDependencies: - rollup: 4.38.0 + rollup: 4.50.2 + + rollup-plugin-visualizer@6.0.3(rollup@4.50.2): + dependencies: + open: 8.4.2 + picomatch: 4.0.3 + source-map: 0.7.6 + yargs: 17.7.2 + optionalDependencies: + rollup: 4.50.2 rollup@4.38.0: dependencies: @@ -37154,6 +40370,33 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.38.0 fsevents: 2.3.3 + rollup@4.50.2: + dependencies: + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.50.2 + '@rollup/rollup-android-arm64': 4.50.2 + '@rollup/rollup-darwin-arm64': 4.50.2 + '@rollup/rollup-darwin-x64': 4.50.2 + '@rollup/rollup-freebsd-arm64': 4.50.2 + '@rollup/rollup-freebsd-x64': 4.50.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.50.2 + '@rollup/rollup-linux-arm-musleabihf': 4.50.2 + '@rollup/rollup-linux-arm64-gnu': 4.50.2 + '@rollup/rollup-linux-arm64-musl': 4.50.2 + '@rollup/rollup-linux-loong64-gnu': 4.50.2 + '@rollup/rollup-linux-ppc64-gnu': 4.50.2 + '@rollup/rollup-linux-riscv64-gnu': 4.50.2 + '@rollup/rollup-linux-riscv64-musl': 4.50.2 + '@rollup/rollup-linux-s390x-gnu': 4.50.2 + '@rollup/rollup-linux-x64-gnu': 4.50.2 + '@rollup/rollup-linux-x64-musl': 4.50.2 + '@rollup/rollup-openharmony-arm64': 4.50.2 + '@rollup/rollup-win32-arm64-msvc': 4.50.2 + '@rollup/rollup-win32-ia32-msvc': 4.50.2 + '@rollup/rollup-win32-x64-msvc': 4.50.2 + fsevents: 2.3.3 + router@2.2.0(supports-color@8.1.1): dependencies: debug: 4.4.1(supports-color@8.1.1) @@ -37257,6 +40500,8 @@ snapshots: postcss-value-parser: 4.2.0 yoga-wasm-web: 0.3.3 + sax@1.4.1: {} + saxes@6.0.0: dependencies: xmlchars: 2.2.0 @@ -37304,8 +40549,6 @@ snapshots: semver@6.3.1: {} - semver@7.6.3: {} - semver@7.7.1: {} semver@7.7.2: {} @@ -37510,6 +40753,8 @@ snapshots: shell-quote@1.8.1: {} + shell-quote@1.8.3: {} + shelljs@0.9.2: dependencies: execa: 1.0.0 @@ -37617,6 +40862,14 @@ snapshots: transitivePeerDependencies: - supports-color + simple-git@3.28.0(supports-color@8.1.1): + dependencies: + '@kwsites/file-exists': 1.1.1(supports-color@8.1.1) + '@kwsites/promise-deferred': 1.1.1 + debug: 4.4.0(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + simple-swizzle@0.2.2: dependencies: is-arrayish: 0.3.2 @@ -37647,6 +40900,12 @@ snapshots: mrmime: 2.0.0 totalist: 3.0.1 + sirv@3.0.2: + dependencies: + '@polka/url': 1.0.0-next.25 + mrmime: 2.0.0 + totalist: 3.0.1 + sisteransi@1.0.5: {} slash@3.0.0: {} @@ -37740,6 +40999,8 @@ snapshots: source-map@0.7.4: {} + source-map@0.7.6: {} + space-separated-tokens@1.1.5: {} space-separated-tokens@2.0.2: {} @@ -37758,6 +41019,8 @@ snapshots: spdx-license-ids@3.0.15: {} + speakingurl@14.0.1: {} + split2@4.2.0: {} sponge-case@1.0.1: @@ -37837,6 +41100,8 @@ snapshots: std-env@3.8.1: {} + std-env@3.9.0: {} + stdin-discarder@0.1.0: dependencies: bl: 5.1.0 @@ -38015,6 +41280,8 @@ snapshots: '@tokenizer/token': 0.3.0 peek-readable: 5.4.2 + structured-clone-es@1.0.0: {} + style-dictionary@3.8.0: dependencies: chalk: 4.1.2 @@ -38064,14 +41331,27 @@ snapshots: stylis: 4.3.1 tslib: 2.5.0 - styled-jsx@5.1.6(@babel/core@7.26.10(supports-color@8.1.1))(babel-plugin-macros@3.1.0)(react@18.3.1): + styled-jsx@5.1.6(@babel/core@7.26.10(supports-color@8.1.1))(react@18.3.1): dependencies: client-only: 0.0.1 react: 18.3.1 optionalDependencies: '@babel/core': 7.26.10(supports-color@8.1.1) + + styled-jsx@5.1.6(@babel/core@7.28.4(supports-color@8.1.1))(babel-plugin-macros@3.1.0)(react@18.3.1): + dependencies: + client-only: 0.0.1 + react: 18.3.1 + optionalDependencies: + '@babel/core': 7.28.4(supports-color@8.1.1) babel-plugin-macros: 3.1.0 + stylehacks@7.0.6(postcss@8.5.6): + dependencies: + browserslist: 4.26.2 + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + stylis@4.2.0: {} stylis@4.3.1: {} @@ -38099,6 +41379,10 @@ snapshots: dependencies: copy-anything: 3.0.5 + superjson@2.2.2: + dependencies: + copy-anything: 3.0.5 + supports-color@10.0.0: {} supports-color@5.5.0: @@ -38117,6 +41401,16 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} + svgo@4.0.0: + dependencies: + commander: 11.1.0 + css-select: 5.1.0 + css-tree: 3.1.0 + css-what: 6.1.0 + csso: 5.0.5 + picocolors: 1.1.1 + sax: 1.4.1 + svgson@5.3.1: dependencies: deep-rename-keys: 0.2.1 @@ -38187,11 +41481,11 @@ snapshots: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.1.1 - postcss: 8.5.3 - postcss-import: 15.1.0(postcss@8.5.3) - postcss-js: 4.0.1(postcss@8.5.3) - postcss-load-config: 4.0.1(postcss@8.5.3)(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.9.2)) - postcss-nested: 6.0.1(postcss@8.5.3) + postcss: 8.5.6 + postcss-import: 15.1.0(postcss@8.5.6) + postcss-js: 4.0.1(postcss@8.5.6) + postcss-load-config: 4.0.1(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.9.2)) + postcss-nested: 6.0.1(postcss@8.5.6) postcss-selector-parser: 6.0.13 resolve: 1.22.10 sucrase: 3.34.0 @@ -38214,11 +41508,11 @@ snapshots: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.1.1 - postcss: 8.5.3 - postcss-import: 15.1.0(postcss@8.5.3) - postcss-js: 4.0.1(postcss@8.5.3) - postcss-load-config: 4.0.1(postcss@8.5.3)(ts-node@10.9.2(@types/node@24.3.1)(typescript@5.9.2)) - postcss-nested: 6.0.1(postcss@8.5.3) + postcss: 8.5.6 + postcss-import: 15.1.0(postcss@8.5.6) + postcss-js: 4.0.1(postcss@8.5.6) + postcss-load-config: 4.0.1(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.3.1)(typescript@5.9.2)) + postcss-nested: 6.0.1(postcss@8.5.6) postcss-selector-parser: 6.0.13 resolve: 1.22.10 sucrase: 3.34.0 @@ -38284,7 +41578,7 @@ snapshots: terser-webpack-plugin@5.3.14(esbuild@0.25.2)(webpack@5.94.0(esbuild@0.25.2)): dependencies: - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.2 serialize-javascript: 6.0.2 @@ -38296,7 +41590,7 @@ snapshots: terser-webpack-plugin@5.3.14(webpack@5.94.0): dependencies: - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.2 serialize-javascript: 6.0.2 @@ -38376,10 +41670,17 @@ snapshots: tinyexec@0.3.2: {} + tinyexec@1.0.1: {} + tinyglobby@0.2.14: dependencies: - fdir: 6.4.6(picomatch@4.0.2) - picomatch: 4.0.2 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 tinypool@1.0.2: {} @@ -38669,6 +41970,8 @@ snapshots: media-typer: 1.1.0 mime-types: 3.0.1 + type-level-regexp@0.1.17: {} + type@2.7.3: {} typed-array-buffer@1.0.2: @@ -38750,6 +42053,8 @@ snapshots: ufo@1.5.4: {} + ufo@1.6.1: {} + uglify-js@3.17.4: optional: true @@ -38757,6 +42062,8 @@ snapshots: ultrahtml@1.5.3: {} + ultrahtml@1.6.0: {} + un-eval@1.2.0: {} unbox-primitive@1.0.2: @@ -38781,8 +42088,8 @@ snapshots: dependencies: acorn: 8.14.1 estree-walker: 3.0.3 - magic-string: 0.30.17 - unplugin: 2.2.2 + magic-string: 0.30.19 + unplugin: 2.3.10 undici-types@5.26.5: {} @@ -38810,8 +42117,20 @@ snapshots: pathe: 2.0.3 ufo: 1.5.4 + unenv@2.0.0-rc.21: + dependencies: + defu: 6.1.4 + exsolve: 1.0.7 + ohash: 2.0.11 + pathe: 2.0.3 + ufo: 1.6.1 + unfetch@4.2.0: {} + unhead@2.0.14: + dependencies: + hookable: 5.5.3 + unicode-trie@2.0.0: dependencies: pako: 0.2.9 @@ -38848,14 +42167,31 @@ snapshots: magic-string: 0.30.17 mlly: 1.7.4 pathe: 2.0.3 - picomatch: 4.0.2 + picomatch: 4.0.3 pkg-types: 1.3.1 scule: 1.3.0 strip-literal: 3.0.0 - tinyglobby: 0.2.14 + tinyglobby: 0.2.15 unplugin: 2.2.2 unplugin-utils: 0.2.4 + unimport@5.2.0: + dependencies: + acorn: 8.15.0 + escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 + local-pkg: 1.1.1 + magic-string: 0.30.19 + mlly: 1.8.0 + pathe: 2.0.3 + picomatch: 4.0.3 + pkg-types: 2.3.0 + scule: 1.3.0 + strip-literal: 3.0.0 + tinyglobby: 0.2.15 + unplugin: 2.3.10 + unplugin-utils: 0.2.4 + unique-filename@1.1.1: dependencies: unique-slug: 2.0.2 @@ -38978,7 +42314,37 @@ snapshots: unplugin-utils@0.2.4: dependencies: pathe: 2.0.3 - picomatch: 4.0.2 + picomatch: 4.0.3 + + unplugin-utils@0.3.0: + dependencies: + pathe: 2.0.3 + picomatch: 4.0.3 + + unplugin-vue-router@0.15.0(@vue/compiler-sfc@3.5.21)(typescript@5.9.2)(vue-router@4.5.1(vue@3.5.21(typescript@5.9.2)))(vue@3.5.21(typescript@5.9.2)): + dependencies: + '@vue-macros/common': 3.0.0-beta.16(vue@3.5.21(typescript@5.9.2)) + '@vue/compiler-sfc': 3.5.21 + '@vue/language-core': 3.0.7(typescript@5.9.2) + ast-walker-scope: 0.8.2 + chokidar: 4.0.3 + json5: 2.2.3 + local-pkg: 1.1.1 + magic-string: 0.30.19 + mlly: 1.8.0 + muggle-string: 0.4.1 + pathe: 2.0.3 + picomatch: 4.0.3 + scule: 1.3.0 + tinyglobby: 0.2.15 + unplugin: 2.3.10 + unplugin-utils: 0.2.4 + yaml: 2.8.1 + optionalDependencies: + vue-router: 4.5.1(vue@3.5.21(typescript@5.9.2)) + transitivePeerDependencies: + - typescript + - vue unplugin@1.0.1: dependencies: @@ -38997,12 +42363,19 @@ snapshots: acorn: 8.14.1 webpack-virtual-modules: 0.6.2 + unplugin@2.3.10: + dependencies: + '@jridgewell/remapping': 2.3.5 + acorn: 8.15.0 + picomatch: 4.0.3 + webpack-virtual-modules: 0.6.2 + unstorage@1.15.0(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(ioredis@5.6.0(supports-color@8.1.1)): dependencies: anymatch: 3.1.3 chokidar: 4.0.3 destr: 2.0.3 - h3: 1.15.1 + h3: 1.15.4 lru-cache: 10.4.3 node-fetch-native: 1.6.6 ofetch: 1.4.1 @@ -39012,6 +42385,21 @@ snapshots: db0: 0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)) ioredis: 5.6.0(supports-color@8.1.1) + unstorage@1.17.1(aws4fetch@1.0.20)(db0@0.3.2(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(ioredis@5.7.0(supports-color@8.1.1)): + dependencies: + anymatch: 3.1.3 + chokidar: 4.0.3 + destr: 2.0.5 + h3: 1.15.4 + lru-cache: 10.4.3 + node-fetch-native: 1.6.7 + ofetch: 1.4.1 + ufo: 1.6.1 + optionalDependencies: + aws4fetch: 1.0.20 + db0: 0.3.2(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)) + ioredis: 5.7.0(supports-color@8.1.1) + untun@0.1.3: dependencies: citty: 0.1.6 @@ -39022,10 +42410,19 @@ snapshots: dependencies: citty: 0.1.6 defu: 6.1.4 - jiti: 2.4.2 + jiti: 2.5.1 knitwork: 1.2.0 scule: 1.3.0 + unwasm@0.3.11: + dependencies: + knitwork: 1.2.0 + magic-string: 0.30.19 + mlly: 1.8.0 + pathe: 2.0.3 + pkg-types: 2.3.0 + unplugin: 2.3.10 + unwasm@0.3.9: dependencies: knitwork: 1.2.0 @@ -39047,6 +42444,12 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 + update-browserslist-db@1.1.3(browserslist@4.26.2): + dependencies: + browserslist: 4.26.2 + escalade: 3.2.0 + picocolors: 1.1.1 + upper-case-first@2.0.2: dependencies: tslib: 2.8.1 @@ -39137,7 +42540,7 @@ snapshots: uvu@0.5.6: dependencies: dequal: 2.0.3 - diff: 5.1.0 + diff: 5.2.0 kleur: 4.1.5 sade: 1.8.1 @@ -39249,7 +42652,7 @@ snapshots: d3-time: 3.1.0 d3-timer: 3.0.1 - vinxi@0.5.3(@electric-sql/pglite@0.2.15)(@types/node@24.3.1)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(yaml@2.4.5): + vinxi@0.5.3(@electric-sql/pglite@0.2.15)(@types/node@24.3.1)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(typescript@5.9.2)(yaml@2.8.1): dependencies: '@babel/core': 7.26.10(supports-color@8.1.1) '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.10(supports-color@8.1.1)) @@ -39271,7 +42674,7 @@ snapshots: hookable: 5.5.3 http-proxy: 1.18.1 micromatch: 4.0.8 - nitropack: 2.11.7(@electric-sql/pglite@0.2.15)(aws4fetch@1.0.20)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(supports-color@8.1.1)(typescript@5.9.2) + nitropack: 2.11.7(@electric-sql/pglite@0.2.15)(aws4fetch@1.0.20)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(supports-color@8.1.1)(typescript@5.9.2) node-fetch-native: 1.6.6 path-to-regexp: 6.3.0 pathe: 1.1.2 @@ -39283,7 +42686,7 @@ snapshots: unctx: 2.4.1 unenv: 1.10.0 unstorage: 1.15.0(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(ioredis@5.6.0(supports-color@8.1.1)) - vite: 6.3.5(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) + vite: 6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1) zod: 3.25.76 transitivePeerDependencies: - '@azure/app-configuration' @@ -39328,13 +42731,23 @@ snapshots: - xml2js - yaml - vite-node@3.0.0-beta.2(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5): + vite-dev-rpc@1.1.0(vite@6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)): + dependencies: + birpc: 2.5.0 + vite: 6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) + vite-hot-client: 2.1.0(vite@6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)) + + vite-hot-client@2.1.0(vite@6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)): + dependencies: + vite: 6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) + + vite-node@3.0.0-beta.2(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1): dependencies: cac: 6.7.14 debug: 4.4.1(supports-color@8.1.1) es-module-lexer: 1.7.0 pathe: 1.1.2 - vite: 6.3.5(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) + vite: 6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - jiti @@ -39349,13 +42762,13 @@ snapshots: - tsx - yaml - vite-node@3.0.9(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5): + vite-node@3.0.9(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5): dependencies: cac: 6.7.14 debug: 4.4.0(supports-color@8.1.1) es-module-lexer: 1.6.0 pathe: 2.0.3 - vite: 6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) + vite: 6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) transitivePeerDependencies: - '@types/node' - jiti @@ -39370,13 +42783,13 @@ snapshots: - tsx - yaml - vite-node@3.0.9(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.4.5): + vite-node@3.0.9(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1): dependencies: cac: 6.7.14 debug: 4.4.0(supports-color@8.1.1) es-module-lexer: 1.6.0 pathe: 2.0.3 - vite: 6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.4.5) + vite: 6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - jiti @@ -39391,13 +42804,13 @@ snapshots: - tsx - yaml - vite-node@3.0.9(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.4.5): + vite-node@3.0.9(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1): dependencies: cac: 6.7.14 debug: 4.4.0(supports-color@8.1.1) es-module-lexer: 1.6.0 pathe: 2.0.3 - vite: 6.3.5(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.4.5) + vite: 6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - jiti @@ -39412,89 +42825,219 @@ snapshots: - tsx - yaml - vite-tsconfig-paths@4.3.2(supports-color@8.1.1)(typescript@5.9.2)(vite@6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5)): + vite-node@3.0.9(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1): + dependencies: + cac: 6.7.14 + debug: 4.4.0(supports-color@8.1.1) + es-module-lexer: 1.6.0 + pathe: 2.0.3 + vite: 6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) + transitivePeerDependencies: + - '@types/node' + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + vite-node@3.2.4(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1): + dependencies: + cac: 6.7.14 + debug: 4.4.3(supports-color@8.1.1) + es-module-lexer: 1.7.0 + pathe: 2.0.3 + vite: 7.1.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) + transitivePeerDependencies: + - '@types/node' + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + vite-plugin-checker@0.10.3(eslint@8.57.0(supports-color@8.1.1))(typescript@5.9.2)(vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)): + dependencies: + '@babel/code-frame': 7.27.1 + chokidar: 4.0.3 + npm-run-path: 6.0.0 + picocolors: 1.1.1 + picomatch: 4.0.3 + strip-ansi: 7.1.0 + tiny-invariant: 1.3.3 + tinyglobby: 0.2.15 + vite: 7.1.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) + vscode-uri: 3.1.0 + optionalDependencies: + eslint: 8.57.0(supports-color@8.1.1) + typescript: 5.9.2 + + vite-plugin-inspect@11.3.3(@nuxt/kit@3.19.2(magicast@0.3.5))(supports-color@8.1.1)(vite@6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)): + dependencies: + ansis: 4.1.0 + debug: 4.4.3(supports-color@8.1.1) + error-stack-parser-es: 1.0.5 + ohash: 2.0.11 + open: 10.2.0 + perfect-debounce: 2.0.0 + sirv: 3.0.2 + unplugin-utils: 0.3.0 + vite: 6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) + vite-dev-rpc: 1.1.0(vite@6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)) + optionalDependencies: + '@nuxt/kit': 3.19.2(magicast@0.3.5) + transitivePeerDependencies: + - supports-color + + vite-plugin-vue-tracer@1.0.0(vite@6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2)): + dependencies: + estree-walker: 3.0.3 + exsolve: 1.0.7 + magic-string: 0.30.19 + pathe: 2.0.3 + source-map-js: 1.2.1 + vite: 6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) + vue: 3.5.21(typescript@5.9.2) + + vite-tsconfig-paths@4.3.2(supports-color@8.1.1)(typescript@5.9.2)(vite@6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5)): dependencies: debug: 4.3.7(supports-color@8.1.1) globrex: 0.1.2 tsconfck: 3.0.3(typescript@5.9.2) optionalDependencies: - vite: 6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) + vite: 6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) transitivePeerDependencies: - supports-color - typescript - vite@6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5): + vite-tsconfig-paths@4.3.2(supports-color@8.1.1)(typescript@5.9.2)(vite@6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1)): + dependencies: + debug: 4.3.7(supports-color@8.1.1) + globrex: 0.1.2 + tsconfck: 3.0.3(typescript@5.9.2) + optionalDependencies: + vite: 6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1) + transitivePeerDependencies: + - supports-color + - typescript + + vite@6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5): dependencies: esbuild: 0.25.2 - fdir: 6.4.6(picomatch@4.0.2) - picomatch: 4.0.2 - postcss: 8.5.3 - rollup: 4.38.0 - tinyglobby: 0.2.14 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.50.2 + tinyglobby: 0.2.15 optionalDependencies: '@types/node': 22.13.14 fsevents: 2.3.3 - jiti: 2.4.2 + jiti: 2.5.1 sass: 1.77.4 terser: 5.44.0 tsx: 4.19.3 yaml: 2.4.5 - vite@6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.4.5): + vite@6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1): dependencies: esbuild: 0.25.2 - fdir: 6.4.6(picomatch@4.0.2) - picomatch: 4.0.2 - postcss: 8.5.3 - rollup: 4.38.0 - tinyglobby: 0.2.14 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.50.2 + tinyglobby: 0.2.15 optionalDependencies: '@types/node': 22.13.14 fsevents: 2.3.3 - jiti: 2.4.2 - sass: 1.77.4 - terser: 5.44.0 - tsx: 4.20.3 - yaml: 2.4.5 - - vite@6.3.5(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5): - dependencies: - esbuild: 0.25.2 - fdir: 6.4.6(picomatch@4.0.2) - picomatch: 4.0.2 - postcss: 8.5.3 - rollup: 4.38.0 - tinyglobby: 0.2.14 - optionalDependencies: - '@types/node': 24.3.1 - fsevents: 2.3.3 - jiti: 2.4.2 + jiti: 2.5.1 sass: 1.77.4 terser: 5.44.0 tsx: 4.19.3 - yaml: 2.4.5 + yaml: 2.8.1 - vite@6.3.5(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.4.5): + vite@6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1): dependencies: esbuild: 0.25.2 - fdir: 6.4.6(picomatch@4.0.2) - picomatch: 4.0.2 - postcss: 8.5.3 - rollup: 4.38.0 - tinyglobby: 0.2.14 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.50.2 + tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 24.3.1 + '@types/node': 22.13.14 fsevents: 2.3.3 - jiti: 2.4.2 + jiti: 2.5.1 sass: 1.77.4 terser: 5.44.0 tsx: 4.20.3 - yaml: 2.4.5 + yaml: 2.8.1 - vitest@3.0.9(@types/node@22.13.14)(@vitest/ui@3.0.4)(jiti@2.4.2)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.4.11(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5): + vite@6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1): + dependencies: + esbuild: 0.25.2 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.50.2 + tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 24.3.1 + fsevents: 2.3.3 + jiti: 2.5.1 + sass: 1.77.4 + terser: 5.44.0 + tsx: 4.19.3 + yaml: 2.8.1 + + vite@6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1): + dependencies: + esbuild: 0.25.2 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.50.2 + tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 24.3.1 + fsevents: 2.3.3 + jiti: 2.5.1 + sass: 1.77.4 + terser: 5.44.0 + tsx: 4.20.3 + yaml: 2.8.1 + + vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1): + dependencies: + esbuild: 0.25.2 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.50.2 + tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 24.3.1 + fsevents: 2.3.3 + jiti: 2.5.1 + sass: 1.77.4 + terser: 5.44.0 + tsx: 4.20.3 + yaml: 2.8.1 + + vitest@3.0.9(@types/node@22.13.14)(@vitest/ui@3.0.4)(jiti@2.5.1)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.4.11(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1): dependencies: '@vitest/expect': 3.0.9 - '@vitest/mocker': 3.0.9(msw@2.4.11(typescript@5.9.2))(vite@6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5)) + '@vitest/mocker': 3.0.9(msw@2.4.11(typescript@5.9.2))(vite@6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1)) '@vitest/pretty-format': 3.0.9 '@vitest/runner': 3.0.9 '@vitest/snapshot': 3.0.9 @@ -39510,8 +43053,8 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) - vite-node: 3.0.9(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) + vite: 6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1) + vite-node: 3.0.9(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.13.14 @@ -39531,10 +43074,10 @@ snapshots: - tsx - yaml - vitest@3.0.9(@types/node@22.13.14)(@vitest/ui@3.0.4)(jiti@2.4.2)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.4.5): + vitest@3.0.9(@types/node@22.13.14)(@vitest/ui@3.0.4)(jiti@2.5.1)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1): dependencies: '@vitest/expect': 3.0.9 - '@vitest/mocker': 3.0.9(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(vite@6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.4.5)) + '@vitest/mocker': 3.0.9(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(vite@6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)) '@vitest/pretty-format': 3.0.9 '@vitest/runner': 3.0.9 '@vitest/snapshot': 3.0.9 @@ -39550,8 +43093,8 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.4.5) - vite-node: 3.0.9(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.4.5) + vite: 6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) + vite-node: 3.0.9(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.13.14 @@ -39571,10 +43114,10 @@ snapshots: - tsx - yaml - vitest@3.0.9(@types/node@22.13.14)(jiti@2.4.2)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5): + vitest@3.0.9(@types/node@22.13.14)(jiti@2.5.1)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5): dependencies: '@vitest/expect': 3.0.9 - '@vitest/mocker': 3.0.9(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(vite@6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5)) + '@vitest/mocker': 3.0.9(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(vite@6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5)) '@vitest/pretty-format': 3.0.9 '@vitest/runner': 3.0.9 '@vitest/snapshot': 3.0.9 @@ -39590,8 +43133,8 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) - vite-node: 3.0.9(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) + vite: 6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) + vite-node: 3.0.9(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.4.5) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.13.14 @@ -39610,10 +43153,10 @@ snapshots: - tsx - yaml - vitest@3.0.9(@types/node@24.3.1)(jiti@2.4.2)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@24.3.1)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.4.5): + vitest@3.0.9(@types/node@22.13.14)(jiti@2.5.1)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1): dependencies: '@vitest/expect': 3.0.9 - '@vitest/mocker': 3.0.9(msw@2.7.3(@types/node@24.3.1)(typescript@5.9.2))(vite@6.3.5(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.4.5)) + '@vitest/mocker': 3.0.9(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(vite@6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1)) '@vitest/pretty-format': 3.0.9 '@vitest/runner': 3.0.9 '@vitest/snapshot': 3.0.9 @@ -39629,8 +43172,47 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.3.5(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.4.5) - vite-node: 3.0.9(@types/node@24.3.1)(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.4.5) + vite: 6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1) + vite-node: 3.0.9(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.19.3)(yaml@2.8.1) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 22.13.14 + jsdom: 20.0.3(supports-color@8.1.1) + transitivePeerDependencies: + - jiti + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + vitest@3.0.9(@types/node@24.3.1)(jiti@2.5.1)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@24.3.1)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1): + dependencies: + '@vitest/expect': 3.0.9 + '@vitest/mocker': 3.0.9(msw@2.7.3(@types/node@24.3.1)(typescript@5.9.2))(vite@6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)) + '@vitest/pretty-format': 3.0.9 + '@vitest/runner': 3.0.9 + '@vitest/snapshot': 3.0.9 + '@vitest/spy': 3.0.9 + '@vitest/utils': 3.0.9 + chai: 5.2.0 + debug: 4.4.0(supports-color@8.1.1) + expect-type: 1.1.0 + magic-string: 0.30.17 + pathe: 2.0.3 + std-env: 3.8.1 + tinybench: 2.9.0 + tinyexec: 0.3.2 + tinypool: 1.0.2 + tinyrainbow: 2.0.0 + vite: 6.3.5(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) + vite-node: 3.0.9(@types/node@24.3.1)(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 24.3.1 @@ -39651,6 +43233,29 @@ snapshots: vscode-languageserver-types@3.17.5: {} + vscode-uri@3.1.0: {} + + vue-bundle-renderer@2.1.2: + dependencies: + ufo: 1.6.1 + + vue-devtools-stub@0.1.0: {} + + vue-router@4.5.1(vue@3.5.21(typescript@5.9.2)): + dependencies: + '@vue/devtools-api': 6.6.4 + vue: 3.5.21(typescript@5.9.2) + + vue@3.5.21(typescript@5.9.2): + dependencies: + '@vue/compiler-dom': 3.5.21 + '@vue/compiler-sfc': 3.5.21 + '@vue/runtime-dom': 3.5.21 + '@vue/server-renderer': 3.5.21(vue@3.5.21(typescript@5.9.2)) + '@vue/shared': 3.5.21 + optionalDependencies: + typescript: 5.9.2 + w3c-keyname@2.2.8: {} w3c-xmlserializer@4.0.0: @@ -39719,7 +43324,7 @@ snapshots: '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.15.0 acorn-import-attributes: 1.9.5(acorn@8.15.0) - browserslist: 4.25.4 + browserslist: 4.26.2 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.3 es-module-lexer: 1.7.0 @@ -39749,7 +43354,7 @@ snapshots: '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.15.0 acorn-import-attributes: 1.9.5(acorn@8.15.0) - browserslist: 4.25.4 + browserslist: 4.26.2 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.3 es-module-lexer: 1.7.0 @@ -39888,6 +43493,10 @@ snapshots: dependencies: isexe: 3.1.1 + which@5.0.0: + dependencies: + isexe: 3.1.1 + why-is-node-running@2.3.0: dependencies: siginfo: 2.0.0 @@ -39932,6 +43541,10 @@ snapshots: ws@8.18.3: {} + wsl-utils@0.1.0: + dependencies: + is-wsl: 3.1.0 + xml-lexer@0.2.2: dependencies: eventemitter3: 2.0.3 @@ -39968,6 +43581,8 @@ snapshots: yaml@2.4.5: {} + yaml@2.8.1: {} + yargs-parser@20.2.9: {} yargs-parser@21.1.1: {} @@ -40010,6 +43625,19 @@ snapshots: '@poppinss/exception': 1.2.1 error-stack-parser-es: 1.0.5 + youch-core@0.3.3: + dependencies: + '@poppinss/exception': 1.2.2 + error-stack-parser-es: 1.0.5 + + youch@4.1.0-beta.11: + dependencies: + '@poppinss/colors': 4.1.5 + '@poppinss/dumper': 0.6.4 + '@speed-highlight/core': 1.2.7 + cookie: 1.0.2 + youch-core: 0.3.3 + youch@4.1.0-beta.6: dependencies: '@poppinss/dumper': 0.6.3 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 6bc95206355..78798e906ac 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,6 +1,7 @@ packages: - 'apps/*' - 'packages/*' + - 'blocks/*' - 'e2e/*' catalog: diff --git a/turbo.json b/turbo.json index 4135a31b309..6053f6bf666 100644 --- a/turbo.json +++ b/turbo.json @@ -56,6 +56,7 @@ "NEXT_PUBLIC_IS_PLATFORM", "NEXT_PUBLIC_SITE_URL", "NEXT_PUBLIC_API_URL", + "NEXT_PUBLIC_DOCS_URL", "NEXT_PUBLIC_CONFIGCAT_SDK_KEY", "NEXT_PUBLIC_CONFIGCAT_PROXY_URL", "NEXT_PUBLIC_HCAPTCHA_SITE_KEY",