mirror of
https://github.com/lukevella/rallly.git
synced 2025-05-03 20:26:03 +02:00
Split guest user feature
This commit is contained in:
parent
bd8029774e
commit
401e132f11
42 changed files with 246 additions and 510 deletions
4
apps/web/declarations/next-auth.d.ts
vendored
4
apps/web/declarations/next-auth.d.ts
vendored
|
@ -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;
|
||||
|
|
|
@ -23,6 +23,7 @@ const nextConfig = {
|
|||
"@rallly/ui",
|
||||
"@rallly/tailwind-config",
|
||||
"@rallly/posthog",
|
||||
"@rallly/guest-user",
|
||||
"@rallly/emails",
|
||||
],
|
||||
webpack(config) {
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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 = () => {
|
||||
|
|
|
@ -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";
|
||||
|
||||
|
|
|
@ -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 = () => {
|
||||
|
|
|
@ -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 = () => {
|
||||
|
|
|
@ -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({
|
|||
<body>
|
||||
<Toaster />
|
||||
<SessionProvider session={session}>
|
||||
<PostHogProvider distinctId={session?.user?.id}>
|
||||
<PostHogProvider distinctId={session?.user?.id ?? guestUser?.id}>
|
||||
<PostHogPageView />
|
||||
<Providers>
|
||||
{children}
|
||||
|
|
|
@ -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 = () => {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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;
|
||||
|
|
13
apps/web/src/auth/client/use-guest-user.tsx
Normal file
13
apps/web/src/auth/client/use-guest-user.tsx
Normal file
|
@ -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;
|
||||
}
|
|
@ -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, {
|
1
apps/web/src/auth/constants.ts
Normal file
1
apps/web/src/auth/constants.ts
Normal file
|
@ -0,0 +1 @@
|
|||
export const GUEST_USER_COOKIE = "rallly-user";
|
36
apps/web/src/auth/edge.ts
Normal file
36
apps/web/src/auth/edge.ts
Normal file
|
@ -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<User> {
|
||||
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;
|
||||
}
|
12
apps/web/src/auth/lib/create-guest-user.ts
Normal file
12
apps/web/src/auth/lib/create-guest-user.ts
Normal file
|
@ -0,0 +1,12 @@
|
|||
import { randomid } from "@rallly/utils/nanoid";
|
||||
|
||||
import type { User } from "../schema";
|
||||
|
||||
export async function createGuestUser(initialData: Partial<User>) {
|
||||
const user: User = {
|
||||
id: initialData.id ?? `user-${randomid()}`,
|
||||
createdAt: new Date().toISOString(),
|
||||
locale: initialData.locale ?? "en",
|
||||
};
|
||||
return user;
|
||||
}
|
13
apps/web/src/auth/lib/parse-guest.ts
Normal file
13
apps/web/src/auth/lib/parse-guest.ts
Normal file
|
@ -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;
|
||||
}
|
31
apps/web/src/auth/next.ts
Normal file
31
apps/web/src/auth/next.ts
Normal file
|
@ -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;
|
||||
}
|
12
apps/web/src/auth/schema.ts
Normal file
12
apps/web/src/auth/schema.ts
Normal file
|
@ -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<typeof userSchema>;
|
|
@ -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 = <T,>(v: T | undefined): T => {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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";
|
||||
|
||||
|
|
|
@ -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") {
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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";
|
||||
|
||||
|
|
|
@ -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;
|
||||
},
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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<AppRouter>({
|
|||
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") {
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
|
|
|
@ -2,6 +2,6 @@
|
|||
"compilerOptions": {
|
||||
"types": ["vitest/globals"],
|
||||
},
|
||||
"extends": "@rallly/tsconfig/react.json",
|
||||
"extends": "@rallly/tsconfig/base.json",
|
||||
"include": ["**/*.ts", "**/*.tsx"],
|
||||
}
|
||||
|
|
466
yarn.lock
466
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"
|
||||
|
|
Loading…
Add table
Reference in a new issue