diff --git a/apps/docs/content/guides/deployment/branching.mdx b/apps/docs/content/guides/deployment/branching.mdx index 74782ceb45579..ab6c6dff990b3 100644 --- a/apps/docs/content/guides/deployment/branching.mdx +++ b/apps/docs/content/guides/deployment/branching.mdx @@ -10,8 +10,8 @@ Supabase branches create separate environments that spin off from your main proj ## How branching works - **Separate Environments**: Each branch is a separate environment with its own Supabase instance and API credentials. -- **Preview Branches**: You can create multiple Preview Branches for testing. -- **Persistent Branches**: Persistent branches are long-lived branches. They aren't automatically paused or deleted due to non-inactivity or merging. +- **Preview Branches**: Preview branches are ephemeral and best suited for focused testing. They are automatically paused after inactivity or deleted when a PR is merged or closed. +- **Persistent Branches**: Persistent branches are long-lived and recommended for environments like staging, QA, or development. Unlike preview branches, they aren't automatically paused or deleted due to inactivity or when a PR is merged or closed. - **Managing Branches**: You can create, review, and merge branches either automatically via our [GitHub integration](/docs/guides/deployment/branching/github-integration) or directly [through the dashboard](/docs/guides/deployment/branching/dashboard) (currently in beta). All branches show up in the branches page in the dashboard, regardless of how they were created. - **Data-less**: New branches do not start with any data from your main project. This is meant to better protect your sensitive production data. To start your branches with data, you can use a [seed file](/docs/guides/deployment/branching/github-integration#seeding) if using the GitHub integration. diff --git a/apps/docs/public/humans.txt b/apps/docs/public/humans.txt index 8a16b89d8aa10..4897a221bbcd8 100644 --- a/apps/docs/public/humans.txt +++ b/apps/docs/public/humans.txt @@ -66,6 +66,7 @@ Eliot Whalan Emmett Folger Eric Kharitonashvili Etienne Stalmans +Eyal Ehrlich Fabrizio Cataldo Fabrizio Fenoglio Fady A diff --git a/apps/studio/components/grid/components/footer/operations/SaveQueueActionBar.tsx b/apps/studio/components/grid/components/footer/operations/SaveQueueActionBar.tsx index 65be243d12739..f246726847596 100644 --- a/apps/studio/components/grid/components/footer/operations/SaveQueueActionBar.tsx +++ b/apps/studio/components/grid/components/footer/operations/SaveQueueActionBar.tsx @@ -1,21 +1,23 @@ -import { Eye } from 'lucide-react' +import { useOperationQueueActions } from 'components/grid/hooks/useOperationQueueActions' +import { useOperationQueueShortcuts } from 'components/grid/hooks/useOperationQueueShortcuts' +import { useIsQueueOperationsEnabled } from 'components/interfaces/App/FeaturePreview/FeaturePreviewContext' import { AnimatePresence, motion } from 'framer-motion' +import { Eye } from 'lucide-react' import { createPortal } from 'react-dom' +import { useTableEditorStateSnapshot } from 'state/table-editor' import { Button } from 'ui' -import { - useOperationQueueShortcuts, - getModKey, -} from 'components/grid/hooks/useOperationQueueShortcuts' -import { useIsQueueOperationsEnabled } from 'components/interfaces/App/FeaturePreview/FeaturePreviewContext' -import { useTableEditorStateSnapshot } from 'state/table-editor' -import { useOperationQueueActions } from 'components/grid/hooks/useOperationQueueActions' +import { getModKeyLabel } from '@/lib/helpers' + +const modKey = getModKeyLabel() export const SaveQueueActionBar = () => { const snap = useTableEditorStateSnapshot() const isQueueOperationsEnabled = useIsQueueOperationsEnabled() const { handleSave } = useOperationQueueActions() + useOperationQueueShortcuts() + const operationCount = snap.operationQueue.operations.length const isSaving = snap.operationQueue.status === 'saving' const isOperationQueuePanelOpen = snap.sidePanel?.type === 'operation-queue' @@ -23,16 +25,6 @@ export const SaveQueueActionBar = () => { const isVisible = isQueueOperationsEnabled && snap.hasPendingOperations && !isOperationQueuePanelOpen - useOperationQueueShortcuts({ - enabled: isQueueOperationsEnabled && snap.hasPendingOperations, - onSave: handleSave, - onTogglePanel: () => snap.onViewOperationQueue(), - isSaving, - hasOperations: operationCount > 0, - }) - - const modKey = getModKey() - const content = ( {isVisible && ( @@ -49,7 +41,7 @@ export const SaveQueueActionBar = () => {
+ +

{desc}

+ +
+ - )} - {isVercelIntegrated && ( -
- -
- )} - {isGithubIntegrated && ( -
-
- + )} + {isVercelIntegrated && ( +
+
-

{githubRepository}

-
- )} + )} + {isGithubIntegrated && ( +
+
+ +
+

{githubRepository}

+
+ )} +
- - } - footer={ - - } - containerElement={} + } + footer={ + + } + containerElement={} + /> + + setIsDeleteModalOpen(false)} + project={project} + organization={organization} /> - + ) } diff --git a/apps/studio/components/interfaces/Home/ProjectList/ProjectList.tsx b/apps/studio/components/interfaces/Home/ProjectList/ProjectList.tsx index 6e25f8fa504de..f3c0c18b0d135 100644 --- a/apps/studio/components/interfaces/Home/ProjectList/ProjectList.tsx +++ b/apps/studio/components/interfaces/Home/ProjectList/ProjectList.tsx @@ -148,6 +148,7 @@ export const ProjectList = ({ organization: organization_, rewriteHref }: Projec Compute Region Created + diff --git a/apps/studio/components/interfaces/Home/ProjectList/ProjectTableRow.tsx b/apps/studio/components/interfaces/Home/ProjectList/ProjectTableRow.tsx index 2c158b0d6387b..a6e3e94951a15 100644 --- a/apps/studio/components/interfaces/Home/ProjectList/ProjectTableRow.tsx +++ b/apps/studio/components/interfaces/Home/ProjectList/ProjectTableRow.tsx @@ -1,6 +1,7 @@ -import { Github } from 'lucide-react' +import { Github, MoreVertical, Trash, Copy, Check } from 'lucide-react' import { useRouter } from 'next/router' import InlineSVG from 'react-inlinesvg' +import { useState } from 'react' import { ComputeBadgeWrapper } from 'components/ui/ComputeBadgeWrapper' import type { IntegrationProjectConnection } from 'data/integrations/integrations.types' @@ -9,10 +10,21 @@ import type { ResourceWarning } from 'data/usage/resource-warnings-query' import { BASE_PATH } from 'lib/constants' import { createNavigationHandler } from 'lib/navigation' import type { Organization } from 'types' -import { TableCell, TableRow } from 'ui' +import { + DropdownMenuTrigger, + DropdownMenuItem, + DropdownMenuContent, + DropdownMenu, + TableCell, + TableRow, + Button, +} from 'ui' import { TimestampInfo } from 'ui-patterns' import { inferProjectStatus } from './ProjectCard.utils' import { ProjectCardStatus } from './ProjectCardStatus' +import { DeleteProjectModal } from 'components/interfaces/Settings/General/DeleteProjectPanel/DeleteProjectModal' +import { toast } from 'sonner' +import { copyToClipboard } from 'ui' export interface ProjectTableRowProps { project: OrgProject @@ -34,93 +46,154 @@ export const ProjectTableRow = ({ const router = useRouter() const { name, ref: projectRef } = project const projectStatus = inferProjectStatus(project.status) + const [isDeleteModalOpen, setIsDeleteModalOpen] = useState(false) + const [isCopied, setIsCopied] = useState(false) const url = rewriteHref ?? `/project/${project.ref}` const isGithubIntegrated = githubIntegration !== undefined const isVercelIntegrated = vercelIntegration !== undefined const githubRepository = githubIntegration?.metadata.name ?? undefined - - const infraInformation = project.databases.find((x) => x.identifier === project.ref) - const handleNavigation = createNavigationHandler(url, router) + const handleCopyProjectRef = (e: React.SyntheticEvent) => { + e.stopPropagation() + copyToClipboard(projectRef) + setIsCopied(true) + toast.success('Copied project ID to clipboard') + setTimeout(() => setIsCopied(false), 2000) + } + return ( - - -
- {/* Text */} -
-
{name}
-

ID: {projectRef}

-
- {/* Integrations */} - {(isGithubIntegrated || isVercelIntegrated) && ( -
- {isVercelIntegrated && ( -
- + + +
+
+
{name}
+
- )} - {isGithubIntegrated && ( -
-
- -
- {githubRepository && ( -

{githubRepository}

- )} -
- )} + )} +
- )} -
- - - - - -
- {project.status !== 'INACTIVE' ? ( - + {isVercelIntegrated && ( +
+ +
+ )} + {isGithubIntegrated && ( +
+
+ +
+ {githubRepository && ( +

{githubRepository}

+ )} +
+ )} +
+ )} +
+ + + + + +
+ {project.status !== 'INACTIVE' ? ( + + ) : ( + + )} +
+
+ + + {project.cloud_provider} | {project.region || 'N/A'} + + + + {project.inserted_at ? ( + ) : ( - + N/A )} -
-
- - - {project.cloud_provider} | {project.region || 'N/A'} - - - - {project.inserted_at ? ( - - ) : ( - N/A - )} - -
+ + +
e.stopPropagation()}> + + +
+
+ + setIsDeleteModalOpen(false)} + project={project} + organization={organization} + /> + ) } diff --git a/apps/studio/components/interfaces/Settings/General/DeleteProjectPanel/DeleteProjectModal.tsx b/apps/studio/components/interfaces/Settings/General/DeleteProjectPanel/DeleteProjectModal.tsx index 67fd5a83bea62..32b76175d8ae6 100644 --- a/apps/studio/components/interfaces/Settings/General/DeleteProjectPanel/DeleteProjectModal.tsx +++ b/apps/studio/components/interfaces/Settings/General/DeleteProjectPanel/DeleteProjectModal.tsx @@ -7,22 +7,32 @@ import { CANCELLATION_REASONS } from 'components/interfaces/Billing/Billing.cons import { TextConfirmModal } from 'components/ui/TextConfirmModalWrapper' import { useSendDowngradeFeedbackMutation } from 'data/feedback/exit-survey-send' import { useProjectDeleteMutation } from 'data/projects/project-delete-mutation' +import type { OrgProject } from 'data/projects/org-projects-infinite-query' import { useOrgSubscriptionQuery } from 'data/subscriptions/org-subscription-query' import { useLocalStorageQuery } from 'hooks/misc/useLocalStorage' import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' +import type { Organization } from 'types' import { Input } from 'ui' export const DeleteProjectModal = ({ visible, onClose, + project: projectProp, + organization: organizationProp, }: { visible: boolean onClose: () => void + project?: OrgProject + organization?: Organization }) => { const router = useRouter() - const { data: project } = useSelectedProjectQuery() - const { data: organization } = useSelectedOrganizationQuery() + const { data: projectFromQuery } = useSelectedProjectQuery() + const { data: organizationFromQuery } = useSelectedOrganizationQuery() + + // Use props if provided, otherwise fall back to hooks + const project = projectProp || projectFromQuery + const organization = organizationProp || organizationFromQuery const [lastVisitedOrganization] = useLocalStorageQuery( LOCAL_STORAGE_KEYS.LAST_VISITED_ORGANIZATION, diff --git a/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/OperationQueueSidePanel/OperationItem.tsx b/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/OperationQueueSidePanel/OperationItem.tsx index 3ee11ebb1bc4f..c9476493de61e 100644 --- a/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/OperationQueueSidePanel/OperationItem.tsx +++ b/apps/studio/components/interfaces/TableGridEditor/SidePanelEditor/OperationQueueSidePanel/OperationItem.tsx @@ -1,12 +1,12 @@ import { useQueryClient } from '@tanstack/react-query' -import { X } from 'lucide-react' -import { Button } from 'ui' - import { tableRowKeys } from 'data/table-rows/keys' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' +import { X } from 'lucide-react' import { useTableEditorStateSnapshot } from 'state/table-editor' -import { EditCellContentPayload } from '@/state/table-editor-operation-queue.types' + import { formatOperationItemValue } from './OperationQueueSidePanel.utils' +import { ButtonTooltip } from '@/components/ui/ButtonTooltip' +import { EditCellContentPayload } from '@/state/table-editor-operation-queue.types' interface OperationItemProps { operationId: string @@ -50,17 +50,18 @@ export const OperationItem = ({ operationId, tableId, content }: OperationItemPr
{fullTableName}
{columnName} - · + where {whereClause}
- + + {index < data.innovationEnablement.options.length - 1 && ( +
+ + + +
+ )} + + ) + )} + + + )} {data.platformStarterSection && } {data.mcp && } diff --git a/apps/www/public/images/customers/logos/accenture.svg b/apps/www/public/images/customers/logos/accenture.svg new file mode 100644 index 0000000000000..807a0b5e4c0b5 --- /dev/null +++ b/apps/www/public/images/customers/logos/accenture.svg @@ -0,0 +1,3 @@ + + + diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index eae1ffc40d976..9a1e6d88148b0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,17 +10,17 @@ catalogs: specifier: ^10.26.0 version: 10.27.0 '@supabase/auth-js': - specifier: 2.93.1 - version: 2.93.1 + specifier: 2.93.2 + version: 2.93.2 '@supabase/postgrest-js': - specifier: 2.93.1 - version: 2.93.1 + specifier: 2.93.2 + version: 2.93.2 '@supabase/realtime-js': - specifier: 2.93.1 - version: 2.93.1 + specifier: 2.93.2 + version: 2.93.2 '@supabase/supabase-js': - specifier: 2.93.1 - version: 2.93.1 + specifier: 2.93.2 + version: 2.93.2 '@types/node': specifier: ^22.0.0 version: 22.13.14 @@ -440,10 +440,10 @@ 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: 'catalog:' - version: 10.27.0(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.5.10(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(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.27.0(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.5.10(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(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.93.1 + version: 2.93.2 '@tailwindcss/container-queries': specifier: ^0.1.1 version: 0.1.1(tailwindcss@3.4.1(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.9.2))) @@ -870,7 +870,7 @@ importers: version: 7.5.0 '@supabase/auth-js': specifier: 'catalog:' - version: 2.93.1 + version: 2.93.2 '@supabase/mcp-server-supabase': specifier: ^0.6.2 version: 0.6.2(@modelcontextprotocol/sdk@1.25.3(hono@4.11.4)(supports-color@8.1.1)(zod@3.25.76))(zod@3.25.76) @@ -882,7 +882,7 @@ importers: version: link:../../packages/pg-meta '@supabase/realtime-js': specifier: 'catalog:' - version: 2.93.1 + version: 2.93.2 '@supabase/shared-types': specifier: 0.1.83 version: 0.1.83 @@ -891,7 +891,7 @@ importers: version: 0.1.6(encoding@0.1.13)(supports-color@8.1.1) '@supabase/supabase-js': specifier: 'catalog:' - version: 2.93.1 + version: 2.93.2 '@tanstack/react-query': specifier: ^5.0.0 version: 5.83.0(react@18.3.1) @@ -1402,7 +1402,7 @@ importers: version: 7.4.0(@react-router/dev@7.9.6(@types/node@22.13.14)(@vitejs/plugin-rsc@0.5.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@7.1.11(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.1)))(babel-plugin-macros@3.1.0)(jiti@2.5.1)(react-router@7.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.20.3)(typescript@5.9.2)(vite@7.1.11(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.1))(yaml@2.8.1))(typescript@5.9.2) '@supabase/postgrest-js': specifier: 'catalog:' - version: 2.93.1 + version: 2.93.2 '@supabase/supa-mdx-lint': specifier: 0.2.6-alpha version: 0.2.6-alpha @@ -1523,10 +1523,10 @@ importers: version: 1.6.0 '@supabase/ssr': specifier: ^0.7.0 - version: 0.7.0(@supabase/supabase-js@2.93.1) + version: 0.7.0(@supabase/supabase-js@2.93.2) '@supabase/supabase-js': specifier: 'catalog:' - version: 2.93.1 + version: 2.93.2 '@tanstack/react-router': specifier: ^1.114.27 version: 1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1637,10 +1637,10 @@ 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: 'catalog:' - version: 10.27.0(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.5.10(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(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.27.0(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.5.10(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(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.93.1 + version: 2.93.2 '@vercel/og': specifier: ^0.6.2 version: 0.6.2 @@ -1727,13 +1727,13 @@ importers: version: 4.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1) next-seo: specifier: ^6.5.0 - version: 6.5.0(next@15.5.10(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(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) + version: 6.5.0(next@15.5.10(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(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) 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.8.1 - version: 2.8.1(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@15.5.10(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react-router@7.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 2.8.1(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@15.5.10(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react-router@7.12.0(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) @@ -1872,10 +1872,10 @@ importers: dependencies: '@supabase/ssr': specifier: ^0.7.0 - version: 0.7.0(@supabase/supabase-js@2.93.1) + version: 0.7.0(@supabase/supabase-js@2.93.2) '@supabase/supabase-js': specifier: 'catalog:' - version: 2.93.1 + version: 2.93.2 class-variance-authority: specifier: ^0.7.1 version: 0.7.1 @@ -1915,7 +1915,7 @@ importers: version: 1.56.1 '@supabase/supabase-js': specifier: 'catalog:' - version: 2.93.1 + version: 2.93.2 cross-fetch: specifier: ^4.1.0 version: 4.1.0(encoding@0.1.13) @@ -1943,7 +1943,7 @@ importers: version: 0.18.5 '@supabase/supabase-js': specifier: 'catalog:' - version: 2.93.1 + version: 2.93.2 ai: specifier: 5.0.52 version: 5.0.52(zod@3.25.76) @@ -2037,10 +2037,10 @@ importers: dependencies: '@supabase/auth-js': specifier: 'catalog:' - version: 2.93.1 + version: 2.93.2 '@supabase/supabase-js': specifier: 'catalog:' - version: 2.93.1 + version: 2.93.2 '@types/dat.gui': specifier: ^0.7.12 version: 0.7.12 @@ -2521,7 +2521,7 @@ importers: version: 0.1.6(encoding@0.1.13)(supports-color@8.1.1) '@supabase/supabase-js': specifier: 'catalog:' - version: 2.93.1 + version: 2.93.2 '@vitest/coverage-v8': specifier: ^3.2.0 version: 3.2.4(supports-color@8.1.1)(vitest@3.2.4) @@ -8914,12 +8914,12 @@ packages: resolution: {integrity: sha512-Cq3KKe+G1o7PSBMbmrgpT2JgBeyH2THHr3RdIX2MqF7AnBuspIMgtZ3ktcCgP7kZsTMvnmWymr7zZCT1zeWbMw==} engines: {node: '>=12.16'} - '@supabase/auth-js@2.93.1': - resolution: {integrity: sha512-pC0Ek4xk4z6q7A/3+UuZ/eYgfFUUQTg3DhapzrAgJnFGDJDFDyGCj6v9nIz8+3jfLqSZ3QKGe6AoEodYjShghg==} + '@supabase/auth-js@2.93.2': + resolution: {integrity: sha512-uifI5vkhvHCQjn+LUPL5QlsuDMP4oVBD5SiliREgYuTJvCkbPLOcAPGrw88q7VUX9S0J0QuJn+37hrcTITisuw==} engines: {node: '>=20.0.0'} - '@supabase/functions-js@2.93.1': - resolution: {integrity: sha512-Ott2IcIXHGupaC0nX9WNEiJAX4OdlGRu9upkkURaQHbaLdz9JuCcHxlwTERgtgjMpikbIWHfMM1M9QTQFYABiA==} + '@supabase/functions-js@2.93.2': + resolution: {integrity: sha512-reSp7yj4KmvAFfmN+N7vYsHXOIZQh9cmRBh+VrZlm7qgIIUdYmzKuD85TvFnWApqcdI2pPnuZGKWE/2B4GXT1A==} engines: {node: '>=20.0.0'} '@supabase/mcp-server-supabase@0.6.2': @@ -8939,12 +8939,12 @@ packages: resolution: {integrity: sha512-vz5gc6RKNfDVnIfRUmH2ssTMYFI0U3MYOVyQ9R4YkzOS2dKSanjC4rTEDGjlMFwGTCUPW3N3pbY7HJIW81wMyg==} engines: {node: '>=16', npm: '>=8'} - '@supabase/postgrest-js@2.93.1': - resolution: {integrity: sha512-uRKKQJBDnfi6XFNFPNMh9+u3HT2PCgp065PcMPmG7e0xGuqvLtN89QxO2/SZcGbw2y1+mNBz0yUs5KmyNqF2fA==} + '@supabase/postgrest-js@2.93.2': + resolution: {integrity: sha512-W2AWDsYwRT217II5yD3jWaX3fJjB7DwyNi2KNi4sphdUI3DKY4fP2XYVDGfeb1clEFL18gw+GBhyQb3BcpNWkw==} engines: {node: '>=20.0.0'} - '@supabase/realtime-js@2.93.1': - resolution: {integrity: sha512-2WaP/KVHPlQDjWM6qe4wOZz6zSRGaXw1lfXf4thbfvk3C3zPPKqXRyspyYnk3IhphyxSsJ2hQ/cXNOz48008tg==} + '@supabase/realtime-js@2.93.2': + resolution: {integrity: sha512-YpAmJn7DLbMeYfQilcf3f0DKoY8O8TRbTF2oRpWFzHXTlEA+YWms8fBqM13Mf7RE72ouSNKDYyf5K2pWRSHvFw==} engines: {node: '>=20.0.0'} '@supabase/shared-types@0.1.83': @@ -8958,8 +8958,8 @@ packages: peerDependencies: '@supabase/supabase-js': ^2.43.4 - '@supabase/storage-js@2.93.1': - resolution: {integrity: sha512-3KVwd4S1i1BVPL6KIywe5rnruNQXSkLyvrdiJmwnqwbCcDujQumARdGWBPesqCjOPKEU2M9ORWKAsn+2iLzquA==} + '@supabase/storage-js@2.93.2': + resolution: {integrity: sha512-abRSVClfIQn+SqpdqL7S7b3VeyS8270/o0gqmGFtiidb7Lu0COsIV6Mor/mK9xE99KYWzyd37vwYYwv/jaANhw==} engines: {node: '>=20.0.0'} '@supabase/supa-mdx-lint-darwin@0.2.6-alpha': @@ -9052,8 +9052,8 @@ packages: resolution: {integrity: sha512-TNbBLSofM6jQg3JwzO4lttd59dScTTzW4p504/OWcgRWghQLRNfxXRJJtdui83gBMLWpgeUZqvgtfYIwS1Flzw==} hasBin: true - '@supabase/supabase-js@2.93.1': - resolution: {integrity: sha512-FJTgS5s0xEgRQ3u7gMuzGObwf3jA4O5Ki/DgCDXx94w1pihLM4/WG3XFa4BaCJYfuzLxLcv6zPPA5tDvBUjAUg==} + '@supabase/supabase-js@2.93.2': + resolution: {integrity: sha512-G3bZZi6rPwXcPtyHLXQTeHKa5ADZ2UW/+hv8YhwZFwngz4TlPnR4+TeO37EwU5+d/reD02qXozOZgz+QHv1Jtg==} engines: {node: '>=20.0.0'} '@swc/helpers@0.5.15': @@ -27407,7 +27407,7 @@ snapshots: '@sentry/core@10.27.0': {} - '@sentry/nextjs@10.27.0(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.5.10(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(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.27.0(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.5.10(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(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.38.0 @@ -27992,11 +27992,11 @@ snapshots: '@stripe/stripe-js@7.5.0': {} - '@supabase/auth-js@2.93.1': + '@supabase/auth-js@2.93.2': dependencies: tslib: 2.8.1 - '@supabase/functions-js@2.93.1': + '@supabase/functions-js@2.93.2': dependencies: tslib: 2.8.1 @@ -28031,11 +28031,11 @@ snapshots: - pg-native - supports-color - '@supabase/postgrest-js@2.93.1': + '@supabase/postgrest-js@2.93.2': dependencies: tslib: 2.8.1 - '@supabase/realtime-js@2.93.1': + '@supabase/realtime-js@2.93.2': dependencies: '@types/phoenix': 1.6.6 '@types/ws': 8.18.1 @@ -28056,12 +28056,12 @@ snapshots: - encoding - supports-color - '@supabase/ssr@0.7.0(@supabase/supabase-js@2.93.1)': + '@supabase/ssr@0.7.0(@supabase/supabase-js@2.93.2)': dependencies: - '@supabase/supabase-js': 2.93.1 + '@supabase/supabase-js': 2.93.2 cookie: 1.0.2 - '@supabase/storage-js@2.93.1': + '@supabase/storage-js@2.93.2': dependencies: iceberg-js: 0.8.1 tslib: 2.8.1 @@ -28130,13 +28130,13 @@ snapshots: '@supabase/supa-mdx-lint-win32-x64': 0.3.1 node-pty: 1.0.0 - '@supabase/supabase-js@2.93.1': + '@supabase/supabase-js@2.93.2': dependencies: - '@supabase/auth-js': 2.93.1 - '@supabase/functions-js': 2.93.1 - '@supabase/postgrest-js': 2.93.1 - '@supabase/realtime-js': 2.93.1 - '@supabase/storage-js': 2.93.1 + '@supabase/auth-js': 2.93.2 + '@supabase/functions-js': 2.93.2 + '@supabase/postgrest-js': 2.93.2 + '@supabase/realtime-js': 2.93.2 + '@supabase/storage-js': 2.93.2 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -36388,7 +36388,7 @@ snapshots: next: 16.0.11(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(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.10(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(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): + next-seo@6.5.0(next@15.5.10(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(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.10(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(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 @@ -36780,7 +36780,7 @@ snapshots: next: 16.0.11(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) react-router: 7.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - nuqs@2.8.1(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@15.5.10(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react-router@7.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): + nuqs@2.8.1(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@15.5.10(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react-router@7.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): dependencies: '@standard-schema/spec': 1.0.0 react: 18.3.1 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 2ff5cdb36a1a7..058cc24dc7f5f 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -6,10 +6,10 @@ packages: catalog: '@sentry/nextjs': ^10.26.0 - '@supabase/auth-js': 2.93.1 - '@supabase/postgrest-js': 2.93.1 - '@supabase/realtime-js': 2.93.1 - '@supabase/supabase-js': 2.93.1 + '@supabase/auth-js': 2.93.2 + '@supabase/postgrest-js': 2.93.2 + '@supabase/realtime-js': 2.93.2 + '@supabase/supabase-js': 2.93.2 '@types/node': ^22.0.0 '@types/react': ^18.3.0 '@types/react-dom': ^18.3.0