diff --git a/apps/admin/.env.example b/apps/admin/.env.example index 15d7a36a9d..59663aa673 100644 --- a/apps/admin/.env.example +++ b/apps/admin/.env.example @@ -1,12 +1,12 @@ -NEXT_PUBLIC_API_BASE_URL="http://localhost:8000" +VITE_API_BASE_URL="http://localhost:8000" -NEXT_PUBLIC_WEB_BASE_URL="http://localhost:3000" +VITE_WEB_BASE_URL="http://localhost:3000" -NEXT_PUBLIC_ADMIN_BASE_URL="http://localhost:3001" -NEXT_PUBLIC_ADMIN_BASE_PATH="/god-mode" +VITE_ADMIN_BASE_URL="http://localhost:3001" +VITE_ADMIN_BASE_PATH="/god-mode" -NEXT_PUBLIC_SPACE_BASE_URL="http://localhost:3002" -NEXT_PUBLIC_SPACE_BASE_PATH="/spaces" +VITE_SPACE_BASE_URL="http://localhost:3002" +VITE_SPACE_BASE_PATH="/spaces" -NEXT_PUBLIC_LIVE_BASE_URL="http://localhost:3100" -NEXT_PUBLIC_LIVE_BASE_PATH="/live" +VITE_LIVE_BASE_URL="http://localhost:3100" +VITE_LIVE_BASE_PATH="/live" diff --git a/apps/admin/Dockerfile.admin b/apps/admin/Dockerfile.admin index 1cb7a4cb63..05549126c1 100644 --- a/apps/admin/Dockerfile.admin +++ b/apps/admin/Dockerfile.admin @@ -28,35 +28,35 @@ FROM base AS installer ENV NODE_ENV=production # Public envs required at build time (pick up via process.env) -ARG NEXT_PUBLIC_API_BASE_URL="" -ENV NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL -ARG NEXT_PUBLIC_API_BASE_PATH="/api" -ENV NEXT_PUBLIC_API_BASE_PATH=$NEXT_PUBLIC_API_BASE_PATH +ARG VITE_API_BASE_URL="" +ENV VITE_API_BASE_URL=$VITE_API_BASE_URL +ARG VITE_API_BASE_PATH="/api" +ENV VITE_API_BASE_PATH=$VITE_API_BASE_PATH -ARG NEXT_PUBLIC_ADMIN_BASE_URL="" -ENV NEXT_PUBLIC_ADMIN_BASE_URL=$NEXT_PUBLIC_ADMIN_BASE_URL -ARG NEXT_PUBLIC_ADMIN_BASE_PATH="/god-mode" -ENV NEXT_PUBLIC_ADMIN_BASE_PATH=$NEXT_PUBLIC_ADMIN_BASE_PATH +ARG VITE_ADMIN_BASE_URL="" +ENV VITE_ADMIN_BASE_URL=$VITE_ADMIN_BASE_URL +ARG VITE_ADMIN_BASE_PATH="/god-mode" +ENV VITE_ADMIN_BASE_PATH=$VITE_ADMIN_BASE_PATH -ARG NEXT_PUBLIC_SPACE_BASE_URL="" -ENV NEXT_PUBLIC_SPACE_BASE_URL=$NEXT_PUBLIC_SPACE_BASE_URL -ARG NEXT_PUBLIC_SPACE_BASE_PATH="/spaces" -ENV NEXT_PUBLIC_SPACE_BASE_PATH=$NEXT_PUBLIC_SPACE_BASE_PATH +ARG VITE_SPACE_BASE_URL="" +ENV VITE_SPACE_BASE_URL=$VITE_SPACE_BASE_URL +ARG VITE_SPACE_BASE_PATH="/spaces" +ENV VITE_SPACE_BASE_PATH=$VITE_SPACE_BASE_PATH -ARG NEXT_PUBLIC_LIVE_BASE_URL="" -ENV NEXT_PUBLIC_LIVE_BASE_URL=$NEXT_PUBLIC_LIVE_BASE_URL -ARG NEXT_PUBLIC_LIVE_BASE_PATH="/live" -ENV NEXT_PUBLIC_LIVE_BASE_PATH=$NEXT_PUBLIC_LIVE_BASE_PATH +ARG VITE_LIVE_BASE_URL="" +ENV VITE_LIVE_BASE_URL=$VITE_LIVE_BASE_URL +ARG VITE_LIVE_BASE_PATH="/live" +ENV VITE_LIVE_BASE_PATH=$VITE_LIVE_BASE_PATH -ARG NEXT_PUBLIC_WEB_BASE_URL="" -ENV NEXT_PUBLIC_WEB_BASE_URL=$NEXT_PUBLIC_WEB_BASE_URL -ARG NEXT_PUBLIC_WEB_BASE_PATH="" -ENV NEXT_PUBLIC_WEB_BASE_PATH=$NEXT_PUBLIC_WEB_BASE_PATH +ARG VITE_WEB_BASE_URL="" +ENV VITE_WEB_BASE_URL=$VITE_WEB_BASE_URL +ARG VITE_WEB_BASE_PATH="" +ENV VITE_WEB_BASE_PATH=$VITE_WEB_BASE_PATH -ARG NEXT_PUBLIC_WEBSITE_URL="https://plane.so" -ENV NEXT_PUBLIC_WEBSITE_URL=$NEXT_PUBLIC_WEBSITE_URL -ARG NEXT_PUBLIC_SUPPORT_EMAIL="support@plane.so" -ENV NEXT_PUBLIC_SUPPORT_EMAIL=$NEXT_PUBLIC_SUPPORT_EMAIL +ARG VITE_WEBSITE_URL="https://plane.so" +ENV VITE_WEBSITE_URL=$VITE_WEBSITE_URL +ARG VITE_SUPPORT_EMAIL="support@plane.so" +ENV VITE_SUPPORT_EMAIL=$VITE_SUPPORT_EMAIL COPY .gitignore .gitignore COPY --from=builder /app/out/json/ . diff --git a/apps/admin/Dockerfile.dev b/apps/admin/Dockerfile.dev index 0b82669c4b..f5dae8c080 100644 --- a/apps/admin/Dockerfile.dev +++ b/apps/admin/Dockerfile.dev @@ -8,7 +8,7 @@ COPY . . RUN corepack enable pnpm && pnpm add -g turbo RUN pnpm install -ENV NEXT_PUBLIC_ADMIN_BASE_PATH="/god-mode" +ENV VITE_ADMIN_BASE_PATH="/god-mode" EXPOSE 3000 diff --git a/apps/admin/app/entry.client.tsx b/apps/admin/app/entry.client.tsx new file mode 100644 index 0000000000..82ea2d9381 --- /dev/null +++ b/apps/admin/app/entry.client.tsx @@ -0,0 +1,34 @@ +/* eslint-disable import/order */ +import * as Sentry from "@sentry/react-router"; +import { startTransition, StrictMode } from "react"; +import { hydrateRoot } from "react-dom/client"; +import { HydratedRouter } from "react-router/dom"; + +Sentry.init({ + dsn: process.env.VITE_SENTRY_DSN, + environment: process.env.VITE_SENTRY_ENVIRONMENT, + sendDefaultPii: process.env.VITE_SENTRY_SEND_DEFAULT_PII ? process.env.VITE_SENTRY_SEND_DEFAULT_PII === "1" : false, + release: process.env.VITE_APP_VERSION, + tracesSampleRate: process.env.VITE_SENTRY_TRACES_SAMPLE_RATE + ? parseFloat(process.env.VITE_SENTRY_TRACES_SAMPLE_RATE) + : 0.1, + profilesSampleRate: process.env.VITE_SENTRY_PROFILES_SAMPLE_RATE + ? parseFloat(process.env.VITE_SENTRY_PROFILES_SAMPLE_RATE) + : 0.1, + replaysSessionSampleRate: process.env.VITE_SENTRY_REPLAYS_SESSION_SAMPLE_RATE + ? parseFloat(process.env.VITE_SENTRY_REPLAYS_SESSION_SAMPLE_RATE) + : 0.1, + replaysOnErrorSampleRate: process.env.VITE_SENTRY_REPLAYS_ON_ERROR_SAMPLE_RATE + ? parseFloat(process.env.VITE_SENTRY_REPLAYS_ON_ERROR_SAMPLE_RATE) + : 1.0, + integrations: [], +}); + +startTransition(() => { + hydrateRoot( + document, + + + + ); +}); diff --git a/apps/admin/app/root.tsx b/apps/admin/app/root.tsx index 657b96094d..89415106d9 100644 --- a/apps/admin/app/root.tsx +++ b/apps/admin/app/root.tsx @@ -1,4 +1,5 @@ import type { ReactNode } from "react"; +import * as Sentry from "@sentry/react-router"; import { Links, Meta, Outlet, Scripts } from "react-router"; import type { LinksFunction } from "react-router"; import appleTouchIcon from "@/app/assets/favicon/apple-touch-icon.png?url"; @@ -66,7 +67,11 @@ export function HydrateFallback() { ); } -export function ErrorBoundary() { +export function ErrorBoundary({ error }: Route.ErrorBoundaryProps) { + if (error) { + Sentry.captureException(error); + } + return (

Something went wrong.

diff --git a/apps/admin/package.json b/apps/admin/package.json index ad4ca6f0bf..959c1ce737 100644 --- a/apps/admin/package.json +++ b/apps/admin/package.json @@ -28,11 +28,10 @@ "@plane/ui": "workspace:*", "@plane/utils": "workspace:*", "@react-router/node": "^7.9.3", + "@sentry/react-router": "catalog:", "@tanstack/react-virtual": "^3.13.12", "@tanstack/virtual-core": "^3.13.12", - "@vercel/edge": "1.2.2", "axios": "catalog:", - "dotenv": "^16.4.5", "isbot": "^5.1.31", "lodash-es": "catalog:", "lucide-react": "catalog:", diff --git a/apps/admin/react-router.config.ts b/apps/admin/react-router.config.ts index 1f7815ab36..a4cef08832 100644 --- a/apps/admin/react-router.config.ts +++ b/apps/admin/react-router.config.ts @@ -1,7 +1,7 @@ import type { Config } from "@react-router/dev/config"; import { joinUrlPath } from "@plane/utils"; -const basePath = joinUrlPath(process.env.NEXT_PUBLIC_ADMIN_BASE_PATH ?? "", "/") ?? "/"; +const basePath = joinUrlPath(process.env.VITE_ADMIN_BASE_PATH ?? "", "/") ?? "/"; export default { appDirectory: "app", diff --git a/apps/admin/vite.config.ts b/apps/admin/vite.config.ts index b343ee347e..8cf2be7f30 100644 --- a/apps/admin/vite.config.ts +++ b/apps/admin/vite.config.ts @@ -1,26 +1,23 @@ import path from "node:path"; import { reactRouter } from "@react-router/dev/vite"; -import dotenv from "dotenv"; import { defineConfig } from "vite"; import tsconfigPaths from "vite-tsconfig-paths"; import { joinUrlPath } from "@plane/utils"; -dotenv.config({ path: path.resolve(__dirname, ".env") }); - -// Automatically expose all environment variables prefixed with NEXT_PUBLIC_ -const publicEnv = Object.keys(process.env) - .filter((key) => key.startsWith("NEXT_PUBLIC_")) - .reduce>((acc, key) => { - acc[key] = process.env[key] ?? ""; - return acc; +// Expose only vars starting with VITE_ +const viteEnv = Object.keys(process.env) + .filter((k) => k.startsWith("VITE_")) + .reduce>((a, k) => { + a[k] = process.env[k] ?? ""; + return a; }, {}); -const basePath = joinUrlPath(process.env.NEXT_PUBLIC_ADMIN_BASE_PATH ?? "", "/") ?? "/"; +const basePath = joinUrlPath(process.env.VITE_ADMIN_BASE_PATH ?? "", "/") ?? "/"; export default defineConfig(() => ({ base: basePath, define: { - "process.env": JSON.stringify(publicEnv), + "process.env": JSON.stringify(viteEnv), }, build: { assetsInlineLimit: 0, diff --git a/apps/space/.env.example b/apps/space/.env.example index 15d7a36a9d..59663aa673 100644 --- a/apps/space/.env.example +++ b/apps/space/.env.example @@ -1,12 +1,12 @@ -NEXT_PUBLIC_API_BASE_URL="http://localhost:8000" +VITE_API_BASE_URL="http://localhost:8000" -NEXT_PUBLIC_WEB_BASE_URL="http://localhost:3000" +VITE_WEB_BASE_URL="http://localhost:3000" -NEXT_PUBLIC_ADMIN_BASE_URL="http://localhost:3001" -NEXT_PUBLIC_ADMIN_BASE_PATH="/god-mode" +VITE_ADMIN_BASE_URL="http://localhost:3001" +VITE_ADMIN_BASE_PATH="/god-mode" -NEXT_PUBLIC_SPACE_BASE_URL="http://localhost:3002" -NEXT_PUBLIC_SPACE_BASE_PATH="/spaces" +VITE_SPACE_BASE_URL="http://localhost:3002" +VITE_SPACE_BASE_PATH="/spaces" -NEXT_PUBLIC_LIVE_BASE_URL="http://localhost:3100" -NEXT_PUBLIC_LIVE_BASE_PATH="/live" +VITE_LIVE_BASE_URL="http://localhost:3100" +VITE_LIVE_BASE_PATH="/live" diff --git a/apps/space/Dockerfile.dev b/apps/space/Dockerfile.dev index b915aad085..20ac137da8 100644 --- a/apps/space/Dockerfile.dev +++ b/apps/space/Dockerfile.dev @@ -12,7 +12,7 @@ RUN pnpm install EXPOSE 3002 -ENV NEXT_PUBLIC_SPACE_BASE_PATH="/spaces" +ENV VITE_SPACE_BASE_PATH="/spaces" VOLUME [ "/app/node_modules", "/app/apps/space/node_modules"] diff --git a/apps/space/Dockerfile.space b/apps/space/Dockerfile.space index f6787619ec..cb2d925884 100644 --- a/apps/space/Dockerfile.space +++ b/apps/space/Dockerfile.space @@ -28,35 +28,36 @@ FROM base AS installer ENV NODE_ENV=production # Public envs required at build time (pick up via process.env) -ARG NEXT_PUBLIC_API_BASE_URL="" -ENV NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL -ARG NEXT_PUBLIC_API_BASE_PATH="/api" -ENV NEXT_PUBLIC_API_BASE_PATH=$NEXT_PUBLIC_API_BASE_PATH +ARG VITE_API_BASE_URL="" +ENV VITE_API_BASE_URL=$VITE_API_BASE_URL +ARG VITE_API_BASE_PATH="/api" +ENV VITE_API_BASE_PATH=$VITE_API_BASE_PATH -ARG NEXT_PUBLIC_ADMIN_BASE_URL="" -ENV NEXT_PUBLIC_ADMIN_BASE_URL=$NEXT_PUBLIC_ADMIN_BASE_URL -ARG NEXT_PUBLIC_ADMIN_BASE_PATH="/god-mode" -ENV NEXT_PUBLIC_ADMIN_BASE_PATH=$NEXT_PUBLIC_ADMIN_BASE_PATH +ARG VITE_ADMIN_BASE_URL="" +ENV VITE_ADMIN_BASE_URL=$VITE_ADMIN_BASE_URL +ARG VITE_ADMIN_BASE_PATH="/god-mode" +ENV VITE_ADMIN_BASE_PATH=$VITE_ADMIN_BASE_PATH -ARG NEXT_PUBLIC_SPACE_BASE_URL="" -ENV NEXT_PUBLIC_SPACE_BASE_URL=$NEXT_PUBLIC_SPACE_BASE_URL -ARG NEXT_PUBLIC_SPACE_BASE_PATH="/spaces" -ENV NEXT_PUBLIC_SPACE_BASE_PATH=$NEXT_PUBLIC_SPACE_BASE_PATH +ARG VITE_SPACE_BASE_URL="" +ENV VITE_SPACE_BASE_URL=$VITE_SPACE_BASE_URL +ARG VITE_SPACE_BASE_PATH="/spaces" +ENV VITE_SPACE_BASE_PATH=$VITE_SPACE_BASE_PATH -ARG NEXT_PUBLIC_LIVE_BASE_URL="" -ENV NEXT_PUBLIC_LIVE_BASE_URL=$NEXT_PUBLIC_LIVE_BASE_URL -ARG NEXT_PUBLIC_LIVE_BASE_PATH="/live" -ENV NEXT_PUBLIC_LIVE_BASE_PATH=$NEXT_PUBLIC_LIVE_BASE_PATH +ARG VITE_LIVE_BASE_URL="" +ENV VITE_LIVE_BASE_URL=$VITE_LIVE_BASE_URL +ARG VITE_LIVE_BASE_PATH="/live" +ENV VITE_LIVE_BASE_PATH=$VITE_LIVE_BASE_PATH -ARG NEXT_PUBLIC_WEB_BASE_URL="" -ENV NEXT_PUBLIC_WEB_BASE_URL=$NEXT_PUBLIC_WEB_BASE_URL -ARG NEXT_PUBLIC_WEB_BASE_PATH="" -ENV NEXT_PUBLIC_WEB_BASE_PATH=$NEXT_PUBLIC_WEB_BASE_PATH +ARG VITE_WEB_BASE_URL="" +ENV VITE_WEB_BASE_URL=$VITE_WEB_BASE_URL +ARG VITE_WEB_BASE_PATH="" +ENV VITE_WEB_BASE_PATH=$VITE_WEB_BASE_PATH -ARG NEXT_PUBLIC_WEBSITE_URL="https://plane.so" -ENV NEXT_PUBLIC_WEBSITE_URL=$NEXT_PUBLIC_WEBSITE_URL -ARG NEXT_PUBLIC_SUPPORT_EMAIL="support@plane.so" -ENV NEXT_PUBLIC_SUPPORT_EMAIL=$NEXT_PUBLIC_SUPPORT_EMAIL +ARG VITE_WEBSITE_URL="https://plane.so" +ENV VITE_WEBSITE_URL=$VITE_WEBSITE_URL + +ARG VITE_SUPPORT_EMAIL="support@plane.so" +ENV VITE_SUPPORT_EMAIL=$VITE_SUPPORT_EMAIL COPY .gitignore .gitignore COPY --from=builder /app/out/json/ . diff --git a/apps/space/app/entry.client.tsx b/apps/space/app/entry.client.tsx new file mode 100644 index 0000000000..82ea2d9381 --- /dev/null +++ b/apps/space/app/entry.client.tsx @@ -0,0 +1,34 @@ +/* eslint-disable import/order */ +import * as Sentry from "@sentry/react-router"; +import { startTransition, StrictMode } from "react"; +import { hydrateRoot } from "react-dom/client"; +import { HydratedRouter } from "react-router/dom"; + +Sentry.init({ + dsn: process.env.VITE_SENTRY_DSN, + environment: process.env.VITE_SENTRY_ENVIRONMENT, + sendDefaultPii: process.env.VITE_SENTRY_SEND_DEFAULT_PII ? process.env.VITE_SENTRY_SEND_DEFAULT_PII === "1" : false, + release: process.env.VITE_APP_VERSION, + tracesSampleRate: process.env.VITE_SENTRY_TRACES_SAMPLE_RATE + ? parseFloat(process.env.VITE_SENTRY_TRACES_SAMPLE_RATE) + : 0.1, + profilesSampleRate: process.env.VITE_SENTRY_PROFILES_SAMPLE_RATE + ? parseFloat(process.env.VITE_SENTRY_PROFILES_SAMPLE_RATE) + : 0.1, + replaysSessionSampleRate: process.env.VITE_SENTRY_REPLAYS_SESSION_SAMPLE_RATE + ? parseFloat(process.env.VITE_SENTRY_REPLAYS_SESSION_SAMPLE_RATE) + : 0.1, + replaysOnErrorSampleRate: process.env.VITE_SENTRY_REPLAYS_ON_ERROR_SAMPLE_RATE + ? parseFloat(process.env.VITE_SENTRY_REPLAYS_ON_ERROR_SAMPLE_RATE) + : 1.0, + integrations: [], +}); + +startTransition(() => { + hydrateRoot( + document, + + + + ); +}); diff --git a/apps/space/app/issues/[anchor]/layout.tsx b/apps/space/app/issues/[anchor]/layout.tsx index a37c8b23f6..60a171bcf5 100644 --- a/apps/space/app/issues/[anchor]/layout.tsx +++ b/apps/space/app/issues/[anchor]/layout.tsx @@ -33,7 +33,7 @@ export async function loader({ params }: Route.LoaderArgs) { } try { - const response = await fetch(`${process.env.NEXT_PUBLIC_API_BASE_URL}/api/public/anchor/${anchor}/meta/`); + const response = await fetch(`${process.env.VITE_API_BASE_URL}/api/public/anchor/${anchor}/meta/`); if (!response.ok) { return { metadata: null }; diff --git a/apps/space/app/root.tsx b/apps/space/app/root.tsx index 25f3e44710..85c385d095 100644 --- a/apps/space/app/root.tsx +++ b/apps/space/app/root.tsx @@ -1,3 +1,4 @@ +import * as Sentry from "@sentry/react-router"; import { Links, Meta, Outlet, Scripts } from "react-router"; import type { HeadersFunction, LinksFunction } from "react-router"; // assets @@ -79,6 +80,10 @@ export function HydrateFallback() { ); } -export function ErrorBoundary() { +export function ErrorBoundary({ error }: Route.ErrorBoundaryProps) { + if (error) { + Sentry.captureException(error); + } + return ; } diff --git a/apps/space/helpers/authentication.helper.tsx b/apps/space/helpers/authentication.helper.tsx index b4878b12c5..d2472665de 100644 --- a/apps/space/helpers/authentication.helper.tsx +++ b/apps/space/helpers/authentication.helper.tsx @@ -1,6 +1,6 @@ import Link from "next/link"; // helpers -import { SUPPORT_EMAIL } from "./common.helper"; +import { SUPPORT_EMAIL } from "@plane/constants"; export enum EPageTypes { INIT = "INIT", diff --git a/apps/space/helpers/common.helper.ts b/apps/space/helpers/common.helper.ts index 787a64f546..1f2c22b024 100644 --- a/apps/space/helpers/common.helper.ts +++ b/apps/space/helpers/common.helper.ts @@ -1,4 +1,2 @@ -export const SUPPORT_EMAIL = process.env.NEXT_PUBLIC_SUPPORT_EMAIL || ""; - export const resolveGeneralTheme = (resolvedTheme: string | undefined) => resolvedTheme?.includes("light") ? "light" : resolvedTheme?.includes("dark") ? "dark" : "system"; diff --git a/apps/space/package.json b/apps/space/package.json index d22651da17..32027ee652 100644 --- a/apps/space/package.json +++ b/apps/space/package.json @@ -32,10 +32,10 @@ "@popperjs/core": "^2.11.8", "@react-router/node": "^7.9.3", "@react-router/serve": "^7.9.5", + "@sentry/react-router": "catalog:", "axios": "catalog:", "clsx": "^2.0.0", "date-fns": "^4.1.0", - "dotenv": "^16.4.5", "isbot": "^5.1.31", "lodash-es": "catalog:", "lucide-react": "catalog:", diff --git a/apps/space/react-router.config.ts b/apps/space/react-router.config.ts index 6b2adf937e..78a1743988 100644 --- a/apps/space/react-router.config.ts +++ b/apps/space/react-router.config.ts @@ -1,7 +1,7 @@ import type { Config } from "@react-router/dev/config"; import { joinUrlPath } from "@plane/utils"; -const basePath = joinUrlPath(process.env.NEXT_PUBLIC_SPACE_BASE_PATH ?? "", "/") ?? "/"; +const basePath = joinUrlPath(process.env.VITE_SPACE_BASE_PATH ?? "", "/") ?? "/"; export default { appDirectory: "app", diff --git a/apps/space/vite.config.ts b/apps/space/vite.config.ts index ce1389e81d..98cfc4e7d1 100644 --- a/apps/space/vite.config.ts +++ b/apps/space/vite.config.ts @@ -1,26 +1,23 @@ import path from "node:path"; import { reactRouter } from "@react-router/dev/vite"; -import dotenv from "dotenv"; import { defineConfig } from "vite"; import tsconfigPaths from "vite-tsconfig-paths"; import { joinUrlPath } from "@plane/utils"; -dotenv.config({ path: path.resolve(__dirname, ".env") }); - -// Automatically expose all environment variables prefixed with NEXT_PUBLIC_ -const publicEnv = Object.keys(process.env) - .filter((key) => key.startsWith("NEXT_PUBLIC_")) - .reduce>((acc, key) => { - acc[key] = process.env[key] ?? ""; - return acc; +// Expose only vars starting with VITE_ +const viteEnv = Object.keys(process.env) + .filter((k) => k.startsWith("VITE_")) + .reduce>((a, k) => { + a[k] = process.env[k] ?? ""; + return a; }, {}); -const basePath = joinUrlPath(process.env.NEXT_PUBLIC_SPACE_BASE_PATH ?? "", "/") ?? "/"; +const basePath = joinUrlPath(process.env.VITE_SPACE_BASE_PATH ?? "", "/") ?? "/"; export default defineConfig(() => ({ base: basePath, define: { - "process.env": JSON.stringify(publicEnv), + "process.env": JSON.stringify(viteEnv), }, build: { assetsInlineLimit: 0, diff --git a/apps/web/.env.example b/apps/web/.env.example index 15d7a36a9d..59663aa673 100644 --- a/apps/web/.env.example +++ b/apps/web/.env.example @@ -1,12 +1,12 @@ -NEXT_PUBLIC_API_BASE_URL="http://localhost:8000" +VITE_API_BASE_URL="http://localhost:8000" -NEXT_PUBLIC_WEB_BASE_URL="http://localhost:3000" +VITE_WEB_BASE_URL="http://localhost:3000" -NEXT_PUBLIC_ADMIN_BASE_URL="http://localhost:3001" -NEXT_PUBLIC_ADMIN_BASE_PATH="/god-mode" +VITE_ADMIN_BASE_URL="http://localhost:3001" +VITE_ADMIN_BASE_PATH="/god-mode" -NEXT_PUBLIC_SPACE_BASE_URL="http://localhost:3002" -NEXT_PUBLIC_SPACE_BASE_PATH="/spaces" +VITE_SPACE_BASE_URL="http://localhost:3002" +VITE_SPACE_BASE_PATH="/spaces" -NEXT_PUBLIC_LIVE_BASE_URL="http://localhost:3100" -NEXT_PUBLIC_LIVE_BASE_PATH="/live" +VITE_LIVE_BASE_URL="http://localhost:3100" +VITE_LIVE_BASE_PATH="/live" diff --git a/apps/web/Dockerfile.web b/apps/web/Dockerfile.web index ff5ef65dd1..b08881cf4d 100644 --- a/apps/web/Dockerfile.web +++ b/apps/web/Dockerfile.web @@ -41,29 +41,29 @@ COPY --from=builder /app/out/full/ . COPY turbo.json turbo.json RUN --mount=type=cache,id=pnpm-store,target=/pnpm/store CI=true pnpm install --offline --frozen-lockfile --store-dir=/pnpm/store -ARG NEXT_PUBLIC_API_BASE_URL="" -ENV NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL +ARG VITE_API_BASE_URL="" +ENV VITE_API_BASE_URL=$VITE_API_BASE_URL -ARG NEXT_PUBLIC_ADMIN_BASE_URL="" -ENV NEXT_PUBLIC_ADMIN_BASE_URL=$NEXT_PUBLIC_ADMIN_BASE_URL +ARG VITE_ADMIN_BASE_URL="" +ENV VITE_ADMIN_BASE_URL=$VITE_ADMIN_BASE_URL -ARG NEXT_PUBLIC_ADMIN_BASE_PATH="/god-mode" -ENV NEXT_PUBLIC_ADMIN_BASE_PATH=$NEXT_PUBLIC_ADMIN_BASE_PATH +ARG VITE_ADMIN_BASE_PATH="/god-mode" +ENV VITE_ADMIN_BASE_PATH=$VITE_ADMIN_BASE_PATH -ARG NEXT_PUBLIC_LIVE_BASE_URL="" -ENV NEXT_PUBLIC_LIVE_BASE_URL=$NEXT_PUBLIC_LIVE_BASE_URL +ARG VITE_LIVE_BASE_URL="" +ENV VITE_LIVE_BASE_URL=$VITE_LIVE_BASE_URL -ARG NEXT_PUBLIC_LIVE_BASE_PATH="/live" -ENV NEXT_PUBLIC_LIVE_BASE_PATH=$NEXT_PUBLIC_LIVE_BASE_PATH +ARG VITE_LIVE_BASE_PATH="/live" +ENV VITE_LIVE_BASE_PATH=$VITE_LIVE_BASE_PATH -ARG NEXT_PUBLIC_SPACE_BASE_URL="" -ENV NEXT_PUBLIC_SPACE_BASE_URL=$NEXT_PUBLIC_SPACE_BASE_URL +ARG VITE_SPACE_BASE_URL="" +ENV VITE_SPACE_BASE_URL=$VITE_SPACE_BASE_URL -ARG NEXT_PUBLIC_SPACE_BASE_PATH="/spaces" -ENV NEXT_PUBLIC_SPACE_BASE_PATH=$NEXT_PUBLIC_SPACE_BASE_PATH +ARG VITE_SPACE_BASE_PATH="/spaces" +ENV VITE_SPACE_BASE_PATH=$VITE_SPACE_BASE_PATH -ARG NEXT_PUBLIC_WEB_BASE_URL="" -ENV NEXT_PUBLIC_WEB_BASE_URL=$NEXT_PUBLIC_WEB_BASE_URL +ARG VITE_WEB_BASE_URL="" +ENV VITE_WEB_BASE_URL=$VITE_WEB_BASE_URL ENV NEXT_TELEMETRY_DISABLED=1 ENV TURBO_TELEMETRY_DISABLED=1 diff --git a/apps/web/app/(all)/layout.preload.tsx b/apps/web/app/(all)/layout.preload.tsx index e44c0e4002..266df5a1cc 100644 --- a/apps/web/app/(all)/layout.preload.tsx +++ b/apps/web/app/(all)/layout.preload.tsx @@ -9,11 +9,11 @@ // }; // const urls = [ -// `${process.env.NEXT_PUBLIC_API_BASE_URL}/api/instances/`, -// `${process.env.NEXT_PUBLIC_API_BASE_URL}/api/users/me/`, -// `${process.env.NEXT_PUBLIC_API_BASE_URL}/api/users/me/profile/`, -// `${process.env.NEXT_PUBLIC_API_BASE_URL}/api/users/me/settings/`, -// `${process.env.NEXT_PUBLIC_API_BASE_URL}/api/users/me/workspaces/?v=${Date.now()}`, +// `${process.env.VITE_API_BASE_URL}/api/instances/`, +// `${process.env.VITE_API_BASE_URL}/api/users/me/`, +// `${process.env.VITE_API_BASE_URL}/api/users/me/profile/`, +// `${process.env.VITE_API_BASE_URL}/api/users/me/settings/`, +// `${process.env.VITE_API_BASE_URL}/api/users/me/workspaces/?v=${Date.now()}`, // ]; // urls.forEach((url) => preloadItem(url)); diff --git a/apps/web/app/entry.client.tsx b/apps/web/app/entry.client.tsx new file mode 100644 index 0000000000..82ea2d9381 --- /dev/null +++ b/apps/web/app/entry.client.tsx @@ -0,0 +1,34 @@ +/* eslint-disable import/order */ +import * as Sentry from "@sentry/react-router"; +import { startTransition, StrictMode } from "react"; +import { hydrateRoot } from "react-dom/client"; +import { HydratedRouter } from "react-router/dom"; + +Sentry.init({ + dsn: process.env.VITE_SENTRY_DSN, + environment: process.env.VITE_SENTRY_ENVIRONMENT, + sendDefaultPii: process.env.VITE_SENTRY_SEND_DEFAULT_PII ? process.env.VITE_SENTRY_SEND_DEFAULT_PII === "1" : false, + release: process.env.VITE_APP_VERSION, + tracesSampleRate: process.env.VITE_SENTRY_TRACES_SAMPLE_RATE + ? parseFloat(process.env.VITE_SENTRY_TRACES_SAMPLE_RATE) + : 0.1, + profilesSampleRate: process.env.VITE_SENTRY_PROFILES_SAMPLE_RATE + ? parseFloat(process.env.VITE_SENTRY_PROFILES_SAMPLE_RATE) + : 0.1, + replaysSessionSampleRate: process.env.VITE_SENTRY_REPLAYS_SESSION_SAMPLE_RATE + ? parseFloat(process.env.VITE_SENTRY_REPLAYS_SESSION_SAMPLE_RATE) + : 0.1, + replaysOnErrorSampleRate: process.env.VITE_SENTRY_REPLAYS_ON_ERROR_SAMPLE_RATE + ? parseFloat(process.env.VITE_SENTRY_REPLAYS_ON_ERROR_SAMPLE_RATE) + : 1.0, + integrations: [], +}); + +startTransition(() => { + hydrateRoot( + document, + + + + ); +}); diff --git a/apps/web/app/layout.tsx b/apps/web/app/layout.tsx index d73d82d0dd..4cbf9aca92 100644 --- a/apps/web/app/layout.tsx +++ b/apps/web/app/layout.tsx @@ -50,7 +50,7 @@ export const meta = () => [ ]; export default function RootLayout({ children }: { children: React.ReactNode }) { - const isSessionRecorderEnabled = parseInt(process.env.NEXT_PUBLIC_ENABLE_SESSION_RECORDER || "0"); + const isSessionRecorderEnabled = parseInt(process.env.VITE_ENABLE_SESSION_RECORDER || "0"); return ( @@ -86,16 +86,16 @@ export default function RootLayout({ children }: { children: React.ReactNode })
- {process.env.NEXT_PUBLIC_PLAUSIBLE_DOMAIN && ( - )} diff --git a/apps/web/app/root.tsx b/apps/web/app/root.tsx index 2c4edebd5d..f0c29c5a37 100644 --- a/apps/web/app/root.tsx +++ b/apps/web/app/root.tsx @@ -1,4 +1,5 @@ import type { ReactNode } from "react"; +import * as Sentry from "@sentry/react-router"; import Script from "next/script"; import { Links, Meta, Outlet, Scripts } from "react-router"; import type { LinksFunction } from "react-router"; @@ -35,7 +36,7 @@ export const links: LinksFunction = () => [ ]; export function Layout({ children }: { children: ReactNode }) { - const isSessionRecorderEnabled = parseInt(process.env.NEXT_PUBLIC_ENABLE_SESSION_RECORDER || "0"); + const isSessionRecorderEnabled = parseInt(process.env.VITE_ENABLE_SESSION_RECORDER || "0"); return ( @@ -67,20 +68,16 @@ export function Layout({ children }: { children: ReactNode }) { - {process.env.NEXT_PUBLIC_PLAUSIBLE_DOMAIN && ( - )} @@ -127,5 +124,9 @@ export function HydrateFallback() { } export function ErrorBoundary({ error }: Route.ErrorBoundaryProps) { + if (error) { + Sentry.captureException(error); + } + return ; } diff --git a/apps/web/core/components/integration/github/select-repository.tsx b/apps/web/core/components/integration/github/select-repository.tsx index a294eb0a9f..45f21fc8e5 100644 --- a/apps/web/core/components/integration/github/select-repository.tsx +++ b/apps/web/core/components/integration/github/select-repository.tsx @@ -30,7 +30,7 @@ export const SelectRepository: React.FC = (props) => { const getKey = (pageIndex: number) => { if (!workspaceSlug || !integration) return; - return `${process.env.NEXT_PUBLIC_API_BASE_URL}/api/workspaces/${workspaceSlug}/workspace-integrations/${ + return `${process.env.VITE_API_BASE_URL}/api/workspaces/${workspaceSlug}/workspace-integrations/${ integration.id }/github-repositories/?page=${++pageIndex}`; }; diff --git a/apps/web/core/lib/posthog-provider.tsx b/apps/web/core/lib/posthog-provider.tsx index 776d1dee77..84d65a172d 100644 --- a/apps/web/core/lib/posthog-provider.tsx +++ b/apps/web/core/lib/posthog-provider.tsx @@ -38,8 +38,7 @@ const PostHogProvider: FC = observer((props) => { ); const currentWorkspaceRole = getWorkspaceRoleByWorkspaceSlug(workspaceSlug?.toString()); const is_telemetry_enabled = instance?.is_telemetry_enabled || false; - const is_posthog_enabled = - process.env.NEXT_PUBLIC_POSTHOG_KEY && process.env.NEXT_PUBLIC_POSTHOG_HOST && is_telemetry_enabled; + const is_posthog_enabled = process.env.VITE_POSTHOG_KEY && process.env.VITE_POSTHOG_HOST && is_telemetry_enabled; useEffect(() => { if (user && hydrated) { @@ -62,9 +61,9 @@ const PostHogProvider: FC = observer((props) => { }, [user, currentProjectRole, currentWorkspaceRole, currentWorkspace, hydrated]); useEffect(() => { - const posthogKey = process.env.NEXT_PUBLIC_POSTHOG_KEY; - const posthogHost = process.env.NEXT_PUBLIC_POSTHOG_HOST; - const isDebugMode = process.env.NEXT_PUBLIC_POSTHOG_DEBUG === "1"; + const posthogKey = process.env.VITE_POSTHOG_KEY; + const posthogHost = process.env.VITE_POSTHOG_HOST; + const isDebugMode = process.env.VITE_POSTHOG_DEBUG === "1"; if (posthogKey && posthogHost) { posthog.init(posthogKey, { api_host: posthogHost, diff --git a/apps/web/package.json b/apps/web/package.json index 3e5484c0eb..f674095723 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -37,13 +37,13 @@ "@posthog/react": "^1.4.0", "@react-pdf/renderer": "^3.4.5", "@react-router/node": "^7.9.3", + "@sentry/react-router": "catalog:", "@tanstack/react-table": "^8.21.3", "axios": "catalog:", "clsx": "^2.0.0", "cmdk": "^1.0.0", "comlink": "^4.4.1", "date-fns": "^4.1.0", - "dotenv": "^16.4.5", "emoji-picker-react": "^4.5.16", "export-to-csv": "^1.4.0", "isbot": "^5.1.31", diff --git a/apps/web/vite.config.ts b/apps/web/vite.config.ts index badb98b882..84fc105156 100644 --- a/apps/web/vite.config.ts +++ b/apps/web/vite.config.ts @@ -1,22 +1,19 @@ import path from "node:path"; import { reactRouter } from "@react-router/dev/vite"; -import dotenv from "dotenv"; import { defineConfig } from "vite"; import tsconfigPaths from "vite-tsconfig-paths"; -dotenv.config({ path: path.resolve(__dirname, ".env") }); - -// Automatically expose all environment variables prefixed with NEXT_PUBLIC_ -const publicEnv = Object.keys(process.env) - .filter((key) => key.startsWith("NEXT_PUBLIC_")) - .reduce>((acc, key) => { - acc[key] = process.env[key] ?? ""; - return acc; +// Expose only vars starting with VITE_ +const viteEnv = Object.keys(process.env) + .filter((k) => k.startsWith("VITE_")) + .reduce>((a, k) => { + a[k] = process.env[k] ?? ""; + return a; }, {}); export default defineConfig(() => ({ define: { - "process.env": JSON.stringify(publicEnv), + "process.env": JSON.stringify(viteEnv), }, build: { assetsInlineLimit: 0, diff --git a/packages/constants/src/endpoints.ts b/packages/constants/src/endpoints.ts index 3f7a4eeeeb..f077c1ff9a 100644 --- a/packages/constants/src/endpoints.ts +++ b/packages/constants/src/endpoints.ts @@ -1,26 +1,26 @@ -export const API_BASE_URL = process.env.NEXT_PUBLIC_API_BASE_URL || ""; -export const API_BASE_PATH = process.env.NEXT_PUBLIC_API_BASE_PATH || ""; +export const API_BASE_URL = process.env.VITE_API_BASE_URL || ""; +export const API_BASE_PATH = process.env.VITE_API_BASE_PATH || ""; export const API_URL = encodeURI(`${API_BASE_URL}${API_BASE_PATH}`); // God Mode Admin App Base Url -export const ADMIN_BASE_URL = process.env.NEXT_PUBLIC_ADMIN_BASE_URL || ""; -export const ADMIN_BASE_PATH = process.env.NEXT_PUBLIC_ADMIN_BASE_PATH || ""; +export const ADMIN_BASE_URL = process.env.VITE_ADMIN_BASE_URL || ""; +export const ADMIN_BASE_PATH = process.env.VITE_ADMIN_BASE_PATH || ""; export const GOD_MODE_URL = encodeURI(`${ADMIN_BASE_URL}${ADMIN_BASE_PATH}`); // Publish App Base Url -export const SPACE_BASE_URL = process.env.NEXT_PUBLIC_SPACE_BASE_URL || ""; -export const SPACE_BASE_PATH = process.env.NEXT_PUBLIC_SPACE_BASE_PATH || ""; +export const SPACE_BASE_URL = process.env.VITE_SPACE_BASE_URL || ""; +export const SPACE_BASE_PATH = process.env.VITE_SPACE_BASE_PATH || ""; export const SITES_URL = encodeURI(`${SPACE_BASE_URL}${SPACE_BASE_PATH}`); // Live App Base Url -export const LIVE_BASE_URL = process.env.NEXT_PUBLIC_LIVE_BASE_URL || ""; -export const LIVE_BASE_PATH = process.env.NEXT_PUBLIC_LIVE_BASE_PATH || ""; +export const LIVE_BASE_URL = process.env.VITE_LIVE_BASE_URL || ""; +export const LIVE_BASE_PATH = process.env.VITE_LIVE_BASE_PATH || ""; export const LIVE_URL = encodeURI(`${LIVE_BASE_URL}${LIVE_BASE_PATH}`); // Web App Base Url -export const WEB_BASE_URL = process.env.NEXT_PUBLIC_WEB_BASE_URL || ""; -export const WEB_BASE_PATH = process.env.NEXT_PUBLIC_WEB_BASE_PATH || ""; +export const WEB_BASE_URL = process.env.VITE_WEB_BASE_URL || ""; +export const WEB_BASE_PATH = process.env.VITE_WEB_BASE_PATH || ""; export const WEB_URL = encodeURI(`${WEB_BASE_URL}${WEB_BASE_PATH}`); // plane website url -export const WEBSITE_URL = process.env.NEXT_PUBLIC_WEBSITE_URL || "https://plane.so"; +export const WEBSITE_URL = process.env.VITE_WEBSITE_URL || "https://plane.so"; // support email -export const SUPPORT_EMAIL = process.env.NEXT_PUBLIC_SUPPORT_EMAIL || "support@plane.so"; +export const SUPPORT_EMAIL = process.env.VITE_SUPPORT_EMAIL || "support@plane.so"; // marketing links export const MARKETING_PRICING_PAGE_LINK = "https://plane.so/pricing"; export const MARKETING_CONTACT_US_PAGE_LINK = "https://plane.so/contact"; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9b3347a683..16600e3086 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,11 +19,14 @@ catalogs: specifier: ^1.3.4 version: 1.3.4 '@sentry/node': - specifier: 10.5.0 - version: 10.5.0 + specifier: 10.24.0 + version: 10.24.0 '@sentry/profiling-node': - specifier: 10.5.0 - version: 10.5.0 + specifier: 10.24.0 + version: 10.24.0 + '@sentry/react-router': + specifier: 10.24.0 + version: 10.24.0 '@tiptap/core': specifier: ^2.22.3 version: 2.26.3 @@ -136,21 +139,18 @@ importers: '@react-router/node': specifier: ^7.9.3 version: 7.9.4(react-router@7.9.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.8.3) + '@sentry/react-router': + specifier: 'catalog:' + version: 10.24.0(@react-router/node@7.9.4(react-router@7.9.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.8.3))(react-router@7.9.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@tanstack/react-virtual': specifier: ^3.13.12 version: 3.13.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tanstack/virtual-core': specifier: ^3.13.12 version: 3.13.12 - '@vercel/edge': - specifier: 1.2.2 - version: 1.2.2 axios: specifier: 'catalog:' version: 1.12.0 - dotenv: - specifier: ^16.4.5 - version: 16.6.1 isbot: specifier: ^5.1.31 version: 5.1.31 @@ -168,7 +168,7 @@ importers: version: 9.1.1(mobx@6.12.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-themes: specifier: ^0.2.1 - version: 0.2.1(next@14.2.32(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 0.2.1(next@14.2.32(@babel/core@7.28.4)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: specifier: 'catalog:' version: 18.3.1 @@ -262,10 +262,10 @@ importers: version: link:../../packages/types '@sentry/node': specifier: 'catalog:' - version: 10.5.0 + version: 10.24.0 '@sentry/profiling-node': specifier: 'catalog:' - version: 10.5.0 + version: 10.24.0 '@tiptap/core': specifier: 'catalog:' version: 2.26.3(@tiptap/pm@3.6.6) @@ -393,6 +393,9 @@ importers: '@react-router/serve': specifier: ^7.9.5 version: 7.9.5(react-router@7.9.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.8.3) + '@sentry/react-router': + specifier: 'catalog:' + version: 10.24.0(@react-router/node@7.9.4(react-router@7.9.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.8.3))(react-router@7.9.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) axios: specifier: 'catalog:' version: 1.12.0 @@ -402,9 +405,6 @@ importers: date-fns: specifier: ^4.1.0 version: 4.1.0 - dotenv: - specifier: ^16.4.5 - version: 16.6.1 isbot: specifier: ^5.1.31 version: 5.1.31 @@ -425,7 +425,7 @@ importers: version: 6.0.8(mobx@6.12.0) next-themes: specifier: ^0.2.1 - version: 0.2.1(next@14.2.32(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 0.2.1(next@14.2.32(@babel/core@7.28.4)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: specifier: 'catalog:' version: 18.3.1 @@ -550,6 +550,9 @@ importers: '@react-router/node': specifier: ^7.9.3 version: 7.9.4(react-router@7.9.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.8.3) + '@sentry/react-router': + specifier: 'catalog:' + version: 10.24.0(@react-router/node@7.9.4(react-router@7.9.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.8.3))(react-router@7.9.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@tanstack/react-table': specifier: ^8.21.3 version: 8.21.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -568,9 +571,6 @@ importers: date-fns: specifier: ^4.1.0 version: 4.1.0 - dotenv: - specifier: ^16.4.5 - version: 16.6.1 emoji-picker-react: specifier: ^4.5.16 version: 4.12.2(react@18.3.1) @@ -597,7 +597,7 @@ importers: version: 6.0.8(mobx@6.12.0) next-themes: specifier: ^0.2.1 - version: 0.2.1(next@14.2.32(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 0.2.1(next@14.2.32(@babel/core@7.28.4)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) posthog-js: specifier: ^1.255.1 version: 1.255.1 @@ -1474,6 +1474,12 @@ packages: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} + '@apm-js-collab/code-transformer@0.8.2': + resolution: {integrity: sha512-YRjJjNq5KFSjDUoqu5pFUWrrsvGOxl6c3bu+uMFc9HNNptZ2rNU/TI2nLw4jnhQNtka972Ee2m3uqbvDQtPeCA==} + + '@apm-js-collab/tracing-hooks@0.3.1': + resolution: {integrity: sha512-Vu1CbmPURlN5fTboVuKMoJjbO5qcq9fA5YXpskx3dXe/zTBvjODFoerw+69rVBlRLrJpwPqSDqEuJDEKIrTldw==} + '@atlaskit/pragmatic-drag-and-drop-auto-scroll@1.4.0': resolution: {integrity: sha512-5GoikoTSW13UX76F9TDeWB8x3jbbGlp/Y+3aRkHe1MOBMkrWkwNpJ42MIVhhX/6NSeaZiPumP0KbGJVs2tOWSQ==} @@ -2043,6 +2049,14 @@ packages: '@ioredis/commands@1.3.0': resolution: {integrity: sha512-M/T6Zewn7sDaBQEqIZ8Rb+i9y8qfGmq+5SDFSf9sA2lUZTmdDLVdOiQaeDp+Q4wElZ9HG1GAX5KhDaidp6LQsQ==} + '@isaacs/balanced-match@4.0.1': + resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} + engines: {node: 20 || >=22} + + '@isaacs/brace-expansion@5.0.0': + resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} + engines: {node: 20 || >=22} + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -2205,8 +2219,8 @@ packages: resolution: {integrity: sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - '@opentelemetry/api-logs@0.203.0': - resolution: {integrity: sha512-9B9RU0H7Ya1Dx/Rkyc4stuBZSGVQF27WigitInx2QQoj6KUpEFYPKoWjdFTunJYxmXmh17HeBvbMa1EhGyPmqQ==} + '@opentelemetry/api-logs@0.204.0': + resolution: {integrity: sha512-DqxY8yoAaiBPivoJD4UtgrMS8gEmzZ5lnaxzPojzLVHBGqPxgWm4zcuvcUHZiqQ6kRX2Klel2r9y8cA2HAtqpw==} engines: {node: '>=8.0.0'} '@opentelemetry/api-logs@0.57.2': @@ -2223,152 +2237,146 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/core@2.0.1': - resolution: {integrity: sha512-MaZk9SJIDgo1peKevlbhP6+IwIiNPNmswNL4AF0WaQJLbHXjr9SrZMgS12+iqr9ToV4ZVosCcc0f8Rg67LXjxw==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/core@2.1.0': resolution: {integrity: sha512-RMEtHsxJs/GiHHxYT58IY57UXAQTuUnZVco6ymDEqTNlJKTimM4qPUPVe8InNFyBjhHBEAx4k3Q8LtNayBsbUQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/instrumentation-amqplib@0.50.0': - resolution: {integrity: sha512-kwNs/itehHG/qaQBcVrLNcvXVPW0I4FCOVtw3LHMLdYIqD7GJ6Yv2nX+a4YHjzbzIeRYj8iyMp0Bl7tlkidq5w==} + '@opentelemetry/instrumentation-amqplib@0.51.0': + resolution: {integrity: sha512-XGmjYwjVRktD4agFnWBWQXo9SiYHKBxR6Ag3MLXwtLE4R99N3a08kGKM5SC1qOFKIELcQDGFEFT9ydXMH00Luw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-connect@0.47.0': - resolution: {integrity: sha512-pjenvjR6+PMRb6/4X85L4OtkQCootgb/Jzh/l/Utu3SJHBid1F+gk9sTGU2FWuhhEfV6P7MZ7BmCdHXQjgJ42g==} + '@opentelemetry/instrumentation-connect@0.48.0': + resolution: {integrity: sha512-OMjc3SFL4pC16PeK+tDhwP7MRvDPalYCGSvGqUhX5rASkI2H0RuxZHOWElYeXkV0WP+70Gw6JHWac/2Zqwmhdw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-dataloader@0.21.0': - resolution: {integrity: sha512-Xu4CZ1bfhdkV3G6iVHFgKTgHx8GbKSqrTU01kcIJRGHpowVnyOPEv1CW5ow+9GU2X4Eki8zoNuVUenFc3RluxQ==} + '@opentelemetry/instrumentation-dataloader@0.22.0': + resolution: {integrity: sha512-bXnTcwtngQsI1CvodFkTemrrRSQjAjZxqHVc+CJZTDnidT0T6wt3jkKhnsjU/Kkkc0lacr6VdRpCu2CUWa0OKw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-express@0.52.0': - resolution: {integrity: sha512-W7pizN0Wh1/cbNhhTf7C62NpyYw7VfCFTYg0DYieSTrtPBT1vmoSZei19wfKLnrMsz3sHayCg0HxCVL2c+cz5w==} + '@opentelemetry/instrumentation-express@0.53.0': + resolution: {integrity: sha512-r/PBafQmFYRjuxLYEHJ3ze1iBnP2GDA1nXOSS6E02KnYNZAVjj6WcDA1MSthtdAUUK0XnotHvvWM8/qz7DMO5A==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-fs@0.23.0': - resolution: {integrity: sha512-Puan+QopWHA/KNYvDfOZN6M/JtF6buXEyD934vrb8WhsX1/FuM7OtoMlQyIqAadnE8FqqDL4KDPiEfCQH6pQcQ==} + '@opentelemetry/instrumentation-fs@0.24.0': + resolution: {integrity: sha512-HjIxJ6CBRD770KNVaTdMXIv29Sjz4C1kPCCK5x1Ujpc6SNnLGPqUVyJYZ3LUhhnHAqdbrl83ogVWjCgeT4Q0yw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-generic-pool@0.47.0': - resolution: {integrity: sha512-UfHqf3zYK+CwDwEtTjaD12uUqGGTswZ7ofLBEdQ4sEJp9GHSSJMQ2hT3pgBxyKADzUdoxQAv/7NqvL42ZI+Qbw==} + '@opentelemetry/instrumentation-generic-pool@0.48.0': + resolution: {integrity: sha512-TLv/On8pufynNR+pUbpkyvuESVASZZKMlqCm4bBImTpXKTpqXaJJ3o/MUDeMlM91rpen+PEv2SeyOKcHCSlgag==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-graphql@0.51.0': - resolution: {integrity: sha512-LchkOu9X5DrXAnPI1+Z06h/EH/zC7D6sA86hhPrk3evLlsJTz0grPrkL/yUJM9Ty0CL/y2HSvmWQCjbJEz/ADg==} + '@opentelemetry/instrumentation-graphql@0.52.0': + resolution: {integrity: sha512-3fEJ8jOOMwopvldY16KuzHbRhPk8wSsOTSF0v2psmOCGewh6ad+ZbkTx/xyUK9rUdUMWAxRVU0tFpj4Wx1vkPA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-hapi@0.50.0': - resolution: {integrity: sha512-5xGusXOFQXKacrZmDbpHQzqYD1gIkrMWuwvlrEPkYOsjUqGUjl1HbxCsn5Y9bUXOCgP1Lj6A4PcKt1UiJ2MujA==} + '@opentelemetry/instrumentation-hapi@0.51.0': + resolution: {integrity: sha512-qyf27DaFNL1Qhbo/da+04MSCw982B02FhuOS5/UF+PMhM61CcOiu7fPuXj8TvbqyReQuJFljXE6UirlvoT/62g==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-http@0.203.0': - resolution: {integrity: sha512-y3uQAcCOAwnO6vEuNVocmpVzG3PER6/YZqbPbbffDdJ9te5NkHEkfSMNzlC3+v7KlE+WinPGc3N7MR30G1HY2g==} + '@opentelemetry/instrumentation-http@0.204.0': + resolution: {integrity: sha512-1afJYyGRA4OmHTv0FfNTrTAzoEjPQUYgd+8ih/lX0LlZBnGio/O80vxA0lN3knsJPS7FiDrsDrWq25K7oAzbkw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-ioredis@0.51.0': - resolution: {integrity: sha512-9IUws0XWCb80NovS+17eONXsw1ZJbHwYYMXiwsfR9TSurkLV5UNbRSKb9URHO+K+pIJILy9wCxvyiOneMr91Ig==} + '@opentelemetry/instrumentation-ioredis@0.52.0': + resolution: {integrity: sha512-rUvlyZwI90HRQPYicxpDGhT8setMrlHKokCtBtZgYxQWRF5RBbG4q0pGtbZvd7kyseuHbFpA3I/5z7M8b/5ywg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-kafkajs@0.12.0': - resolution: {integrity: sha512-bIe4aSAAxytp88nzBstgr6M7ZiEpW6/D1/SuKXdxxuprf18taVvFL2H5BDNGZ7A14K27haHqzYqtCTqFXHZOYg==} + '@opentelemetry/instrumentation-kafkajs@0.14.0': + resolution: {integrity: sha512-kbB5yXS47dTIdO/lfbbXlzhvHFturbux4EpP0+6H78Lk0Bn4QXiZQW7rmZY1xBCY16mNcCb8Yt0mhz85hTnSVA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-knex@0.48.0': - resolution: {integrity: sha512-V5wuaBPv/lwGxuHjC6Na2JFRjtPgstw19jTFl1B1b6zvaX8zVDYUDaR5hL7glnQtUSCMktPttQsgK4dhXpddcA==} + '@opentelemetry/instrumentation-knex@0.49.0': + resolution: {integrity: sha512-NKsRRT27fbIYL4Ix+BjjP8h4YveyKc+2gD6DMZbr5R5rUeDqfC8+DTfIt3c3ex3BIc5Vvek4rqHnN7q34ZetLQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-koa@0.51.0': - resolution: {integrity: sha512-XNLWeMTMG1/EkQBbgPYzCeBD0cwOrfnn8ao4hWgLv0fNCFQu1kCsJYygz2cvKuCs340RlnG4i321hX7R8gj3Rg==} + '@opentelemetry/instrumentation-koa@0.52.0': + resolution: {integrity: sha512-JJSBYLDx/mNSy8Ibi/uQixu2rH0bZODJa8/cz04hEhRaiZQoeJ5UrOhO/mS87IdgVsHrnBOsZ6vDu09znupyuA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-lru-memoizer@0.48.0': - resolution: {integrity: sha512-KUW29wfMlTPX1wFz+NNrmE7IzN7NWZDrmFWHM/VJcmFEuQGnnBuTIdsP55CnBDxKgQ/qqYFp4udQFNtjeFosPw==} + '@opentelemetry/instrumentation-lru-memoizer@0.49.0': + resolution: {integrity: sha512-ctXu+O/1HSadAxtjoEg2w307Z5iPyLOMM8IRNwjaKrIpNAthYGSOanChbk1kqY6zU5CrpkPHGdAT6jk8dXiMqw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-mongodb@0.56.0': - resolution: {integrity: sha512-YG5IXUUmxX3Md2buVMvxm9NWlKADrnavI36hbJsihqqvBGsWnIfguf0rUP5Srr0pfPqhQjUP+agLMsvu0GmUpA==} + '@opentelemetry/instrumentation-mongodb@0.57.0': + resolution: {integrity: sha512-KD6Rg0KSHWDkik+qjIOWoksi1xqSpix8TSPfquIK1DTmd9OTFb5PHmMkzJe16TAPVEuElUW8gvgP59cacFcrMQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-mongoose@0.50.0': - resolution: {integrity: sha512-Am8pk1Ct951r4qCiqkBcGmPIgGhoDiFcRtqPSLbJrUZqEPUsigjtMjoWDRLG1Ki1NHgOF7D0H7d+suWz1AAizw==} + '@opentelemetry/instrumentation-mongoose@0.51.0': + resolution: {integrity: sha512-gwWaAlhhV2By7XcbyU3DOLMvzsgeaymwP/jktDC+/uPkCmgB61zurwqOQdeiRq9KAf22Y2dtE5ZLXxytJRbEVA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-mysql2@0.49.0': - resolution: {integrity: sha512-dCub9wc02mkJWNyHdVEZ7dvRzy295SmNJa+LrAJY2a/+tIiVBQqEAajFzKwp9zegVVnel9L+WORu34rGLQDzxA==} + '@opentelemetry/instrumentation-mysql2@0.51.0': + resolution: {integrity: sha512-zT2Wg22Xn43RyfU3NOUmnFtb5zlDI0fKcijCj9AcK9zuLZ4ModgtLXOyBJSSfO+hsOCZSC1v/Fxwj+nZJFdzLQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-mysql@0.49.0': - resolution: {integrity: sha512-QU9IUNqNsrlfE3dJkZnFHqLjlndiU39ll/YAAEvWE40sGOCi9AtOF6rmEGzJ1IswoZ3oyePV7q2MP8SrhJfVAA==} + '@opentelemetry/instrumentation-mysql@0.50.0': + resolution: {integrity: sha512-duKAvMRI3vq6u9JwzIipY9zHfikN20bX05sL7GjDeLKr2qV0LQ4ADtKST7KStdGcQ+MTN5wghWbbVdLgNcB3rA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-pg@0.55.0': - resolution: {integrity: sha512-yfJ5bYE7CnkW/uNsnrwouG/FR7nmg09zdk2MSs7k0ZOMkDDAE3WBGpVFFApGgNu2U+gtzLgEzOQG4I/X+60hXw==} + '@opentelemetry/instrumentation-pg@0.57.0': + resolution: {integrity: sha512-dWLGE+r5lBgm2A8SaaSYDE3OKJ/kwwy5WLyGyzor8PLhUL9VnJRiY6qhp4njwhnljiLtzeffRtG2Mf/YyWLeTw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-redis@0.51.0': - resolution: {integrity: sha512-uL/GtBA0u72YPPehwOvthAe+Wf8k3T+XQPBssJmTYl6fzuZjNq8zTfxVFhl9nRFjFVEe+CtiYNT0Q3AyqW1Z0A==} + '@opentelemetry/instrumentation-redis@0.53.0': + resolution: {integrity: sha512-WUHV8fr+8yo5RmzyU7D5BIE1zwiaNQcTyZPwtxlfr7px6NYYx7IIpSihJK7WA60npWynfxxK1T67RAVF0Gdfjg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-tedious@0.22.0': - resolution: {integrity: sha512-XrrNSUCyEjH1ax9t+Uo6lv0S2FCCykcF7hSxBMxKf7Xn0bPRxD3KyFUZy25aQXzbbbUHhtdxj3r2h88SfEM3aA==} + '@opentelemetry/instrumentation-tedious@0.23.0': + resolution: {integrity: sha512-3TMTk/9VtlRonVTaU4tCzbg4YqW+Iq/l5VnN2e5whP6JgEg/PKfrGbqQ+CxQWNLfLaQYIUgEZqAn5gk/inh1uQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-undici@0.14.0': - resolution: {integrity: sha512-2HN+7ztxAReXuxzrtA3WboAKlfP5OsPA57KQn2AdYZbJ3zeRPcLXyW4uO/jpLE6PLm0QRtmeGCmfYpqRlwgSwg==} + '@opentelemetry/instrumentation-undici@0.15.0': + resolution: {integrity: sha512-sNFGA/iCDlVkNjzTzPRcudmI11vT/WAfAguRdZY9IspCw02N4WSC72zTuQhSMheh2a1gdeM9my1imnKRvEEvEg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.7.0 - '@opentelemetry/instrumentation@0.203.0': - resolution: {integrity: sha512-ke1qyM+3AK2zPuBPb6Hk/GCsc5ewbLvPNkEuELx/JmANeEp6ZjnZ+wypPAJSucTw0wvCGrUaibDSdcrGFoWxKQ==} + '@opentelemetry/instrumentation@0.204.0': + resolution: {integrity: sha512-vV5+WSxktzoMP8JoYWKeopChy6G3HKk4UQ2hESCRDUUTZqQ3+nM3u8noVG0LmNfRWwcFBnbZ71GKC7vaYYdJ1g==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -2395,8 +2403,8 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' - '@opentelemetry/semantic-conventions@1.36.0': - resolution: {integrity: sha512-TtxJSRD8Ohxp6bKkhrm27JRHAxPczQA7idtcTOMYI+wQRRrfgqxHv1cFbCApcSnNjtXkmzFozn6jQtFrOmbjPQ==} + '@opentelemetry/semantic-conventions@1.38.0': + resolution: {integrity: sha512-kocjix+/sSggfJhwXqClZ3i9Y/MI0fp7b+g7kCRm6psy2dsf8uApTRclwG18h8Avm7C9+fnt+O36PspJ/OzoWg==} engines: {node: '>=14'} '@opentelemetry/sql-common@0.41.0': @@ -2429,8 +2437,8 @@ packages: '@types/react': optional: true - '@prisma/instrumentation@6.13.0': - resolution: {integrity: sha512-b97b0sBycGh89RQcqobSgjGl3jwPaC5cQIOFod6EX1v0zIxlXPmL3ckSXxoHpy+Js0QV/tgCzFvqicMJCtezBA==} + '@prisma/instrumentation@6.15.0': + resolution: {integrity: sha512-6TXaH6OmDkMOQvOxwLZ8XS51hU2v4A3vmE2pSijCIiGRJYyNeMcL6nMHQMyYdZRD8wl7LF3Wzc+AMPMV/9Oo7A==} peerDependencies: '@opentelemetry/api': ^1.8 @@ -2983,45 +2991,143 @@ packages: '@rushstack/eslint-patch@1.12.0': resolution: {integrity: sha512-5EwMtOqvJMMa3HbmxLlF74e+3/HhwBTMcvt3nqVJgGCozO6hzIPOBlwm8mGVNR9SN2IJpxSnlxczyDjcn7qIyw==} + '@sentry-internal/browser-utils@10.24.0': + resolution: {integrity: sha512-2nLj5TgPc/KkGy7LCW9sBGJT0CT+9U+Vlqa8yl7APd5agzxrpRyTcm4hPBBOw5tw7D4NWWUMulFxtZKZzT/Rcw==} + engines: {node: '>=18'} + + '@sentry-internal/feedback@10.24.0': + resolution: {integrity: sha512-leYFQfgax50sYTEgkcEzPP8lTvtE12nryJSsdtPNym6gmQgA2SN20oSRNlxo1AitNpwNnTkj+ow/Y9ytrJlXUQ==} + engines: {node: '>=18'} + '@sentry-internal/node-cpu-profiler@2.2.0': resolution: {integrity: sha512-oLHVYurqZfADPh5hvmQYS5qx8t0UZzT2u6+/68VXsFruQEOnYJTODKgU3BVLmemRs3WE6kCJjPeFdHVYOQGSzQ==} engines: {node: '>=18'} - '@sentry/core@10.5.0': - resolution: {integrity: sha512-jTJ8NhZSKB2yj3QTVRXfCCngQzAOLThQUxCl9A7Mv+XF10tP7xbH/88MVQ5WiOr2IzcmrB9r2nmUe36BnMlLjA==} + '@sentry-internal/replay-canvas@10.24.0': + resolution: {integrity: sha512-pjNZ+/L/ct0huutkTQrcR+V/v3ICf5wKE8OOB2Dt3DcjNsbLKtUsy9Um6bCbSz/fRI8K/ZFlVLjiIQkMW+WX0Q==} engines: {node: '>=18'} - '@sentry/node-core@10.5.0': - resolution: {integrity: sha512-VC4FCKMvvbUT32apTE0exfI/WigqKskzQA+VdFz61Y+T7mTCADngNrOjG3ilVYPBU7R9KEEziEd/oKgencqkmQ==} + '@sentry-internal/replay@10.24.0': + resolution: {integrity: sha512-xqSw3sCu5yxDQFpo/42t1zzxe+6kn542DRwHNBqIBd0CWN7un/j5YIW1Sq/+TdHYGbeG8LzD5UOuvZsT4zF2nQ==} + engines: {node: '>=18'} + + '@sentry/babel-plugin-component-annotate@4.6.0': + resolution: {integrity: sha512-3soTX50JPQQ51FSbb4qvNBf4z/yP7jTdn43vMTp9E4IxvJ9HKJR7OEuKkCMszrZmWsVABXl02msqO7QisePdiQ==} + engines: {node: '>= 14'} + + '@sentry/browser@10.24.0': + resolution: {integrity: sha512-kKSNYupPIIk02+4OVR13qpJ8/uzsf6SrCzgxr6EvdK8qEuGYLJyM6lLJze/C5BZTSsam6UGAfahrSI1K5il8oQ==} + engines: {node: '>=18'} + + '@sentry/bundler-plugin-core@4.6.0': + resolution: {integrity: sha512-Fub2XQqrS258jjS8qAxLLU1k1h5UCNJ76i8m4qZJJdogWWaF8t00KnnTyp9TEDJzrVD64tRXS8+HHENxmeUo3g==} + engines: {node: '>= 14'} + + '@sentry/cli-darwin@2.58.1': + resolution: {integrity: sha512-4olophuk8VHSeybiyBVgGaYpM/4+V6Ex0jsS/P6cv6ilZ3VPK6PomuOPmdW7VP29tQHstZu/Xb3tAIDXelwjpA==} + engines: {node: '>=10'} + os: [darwin] + + '@sentry/cli-linux-arm64@2.58.1': + resolution: {integrity: sha512-WIfXiyZkDH6Jdm1KsxJmvqh6WjENklyzprffdUmaNQ98p+cfBTDGWOlk9MM1EE4yryump22LQSeVC8hJrzI7vA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux, freebsd, android] + + '@sentry/cli-linux-arm@2.58.1': + resolution: {integrity: sha512-R4Tyw9yYgnf6MOrw47ad8jf2gHk/BOtOOeyyjQw/7taTVZf2r97S35WhZh1kRecxhJh/A6Cwylq+SxbeFiMYww==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux, freebsd, android] + + '@sentry/cli-linux-i686@2.58.1': + resolution: {integrity: sha512-I1CjUoNYYFfeUtwI2CubNQCBJtlVEs0/BhBhU4qF/4q4JlUDBgl6mJv6M2C03/zTyqP8StuRxSKkzJa301MC3Q==} + engines: {node: '>=10'} + cpu: [x86, ia32] + os: [linux, freebsd, android] + + '@sentry/cli-linux-x64@2.58.1': + resolution: {integrity: sha512-2jR/4I8GXyhiA2eutqToZrGSBIxfagxAZXMeCEye2MSJIRfOwc8Yz49FYtP3EtWqByE6f5Smfjk52tjPCNc32w==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux, freebsd, android] + + '@sentry/cli-win32-arm64@2.58.1': + resolution: {integrity: sha512-NKrLuHhgRcfD19y04EGY9WMSXhrqf3QQKn9MHfre4vN1UaEqpNX2adkPim94BRLzEDtFiNSZfTqHrEbou/Nxpw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + + '@sentry/cli-win32-i686@2.58.1': + resolution: {integrity: sha512-Y64LJ4jD3WpWSR6cHif514EHWpGVY76qYAGawGJlQ+7EHuPyPOwNy9qVf/1dKwTD8KNDd8goDh4VXOoYsbic7A==} + engines: {node: '>=10'} + cpu: [x86, ia32] + os: [win32] + + '@sentry/cli-win32-x64@2.58.1': + resolution: {integrity: sha512-Rc/kBryZeTAsgb0o5ygU9LaNNmzaAcitY5jfHToBBaYemciJzhpVVtSEPe6SJw1DT45MIW1PVD4XBx+YXO56Ag==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + + '@sentry/cli@2.58.1': + resolution: {integrity: sha512-yva4lLFvrPmqIgjbHy73vUfm8qOfLZkYGj5FyWQXCdjTV3s2HirQV1QW4Ezm4QeT8Ktu1jj14sluLELABGCvZg==} + engines: {node: '>= 10'} + hasBin: true + + '@sentry/core@10.24.0': + resolution: {integrity: sha512-apJ1NtCK/Kt5uTytee+4rhhcTm4u3+z0bESH8GNMXMcuJ/A3Rvy3HUh+gqCx4BTOR0Sa44dbMvJcm/ewO+mzVg==} + engines: {node: '>=18'} + + '@sentry/node-core@10.24.0': + resolution: {integrity: sha512-OTvJSrPstEc0NydMDpdmyYeuOcOQxZ0ZT8rmdKkrw4odYs56pYS4euMHNler8Tw9j8mZxqyI/wjzl//xGI+F0w==} engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.9.0 - '@opentelemetry/context-async-hooks': ^1.30.1 || ^2.0.0 - '@opentelemetry/core': ^1.30.1 || ^2.0.0 + '@opentelemetry/context-async-hooks': ^1.30.1 || ^2.1.0 + '@opentelemetry/core': ^1.30.1 || ^2.1.0 '@opentelemetry/instrumentation': '>=0.57.1 <1' - '@opentelemetry/resources': ^1.30.1 || ^2.0.0 - '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.0.0 - '@opentelemetry/semantic-conventions': ^1.34.0 + '@opentelemetry/resources': ^1.30.1 || ^2.1.0 + '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.1.0 + '@opentelemetry/semantic-conventions': ^1.37.0 - '@sentry/node@10.5.0': - resolution: {integrity: sha512-GqTkOc7tkWqRTKNjipysElh/bzIkhfLsvNGwH6+zel5kU15IdOCFtAqIri85ZLo9vbaIVtjQELXOzfo/5MMAFQ==} + '@sentry/node@10.24.0': + resolution: {integrity: sha512-OsyMzemG+a1QHe9BXDduA0bL4r5dlViOpIocSL3atPNupYTxoSZqOP/wFwqTGE+M/2oIv0/VIIWoXJUd8BLUAg==} engines: {node: '>=18'} - '@sentry/opentelemetry@10.5.0': - resolution: {integrity: sha512-/Qva5vngtuh79YUUBA8kbbrD6w/A+u1vy1jnLoPMKDxWTfNPqT4tCiOOmWYotnITaE3QO0UtXK/j7LMX8FhtUA==} + '@sentry/opentelemetry@10.24.0': + resolution: {integrity: sha512-yOqeAUTnikx1eG8XMWvY4FWEU/aBp24sKlejxE0k7jmw5X2vCBd+4FUgDAwKsHwvEGOeD2XVfMqgLYjrNkm+Vg==} engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.9.0 - '@opentelemetry/context-async-hooks': ^1.30.1 || ^2.0.0 - '@opentelemetry/core': ^1.30.1 || ^2.0.0 - '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.0.0 - '@opentelemetry/semantic-conventions': ^1.34.0 + '@opentelemetry/context-async-hooks': ^1.30.1 || ^2.1.0 + '@opentelemetry/core': ^1.30.1 || ^2.1.0 + '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.1.0 + '@opentelemetry/semantic-conventions': ^1.37.0 - '@sentry/profiling-node@10.5.0': - resolution: {integrity: sha512-T9bDn3lkpM2BJlzbmb0qQ0iwKw/XEpqKRzlBiduM57fiSlPUSySF9GPXgTvJaTOYU20YdXNxUWIBLKNlO0vXhA==} + '@sentry/profiling-node@10.24.0': + resolution: {integrity: sha512-2TNwG0/mnArV8k2dV32qwzAt6md36BNeZB01DsPPRzos55oCMZDKG9kkI3pnIC1QUAKLUIVGt4AxS6naVNnWVw==} engines: {node: '>=18'} hasBin: true + '@sentry/react-router@10.24.0': + resolution: {integrity: sha512-9H06C+4qnnrJnd/pcBWFlXJEewG7zUG8B6PQML/6QGkr738L5dSrSRj9fSTQxcooFxTUZ9Pog1x+Vq9Cp/cpGQ==} + engines: {node: '>=20'} + peerDependencies: + '@react-router/node': 7.x + react: '>=18' + react-router: 7.x + + '@sentry/react@10.24.0': + resolution: {integrity: sha512-HW83v7LC5E06H/cYtU4fnlOV5fykNl5QkrOoZzKrYfAUCh4T11gjd4RvlvI+WaXb6nhD+gW2YLu95iIRHid/TA==} + engines: {node: '>=18'} + peerDependencies: + react: ^16.14.0 || 17.x || 18.x || 19.x + + '@sentry/vite-plugin@4.6.0': + resolution: {integrity: sha512-fMR2d+EHwbzBa0S1fp45SNUTProxmyFBp+DeBWWQOSP9IU6AH6ea2rqrpMAnp/skkcdW4z4LSRrOEpMZ5rWXLw==} + engines: {node: '>= 14'} + '@storybook/addon-actions@8.6.14': resolution: {integrity: sha512-mDQxylxGGCQSK7tJPkD144J8jWh9IU9ziJMHfB84PKpI/V5ZgqMDnpr2bssTrUaGDqU5e1/z8KcRF+Melhs9pQ==} peerDependencies: @@ -3801,8 +3907,8 @@ packages: '@types/pg-pool@2.0.6': resolution: {integrity: sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ==} - '@types/pg@8.15.4': - resolution: {integrity: sha512-I6UNVBAoYbvuWkkU3oosC8yxqH21f4/Jc4DK71JLG3dT2mdlGe1z+ep/LQGXaKaOgcvUrsQoPRqfgtMcvZiJhg==} + '@types/pg@8.15.5': + resolution: {integrity: sha512-LF7lF6zWEKxuT3/OR8wAZGzkg4ENGXFNyiV/JeOt9z5B+0ZVwbql9McqX5c/WStFq1GaGso7H1AzP/qSzmlCKQ==} '@types/prop-types@15.7.15': resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} @@ -4025,9 +4131,6 @@ packages: cpu: [x64] os: [win32] - '@vercel/edge@1.2.2': - resolution: {integrity: sha512-1+y+f6rk0Yc9ss9bRDgz/gdpLimwoRteKHhrcgHvEpjbP1nyT3ByqEMWm2BTcpIO5UtDmIFXc8zdq4LR190PDA==} - '@vitest/expect@2.0.5': resolution: {integrity: sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==} @@ -4151,6 +4254,10 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + ajv-formats@2.1.1: resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} peerDependencies: @@ -5607,10 +5714,19 @@ packages: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true + glob@11.0.1: + resolution: {integrity: sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==} + engines: {node: 20 || >=22} + hasBin: true + glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported + glob@9.3.5: + resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==} + engines: {node: '>=16 || 14 >=14.17'} + globals@13.24.0: resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} @@ -5727,6 +5843,10 @@ packages: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} engines: {node: '>= 0.8'} + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} @@ -5993,6 +6113,10 @@ packages: jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + jackspeak@4.1.1: + resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==} + engines: {node: 20 || >=22} + jay-peg@1.1.1: resolution: {integrity: sha512-D62KEuBxz/ip2gQKOEhk/mx14o7eiFRaU+VNNSP4MOiIkwb/D6B3G1Mfas7C/Fit8EsSV2/IWjZElx/Gs6A4ww==} @@ -6181,6 +6305,10 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@11.2.1: + resolution: {integrity: sha512-r8LA6i4LP4EeWOhqBaZZjDWwehd1xUJPCJd9Sv300H0ZmcUER4+JPh7bqqZeqs1o5pgtgvXm+d9UGrB5zZGDiQ==} + engines: {node: 20 || >=22} + lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -6200,6 +6328,10 @@ packages: magic-string@0.30.19: resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==} + magic-string@0.30.8: + resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} + engines: {node: '>=12'} + make-dir@3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} engines: {node: '>=8'} @@ -6370,9 +6502,17 @@ packages: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} + minimatch@10.1.1: + resolution: {integrity: sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==} + engines: {node: 20 || >=22} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@8.0.4: + resolution: {integrity: sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==} + engines: {node: '>=16 || 14 >=14.17'} + minimatch@9.0.5: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} @@ -6380,6 +6520,10 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + minipass@4.2.8: + resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} + engines: {node: '>=8'} + minipass@7.1.2: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} @@ -6734,6 +6878,10 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} + path-scurry@2.0.0: + resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} + engines: {node: 20 || >=22} + path-to-regexp@0.1.12: resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} @@ -7024,6 +7172,10 @@ packages: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} engines: {node: '>= 0.6.0'} + progress@2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} + promise-inflight@1.0.1: resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} peerDependencies: @@ -8143,6 +8295,9 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} + unplugin@1.0.1: + resolution: {integrity: sha512-aqrHaVBWW1JVKBHmGo33T5TxeL0qWzfvjWokObHA9bYmN7eNDkwOxmLjhioHl9878qDFMAaT51XNroRyuz7WxA==} + unplugin@1.16.1: resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==} engines: {node: '>=14.0.0'} @@ -8357,6 +8512,9 @@ packages: resolution: {integrity: sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==} engines: {node: '>=10.13.0'} + webpack-virtual-modules@0.5.0: + resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==} + webpack-virtual-modules@0.6.2: resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} @@ -8539,6 +8697,16 @@ snapshots: '@alloc/quick-lru@5.2.0': {} + '@apm-js-collab/code-transformer@0.8.2': {} + + '@apm-js-collab/tracing-hooks@0.3.1': + dependencies: + '@apm-js-collab/code-transformer': 0.8.2 + debug: 4.4.3 + module-details-from-path: 1.0.4 + transitivePeerDependencies: + - supports-color + '@atlaskit/pragmatic-drag-and-drop-auto-scroll@1.4.0': dependencies: '@atlaskit/pragmatic-drag-and-drop': 1.7.4 @@ -9217,6 +9385,12 @@ snapshots: '@ioredis/commands@1.3.0': {} + '@isaacs/balanced-match@4.0.1': {} + + '@isaacs/brace-expansion@5.0.0': + dependencies: + '@isaacs/balanced-match': 4.0.1 + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -9377,7 +9551,7 @@ snapshots: dependencies: which: 3.0.1 - '@opentelemetry/api-logs@0.203.0': + '@opentelemetry/api-logs@0.204.0': dependencies: '@opentelemetry/api': 1.9.0 @@ -9391,210 +9565,205 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/semantic-conventions': 1.36.0 - '@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/semantic-conventions': 1.38.0 - '@opentelemetry/instrumentation-amqplib@0.50.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-amqplib@0.51.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/instrumentation': 0.204.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-connect@0.47.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-connect@0.48.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/instrumentation': 0.204.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.38.0 '@types/connect': 3.4.38 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-dataloader@0.21.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-dataloader@0.22.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.204.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-express@0.52.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-express@0.53.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/instrumentation': 0.204.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-fs@0.23.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-fs@0.24.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.204.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-generic-pool@0.47.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-generic-pool@0.48.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.204.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-graphql@0.51.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-graphql@0.52.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.204.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-hapi@0.50.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-hapi@0.51.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/instrumentation': 0.204.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-http@0.203.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-http@0.204.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.204.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.38.0 forwarded-parse: 2.1.2 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-ioredis@0.51.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-ioredis@0.52.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.204.0(@opentelemetry/api@1.9.0) '@opentelemetry/redis-common': 0.38.0 - '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-kafkajs@0.12.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-kafkajs@0.14.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/instrumentation': 0.204.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-knex@0.48.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-knex@0.49.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/instrumentation': 0.204.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-koa@0.51.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-koa@0.52.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/instrumentation': 0.204.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-lru-memoizer@0.48.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-lru-memoizer@0.49.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.204.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mongodb@0.56.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-mongodb@0.57.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/instrumentation': 0.204.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mongoose@0.50.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-mongoose@0.51.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/instrumentation': 0.204.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mysql2@0.49.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-mysql2@0.51.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/instrumentation': 0.204.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.38.0 '@opentelemetry/sql-common': 0.41.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mysql@0.49.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-mysql@0.50.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/instrumentation': 0.204.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.38.0 '@types/mysql': 2.15.27 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-pg@0.55.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-pg@0.57.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/instrumentation': 0.204.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.38.0 '@opentelemetry/sql-common': 0.41.0(@opentelemetry/api@1.9.0) - '@types/pg': 8.15.4 + '@types/pg': 8.15.5 '@types/pg-pool': 2.0.6 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-redis@0.51.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-redis@0.53.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.204.0(@opentelemetry/api@1.9.0) '@opentelemetry/redis-common': 0.38.0 - '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-tedious@0.22.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-tedious@0.23.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/instrumentation': 0.204.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.38.0 '@types/tedious': 4.0.14 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-undici@0.14.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-undici@0.15.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.204.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation@0.203.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation@0.204.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.203.0 + '@opentelemetry/api-logs': 0.204.0 import-in-the-middle: 1.14.2 require-in-the-middle: 7.5.2 transitivePeerDependencies: @@ -9618,16 +9787,16 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/semantic-conventions': 1.38.0 '@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/semantic-conventions': 1.38.0 - '@opentelemetry/semantic-conventions@1.36.0': {} + '@opentelemetry/semantic-conventions@1.38.0': {} '@opentelemetry/sql-common@0.41.0(@opentelemetry/api@1.9.0)': dependencies: @@ -9650,7 +9819,7 @@ snapshots: optionalDependencies: '@types/react': 18.3.11 - '@prisma/instrumentation@6.13.0(@opentelemetry/api@1.9.0)': + '@prisma/instrumentation@6.15.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) @@ -10247,83 +10416,207 @@ snapshots: '@rushstack/eslint-patch@1.12.0': {} + '@sentry-internal/browser-utils@10.24.0': + dependencies: + '@sentry/core': 10.24.0 + + '@sentry-internal/feedback@10.24.0': + dependencies: + '@sentry/core': 10.24.0 + '@sentry-internal/node-cpu-profiler@2.2.0': dependencies: detect-libc: 2.1.0 node-abi: 3.75.0 - '@sentry/core@10.5.0': {} - - '@sentry/node-core@10.5.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.36.0)': + '@sentry-internal/replay-canvas@10.24.0': dependencies: + '@sentry-internal/replay': 10.24.0 + '@sentry/core': 10.24.0 + + '@sentry-internal/replay@10.24.0': + dependencies: + '@sentry-internal/browser-utils': 10.24.0 + '@sentry/core': 10.24.0 + + '@sentry/babel-plugin-component-annotate@4.6.0': {} + + '@sentry/browser@10.24.0': + dependencies: + '@sentry-internal/browser-utils': 10.24.0 + '@sentry-internal/feedback': 10.24.0 + '@sentry-internal/replay': 10.24.0 + '@sentry-internal/replay-canvas': 10.24.0 + '@sentry/core': 10.24.0 + + '@sentry/bundler-plugin-core@4.6.0': + dependencies: + '@babel/core': 7.28.4 + '@sentry/babel-plugin-component-annotate': 4.6.0 + '@sentry/cli': 2.58.1 + dotenv: 16.6.1 + find-up: 5.0.0 + glob: 9.3.5 + magic-string: 0.30.8 + unplugin: 1.0.1 + transitivePeerDependencies: + - encoding + - supports-color + + '@sentry/cli-darwin@2.58.1': + optional: true + + '@sentry/cli-linux-arm64@2.58.1': + optional: true + + '@sentry/cli-linux-arm@2.58.1': + optional: true + + '@sentry/cli-linux-i686@2.58.1': + optional: true + + '@sentry/cli-linux-x64@2.58.1': + optional: true + + '@sentry/cli-win32-arm64@2.58.1': + optional: true + + '@sentry/cli-win32-i686@2.58.1': + optional: true + + '@sentry/cli-win32-x64@2.58.1': + optional: true + + '@sentry/cli@2.58.1': + dependencies: + https-proxy-agent: 5.0.1 + node-fetch: 2.7.0 + progress: 2.0.3 + proxy-from-env: 1.1.0 + which: 2.0.2 + optionalDependencies: + '@sentry/cli-darwin': 2.58.1 + '@sentry/cli-linux-arm': 2.58.1 + '@sentry/cli-linux-arm64': 2.58.1 + '@sentry/cli-linux-i686': 2.58.1 + '@sentry/cli-linux-x64': 2.58.1 + '@sentry/cli-win32-arm64': 2.58.1 + '@sentry/cli-win32-i686': 2.58.1 + '@sentry/cli-win32-x64': 2.58.1 + transitivePeerDependencies: + - encoding + - supports-color + + '@sentry/core@10.24.0': {} + + '@sentry/node-core@10.24.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.204.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0)': + dependencies: + '@apm-js-collab/tracing-hooks': 0.3.1 '@opentelemetry/api': 1.9.0 '@opentelemetry/context-async-hooks': 2.1.0(@opentelemetry/api@1.9.0) '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.204.0(@opentelemetry/api@1.9.0) '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.36.0 - '@sentry/core': 10.5.0 - '@sentry/opentelemetry': 10.5.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.36.0) + '@opentelemetry/semantic-conventions': 1.38.0 + '@sentry/core': 10.24.0 + '@sentry/opentelemetry': 10.24.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0) import-in-the-middle: 1.14.2 + transitivePeerDependencies: + - supports-color - '@sentry/node@10.5.0': + '@sentry/node@10.24.0': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/context-async-hooks': 2.1.0(@opentelemetry/api@1.9.0) '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-amqplib': 0.50.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-connect': 0.47.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-dataloader': 0.21.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-express': 0.52.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-fs': 0.23.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-generic-pool': 0.47.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-graphql': 0.51.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-hapi': 0.50.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-http': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-ioredis': 0.51.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-kafkajs': 0.12.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-knex': 0.48.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-koa': 0.51.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-lru-memoizer': 0.48.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mongodb': 0.56.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mongoose': 0.50.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mysql': 0.49.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mysql2': 0.49.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-pg': 0.55.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-redis': 0.51.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-tedious': 0.22.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-undici': 0.14.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.204.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-amqplib': 0.51.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-connect': 0.48.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-dataloader': 0.22.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-express': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-fs': 0.24.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-generic-pool': 0.48.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-graphql': 0.52.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-hapi': 0.51.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-http': 0.204.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-ioredis': 0.52.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-kafkajs': 0.14.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-knex': 0.49.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-koa': 0.52.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-lru-memoizer': 0.49.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mongodb': 0.57.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mongoose': 0.51.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mysql': 0.50.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mysql2': 0.51.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-pg': 0.57.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-redis': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-tedious': 0.23.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-undici': 0.15.0(@opentelemetry/api@1.9.0) '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.36.0 - '@prisma/instrumentation': 6.13.0(@opentelemetry/api@1.9.0) - '@sentry/core': 10.5.0 - '@sentry/node-core': 10.5.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.36.0) - '@sentry/opentelemetry': 10.5.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.36.0) + '@opentelemetry/semantic-conventions': 1.38.0 + '@prisma/instrumentation': 6.15.0(@opentelemetry/api@1.9.0) + '@sentry/core': 10.24.0 + '@sentry/node-core': 10.24.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.204.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0) + '@sentry/opentelemetry': 10.24.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0) import-in-the-middle: 1.14.2 minimatch: 9.0.5 transitivePeerDependencies: - supports-color - '@sentry/opentelemetry@10.5.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.36.0)': + '@sentry/opentelemetry@10.24.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/context-async-hooks': 2.1.0(@opentelemetry/api@1.9.0) '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.36.0 - '@sentry/core': 10.5.0 + '@opentelemetry/semantic-conventions': 1.38.0 + '@sentry/core': 10.24.0 - '@sentry/profiling-node@10.5.0': + '@sentry/profiling-node@10.24.0': dependencies: '@sentry-internal/node-cpu-profiler': 2.2.0 - '@sentry/core': 10.5.0 - '@sentry/node': 10.5.0 + '@sentry/core': 10.24.0 + '@sentry/node': 10.24.0 transitivePeerDependencies: - supports-color + '@sentry/react-router@10.24.0(@react-router/node@7.9.4(react-router@7.9.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.8.3))(react-router@7.9.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.204.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.38.0 + '@react-router/node': 7.9.4(react-router@7.9.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.8.3) + '@sentry/browser': 10.24.0 + '@sentry/cli': 2.58.1 + '@sentry/core': 10.24.0 + '@sentry/node': 10.24.0 + '@sentry/react': 10.24.0(react@18.3.1) + '@sentry/vite-plugin': 4.6.0 + glob: 11.0.1 + react: 18.3.1 + react-router: 7.9.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + transitivePeerDependencies: + - encoding + - supports-color + + '@sentry/react@10.24.0(react@18.3.1)': + dependencies: + '@sentry/browser': 10.24.0 + '@sentry/core': 10.24.0 + hoist-non-react-statics: 3.3.2 + react: 18.3.1 + + '@sentry/vite-plugin@4.6.0': + dependencies: + '@sentry/bundler-plugin-core': 4.6.0 + unplugin: 1.0.1 + transitivePeerDependencies: + - encoding + - supports-color + '@storybook/addon-actions@8.6.14(storybook@8.6.14(prettier@3.6.2))': dependencies: '@storybook/global': 5.0.0 @@ -11281,9 +11574,9 @@ snapshots: '@types/pg-pool@2.0.6': dependencies: - '@types/pg': 8.15.4 + '@types/pg': 8.15.5 - '@types/pg@8.15.4': + '@types/pg@8.15.5': dependencies: '@types/node': 22.12.0 pg-protocol: 1.10.3 @@ -11504,8 +11797,6 @@ snapshots: '@unrs/resolver-binding-win32-x64-msvc@1.11.1': optional: true - '@vercel/edge@1.2.2': {} - '@vitest/expect@2.0.5': dependencies: '@vitest/spy': 2.0.5 @@ -11671,6 +11962,12 @@ snapshots: acorn@8.15.0: {} + agent-base@6.0.2: + dependencies: + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + ajv-formats@2.1.1(ajv@8.17.1): optionalDependencies: ajv: 8.17.1 @@ -13350,6 +13647,15 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 1.11.1 + glob@11.0.1: + dependencies: + foreground-child: 3.3.1 + jackspeak: 4.1.1 + minimatch: 10.1.1 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 2.0.0 + glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -13359,6 +13665,13 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 + glob@9.3.5: + dependencies: + fs.realpath: 1.0.0 + minimatch: 8.0.4 + minipass: 4.2.8 + path-scurry: 1.11.1 + globals@13.24.0: dependencies: type-fest: 0.20.2 @@ -13468,6 +13781,13 @@ snapshots: statuses: 2.0.1 toidentifier: 1.0.1 + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + human-signals@2.1.0: {} hyphen@1.10.6: {} @@ -13741,6 +14061,10 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 + jackspeak@4.1.1: + dependencies: + '@isaacs/cliui': 8.0.2 + jay-peg@1.1.1: dependencies: restructure: 3.0.2 @@ -13915,6 +14239,8 @@ snapshots: lru-cache@10.4.3: {} + lru-cache@11.2.1: {} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -13931,6 +14257,10 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 + magic-string@0.30.8: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + make-dir@3.1.0: dependencies: semver: 6.3.1 @@ -14177,16 +14507,26 @@ snapshots: min-indent@1.0.1: {} + minimatch@10.1.1: + dependencies: + '@isaacs/brace-expansion': 5.0.0 + minimatch@3.1.2: dependencies: brace-expansion: 2.0.2 + minimatch@8.0.4: + dependencies: + brace-expansion: 2.0.2 + minimatch@9.0.5: dependencies: brace-expansion: 2.0.2 minimist@1.2.8: {} + minipass@4.2.8: {} + minipass@7.1.2: {} mobx-react-lite@4.1.0(mobx@6.12.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): @@ -14247,7 +14587,7 @@ snapshots: neo-async@2.6.2: {} - next-themes@0.2.1(next@14.2.32(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + next-themes@0.2.1(next@14.2.32(@babel/core@7.28.4)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: next: 14.2.32(@babel/core@7.28.4)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 @@ -14533,6 +14873,11 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 + path-scurry@2.0.0: + dependencies: + lru-cache: 11.2.1 + minipass: 7.1.2 + path-to-regexp@0.1.12: {} path-to-regexp@3.3.0: {} @@ -14729,6 +15074,8 @@ snapshots: process@0.11.10: {} + progress@2.0.3: {} + promise-inflight@1.0.1: {} promise-retry@2.0.1: @@ -16102,6 +16449,13 @@ snapshots: unpipe@1.0.0: {} + unplugin@1.0.1: + dependencies: + acorn: 8.15.0 + chokidar: 3.6.0 + webpack-sources: 3.3.3 + webpack-virtual-modules: 0.5.0 + unplugin@1.16.1: dependencies: acorn: 8.15.0 @@ -16342,6 +16696,8 @@ snapshots: webpack-sources@3.3.3: {} + webpack-virtual-modules@0.5.0: {} + webpack-virtual-modules@0.6.2: {} webpack@5.101.3(@swc/core@1.13.5(@swc/helpers@0.5.17))(esbuild@0.25.0): diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index f06cd3ca22..902a347dac 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -9,8 +9,9 @@ catalog: "@atlaskit/pragmatic-drag-and-drop-hitbox": 1.1.0 "@atlaskit/pragmatic-drag-and-drop": 1.7.4 "@bprogress/core": ^1.3.4 - "@sentry/node": 10.5.0 - "@sentry/profiling-node": 10.5.0 + "@sentry/node": 10.24.0 + "@sentry/profiling-node": 10.24.0 + "@sentry/react-router": 10.24.0 axios: 1.12.0 mobx: 6.12.0 mobx-react: 9.1.1 diff --git a/turbo.json b/turbo.json index f6bf411072..6305d71a7d 100644 --- a/turbo.json +++ b/turbo.json @@ -2,22 +2,22 @@ "$schema": "https://turbo.build/schema.json", "globalEnv": [ "NODE_ENV", - "NEXT_PUBLIC_API_BASE_URL", - "NEXT_PUBLIC_ADMIN_BASE_URL", - "NEXT_PUBLIC_ADMIN_BASE_PATH", - "NEXT_PUBLIC_SPACE_BASE_URL", - "NEXT_PUBLIC_SPACE_BASE_PATH", - "NEXT_PUBLIC_WEB_BASE_URL", - "NEXT_PUBLIC_LIVE_BASE_URL", - "NEXT_PUBLIC_PLAUSIBLE_DOMAIN", - "NEXT_PUBLIC_CRISP_ID", - "NEXT_PUBLIC_ENABLE_SESSION_RECORDER", - "NEXT_PUBLIC_SESSION_RECORDER_KEY", - "NEXT_PUBLIC_EXTRA_IMAGE_DOMAINS", - "NEXT_PUBLIC_POSTHOG_KEY", - "NEXT_PUBLIC_POSTHOG_HOST", - "NEXT_PUBLIC_POSTHOG_DEBUG", - "NEXT_PUBLIC_SUPPORT_EMAIL", + "VITE_API_BASE_URL", + "VITE_ADMIN_BASE_URL", + "VITE_ADMIN_BASE_PATH", + "VITE_SPACE_BASE_URL", + "VITE_SPACE_BASE_PATH", + "VITE_WEB_BASE_URL", + "VITE_LIVE_BASE_URL", + "VITE_PLAUSIBLE_DOMAIN", + "VITE_CRISP_ID", + "VITE_ENABLE_SESSION_RECORDER", + "VITE_SESSION_RECORDER_KEY", + "VITE_EXTRA_IMAGE_DOMAINS", + "VITE_POSTHOG_KEY", + "VITE_POSTHOG_HOST", + "VITE_POSTHOG_DEBUG", + "VITE_SUPPORT_EMAIL", "ENABLE_EXPERIMENTAL_COREPACK" ], "globalDependencies": ["pnpm-lock.yaml", "pnpm-workspace.yaml", ".npmrc"],