From ffd5a93f3773d55d6f456a8c334ea0160dd0b0f7 Mon Sep 17 00:00:00 2001 From: "claude[bot]" <209825114+claude[bot]@users.noreply.github.com> Date: Wed, 22 Jul 2026 11:19:14 +0100 Subject: [PATCH 01/14] feat(www): add hidden Legal Hub subprocessor list page (draft) (#48100) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit _Requested by **Nicole Kramer** · [Slack thread](https://supabase.slack.com/archives/C0161K73J1J/p1783431374242039?thread_ts=1783431374.242039&cid=C0161K73J1J)_ ## I have read the [CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md) file. YES ## What kind of change does this PR introduce? Feature (`apps/www`). ## What is the current behavior? No public page for Supabase's subprocessor list, and no way for customers to be notified when it changes. ## What is the new behavior? A new hidden page at `/legal/customer-resources/subprocessor-list` shows the current dated subprocessor PDF and lets anyone subscribe with their name and email to receive an email whenever the list is updated. The page is `noindex` and not linked from any nav, so it's shareable by direct URL only for now. Mirrors Wiz's sub-processor-list page. **How:** - **Page** `apps/www/pages/legal/customer-resources/subprocessor-list.tsx` — pages-router, mirrors the existing Legal Hub pages (`DefaultLayout`, `NextSeo`, `PageHeader` + breadcrumb, `SectionContainer` prose). Embeds the PDF (inline preview + download link) and renders the subscribe form. Marked `NextSeo` noindex/nofollow and intentionally left unlinked. - A single `CURRENT_PDF` constant (filename + display date) is the only thing to change when Legal hands over a new dated PDF. - **Form** `apps/www/components/SubprocessorUpdatesForm.tsx` — mirrors `SecurityNewsletterForm` (First name, Last name, Email; `ui` primitives). Carries the framing copy verbatim, with **Subscribe to updates** bold and Privacy Policy linked to https://supabase.com/privacy. - **API route** `apps/www/app/api-v2/submit-form-subprocessor-updates/route.tsx` — exact mirror of `submit-form-security-newsletter`; subscribes the user to the Customer.io "Subprocessor Alerts" subscription (topic 4) via `cio_subscription_preferences.topics.topic_4: true`. - **PDF** `apps/www/public/legal/subprocessor-list/June-1-2026.pdf`. **Updating the list in future:** Drop the new dated PDF into `apps/www/public/legal/subprocessor-list/` and update the `CURRENT_PDF` constant. Nothing else changes. ## Additional context **Notes / to confirm:** - Customer.io topic id `4` → `topic_4` (per Prashant); not independently verified against Customer.io. - Draft: page is intentionally unlinked and noindex until Legal signs off. --- _Generated by [Claude Code](https://claude.ai/code/session_01D9WS2QWQ8Y3o7PqDZabS3F)_ --------- Co-authored-by: Claude --- .../route.tsx | 62 +++++++++ .../components/SubprocessorUpdatesForm.tsx | 126 ++++++++++++++++++ .../customer-resources/subprocessor-list.tsx | 66 +++++++++ .../legal/subprocessor-list/June-1-2026.pdf | Bin 0 -> 63579 bytes 4 files changed, 254 insertions(+) create mode 100644 apps/www/app/api-v2/submit-form-subprocessor-updates/route.tsx create mode 100644 apps/www/components/SubprocessorUpdatesForm.tsx create mode 100644 apps/www/pages/legal/customer-resources/subprocessor-list.tsx create mode 100644 apps/www/public/legal/subprocessor-list/June-1-2026.pdf diff --git a/apps/www/app/api-v2/submit-form-subprocessor-updates/route.tsx b/apps/www/app/api-v2/submit-form-subprocessor-updates/route.tsx new file mode 100644 index 0000000000000..b9128e6e174dc --- /dev/null +++ b/apps/www/app/api-v2/submit-form-subprocessor-updates/route.tsx @@ -0,0 +1,62 @@ +import * as Sentry from '@sentry/nextjs' + +import { CustomerioTrackClient } from '~/lib/customerio' + +const corsHeaders = { + 'Access-Control-Allow-Origin': '*', + 'Access-Control-Allow-Headers': 'authorization, x-client-info, apikey, content-type', +} + +const isValidEmail = (email: string): boolean => { + const emailPattern = /^[\w-\.+]+@([\w-]+\.)+[\w-]{2,8}$/ + return emailPattern.test(email) +} + +export async function POST(req: Request) { + const body = await req.json() + const { firstName, lastName, email } = body + + if (!firstName || !lastName || !email) { + return new Response(JSON.stringify({ message: 'All fields are required' }), { + headers: { ...corsHeaders, 'Content-Type': 'application/json' }, + status: 422, + }) + } + + if (!isValidEmail(email)) { + return new Response(JSON.stringify({ message: 'Invalid email address' }), { + headers: { ...corsHeaders, 'Content-Type': 'application/json' }, + status: 422, + }) + } + + try { + const customerioSiteId = process.env.CUSTOMERIO_SITE_ID + const customerioApiKey = process.env.CUSTOMERIO_API_KEY + + if (!customerioSiteId || !customerioApiKey) { + throw new Error('Customer.io credentials not configured') + } + + const cio = new CustomerioTrackClient(customerioSiteId, customerioApiKey) + + await cio.createOrUpdateProfile(email, { + firstName, + lastName, + // Subprocessor Alerts subscription topic. Per Prashant: subscription topic id 4. + // (The security newsletter route uses topic_2 for its own topic.) + 'cio_subscription_preferences.topics.topic_4': true, + }) + + return new Response(JSON.stringify({ message: 'Subscription successful' }), { + headers: { ...corsHeaders, 'Content-Type': 'application/json' }, + status: 200, + }) + } catch (error: any) { + Sentry.captureException(error) + return new Response(JSON.stringify({ error: error.message }), { + headers: { ...corsHeaders, 'Content-Type': 'application/json' }, + status: 500, + }) + } +} diff --git a/apps/www/components/SubprocessorUpdatesForm.tsx b/apps/www/components/SubprocessorUpdatesForm.tsx new file mode 100644 index 0000000000000..17d094a0a1c22 --- /dev/null +++ b/apps/www/components/SubprocessorUpdatesForm.tsx @@ -0,0 +1,126 @@ +import { useState } from 'react' +import Link from 'next/link' +import { Button, Input, Label } from 'ui' + +const isValidEmail = (email: string): boolean => { + const emailPattern = /^[\w-\.+]+@([\w-]+\.)+[\w-]{2,8}$/ + return emailPattern.test(email) +} + +/** + * Subscribe form for subprocessor update notifications. + * Mirrors components/SecurityNewsletterForm.tsx, posting to the + * /api-v2/submit-form-subprocessor-updates route (Customer.io "Subprocessor Alerts", topic_4). + */ +const SubprocessorUpdatesForm = () => { + const [firstName, setFirstName] = useState('') + const [lastName, setLastName] = useState('') + const [email, setEmail] = useState('') + const [status, setStatus] = useState<'idle' | 'loading' | 'success' | 'error'>('idle') + const [errorMessage, setErrorMessage] = useState('') + + const handleSubmit = async (e: React.FormEvent) => { + e.preventDefault() + setErrorMessage('') + + if (!firstName || !lastName || !email) { + setErrorMessage('All fields are required.') + return + } + + if (!isValidEmail(email)) { + setErrorMessage('Please enter a valid email address.') + return + } + + setStatus('loading') + + try { + const res = await fetch('/api-v2/submit-form-subprocessor-updates', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ firstName, lastName, email }), + }) + + if (!res.ok) { + const data = await res.json() + throw new Error(data.message || 'Something went wrong') + } + + setStatus('success') + } catch (err: any) { + setStatus('error') + setErrorMessage(err.message || 'Something went wrong. Please try again.') + } + } + + return ( +
+

+ Subscribe to updates. Receive an email + notification when Supabase updates its sub-processors. By submitting this form, you + acknowledge and agree that Supabase will process your personal information in accordance + with our{' '} + + Privacy Policy + + . +

+ + {status === 'success' ? ( +

+ Thanks for subscribing! You'll receive an email when Supabase updates its sub-processors. +

+ ) : ( +
+
+
+ + setFirstName(e.target.value)} + placeholder="First name" + required + /> +
+
+ + setLastName(e.target.value)} + placeholder="Last name" + required + /> +
+
+
+ + setEmail(e.target.value)} + placeholder="Email" + required + /> +
+ {errorMessage &&

{errorMessage}

} + +
+ )} +
+ ) +} + +export default SubprocessorUpdatesForm diff --git a/apps/www/pages/legal/customer-resources/subprocessor-list.tsx b/apps/www/pages/legal/customer-resources/subprocessor-list.tsx new file mode 100644 index 0000000000000..4a06d662cc2f7 --- /dev/null +++ b/apps/www/pages/legal/customer-resources/subprocessor-list.tsx @@ -0,0 +1,66 @@ +import DefaultLayout from '~/components/Layouts/Default' +import SectionContainer from '~/components/Layouts/SectionContainer' +import PageBreadcrumb from '~/components/Sections/PageBreadcrumb' +import PageHeader from '~/components/Sections/PageHeader' +import SubprocessorUpdatesForm from '~/components/SubprocessorUpdatesForm' +import { Download } from 'lucide-react' +import { NextSeo } from 'next-seo' +import { Button } from 'ui' + +/** + * TO UPDATE THE SUBPROCESSOR LIST: + * 1. Drop the new dated PDF into `apps/www/public/legal/subprocessor-list/` + * (filename in `Month-D-YYYY.pdf` format, e.g. `September-1-2026.pdf`). + * 2. Change the single `CURRENT_PDF` constant below (both `file` and `displayDate`). + * This constant is the ONLY thing that needs to change on each update. + */ +const CURRENT_PDF = { + file: 'June-1-2026.pdf', + displayDate: 'June 1, 2026', +} + +const PDF_PATH = `/legal/subprocessor-list/${CURRENT_PDF.file}` + +const meta = { + title: 'Subprocessor List', + description: 'The list of third-party sub-processors Supabase uses to provide its services.', +} + +// NOTE: This page is intentionally HIDDEN for now — it is not linked from the Legal Hub +// index (`pages/legal/index.tsx`) or any navigation. It is also marked noindex/nofollow +// so search engines do not index it while it is in draft. Remove `noindex`/`nofollow` and +// add a link from the Legal Hub index when Legal is ready to publish it. +export default function SubprocessorListPage() { + return ( + + + + } + h1="Subprocessor List" + subheader="The third-party sub-processors Supabase engages to help provide its services are indicated in the latest linked Subprocessor List available below. This page is updated with an updated Subprocessor List as our sub-processors change. You can subscribe to receive notifications of updates to this page, below." + /> + + + +
+ +
+
+
+ ) +} diff --git a/apps/www/public/legal/subprocessor-list/June-1-2026.pdf b/apps/www/public/legal/subprocessor-list/June-1-2026.pdf new file mode 100644 index 0000000000000000000000000000000000000000..94b5804f3cd81538b56e8eecb63fc1769dda5657 GIT binary patch literal 63579 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

1SfM|gn3D5uqd`O;H+I;DE+KPK$vO8A$Gs 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 SfgsF4MVvYd+&u(8cNPE(F5|QS literal 0 HcmV?d00001 From d847c48464553cfe8dde73fea9fbf78cf8db1636 Mon Sep 17 00:00:00 2001 From: "supabase-supabase-autofixer[bot]" <248690971+supabase-supabase-autofixer[bot]@users.noreply.github.com> Date: Wed, 22 Jul 2026 14:30:30 +0300 Subject: [PATCH 02/14] feat: update @supabase/*-js libraries to v2.110.8 (#48156) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR updates @supabase/*-js libraries to version 2.110.8. **Source**: supabase-js-stable-release **Changes**: - Updated @supabase/supabase-js to 2.110.8 - Updated @supabase/auth-js to 2.110.8 - Updated @supabase/realtime-js to 2.110.8 - Updated @supabase/postgest-js to 2.110.8 - Refreshed pnpm-lock.yaml --- ## Release Notes ## v2.110.8 ## 2.110.8 (2026-07-21) ### 🩹 Fixes - **auth:** downgrade aborted/transient fetch failures from console.error to warn ([#2544](https://github.com/supabase/supabase-js/pull/2544)) - **functions:** clean up cross-signal abort listener on invoke() return ([#2487](https://github.com/supabase/supabase-js/pull/2487)) - **functions:** match response Content-Type case-insensitively ([#2515](https://github.com/supabase/supabase-js/pull/2515)) - **storage:** url-encode object key in CDN purge methods ([#2545](https://github.com/supabase/supabase-js/pull/2545)) - **supabase:** skip Node warning in Deno ([#2541](https://github.com/supabase/supabase-js/pull/2541)) ### ❤️ Thank You - Franco Kaddour @FrancoKaddour - Katerina Skroumpelou @mandarini - Pedro Henrique - Vaibhav @7ttp ## v2.110.7 ## 2.110.7 (2026-07-16) ### 🩹 Fixes - **postgrest:** correct self-reference inference ([#2525](https://github.com/supabase/supabase-js/pull/2525)) - **realtime:** trigger set auth on INITIAL_SESSION event ([#2531](https://github.com/supabase/supabase-js/pull/2531)) - **realtime:** update phoenix to fix presence issue ([#2532](https://github.com/supabase/supabase-js/pull/2532)) ### ❤️ Thank You - Eduardo Gurgel - Filipe Cabaço @filipecabaco - Vaibhav @7ttp This PR was created automatically. Co-authored-by: supabase-workflow-trigger[bot] <266661614+supabase-workflow-trigger[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 530 ++++++++++++++++++++++++++++++++------------ pnpm-workspace.yaml | 8 +- 2 files changed, 388 insertions(+), 150 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3a8f291d2a4b5..a9a6239d4854b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,20 +16,20 @@ catalogs: specifier: ^10.59.0 version: 10.59.0 '@supabase/auth-js': - specifier: 2.110.6 - version: 2.110.6 + specifier: 2.110.8 + version: 2.110.8 '@supabase/postgrest-js': - specifier: 2.110.6 - version: 2.110.6 + specifier: 2.110.8 + version: 2.110.8 '@supabase/realtime-js': - specifier: 2.110.6 - version: 2.110.6 + specifier: 2.110.8 + version: 2.110.8 '@supabase/ssr': specifier: 0.10.2 version: 0.10.2 '@supabase/supabase-js': - specifier: 2.110.6 - version: 2.110.6 + specifier: 2.110.8 + version: 2.110.8 '@tanstack/react-router': specifier: ^1.169.2 version: 1.170.10 @@ -197,7 +197,7 @@ importers: version: link:../../packages/common contentlayer2: specifier: 0.4.6 - version: 0.4.6(esbuild@0.28.1)(markdown-wasm@1.2.0)(supports-color@8.1.1) + version: 0.4.6(esbuild@0.20.2)(markdown-wasm@1.2.0)(supports-color@8.1.1) date-fns: specifier: ^2.30.0 version: 2.30.0 @@ -224,7 +224,7 @@ importers: version: 16.2.6(@babel/core@7.29.7(supports-color@8.1.1))(@opentelemetry/api@1.9.1)(@playwright/test@1.59.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.77.4) next-contentlayer2: specifier: 0.4.6 - version: 0.4.6(contentlayer2@0.4.6(esbuild@0.28.1)(markdown-wasm@1.2.0)(supports-color@8.1.1))(esbuild@0.28.1)(markdown-wasm@1.2.0)(next@16.2.6(@opentelemetry/api@1.9.1)(@playwright/test@1.59.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.77.4))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(supports-color@8.1.1) + version: 0.4.6(contentlayer2@0.4.6(esbuild@0.20.2)(markdown-wasm@1.2.0)(supports-color@8.1.1))(esbuild@0.20.2)(markdown-wasm@1.2.0)(next@16.2.6(@opentelemetry/api@1.9.1)(@playwright/test@1.59.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.77.4))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(supports-color@8.1.1) next-themes: specifier: 'catalog:' version: 0.4.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6) @@ -378,7 +378,7 @@ importers: version: 10.59.0(@opentelemetry/core@2.8.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.8.0(@opentelemetry/api@1.9.1))(encoding@0.1.13)(next@15.5.18(@babel/core@7.29.7(supports-color@8.1.1))(@opentelemetry/api@1.9.1)(@playwright/test@1.59.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.77.4))(react@19.2.6)(supports-color@8.1.1)(vite@8.0.16(@types/node@22.13.14)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.77.4)(terser@5.39.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4(esbuild@0.28.1)) '@supabase/supabase-js': specifier: 'catalog:' - version: 2.110.6 + version: 2.110.8 '@tanstack/react-query': specifier: ~5.83.0 version: 5.83.0(react@19.2.6) @@ -673,7 +673,7 @@ importers: version: 13.2.2 graphiql: specifier: ^4.0.2 - version: 4.0.2(@codemirror/language@6.11.0)(@emotion/is-prop-valid@1.4.0)(@types/node@22.13.14)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(graphql-ws@6.0.4(graphql@16.11.0)(ws@8.21.0))(graphql@16.11.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + version: 4.0.2(@codemirror/language@6.0.0)(@emotion/is-prop-valid@1.4.0)(@types/node@22.13.14)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(graphql-ws@6.0.4(graphql@16.11.0)(ws@8.21.0))(graphql@16.11.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) npm-run-all: specifier: ^4.1.5 version: 4.1.5 @@ -736,7 +736,7 @@ importers: version: link:../../packages/common contentlayer2: specifier: 0.4.6 - version: 0.4.6(esbuild@0.28.1)(markdown-wasm@1.2.0)(supports-color@8.1.1) + version: 0.4.6(esbuild@0.20.2)(markdown-wasm@1.2.0)(supports-color@8.1.1) framer-motion: specifier: ^11.18.2 version: 11.18.2(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) @@ -751,7 +751,7 @@ importers: version: 16.2.6(@babel/core@7.29.7(supports-color@8.1.1))(@opentelemetry/api@1.9.1)(@playwright/test@1.59.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.77.4) next-contentlayer2: specifier: 0.4.6 - version: 0.4.6(contentlayer2@0.4.6(esbuild@0.28.1)(markdown-wasm@1.2.0)(supports-color@8.1.1))(esbuild@0.28.1)(markdown-wasm@1.2.0)(next@16.2.6(@opentelemetry/api@1.9.1)(@playwright/test@1.59.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.77.4))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(supports-color@8.1.1) + version: 0.4.6(contentlayer2@0.4.6(esbuild@0.20.2)(markdown-wasm@1.2.0)(supports-color@8.1.1))(esbuild@0.20.2)(markdown-wasm@1.2.0)(next@16.2.6(@opentelemetry/api@1.9.1)(@playwright/test@1.59.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.77.4))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(supports-color@8.1.1) next-themes: specifier: 'catalog:' version: 0.4.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6) @@ -972,7 +972,7 @@ importers: version: 1.0.32(@types/node@22.13.14)(supports-color@8.1.1) '@supabase/auth-js': specifier: 'catalog:' - version: 2.110.6 + version: 2.110.8 '@supabase/mcp-server-supabase': specifier: ^0.7.0 version: 0.7.0(@modelcontextprotocol/sdk@1.29.0(supports-color@8.1.1)(zod@3.25.76))(zod@3.25.76) @@ -981,13 +981,13 @@ importers: version: link:../../packages/pg-meta '@supabase/realtime-js': specifier: 'catalog:' - version: 2.110.6 + version: 2.110.8 '@supabase/shared-types': specifier: 0.1.88 version: 0.1.88 '@supabase/supabase-js': specifier: 'catalog:' - version: 2.110.6 + version: 2.110.8 '@tanstack/react-devtools': specifier: ^0.10.3 version: 0.10.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(csstype@3.2.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(solid-js@1.9.13) @@ -1008,7 +1008,7 @@ importers: version: 1.167.0(@tanstack/react-router@1.170.10(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@tanstack/router-core@1.171.8)(csstype@3.2.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@tanstack/react-router-ssr-query': specifier: ^1.166.12 - version: 1.167.1(@tanstack/query-core@5.83.0)(@tanstack/react-query@5.83.0(react@19.2.6))(@tanstack/react-router@1.170.10(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@tanstack/router-core@1.171.8)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + version: 1.167.1(@tanstack/query-core@5.101.2)(@tanstack/react-query@5.83.0(react@19.2.6))(@tanstack/react-router@1.170.10(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@tanstack/router-core@1.171.8)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@tanstack/react-start': specifier: 'catalog:' version: 1.168.18(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(supports-color@8.1.1)(vite@8.0.16(@types/node@22.13.14)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.77.4)(terser@5.39.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4(esbuild@0.28.1)) @@ -1381,7 +1381,7 @@ importers: version: 2.11.3(@types/node@22.13.14)(typescript@6.0.2) next-router-mock: specifier: ^0.9.13 - version: 0.9.13(next@16.2.6(@babel/core@7.29.7(supports-color@8.1.1))(@opentelemetry/api@1.9.1)(@playwright/test@1.59.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.77.4))(react@19.2.6) + version: 0.9.13(next@16.2.6(@opentelemetry/api@1.9.1)(@playwright/test@1.59.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.77.4))(react@19.2.6) node-mocks-http: specifier: ^1.17.2 version: 1.17.2(@types/node@22.13.14) @@ -1423,13 +1423,13 @@ importers: version: 4.7.0(monaco-editor@0.52.2)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@react-router/fs-routes': specifier: ^7.4.0 - version: 7.4.0(@react-router/dev@7.13.2(@react-router/serve@7.17.0(react-router@7.17.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(supports-color@8.1.1)(typescript@6.0.2))(@types/node@22.13.14)(babel-plugin-macros@3.1.0)(jiti@2.7.0)(lightningcss@1.32.0)(react-router@7.17.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.22.4)(typescript@6.0.2)(vite@8.0.16(@types/node@22.13.14)(jiti@2.7.0)(sass@1.77.4)(terser@5.39.0)(tsx@4.22.4)(yaml@2.9.0))(yaml@2.9.0))(typescript@6.0.2) + version: 7.4.0(@react-router/dev@7.13.2(@react-router/serve@7.17.0(react-router@7.17.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(supports-color@8.1.1)(typescript@6.0.2))(@types/node@22.13.14)(babel-plugin-macros@3.1.0)(jiti@2.7.0)(lightningcss@1.32.0)(react-router@7.17.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.22.4)(typescript@6.0.2)(vite@8.0.16(@types/node@22.13.14)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.77.4)(terser@5.39.0)(tsx@4.22.4)(yaml@2.9.0))(yaml@2.9.0))(typescript@6.0.2) '@supabase-labs/y-supabase': specifier: 0.1.0 version: 0.1.0 '@supabase/postgrest-js': specifier: 'catalog:' - version: 2.110.6 + version: 2.110.8 '@supabase/supa-mdx-lint': specifier: 0.2.6-alpha version: 0.2.6-alpha @@ -1462,7 +1462,7 @@ importers: version: 1.8.2 contentlayer2: specifier: 0.4.6 - version: 0.4.6(esbuild@0.28.1)(markdown-wasm@1.2.0)(supports-color@8.1.1) + version: 0.4.6(esbuild@0.20.2)(markdown-wasm@1.2.0)(supports-color@8.1.1) eslint-config-supabase: specifier: workspace:* version: link:../../packages/eslint-config-supabase @@ -1486,7 +1486,7 @@ importers: version: 16.2.6(@babel/core@7.29.7(supports-color@8.1.1))(@opentelemetry/api@1.9.1)(@playwright/test@1.59.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.77.4) next-contentlayer2: specifier: 0.4.6 - version: 0.4.6(contentlayer2@0.4.6(esbuild@0.28.1)(markdown-wasm@1.2.0)(supports-color@8.1.1))(esbuild@0.28.1)(markdown-wasm@1.2.0)(next@16.2.6(@opentelemetry/api@1.9.1)(@playwright/test@1.59.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.77.4))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(supports-color@8.1.1) + version: 0.4.6(contentlayer2@0.4.6(esbuild@0.20.2)(markdown-wasm@1.2.0)(supports-color@8.1.1))(esbuild@0.20.2)(markdown-wasm@1.2.0)(next@16.2.6(@opentelemetry/api@1.9.1)(@playwright/test@1.59.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.77.4))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(supports-color@8.1.1) next-themes: specifier: 'catalog:' version: 0.4.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6) @@ -1568,22 +1568,22 @@ importers: version: 7.29.7(supports-color@8.1.1) '@react-router/dev': specifier: ^7.9.0 - version: 7.13.2(@react-router/serve@7.17.0(react-router@7.17.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(supports-color@8.1.1)(typescript@6.0.2))(@types/node@22.13.14)(babel-plugin-macros@3.1.0)(jiti@2.7.0)(lightningcss@1.32.0)(react-router@7.17.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.22.4)(typescript@6.0.2)(vite@8.0.16(@types/node@22.13.14)(jiti@2.7.0)(sass@1.77.4)(terser@5.39.0)(tsx@4.22.4)(yaml@2.9.0))(yaml@2.9.0) + version: 7.13.2(@react-router/serve@7.17.0(react-router@7.17.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(supports-color@8.1.1)(typescript@6.0.2))(@types/node@22.13.14)(babel-plugin-macros@3.1.0)(jiti@2.7.0)(lightningcss@1.32.0)(react-router@7.17.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.22.4)(typescript@6.0.2)(vite@8.0.16(@types/node@22.13.14)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.77.4)(terser@5.39.0)(tsx@4.22.4)(yaml@2.9.0))(yaml@2.9.0) '@shikijs/compat': specifier: ^1.1.7 version: 1.6.0 '@supabase/ssr': specifier: 'catalog:' - version: 0.10.2(@supabase/supabase-js@2.110.6) + version: 0.10.2(@supabase/supabase-js@2.110.8) '@supabase/supabase-js': specifier: 'catalog:' - version: 2.110.6 + version: 2.110.8 '@tanstack/react-router': specifier: 'catalog:' version: 1.170.10(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@tanstack/react-start': specifier: 'catalog:' - version: 1.168.18(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(supports-color@8.1.1)(vite@8.0.16(@types/node@22.13.14)(jiti@2.7.0)(sass@1.77.4)(terser@5.39.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4) + version: 1.168.18(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(supports-color@8.1.1)(vite@8.0.16(@types/node@22.13.14)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.77.4)(terser@5.39.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4) '@types/common-tags': specifier: ^1.8.4 version: 1.8.4 @@ -1691,10 +1691,10 @@ importers: version: 10.59.0(@opentelemetry/core@2.8.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.8.0(@opentelemetry/api@1.9.1))(encoding@0.1.13)(next@15.5.18(@babel/core@7.29.7(supports-color@8.1.1))(@opentelemetry/api@1.9.1)(@playwright/test@1.59.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.77.4))(react@19.2.6)(supports-color@8.1.1)(vite@8.0.16(@types/node@22.13.14)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.77.4)(terser@5.39.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4(esbuild@0.28.1)) '@supabase/ssr': specifier: 'catalog:' - version: 0.10.2(@supabase/supabase-js@2.110.6) + version: 0.10.2(@supabase/supabase-js@2.110.8) '@supabase/supabase-js': specifier: 'catalog:' - version: 2.110.6 + version: 2.110.8 '@typescript/native': specifier: 'catalog:' version: typescript@7.0.2 @@ -1956,13 +1956,13 @@ importers: dependencies: '@supabase/postgrest-js': specifier: 'catalog:' - version: 2.110.6 + version: 2.110.8 '@supabase/ssr': specifier: 'catalog:' - version: 0.10.2(@supabase/supabase-js@2.110.6) + version: 0.10.2(@supabase/supabase-js@2.110.8) '@supabase/supabase-js': specifier: 'catalog:' - version: 2.110.6 + version: 2.110.8 '@vueuse/core': specifier: ^14.1.0 version: 14.1.0(vue@3.5.35(typescript@6.0.2)) @@ -2020,7 +2020,7 @@ importers: version: 1.59.1 '@supabase/supabase-js': specifier: 'catalog:' - version: 2.110.6 + version: 2.110.8 cross-fetch: specifier: ^4.1.0 version: 4.1.0(encoding@0.1.13) @@ -2048,7 +2048,7 @@ importers: version: 0.18.5 '@supabase/supabase-js': specifier: 'catalog:' - version: 2.110.6 + version: 2.110.8 ai: specifier: 5.0.52 version: 5.0.52(zod@3.25.76) @@ -2145,10 +2145,10 @@ importers: dependencies: '@supabase/auth-js': specifier: 'catalog:' - version: 2.110.6 + version: 2.110.8 '@supabase/supabase-js': specifier: 'catalog:' - version: 2.110.6 + version: 2.110.8 '@types/dat.gui': specifier: ^0.7.12 version: 0.7.12 @@ -2301,7 +2301,7 @@ importers: version: link:../config next-router-mock: specifier: ^0.9.13 - version: 0.9.13(next@16.2.6(@babel/core@7.29.7(supports-color@8.1.1))(@opentelemetry/api@1.9.1)(@playwright/test@1.59.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.77.4))(react@19.2.6) + version: 0.9.13(next@16.2.6(@opentelemetry/api@1.9.1)(@playwright/test@1.59.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.77.4))(react@19.2.6) tailwindcss: specifier: 'catalog:' version: 4.2.4 @@ -2620,7 +2620,7 @@ importers: version: 0.1.6(encoding@0.1.13)(supports-color@8.1.1) '@supabase/supabase-js': specifier: 'catalog:' - version: 2.110.6 + version: 2.110.8 '@tanstack/react-table': specifier: 'catalog:' version: 8.21.3(react-dom@19.2.6(react@19.2.6))(react@19.2.6) @@ -2810,7 +2810,7 @@ importers: version: link:../config next-router-mock: specifier: ^0.9.13 - version: 0.9.13(next@16.2.6(@babel/core@7.29.7(supports-color@8.1.1))(@opentelemetry/api@1.9.1)(@playwright/test@1.59.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.77.4))(react@19.2.6) + version: 0.9.13(next@16.2.6(@opentelemetry/api@1.9.1)(@playwright/test@1.59.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.77.4))(react@19.2.6) tailwindcss: specifier: ^4.2.4 version: 4.2.4 @@ -3414,6 +3414,9 @@ packages: '@codemirror/lang-javascript@6.2.3': resolution: {integrity: sha512-8PR3vIWg7pSu7ur8A07pGiYHgy3hHj+mRYRCSG8q+mPIrl0F02rgpGv+DsQTHRTc30rydOsf5PZ7yjKFg2Ackw==} + '@codemirror/language@6.0.0': + resolution: {integrity: sha512-rtjk5ifyMzOna1c7PBu7J1VCt0PvA5wy3o8eMVnxMKb7z8KA7JFecvD04dSn14vj/bBaAbqRsGed5OjtofEnLA==} + '@codemirror/language@6.11.0': resolution: {integrity: sha512-A7+f++LodNNc1wGgoRDTt78cOwWm9KVezApgjOMp1W4hM0898nsqBXwF+sbePE7ZRcjN7Sa1Z5m2oN27XkmEjQ==} @@ -3635,102 +3638,204 @@ packages: peerDependencies: esbuild: '*' + '@esbuild/aix-ppc64@0.20.2': + resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + '@esbuild/aix-ppc64@0.28.1': resolution: {integrity: sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] + '@esbuild/android-arm64@0.20.2': + resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm64@0.28.1': resolution: {integrity: sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==} engines: {node: '>=18'} cpu: [arm64] os: [android] + '@esbuild/android-arm@0.20.2': + resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + '@esbuild/android-arm@0.28.1': resolution: {integrity: sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==} engines: {node: '>=18'} cpu: [arm] os: [android] + '@esbuild/android-x64@0.20.2': + resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + '@esbuild/android-x64@0.28.1': resolution: {integrity: sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==} engines: {node: '>=18'} cpu: [x64] os: [android] + '@esbuild/darwin-arm64@0.20.2': + resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-arm64@0.28.1': resolution: {integrity: sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] + '@esbuild/darwin-x64@0.20.2': + resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + '@esbuild/darwin-x64@0.28.1': resolution: {integrity: sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==} engines: {node: '>=18'} cpu: [x64] os: [darwin] + '@esbuild/freebsd-arm64@0.20.2': + resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-arm64@0.28.1': resolution: {integrity: sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-x64@0.20.2': + resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + '@esbuild/freebsd-x64@0.28.1': resolution: {integrity: sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] + '@esbuild/linux-arm64@0.20.2': + resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm64@0.28.1': resolution: {integrity: sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==} engines: {node: '>=18'} cpu: [arm64] os: [linux] + '@esbuild/linux-arm@0.20.2': + resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + '@esbuild/linux-arm@0.28.1': resolution: {integrity: sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==} engines: {node: '>=18'} cpu: [arm] os: [linux] + '@esbuild/linux-ia32@0.20.2': + resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-ia32@0.28.1': resolution: {integrity: sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==} engines: {node: '>=18'} cpu: [ia32] os: [linux] + '@esbuild/linux-loong64@0.20.2': + resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-loong64@0.28.1': resolution: {integrity: sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==} engines: {node: '>=18'} cpu: [loong64] os: [linux] + '@esbuild/linux-mips64el@0.20.2': + resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-mips64el@0.28.1': resolution: {integrity: sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] + '@esbuild/linux-ppc64@0.20.2': + resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-ppc64@0.28.1': resolution: {integrity: sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] + '@esbuild/linux-riscv64@0.20.2': + resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-riscv64@0.28.1': resolution: {integrity: sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] + '@esbuild/linux-s390x@0.20.2': + resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-s390x@0.28.1': resolution: {integrity: sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==} engines: {node: '>=18'} cpu: [s390x] os: [linux] + '@esbuild/linux-x64@0.20.2': + resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + '@esbuild/linux-x64@0.28.1': resolution: {integrity: sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==} engines: {node: '>=18'} @@ -3743,6 +3848,12 @@ packages: cpu: [arm64] os: [netbsd] + '@esbuild/netbsd-x64@0.20.2': + resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + '@esbuild/netbsd-x64@0.28.1': resolution: {integrity: sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==} engines: {node: '>=18'} @@ -3755,6 +3866,12 @@ packages: cpu: [arm64] os: [openbsd] + '@esbuild/openbsd-x64@0.20.2': + resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + '@esbuild/openbsd-x64@0.28.1': resolution: {integrity: sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==} engines: {node: '>=18'} @@ -3767,24 +3884,48 @@ packages: cpu: [arm64] os: [openharmony] + '@esbuild/sunos-x64@0.20.2': + resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + '@esbuild/sunos-x64@0.28.1': resolution: {integrity: sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==} engines: {node: '>=18'} cpu: [x64] os: [sunos] + '@esbuild/win32-arm64@0.20.2': + resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-arm64@0.28.1': resolution: {integrity: sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==} engines: {node: '>=18'} cpu: [arm64] os: [win32] + '@esbuild/win32-ia32@0.20.2': + resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-ia32@0.28.1': resolution: {integrity: sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==} engines: {node: '>=18'} cpu: [ia32] os: [win32] + '@esbuild/win32-x64@0.20.2': + resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + '@esbuild/win32-x64@0.28.1': resolution: {integrity: sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==} engines: {node: '>=18'} @@ -4452,15 +4593,6 @@ packages: '@types/node': optional: true - '@inquirer/confirm@5.1.8': - resolution: {integrity: sha512-dNLWCYZvXDjO3rnQfk2iuJNL4Ivwz/T2+C3+WnNfJKsNGSuOs3wAo2F6e0p946gtSAk31nZMfW+MRmYaplPKsg==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - '@inquirer/core@10.3.2': resolution: {integrity: sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==} engines: {node: '>=18'} @@ -7652,12 +7784,12 @@ packages: '@supabase-labs/y-supabase@0.1.0': resolution: {integrity: sha512-1ItaKbcImgy7ueYfJcyVYihqCKi9RAee9MKBV8wcCqSMNsrWvw4ibhW8ai91kWsewsiWzIDXVPONgcUcxagk9g==} - '@supabase/auth-js@2.110.6': - resolution: {integrity: sha512-20v99wV4dodllbDOsD8AUVkQ7Ie+vwcgPeORY9YlC9YyJSmVgWff9gRTdgmyfE6GJHoSMJuQ4HZokSLHA/7YUg==} + '@supabase/auth-js@2.110.8': + resolution: {integrity: sha512-TQ5neTUDX2C2WmyYa03yGhLMkhdE/SkHXtK8/qxO/APUy3rsymsJCBP48p4jcN6iO2G0ow6RRexQd2mX+dSyJg==} engines: {node: '>=22.0.0'} - '@supabase/functions-js@2.110.6': - resolution: {integrity: sha512-Ih/I766vc579WfNzXSv1ERssCHKzaPj9rpST/j9wsMuUv+AfmRteKrJn3sVmrJIwQU5qJya2+aWTlvhf4WoMsg==} + '@supabase/functions-js@2.110.8': + resolution: {integrity: sha512-5yB9TLYzvv2oSQxwb0gamEvIAsuH66pVt7AM/pz03S7wN6ehD34GNgbShrccetqPedXQSz7e/1hAJ9NeEhoZVg==} engines: {node: '>=22.0.0'} '@supabase/mcp-server-supabase@0.7.0': @@ -7673,15 +7805,15 @@ packages: '@modelcontextprotocol/sdk': ^1.25.2 zod: ^3.25.0 || ^4.0.0 - '@supabase/phoenix@0.4.4': - resolution: {integrity: sha512-Gt0pqoXuIqX/8dvG0OKp/wMCobXNH3klNbUPBNyOfN0YA1IswrM3HyWFMOPk1Jy+BRaIyDPcFx4jLBwHNmlyfQ==} + '@supabase/phoenix@0.4.5': + resolution: {integrity: sha512-aAn9H9ovVyeApKy11OWOrrOGq8DV68yWeH4ud2lN9fzn4aO8Zb5GLL9m1pUg9nLqIcT+ZDfAcsZe0E/nqdv2lw==} - '@supabase/postgrest-js@2.110.6': - resolution: {integrity: sha512-kDNKncLtYBI/QT8HuVGSui/F3KrC3iWy7KM5M3EvWbEujf1cL+fdwMr2eeA8PEZUIPBeNbDxRzdFZo5t86iqUQ==} + '@supabase/postgrest-js@2.110.8': + resolution: {integrity: sha512-QeRROxl1PpOZw5Jzi7BwdN9icsycMrLlCCvsjS0hYLW+nZoaT46zdagz/glJirj8jHF4jSd5Jyipuae2cBClCw==} engines: {node: '>=22.0.0'} - '@supabase/realtime-js@2.110.6': - resolution: {integrity: sha512-F2BhRmbC1dJlNA6cdjtbIWQJNV112TYbzEc0/0UFZYvKL52mL0PR0ZrlpIPEludV85WEmjA1RpjW2H5tNQka9g==} + '@supabase/realtime-js@2.110.8': + resolution: {integrity: sha512-mwX7ituX6O31fLf+0g65rpLlNxqgnMaPltPsQwzox6jfmbfVl3tCxXrfr3HEsQcCRjpjuJG1+A0vFzP1yVjKHA==} engines: {node: '>=22.0.0'} '@supabase/shared-types@0.1.88': @@ -7695,8 +7827,8 @@ packages: peerDependencies: '@supabase/supabase-js': ^2.102.1 - '@supabase/storage-js@2.110.6': - resolution: {integrity: sha512-DHS7Jy8MCu2sltDBjANu6oGjeUBUY+bowBnga6CySwtAF2BBKCTJGULnt7wyKPSLSXsoiCyzTwyU1r3SAx++Rg==} + '@supabase/storage-js@2.110.8': + resolution: {integrity: sha512-CcfhkZFBLxsthgUabZKxwfsoXdrikIGsL3LsGoV3FZTqCMx/s1y49taT4jT/oya5+1IuB0sFFHw6pF0o0iJniQ==} engines: {node: '>=22.0.0'} '@supabase/supa-mdx-lint-darwin@0.2.6-alpha': @@ -7834,8 +7966,8 @@ packages: resolution: {integrity: sha512-iqJHDk/ToyxFMa/um9A5gsp9jYN7iI0cIabNq9nyBpK/Yat/J9I2IIMueQwIMy3TsG6a2qdPyUkZkuPC37SdRg==} hasBin: true - '@supabase/supabase-js@2.110.6': - resolution: {integrity: sha512-UJTAz1NUiSRI2mQYhUPvNMwqfkSucV1iSCcMJz8jgsSUTOfic9C3D6LGNOrH6KTvYUhxRvnf3ktq2Sd3IXIQzQ==} + '@supabase/supabase-js@2.110.8': + resolution: {integrity: sha512-E5qzoe74zhJRv4wRcbO9eMYzeQDb/+h6c603pL8shcxLGBjTKsIF7XXj05IcNj23TLDgJN1WkMw7mwAPyu5dZg==} engines: {node: '>=22.0.0'} '@swc/helpers@0.5.15': @@ -8002,6 +8134,9 @@ packages: resolution: {integrity: sha512-vqH7X9nb0MTJ/O08++dB5bP9jgj4+BIPOUu/U+6myG86lDsirZSVSobpq5UQpE7nBuk62i8eIYeOhd+OMl/UrA==} engines: {node: '>=18'} + '@tanstack/query-core@5.101.2': + resolution: {integrity: sha512-hH5MLoJhF7KaIGd7q3xTXGXvslI+GYlM1Z/35aSHHWaCJWB7XvTSHYuV3eM7tw+aE0mT/xMro4M4Q9rCGHT0lw==} + '@tanstack/query-core@5.83.0': resolution: {integrity: sha512-0M8dA+amXUkyz5cVUm/B+zSk3xkQAcuXuz5/Q/LveT4ots2rBpPTZOzd7yJa2Utsf8D2Upl5KyjhHRY+9lB/XA==} @@ -10890,6 +11025,11 @@ packages: esast-util-from-js@2.0.1: resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==} + esbuild@0.20.2: + resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} + engines: {node: '>=12'} + hasBin: true + esbuild@0.28.1: resolution: {integrity: sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==} engines: {node: '>=18'} @@ -11059,7 +11199,6 @@ packages: resolution: {integrity: sha512-t0q23FIpvHDTtnORW+bDJziGsal5uh9RJTJ1fyH8drd4lICOoXhJ5pLMUZ5C0VQei6dNmwTzzoTRgMkO9JgHEQ==} peerDependencies: eslint: '>= 5' - bundledDependencies: [] eslint-plugin-import@2.31.0: resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} @@ -18759,6 +18898,15 @@ snapshots: '@lezer/common': 1.2.3 '@lezer/javascript': 1.4.21 + '@codemirror/language@6.0.0': + dependencies: + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.36.5 + '@lezer/common': 1.2.3 + '@lezer/highlight': 1.2.1 + '@lezer/lr': 1.4.2 + style-mod: 4.1.2 + '@codemirror/language@6.11.0': dependencies: '@codemirror/state': 6.5.2 @@ -18827,9 +18975,9 @@ snapshots: '@colors/colors@1.5.0': optional: true - '@contentlayer2/cli@0.4.3(esbuild@0.28.1)(markdown-wasm@1.2.0)(supports-color@8.1.1)': + '@contentlayer2/cli@0.4.3(esbuild@0.20.2)(markdown-wasm@1.2.0)(supports-color@8.1.1)': dependencies: - '@contentlayer2/core': 0.4.3(esbuild@0.28.1)(markdown-wasm@1.2.0)(supports-color@8.1.1) + '@contentlayer2/core': 0.4.3(esbuild@0.20.2)(markdown-wasm@1.2.0)(supports-color@8.1.1) '@contentlayer2/utils': 0.4.3 clipanion: 3.2.1(typanion@3.14.0) typanion: 3.14.0 @@ -18839,22 +18987,22 @@ snapshots: - markdown-wasm - supports-color - '@contentlayer2/client@0.4.3(esbuild@0.28.1)(markdown-wasm@1.2.0)(supports-color@8.1.1)': + '@contentlayer2/client@0.4.3(esbuild@0.20.2)(markdown-wasm@1.2.0)(supports-color@8.1.1)': dependencies: - '@contentlayer2/core': 0.4.3(esbuild@0.28.1)(markdown-wasm@1.2.0)(supports-color@8.1.1) + '@contentlayer2/core': 0.4.3(esbuild@0.20.2)(markdown-wasm@1.2.0)(supports-color@8.1.1) transitivePeerDependencies: - '@effect-ts/otel-node' - esbuild - markdown-wasm - supports-color - '@contentlayer2/core@0.4.3(esbuild@0.28.1)(markdown-wasm@1.2.0)(supports-color@8.1.1)': + '@contentlayer2/core@0.4.3(esbuild@0.20.2)(markdown-wasm@1.2.0)(supports-color@8.1.1)': dependencies: '@contentlayer2/utils': 0.4.3 camel-case: 4.1.2 comment-json: 4.2.3 gray-matter: 4.0.3 - mdx-bundler: 10.0.2(esbuild@0.28.1)(supports-color@8.1.1) + mdx-bundler: 10.0.2(esbuild@0.20.2)(supports-color@8.1.1) rehype-stringify: 10.0.0 remark-frontmatter: 5.0.0(supports-color@8.1.1) remark-parse: 11.0.0(supports-color@8.1.1) @@ -18863,15 +19011,15 @@ snapshots: type-fest: 4.30.0 unified: 11.0.5 optionalDependencies: - esbuild: 0.28.1 + esbuild: 0.20.2 markdown-wasm: 1.2.0 transitivePeerDependencies: - '@effect-ts/otel-node' - supports-color - '@contentlayer2/source-files@0.4.3(esbuild@0.28.1)(markdown-wasm@1.2.0)(supports-color@8.1.1)': + '@contentlayer2/source-files@0.4.3(esbuild@0.20.2)(markdown-wasm@1.2.0)(supports-color@8.1.1)': dependencies: - '@contentlayer2/core': 0.4.3(esbuild@0.28.1)(markdown-wasm@1.2.0)(supports-color@8.1.1) + '@contentlayer2/core': 0.4.3(esbuild@0.20.2)(markdown-wasm@1.2.0)(supports-color@8.1.1) '@contentlayer2/utils': 0.4.3 chokidar: 3.6.0 fast-glob: 3.3.3 @@ -18888,10 +19036,10 @@ snapshots: - markdown-wasm - supports-color - '@contentlayer2/source-remote-files@0.4.3(esbuild@0.28.1)(markdown-wasm@1.2.0)(supports-color@8.1.1)': + '@contentlayer2/source-remote-files@0.4.3(esbuild@0.20.2)(markdown-wasm@1.2.0)(supports-color@8.1.1)': dependencies: - '@contentlayer2/core': 0.4.3(esbuild@0.28.1)(markdown-wasm@1.2.0)(supports-color@8.1.1) - '@contentlayer2/source-files': 0.4.3(esbuild@0.28.1)(markdown-wasm@1.2.0)(supports-color@8.1.1) + '@contentlayer2/core': 0.4.3(esbuild@0.20.2)(markdown-wasm@1.2.0)(supports-color@8.1.1) + '@contentlayer2/source-files': 0.4.3(esbuild@0.20.2)(markdown-wasm@1.2.0)(supports-color@8.1.1) '@contentlayer2/utils': 0.4.3 transitivePeerDependencies: - '@effect-ts/otel-node' @@ -19086,91 +19234,160 @@ snapshots: '@whatwg-node/promise-helpers': 1.3.1 tslib: 2.8.1 - '@esbuild-plugins/node-resolve@0.2.2(esbuild@0.28.1)(supports-color@8.1.1)': + '@esbuild-plugins/node-resolve@0.2.2(esbuild@0.20.2)(supports-color@8.1.1)': dependencies: '@types/resolve': 1.20.6 debug: 4.4.3(supports-color@8.1.1) - esbuild: 0.28.1 + esbuild: 0.20.2 escape-string-regexp: 4.0.0 resolve: 1.22.10 transitivePeerDependencies: - supports-color + '@esbuild/aix-ppc64@0.20.2': + optional: true + '@esbuild/aix-ppc64@0.28.1': optional: true + '@esbuild/android-arm64@0.20.2': + optional: true + '@esbuild/android-arm64@0.28.1': optional: true + '@esbuild/android-arm@0.20.2': + optional: true + '@esbuild/android-arm@0.28.1': optional: true + '@esbuild/android-x64@0.20.2': + optional: true + '@esbuild/android-x64@0.28.1': optional: true + '@esbuild/darwin-arm64@0.20.2': + optional: true + '@esbuild/darwin-arm64@0.28.1': optional: true + '@esbuild/darwin-x64@0.20.2': + optional: true + '@esbuild/darwin-x64@0.28.1': optional: true + '@esbuild/freebsd-arm64@0.20.2': + optional: true + '@esbuild/freebsd-arm64@0.28.1': optional: true + '@esbuild/freebsd-x64@0.20.2': + optional: true + '@esbuild/freebsd-x64@0.28.1': optional: true + '@esbuild/linux-arm64@0.20.2': + optional: true + '@esbuild/linux-arm64@0.28.1': optional: true + '@esbuild/linux-arm@0.20.2': + optional: true + '@esbuild/linux-arm@0.28.1': optional: true + '@esbuild/linux-ia32@0.20.2': + optional: true + '@esbuild/linux-ia32@0.28.1': optional: true + '@esbuild/linux-loong64@0.20.2': + optional: true + '@esbuild/linux-loong64@0.28.1': optional: true + '@esbuild/linux-mips64el@0.20.2': + optional: true + '@esbuild/linux-mips64el@0.28.1': optional: true + '@esbuild/linux-ppc64@0.20.2': + optional: true + '@esbuild/linux-ppc64@0.28.1': optional: true + '@esbuild/linux-riscv64@0.20.2': + optional: true + '@esbuild/linux-riscv64@0.28.1': optional: true + '@esbuild/linux-s390x@0.20.2': + optional: true + '@esbuild/linux-s390x@0.28.1': optional: true + '@esbuild/linux-x64@0.20.2': + optional: true + '@esbuild/linux-x64@0.28.1': optional: true '@esbuild/netbsd-arm64@0.28.1': optional: true + '@esbuild/netbsd-x64@0.20.2': + optional: true + '@esbuild/netbsd-x64@0.28.1': optional: true '@esbuild/openbsd-arm64@0.28.1': optional: true + '@esbuild/openbsd-x64@0.20.2': + optional: true + '@esbuild/openbsd-x64@0.28.1': optional: true '@esbuild/openharmony-arm64@0.28.1': optional: true + '@esbuild/sunos-x64@0.20.2': + optional: true + '@esbuild/sunos-x64@0.28.1': optional: true + '@esbuild/win32-arm64@0.20.2': + optional: true + '@esbuild/win32-arm64@0.28.1': optional: true + '@esbuild/win32-ia32@0.20.2': + optional: true + '@esbuild/win32-ia32@0.28.1': optional: true + '@esbuild/win32-x64@0.20.2': + optional: true + '@esbuild/win32-x64@0.28.1': optional: true @@ -19267,9 +19484,9 @@ snapshots: '@floating-ui/utils@0.2.9': {} - '@graphiql/plugin-doc-explorer@0.0.1(@codemirror/language@6.11.0)(@emotion/is-prop-valid@1.4.0)(@types/node@22.13.14)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(graphql-ws@6.0.4(graphql@16.11.0)(ws@8.21.0))(graphql@16.11.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@graphiql/plugin-doc-explorer@0.0.1(@codemirror/language@6.0.0)(@emotion/is-prop-valid@1.4.0)(@types/node@22.13.14)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(graphql-ws@6.0.4(graphql@16.11.0)(ws@8.21.0))(graphql@16.11.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@graphiql/react': 0.32.0(@codemirror/language@6.11.0)(@emotion/is-prop-valid@1.4.0)(@types/node@22.13.14)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(graphql-ws@6.0.4(graphql@16.11.0)(ws@8.21.0))(graphql@16.11.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@graphiql/react': 0.32.0(@codemirror/language@6.0.0)(@emotion/is-prop-valid@1.4.0)(@types/node@22.13.14)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(graphql-ws@6.0.4(graphql@16.11.0)(ws@8.21.0))(graphql@16.11.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@headlessui/react': 2.2.2(react-dom@19.2.6(react@19.2.6))(react@19.2.6) graphql: 16.11.0 react: 19.2.6 @@ -19297,9 +19514,9 @@ snapshots: - immer - use-sync-external-store - '@graphiql/plugin-history@0.0.2(@codemirror/language@6.11.0)(@emotion/is-prop-valid@1.4.0)(@types/node@22.13.14)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(graphql-ws@6.0.4(graphql@16.11.0)(ws@8.21.0))(graphql@16.11.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@graphiql/plugin-history@0.0.2(@codemirror/language@6.0.0)(@emotion/is-prop-valid@1.4.0)(@types/node@22.13.14)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(graphql-ws@6.0.4(graphql@16.11.0)(ws@8.21.0))(graphql@16.11.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@graphiql/react': 0.32.0(@codemirror/language@6.11.0)(@emotion/is-prop-valid@1.4.0)(@types/node@22.13.14)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(graphql-ws@6.0.4(graphql@16.11.0)(ws@8.21.0))(graphql@16.11.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@graphiql/react': 0.32.0(@codemirror/language@6.0.0)(@emotion/is-prop-valid@1.4.0)(@types/node@22.13.14)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(graphql-ws@6.0.4(graphql@16.11.0)(ws@8.21.0))(graphql@16.11.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@graphiql/toolkit': 0.11.3(@types/node@22.13.14)(graphql-ws@6.0.4(graphql@16.11.0)(ws@8.21.0))(graphql@16.11.0) react: 19.2.6 react-compiler-runtime: 19.1.0-rc.1(react@19.2.6) @@ -19329,7 +19546,7 @@ snapshots: - immer - use-sync-external-store - '@graphiql/react@0.32.0(@codemirror/language@6.11.0)(@emotion/is-prop-valid@1.4.0)(@types/node@22.13.14)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(graphql-ws@6.0.4(graphql@16.11.0)(ws@8.21.0))(graphql@16.11.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@graphiql/react@0.32.0(@codemirror/language@6.0.0)(@emotion/is-prop-valid@1.4.0)(@types/node@22.13.14)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(graphql-ws@6.0.4(graphql@16.11.0)(ws@8.21.0))(graphql@16.11.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@graphiql/toolkit': 0.11.3(@types/node@22.13.14)(graphql-ws@6.0.4(graphql@16.11.0)(ws@8.21.0))(graphql@16.11.0) '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) @@ -19339,7 +19556,7 @@ snapshots: '@types/codemirror': 5.60.10 clsx: 1.2.1 codemirror: 5.65.15 - codemirror-graphql: 2.2.1(@codemirror/language@6.11.0)(codemirror@5.65.15)(graphql@16.11.0) + codemirror-graphql: 2.2.1(@codemirror/language@6.0.0)(codemirror@5.65.15)(graphql@16.11.0) copy-to-clipboard: 3.3.3 framer-motion: 12.9.5(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) get-value: 3.0.1 @@ -20089,13 +20306,6 @@ snapshots: optionalDependencies: '@types/node': 22.13.14 - '@inquirer/confirm@5.1.8(@types/node@22.13.14)': - dependencies: - '@inquirer/core': 10.3.2(@types/node@22.13.14) - '@inquirer/type': 3.0.10(@types/node@22.13.14) - optionalDependencies: - '@types/node': 22.13.14 - '@inquirer/core@10.3.2(@types/node@22.13.14)': dependencies: '@inquirer/ansi': 1.0.2 @@ -20332,11 +20542,11 @@ snapshots: '@marijn/find-cluster-break@1.0.2': {} - '@mdx-js/esbuild@3.0.1(esbuild@0.28.1)(supports-color@8.1.1)': + '@mdx-js/esbuild@3.0.1(esbuild@0.20.2)(supports-color@8.1.1)': dependencies: '@mdx-js/mdx': 3.1.1(supports-color@8.1.1) '@types/unist': 3.0.3 - esbuild: 0.28.1 + esbuild: 0.20.2 vfile: 6.0.3 vfile-message: 4.0.2 transitivePeerDependencies: @@ -22355,7 +22565,7 @@ snapshots: dependencies: react: 19.2.6 - '@react-router/dev@7.13.2(@react-router/serve@7.17.0(react-router@7.17.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(supports-color@8.1.1)(typescript@6.0.2))(@types/node@22.13.14)(babel-plugin-macros@3.1.0)(jiti@2.7.0)(lightningcss@1.32.0)(react-router@7.17.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.22.4)(typescript@6.0.2)(vite@8.0.16(@types/node@22.13.14)(jiti@2.7.0)(sass@1.77.4)(terser@5.39.0)(tsx@4.22.4)(yaml@2.9.0))(yaml@2.9.0)': + '@react-router/dev@7.13.2(@react-router/serve@7.17.0(react-router@7.17.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(supports-color@8.1.1)(typescript@6.0.2))(@types/node@22.13.14)(babel-plugin-macros@3.1.0)(jiti@2.7.0)(lightningcss@1.32.0)(react-router@7.17.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.22.4)(typescript@6.0.2)(vite@8.0.16(@types/node@22.13.14)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.77.4)(terser@5.39.0)(tsx@4.22.4)(yaml@2.9.0))(yaml@2.9.0)': dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/generator': 7.29.0 @@ -22470,9 +22680,9 @@ snapshots: optionalDependencies: typescript: 6.0.2 - '@react-router/fs-routes@7.4.0(@react-router/dev@7.13.2(@react-router/serve@7.17.0(react-router@7.17.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(supports-color@8.1.1)(typescript@6.0.2))(@types/node@22.13.14)(babel-plugin-macros@3.1.0)(jiti@2.7.0)(lightningcss@1.32.0)(react-router@7.17.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.22.4)(typescript@6.0.2)(vite@8.0.16(@types/node@22.13.14)(jiti@2.7.0)(sass@1.77.4)(terser@5.39.0)(tsx@4.22.4)(yaml@2.9.0))(yaml@2.9.0))(typescript@6.0.2)': + '@react-router/fs-routes@7.4.0(@react-router/dev@7.13.2(@react-router/serve@7.17.0(react-router@7.17.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(supports-color@8.1.1)(typescript@6.0.2))(@types/node@22.13.14)(babel-plugin-macros@3.1.0)(jiti@2.7.0)(lightningcss@1.32.0)(react-router@7.17.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.22.4)(typescript@6.0.2)(vite@8.0.16(@types/node@22.13.14)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.77.4)(terser@5.39.0)(tsx@4.22.4)(yaml@2.9.0))(yaml@2.9.0))(typescript@6.0.2)': dependencies: - '@react-router/dev': 7.13.2(@react-router/serve@7.17.0(react-router@7.17.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(supports-color@8.1.1)(typescript@6.0.2))(@types/node@22.13.14)(babel-plugin-macros@3.1.0)(jiti@2.7.0)(lightningcss@1.32.0)(react-router@7.17.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.22.4)(typescript@6.0.2)(vite@8.0.16(@types/node@22.13.14)(jiti@2.7.0)(sass@1.77.4)(terser@5.39.0)(tsx@4.22.4)(yaml@2.9.0))(yaml@2.9.0) + '@react-router/dev': 7.13.2(@react-router/serve@7.17.0(react-router@7.17.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(supports-color@8.1.1)(typescript@6.0.2))(@types/node@22.13.14)(babel-plugin-macros@3.1.0)(jiti@2.7.0)(lightningcss@1.32.0)(react-router@7.17.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.22.4)(typescript@6.0.2)(vite@8.0.16(@types/node@22.13.14)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.77.4)(terser@5.39.0)(tsx@4.22.4)(yaml@2.9.0))(yaml@2.9.0) minimatch: 9.0.7 optionalDependencies: typescript: 6.0.2 @@ -23521,15 +23731,15 @@ snapshots: '@supabase-labs/y-supabase@0.1.0': dependencies: - '@supabase/supabase-js': 2.110.6 + '@supabase/supabase-js': 2.110.8 y-protocols: 1.0.7(yjs@13.6.29) yjs: 13.6.29 - '@supabase/auth-js@2.110.6': + '@supabase/auth-js@2.110.8': dependencies: tslib: 2.8.1 - '@supabase/functions-js@2.110.6': + '@supabase/functions-js@2.110.8': dependencies: tslib: 2.8.1 @@ -23549,15 +23759,15 @@ snapshots: '@modelcontextprotocol/sdk': 1.29.0(supports-color@8.1.1)(zod@3.25.76) zod: 3.25.76 - '@supabase/phoenix@0.4.4': {} + '@supabase/phoenix@0.4.5': {} - '@supabase/postgrest-js@2.110.6': + '@supabase/postgrest-js@2.110.8': dependencies: tslib: 2.8.1 - '@supabase/realtime-js@2.110.6': + '@supabase/realtime-js@2.110.8': dependencies: - '@supabase/phoenix': 0.4.4 + '@supabase/phoenix': 0.4.5 tslib: 2.8.1 '@supabase/shared-types@0.1.88': {} @@ -23571,12 +23781,12 @@ snapshots: - encoding - supports-color - '@supabase/ssr@0.10.2(@supabase/supabase-js@2.110.6)': + '@supabase/ssr@0.10.2(@supabase/supabase-js@2.110.8)': dependencies: - '@supabase/supabase-js': 2.110.6 + '@supabase/supabase-js': 2.110.8 cookie: 1.0.2 - '@supabase/storage-js@2.110.6': + '@supabase/storage-js@2.110.8': dependencies: iceberg-js: 0.8.1 tslib: 2.8.1 @@ -23677,13 +23887,13 @@ snapshots: '@supabase/supa-mdx-lint-win32-x64': 0.3.2 node-pty: 1.0.0 - '@supabase/supabase-js@2.110.6': + '@supabase/supabase-js@2.110.8': dependencies: - '@supabase/auth-js': 2.110.6 - '@supabase/functions-js': 2.110.6 - '@supabase/postgrest-js': 2.110.6 - '@supabase/realtime-js': 2.110.6 - '@supabase/storage-js': 2.110.6 + '@supabase/auth-js': 2.110.8 + '@supabase/functions-js': 2.110.8 + '@supabase/postgrest-js': 2.110.8 + '@supabase/realtime-js': 2.110.8 + '@supabase/storage-js': 2.110.8 '@swc/helpers@0.5.15': dependencies: @@ -23863,6 +24073,8 @@ snapshots: dependencies: '@tanstack/store': 0.11.0 + '@tanstack/query-core@5.101.2': {} + '@tanstack/query-core@5.83.0': {} '@tanstack/query-devtools@5.90.1': {} @@ -23909,12 +24121,12 @@ snapshots: transitivePeerDependencies: - csstype - '@tanstack/react-router-ssr-query@1.167.1(@tanstack/query-core@5.83.0)(@tanstack/react-query@5.83.0(react@19.2.6))(@tanstack/react-router@1.170.10(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@tanstack/router-core@1.171.8)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@tanstack/react-router-ssr-query@1.167.1(@tanstack/query-core@5.101.2)(@tanstack/react-query@5.83.0(react@19.2.6))(@tanstack/react-router@1.170.10(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(@tanstack/router-core@1.171.8)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@tanstack/query-core': 5.83.0 + '@tanstack/query-core': 5.101.2 '@tanstack/react-query': 5.83.0(react@19.2.6) '@tanstack/react-router': 1.170.10(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@tanstack/router-ssr-query-core': 1.169.1(@tanstack/query-core@5.83.0)(@tanstack/router-core@1.171.8) + '@tanstack/router-ssr-query-core': 1.169.1(@tanstack/query-core@5.101.2)(@tanstack/router-core@1.171.8) react: 19.2.6 react-dom: 19.2.6(react@19.2.6) transitivePeerDependencies: @@ -23959,7 +24171,7 @@ snapshots: - vite-plugin-solid - webpack - '@tanstack/react-start-rsc@0.1.17(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(supports-color@8.1.1)(vite@8.0.16(@types/node@22.13.14)(jiti@2.7.0)(sass@1.77.4)(terser@5.39.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4)': + '@tanstack/react-start-rsc@0.1.17(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(supports-color@8.1.1)(vite@8.0.16(@types/node@22.13.14)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.77.4)(terser@5.39.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4)': dependencies: '@tanstack/react-router': 1.170.10(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@tanstack/react-start-server': 1.167.13(react-dom@19.2.6(react@19.2.6))(react@19.2.6) @@ -23967,7 +24179,7 @@ snapshots: '@tanstack/router-utils': 1.162.1(supports-color@8.1.1) '@tanstack/start-client-core': 1.170.6 '@tanstack/start-fn-stubs': 1.162.0 - '@tanstack/start-plugin-core': 1.171.10(@tanstack/react-router@1.170.10(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(supports-color@8.1.1)(vite@8.0.16(@types/node@22.13.14)(jiti@2.7.0)(sass@1.77.4)(terser@5.39.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4) + '@tanstack/start-plugin-core': 1.171.10(@tanstack/react-router@1.170.10(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(supports-color@8.1.1)(vite@8.0.16(@types/node@22.13.14)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.77.4)(terser@5.39.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4) '@tanstack/start-server-core': 1.169.8 '@tanstack/start-storage-context': 1.167.10 pathe: 2.0.3 @@ -24016,15 +24228,15 @@ snapshots: - vite-plugin-solid - webpack - '@tanstack/react-start@1.168.18(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(supports-color@8.1.1)(vite@8.0.16(@types/node@22.13.14)(jiti@2.7.0)(sass@1.77.4)(terser@5.39.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4)': + '@tanstack/react-start@1.168.18(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(supports-color@8.1.1)(vite@8.0.16(@types/node@22.13.14)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.77.4)(terser@5.39.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4)': dependencies: '@tanstack/react-router': 1.170.10(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@tanstack/react-start-client': 1.168.7(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@tanstack/react-start-rsc': 0.1.17(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(supports-color@8.1.1)(vite@8.0.16(@types/node@22.13.14)(jiti@2.7.0)(sass@1.77.4)(terser@5.39.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4) + '@tanstack/react-start-rsc': 0.1.17(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(supports-color@8.1.1)(vite@8.0.16(@types/node@22.13.14)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.77.4)(terser@5.39.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4) '@tanstack/react-start-server': 1.167.13(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@tanstack/router-utils': 1.162.1(supports-color@8.1.1) '@tanstack/start-client-core': 1.170.6 - '@tanstack/start-plugin-core': 1.171.10(@tanstack/react-router@1.170.10(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(supports-color@8.1.1)(vite@8.0.16(@types/node@22.13.14)(jiti@2.7.0)(sass@1.77.4)(terser@5.39.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4) + '@tanstack/start-plugin-core': 1.171.10(@tanstack/react-router@1.170.10(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(supports-color@8.1.1)(vite@8.0.16(@types/node@22.13.14)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.77.4)(terser@5.39.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4) '@tanstack/start-server-core': 1.169.8 pathe: 2.0.3 react: 19.2.6 @@ -24115,7 +24327,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@tanstack/router-plugin@1.168.13(@tanstack/react-router@1.170.10(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(supports-color@8.1.1)(vite@8.0.16(@types/node@22.13.14)(jiti@2.7.0)(sass@1.77.4)(terser@5.39.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4)': + '@tanstack/router-plugin@1.168.13(@tanstack/react-router@1.170.10(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(supports-color@8.1.1)(vite@8.0.16(@types/node@22.13.14)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.77.4)(terser@5.39.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4)': dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.29.7(supports-color@8.1.1)) @@ -24137,9 +24349,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@tanstack/router-ssr-query-core@1.169.1(@tanstack/query-core@5.83.0)(@tanstack/router-core@1.171.8)': + '@tanstack/router-ssr-query-core@1.169.1(@tanstack/query-core@5.101.2)(@tanstack/router-core@1.171.8)': dependencies: - '@tanstack/query-core': 5.83.0 + '@tanstack/query-core': 5.101.2 '@tanstack/router-core': 1.171.8 '@tanstack/router-utils@1.162.1(supports-color@8.1.1)': @@ -24198,7 +24410,7 @@ snapshots: - vite-plugin-solid - webpack - '@tanstack/start-plugin-core@1.171.10(@tanstack/react-router@1.170.10(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(supports-color@8.1.1)(vite@8.0.16(@types/node@22.13.14)(jiti@2.7.0)(sass@1.77.4)(terser@5.39.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4)': + '@tanstack/start-plugin-core@1.171.10(@tanstack/react-router@1.170.10(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(supports-color@8.1.1)(vite@8.0.16(@types/node@22.13.14)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.77.4)(terser@5.39.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4)': dependencies: '@babel/code-frame': 7.27.1 '@babel/core': 7.29.7(supports-color@8.1.1) @@ -24206,7 +24418,7 @@ snapshots: '@rolldown/pluginutils': 1.0.1 '@tanstack/router-core': 1.171.8 '@tanstack/router-generator': 1.167.12(supports-color@8.1.1) - '@tanstack/router-plugin': 1.168.13(@tanstack/react-router@1.170.10(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(supports-color@8.1.1)(vite@8.0.16(@types/node@22.13.14)(jiti@2.7.0)(sass@1.77.4)(terser@5.39.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4) + '@tanstack/router-plugin': 1.168.13(@tanstack/react-router@1.170.10(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(supports-color@8.1.1)(vite@8.0.16(@types/node@22.13.14)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.77.4)(terser@5.39.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.4) '@tanstack/router-utils': 1.162.1(supports-color@8.1.1) '@tanstack/start-client-core': 1.170.6 '@tanstack/start-server-core': 1.169.8 @@ -24259,7 +24471,7 @@ snapshots: '@testing-library/dom@10.4.1': dependencies: - '@babel/code-frame': 7.29.0 + '@babel/code-frame': 7.29.7 '@babel/runtime': 7.26.10 '@types/aria-query': 5.0.2 aria-query: 5.3.0 @@ -26187,9 +26399,9 @@ snapshots: code-block-writer@13.0.3: {} - codemirror-graphql@2.2.1(@codemirror/language@6.11.0)(codemirror@5.65.15)(graphql@16.11.0): + codemirror-graphql@2.2.1(@codemirror/language@6.0.0)(codemirror@5.65.15)(graphql@16.11.0): dependencies: - '@codemirror/language': 6.11.0 + '@codemirror/language': 6.0.0 '@types/codemirror': 0.0.90 codemirror: 5.65.15 graphql: 16.11.0 @@ -26357,13 +26569,13 @@ snapshots: content-type@1.0.5: {} - contentlayer2@0.4.6(esbuild@0.28.1)(markdown-wasm@1.2.0)(supports-color@8.1.1): + contentlayer2@0.4.6(esbuild@0.20.2)(markdown-wasm@1.2.0)(supports-color@8.1.1): dependencies: - '@contentlayer2/cli': 0.4.3(esbuild@0.28.1)(markdown-wasm@1.2.0)(supports-color@8.1.1) - '@contentlayer2/client': 0.4.3(esbuild@0.28.1)(markdown-wasm@1.2.0)(supports-color@8.1.1) - '@contentlayer2/core': 0.4.3(esbuild@0.28.1)(markdown-wasm@1.2.0)(supports-color@8.1.1) - '@contentlayer2/source-files': 0.4.3(esbuild@0.28.1)(markdown-wasm@1.2.0)(supports-color@8.1.1) - '@contentlayer2/source-remote-files': 0.4.3(esbuild@0.28.1)(markdown-wasm@1.2.0)(supports-color@8.1.1) + '@contentlayer2/cli': 0.4.3(esbuild@0.20.2)(markdown-wasm@1.2.0)(supports-color@8.1.1) + '@contentlayer2/client': 0.4.3(esbuild@0.20.2)(markdown-wasm@1.2.0)(supports-color@8.1.1) + '@contentlayer2/core': 0.4.3(esbuild@0.20.2)(markdown-wasm@1.2.0)(supports-color@8.1.1) + '@contentlayer2/source-files': 0.4.3(esbuild@0.20.2)(markdown-wasm@1.2.0)(supports-color@8.1.1) + '@contentlayer2/source-remote-files': 0.4.3(esbuild@0.20.2)(markdown-wasm@1.2.0)(supports-color@8.1.1) '@contentlayer2/utils': 0.4.3 transitivePeerDependencies: - '@effect-ts/otel-node' @@ -27236,6 +27448,32 @@ snapshots: esast-util-from-estree: 2.0.0 vfile-message: 4.0.2 + esbuild@0.20.2: + optionalDependencies: + '@esbuild/aix-ppc64': 0.20.2 + '@esbuild/android-arm': 0.20.2 + '@esbuild/android-arm64': 0.20.2 + '@esbuild/android-x64': 0.20.2 + '@esbuild/darwin-arm64': 0.20.2 + '@esbuild/darwin-x64': 0.20.2 + '@esbuild/freebsd-arm64': 0.20.2 + '@esbuild/freebsd-x64': 0.20.2 + '@esbuild/linux-arm': 0.20.2 + '@esbuild/linux-arm64': 0.20.2 + '@esbuild/linux-ia32': 0.20.2 + '@esbuild/linux-loong64': 0.20.2 + '@esbuild/linux-mips64el': 0.20.2 + '@esbuild/linux-ppc64': 0.20.2 + '@esbuild/linux-riscv64': 0.20.2 + '@esbuild/linux-s390x': 0.20.2 + '@esbuild/linux-x64': 0.20.2 + '@esbuild/netbsd-x64': 0.20.2 + '@esbuild/openbsd-x64': 0.20.2 + '@esbuild/sunos-x64': 0.20.2 + '@esbuild/win32-arm64': 0.20.2 + '@esbuild/win32-ia32': 0.20.2 + '@esbuild/win32-x64': 0.20.2 + esbuild@0.28.1: optionalDependencies: '@esbuild/aix-ppc64': 0.28.1 @@ -28301,11 +28539,11 @@ snapshots: graphemer@1.4.0: {} - graphiql@4.0.2(@codemirror/language@6.11.0)(@emotion/is-prop-valid@1.4.0)(@types/node@22.13.14)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(graphql-ws@6.0.4(graphql@16.11.0)(ws@8.21.0))(graphql@16.11.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6): + graphiql@4.0.2(@codemirror/language@6.0.0)(@emotion/is-prop-valid@1.4.0)(@types/node@22.13.14)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(graphql-ws@6.0.4(graphql@16.11.0)(ws@8.21.0))(graphql@16.11.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6): dependencies: - '@graphiql/plugin-doc-explorer': 0.0.1(@codemirror/language@6.11.0)(@emotion/is-prop-valid@1.4.0)(@types/node@22.13.14)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(graphql-ws@6.0.4(graphql@16.11.0)(ws@8.21.0))(graphql@16.11.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@graphiql/plugin-history': 0.0.2(@codemirror/language@6.11.0)(@emotion/is-prop-valid@1.4.0)(@types/node@22.13.14)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(graphql-ws@6.0.4(graphql@16.11.0)(ws@8.21.0))(graphql@16.11.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@graphiql/react': 0.32.0(@codemirror/language@6.11.0)(@emotion/is-prop-valid@1.4.0)(@types/node@22.13.14)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(graphql-ws@6.0.4(graphql@16.11.0)(ws@8.21.0))(graphql@16.11.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@graphiql/plugin-doc-explorer': 0.0.1(@codemirror/language@6.0.0)(@emotion/is-prop-valid@1.4.0)(@types/node@22.13.14)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(graphql-ws@6.0.4(graphql@16.11.0)(ws@8.21.0))(graphql@16.11.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@graphiql/plugin-history': 0.0.2(@codemirror/language@6.0.0)(@emotion/is-prop-valid@1.4.0)(@types/node@22.13.14)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(graphql-ws@6.0.4(graphql@16.11.0)(ws@8.21.0))(graphql@16.11.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@graphiql/react': 0.32.0(@codemirror/language@6.0.0)(@emotion/is-prop-valid@1.4.0)(@types/node@22.13.14)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(graphql-ws@6.0.4(graphql@16.11.0)(ws@8.21.0))(graphql@16.11.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) graphql: 16.11.0 react: 19.2.6 react-compiler-runtime: 19.1.0-rc.1(react@19.2.6) @@ -30180,13 +30418,13 @@ snapshots: mdurl@2.0.0: {} - mdx-bundler@10.0.2(esbuild@0.28.1)(supports-color@8.1.1): + mdx-bundler@10.0.2(esbuild@0.20.2)(supports-color@8.1.1): dependencies: '@babel/runtime': 7.26.10 - '@esbuild-plugins/node-resolve': 0.2.2(esbuild@0.28.1)(supports-color@8.1.1) + '@esbuild-plugins/node-resolve': 0.2.2(esbuild@0.20.2)(supports-color@8.1.1) '@fal-works/esbuild-plugin-global-externals': 2.1.2 - '@mdx-js/esbuild': 3.0.1(esbuild@0.28.1)(supports-color@8.1.1) - esbuild: 0.28.1 + '@mdx-js/esbuild': 3.0.1(esbuild@0.20.2)(supports-color@8.1.1) + esbuild: 0.20.2 gray-matter: 4.0.3 remark-frontmatter: 5.0.0(supports-color@8.1.1) remark-mdx-frontmatter: 4.0.0 @@ -30996,7 +31234,7 @@ snapshots: dependencies: '@bundled-es-modules/cookie': 2.0.1 '@bundled-es-modules/statuses': 1.0.1 - '@inquirer/confirm': 5.1.8(@types/node@22.13.14) + '@inquirer/confirm': 5.1.21(@types/node@22.13.14) '@mswjs/interceptors': 0.39.7 '@open-draft/deferred-promise': 2.2.0 '@types/cookie': 0.6.0 @@ -31063,11 +31301,11 @@ snapshots: neo-async@2.6.2: {} - next-contentlayer2@0.4.6(contentlayer2@0.4.6(esbuild@0.28.1)(markdown-wasm@1.2.0)(supports-color@8.1.1))(esbuild@0.28.1)(markdown-wasm@1.2.0)(next@16.2.6(@opentelemetry/api@1.9.1)(@playwright/test@1.59.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.77.4))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(supports-color@8.1.1): + next-contentlayer2@0.4.6(contentlayer2@0.4.6(esbuild@0.20.2)(markdown-wasm@1.2.0)(supports-color@8.1.1))(esbuild@0.20.2)(markdown-wasm@1.2.0)(next@16.2.6(@opentelemetry/api@1.9.1)(@playwright/test@1.59.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.77.4))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(supports-color@8.1.1): dependencies: - '@contentlayer2/core': 0.4.3(esbuild@0.28.1)(markdown-wasm@1.2.0)(supports-color@8.1.1) + '@contentlayer2/core': 0.4.3(esbuild@0.20.2)(markdown-wasm@1.2.0)(supports-color@8.1.1) '@contentlayer2/utils': 0.4.3 - contentlayer2: 0.4.6(esbuild@0.28.1)(markdown-wasm@1.2.0)(supports-color@8.1.1) + contentlayer2: 0.4.6(esbuild@0.20.2)(markdown-wasm@1.2.0)(supports-color@8.1.1) next: 16.2.6(@babel/core@7.29.7(supports-color@8.1.1))(@opentelemetry/api@1.9.1)(@playwright/test@1.59.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.77.4) react: 19.2.6 react-dom: 19.2.6(react@19.2.6) @@ -31097,7 +31335,7 @@ snapshots: dependencies: js-yaml-loader: 1.2.2 - next-router-mock@0.9.13(next@16.2.6(@babel/core@7.29.7(supports-color@8.1.1))(@opentelemetry/api@1.9.1)(@playwright/test@1.59.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.77.4))(react@19.2.6): + next-router-mock@0.9.13(next@16.2.6(@opentelemetry/api@1.9.1)(@playwright/test@1.59.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.77.4))(react@19.2.6): dependencies: next: 16.2.6(@babel/core@7.29.7(supports-color@8.1.1))(@opentelemetry/api@1.9.1)(@playwright/test@1.59.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(sass@1.77.4) react: 19.2.6 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index ea5c77a993edc..196e8c154a88f 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -14,11 +14,11 @@ catalog: '@monaco-editor/react': ^4.7.0 '@sentry/nextjs': ^10.59.0 '@sentry/tanstackstart-react': ^10.59.0 - '@supabase/auth-js': 2.110.6 - '@supabase/postgrest-js': 2.110.6 - '@supabase/realtime-js': 2.110.6 + '@supabase/auth-js': 2.110.8 + '@supabase/postgrest-js': 2.110.8 + '@supabase/realtime-js': 2.110.8 '@supabase/ssr': 0.10.2 - '@supabase/supabase-js': 2.110.6 + '@supabase/supabase-js': 2.110.8 '@tanstack/react-router': ^1.169.2 '@tanstack/react-start': ^1.167.65 '@tanstack/react-table': ^8.21.3 From efed6b5c6a3fb33f9844916e12920a5f32b3cf25 Mon Sep 17 00:00:00 2001 From: Ivan Vasilov Date: Wed, 22 Jul 2026 13:57:03 +0200 Subject: [PATCH 03/14] chore: Server monaco editor from Cloudflare (#47973) How to test: - Editor should load and work in the SQL Editor - Search for JS bundles `https://cdnjs.cloudflare.com/*` in the preview to verify that's it's loaded from a CDN - Check in the local build whether the Monaco editor is loaded from the base URL (have to do it locally, SQL Editor doesn't work on the self-hosted Vercel deployment) ## Summary by CodeRabbit * **Performance** * Improved delivery of Studio assets through CDN-based URLs in supported environments. * Updated the Monaco editor to load assets from the configured CDN when available, with a local fallback. * **Reliability** * Added support for explicitly enabling or disabling CDN asset delivery across environments. --- apps/studio/lib/configure-monaco-loader.ts | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/apps/studio/lib/configure-monaco-loader.ts b/apps/studio/lib/configure-monaco-loader.ts index 6ed89b095d7c5..fefbd0f38b70c 100644 --- a/apps/studio/lib/configure-monaco-loader.ts +++ b/apps/studio/lib/configure-monaco-loader.ts @@ -1,19 +1,20 @@ import { loader } from '@monaco-editor/react' -import { BASE_PATH } from '@/lib/constants' +import { BASE_PATH, IS_PLATFORM } from '@/lib/constants' -// [Ivan] Serve the Monaco assets locally from the public folder (see #47182, which -// dropped CDN loading in every environment and re-nested the assets under `vs/`). The -// worker bootstrap (vs/base/worker/workerMain.js) loads the language workers (e.g. -// tsWorker.js) via fetch() from inside the web worker. A root-relative path fails to -// resolve there in some browsers (Firefox throws "... is not a valid URL"), so we point -// `vs` at an absolute URL including the origin. Guarded on `window` since callers are -// also evaluated during SSR (where `window` is undefined and there's no editor to mount). +// [Ivan] Serve the Monaco assets locally from the public folder for self-hosted deployments, but use the CDN for +// the platform deployment to reduce bundle size and improve caching. // // Shared by both runtime entry points — `pages/_app.tsx` (Next) and // `routes/__root.tsx` (TanStack) — so the asset path can't drift between them. export function configureMonacoLoader() { if (typeof window !== 'undefined') { - loader.config({ paths: { vs: `${window.location.origin}${BASE_PATH}/monaco-editor/vs` } }) + loader.config({ + paths: { + vs: IS_PLATFORM + ? 'https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.52.2/min/vs' + : `${BASE_PATH}/monaco-editor/vs`, + }, + }) } } From 31878cabf6886cfb57a47061bc954a4fabec78fe Mon Sep 17 00:00:00 2001 From: Joshen Lim Date: Wed, 22 Jul 2026 20:30:04 +0800 Subject: [PATCH 04/14] Stop re-rendering UI if live mode is off (#48188) ## Context For the Database Connections page, we run a `useEffect` every second to re-render the UI so that the timestamps of each process' duration reflects real time. However, duration should stop counting if live mode is paused as otherwise it becomes inaccurate then. Also forces an immediate refetch of the database activities when live mode is re-enabled ## Summary by CodeRabbit * **Bug Fixes** * Improved live activity updates on the Database Connections page. * Pausing live mode now stops activity timestamp updates and refreshes. * Resuming live mode immediately reloads the latest activity and updates the UI to reflect live state. --- .../[ref]/observability/connections.tsx | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/apps/studio/pages/project/[ref]/observability/connections.tsx b/apps/studio/pages/project/[ref]/observability/connections.tsx index c8c5c5ed58e6f..da80b8b844f06 100644 --- a/apps/studio/pages/project/[ref]/observability/connections.tsx +++ b/apps/studio/pages/project/[ref]/observability/connections.tsx @@ -25,7 +25,11 @@ export const DatabaseConnections: NextPageWithLayout = () => { const [live, setLive] = useState(true) const [now, setNow] = useState(() => dayjs.utc()) - const { data, isPending: isLoadingActivity } = useDatabaseActivityQuery( + const { + data, + isPending: isLoadingActivity, + refetch: refetchActivity, + } = useDatabaseActivityQuery( { projectRef: project?.ref, connectionString: project?.connectionString, @@ -51,9 +55,10 @@ export const DatabaseConnections: NextPageWithLayout = () => { // [Joshen] Just to trigger a UI re-render for the duration to be "live" useEffect(() => { + if (!live) return const interval = setInterval(() => setNow(dayjs.utc()), 1000) return () => clearInterval(interval) - }, []) + }, [live]) return ( @@ -77,7 +82,14 @@ export const DatabaseConnections: NextPageWithLayout = () => {