diff --git a/apps/web/declarations/next-auth.d.ts b/apps/web/declarations/next-auth.d.ts
index 746d9abfc..7eb69534e 100644
--- a/apps/web/declarations/next-auth.d.ts
+++ b/apps/web/declarations/next-auth.d.ts
@@ -3,7 +3,7 @@ import type { TimeFormat } from "@rallly/database";
import { extend } from "lodash";
import type { DefaultSession, DefaultUser } from "next-auth";
import NextAuth from "next-auth";
-import type { DefaultJWT} from "next-auth/jwt";
+import type { DefaultJWT } from "next-auth/jwt";
import { JWT } from "next-auth/jwt";
declare module "next-auth" {
@@ -11,7 +11,7 @@ declare module "next-auth" {
* Returned by `useSession`, `getSession` and received as a prop on the `SessionProvider` React Context
*/
interface Session {
- user: {
+ user?: {
id: string;
timeZone?: string | null;
timeFormat?: TimeFormat | null;
diff --git a/apps/web/next.config.js b/apps/web/next.config.js
index ea9f0f120..3383482dc 100644
--- a/apps/web/next.config.js
+++ b/apps/web/next.config.js
@@ -23,6 +23,7 @@ const nextConfig = {
"@rallly/ui",
"@rallly/tailwind-config",
"@rallly/posthog",
+ "@rallly/guest-user",
"@rallly/emails",
],
webpack(config) {
diff --git a/apps/web/package.json b/apps/web/package.json
index a56337422..00c57581f 100644
--- a/apps/web/package.json
+++ b/apps/web/package.json
@@ -34,7 +34,7 @@
"@rallly/posthog": "*",
"@rallly/tailwind-config": "*",
"@rallly/ui": "*",
- "@sentry/nextjs": "*",
+ "@sentry/nextjs": "^8.32.0",
"@svgr/webpack": "^6.5.1",
"@t3-oss/env-nextjs": "^0.11.0",
"@tanstack/react-query": "^4.0.0",
diff --git a/apps/web/src/app/[locale]/(admin)/pro-badge.tsx b/apps/web/src/app/[locale]/(admin)/pro-badge.tsx
index 1f3715ef5..068a1f226 100644
--- a/apps/web/src/app/[locale]/(admin)/pro-badge.tsx
+++ b/apps/web/src/app/[locale]/(admin)/pro-badge.tsx
@@ -3,7 +3,7 @@
import { Badge } from "@rallly/ui/badge";
import { Trans } from "@/components/trans";
-import { useUser } from "@/components/user-provider";
+import { useUser } from "@/auth/client/user-provider";
export function ProBadge() {
const { user } = useUser();
diff --git a/apps/web/src/app/[locale]/(admin)/settings/profile/profile-page.tsx b/apps/web/src/app/[locale]/(admin)/settings/profile/profile-page.tsx
index 7858df7f7..694c1e023 100644
--- a/apps/web/src/app/[locale]/(admin)/settings/profile/profile-page.tsx
+++ b/apps/web/src/app/[locale]/(admin)/settings/profile/profile-page.tsx
@@ -12,13 +12,13 @@ import { useTranslation } from "next-i18next";
import { DeleteAccountDialog } from "@/app/[locale]/(admin)/settings/profile/delete-account-dialog";
import { ProfileSettings } from "@/app/[locale]/(admin)/settings/profile/profile-settings";
import { LogoutButton } from "@/app/components/logout-button";
+import { useUser } from "@/auth/client/user-provider";
import {
Settings,
SettingsContent,
SettingsSection,
} from "@/components/settings/settings";
import { Trans } from "@/components/trans";
-import { useUser } from "@/components/user-provider";
export const ProfilePage = () => {
const { t } = useTranslation();
diff --git a/apps/web/src/app/[locale]/(admin)/settings/profile/profile-picture.tsx b/apps/web/src/app/[locale]/(admin)/settings/profile/profile-picture.tsx
index 33dcc15b5..38f47633e 100644
--- a/apps/web/src/app/[locale]/(admin)/settings/profile/profile-picture.tsx
+++ b/apps/web/src/app/[locale]/(admin)/settings/profile/profile-picture.tsx
@@ -7,7 +7,7 @@ import { z } from "zod";
import { OptimizedAvatarImage } from "@/components/optimized-avatar-image";
import { Trans } from "@/components/trans";
-import { useUser } from "@/components/user-provider";
+import { useUser } from "@/auth/client/user-provider";
import { IfCloudHosted } from "@/contexts/environment";
import { useTranslation } from "@/i18n/client";
import { trpc } from "@/trpc/client";
diff --git a/apps/web/src/app/[locale]/(admin)/settings/profile/profile-settings.tsx b/apps/web/src/app/[locale]/(admin)/settings/profile/profile-settings.tsx
index 40e12c58d..5b7a4e309 100644
--- a/apps/web/src/app/[locale]/(admin)/settings/profile/profile-settings.tsx
+++ b/apps/web/src/app/[locale]/(admin)/settings/profile/profile-settings.tsx
@@ -11,7 +11,7 @@ import { useForm } from "react-hook-form";
import { ProfilePicture } from "@/app/[locale]/(admin)/settings/profile/profile-picture";
import { Trans } from "@/components/trans";
-import { useUser } from "@/components/user-provider";
+import { useUser } from "@/auth/client/user-provider";
import { trpc } from "@/trpc/client";
export const ProfileSettings = () => {
diff --git a/apps/web/src/app/[locale]/(admin)/sidebar.tsx b/apps/web/src/app/[locale]/(admin)/sidebar.tsx
index e3ccec394..78d43c1d6 100644
--- a/apps/web/src/app/[locale]/(admin)/sidebar.tsx
+++ b/apps/web/src/app/[locale]/(admin)/sidebar.tsx
@@ -24,7 +24,7 @@ import { OptimizedAvatarImage } from "@/components/optimized-avatar-image";
import { PayWallDialog } from "@/components/pay-wall-dialog";
import { ProBadge } from "@/components/pro-badge";
import { Trans } from "@/components/trans";
-import { IfGuest, useUser } from "@/components/user-provider";
+import { IfGuest, useUser } from "@/auth/client/user-provider";
import { IfFreeUser } from "@/contexts/plan";
import type { IconComponent } from "@/types";
diff --git a/apps/web/src/app/[locale]/invite/[urlId]/invite-page.tsx b/apps/web/src/app/[locale]/invite/[urlId]/invite-page.tsx
index 04681d726..747468aa6 100644
--- a/apps/web/src/app/[locale]/invite/[urlId]/invite-page.tsx
+++ b/apps/web/src/app/[locale]/invite/[urlId]/invite-page.tsx
@@ -11,7 +11,7 @@ import { ScheduledEvent } from "@/components/poll/scheduled-event";
import { useTouchBeacon } from "@/components/poll/use-touch-beacon";
import { VotingForm } from "@/components/poll/voting-form";
import { Trans } from "@/components/trans";
-import { useUser } from "@/components/user-provider";
+import { useUser } from "@/auth/client/user-provider";
import { usePoll } from "@/contexts/poll";
const GoToApp = () => {
diff --git a/apps/web/src/app/[locale]/invite/[urlId]/nav.tsx b/apps/web/src/app/[locale]/invite/[urlId]/nav.tsx
index 77983daed..bcf02dd50 100644
--- a/apps/web/src/app/[locale]/invite/[urlId]/nav.tsx
+++ b/apps/web/src/app/[locale]/invite/[urlId]/nav.tsx
@@ -6,7 +6,7 @@ import Link from "next/link";
import { PageHeader } from "@/app/components/page-layout";
import { Trans } from "@/components/trans";
import { UserDropdown } from "@/components/user-dropdown";
-import { useUser } from "@/components/user-provider";
+import { useUser } from "@/auth/client/user-provider";
import { usePoll } from "@/contexts/poll";
export const Nav = () => {
diff --git a/apps/web/src/app/[locale]/layout.tsx b/apps/web/src/app/[locale]/layout.tsx
index 8f9bfa913..bdd33177c 100644
--- a/apps/web/src/app/[locale]/layout.tsx
+++ b/apps/web/src/app/[locale]/layout.tsx
@@ -12,6 +12,8 @@ import React from "react";
import { TimeZoneChangeDetector } from "@/app/[locale]/timezone-change-detector";
import { Providers } from "@/app/providers";
import { getServerSession } from "@/auth";
+import { getGuestUser } from "@/auth/next";
+import type { User } from "@/auth/schema";
import { SessionProvider } from "@/auth/session-provider";
const PostHogPageView = dynamic(() => import("@rallly/posthog/next"), {
@@ -38,8 +40,11 @@ export default async function Root({
params: { locale: string };
}) {
let session: Session | null = null;
+ let guestUser: User | null = null;
+
try {
session = await getServerSession();
+ guestUser = await getGuestUser();
} catch (error) {
console.error(error);
}
@@ -49,7 +54,7 @@ export default async function Root({
-
+
{children}
diff --git a/apps/web/src/app/[locale]/poll/[urlId]/guest-poll-alert.tsx b/apps/web/src/app/[locale]/poll/[urlId]/guest-poll-alert.tsx
index 0d6999663..455ccfec6 100644
--- a/apps/web/src/app/[locale]/poll/[urlId]/guest-poll-alert.tsx
+++ b/apps/web/src/app/[locale]/poll/[urlId]/guest-poll-alert.tsx
@@ -5,7 +5,7 @@ import { Trans } from "next-i18next";
import { LoginLink } from "@/components/login-link";
import { RegisterLink } from "@/components/register-link";
-import { useUser } from "@/components/user-provider";
+import { useUser } from "@/auth/client/user-provider";
import { usePoll } from "@/contexts/poll";
export const GuestPollAlert = () => {
diff --git a/apps/web/src/app/guest.ts b/apps/web/src/app/guest.ts
index 2072a8fa6..5ee833e6e 100644
--- a/apps/web/src/app/guest.ts
+++ b/apps/web/src/app/guest.ts
@@ -1,15 +1,17 @@
import languages from "@rallly/languages";
import { absoluteUrl } from "@rallly/utils/absolute-url";
+import { randomid } from "@rallly/utils/nanoid";
import languageParser from "accept-language-parser";
import type { NextRequest, NextResponse } from "next/server";
import type { JWT } from "next-auth/jwt";
-import { encode } from "next-auth/jwt";
+import { decode, encode } from "next-auth/jwt";
-import { randomid } from "@/utils/nanoid";
+import { GUEST_USER_COOKIE } from "@/auth/constants";
+import { createGuestUser } from "@/auth/lib/create-guest-user";
const supportedLocales = Object.keys(languages);
-function getCookieSettings() {
+function getNextAuthCookieSettings() {
const secure = absoluteUrl().startsWith("https://");
const prefix = secure ? "__Secure-" : "";
const name = `${prefix}next-auth.session-token`;
@@ -30,7 +32,7 @@ export async function getLocaleFromHeader(req: NextRequest) {
}
async function setCookie(res: NextResponse, jwt: JWT) {
- const { name, secure } = getCookieSettings();
+ const { name, secure } = getNextAuthCookieSettings();
const token = await encode({
token: jwt,
@@ -47,6 +49,33 @@ async function setCookie(res: NextResponse, jwt: JWT) {
});
}
+export async function migrateGuestFromNextAuthCookie(
+ req: NextRequest,
+ res: NextResponse,
+) {
+ const { name } = getNextAuthCookieSettings();
+ if (req.cookies.has(name)) {
+ // get user session token
+ const token = req.cookies.get(name)?.value;
+ if (token) {
+ const jwt = await decode({
+ token,
+ secret: process.env.SECRET_PASSWORD,
+ });
+ if (jwt?.sub && jwt?.locale) {
+ const user = await createGuestUser({
+ id: jwt.sub,
+ locale: jwt.locale,
+ timeZone: jwt.timeZone ?? undefined,
+ weekStart: jwt.weekStart ?? undefined,
+ timeFormat: jwt.timeFormat ?? undefined,
+ });
+ res.cookies.set(GUEST_USER_COOKIE, JSON.stringify(user));
+ }
+ }
+ }
+}
+
export async function resetUser(req: NextRequest, res: NextResponse) {
// resets to a new guest user
const locale = await getLocaleFromHeader(req);
@@ -61,7 +90,7 @@ export async function resetUser(req: NextRequest, res: NextResponse) {
}
export async function initGuest(req: NextRequest, res: NextResponse) {
- const { name } = getCookieSettings();
+ const { name } = getNextAuthCookieSettings();
if (req.cookies.has(name)) {
// already has a session token
diff --git a/apps/web/src/app/providers.tsx b/apps/web/src/app/providers.tsx
index 22eb90834..4f0a34142 100644
--- a/apps/web/src/app/providers.tsx
+++ b/apps/web/src/app/providers.tsx
@@ -5,7 +5,7 @@ import { createTRPCReact } from "@trpc/react-query";
import { domMax, LazyMotion } from "framer-motion";
import { useState } from "react";
-import { UserProvider } from "@/components/user-provider";
+import { UserProvider } from "@/auth/client/user-provider";
import { I18nProvider } from "@/i18n/client";
import { trpcConfig } from "@/trpc/client/config";
import type { AppRouter } from "@/trpc/routers";
diff --git a/apps/web/src/auth.ts b/apps/web/src/auth.ts
index e755f48c0..4de0c231b 100644
--- a/apps/web/src/auth.ts
+++ b/apps/web/src/auth.ts
@@ -1,6 +1,7 @@
import { prisma } from "@rallly/database";
import { posthog } from "@rallly/posthog/server";
import { absoluteUrl } from "@rallly/utils/absolute-url";
+import { generateOtp, randomid } from "@rallly/utils/nanoid";
import type {
GetServerSidePropsContext,
NextApiRequest,
@@ -20,7 +21,6 @@ import { env } from "@/env";
import type { RegistrationTokenPayload } from "@/trpc/types";
import { getEmailClient } from "@/utils/emails";
import { getValueByPath } from "@/utils/get-value-by-path";
-import { generateOtp, randomid } from "@/utils/nanoid";
import { decryptToken } from "@/utils/session";
import { CustomPrismaAdapter } from "./auth/custom-prisma-adapter";
@@ -239,7 +239,7 @@ const getAuthOptions = (...args: GetServerSessionParams) =>
return false;
}
} else {
- // merge guest user into newly logged in user
+ // merge guest user into newly logged in user`
const session = await getServerSession(...args);
if (session && session.user.email === null) {
await mergeGuestsIntoUser(user.id, [session.user.id]);
@@ -264,6 +264,9 @@ const getAuthOptions = (...args: GetServerSessionParams) =>
return token;
},
async session({ session, token }) {
+ if (!session.user) {
+ return session;
+ }
// If the user is a guest, we don't need to fetch them from the database
if (token.sub?.startsWith("user-")) {
session.user.id = token.sub as string;
diff --git a/apps/web/src/auth/client/use-guest-user.tsx b/apps/web/src/auth/client/use-guest-user.tsx
new file mode 100644
index 000000000..10aa88737
--- /dev/null
+++ b/apps/web/src/auth/client/use-guest-user.tsx
@@ -0,0 +1,13 @@
+import Cookies from "js-cookie";
+
+import { GUEST_USER_COOKIE } from "../constants";
+import { safeParseGuestUser } from "../lib/parse-guest";
+
+export function useGuestUser() {
+ const cookie = Cookies.get(GUEST_USER_COOKIE);
+ if (cookie) {
+ return safeParseGuestUser(cookie);
+ }
+
+ return null;
+}
diff --git a/apps/web/src/components/user-provider.tsx b/apps/web/src/auth/client/user-provider.tsx
similarity index 83%
rename from apps/web/src/components/user-provider.tsx
rename to apps/web/src/auth/client/user-provider.tsx
index a0144779d..fb0a472a7 100644
--- a/apps/web/src/components/user-provider.tsx
+++ b/apps/web/src/auth/client/user-provider.tsx
@@ -5,12 +5,13 @@ import { useSession } from "next-auth/react";
import React from "react";
import { Spinner } from "@/components/spinner";
+import { useRequiredContext } from "@/components/use-required-context";
import { useSubscription } from "@/contexts/plan";
import { PreferencesProvider } from "@/contexts/preferences";
import { useTranslation } from "@/i18n/client";
import { trpc } from "@/trpc/client";
-import { useRequiredContext } from "./use-required-context";
+import { useGuestUser } from "./use-guest-user";
type UserData = {
id: string;
@@ -55,16 +56,28 @@ export const IfGuest = (props: { children?: React.ReactNode }) => {
export const UserProvider = (props: { children?: React.ReactNode }) => {
const session = useSession();
- const user = session.data?.user;
+ const guestUser = useGuestUser();
+ const authenticatedUser = session.data?.user;
const subscription = useSubscription();
const updatePreferences = trpc.user.updatePreferences.useMutation();
const { t, i18n } = useTranslation();
const posthog = usePostHog();
- const isGuest = !user?.email;
+ const isGuest = !authenticatedUser?.email;
const tier = isGuest ? "guest" : subscription?.active ? "pro" : "hobby";
+ const user = {
+ id: authenticatedUser?.id ?? guestUser?.id,
+ name: authenticatedUser?.name,
+ email: authenticatedUser?.email,
+ timeZone: authenticatedUser?.timeZone ?? guestUser?.timeZone,
+ timeFormat: authenticatedUser?.timeFormat ?? guestUser?.timeFormat,
+ weekStart: authenticatedUser?.weekStart ?? guestUser?.weekStart,
+ image: authenticatedUser?.image,
+ locale: authenticatedUser?.locale ?? guestUser?.locale,
+ };
+
React.useEffect(() => {
if (user) {
posthog?.identify(user.id, {
diff --git a/apps/web/src/auth/constants.ts b/apps/web/src/auth/constants.ts
new file mode 100644
index 000000000..ca77954c0
--- /dev/null
+++ b/apps/web/src/auth/constants.ts
@@ -0,0 +1 @@
+export const GUEST_USER_COOKIE = "rallly-user";
diff --git a/apps/web/src/auth/edge.ts b/apps/web/src/auth/edge.ts
new file mode 100644
index 000000000..be5379ab0
--- /dev/null
+++ b/apps/web/src/auth/edge.ts
@@ -0,0 +1,36 @@
+import type { NextRequest, NextResponse } from "next/server";
+
+import {
+ getLocaleFromHeader,
+ migrateGuestFromNextAuthCookie,
+} from "@/app/guest";
+
+import { GUEST_USER_COOKIE } from "./constants";
+import { createGuestUser } from "./lib/create-guest-user";
+import { safeParseGuestUser } from "./lib/parse-guest";
+import { type User } from "./schema";
+
+export async function initGuestUser(
+ req: NextRequest,
+ res: NextResponse,
+): Promise {
+ await migrateGuestFromNextAuthCookie(req, res);
+ const cookie = req.cookies.get(GUEST_USER_COOKIE);
+
+ if (cookie) {
+ const user = safeParseGuestUser(cookie.value);
+ if (user) {
+ return user;
+ }
+ }
+
+ const user = await createGuestUser({
+ locale: await getLocaleFromHeader(req),
+ });
+
+ res.cookies.set(GUEST_USER_COOKIE, JSON.stringify(user), {
+ httpOnly: false,
+ });
+
+ return user;
+}
diff --git a/apps/web/src/auth/lib/create-guest-user.ts b/apps/web/src/auth/lib/create-guest-user.ts
new file mode 100644
index 000000000..c76c17fd3
--- /dev/null
+++ b/apps/web/src/auth/lib/create-guest-user.ts
@@ -0,0 +1,12 @@
+import { randomid } from "@rallly/utils/nanoid";
+
+import type { User } from "../schema";
+
+export async function createGuestUser(initialData: Partial) {
+ const user: User = {
+ id: initialData.id ?? `user-${randomid()}`,
+ createdAt: new Date().toISOString(),
+ locale: initialData.locale ?? "en",
+ };
+ return user;
+}
diff --git a/apps/web/src/auth/lib/parse-guest.ts b/apps/web/src/auth/lib/parse-guest.ts
new file mode 100644
index 000000000..ae0e278e0
--- /dev/null
+++ b/apps/web/src/auth/lib/parse-guest.ts
@@ -0,0 +1,13 @@
+import { userSchema } from "../schema";
+
+export function safeParseGuestUser(serialized: string) {
+ try {
+ const res = userSchema.safeParse(JSON.parse(serialized));
+ if (res.success) {
+ return res.data;
+ }
+ } catch (error) {
+ // TODO: Log error
+ }
+ return null;
+}
diff --git a/apps/web/src/auth/next.ts b/apps/web/src/auth/next.ts
new file mode 100644
index 000000000..f9e690689
--- /dev/null
+++ b/apps/web/src/auth/next.ts
@@ -0,0 +1,31 @@
+import type { NextApiRequest } from "next";
+import { cookies } from "next/headers";
+
+import { GUEST_USER_COOKIE } from "./constants";
+import { safeParseGuestUser } from "./lib/parse-guest";
+import { userSchema } from "./schema";
+
+export async function getGuestUserFromApiRequest(req: NextApiRequest) {
+ const cookie = req.cookies[GUEST_USER_COOKIE];
+
+ if (cookie) {
+ try {
+ const res = userSchema.safeParse(JSON.parse(cookie));
+ if (res.success) {
+ return res.data;
+ }
+ } catch (error) {
+ console.error("Error parsing guest user cookie", error);
+ }
+ }
+
+ return null;
+}
+
+export async function getGuestUser() {
+ const cookie = cookies().get(GUEST_USER_COOKIE)?.value;
+ if (cookie) {
+ return safeParseGuestUser(cookie);
+ }
+ return null;
+}
diff --git a/apps/web/src/auth/schema.ts b/apps/web/src/auth/schema.ts
new file mode 100644
index 000000000..a061018da
--- /dev/null
+++ b/apps/web/src/auth/schema.ts
@@ -0,0 +1,12 @@
+import { z } from "zod";
+
+export const userSchema = z.object({
+ id: z.string(),
+ locale: z.string(),
+ createdAt: z.string(),
+ timeZone: z.string().optional().catch(undefined),
+ weekStart: z.number().optional().catch(undefined),
+ timeFormat: z.enum(["hours12", "hours24"]).optional().catch(undefined),
+});
+
+export type User = z.infer;
diff --git a/apps/web/src/components/create-poll.tsx b/apps/web/src/components/create-poll.tsx
index 909417273..fe13f580f 100644
--- a/apps/web/src/components/create-poll.tsx
+++ b/apps/web/src/components/create-poll.tsx
@@ -17,11 +17,11 @@ import { useUnmount } from "react-use";
import { PollSettingsForm } from "@/components/forms/poll-settings";
import { Trans } from "@/components/trans";
-import { useUser } from "@/components/user-provider";
+import { useUser } from "@/auth/client/user-provider";
import { trpc } from "@/trpc/client";
import { setCookie } from "@/utils/cookies";
-import type { NewEventData} from "./forms";
+import type { NewEventData } from "./forms";
import { PollDetailsForm, PollOptionsForm } from "./forms";
const required = (v: T | undefined): T => {
diff --git a/apps/web/src/components/discussion/discussion.tsx b/apps/web/src/components/discussion/discussion.tsx
index 931650e6f..b8719ba98 100644
--- a/apps/web/src/components/discussion/discussion.tsx
+++ b/apps/web/src/components/discussion/discussion.tsx
@@ -41,7 +41,7 @@ import { trpc } from "@/trpc/client";
import { requiredString } from "../../utils/form-validation";
import TruncatedLinkify from "../poll/truncated-linkify";
-import { useUser } from "../user-provider";
+import { useUser } from "../../auth/client/user-provider";
interface CommentForm {
authorName: string;
diff --git a/apps/web/src/components/layouts/poll-layout.tsx b/apps/web/src/components/layouts/poll-layout.tsx
index 1e33851f1..332a0c78c 100644
--- a/apps/web/src/components/layouts/poll-layout.tsx
+++ b/apps/web/src/components/layouts/poll-layout.tsx
@@ -29,7 +29,7 @@ import ManagePoll from "@/components/poll/manage-poll";
import NotificationsToggle from "@/components/poll/notifications-toggle";
import { LegacyPollContextProvider } from "@/components/poll/poll-context-provider";
import { Trans } from "@/components/trans";
-import { useUser } from "@/components/user-provider";
+import { useUser } from "@/auth/client/user-provider";
import { usePlan } from "@/contexts/plan";
import { usePoll } from "@/contexts/poll";
import { trpc } from "@/trpc/client";
diff --git a/apps/web/src/components/poll/desktop-poll/participant-row.tsx b/apps/web/src/components/poll/desktop-poll/participant-row.tsx
index 6dd080795..d473e0895 100644
--- a/apps/web/src/components/poll/desktop-poll/participant-row.tsx
+++ b/apps/web/src/components/poll/desktop-poll/participant-row.tsx
@@ -11,7 +11,7 @@ import { Participant, ParticipantName } from "@/components/participant";
import { ParticipantDropdown } from "@/components/participant-dropdown";
import { usePoll } from "@/components/poll-context";
import { Trans } from "@/components/trans";
-import { useUser } from "@/components/user-provider";
+import { useUser } from "@/auth/client/user-provider";
import { usePermissions } from "@/contexts/permissions";
import type { Vote } from "@/trpc/client/types";
diff --git a/apps/web/src/components/poll/mobile-poll.tsx b/apps/web/src/components/poll/mobile-poll.tsx
index 648c83f53..561e1662a 100644
--- a/apps/web/src/components/poll/mobile-poll.tsx
+++ b/apps/web/src/components/poll/mobile-poll.tsx
@@ -26,7 +26,7 @@ import { Trans } from "@/components/trans";
import { usePermissions } from "@/contexts/permissions";
import { useVisibleParticipants } from "../participants-provider";
-import { useUser } from "../user-provider";
+import { useUser } from "../../auth/client/user-provider";
import GroupedOptions from "./mobile-poll/grouped-options";
if (typeof window !== "undefined") {
diff --git a/apps/web/src/components/poll/notifications-toggle.tsx b/apps/web/src/components/poll/notifications-toggle.tsx
index 29fcfd336..8e9ff71b0 100644
--- a/apps/web/src/components/poll/notifications-toggle.tsx
+++ b/apps/web/src/components/poll/notifications-toggle.tsx
@@ -9,7 +9,7 @@ import * as React from "react";
import { Skeleton } from "@/components/skeleton";
import { Trans } from "@/components/trans";
-import { useUser } from "@/components/user-provider";
+import { useUser } from "@/auth/client/user-provider";
import { trpc } from "@/trpc/client";
import { usePoll } from "../poll-context";
diff --git a/apps/web/src/components/user-dropdown.tsx b/apps/web/src/components/user-dropdown.tsx
index 7a6feafa4..f93136e40 100644
--- a/apps/web/src/components/user-dropdown.tsx
+++ b/apps/web/src/components/user-dropdown.tsx
@@ -34,7 +34,11 @@ import { IfCloudHosted, IfSelfHosted } from "@/contexts/environment";
import { Plan, usePlan } from "@/contexts/plan";
import { isFeedbackEnabled } from "@/utils/constants";
-import { IfAuthenticated, IfGuest, useUser } from "./user-provider";
+import {
+ IfAuthenticated,
+ IfGuest,
+ useUser,
+} from "../auth/client/user-provider";
function logout() {
// programmtically submit form with name="logout"
diff --git a/apps/web/src/contexts/permissions.ts b/apps/web/src/contexts/permissions.ts
index ac9cb806c..af7133c54 100644
--- a/apps/web/src/contexts/permissions.ts
+++ b/apps/web/src/contexts/permissions.ts
@@ -1,7 +1,7 @@
import React from "react";
import { useParticipants } from "@/components/participants-provider";
-import { useUser } from "@/components/user-provider";
+import { useUser } from "@/auth/client/user-provider";
import { usePoll } from "@/contexts/poll";
import { useRole } from "@/contexts/role";
diff --git a/apps/web/src/middleware.ts b/apps/web/src/middleware.ts
index 23e50cdb6..41ada9700 100644
--- a/apps/web/src/middleware.ts
+++ b/apps/web/src/middleware.ts
@@ -2,7 +2,8 @@ import languages from "@rallly/languages";
import { NextResponse } from "next/server";
import withAuth from "next-auth/middleware";
-import { getLocaleFromHeader, initGuest } from "@/app/guest";
+import { getLocaleFromHeader } from "@/app/guest";
+import { initGuestUser } from "@/auth/edge";
import { isSelfHosted } from "@/utils/constants";
const supportedLocales = Object.keys(languages);
@@ -34,7 +35,7 @@ export const middleware = withAuth(
const res = NextResponse.rewrite(newUrl);
- await initGuest(req, res);
+ await initGuestUser(req, res);
return res;
},
diff --git a/apps/web/src/pages/_app.tsx b/apps/web/src/pages/_app.tsx
index 1abf3b4c1..18769c3d5 100644
--- a/apps/web/src/pages/_app.tsx
+++ b/apps/web/src/pages/_app.tsx
@@ -12,7 +12,7 @@ import { SessionProvider, signIn, useSession } from "next-auth/react";
import React from "react";
import Maintenance from "@/components/maintenance";
-import { UserProvider } from "@/components/user-provider";
+import { UserProvider } from "@/auth/client/user-provider";
import { I18nProvider } from "@/i18n/client";
import { trpc } from "@/trpc/client";
import { ConnectedDayjsProvider } from "@/utils/dayjs";
diff --git a/apps/web/src/pages/api/trpc/[trpc].ts b/apps/web/src/pages/api/trpc/[trpc].ts
index fe3e4383a..5f21c445f 100644
--- a/apps/web/src/pages/api/trpc/[trpc].ts
+++ b/apps/web/src/pages/api/trpc/[trpc].ts
@@ -4,6 +4,7 @@ import { TRPCError } from "@trpc/server";
import { createNextApiHandler } from "@trpc/server/adapters/next";
import { getServerSession } from "@/auth";
+import { getGuestUserFromApiRequest } from "@/auth/next";
import type { AppRouter } from "@/trpc/routers";
import { appRouter } from "@/trpc/routers";
import { getEmailClient } from "@/utils/emails";
@@ -19,27 +20,28 @@ const trpcApiHandler = createNextApiHandler({
router: appRouter,
createContext: async (opts) => {
const session = await getServerSession(opts.req, opts.res);
+ const guestUser = await getGuestUserFromApiRequest(opts.req);
- if (!session) {
- throw new TRPCError({
- code: "UNAUTHORIZED",
- message: "Unauthorized",
- });
+ const id = session?.user?.id || guestUser?.id;
+ const isGuest = !session?.user?.email;
+ const locale = session?.user?.locale ?? guestUser?.locale;
+ const image = session?.user?.image ?? undefined;
+
+ if (!id) {
+ throw new TRPCError({ code: "UNAUTHORIZED" });
}
- const res = {
+ return {
user: {
- id: session.user.id,
- isGuest: session.user.email === null,
- locale: session.user.locale ?? undefined,
- image: session.user.image ?? undefined,
- getEmailClient: () => getEmailClient(session.user.locale ?? undefined),
+ id,
+ isGuest,
+ locale,
+ image,
+ getEmailClient: () => getEmailClient(locale),
},
req: opts.req,
res: opts.res,
};
-
- return res;
},
onError({ error }) {
if (error.code === "INTERNAL_SERVER_ERROR") {
diff --git a/apps/web/src/trpc/routers/auth.ts b/apps/web/src/trpc/routers/auth.ts
index 3832f6711..7aea0c831 100644
--- a/apps/web/src/trpc/routers/auth.ts
+++ b/apps/web/src/trpc/routers/auth.ts
@@ -3,7 +3,7 @@ import { posthog } from "@rallly/posthog/server";
import { z } from "zod";
import { isEmailBlocked } from "@/auth";
-import { generateOtp } from "@/utils/nanoid";
+import { generateOtp } from "@rallly/utils/nanoid";
import { createToken, decryptToken } from "@/utils/session";
import { publicProcedure, rateLimitMiddleware, router } from "../trpc";
diff --git a/apps/web/src/trpc/routers/polls.ts b/apps/web/src/trpc/routers/polls.ts
index b6db0914b..73df076ca 100644
--- a/apps/web/src/trpc/routers/polls.ts
+++ b/apps/web/src/trpc/routers/polls.ts
@@ -2,6 +2,7 @@ import type { PollStatus } from "@rallly/database";
import { prisma } from "@rallly/database";
import { posthog } from "@rallly/posthog/server";
import { absoluteUrl, shortUrl } from "@rallly/utils/absolute-url";
+import { nanoid } from "@rallly/utils/nanoid";
import { TRPCError } from "@trpc/server";
import dayjs from "dayjs";
import * as ics from "ics";
@@ -10,7 +11,6 @@ import { z } from "zod";
import { getEmailClient } from "@/utils/emails";
import { getTimeZoneAbbreviation } from "../../utils/date";
-import { nanoid } from "../../utils/nanoid";
import {
possiblyPublicProcedure,
proProcedure,
diff --git a/packages/posthog/package.json b/packages/posthog/package.json
index 1497730d3..c8fe97255 100644
--- a/packages/posthog/package.json
+++ b/packages/posthog/package.json
@@ -9,7 +9,8 @@
"exports": {
"./server": "./src/server/index.ts",
"./client": "./src/client/index.ts",
- "./next": "./src/next.ts"
+ "./next": "./src/next.ts",
+ "./edge": "./src/edge.ts"
},
"dependencies": {
"posthog-js": "^1.180.1",
diff --git a/packages/tsconfig/base.json b/packages/tsconfig/base.json
index e35905d37..66373c9ff 100644
--- a/packages/tsconfig/base.json
+++ b/packages/tsconfig/base.json
@@ -3,10 +3,13 @@
"display": "Default",
"extends": "@tsconfig/strictest/tsconfig.json",
"compilerOptions": {
+ "module": "ESNext",
+ "moduleResolution": "Bundler",
"noPropertyAccessFromIndexSignature": false,
"exactOptionalPropertyTypes": false,
"noUncheckedIndexedAccess": false,
"noImplicitReturns": false,
- "verbatimModuleSyntax": true
+ "verbatimModuleSyntax": true,
+ "skipLibCheck": true
}
}
diff --git a/packages/utils/package.json b/packages/utils/package.json
index 11c1996f8..a2d804e66 100644
--- a/packages/utils/package.json
+++ b/packages/utils/package.json
@@ -1,5 +1,6 @@
{
"name": "@rallly/utils",
+ "type": "module",
"version": "0.0.0",
"private": true,
"scripts": {
@@ -8,6 +9,9 @@
"exports": {
"./*": "./src/*.ts"
},
+ "dependencies": {
+ "nanoid": "^4.0.0"
+ },
"devDependencies": {
"vitest": "^2.1.1"
}
diff --git a/apps/web/src/utils/nanoid.ts b/packages/utils/src/nanoid.ts
similarity index 100%
rename from apps/web/src/utils/nanoid.ts
rename to packages/utils/src/nanoid.ts
diff --git a/packages/utils/tsconfig.json b/packages/utils/tsconfig.json
index 49bb37363..b6d0718e9 100644
--- a/packages/utils/tsconfig.json
+++ b/packages/utils/tsconfig.json
@@ -2,6 +2,6 @@
"compilerOptions": {
"types": ["vitest/globals"],
},
- "extends": "@rallly/tsconfig/react.json",
+ "extends": "@rallly/tsconfig/base.json",
"include": ["**/*.ts", "**/*.tsx"],
}
diff --git a/yarn.lock b/yarn.lock
index 9ff1da5db..19eadaa2a 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3137,16 +3137,6 @@
"@opentelemetry/instrumentation" "^0.53.0"
"@opentelemetry/semantic-conventions" "^1.27.0"
-"@opentelemetry/instrumentation-connect@0.38.0":
- version "0.38.0"
- resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.38.0.tgz#1f4aa27894eac2538fb3c8fce7b1be92cae0217e"
- integrity sha512-2/nRnx3pjYEmdPIaBwtgtSviTKHWnDZN3R+TkRUnhIVrvBKVcq+I5B2rtd6mr6Fe9cHlZ9Ojcuh7pkNh/xdWWg==
- dependencies:
- "@opentelemetry/core" "^1.8.0"
- "@opentelemetry/instrumentation" "^0.52.0"
- "@opentelemetry/semantic-conventions" "^1.22.0"
- "@types/connect" "3.4.36"
-
"@opentelemetry/instrumentation-connect@0.39.0":
version "0.39.0"
resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.39.0.tgz#32bdbaac464cba061c95df6c850ee81efdd86f8b"
@@ -3164,15 +3154,6 @@
dependencies:
"@opentelemetry/instrumentation" "^0.53.0"
-"@opentelemetry/instrumentation-express@0.41.1":
- version "0.41.1"
- resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-express/-/instrumentation-express-0.41.1.tgz#658561df6ffbae86f5ad33e8d7ef2abb7b4967fc"
- integrity sha512-uRx0V3LPGzjn2bxAnV8eUsDT82vT7NTwI0ezEuPMBOTOsnPpGhWdhcdNdhH80sM4TrWrOfXm9HGEdfWE3TRIww==
- dependencies:
- "@opentelemetry/core" "^1.8.0"
- "@opentelemetry/instrumentation" "^0.52.0"
- "@opentelemetry/semantic-conventions" "^1.22.0"
-
"@opentelemetry/instrumentation-express@0.42.0":
version "0.42.0"
resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-express/-/instrumentation-express-0.42.0.tgz#279f195aa66baee2b98623a16666c6229c8e7564"
@@ -3182,15 +3163,6 @@
"@opentelemetry/instrumentation" "^0.53.0"
"@opentelemetry/semantic-conventions" "^1.27.0"
-"@opentelemetry/instrumentation-fastify@0.38.0":
- version "0.38.0"
- resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-fastify/-/instrumentation-fastify-0.38.0.tgz#0cb02ee1156197075e8a90e4fd18a6b6c94221ba"
- integrity sha512-HBVLpTSYpkQZ87/Df3N0gAw7VzYZV3n28THIBrJWfuqw3Or7UqdhnjeuMIPQ04BKk3aZc0cWn2naSQObbh5vXw==
- dependencies:
- "@opentelemetry/core" "^1.8.0"
- "@opentelemetry/instrumentation" "^0.52.0"
- "@opentelemetry/semantic-conventions" "^1.22.0"
-
"@opentelemetry/instrumentation-fastify@0.39.0":
version "0.39.0"
resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-fastify/-/instrumentation-fastify-0.39.0.tgz#96a040e4944daf77c53a8fe5a128bc3b2568e4aa"
@@ -3200,14 +3172,6 @@
"@opentelemetry/instrumentation" "^0.53.0"
"@opentelemetry/semantic-conventions" "^1.27.0"
-"@opentelemetry/instrumentation-fs@0.14.0":
- version "0.14.0"
- resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-fs/-/instrumentation-fs-0.14.0.tgz#19f1cb38a8c2d05f3b96af67f1c8d43f0af2829b"
- integrity sha512-pVc8P5AgliC1DphyyBUgsxXlm2XaPH4BpYvt7rAZDMIqUpRk8gs19SioABtKqqxvFzg5jPtgJfJsdxq0Y+maLw==
- dependencies:
- "@opentelemetry/core" "^1.8.0"
- "@opentelemetry/instrumentation" "^0.52.0"
-
"@opentelemetry/instrumentation-fs@0.15.0":
version "0.15.0"
resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-fs/-/instrumentation-fs-0.15.0.tgz#41658507860f39fee5209bca961cea8d24ca2a83"
@@ -3223,13 +3187,6 @@
dependencies:
"@opentelemetry/instrumentation" "^0.53.0"
-"@opentelemetry/instrumentation-graphql@0.42.0":
- version "0.42.0"
- resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-graphql/-/instrumentation-graphql-0.42.0.tgz#588a18c39e3b3f655bc09243566172ab0b638d35"
- integrity sha512-N8SOwoKL9KQSX7z3gOaw5UaTeVQcfDO1c21csVHnmnmGUoqsXbArK2B8VuwPWcv6/BC/i3io+xTo7QGRZ/z28Q==
- dependencies:
- "@opentelemetry/instrumentation" "^0.52.0"
-
"@opentelemetry/instrumentation-graphql@0.43.0":
version "0.43.0"
resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-graphql/-/instrumentation-graphql-0.43.0.tgz#71bb94ea775c70dbd388c739b397ec1418f3f170"
@@ -3237,15 +3194,6 @@
dependencies:
"@opentelemetry/instrumentation" "^0.53.0"
-"@opentelemetry/instrumentation-hapi@0.40.0":
- version "0.40.0"
- resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.40.0.tgz#ae11190f0f57cdb4dc8d792cb8bca61e5343684c"
- integrity sha512-8U/w7Ifumtd2bSN1OLaSwAAFhb9FyqWUki3lMMB0ds+1+HdSxYBe9aspEJEgvxAqOkrQnVniAPTEGf1pGM7SOw==
- dependencies:
- "@opentelemetry/core" "^1.8.0"
- "@opentelemetry/instrumentation" "^0.52.0"
- "@opentelemetry/semantic-conventions" "^1.22.0"
-
"@opentelemetry/instrumentation-hapi@0.41.0":
version "0.41.0"
resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.41.0.tgz#de8711907256d8fae1b5faf71fc825cef4a7ddbb"
@@ -3255,16 +3203,6 @@
"@opentelemetry/instrumentation" "^0.53.0"
"@opentelemetry/semantic-conventions" "^1.27.0"
-"@opentelemetry/instrumentation-http@0.52.1":
- version "0.52.1"
- resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-http/-/instrumentation-http-0.52.1.tgz#12061501601838d1c912f9c29bdd40a13a7e44cf"
- integrity sha512-dG/aevWhaP+7OLv4BQQSEKMJv8GyeOp3Wxl31NHqE8xo9/fYMfEljiZphUHIfyg4gnZ9swMyWjfOQs5GUQe54Q==
- dependencies:
- "@opentelemetry/core" "1.25.1"
- "@opentelemetry/instrumentation" "0.52.1"
- "@opentelemetry/semantic-conventions" "1.25.1"
- semver "^7.5.2"
-
"@opentelemetry/instrumentation-http@0.53.0":
version "0.53.0"
resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-http/-/instrumentation-http-0.53.0.tgz#0d806adf1b3aba036bc46e16162e3c0dbb8a6b60"
@@ -3275,15 +3213,6 @@
"@opentelemetry/semantic-conventions" "1.27.0"
semver "^7.5.2"
-"@opentelemetry/instrumentation-ioredis@0.42.0":
- version "0.42.0"
- resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-ioredis/-/instrumentation-ioredis-0.42.0.tgz#0f488ffc68af3caa474e2f67861759075170729c"
- integrity sha512-P11H168EKvBB9TUSasNDOGJCSkpT44XgoM6d3gRIWAa9ghLpYhl0uRkS8//MqPzcJVHr3h3RmfXIpiYLjyIZTw==
- dependencies:
- "@opentelemetry/instrumentation" "^0.52.0"
- "@opentelemetry/redis-common" "^0.36.2"
- "@opentelemetry/semantic-conventions" "^1.23.0"
-
"@opentelemetry/instrumentation-ioredis@0.43.0":
version "0.43.0"
resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-ioredis/-/instrumentation-ioredis-0.43.0.tgz#dbadabaeefc4cb47c406f878444f1bcac774fa89"
@@ -3301,15 +3230,6 @@
"@opentelemetry/instrumentation" "^0.53.0"
"@opentelemetry/semantic-conventions" "^1.27.0"
-"@opentelemetry/instrumentation-koa@0.42.0":
- version "0.42.0"
- resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-koa/-/instrumentation-koa-0.42.0.tgz#1c180f3605448c2e57a4ba073b69ffba7b2970b3"
- integrity sha512-H1BEmnMhho8o8HuNRq5zEI4+SIHDIglNB7BPKohZyWG4fWNuR7yM4GTlR01Syq21vODAS7z5omblScJD/eZdKw==
- dependencies:
- "@opentelemetry/core" "^1.8.0"
- "@opentelemetry/instrumentation" "^0.52.0"
- "@opentelemetry/semantic-conventions" "^1.22.0"
-
"@opentelemetry/instrumentation-koa@0.43.0":
version "0.43.0"
resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-koa/-/instrumentation-koa-0.43.0.tgz#963fd192a1b5f6cbae5dabf4ec82e3105cbb23b1"
@@ -3319,15 +3239,6 @@
"@opentelemetry/instrumentation" "^0.53.0"
"@opentelemetry/semantic-conventions" "^1.27.0"
-"@opentelemetry/instrumentation-mongodb@0.46.0":
- version "0.46.0"
- resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.46.0.tgz#e3720e8ca3ca9f228fbf02f0812f7518c030b05e"
- integrity sha512-VF/MicZ5UOBiXrqBslzwxhN7TVqzu1/LN/QDpkskqM0Zm0aZ4CVRbUygL8d7lrjLn15x5kGIe8VsSphMfPJzlA==
- dependencies:
- "@opentelemetry/instrumentation" "^0.52.0"
- "@opentelemetry/sdk-metrics" "^1.9.1"
- "@opentelemetry/semantic-conventions" "^1.22.0"
-
"@opentelemetry/instrumentation-mongodb@0.47.0":
version "0.47.0"
resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.47.0.tgz#f8107d878281433905e717f223fb4c0f10356a7b"
@@ -3337,15 +3248,6 @@
"@opentelemetry/sdk-metrics" "^1.9.1"
"@opentelemetry/semantic-conventions" "^1.27.0"
-"@opentelemetry/instrumentation-mongoose@0.40.0":
- version "0.40.0"
- resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.40.0.tgz#9c888312e524c381bfdf56a094c799150332dd51"
- integrity sha512-niRi5ZUnkgzRhIGMOozTyoZIvJKNJyhijQI4nF4iFSb+FUx2v5fngfR+8XLmdQAO7xmsD8E5vEGdDVYVtKbZew==
- dependencies:
- "@opentelemetry/core" "^1.8.0"
- "@opentelemetry/instrumentation" "^0.52.0"
- "@opentelemetry/semantic-conventions" "^1.22.0"
-
"@opentelemetry/instrumentation-mongoose@0.42.0":
version "0.42.0"
resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.42.0.tgz#375afd21adfcd897a8f521c1ffd2d91e6a428705"
@@ -3355,15 +3257,6 @@
"@opentelemetry/instrumentation" "^0.53.0"
"@opentelemetry/semantic-conventions" "^1.27.0"
-"@opentelemetry/instrumentation-mysql2@0.40.0":
- version "0.40.0"
- resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.40.0.tgz#fa2992c36d54427dccea68e5c69fff01103dabe6"
- integrity sha512-0xfS1xcqUmY7WE1uWjlmI67Xg3QsSUlNT+AcXHeA4BDUPwZtWqF4ezIwLgpVZfHOnkAEheqGfNSWd1PIu3Wnfg==
- dependencies:
- "@opentelemetry/instrumentation" "^0.52.0"
- "@opentelemetry/semantic-conventions" "^1.22.0"
- "@opentelemetry/sql-common" "^0.40.1"
-
"@opentelemetry/instrumentation-mysql2@0.41.0":
version "0.41.0"
resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.41.0.tgz#6377b6e2d2487fd88e1d79aa03658db6c8d51651"
@@ -3373,15 +3266,6 @@
"@opentelemetry/semantic-conventions" "^1.27.0"
"@opentelemetry/sql-common" "^0.40.1"
-"@opentelemetry/instrumentation-mysql@0.40.0":
- version "0.40.0"
- resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.40.0.tgz#bde5894c8eb447a4b8e940b030b2b73898da03fa"
- integrity sha512-d7ja8yizsOCNMYIJt5PH/fKZXjb/mS48zLROO4BzZTtDfhNCl2UM/9VIomP2qkGIFVouSJrGr/T00EzY7bPtKA==
- dependencies:
- "@opentelemetry/instrumentation" "^0.52.0"
- "@opentelemetry/semantic-conventions" "^1.22.0"
- "@types/mysql" "2.15.22"
-
"@opentelemetry/instrumentation-mysql@0.41.0":
version "0.41.0"
resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.41.0.tgz#2d50691ead5219774bd36d66c35d5b4681485dd7"
@@ -3391,14 +3275,6 @@
"@opentelemetry/semantic-conventions" "^1.27.0"
"@types/mysql" "2.15.26"
-"@opentelemetry/instrumentation-nestjs-core@0.39.0":
- version "0.39.0"
- resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-nestjs-core/-/instrumentation-nestjs-core-0.39.0.tgz#733fef4306c796951d7ea1951b45f9df0aed234d"
- integrity sha512-mewVhEXdikyvIZoMIUry8eb8l3HUjuQjSjVbmLVTt4NQi35tkpnHQrG9bTRBrl3403LoWZ2njMPJyg4l6HfKvA==
- dependencies:
- "@opentelemetry/instrumentation" "^0.52.0"
- "@opentelemetry/semantic-conventions" "^1.23.0"
-
"@opentelemetry/instrumentation-nestjs-core@0.40.0":
version "0.40.0"
resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-nestjs-core/-/instrumentation-nestjs-core-0.40.0.tgz#2c0e6405b56caaec32747d55c57ff9a034668ea8"
@@ -3407,17 +3283,6 @@
"@opentelemetry/instrumentation" "^0.53.0"
"@opentelemetry/semantic-conventions" "^1.27.0"
-"@opentelemetry/instrumentation-pg@0.43.0":
- version "0.43.0"
- resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.43.0.tgz#3cd94ad5144e1fd326a921280fa8bb7b49005eb5"
- integrity sha512-og23KLyoxdnAeFs1UWqzSonuCkePUzCX30keSYigIzJe/6WSYA8rnEI5lobcxPEzg+GcU06J7jzokuEHbjVJNw==
- dependencies:
- "@opentelemetry/instrumentation" "^0.52.0"
- "@opentelemetry/semantic-conventions" "^1.22.0"
- "@opentelemetry/sql-common" "^0.40.1"
- "@types/pg" "8.6.1"
- "@types/pg-pool" "2.0.4"
-
"@opentelemetry/instrumentation-pg@0.44.0":
version "0.44.0"
resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.44.0.tgz#1e97a0aeb2dca068ee23ce75884a0a0063a7ce3f"
@@ -3429,15 +3294,6 @@
"@types/pg" "8.6.1"
"@types/pg-pool" "2.0.6"
-"@opentelemetry/instrumentation-redis-4@0.41.0":
- version "0.41.0"
- resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-redis-4/-/instrumentation-redis-4-0.41.0.tgz#6c1b1a37c18478887f346a3bc7ef309ee9f726c0"
- integrity sha512-H7IfGTqW2reLXqput4yzAe8YpDC0fmVNal95GHMLOrS89W+qWUKIqxolSh63hJyfmwPSFwXASzj7wpSk8Az+Dg==
- dependencies:
- "@opentelemetry/instrumentation" "^0.52.0"
- "@opentelemetry/redis-common" "^0.36.2"
- "@opentelemetry/semantic-conventions" "^1.22.0"
-
"@opentelemetry/instrumentation-redis-4@0.42.0":
version "0.42.0"
resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-redis-4/-/instrumentation-redis-4-0.42.0.tgz#fc01104cfe884c7546385eaae03c57a47edd19d1"
@@ -3455,18 +3311,6 @@
"@opentelemetry/core" "^1.8.0"
"@opentelemetry/instrumentation" "^0.53.0"
-"@opentelemetry/instrumentation@0.52.1", "@opentelemetry/instrumentation@^0.49 || ^0.50 || ^0.51 || ^0.52.0", "@opentelemetry/instrumentation@^0.52.0", "@opentelemetry/instrumentation@^0.52.1":
- version "0.52.1"
- resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation/-/instrumentation-0.52.1.tgz#2e7e46a38bd7afbf03cf688c862b0b43418b7f48"
- integrity sha512-uXJbYU/5/MBHjMp1FqrILLRuiJCs3Ofk0MeRDk8g1S1gD47U8X3JnSwcMO1rtRo1x1a7zKaQHaoYu49p/4eSKw==
- dependencies:
- "@opentelemetry/api-logs" "0.52.1"
- "@types/shimmer" "^1.0.2"
- import-in-the-middle "^1.8.1"
- require-in-the-middle "^7.1.1"
- semver "^7.5.2"
- shimmer "^1.2.1"
-
"@opentelemetry/instrumentation@0.53.0", "@opentelemetry/instrumentation@^0.53.0":
version "0.53.0"
resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation/-/instrumentation-0.53.0.tgz#e6369e4015eb5112468a4d45d38dcada7dad892d"
@@ -3479,13 +3323,14 @@
semver "^7.5.2"
shimmer "^1.2.1"
-"@opentelemetry/instrumentation@^0.46.0":
- version "0.46.0"
- resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation/-/instrumentation-0.46.0.tgz#a8a252306f82e2eace489312798592a14eb9830e"
- integrity sha512-a9TijXZZbk0vI5TGLZl+0kxyFfrXHhX6Svtz7Pp2/VBlCSKrazuULEyoJQrOknJyFWNMEmbbJgOciHCCpQcisw==
+"@opentelemetry/instrumentation@^0.49 || ^0.50 || ^0.51 || ^0.52.0":
+ version "0.52.1"
+ resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation/-/instrumentation-0.52.1.tgz#2e7e46a38bd7afbf03cf688c862b0b43418b7f48"
+ integrity sha512-uXJbYU/5/MBHjMp1FqrILLRuiJCs3Ofk0MeRDk8g1S1gD47U8X3JnSwcMO1rtRo1x1a7zKaQHaoYu49p/4eSKw==
dependencies:
+ "@opentelemetry/api-logs" "0.52.1"
"@types/shimmer" "^1.0.2"
- import-in-the-middle "1.7.1"
+ import-in-the-middle "^1.8.1"
require-in-the-middle "^7.1.1"
semver "^7.5.2"
shimmer "^1.2.1"
@@ -3495,7 +3340,7 @@
resolved "https://registry.yarnpkg.com/@opentelemetry/redis-common/-/redis-common-0.36.2.tgz#906ac8e4d804d4109f3ebd5c224ac988276fdc47"
integrity sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g==
-"@opentelemetry/resources@1.25.1", "@opentelemetry/resources@^1.25.1":
+"@opentelemetry/resources@1.25.1":
version "1.25.1"
resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-1.25.1.tgz#bb9a674af25a1a6c30840b755bc69da2796fefbb"
integrity sha512-pkZT+iFYIZsVn6+GzM0kSX+u3MSLCY9md+lIJOoKl/P+gJFfxJte/60Usdp8Ce4rOs8GduUpSPNe1ddGyDT1sQ==
@@ -3520,7 +3365,7 @@
"@opentelemetry/resources" "1.25.1"
lodash.merge "^4.6.2"
-"@opentelemetry/sdk-trace-base@^1.22", "@opentelemetry/sdk-trace-base@^1.25.1":
+"@opentelemetry/sdk-trace-base@^1.22":
version "1.25.1"
resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.25.1.tgz#cbc1e60af255655d2020aa14cde17b37bd13df37"
integrity sha512-C8k4hnEbc5FamuZQ92nTOp8X/diCY56XUTnMiv9UTuJitCzaNNHAVsdm5+HLCdI8SLQsLWIrG38tddMxLVoftw==
@@ -3538,7 +3383,7 @@
"@opentelemetry/resources" "1.26.0"
"@opentelemetry/semantic-conventions" "1.27.0"
-"@opentelemetry/semantic-conventions@1.25.1", "@opentelemetry/semantic-conventions@^1.17.0", "@opentelemetry/semantic-conventions@^1.22.0", "@opentelemetry/semantic-conventions@^1.23.0", "@opentelemetry/semantic-conventions@^1.25.1":
+"@opentelemetry/semantic-conventions@1.25.1":
version "1.25.1"
resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.25.1.tgz#0deecb386197c5e9c2c28f2f89f51fb8ae9f145e"
integrity sha512-ZDjMJJQRlyk8A1KZFCc+bCbsyrn1wTwdNt56F7twdfUfnHUZUq77/WfONCj8p72NZOyP7pNTdUWSTYC3GTbuuQ==
@@ -3650,15 +3495,6 @@
dependencies:
"@prisma/debug" "5.17.0"
-"@prisma/instrumentation@5.18.0":
- version "5.18.0"
- resolved "https://registry.yarnpkg.com/@prisma/instrumentation/-/instrumentation-5.18.0.tgz#8b49e25bf3f8f756eb0c4c199b4cf8b6631db891"
- integrity sha512-r074avGkpPXItk+josQPhufZEmGhUCb16PQx4ITPS40vWTpTPET4VsgCBZB2alIN6SS7pRFod2vz2M2HHEEylQ==
- dependencies:
- "@opentelemetry/api" "^1.8"
- "@opentelemetry/instrumentation" "^0.49 || ^0.50 || ^0.51 || ^0.52.0"
- "@opentelemetry/sdk-trace-base" "^1.22"
-
"@prisma/instrumentation@5.19.1":
version "5.19.1"
resolved "https://registry.yarnpkg.com/@prisma/instrumentation/-/instrumentation-5.19.1.tgz#146319cf85f22b7a43296f0f40cfeac55516e66e"
@@ -4877,15 +4713,6 @@
domhandler "^5.0.3"
selderee "^0.11.0"
-"@sentry-internal/browser-utils@8.27.0":
- version "8.27.0"
- resolved "https://registry.yarnpkg.com/@sentry-internal/browser-utils/-/browser-utils-8.27.0.tgz#b8fd1c5e6b8c01d76abbba7ac5017eebcf7d3ed2"
- integrity sha512-YTIwQ1GM1NTRXgN4DvpFSQ2x4pjlqQ0FQAyHW5x2ZYv4z7VmqG4Xkid1P/srQUipECk6nxkebfD4WR19nLsvnQ==
- dependencies:
- "@sentry/core" "8.27.0"
- "@sentry/types" "8.27.0"
- "@sentry/utils" "8.27.0"
-
"@sentry-internal/browser-utils@8.32.0":
version "8.32.0"
resolved "https://registry.yarnpkg.com/@sentry-internal/browser-utils/-/browser-utils-8.32.0.tgz#9bcea7d107d5adc82ed9331168468ee44eef8f2d"
@@ -4895,15 +4722,6 @@
"@sentry/types" "8.32.0"
"@sentry/utils" "8.32.0"
-"@sentry-internal/feedback@8.27.0":
- version "8.27.0"
- resolved "https://registry.yarnpkg.com/@sentry-internal/feedback/-/feedback-8.27.0.tgz#46a4cbde49d7a1cb182792c28341a8c89249e6b1"
- integrity sha512-b71PQc9aK1X9b/SO1DiJlrnAEx4n0MzPZQ/tKd9oRWDyGit6pJWZfQns9r2rvc96kJPMOTxFAa/upXRCkA723A==
- dependencies:
- "@sentry/core" "8.27.0"
- "@sentry/types" "8.27.0"
- "@sentry/utils" "8.27.0"
-
"@sentry-internal/feedback@8.32.0":
version "8.32.0"
resolved "https://registry.yarnpkg.com/@sentry-internal/feedback/-/feedback-8.32.0.tgz#ac9a08b060d1016704e42f8c2726ead419f64061"
@@ -4913,16 +4731,6 @@
"@sentry/types" "8.32.0"
"@sentry/utils" "8.32.0"
-"@sentry-internal/replay-canvas@8.27.0":
- version "8.27.0"
- resolved "https://registry.yarnpkg.com/@sentry-internal/replay-canvas/-/replay-canvas-8.27.0.tgz#24a154f37b200ed99bb99a39cf98c35f25c2b93b"
- integrity sha512-uuEfiWbjwugB9M4KxXxovHYiKRqg/R6U4EF8xM/Ub4laUuEcWsfRp7lQ3MxL3qYojbca8ncIFic2bIoKMPeejA==
- dependencies:
- "@sentry-internal/replay" "8.27.0"
- "@sentry/core" "8.27.0"
- "@sentry/types" "8.27.0"
- "@sentry/utils" "8.27.0"
-
"@sentry-internal/replay-canvas@8.32.0":
version "8.32.0"
resolved "https://registry.yarnpkg.com/@sentry-internal/replay-canvas/-/replay-canvas-8.32.0.tgz#5d56161b0b62b22cbd49db120e3ea56b370ead8c"
@@ -4933,16 +4741,6 @@
"@sentry/types" "8.32.0"
"@sentry/utils" "8.32.0"
-"@sentry-internal/replay@8.27.0":
- version "8.27.0"
- resolved "https://registry.yarnpkg.com/@sentry-internal/replay/-/replay-8.27.0.tgz#7762647930c3a9b3d99f6d4c486b28f9d3da70c2"
- integrity sha512-Ofucncaon98dvlxte2L//hwuG9yILSxNrTz/PmO0k+HzB9q+oBic4667QF+azWR2qv4oKSWpc+vEovP3hVqveA==
- dependencies:
- "@sentry-internal/browser-utils" "8.27.0"
- "@sentry/core" "8.27.0"
- "@sentry/types" "8.27.0"
- "@sentry/utils" "8.27.0"
-
"@sentry-internal/replay@8.32.0":
version "8.32.0"
resolved "https://registry.yarnpkg.com/@sentry-internal/replay/-/replay-8.32.0.tgz#59e3ec7b51c9214eeae9fa617490b89ce6737e1c"
@@ -4953,29 +4751,11 @@
"@sentry/types" "8.32.0"
"@sentry/utils" "8.32.0"
-"@sentry/babel-plugin-component-annotate@2.20.1":
- version "2.20.1"
- resolved "https://registry.yarnpkg.com/@sentry/babel-plugin-component-annotate/-/babel-plugin-component-annotate-2.20.1.tgz#204c63ed006a048f48f633876e1b8bacf87a9722"
- integrity sha512-4mhEwYTK00bIb5Y9UWIELVUfru587Vaeg0DQGswv4aIRHIiMKLyNqCEejaaybQ/fNChIZOKmvyqXk430YVd7Qg==
-
"@sentry/babel-plugin-component-annotate@2.22.3":
version "2.22.3"
resolved "https://registry.yarnpkg.com/@sentry/babel-plugin-component-annotate/-/babel-plugin-component-annotate-2.22.3.tgz#de4970d51a54ef52b21f0d6ec49bd06bf37753c1"
integrity sha512-OlHA+i+vnQHRIdry4glpiS/xTOtgjmpXOt6IBOUqynx5Jd/iK1+fj+t8CckqOx9wRacO/hru2wfW/jFq0iViLg==
-"@sentry/browser@8.27.0":
- version "8.27.0"
- resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-8.27.0.tgz#997eb6b3c298a659a109704a0fb660eae365cd3a"
- integrity sha512-eL1eaHwoYUGkp4mpeYesH6WtCrm+0u9jYCW5Lm0MAeTmpx22BZKEmj0OljuUJXGnJwFbvPDlRjyz6QG11m8kZA==
- dependencies:
- "@sentry-internal/browser-utils" "8.27.0"
- "@sentry-internal/feedback" "8.27.0"
- "@sentry-internal/replay" "8.27.0"
- "@sentry-internal/replay-canvas" "8.27.0"
- "@sentry/core" "8.27.0"
- "@sentry/types" "8.27.0"
- "@sentry/utils" "8.27.0"
-
"@sentry/browser@8.32.0":
version "8.32.0"
resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-8.32.0.tgz#3944bc5178e6cfffc8c71ba05920fee7dec5bd38"
@@ -4989,20 +4769,6 @@
"@sentry/types" "8.32.0"
"@sentry/utils" "8.32.0"
-"@sentry/bundler-plugin-core@2.20.1":
- version "2.20.1"
- resolved "https://registry.yarnpkg.com/@sentry/bundler-plugin-core/-/bundler-plugin-core-2.20.1.tgz#c9dd35e2177a4c22ecf675558eb84fbc2607e465"
- integrity sha512-6ipbmGzHekxeRCbp7eoefr6bdd/lW4cNA9eNnrmd9+PicubweGaZZbH2NjhFHsaxzgOezwipDHjrTaap2kTHgw==
- dependencies:
- "@babel/core" "^7.18.5"
- "@sentry/babel-plugin-component-annotate" "2.20.1"
- "@sentry/cli" "^2.22.3"
- dotenv "^16.3.1"
- find-up "^5.0.0"
- glob "^9.3.2"
- magic-string "0.30.8"
- unplugin "1.0.1"
-
"@sentry/bundler-plugin-core@2.22.3":
version "2.22.3"
resolved "https://registry.yarnpkg.com/@sentry/bundler-plugin-core/-/bundler-plugin-core-2.22.3.tgz#f8c0a25321216ae9777749c1a4b9d982ae1ec2e1"
@@ -5017,95 +4783,41 @@
magic-string "0.30.8"
unplugin "1.0.1"
-"@sentry/cli-darwin@2.32.1":
- version "2.32.1"
- resolved "https://registry.yarnpkg.com/@sentry/cli-darwin/-/cli-darwin-2.32.1.tgz#9cb3b8cfb7068d40979514dee72e2bb3ad2c6d0a"
- integrity sha512-z/lEwANTYPCzbWTZ2+eeeNYxRLllC8knd0h+vtAKlhmGw/fyc/N39cznIFyFu+dLJ6tTdjOWOeikHtKuS/7onw==
-
"@sentry/cli-darwin@2.36.3":
version "2.36.3"
resolved "https://registry.yarnpkg.com/@sentry/cli-darwin/-/cli-darwin-2.36.3.tgz#17798bb784d09dfa3c91cbe68366c6403527cd11"
integrity sha512-U0Uean/tW99G5Ma3CjNDXg5bjd4Tmf91Sd/9JKK6dGcEsrWiQpn7ao70kkHy/fwMbeOWE37L7O+NPf86CxHzGA==
-"@sentry/cli-linux-arm64@2.32.1":
- version "2.32.1"
- resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.32.1.tgz#785a5d5d3d2919c581bf5b4efc638c3695d8c3bf"
- integrity sha512-hsGqHYuecUl1Yhq4MhiRejfh1gNlmhyNPcQEoO/DDRBnGnJyEAdiDpKXJcc2e/lT9k40B55Ob2CP1SeY040T2w==
-
"@sentry/cli-linux-arm64@2.36.3":
version "2.36.3"
resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.36.3.tgz#0133753bbd6fc624815bb34afa69f5fd3c703013"
integrity sha512-bNr9GUYsn+VcK09FjE+llvxUwtPFAva6FMIcYiAKi6iY3wdmtaOou0Mtkd9dQXkxONAZ0T113x/WQANKBjl4+A==
-"@sentry/cli-linux-arm@2.32.1":
- version "2.32.1"
- resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm/-/cli-linux-arm-2.32.1.tgz#7f9e8292850311bab263e7b84800eb407ff37998"
- integrity sha512-m0lHkn+o4YKBq8KptGZvpT64FAwSl9mYvHZO9/ChnEGIJ/WyJwiN1X1r9JHVaW4iT5lD0Y5FAyq3JLkk0m0XHg==
-
"@sentry/cli-linux-arm@2.36.3":
version "2.36.3"
resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm/-/cli-linux-arm-2.36.3.tgz#673e0870561480bca034c4db389c374ceebf3dfb"
integrity sha512-Kq8+TG/p/j0GLlJVxnLguAGcp3EqrU4msl4K+7g+6JYnOPLVbUzwZ6ah2WVGtWqlZ3QMFgeeXc7VgPY8KXViqw==
-"@sentry/cli-linux-i686@2.32.1":
- version "2.32.1"
- resolved "https://registry.yarnpkg.com/@sentry/cli-linux-i686/-/cli-linux-i686-2.32.1.tgz#8e85fa58dee042e6a4642e960d226788f8e7288b"
- integrity sha512-SuMLN1/ceFd3Q/B0DVyh5igjetTAF423txiABAHASenEev0lG0vZkRDXFclfgDtDUKRPmOXW7VDMirM3yZWQHQ==
-
"@sentry/cli-linux-i686@2.36.3":
version "2.36.3"
resolved "https://registry.yarnpkg.com/@sentry/cli-linux-i686/-/cli-linux-i686-2.36.3.tgz#2cb08f8aaf8a9f1e1207ea7ef00e5635a744698e"
integrity sha512-5J5lOzZgvhcjbtuw/JD7jMq1liNbtYXvEuSd+qZa7D8i+Va5cFF8fQui3eev2RxqeYLLwkJWE/djLjeWjMZ7jQ==
-"@sentry/cli-linux-x64@2.32.1":
- version "2.32.1"
- resolved "https://registry.yarnpkg.com/@sentry/cli-linux-x64/-/cli-linux-x64-2.32.1.tgz#b68ed9c4ba163b6730d386dbeca828114f1c979b"
- integrity sha512-x4FGd6xgvFddz8V/dh6jii4wy9qjWyvYLBTz8Fhi9rIP+b8wQ3oxwHIdzntareetZP7C1ggx+hZheiYocNYVwA==
-
"@sentry/cli-linux-x64@2.36.3":
version "2.36.3"
resolved "https://registry.yarnpkg.com/@sentry/cli-linux-x64/-/cli-linux-x64-2.36.3.tgz#97587b3e4b65f36bfbe66823dabec98e723b5c17"
integrity sha512-48pyk93yRiQ7x7ABobYupVfGg1f/vUrBZG7CcaIsDiQL66/kIRjYoh7d7kH8Da/x/LKMiVf/i8/rh2Vr1pcSEw==
-"@sentry/cli-win32-i686@2.32.1":
- version "2.32.1"
- resolved "https://registry.yarnpkg.com/@sentry/cli-win32-i686/-/cli-win32-i686-2.32.1.tgz#e2532893f87f5d180f6e56f49904d4ac141c8788"
- integrity sha512-i6aZma9mFzR+hqMY5VliQZEX6ypP/zUjPK0VtIMYWs5cC6PsQLRmuoeJmy3Z7d4nlh0CdK5NPC813Ej6RY6/vg==
-
"@sentry/cli-win32-i686@2.36.3":
version "2.36.3"
resolved "https://registry.yarnpkg.com/@sentry/cli-win32-i686/-/cli-win32-i686-2.36.3.tgz#c953ce5c91bd75618b21c7b50bf4326435863824"
integrity sha512-IEuTCeQjgffvBjDGVYV9d2uWBzmFGmwWIyWUTEMjy76tRnIz0MJaW59Lxd7JdTd1s9xO1F2K7Iz+zxd/kufMRg==
-"@sentry/cli-win32-x64@2.32.1":
- version "2.32.1"
- resolved "https://registry.yarnpkg.com/@sentry/cli-win32-x64/-/cli-win32-x64-2.32.1.tgz#6b60607cbba243f3708779443cd3f16e09d4289c"
- integrity sha512-B58w/lRHLb4MUSjJNfMMw2cQykfimDCMLMmeK+1EiT2RmSeNQliwhhBxYcKk82a8kszH6zg3wT2vCea7LyPUyA==
-
"@sentry/cli-win32-x64@2.36.3":
version "2.36.3"
resolved "https://registry.yarnpkg.com/@sentry/cli-win32-x64/-/cli-win32-x64-2.36.3.tgz#01cf4dd581f0a7871397569fc459062a98a51e4f"
integrity sha512-ygJLd3nazoNcDMJu1sl8xoSWmmjeBJMMUH6MnDhtQdM9T2j+ndqfL0fZZNO0/kyMv0Bo7/n5kRmKiX2m9Dsi/g==
-"@sentry/cli@^2.22.3":
- version "2.32.1"
- resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-2.32.1.tgz#80932d3d58e6d3b52e2bd705673e08deeb9cb5b0"
- integrity sha512-MWkbkzZfnlE7s2pPbg4VozRSAeMlIObfZlTIou9ye6XnPt6ZmmxCLOuOgSKMv4sXg6aeqKNzMNiadThxCWyvPg==
- dependencies:
- https-proxy-agent "^5.0.0"
- node-fetch "^2.6.7"
- progress "^2.0.3"
- proxy-from-env "^1.1.0"
- which "^2.0.2"
- optionalDependencies:
- "@sentry/cli-darwin" "2.32.1"
- "@sentry/cli-linux-arm" "2.32.1"
- "@sentry/cli-linux-arm64" "2.32.1"
- "@sentry/cli-linux-i686" "2.32.1"
- "@sentry/cli-linux-x64" "2.32.1"
- "@sentry/cli-win32-i686" "2.32.1"
- "@sentry/cli-win32-x64" "2.32.1"
-
"@sentry/cli@^2.33.1":
version "2.36.3"
resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-2.36.3.tgz#8f0545251c0cf90fe492ce8ca46869d17f5021cd"
@@ -5125,14 +4837,6 @@
"@sentry/cli-win32-i686" "2.36.3"
"@sentry/cli-win32-x64" "2.36.3"
-"@sentry/core@8.27.0":
- version "8.27.0"
- resolved "https://registry.yarnpkg.com/@sentry/core/-/core-8.27.0.tgz#a0ebe31cdd9313186a14d9738238ed9cf7a59c01"
- integrity sha512-4frlXluHT3Du+Omw91K04jpvbfMtydvg4Bxj2+gt/DT19Swhm/fbEpzdUjgbAd3Jinj/n0qk/jFRXjr9JZKFjg==
- dependencies:
- "@sentry/types" "8.27.0"
- "@sentry/utils" "8.27.0"
-
"@sentry/core@8.32.0":
version "8.32.0"
resolved "https://registry.yarnpkg.com/@sentry/core/-/core-8.32.0.tgz#7c4b74afa7a15bd31f5e6881aac82ccfd753e1d6"
@@ -5141,27 +4845,6 @@
"@sentry/types" "8.32.0"
"@sentry/utils" "8.32.0"
-"@sentry/nextjs@*":
- version "8.27.0"
- resolved "https://registry.yarnpkg.com/@sentry/nextjs/-/nextjs-8.27.0.tgz#c6fece7bf856777e3b4b9d67db67af84df68a29c"
- integrity sha512-fJgyBZj+arrNDtmxyKlWBm9ApxyzU3ydZPviSK3ub9gJemk0YqW/IKjF3PojtqLvtBnT81heDb/cysBadb+WpA==
- dependencies:
- "@opentelemetry/instrumentation-http" "0.52.1"
- "@opentelemetry/semantic-conventions" "^1.25.1"
- "@rollup/plugin-commonjs" "26.0.1"
- "@sentry/core" "8.27.0"
- "@sentry/node" "8.27.0"
- "@sentry/opentelemetry" "8.27.0"
- "@sentry/react" "8.27.0"
- "@sentry/types" "8.27.0"
- "@sentry/utils" "8.27.0"
- "@sentry/vercel-edge" "8.27.0"
- "@sentry/webpack-plugin" "2.20.1"
- chalk "3.0.0"
- resolve "1.22.8"
- rollup "3.29.4"
- stacktrace-parser "^0.1.10"
-
"@sentry/nextjs@^8.32.0":
version "8.32.0"
resolved "https://registry.yarnpkg.com/@sentry/nextjs/-/nextjs-8.32.0.tgz#33e1fed7e428e88591740e40abacb2c85336d19e"
@@ -5184,43 +4867,6 @@
rollup "3.29.5"
stacktrace-parser "^0.1.10"
-"@sentry/node@8.27.0":
- version "8.27.0"
- resolved "https://registry.yarnpkg.com/@sentry/node/-/node-8.27.0.tgz#91a56b907f4cf7f5d7b2cbb97dbee313383f2887"
- integrity sha512-nE2VPSHOW/tzH/lB6CoBtYkmXqXncUuWMC56RLRiPyHEXDktZx8oFp364/3m117iKOjO0XHP57Kl5cdb90IM7g==
- dependencies:
- "@opentelemetry/api" "^1.9.0"
- "@opentelemetry/context-async-hooks" "^1.25.1"
- "@opentelemetry/core" "^1.25.1"
- "@opentelemetry/instrumentation" "^0.52.1"
- "@opentelemetry/instrumentation-connect" "0.38.0"
- "@opentelemetry/instrumentation-express" "0.41.1"
- "@opentelemetry/instrumentation-fastify" "0.38.0"
- "@opentelemetry/instrumentation-fs" "0.14.0"
- "@opentelemetry/instrumentation-graphql" "0.42.0"
- "@opentelemetry/instrumentation-hapi" "0.40.0"
- "@opentelemetry/instrumentation-http" "0.52.1"
- "@opentelemetry/instrumentation-ioredis" "0.42.0"
- "@opentelemetry/instrumentation-koa" "0.42.0"
- "@opentelemetry/instrumentation-mongodb" "0.46.0"
- "@opentelemetry/instrumentation-mongoose" "0.40.0"
- "@opentelemetry/instrumentation-mysql" "0.40.0"
- "@opentelemetry/instrumentation-mysql2" "0.40.0"
- "@opentelemetry/instrumentation-nestjs-core" "0.39.0"
- "@opentelemetry/instrumentation-pg" "0.43.0"
- "@opentelemetry/instrumentation-redis-4" "0.41.0"
- "@opentelemetry/resources" "^1.25.1"
- "@opentelemetry/sdk-trace-base" "^1.25.1"
- "@opentelemetry/semantic-conventions" "^1.25.1"
- "@prisma/instrumentation" "5.18.0"
- "@sentry/core" "8.27.0"
- "@sentry/opentelemetry" "8.27.0"
- "@sentry/types" "8.27.0"
- "@sentry/utils" "8.27.0"
- import-in-the-middle "^1.11.0"
- optionalDependencies:
- opentelemetry-instrumentation-fetch-node "1.2.3"
-
"@sentry/node@8.32.0":
version "8.32.0"
resolved "https://registry.yarnpkg.com/@sentry/node/-/node-8.32.0.tgz#68822b3246fb2ed7418f21795ed539a18058cfa8"
@@ -5261,15 +4907,6 @@
"@sentry/utils" "8.32.0"
import-in-the-middle "^1.11.0"
-"@sentry/opentelemetry@8.27.0":
- version "8.27.0"
- resolved "https://registry.yarnpkg.com/@sentry/opentelemetry/-/opentelemetry-8.27.0.tgz#d5b55cf277ad1fc8111467887fd40ef428229a40"
- integrity sha512-FRz7ApnyZYDFmi2CWUhKBux2N/0WswRLHwHDZ31FYCajujw7vQKucgdsxDW2RIRPWDwcMxHY1kvt6EzM1hIsxQ==
- dependencies:
- "@sentry/core" "8.27.0"
- "@sentry/types" "8.27.0"
- "@sentry/utils" "8.27.0"
-
"@sentry/opentelemetry@8.32.0":
version "8.32.0"
resolved "https://registry.yarnpkg.com/@sentry/opentelemetry/-/opentelemetry-8.32.0.tgz#4af02c17102635e4b34942d2e82d3620ddb7d95a"
@@ -5279,17 +4916,6 @@
"@sentry/types" "8.32.0"
"@sentry/utils" "8.32.0"
-"@sentry/react@8.27.0":
- version "8.27.0"
- resolved "https://registry.yarnpkg.com/@sentry/react/-/react-8.27.0.tgz#3ff4b8ece65af170fe32102ecb8847b53c675ffd"
- integrity sha512-8pD+J9UVnSGmPnm5dHJup5OVsHTN/pL4Ozi01yyrpivLkQiMZNac3OXsc0C7zXnztfLQx0kmTyCOzbRROfbpnA==
- dependencies:
- "@sentry/browser" "8.27.0"
- "@sentry/core" "8.27.0"
- "@sentry/types" "8.27.0"
- "@sentry/utils" "8.27.0"
- hoist-non-react-statics "^3.3.2"
-
"@sentry/react@8.32.0":
version "8.32.0"
resolved "https://registry.yarnpkg.com/@sentry/react/-/react-8.32.0.tgz#0f2cf7212df652653e32fa22778723035617f65d"
@@ -5301,23 +4927,11 @@
"@sentry/utils" "8.32.0"
hoist-non-react-statics "^3.3.2"
-"@sentry/types@8.27.0":
- version "8.27.0"
- resolved "https://registry.yarnpkg.com/@sentry/types/-/types-8.27.0.tgz#a5c7d2877c6c3620f812b2b31377b58d390b89d4"
- integrity sha512-B6lrP46+m2x0lfqWc9F4VcUbN893mVGnPEd7KIMRk95mPzkFJ3sNxggTQF5/ZfNO7lDQYQb22uysB5sj/BqFiw==
-
"@sentry/types@8.32.0":
version "8.32.0"
resolved "https://registry.yarnpkg.com/@sentry/types/-/types-8.32.0.tgz#dfd8aa9449a5f793b9c720888819a74a11f1790d"
integrity sha512-hxckvN2MzS5SgGDgVQ0/QpZXk13Vrq4BtZLwXhPhyeTmZtUiUfWvcL5TFQqLinfKdTKPe9q2MxeAJ0D4LalhMg==
-"@sentry/utils@8.27.0":
- version "8.27.0"
- resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-8.27.0.tgz#308f6cc34acac175c500e4dd5b5007cdb621c79e"
- integrity sha512-gyJM3SyLQe0A3mkQVVNdKYvk3ZoikkYgyA/D+5StFNLKdyUgEbJgXOGXrQSSYPF7BSX6Sc5b0KHCglPII0KuKw==
- dependencies:
- "@sentry/types" "8.27.0"
-
"@sentry/utils@8.32.0":
version "8.32.0"
resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-8.32.0.tgz#99a4298ee8fd7208ade470931c19d71c571dfce8"
@@ -5325,15 +4939,6 @@
dependencies:
"@sentry/types" "8.32.0"
-"@sentry/vercel-edge@8.27.0":
- version "8.27.0"
- resolved "https://registry.yarnpkg.com/@sentry/vercel-edge/-/vercel-edge-8.27.0.tgz#ae2b91449c4676fff3c09e08b1feb5ef0069d9c9"
- integrity sha512-ZBi8JHLQ1lUzw/nKMvGq1rFZTFkC3nhN4CeRLfFdTN3w3+76yejOnvSZZ6+Fl01kfdl6ThRnFdBvfNuXzjC9cQ==
- dependencies:
- "@sentry/core" "8.27.0"
- "@sentry/types" "8.27.0"
- "@sentry/utils" "8.27.0"
-
"@sentry/vercel-edge@8.32.0":
version "8.32.0"
resolved "https://registry.yarnpkg.com/@sentry/vercel-edge/-/vercel-edge-8.32.0.tgz#35d1eac12685ebd12619dfde10a494cc05eb8301"
@@ -5343,15 +4948,6 @@
"@sentry/types" "8.32.0"
"@sentry/utils" "8.32.0"
-"@sentry/webpack-plugin@2.20.1":
- version "2.20.1"
- resolved "https://registry.yarnpkg.com/@sentry/webpack-plugin/-/webpack-plugin-2.20.1.tgz#285d325a0a1bd0a534126b97e0190da9486ff7f6"
- integrity sha512-U6LzoE09Ndt0OCWROoRaZqqIHGxyMRdKpBhbqoBqyyfVwXN/zGW3I/cWZ1e8rreiKFj+2+c7+X0kOS+NGMTUrg==
- dependencies:
- "@sentry/bundler-plugin-core" "2.20.1"
- unplugin "1.0.1"
- uuid "^9.0.0"
-
"@sentry/webpack-plugin@2.22.3":
version "2.22.3"
resolved "https://registry.yarnpkg.com/@sentry/webpack-plugin/-/webpack-plugin-2.22.3.tgz#a9eeb4689c062eb6dc50671c09f06ec6875b9b02"
@@ -6790,13 +6386,6 @@
resolved "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz"
integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==
-"@types/mysql@2.15.22":
- version "2.15.22"
- resolved "https://registry.yarnpkg.com/@types/mysql/-/mysql-2.15.22.tgz#8705edb9872bf4aa9dbc004cd494e00334e5cdb4"
- integrity sha512-wK1pzsJVVAjYCSZWQoWHziQZbNggXFDUEIGf54g4ZM/ERuP86uGdWeKZWMYlqTPMZfHJJvLPyogXGvCOg87yLQ==
- dependencies:
- "@types/node" "*"
-
"@types/mysql@2.15.26":
version "2.15.26"
resolved "https://registry.yarnpkg.com/@types/mysql/-/mysql-2.15.26.tgz#f0de1484b9e2354d587e7d2bd17a873cc8300836"
@@ -6857,13 +6446,6 @@
resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz"
integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
-"@types/pg-pool@2.0.4":
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/@types/pg-pool/-/pg-pool-2.0.4.tgz#b5c60f678094ff3acf3442628a7f708928fcf263"
- integrity sha512-qZAvkv1K3QbmHHFYSNRYPkRjOWRLBYrL4B9c+wG0GSVGBw0NtJwPcgx/DSddeDJvRGMHCEQ4VMEVfuJ/0gZ3XQ==
- dependencies:
- "@types/pg" "*"
-
"@types/pg-pool@2.0.6":
version "2.0.6"
resolved "https://registry.yarnpkg.com/@types/pg-pool/-/pg-pool-2.0.6.tgz#1376d9dc5aec4bb2ec67ce28d7e9858227403c77"
@@ -7418,11 +7000,6 @@ acorn-dynamic-import@^4.0.0:
resolved "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz"
integrity sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==
-acorn-import-assertions@^1.9.0:
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac"
- integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==
-
acorn-import-attributes@^1.9.5:
version "1.9.5"
resolved "https://registry.yarnpkg.com/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz#7eb1557b1ba05ef18b5ed0ec67591bfab04688ef"
@@ -10415,16 +9992,6 @@ import-fresh@^3.2.1:
parent-module "^1.0.0"
resolve-from "^4.0.0"
-import-in-the-middle@1.7.1:
- version "1.7.1"
- resolved "https://registry.yarnpkg.com/import-in-the-middle/-/import-in-the-middle-1.7.1.tgz#3e111ff79c639d0bde459bd7ba29dd9fdf357364"
- integrity sha512-1LrZPDtW+atAxH42S6288qyDFNQ2YCty+2mxEPRtfazH6Z5QwkaBSTS2ods7hnVJioF6rkRfNoA6A/MstpFXLg==
- dependencies:
- acorn "^8.8.2"
- acorn-import-assertions "^1.9.0"
- cjs-module-lexer "^1.2.2"
- module-details-from-path "^1.0.3"
-
import-in-the-middle@^1.11.0:
version "1.11.0"
resolved "https://registry.yarnpkg.com/import-in-the-middle/-/import-in-the-middle-1.11.0.tgz#a94c4925b8da18256cde3b3b7b38253e6ca5e708"
@@ -12349,14 +11916,6 @@ openid-client@^5.4.0:
object-hash "^2.2.0"
oidc-token-hash "^5.0.3"
-opentelemetry-instrumentation-fetch-node@1.2.3:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/opentelemetry-instrumentation-fetch-node/-/opentelemetry-instrumentation-fetch-node-1.2.3.tgz#beb24048bdccb1943ba2a5bbadca68020e448ea7"
- integrity sha512-Qb11T7KvoCevMaSeuamcLsAD+pZnavkhDnlVL0kRozfhl42dKG5Q3anUklAFKJZjY3twLR+BnRa6DlwwkIE/+A==
- dependencies:
- "@opentelemetry/instrumentation" "^0.46.0"
- "@opentelemetry/semantic-conventions" "^1.17.0"
-
optionator@^0.9.3:
version "0.9.3"
resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz"
@@ -13537,13 +13096,6 @@ rimraf@^3.0.2:
dependencies:
glob "^7.1.3"
-rollup@3.29.4:
- version "3.29.4"
- resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.4.tgz#4d70c0f9834146df8705bfb69a9a19c9e1109981"
- integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==
- optionalDependencies:
- fsevents "~2.3.2"
-
rollup@3.29.5:
version "3.29.5"
resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.5.tgz#8a2e477a758b520fb78daf04bca4c522c1da8a54"