From f6d7568d0a89dd500823ebeae62df61d86cc2f8d Mon Sep 17 00:00:00 2001
From: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com>
Date: Thu, 23 Mar 2023 13:00:42 +0100
Subject: [PATCH] Fixes formatted description in email (#7696)
* fix description in email
* add styling for lists
* sanitize editor input before saving
* sanitize eventTypeDescription
* santize html when used dangerouslySetInnerHTML
* fix server side sanitation
* add missing formatting and sanitation
* move @ts-expect-error to correct line
* fix type error and add yarn.lock
* fix build error
* sanitize description for booking page and availability page
* rename to markdownAndSanitize
* always add list formatting
* handle empty description in markdownAndSanitize for cleaner code
* create function for clientside markdown rendering and sanitizing
* fix type error
* code clean up
* Now that eventType.descriptionAsSafeHTML is added at all the missing places, we can do away with ts-ignore and get type safety
* Remove unused variable
* Remove one more ts-expect-error
---------
Co-authored-by: CarinaWolli
Co-authored-by: Hariom Balhara
Co-authored-by: Peer Richelsen
---
.../EventTypeDescriptionSafeHTML.tsx | 6 +-
apps/web/components/team/screens/Team.tsx | 11 +-
apps/web/package.json | 2 +
apps/web/pages/[user].tsx | 8 +-
apps/web/pages/[user]/[type].tsx | 7 +-
apps/web/pages/[user]/book.tsx | 2 +
apps/web/pages/d/[link]/[slug].tsx | 2 +
apps/web/pages/d/[link]/book.tsx | 2 +
apps/web/pages/event-types/index.tsx | 3 +-
apps/web/pages/team/[slug].tsx | 13 +-
apps/web/pages/team/[slug]/[type].tsx | 2 +
apps/web/pages/team/[slug]/book.tsx | 2 +
packages/emails/src/components/Info.tsx | 21 +-
.../src/templates/BaseScheduledEmail.tsx | 2 +-
.../embeds/embed-core/src/embed-iframe.ts | 12 +-
.../ee/teams/pages/team-profile-view.tsx | 3 +-
.../components/EventTypeDescription.tsx | 6 +-
packages/lib/markdownAndSanitize.ts | 25 +
packages/lib/markdownAndSanitizeClientSide.ts | 21 +
packages/lib/markdownIt.ts | 9 -
packages/prisma/seed-app-store.config.json | 3 +-
.../editor/plugins/ToolbarPlugin.tsx | 5 +-
yarn.lock | 911 +++++++++++-------
23 files changed, 699 insertions(+), 379 deletions(-)
create mode 100644 packages/lib/markdownAndSanitize.ts
create mode 100644 packages/lib/markdownAndSanitizeClientSide.ts
diff --git a/apps/web/components/eventtype/EventTypeDescriptionSafeHTML.tsx b/apps/web/components/eventtype/EventTypeDescriptionSafeHTML.tsx
index d60a64019c..29f283b2ba 100644
--- a/apps/web/components/eventtype/EventTypeDescriptionSafeHTML.tsx
+++ b/apps/web/components/eventtype/EventTypeDescriptionSafeHTML.tsx
@@ -1,11 +1,11 @@
export type EventTypeDescriptionSafeProps = {
- eventType: { description: string | null };
+ eventType: { description: string | null; descriptionAsSafeHTML: string | null };
};
export const EventTypeDescriptionSafeHTML = ({ eventType }: EventTypeDescriptionSafeProps) => {
const props: JSX.IntrinsicElements["div"] = { suppressHydrationWarning: true };
- // @ts-expect-error: @see packages/prisma/middleware/eventTypeDescriptionParseAndSanitize.ts
- if (eventType.description) props.dangerouslySetInnerHTML = { __html: eventType.descriptionAsSafeHTML };
+ if (eventType.description)
+ props.dangerouslySetInnerHTML = { __html: eventType.descriptionAsSafeHTML || "" };
return ;
};
diff --git a/apps/web/components/team/screens/Team.tsx b/apps/web/components/team/screens/Team.tsx
index 4da45f819b..76ce292fe2 100644
--- a/apps/web/components/team/screens/Team.tsx
+++ b/apps/web/components/team/screens/Team.tsx
@@ -2,13 +2,14 @@ import Link from "next/link";
import { WEBAPP_URL } from "@calcom/lib/constants";
import { useLocale } from "@calcom/lib/hooks/useLocale";
-import { md } from "@calcom/lib/markdownIt";
import type { TeamWithMembers } from "@calcom/lib/server/queries/teams";
import { Avatar } from "@calcom/ui";
type TeamType = NonNullable;
type MembersType = TeamType["members"];
-type MemberType = MembersType[number];
+type MemberType = MembersType[number] & { safeBio: string | null };
+
+type TeamTypeWithSafeHtml = Omit & { members: MemberType[] };
const Member = ({ member, teamName }: { member: MemberType; teamName: string | null }) => {
const { t } = useLocale();
@@ -30,7 +31,7 @@ const Member = ({ member, teamName }: { member: MemberType; teamName: string | n
<>
>
) : (
@@ -43,7 +44,7 @@ const Member = ({ member, teamName }: { member: MemberType; teamName: string | n
);
};
-const Members = ({ members, teamName }: { members: MembersType; teamName: string | null }) => {
+const Members = ({ members, teamName }: { members: MemberType[]; teamName: string | null }) => {
if (!members || members.length === 0) {
return null;
}
@@ -57,7 +58,7 @@ const Members = ({ members, teamName }: { members: MembersType; teamName: string
);
};
-const Team = ({ team }: { team: TeamType }) => {
+const Team = ({ team }: { team: TeamTypeWithSafeHtml }) => {
return (
diff --git a/apps/web/package.json b/apps/web/package.json
index fba598d086..a5c868078a 100644
--- a/apps/web/package.json
+++ b/apps/web/package.json
@@ -67,6 +67,7 @@
"accept-language-parser": "^1.5.0",
"async": "^3.2.4",
"bcryptjs": "^2.4.3",
+ "canvas": "^2.11.0",
"classnames": "^2.3.1",
"dotenv-cli": "^6.0.0",
"entities": "^4.4.0",
@@ -77,6 +78,7 @@
"ical.js": "^1.4.0",
"ics": "^2.37.0",
"jose": "^4.13.1",
+ "jsdom": "^21.1.1",
"kbar": "^0.1.0-beta.36",
"libphonenumber-js": "^1.10.12",
"lodash": "^4.17.21",
diff --git a/apps/web/pages/[user].tsx b/apps/web/pages/[user].tsx
index 8e032088f8..75c842a7e1 100644
--- a/apps/web/pages/[user].tsx
+++ b/apps/web/pages/[user].tsx
@@ -24,7 +24,7 @@ import defaultEvents, {
} from "@calcom/lib/defaultEvents";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import useTheme from "@calcom/lib/hooks/useTheme";
-import { md } from "@calcom/lib/markdownIt";
+import { markdownAndSanitize } from "@calcom/lib/markdownAndSanitize";
import { collectPageParameters, telemetryEventTypes, useTelemetry } from "@calcom/lib/telemetry";
import prisma from "@calcom/prisma";
import { baseEventTypeSelect } from "@calcom/prisma/selects";
@@ -147,7 +147,7 @@ export default function User(props: inferSSRProps
& E
<>
>
)}
@@ -343,6 +343,7 @@ export const getServerSideProps = async (context: GetServerSidePropsContext) =>
const eventTypes = eventTypesRaw.map((eventType) => ({
...eventType,
metadata: EventTypeMetaDataSchema.parse(eventType.metadata || {}),
+ descriptionAsSafeHTML: markdownAndSanitize(eventType.description),
}));
const isSingleUser = users.length === 1;
@@ -352,9 +353,12 @@ export const getServerSideProps = async (context: GetServerSidePropsContext) =>
})
: [];
+ const safeBio = markdownAndSanitize(user.bio) || "";
+
return {
props: {
users,
+ safeBio,
profile,
user: {
emailMd5: crypto.createHash("md5").update(user.email).digest("hex"),
diff --git a/apps/web/pages/[user]/[type].tsx b/apps/web/pages/[user]/[type].tsx
index b0879a49ce..b5743d1943 100644
--- a/apps/web/pages/[user]/[type].tsx
+++ b/apps/web/pages/[user]/[type].tsx
@@ -5,7 +5,7 @@ import type { LocationObject } from "@calcom/app-store/locations";
import { IS_TEAM_BILLING_ENABLED, WEBAPP_URL } from "@calcom/lib/constants";
import hasKeyInMetadata from "@calcom/lib/hasKeyInMetadata";
import { useLocale } from "@calcom/lib/hooks/useLocale";
-import { addListFormatting } from "@calcom/lib/markdownIt";
+import { markdownAndSanitize } from "@calcom/lib/markdownAndSanitize";
import type { User } from "@calcom/prisma/client";
import { isBrandingHidden } from "@lib/isBrandingHidden";
@@ -59,7 +59,6 @@ Type.isThemeSupported = true;
const paramsSchema = z.object({ type: z.string(), user: z.string() });
async function getUserPageProps(context: GetStaticPropsContext) {
// load server side dependencies
- const MarkdownIt = await import("markdown-it").then((mod) => mod.default);
const prisma = await import("@calcom/prisma").then((mod) => mod.default);
const { privacyFilteredLocations } = await import("@calcom/app-store/locations");
const { parseRecurringEvent } = await import("@calcom/lib/isRecurringEvent");
@@ -125,8 +124,6 @@ async function getUserPageProps(context: GetStaticPropsContext) {
},
});
- const md = new MarkdownIt("default", { html: true, breaks: true, linkify: true });
-
if (!user || !user.eventTypes.length) return { notFound: true };
const [eventType]: ((typeof user.eventTypes)[number] & {
@@ -153,7 +150,7 @@ async function getUserPageProps(context: GetStaticPropsContext) {
metadata: EventTypeMetaDataSchema.parse(eventType.metadata || {}),
recurringEvent: parseRecurringEvent(eventType.recurringEvent),
locations: privacyFilteredLocations(locations),
- descriptionAsSafeHTML: eventType.description ? addListFormatting(md.render(eventType.description)) : null,
+ descriptionAsSafeHTML: markdownAndSanitize(eventType.description),
});
// Check if the user you are logging into has any active teams or premium user name
const hasActiveTeam =
diff --git a/apps/web/pages/[user]/book.tsx b/apps/web/pages/[user]/book.tsx
index 189f46e836..694a9d1fb1 100644
--- a/apps/web/pages/[user]/book.tsx
+++ b/apps/web/pages/[user]/book.tsx
@@ -14,6 +14,7 @@ import {
getUsernameList,
} from "@calcom/lib/defaultEvents";
import { useLocale } from "@calcom/lib/hooks/useLocale";
+import { markdownAndSanitize } from "@calcom/lib/markdownAndSanitize";
import prisma, { bookEventTypeSelect } from "@calcom/prisma";
import {
customInputSchema,
@@ -189,6 +190,7 @@ export async function getServerSideProps(context: GetServerSidePropsContext) {
slug: u.username,
theme: u.theme,
})),
+ descriptionAsSafeHTML: markdownAndSanitize(eventType.description),
};
})[0];
diff --git a/apps/web/pages/d/[link]/[slug].tsx b/apps/web/pages/d/[link]/[slug].tsx
index 29ec5b3f80..393ffc8668 100644
--- a/apps/web/pages/d/[link]/[slug].tsx
+++ b/apps/web/pages/d/[link]/[slug].tsx
@@ -5,6 +5,7 @@ import type { LocationObject } from "@calcom/core/location";
import { privacyFilteredLocations } from "@calcom/core/location";
import { parseRecurringEvent } from "@calcom/lib";
import { getWorkingHours } from "@calcom/lib/availability";
+import { markdownAndSanitize } from "@calcom/lib/markdownAndSanitize";
import { availiblityPageEventTypeSelect } from "@calcom/prisma";
import prisma from "@calcom/prisma";
import { EventTypeMetaDataSchema } from "@calcom/prisma/zod-utils";
@@ -119,6 +120,7 @@ export const getServerSideProps = async (context: GetServerSidePropsContext) =>
hideBranding: u.hideBranding,
timeZone: u.timeZone,
})),
+ descriptionAsSafeHTML: markdownAndSanitize(hashedLink.eventType.description),
});
const [user] = users;
diff --git a/apps/web/pages/d/[link]/book.tsx b/apps/web/pages/d/[link]/book.tsx
index 4985b2ccc3..59cbdc8a72 100644
--- a/apps/web/pages/d/[link]/book.tsx
+++ b/apps/web/pages/d/[link]/book.tsx
@@ -1,6 +1,7 @@
import type { GetServerSidePropsContext } from "next";
import { parseRecurringEvent } from "@calcom/lib";
+import { markdownAndSanitize } from "@calcom/lib/markdownAndSanitize";
import prisma from "@calcom/prisma";
import { bookEventTypeSelect } from "@calcom/prisma/selects";
import { customInputSchema, eventTypeBookingFields, EventTypeMetaDataSchema } from "@calcom/prisma/zod-utils";
@@ -93,6 +94,7 @@ export async function getServerSideProps(context: GetServerSidePropsContext) {
brandColor: u.brandColor,
darkBrandColor: u.darkBrandColor,
})),
+ descriptionAsSafeHTML: markdownAndSanitize(eventType.description),
};
})[0];
diff --git a/apps/web/pages/event-types/index.tsx b/apps/web/pages/event-types/index.tsx
index ecacf53eb8..b6d2299a38 100644
--- a/apps/web/pages/event-types/index.tsx
+++ b/apps/web/pages/event-types/index.tsx
@@ -13,6 +13,7 @@ import { APP_NAME, CAL_URL, WEBAPP_URL } from "@calcom/lib/constants";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import useMediaQuery from "@calcom/lib/hooks/useMediaQuery";
import { useTypedQuery } from "@calcom/lib/hooks/useTypedQuery";
+import { markdownAndSanitize } from "@calcom/lib/markdownAndSanitizeClientSide";
import type { RouterOutputs } from "@calcom/trpc/react";
import { trpc, TRPCClientError } from "@calcom/trpc/react";
import {
@@ -141,7 +142,7 @@ const Item = ({ type, group, readOnly }: { type: EventType; group: EventTypeGrou
diff --git a/apps/web/pages/team/[slug].tsx b/apps/web/pages/team/[slug].tsx
index 0a9741b179..f1f6626abb 100644
--- a/apps/web/pages/team/[slug].tsx
+++ b/apps/web/pages/team/[slug].tsx
@@ -10,7 +10,7 @@ import { CAL_URL } from "@calcom/lib/constants";
import { getPlaceholderAvatar } from "@calcom/lib/defaultAvatarImage";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import useTheme from "@calcom/lib/hooks/useTheme";
-import { md } from "@calcom/lib/markdownIt";
+import { markdownAndSanitize } from "@calcom/lib/markdownAndSanitize";
import { getTeamWithMembers } from "@calcom/lib/server/queries/teams";
import { collectPageParameters, telemetryEventTypes, useTelemetry } from "@calcom/lib/telemetry";
import prisma from "@calcom/prisma";
@@ -113,7 +113,7 @@ function TeamPage({ team, isUnpublished }: TeamPageProps) {
<>
>
)}
@@ -187,11 +187,18 @@ export const getServerSideProps = async (context: GetServerSidePropsContext) =>
...user,
avatar: CAL_URL + "/" + user.username + "/avatar.png",
})),
+ descriptionAsSafeHTML: markdownAndSanitize(type.description),
}));
+ const safeBio = markdownAndSanitize(team.bio) || "";
+
+ const members = team.members.map((member) => {
+ return { ...member, safeBio: markdownAndSanitize(member.bio || "") };
+ });
+
return {
props: {
- team,
+ team: { ...team, safeBio, members },
trpcState: ssr.dehydrate(),
},
} as const;
diff --git a/apps/web/pages/team/[slug]/[type].tsx b/apps/web/pages/team/[slug]/[type].tsx
index 785c78fe97..88a0c39832 100644
--- a/apps/web/pages/team/[slug]/[type].tsx
+++ b/apps/web/pages/team/[slug]/[type].tsx
@@ -5,6 +5,7 @@ import { privacyFilteredLocations } from "@calcom/core/location";
import { getBookingFieldsWithSystemFields } from "@calcom/features/bookings/lib/getBookingFields";
import { parseRecurringEvent } from "@calcom/lib";
import { getWorkingHours } from "@calcom/lib/availability";
+import { markdownAndSanitize } from "@calcom/lib/markdownAndSanitize";
import prisma from "@calcom/prisma";
import { EventTypeMetaDataSchema } from "@calcom/prisma/zod-utils";
@@ -171,6 +172,7 @@ export const getServerSideProps = async (context: GetServerSidePropsContext) =>
hideBranding,
timeZone,
})),
+ descriptionAsSafeHTML: markdownAndSanitize(eventType.description),
});
eventTypeObject.availability = [];
diff --git a/apps/web/pages/team/[slug]/book.tsx b/apps/web/pages/team/[slug]/book.tsx
index c7e20ea260..4af0ff1800 100644
--- a/apps/web/pages/team/[slug]/book.tsx
+++ b/apps/web/pages/team/[slug]/book.tsx
@@ -5,6 +5,7 @@ import type { LocationObject } from "@calcom/app-store/locations";
import { privacyFilteredLocations } from "@calcom/app-store/locations";
import { getBookingFieldsWithSystemFields } from "@calcom/features/bookings/lib/getBookingFields";
import { parseRecurringEvent } from "@calcom/lib";
+import { markdownAndSanitize } from "@calcom/lib/markdownAndSanitize";
import prisma from "@calcom/prisma";
import { customInputSchema, eventTypeBookingFields, EventTypeMetaDataSchema } from "@calcom/prisma/zod-utils";
@@ -121,6 +122,7 @@ export async function getServerSideProps(context: GetServerSidePropsContext) {
image: u.avatar,
slug: u.username,
})),
+ descriptionAsSafeHTML: markdownAndSanitize(eventType.description),
};
})[0];
diff --git a/packages/emails/src/components/Info.tsx b/packages/emails/src/components/Info.tsx
index a737e3177b..fa22994541 100644
--- a/packages/emails/src/components/Info.tsx
+++ b/packages/emails/src/components/Info.tsx
@@ -1,3 +1,5 @@
+import { markdownAndSanitize } from "@calcom/lib/markdownAndSanitize";
+
const Spacer = () => ;
export const Info = (props: {
@@ -6,8 +8,14 @@ export const Info = (props: {
extraInfo?: React.ReactNode;
withSpacer?: boolean;
lineThrough?: boolean;
+ formatted?: boolean;
}) => {
if (!props.description || props.description === "") return null;
+
+ const descriptionCSS = "color: '#101010'; font-weight: 400; line-height: 24px; margin: 0;";
+
+ const safeDescription = markdownAndSanitize(props.description.toString()) || "";
+
return (
<>
{props.withSpacer && }
@@ -21,7 +29,18 @@ export const Info = (props: {
whiteSpace: "pre-wrap",
textDecoration: props.lineThrough ? "line-through" : undefined,
}}>
- {props.description}
+ {props.formatted ? (
+ ", `
`)
+ .replaceAll("
", ``),
+ }}
+ />
+ ) : (
+ props.description
+ )}
{props.extraInfo}
diff --git a/packages/emails/src/templates/BaseScheduledEmail.tsx b/packages/emails/src/templates/BaseScheduledEmail.tsx
index 5d084731b3..654c0378a5 100644
--- a/packages/emails/src/templates/BaseScheduledEmail.tsx
+++ b/packages/emails/src/templates/BaseScheduledEmail.tsx
@@ -76,7 +76,7 @@ export const BaseScheduledEmail = (
-
+
{props.includeAppsStatus && }
diff --git a/packages/embeds/embed-core/src/embed-iframe.ts b/packages/embeds/embed-core/src/embed-iframe.ts
index ece358bbde..6b411884f0 100644
--- a/packages/embeds/embed-core/src/embed-iframe.ts
+++ b/packages/embeds/embed-core/src/embed-iframe.ts
@@ -344,13 +344,15 @@ function keepParentInformedAboutDimensionChanges() {
// Use, .height as that gives more accurate value in floating point. Also, do a ceil on the total sum so that whatever happens there is enough iframe size to avoid scroll.
const contentHeight = Math.ceil(
parseFloat(mainElementStyles.height) +
- parseFloat(mainElementStyles.marginTop) +
- parseFloat(mainElementStyles.marginBottom));
+ parseFloat(mainElementStyles.marginTop) +
+ parseFloat(mainElementStyles.marginBottom)
+ );
const contentWidth = Math.ceil(
parseFloat(mainElementStyles.width) +
- parseFloat(mainElementStyles.marginLeft) +
- parseFloat(mainElementStyles.marginRight));
-
+ parseFloat(mainElementStyles.marginLeft) +
+ parseFloat(mainElementStyles.marginRight)
+ );
+
// During first render let iframe tell parent that how much is the expected height to avoid scroll.
// Parent would set the same value as the height of iframe which would prevent scroll.
// On subsequent renders, consider html height as the height of the iframe. If we don't do this, then if iframe get's bigger in height, it would never shrink
diff --git a/packages/features/ee/teams/pages/team-profile-view.tsx b/packages/features/ee/teams/pages/team-profile-view.tsx
index 419aec51a0..17e5a58015 100644
--- a/packages/features/ee/teams/pages/team-profile-view.tsx
+++ b/packages/features/ee/teams/pages/team-profile-view.tsx
@@ -10,6 +10,7 @@ import { z } from "zod";
import { IS_TEAM_BILLING_ENABLED, WEBAPP_URL } from "@calcom/lib/constants";
import { getPlaceholderAvatar } from "@calcom/lib/defaultAvatarImage";
import { useLocale } from "@calcom/lib/hooks/useLocale";
+import { markdownAndSanitize } from "@calcom/lib/markdownAndSanitizeClientSide";
import { md } from "@calcom/lib/markdownIt";
import objectKeys from "@calcom/lib/objectKeys";
import turndown from "@calcom/lib/turndownService";
@@ -256,7 +257,7 @@ const ProfileView = () => {
>
)}
diff --git a/packages/features/eventtypes/components/EventTypeDescription.tsx b/packages/features/eventtypes/components/EventTypeDescription.tsx
index 6b4953e3ce..24b2dc2bce 100644
--- a/packages/features/eventtypes/components/EventTypeDescription.tsx
+++ b/packages/features/eventtypes/components/EventTypeDescription.tsx
@@ -7,7 +7,6 @@ import type { z } from "zod";
import { classNames, parseRecurringEvent } from "@calcom/lib";
import getPaymentAppData from "@calcom/lib/getPaymentAppData";
import { useLocale } from "@calcom/lib/hooks/useLocale";
-import { addListFormatting, md } from "@calcom/lib/markdownIt";
import type { baseEventTypeSelect } from "@calcom/prisma";
import type { EventTypeModel } from "@calcom/prisma/zod";
import { Badge } from "@calcom/ui";
@@ -26,8 +25,9 @@ export type EventTypeDescriptionProps = {
z.infer,
Exclude | "metadata"
> & {
+ descriptionAsSafeHTML?: string | null;
recurringEvent: Prisma.JsonValue;
- seatsPerTimeSlot?: number;
+ seatsPerTimeSlot?: number | null;
};
className?: string;
shortenDescription?: boolean;
@@ -57,7 +57,7 @@ export const EventTypeDescription = ({
shortenDescription ? "line-clamp-4" : ""
)}
dangerouslySetInnerHTML={{
- __html: addListFormatting(md.render(eventType.description)),
+ __html: eventType.descriptionAsSafeHTML || "",
}}
/>
)}
diff --git a/packages/lib/markdownAndSanitize.ts b/packages/lib/markdownAndSanitize.ts
new file mode 100644
index 0000000000..9d876a2376
--- /dev/null
+++ b/packages/lib/markdownAndSanitize.ts
@@ -0,0 +1,25 @@
+import DOMPurify from "dompurify";
+import { JSDOM } from "jsdom";
+
+import { md } from "@calcom/lib/markdownIt";
+
+export function markdownAndSanitize(markdown: string | null) {
+ if (!markdown) return null;
+
+ const window = new JSDOM("").window;
+ // @ts-expect-error as suggested here: https://github.com/cure53/DOMPurify/issues/437#issuecomment-632021941
+ const purify = DOMPurify(window);
+
+ const html = md
+ .render(markdown)
+ .replaceAll(
+ "",
+ ""
+ )
+ .replaceAll(
+ "",
+ ""
+ );
+ const safeHtml = purify.sanitize(html);
+ return safeHtml;
+}
diff --git a/packages/lib/markdownAndSanitizeClientSide.ts b/packages/lib/markdownAndSanitizeClientSide.ts
new file mode 100644
index 0000000000..77fb28904a
--- /dev/null
+++ b/packages/lib/markdownAndSanitizeClientSide.ts
@@ -0,0 +1,21 @@
+import DOMPurify from "dompurify";
+
+import { md } from "./markdownIt";
+
+export function markdownAndSanitize(markdown: string | null) {
+ if (!markdown) return "";
+
+ const html = md
+ .render(markdown)
+ .replaceAll(
+ "",
+ ""
+ )
+ .replaceAll(
+ "",
+ ""
+ );
+
+ const safeHtml = DOMPurify.sanitize(html);
+ return safeHtml;
+}
diff --git a/packages/lib/markdownIt.ts b/packages/lib/markdownIt.ts
index 45df9a5fdd..2ac2daa290 100644
--- a/packages/lib/markdownIt.ts
+++ b/packages/lib/markdownIt.ts
@@ -1,12 +1,3 @@
import MarkdownIt from "markdown-it";
export const md = new MarkdownIt("default", { html: true, breaks: true, linkify: true });
-
-export function addListFormatting(html: string) {
- return html
- .replaceAll("", "")
- .replaceAll(
- "",
- ""
- );
-}
diff --git a/packages/prisma/seed-app-store.config.json b/packages/prisma/seed-app-store.config.json
index cda49aa8b7..47cec99b9c 100644
--- a/packages/prisma/seed-app-store.config.json
+++ b/packages/prisma/seed-app-store.config.json
@@ -203,7 +203,8 @@
"categories": ["video"],
"slug": "facetime",
"type": "facetime_video",
- "isTemplate": false},
+ "isTemplate": false
+ },
{
"dirName": "zohocrm",
"categories": ["other"],
diff --git a/packages/ui/components/editor/plugins/ToolbarPlugin.tsx b/packages/ui/components/editor/plugins/ToolbarPlugin.tsx
index 1c4fe0eb9b..9155e32f8b 100644
--- a/packages/ui/components/editor/plugins/ToolbarPlugin.tsx
+++ b/packages/ui/components/editor/plugins/ToolbarPlugin.tsx
@@ -12,6 +12,7 @@ import { $createHeadingNode, $isHeadingNode } from "@lexical/rich-text";
import { $isAtNodeEnd, $wrapNodes } from "@lexical/selection";
import { $getNearestNodeOfType, mergeRegister } from "@lexical/utils";
import classNames from "classnames";
+import DOMPurify from "dompurify";
import type { EditorState, GridSelection, LexicalEditor, NodeSelection, RangeSelection } from "lexical";
import {
$createParagraphNode,
@@ -351,8 +352,8 @@ export default function ToolbarPlugin(props: TextEditorProps) {
editor.registerUpdateListener(({ editorState, prevEditorState }) => {
editorState.read(() => {
- const textInHtml = $generateHtmlFromNodes(editor);
- props.setText(textInHtml);
+ const textInHtml = $generateHtmlFromNodes(editor).replace(/</g, "<").replace(/>/g, ">");
+ props.setText(DOMPurify.sanitize(textInHtml));
});
if (!prevEditorState._selection) editor.blur();
});
diff --git a/yarn.lock b/yarn.lock
index a9aa33bfec..70128ad1c6 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -122,25 +122,6 @@ __metadata:
languageName: node
linkType: hard
-"@auth/core@npm:^0.1.4":
- version: 0.1.4
- resolution: "@auth/core@npm:0.1.4"
- dependencies:
- "@panva/hkdf": 1.0.2
- cookie: 0.5.0
- jose: 4.11.1
- oauth4webapi: 2.0.5
- preact: 10.11.3
- preact-render-to-string: 5.2.3
- peerDependencies:
- nodemailer: 6.8.0
- peerDependenciesMeta:
- nodemailer:
- optional: true
- checksum: 64854404ea1883e0deb5535b34bed95cd43fc85094aeaf4f15a79e14045020eb944f844defe857edfc8528a0a024be89cbb2a3069dedef0e9217a74ca6c3eb79
- languageName: node
- linkType: hard
-
"@aws-crypto/ie11-detection@npm:^3.0.0":
version: 3.0.0
resolution: "@aws-crypto/ie11-detection@npm:3.0.0"
@@ -3971,8 +3952,8 @@ __metadata:
"@calcom/core": "*"
"@calcom/dayjs": "*"
"@calcom/emails": "*"
- "@calcom/embed-core": "workspace:*"
- "@calcom/embed-snippet": "workspace:*"
+ "@calcom/embed-core": "*"
+ "@calcom/embed-snippet": "*"
"@calcom/features": "*"
"@calcom/lib": "*"
"@calcom/prisma": "*"
@@ -3985,13 +3966,14 @@ __metadata:
jest: ^28.1.0
memory-cache: ^0.2.0
modify-response-middleware: ^1.1.0
- next: ^13.2.1
+ next: ^13.1.1
next-api-middleware: ^1.0.1
next-axiom: ^0.16.0
next-swagger-doc: ^0.3.4
+ next-transpile-modules: ^10.0.0
next-validations: ^0.2.0
node-mocks-http: ^1.11.0
- typescript: ^4.9.4
+ typescript: ^4.7.4
tzdata: ^1.0.30
uuid: ^8.3.2
zod: ^3.20.2
@@ -4056,39 +4038,6 @@ __metadata:
languageName: unknown
linkType: soft
-"@calcom/auth@workspace:apps/auth":
- version: 0.0.0-use.local
- resolution: "@calcom/auth@workspace:apps/auth"
- dependencies:
- "@auth/core": ^0.1.4
- "@calcom/app-store": "*"
- "@calcom/app-store-cli": "*"
- "@calcom/config": "*"
- "@calcom/core": "*"
- "@calcom/dayjs": "*"
- "@calcom/embed-core": "workspace:*"
- "@calcom/embed-react": "workspace:*"
- "@calcom/embed-snippet": "workspace:*"
- "@calcom/features": "*"
- "@calcom/lib": "*"
- "@calcom/prisma": "*"
- "@calcom/trpc": "*"
- "@calcom/tsconfig": "*"
- "@calcom/types": "*"
- "@calcom/ui": "*"
- "@types/node": 16.9.1
- "@types/react": 18.0.26
- "@types/react-dom": 18.0.9
- eslint: ^8.34.0
- eslint-config-next: ^13.2.1
- next: ^13.2.1
- next-auth: ^4.20.1
- react: ^18.2.0
- react-dom: ^18.2.0
- typescript: ^4.9.4
- languageName: unknown
- linkType: soft
-
"@calcom/caldavcalendar@workspace:packages/app-store/caldavcalendar":
version: 0.0.0-use.local
resolution: "@calcom/caldavcalendar@workspace:packages/app-store/caldavcalendar"
@@ -4158,28 +4107,29 @@ __metadata:
"@calcom/ui": "*"
"@headlessui/react": ^1.5.0
"@heroicons/react": ^1.0.6
- "@prisma/client": ^4.11.0
+ "@prisma/client": ^4.8.1
"@tailwindcss/forms": ^0.5.2
"@types/node": 16.9.1
- "@types/react": 18.0.26
+ "@types/react": ^18.0.17
autoprefixer: ^10.4.12
chart.js: ^3.7.1
client-only: ^0.0.1
- eslint: ^8.34.0
- next: ^13.2.1
- next-auth: ^4.20.1
+ eslint: ^8.22.0
+ next: ^13.1.1
+ next-auth: ^4.10.3
next-i18next: ^11.3.0
+ next-transpile-modules: ^10.0.0
postcss: ^8.4.18
- prisma: ^4.11.0
+ prisma: ^4.8.1
prisma-field-encryption: ^1.4.0
react: ^18.2.0
react-chartjs-2: ^4.0.1
react-dom: ^18.2.0
- react-hook-form: ^7.43.3
+ react-hook-form: ^7.34.2
react-live-chat-loader: ^2.7.3
swr: ^1.2.2
tailwindcss: ^3.2.1
- typescript: ^4.9.4
+ typescript: ^4.7.4
zod: ^3.20.2
languageName: unknown
linkType: soft
@@ -4273,7 +4223,7 @@ __metadata:
languageName: unknown
linkType: soft
-"@calcom/embed-core@workspace:*, @calcom/embed-core@workspace:packages/embeds/embed-core":
+"@calcom/embed-core@*, @calcom/embed-core@workspace:*, @calcom/embed-core@workspace:packages/embeds/embed-core":
version: 0.0.0-use.local
resolution: "@calcom/embed-core@workspace:packages/embeds/embed-core"
dependencies:
@@ -4307,7 +4257,7 @@ __metadata:
languageName: unknown
linkType: soft
-"@calcom/embed-snippet@workspace:*, @calcom/embed-snippet@workspace:packages/embeds/embed-snippet":
+"@calcom/embed-snippet@*, @calcom/embed-snippet@workspace:*, @calcom/embed-snippet@workspace:packages/embeds/embed-snippet":
version: 0.0.0-use.local
resolution: "@calcom/embed-snippet@workspace:packages/embeds/embed-snippet"
dependencies:
@@ -4965,6 +4915,7 @@ __metadata:
autoprefixer: ^10.4.12
babel-jest: ^28.1.0
bcryptjs: ^2.4.3
+ canvas: ^2.11.0
classnames: ^2.3.1
copy-webpack-plugin: ^11.0.0
detect-port: ^1.3.0
@@ -4978,6 +4929,7 @@ __metadata:
ical.js: ^1.4.0
ics: ^2.37.0
jose: ^4.13.1
+ jsdom: ^21.1.1
kbar: ^0.1.0-beta.36
libphonenumber-js: ^1.10.12
lodash: ^4.17.21
@@ -5053,12 +5005,13 @@ __metadata:
"@calcom/prisma": "*"
"@calcom/tsconfig": "*"
"@calcom/ui": "*"
+ "@daily-co/daily-js": ^0.26.0
"@floating-ui/react-dom": ^1.0.0
"@headlessui/react": ^1.5.0
"@heroicons/react": ^1.0.6
"@hookform/resolvers": ^2.9.7
"@juggle/resize-observer": ^3.4.0
- "@next/bundle-analyzer": ^13.1.6
+ "@next/bundle-analyzer": ^12.2.5
"@radix-ui/react-accordion": ^1.0.0
"@radix-ui/react-navigation-menu": ^1.0.0
"@radix-ui/react-portal": ^1.0.0
@@ -5073,32 +5026,29 @@ __metadata:
"@types/gtag.js": ^0.0.10
"@types/micro": 7.3.7
"@types/node": 16.9.1
- "@types/react": 18.0.26
+ "@types/react": ^18.0.17
"@types/react-gtm-module": ^2.0.1
"@vercel/analytics": ^0.1.6
"@vercel/edge-functions-ui": ^0.2.1
autoprefixer: ^10.4.12
bcryptjs: ^2.4.3
cobe: ^0.4.1
- concurrently: ^7.6.0
cross-env: ^7.0.3
datocms-structured-text-to-plain-text: ^2.0.4
datocms-structured-text-utils: ^2.0.4
debounce: ^1.2.1
env-cmd: ^10.1.0
- eslint: ^8.34.0
+ eslint: ^8.22.0
fathom-client: ^3.5.0
- globby: ^13.1.3
gray-matter: ^4.0.3
gsap: ^3.11.0
iframe-resizer-react: ^1.1.0
keen-slider: ^6.8.0
- lucide-react: ^0.125.0
- micro: ^10.0.1
- next: 13.2.4-canary.5
- next-auth: ^4.20.1
+ micro: ^9.4.1
+ next: ^13.1.1
+ next-auth: ^4.10.3
next-i18next: ^11.3.0
- playwright: ^1.31.2
+ next-transpile-modules: ^10.0.0
postcss: ^8.4.18
prism-react-renderer: ^1.3.5
react: ^18.2.0
@@ -5108,18 +5058,17 @@ __metadata:
react-dom: ^18.2.0
react-fast-marquee: ^1.3.5
react-github-btn: ^1.4.0
- react-hook-form: ^7.43.3
+ react-hook-form: ^7.34.2
react-hot-toast: ^2.3.0
react-live-chat-loader: ^2.8.1
react-merge-refs: 1.1.0
react-twemoji: ^0.3.0
react-use-measure: ^2.1.1
- remark: ^14.0.2
+ remark: ^14.0.1
remark-html: ^14.0.1
stripe: ^9.16.0
tailwindcss: ^3.2.1
- typescript: ^4.9.4
- wait-on: ^7.0.1
+ typescript: ^4.7.4
zod: ^3.20.2
languageName: unknown
linkType: soft
@@ -5235,6 +5184,19 @@ __metadata:
languageName: node
linkType: hard
+"@daily-co/daily-js@npm:^0.26.0":
+ version: 0.26.0
+ resolution: "@daily-co/daily-js@npm:0.26.0"
+ dependencies:
+ "@babel/runtime": ^7.12.5
+ bowser: ^2.8.1
+ events: ^3.1.0
+ fast-equals: ^1.6.3
+ lodash: ^4.17.15
+ checksum: fadfc0cae4a9a872e94ca0a3207cea52ec34d8c38b1ffd6f63294d35c0b5947bb11f553ac827e20d9ad885e25121c46a4d5aedd37ed189d7b6b7c6cf62cbaa76
+ languageName: node
+ linkType: hard
+
"@daily-co/daily-js@npm:^0.37.0":
version: 0.37.0
resolution: "@daily-co/daily-js@npm:0.37.0"
@@ -5662,6 +5624,24 @@ __metadata:
languageName: node
linkType: hard
+"@eslint-community/eslint-utils@npm:^4.2.0":
+ version: 4.3.0
+ resolution: "@eslint-community/eslint-utils@npm:4.3.0"
+ dependencies:
+ eslint-visitor-keys: ^3.3.0
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
+ checksum: f487760a692f0f1fef76e248ad72976919576ba57edc2b1b1dc1d182553bae6b5bf7b078e654da85d04f0af8a485d20bd26280002768f4fbcd2e330078340cb0
+ languageName: node
+ linkType: hard
+
+"@eslint-community/regexpp@npm:^4.4.0":
+ version: 4.4.0
+ resolution: "@eslint-community/regexpp@npm:4.4.0"
+ checksum: 2d127af0c752b80e8a782eacfe996a86925d21de92da3ffc6f9e615e701145e44a62e26bdd88bfac2cd76779c39ba8d9875a91046ec5e7e5f23cb647c247ea6a
+ languageName: node
+ linkType: hard
+
"@eslint/eslintrc@npm:^1.0.5":
version: 1.3.0
resolution: "@eslint/eslintrc@npm:1.3.0"
@@ -5696,6 +5676,30 @@ __metadata:
languageName: node
linkType: hard
+"@eslint/eslintrc@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "@eslint/eslintrc@npm:2.0.1"
+ dependencies:
+ ajv: ^6.12.4
+ debug: ^4.3.2
+ espree: ^9.5.0
+ globals: ^13.19.0
+ ignore: ^5.2.0
+ import-fresh: ^3.2.1
+ js-yaml: ^4.1.0
+ minimatch: ^3.1.2
+ strip-json-comments: ^3.1.1
+ checksum: 56b9192a687a450db53a7b883daf9f0f447c43b3510189cf88808a7a2467c2a302a42a50f184cc6d5a9faf3d1df890a2ef0fd0d60b751f32a3e9dfea717c6b48
+ languageName: node
+ linkType: hard
+
+"@eslint/js@npm:8.36.0":
+ version: 8.36.0
+ resolution: "@eslint/js@npm:8.36.0"
+ checksum: b7d6b84b823c8c7784be390741196617565527b1f7c0977fde9455bfb57fd88f81c074a03dd878757d2c33fa29f24291e9ecbc1425710f067917324b55e1bf3a
+ languageName: node
+ linkType: hard
+
"@ethereumjs/common@npm:^2.5.0, @ethereumjs/common@npm:^2.6.3":
version: 2.6.3
resolution: "@ethereumjs/common@npm:2.6.3"
@@ -6565,22 +6569,6 @@ __metadata:
languageName: node
linkType: hard
-"@hapi/hoek@npm:^9.0.0":
- version: 9.3.0
- resolution: "@hapi/hoek@npm:9.3.0"
- checksum: 4771c7a776242c3c022b168046af4e324d116a9d2e1d60631ee64f474c6e38d1bb07092d898bf95c7bc5d334c5582798a1456321b2e53ca817d4e7c88bc25b43
- languageName: node
- linkType: hard
-
-"@hapi/topo@npm:^5.0.0":
- version: 5.1.0
- resolution: "@hapi/topo@npm:5.1.0"
- dependencies:
- "@hapi/hoek": ^9.0.0
- checksum: 604dfd5dde76d5c334bd03f9001fce69c7ce529883acf92da96f4fe7e51221bf5e5110e964caca287a6a616ba027c071748ab636ff178ad750547fba611d6014
- languageName: node
- linkType: hard
-
"@headlessui/react@npm:^1.5.0":
version: 1.7.13
resolution: "@headlessui/react@npm:1.7.13"
@@ -7837,6 +7825,25 @@ __metadata:
languageName: node
linkType: hard
+"@mapbox/node-pre-gyp@npm:^1.0.0":
+ version: 1.0.10
+ resolution: "@mapbox/node-pre-gyp@npm:1.0.10"
+ dependencies:
+ detect-libc: ^2.0.0
+ https-proxy-agent: ^5.0.0
+ make-dir: ^3.1.0
+ node-fetch: ^2.6.7
+ nopt: ^5.0.0
+ npmlog: ^5.0.1
+ rimraf: ^3.0.2
+ semver: ^7.3.5
+ tar: ^6.1.11
+ bin:
+ node-pre-gyp: bin/node-pre-gyp
+ checksum: 1a98db05d955b74dad3814679593df293b9194853698f3f5f1ed00ecd93128cdd4b14fb8767fe44ac6981ef05c23effcfdc88710e7c1de99ccb6f647890597c8
+ languageName: node
+ linkType: hard
+
"@mdx-js/loader@npm:^2.0.0-next.9":
version: 2.1.1
resolution: "@mdx-js/loader@npm:2.1.1"
@@ -7975,6 +7982,15 @@ __metadata:
languageName: node
linkType: hard
+"@next/bundle-analyzer@npm:^12.2.5":
+ version: 12.3.4
+ resolution: "@next/bundle-analyzer@npm:12.3.4"
+ dependencies:
+ webpack-bundle-analyzer: 4.3.0
+ checksum: 611cc07194a5cdd4aa0d1db5bae2de807cb2388d2c623f8d7ab8d581f8d01ec1510bd73ae3977334f7957278540ec0e2b2ebd48f9476235bd7b65055c560dc44
+ languageName: node
+ linkType: hard
+
"@next/bundle-analyzer@npm:^13.1.6":
version: 13.1.6
resolution: "@next/bundle-analyzer@npm:13.1.6"
@@ -7991,10 +8007,10 @@ __metadata:
languageName: node
linkType: hard
-"@next/env@npm:13.2.4-canary.5":
- version: 13.2.4-canary.5
- resolution: "@next/env@npm:13.2.4-canary.5"
- checksum: d46767ba464334b8487b671a9b366b25e7c1b6bf262bd66afd62b07b17f52066158fe69b14db3abc8219e1e580cd60e0655af6c71550506770780d1ba28ae92d
+"@next/env@npm:13.2.4":
+ version: 13.2.4
+ resolution: "@next/env@npm:13.2.4"
+ checksum: 4123e08a79e66d6144006972027a9ceb8f3fdd782c4a869df1eb3b91b59ad9f4a44082d3f8e421f4df5214c6bc7190b52b94881369452d65eb4580485f33b9e6
languageName: node
linkType: hard
@@ -8014,9 +8030,9 @@ __metadata:
languageName: node
linkType: hard
-"@next/swc-android-arm-eabi@npm:13.2.4-canary.5":
- version: 13.2.4-canary.5
- resolution: "@next/swc-android-arm-eabi@npm:13.2.4-canary.5"
+"@next/swc-android-arm-eabi@npm:13.2.4":
+ version: 13.2.4
+ resolution: "@next/swc-android-arm-eabi@npm:13.2.4"
conditions: os=android & cpu=arm
languageName: node
linkType: hard
@@ -8028,9 +8044,9 @@ __metadata:
languageName: node
linkType: hard
-"@next/swc-android-arm64@npm:13.2.4-canary.5":
- version: 13.2.4-canary.5
- resolution: "@next/swc-android-arm64@npm:13.2.4-canary.5"
+"@next/swc-android-arm64@npm:13.2.4":
+ version: 13.2.4
+ resolution: "@next/swc-android-arm64@npm:13.2.4"
conditions: os=android & cpu=arm64
languageName: node
linkType: hard
@@ -8042,9 +8058,9 @@ __metadata:
languageName: node
linkType: hard
-"@next/swc-darwin-arm64@npm:13.2.4-canary.5":
- version: 13.2.4-canary.5
- resolution: "@next/swc-darwin-arm64@npm:13.2.4-canary.5"
+"@next/swc-darwin-arm64@npm:13.2.4":
+ version: 13.2.4
+ resolution: "@next/swc-darwin-arm64@npm:13.2.4"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
@@ -8056,9 +8072,9 @@ __metadata:
languageName: node
linkType: hard
-"@next/swc-darwin-x64@npm:13.2.4-canary.5":
- version: 13.2.4-canary.5
- resolution: "@next/swc-darwin-x64@npm:13.2.4-canary.5"
+"@next/swc-darwin-x64@npm:13.2.4":
+ version: 13.2.4
+ resolution: "@next/swc-darwin-x64@npm:13.2.4"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
@@ -8070,9 +8086,9 @@ __metadata:
languageName: node
linkType: hard
-"@next/swc-freebsd-x64@npm:13.2.4-canary.5":
- version: 13.2.4-canary.5
- resolution: "@next/swc-freebsd-x64@npm:13.2.4-canary.5"
+"@next/swc-freebsd-x64@npm:13.2.4":
+ version: 13.2.4
+ resolution: "@next/swc-freebsd-x64@npm:13.2.4"
conditions: os=freebsd & cpu=x64
languageName: node
linkType: hard
@@ -8084,9 +8100,9 @@ __metadata:
languageName: node
linkType: hard
-"@next/swc-linux-arm-gnueabihf@npm:13.2.4-canary.5":
- version: 13.2.4-canary.5
- resolution: "@next/swc-linux-arm-gnueabihf@npm:13.2.4-canary.5"
+"@next/swc-linux-arm-gnueabihf@npm:13.2.4":
+ version: 13.2.4
+ resolution: "@next/swc-linux-arm-gnueabihf@npm:13.2.4"
conditions: os=linux & cpu=arm
languageName: node
linkType: hard
@@ -8098,9 +8114,9 @@ __metadata:
languageName: node
linkType: hard
-"@next/swc-linux-arm64-gnu@npm:13.2.4-canary.5":
- version: 13.2.4-canary.5
- resolution: "@next/swc-linux-arm64-gnu@npm:13.2.4-canary.5"
+"@next/swc-linux-arm64-gnu@npm:13.2.4":
+ version: 13.2.4
+ resolution: "@next/swc-linux-arm64-gnu@npm:13.2.4"
conditions: os=linux & cpu=arm64 & libc=glibc
languageName: node
linkType: hard
@@ -8112,9 +8128,9 @@ __metadata:
languageName: node
linkType: hard
-"@next/swc-linux-arm64-musl@npm:13.2.4-canary.5":
- version: 13.2.4-canary.5
- resolution: "@next/swc-linux-arm64-musl@npm:13.2.4-canary.5"
+"@next/swc-linux-arm64-musl@npm:13.2.4":
+ version: 13.2.4
+ resolution: "@next/swc-linux-arm64-musl@npm:13.2.4"
conditions: os=linux & cpu=arm64 & libc=musl
languageName: node
linkType: hard
@@ -8126,9 +8142,9 @@ __metadata:
languageName: node
linkType: hard
-"@next/swc-linux-x64-gnu@npm:13.2.4-canary.5":
- version: 13.2.4-canary.5
- resolution: "@next/swc-linux-x64-gnu@npm:13.2.4-canary.5"
+"@next/swc-linux-x64-gnu@npm:13.2.4":
+ version: 13.2.4
+ resolution: "@next/swc-linux-x64-gnu@npm:13.2.4"
conditions: os=linux & cpu=x64 & libc=glibc
languageName: node
linkType: hard
@@ -8140,9 +8156,9 @@ __metadata:
languageName: node
linkType: hard
-"@next/swc-linux-x64-musl@npm:13.2.4-canary.5":
- version: 13.2.4-canary.5
- resolution: "@next/swc-linux-x64-musl@npm:13.2.4-canary.5"
+"@next/swc-linux-x64-musl@npm:13.2.4":
+ version: 13.2.4
+ resolution: "@next/swc-linux-x64-musl@npm:13.2.4"
conditions: os=linux & cpu=x64 & libc=musl
languageName: node
linkType: hard
@@ -8154,9 +8170,9 @@ __metadata:
languageName: node
linkType: hard
-"@next/swc-win32-arm64-msvc@npm:13.2.4-canary.5":
- version: 13.2.4-canary.5
- resolution: "@next/swc-win32-arm64-msvc@npm:13.2.4-canary.5"
+"@next/swc-win32-arm64-msvc@npm:13.2.4":
+ version: 13.2.4
+ resolution: "@next/swc-win32-arm64-msvc@npm:13.2.4"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
@@ -8168,9 +8184,9 @@ __metadata:
languageName: node
linkType: hard
-"@next/swc-win32-ia32-msvc@npm:13.2.4-canary.5":
- version: 13.2.4-canary.5
- resolution: "@next/swc-win32-ia32-msvc@npm:13.2.4-canary.5"
+"@next/swc-win32-ia32-msvc@npm:13.2.4":
+ version: 13.2.4
+ resolution: "@next/swc-win32-ia32-msvc@npm:13.2.4"
conditions: os=win32 & cpu=ia32
languageName: node
linkType: hard
@@ -8182,9 +8198,9 @@ __metadata:
languageName: node
linkType: hard
-"@next/swc-win32-x64-msvc@npm:13.2.4-canary.5":
- version: 13.2.4-canary.5
- resolution: "@next/swc-win32-x64-msvc@npm:13.2.4-canary.5"
+"@next/swc-win32-x64-msvc@npm:13.2.4":
+ version: 13.2.4
+ resolution: "@next/swc-win32-x64-msvc@npm:13.2.4"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
@@ -8334,13 +8350,6 @@ __metadata:
languageName: node
linkType: hard
-"@panva/hkdf@npm:1.0.2":
- version: 1.0.2
- resolution: "@panva/hkdf@npm:1.0.2"
- checksum: 75183b4d5ea816ef516dcea70985c610683579a9e2ac540c2d59b9a3ed27eedaff830a43a1c43c1683556a457c92ac66e09109ee995ab173090e4042c4c4bb03
- languageName: node
- linkType: hard
-
"@panva/hkdf@npm:^1.0.2":
version: 1.0.4
resolution: "@panva/hkdf@npm:1.0.4"
@@ -8431,7 +8440,7 @@ __metadata:
languageName: node
linkType: hard
-"@prisma/client@npm:^4.11.0":
+"@prisma/client@npm:^4.11.0, @prisma/client@npm:^4.8.1":
version: 4.11.0
resolution: "@prisma/client@npm:4.11.0"
dependencies:
@@ -10069,29 +10078,6 @@ __metadata:
languageName: node
linkType: hard
-"@sideway/address@npm:^4.1.3":
- version: 4.1.4
- resolution: "@sideway/address@npm:4.1.4"
- dependencies:
- "@hapi/hoek": ^9.0.0
- checksum: b9fca2a93ac2c975ba12e0a6d97853832fb1f4fb02393015e012b47fa916a75ca95102d77214b2a29a2784740df2407951af8c5dde054824c65577fd293c4cdb
- languageName: node
- linkType: hard
-
-"@sideway/formula@npm:^3.0.1":
- version: 3.0.1
- resolution: "@sideway/formula@npm:3.0.1"
- checksum: e4beeebc9dbe2ff4ef0def15cec0165e00d1612e3d7cea0bc9ce5175c3263fc2c818b679bd558957f49400ee7be9d4e5ac90487e1625b4932e15c4aa7919c57a
- languageName: node
- linkType: hard
-
-"@sideway/pinpoint@npm:^2.0.0":
- version: 2.0.0
- resolution: "@sideway/pinpoint@npm:2.0.0"
- checksum: 0f4491e5897fcf5bf02c46f5c359c56a314e90ba243f42f0c100437935daa2488f20482f0f77186bd6bf43345095a95d8143ecf8b1f4d876a7bc0806aba9c3d2
- languageName: node
- linkType: hard
-
"@sinclair/typebox@npm:^0.24.1":
version: 0.24.19
resolution: "@sinclair/typebox@npm:0.24.19"
@@ -14235,7 +14221,7 @@ __metadata:
languageName: node
linkType: hard
-"abbrev@npm:^1.0.0":
+"abbrev@npm:1, abbrev@npm:^1.0.0":
version: 1.1.1
resolution: "abbrev@npm:1.1.1"
checksum: a4a97ec07d7ea112c517036882b2ac22f3109b7b19077dc656316d07d308438aac28e4d9746dc4d84bf6b1e75b4a7b0a5f3cb30592419f128ca9a8cee3bcfa17
@@ -14285,6 +14271,16 @@ __metadata:
languageName: node
linkType: hard
+"acorn-globals@npm:^7.0.0":
+ version: 7.0.1
+ resolution: "acorn-globals@npm:7.0.1"
+ dependencies:
+ acorn: ^8.1.0
+ acorn-walk: ^8.0.2
+ checksum: 2a2998a547af6d0db5f0cdb90acaa7c3cbca6709010e02121fb8b8617c0fbd8bab0b869579903fde358ac78454356a14fadcc1a672ecb97b04b1c2ccba955ce8
+ languageName: node
+ linkType: hard
+
"acorn-import-assertions@npm:^1.7.6":
version: 1.8.0
resolution: "acorn-import-assertions@npm:1.8.0"
@@ -14321,7 +14317,7 @@ __metadata:
languageName: node
linkType: hard
-"acorn-walk@npm:^8.0.0, acorn-walk@npm:^8.1.1":
+"acorn-walk@npm:^8.0.0, acorn-walk@npm:^8.0.2, acorn-walk@npm:^8.1.1":
version: 8.2.0
resolution: "acorn-walk@npm:8.2.0"
checksum: 1715e76c01dd7b2d4ca472f9c58968516a4899378a63ad5b6c2d668bba8da21a71976c14ec5f5b75f887b6317c4ae0b897ab141c831d741dc76024d8745f1ad1
@@ -14355,6 +14351,15 @@ __metadata:
languageName: node
linkType: hard
+"acorn@npm:^8.1.0, acorn@npm:^8.8.2":
+ version: 8.8.2
+ resolution: "acorn@npm:8.8.2"
+ bin:
+ acorn: bin/acorn
+ checksum: f790b99a1bf63ef160c967e23c46feea7787e531292bb827126334612c234ed489a0dc2c7ba33156416f0ffa8d25bf2b0fdb7f35c2ba60eb3e960572bece4001
+ languageName: node
+ linkType: hard
+
"acorn@npm:^8.5.0":
version: 8.7.1
resolution: "acorn@npm:8.7.1"
@@ -16712,6 +16717,18 @@ __metadata:
languageName: node
linkType: hard
+"canvas@npm:^2.11.0":
+ version: 2.11.0
+ resolution: "canvas@npm:2.11.0"
+ dependencies:
+ "@mapbox/node-pre-gyp": ^1.0.0
+ nan: ^2.17.0
+ node-gyp: latest
+ simple-get: ^3.0.3
+ checksum: a69a6e0c90014a1b02e52c4c38a627d1a01ffe9539047bec84105cb3554907a947cf39b4a333be43fc1583dd142b641bb5480a4e23f59c6098618c33bf78f67f
+ languageName: node
+ linkType: hard
+
"capture-exit@npm:^2.0.0":
version: 2.0.0
resolution: "capture-exit@npm:2.0.0"
@@ -17517,7 +17534,7 @@ __metadata:
languageName: node
linkType: hard
-"commander@npm:^6.2.1":
+"commander@npm:^6.2.0, commander@npm:^6.2.1":
version: 6.2.1
resolution: "commander@npm:6.2.1"
checksum: d7090410c0de6bc5c67d3ca41c41760d6d268f3c799e530aafb73b7437d1826bbf0d2a3edac33f8b57cc9887b4a986dce307fa5557e109be40eadb7c43b21742
@@ -17640,26 +17657,6 @@ __metadata:
languageName: node
linkType: hard
-"concurrently@npm:^7.6.0":
- version: 7.6.0
- resolution: "concurrently@npm:7.6.0"
- dependencies:
- chalk: ^4.1.0
- date-fns: ^2.29.1
- lodash: ^4.17.21
- rxjs: ^7.0.0
- shell-quote: ^1.7.3
- spawn-command: ^0.0.2-1
- supports-color: ^8.1.0
- tree-kill: ^1.2.2
- yargs: ^17.3.1
- bin:
- conc: dist/bin/concurrently.js
- concurrently: dist/bin/concurrently.js
- checksum: f705c9a7960f1b16559ca64958043faeeef6385c0bf30a03d1375e15ab2d96dba4f8166f1bbbb1c85e8da35ca0ce3c353875d71dff2aa132b2357bb533b3332e
- languageName: node
- linkType: hard
-
"console-browserify@npm:^1.1.0":
version: 1.2.0
resolution: "console-browserify@npm:1.2.0"
@@ -18262,6 +18259,15 @@ __metadata:
languageName: node
linkType: hard
+"cssstyle@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "cssstyle@npm:3.0.0"
+ dependencies:
+ rrweb-cssom: ^0.6.0
+ checksum: 31f694dfed9998ed93570fe539610837b878193dd8487c33cb12db8004333c53c2a3904166288bbec68388c72fb01014d46d3243ddfb02fe845989d852c06f27
+ languageName: node
+ linkType: hard
+
"csstype@npm:^3.0.2, csstype@npm:^3.0.7":
version: 3.1.0
resolution: "csstype@npm:3.1.0"
@@ -18338,7 +18344,18 @@ __metadata:
languageName: node
linkType: hard
-"date-fns@npm:^2.29.1, date-fns@npm:^2.29.3":
+"data-urls@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "data-urls@npm:4.0.0"
+ dependencies:
+ abab: ^2.0.6
+ whatwg-mimetype: ^3.0.0
+ whatwg-url: ^12.0.0
+ checksum: 006e869b5bf079647949a3e9b1dd69d84b2d5d26e6b01c265485699bc96e83817d4b5aae758b2910a4c58c0601913f3a0034121c1ca2da268e9a244c57515b15
+ languageName: node
+ linkType: hard
+
+"date-fns@npm:^2.29.3":
version: 2.29.3
resolution: "date-fns@npm:2.29.3"
checksum: e01cf5b62af04e05dfff921bb9c9933310ed0e1ae9a81eb8653452e64dc841acf7f6e01e1a5ae5644d0337e9a7f936175fd2cb6819dc122fdd9c5e86c56be484
@@ -18464,6 +18481,13 @@ __metadata:
languageName: node
linkType: hard
+"decimal.js@npm:^10.4.3":
+ version: 10.4.3
+ resolution: "decimal.js@npm:10.4.3"
+ checksum: 796404dcfa9d1dbfdc48870229d57f788b48c21c603c3f6554a1c17c10195fc1024de338b0cf9e1efe0c7c167eeb18f04548979bcc5fdfabebb7cc0ae3287bae
+ languageName: node
+ linkType: hard
+
"decode-named-character-reference@npm:^1.0.0":
version: 1.0.1
resolution: "decode-named-character-reference@npm:1.0.1"
@@ -18489,6 +18513,15 @@ __metadata:
languageName: node
linkType: hard
+"decompress-response@npm:^4.2.0":
+ version: 4.2.1
+ resolution: "decompress-response@npm:4.2.1"
+ dependencies:
+ mimic-response: ^2.0.0
+ checksum: 4e783ca4dfe9417354d61349750fe05236f565a4415a6ca20983a311be2371debaedd9104c0b0e7b36e5f167aeaae04f84f1a0b3f8be4162f1d7d15598b8fdba
+ languageName: node
+ linkType: hard
+
"decompress-response@npm:^6.0.0":
version: 6.0.0
resolution: "decompress-response@npm:6.0.0"
@@ -18796,6 +18829,13 @@ __metadata:
languageName: node
linkType: hard
+"detect-libc@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "detect-libc@npm:2.0.1"
+ checksum: ccb05fcabbb555beb544d48080179c18523a343face9ee4e1a86605a8715b4169f94d663c21a03c310ac824592f2ba9a5270218819bb411ad7be578a527593d7
+ languageName: node
+ linkType: hard
+
"detect-newline@npm:^3.0.0":
version: 3.1.0
resolution: "detect-newline@npm:3.1.0"
@@ -20431,6 +20471,56 @@ __metadata:
languageName: node
linkType: hard
+"eslint@npm:^8.22.0":
+ version: 8.36.0
+ resolution: "eslint@npm:8.36.0"
+ dependencies:
+ "@eslint-community/eslint-utils": ^4.2.0
+ "@eslint-community/regexpp": ^4.4.0
+ "@eslint/eslintrc": ^2.0.1
+ "@eslint/js": 8.36.0
+ "@humanwhocodes/config-array": ^0.11.8
+ "@humanwhocodes/module-importer": ^1.0.1
+ "@nodelib/fs.walk": ^1.2.8
+ ajv: ^6.10.0
+ chalk: ^4.0.0
+ cross-spawn: ^7.0.2
+ debug: ^4.3.2
+ doctrine: ^3.0.0
+ escape-string-regexp: ^4.0.0
+ eslint-scope: ^7.1.1
+ eslint-visitor-keys: ^3.3.0
+ espree: ^9.5.0
+ esquery: ^1.4.2
+ esutils: ^2.0.2
+ fast-deep-equal: ^3.1.3
+ file-entry-cache: ^6.0.1
+ find-up: ^5.0.0
+ glob-parent: ^6.0.2
+ globals: ^13.19.0
+ grapheme-splitter: ^1.0.4
+ ignore: ^5.2.0
+ import-fresh: ^3.0.0
+ imurmurhash: ^0.1.4
+ is-glob: ^4.0.0
+ is-path-inside: ^3.0.3
+ js-sdsl: ^4.1.4
+ js-yaml: ^4.1.0
+ json-stable-stringify-without-jsonify: ^1.0.1
+ levn: ^0.4.1
+ lodash.merge: ^4.6.2
+ minimatch: ^3.1.2
+ natural-compare: ^1.4.0
+ optionator: ^0.9.1
+ strip-ansi: ^6.0.1
+ strip-json-comments: ^3.1.0
+ text-table: ^0.2.0
+ bin:
+ eslint: bin/eslint.js
+ checksum: e9a961fc3b3de5cff5a1cb2c92eeffaa7e155a715489e30b3e1e76f186bd1255e0481e09564f2094733c0b1dbd3453499fb72ae7c043c83156e11e6d965b2304
+ languageName: node
+ linkType: hard
+
"eslint@npm:^8.34.0":
version: 8.34.0
resolution: "eslint@npm:8.34.0"
@@ -20524,6 +20614,17 @@ __metadata:
languageName: node
linkType: hard
+"espree@npm:^9.5.0":
+ version: 9.5.0
+ resolution: "espree@npm:9.5.0"
+ dependencies:
+ acorn: ^8.8.0
+ acorn-jsx: ^5.3.2
+ eslint-visitor-keys: ^3.3.0
+ checksum: a7f110aefb6407e0d3237aa635ab3cea87106ae63748dd23c67031afccc640d04c4209fca2daf16e2233c82efb505faead0fb84097478fd9cc6e8f8dd80bf99d
+ languageName: node
+ linkType: hard
+
"esprima@npm:^4.0.0, esprima@npm:^4.0.1":
version: 4.0.1
resolution: "esprima@npm:4.0.1"
@@ -20543,6 +20644,15 @@ __metadata:
languageName: node
linkType: hard
+"esquery@npm:^1.4.2":
+ version: 1.5.0
+ resolution: "esquery@npm:1.5.0"
+ dependencies:
+ estraverse: ^5.1.0
+ checksum: aefb0d2596c230118656cd4ec7532d447333a410a48834d80ea648b1e7b5c9bc9ed8b5e33a89cb04e487b60d622f44cf5713bf4abed7c97343edefdc84a35900
+ languageName: node
+ linkType: hard
+
"esrecurse@npm:^4.1.0, esrecurse@npm:^4.3.0":
version: 4.3.0
resolution: "esrecurse@npm:4.3.0"
@@ -22721,7 +22831,7 @@ __metadata:
languageName: node
linkType: hard
-"globby@npm:^13.1.2, globby@npm:^13.1.3":
+"globby@npm:^13.1.2":
version: 13.1.3
resolution: "globby@npm:13.1.3"
dependencies:
@@ -23727,6 +23837,16 @@ __metadata:
languageName: node
linkType: hard
+"https-proxy-agent@npm:^5.0.1":
+ version: 5.0.1
+ resolution: "https-proxy-agent@npm:5.0.1"
+ dependencies:
+ agent-base: 6
+ debug: 4
+ checksum: 571fccdf38184f05943e12d37d6ce38197becdd69e58d03f43637f7fa1269cf303a7d228aa27e5b27bbd3af8f09fd938e1c91dcfefff2df7ba77c20ed8dfc765
+ languageName: node
+ linkType: hard
+
"httpsnippet@npm:^2.0.0":
version: 2.0.0
resolution: "httpsnippet@npm:2.0.0"
@@ -25747,26 +25867,6 @@ __metadata:
languageName: node
linkType: hard
-"joi@npm:^17.7.0":
- version: 17.8.4
- resolution: "joi@npm:17.8.4"
- dependencies:
- "@hapi/hoek": ^9.0.0
- "@hapi/topo": ^5.0.0
- "@sideway/address": ^4.1.3
- "@sideway/formula": ^3.0.1
- "@sideway/pinpoint": ^2.0.0
- checksum: 45a71d0c7a468aa931b9c08cd712b52bb0270c47527fe2075037b09787076febe1cf538fe052e220d23e9ec72ced9bc20963bb9cc63439443149725aebc4e636
- languageName: node
- linkType: hard
-
-"jose@npm:4.11.1":
- version: 4.11.1
- resolution: "jose@npm:4.11.1"
- checksum: cd15cba258d0fd20f6168631ce2e94fda8442df80e43c1033c523915cecdf390a1cc8efe0eab0c2d65935ca973d791c668aea80724d2aa9c2879d4e70f3081d7
- languageName: node
- linkType: hard
-
"jose@npm:4.12.0":
version: 4.12.0
resolution: "jose@npm:4.12.0"
@@ -25935,6 +26035,45 @@ __metadata:
languageName: node
linkType: hard
+"jsdom@npm:^21.1.1":
+ version: 21.1.1
+ resolution: "jsdom@npm:21.1.1"
+ dependencies:
+ abab: ^2.0.6
+ acorn: ^8.8.2
+ acorn-globals: ^7.0.0
+ cssstyle: ^3.0.0
+ data-urls: ^4.0.0
+ decimal.js: ^10.4.3
+ domexception: ^4.0.0
+ escodegen: ^2.0.0
+ form-data: ^4.0.0
+ html-encoding-sniffer: ^3.0.0
+ http-proxy-agent: ^5.0.0
+ https-proxy-agent: ^5.0.1
+ is-potential-custom-element-name: ^1.0.1
+ nwsapi: ^2.2.2
+ parse5: ^7.1.2
+ rrweb-cssom: ^0.6.0
+ saxes: ^6.0.0
+ symbol-tree: ^3.2.4
+ tough-cookie: ^4.1.2
+ w3c-xmlserializer: ^4.0.0
+ webidl-conversions: ^7.0.0
+ whatwg-encoding: ^2.0.0
+ whatwg-mimetype: ^3.0.0
+ whatwg-url: ^12.0.1
+ ws: ^8.13.0
+ xml-name-validator: ^4.0.0
+ peerDependencies:
+ canvas: ^2.5.0
+ peerDependenciesMeta:
+ canvas:
+ optional: true
+ checksum: ea33c3f3f084b48685e3838baa1112f0cbffc2949b0249f90ee19152b66dbafc6ae7dd8573ee66933697f881e3bc04c0efc2b56cd26f64fd3e6321a64164e2d1
+ languageName: node
+ linkType: hard
+
"jsesc@npm:^2.5.1":
version: 2.5.2
resolution: "jsesc@npm:2.5.2"
@@ -27088,15 +27227,6 @@ __metadata:
languageName: node
linkType: hard
-"lucide-react@npm:^0.125.0":
- version: 0.125.0
- resolution: "lucide-react@npm:0.125.0"
- peerDependencies:
- react: ^16.5.1 || ^17.0.0 || ^18.0.0
- checksum: 6d86330fd4316a42624d537cc07adc3c51c18a699a02ef3abbd221c3140ae5ac5685396e1f5cb20f5f5ba80fa100523a5a6811c22a51bd13bbfdf65546cfffdf
- languageName: node
- linkType: hard
-
"luxon@npm:^1.26.0":
version: 1.28.0
resolution: "luxon@npm:1.28.0"
@@ -27818,6 +27948,19 @@ __metadata:
languageName: node
linkType: hard
+"micro@npm:^9.4.1":
+ version: 9.4.1
+ resolution: "micro@npm:9.4.1"
+ dependencies:
+ arg: 4.1.0
+ content-type: 1.0.4
+ raw-body: 2.4.1
+ bin:
+ micro: bin/micro.js
+ checksum: 92eae8a68bd1883862d1bdb3a1d0340106a6ddb357dcbe7aaa095dd6947497ff1dd240db86195ab9aab8843f9ac3974accc76d767e9e58f95744ca558dd2d672
+ languageName: node
+ linkType: hard
+
"microevent.ts@npm:~0.1.1":
version: 0.1.1
resolution: "microevent.ts@npm:0.1.1"
@@ -28330,6 +28473,13 @@ __metadata:
languageName: node
linkType: hard
+"mimic-response@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "mimic-response@npm:2.1.0"
+ checksum: 014fad6ab936657e5f2f48bd87af62a8e928ebe84472aaf9e14fec4fcb31257a5edff77324d8ac13ddc6685ba5135cf16e381efac324e5f174fb4ddbf902bf07
+ languageName: node
+ linkType: hard
+
"mimic-response@npm:^3.1.0":
version: 3.1.0
resolution: "mimic-response@npm:3.1.0"
@@ -28412,13 +28562,6 @@ __metadata:
languageName: node
linkType: hard
-"minimist@npm:^1.2.7":
- version: 1.2.8
- resolution: "minimist@npm:1.2.8"
- checksum: 75a6d645fb122dad29c06a7597bddea977258957ed88d7a6df59b5cd3fe4a527e253e9bbf2e783e4b73657f9098b96a5fe96ab8a113655d4109108577ecf85b0
- languageName: node
- linkType: hard
-
"minipass-collect@npm:^1.0.2":
version: 1.0.2
resolution: "minipass-collect@npm:1.0.2"
@@ -28909,6 +29052,15 @@ __metadata:
languageName: node
linkType: hard
+"nan@npm:^2.17.0":
+ version: 2.17.0
+ resolution: "nan@npm:2.17.0"
+ dependencies:
+ node-gyp: latest
+ checksum: ec609aeaf7e68b76592a3ba96b372aa7f5df5b056c1e37410b0f1deefbab5a57a922061e2c5b369bae9c7c6b5e6eecf4ad2dac8833a1a7d3a751e0a7c7f849ed
+ languageName: node
+ linkType: hard
+
"nano-json-stream-parser@npm:^0.1.2":
version: 0.1.2
resolution: "nano-json-stream-parser@npm:0.1.2"
@@ -29013,7 +29165,7 @@ __metadata:
languageName: node
linkType: hard
-"next-auth@npm:^4.20.1":
+"next-auth@npm:^4.10.3, next-auth@npm:^4.20.1":
version: 4.20.1
resolution: "next-auth@npm:4.20.1"
dependencies:
@@ -29135,6 +29287,15 @@ __metadata:
languageName: node
linkType: hard
+"next-transpile-modules@npm:^10.0.0":
+ version: 10.0.0
+ resolution: "next-transpile-modules@npm:10.0.0"
+ dependencies:
+ enhanced-resolve: ^5.10.0
+ checksum: 3300fc7081f63b2c9487588db7cbe718f209dfd2111adec22d9c8af0e3c8ade2d95fd45f91e045546d78d98cafc78a49431de9a623360d33831b5e694bf007c9
+ languageName: node
+ linkType: hard
+
"next-transpile-modules@npm:^8.0.0":
version: 8.0.0
resolution: "next-transpile-modules@npm:8.0.0"
@@ -29154,24 +29315,24 @@ __metadata:
languageName: node
linkType: hard
-"next@npm:13.2.4-canary.5":
- version: 13.2.4-canary.5
- resolution: "next@npm:13.2.4-canary.5"
+"next@npm:^13.1.1":
+ version: 13.2.4
+ resolution: "next@npm:13.2.4"
dependencies:
- "@next/env": 13.2.4-canary.5
- "@next/swc-android-arm-eabi": 13.2.4-canary.5
- "@next/swc-android-arm64": 13.2.4-canary.5
- "@next/swc-darwin-arm64": 13.2.4-canary.5
- "@next/swc-darwin-x64": 13.2.4-canary.5
- "@next/swc-freebsd-x64": 13.2.4-canary.5
- "@next/swc-linux-arm-gnueabihf": 13.2.4-canary.5
- "@next/swc-linux-arm64-gnu": 13.2.4-canary.5
- "@next/swc-linux-arm64-musl": 13.2.4-canary.5
- "@next/swc-linux-x64-gnu": 13.2.4-canary.5
- "@next/swc-linux-x64-musl": 13.2.4-canary.5
- "@next/swc-win32-arm64-msvc": 13.2.4-canary.5
- "@next/swc-win32-ia32-msvc": 13.2.4-canary.5
- "@next/swc-win32-x64-msvc": 13.2.4-canary.5
+ "@next/env": 13.2.4
+ "@next/swc-android-arm-eabi": 13.2.4
+ "@next/swc-android-arm64": 13.2.4
+ "@next/swc-darwin-arm64": 13.2.4
+ "@next/swc-darwin-x64": 13.2.4
+ "@next/swc-freebsd-x64": 13.2.4
+ "@next/swc-linux-arm-gnueabihf": 13.2.4
+ "@next/swc-linux-arm64-gnu": 13.2.4
+ "@next/swc-linux-arm64-musl": 13.2.4
+ "@next/swc-linux-x64-gnu": 13.2.4
+ "@next/swc-linux-x64-musl": 13.2.4
+ "@next/swc-win32-arm64-msvc": 13.2.4
+ "@next/swc-win32-ia32-msvc": 13.2.4
+ "@next/swc-win32-x64-msvc": 13.2.4
"@swc/helpers": 0.4.14
caniuse-lite: ^1.0.30001406
postcss: 8.4.14
@@ -29221,7 +29382,7 @@ __metadata:
optional: true
bin:
next: dist/bin/next
- checksum: 47616f1ebbf0e716ca67313d247d56f646e1f663dcfc99125a0e882ed74a6ebc2c776a7e05438b4e928d38d8dae42933c5b314dfb8e4c0a566edd0e26647335a
+ checksum: 8531dee41b60181b582f5ee80858907b102f083ef8808ff9352d589dd39e6b3a96f7a11b3776a03eef3a28430cff768336fa2e3ff2c6f8fcd699fbc891749051
languageName: node
linkType: hard
@@ -29529,6 +29690,17 @@ __metadata:
languageName: node
linkType: hard
+"nopt@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "nopt@npm:5.0.0"
+ dependencies:
+ abbrev: 1
+ bin:
+ nopt: bin/nopt.js
+ checksum: d35fdec187269503843924e0114c0c6533fb54bbf1620d0f28b4b60ba01712d6687f62565c55cc20a504eff0fbe5c63e22340c3fad549ad40469ffb611b04f2f
+ languageName: node
+ linkType: hard
+
"nopt@npm:^6.0.0":
version: 6.0.0
resolution: "nopt@npm:6.0.0"
@@ -29727,6 +29899,13 @@ __metadata:
languageName: node
linkType: hard
+"nwsapi@npm:^2.2.2":
+ version: 2.2.2
+ resolution: "nwsapi@npm:2.2.2"
+ checksum: 43769106292bc95f776756ca2f3513dab7b4d506a97c67baec32406447841a35f65f29c1f95ab5d42785210fd41668beed33ca16fa058780be43b101ad73e205
+ languageName: node
+ linkType: hard
+
"oauth-sign@npm:~0.9.0":
version: 0.9.0
resolution: "oauth-sign@npm:0.9.0"
@@ -29734,13 +29913,6 @@ __metadata:
languageName: node
linkType: hard
-"oauth4webapi@npm:2.0.5":
- version: 2.0.5
- resolution: "oauth4webapi@npm:2.0.5"
- checksum: 32d0cb7b1cca42d51dfb88075ca2d69fe33172a807e8ea50e317d17cab3bc80588ab8ebcb7eb4600c371a70af4674595b4b341daf6f3a655f1efa1ab715bb6c9
- languageName: node
- linkType: hard
-
"oauth@npm:^0.9.15":
version: 0.9.15
resolution: "oauth@npm:0.9.15"
@@ -30585,6 +30757,15 @@ __metadata:
languageName: node
linkType: hard
+"parse5@npm:^7.1.2":
+ version: 7.1.2
+ resolution: "parse5@npm:7.1.2"
+ dependencies:
+ entities: ^4.4.0
+ checksum: 59465dd05eb4c5ec87b76173d1c596e152a10e290b7abcda1aecf0f33be49646ea74840c69af975d7887543ea45564801736356c568d6b5e71792fd0f4055713
+ languageName: node
+ linkType: hard
+
"parseurl@npm:^1.3.3, parseurl@npm:~1.3.2, parseurl@npm:~1.3.3":
version: 1.3.3
resolution: "parseurl@npm:1.3.3"
@@ -31033,17 +31214,6 @@ __metadata:
languageName: node
linkType: hard
-"playwright@npm:^1.31.2":
- version: 1.31.2
- resolution: "playwright@npm:1.31.2"
- dependencies:
- playwright-core: 1.31.2
- bin:
- playwright: cli.js
- checksum: da7a190275ca6ce14aee0ecf40307b46f014ecca4a5c1b103a308c4be6a03b0825b17721728a69c140654d124487ca35d2fc2d5558bade4969c9363e5b4bd290
- languageName: node
- linkType: hard
-
"pngjs@npm:^3.0.0, pngjs@npm:^3.3.0, pngjs@npm:^3.3.3":
version: 3.4.0
resolution: "pngjs@npm:3.4.0"
@@ -31366,17 +31536,6 @@ __metadata:
languageName: node
linkType: hard
-"preact-render-to-string@npm:5.2.3":
- version: 5.2.3
- resolution: "preact-render-to-string@npm:5.2.3"
- dependencies:
- pretty-format: ^3.8.0
- peerDependencies:
- preact: ">=10"
- checksum: 6e46288d8956adde35b9fe3a21aecd9dea29751b40f0f155dea62f3896f27cb8614d457b32f48d33909d2da81135afcca6c55077520feacd7d15164d1371fb44
- languageName: node
- linkType: hard
-
"preact-render-to-string@npm:^5.1.19":
version: 5.2.6
resolution: "preact-render-to-string@npm:5.2.6"
@@ -31388,13 +31547,6 @@ __metadata:
languageName: node
linkType: hard
-"preact@npm:10.11.3, preact@npm:^10.6.3":
- version: 10.11.3
- resolution: "preact@npm:10.11.3"
- checksum: 9387115aa0581e8226309e6456e9856f17dfc0e3d3e63f774de80f3d462a882ba7c60914c05942cb51d51e23e120dcfe904b8d392d46f29ad15802941fe7a367
- languageName: node
- linkType: hard
-
"preact@npm:10.4.1":
version: 10.4.1
resolution: "preact@npm:10.4.1"
@@ -31409,6 +31561,13 @@ __metadata:
languageName: node
linkType: hard
+"preact@npm:^10.6.3":
+ version: 10.11.3
+ resolution: "preact@npm:10.11.3"
+ checksum: 9387115aa0581e8226309e6456e9856f17dfc0e3d3e63f774de80f3d462a882ba7c60914c05942cb51d51e23e120dcfe904b8d392d46f29ad15802941fe7a367
+ languageName: node
+ linkType: hard
+
"prelude-ls@npm:^1.2.1":
version: 1.2.1
resolution: "prelude-ls@npm:1.2.1"
@@ -31575,7 +31734,7 @@ __metadata:
languageName: node
linkType: hard
-"prisma@npm:^4.11.0":
+"prisma@npm:^4.11.0, prisma@npm:^4.8.1":
version: 4.11.0
resolution: "prisma@npm:4.11.0"
dependencies:
@@ -31828,6 +31987,13 @@ __metadata:
languageName: node
linkType: hard
+"punycode@npm:^2.3.0":
+ version: 2.3.0
+ resolution: "punycode@npm:2.3.0"
+ checksum: 39f760e09a2a3bbfe8f5287cf733ecdad69d6af2fe6f97ca95f24b8921858b91e9ea3c9eeec6e08cede96181b3bb33f95c6ffd8c77e63986508aa2e8159fa200
+ languageName: node
+ linkType: hard
+
"q@npm:2.0.x":
version: 2.0.3
resolution: "q@npm:2.0.3"
@@ -32418,6 +32584,15 @@ __metadata:
languageName: node
linkType: hard
+"react-hook-form@npm:^7.34.2":
+ version: 7.43.7
+ resolution: "react-hook-form@npm:7.43.7"
+ peerDependencies:
+ react: ^16.8.0 || ^17 || ^18
+ checksum: c1679fc5119f3f910f30424b846f9a05ecbc9cce1c7408e4e8eb907aa5a4366d5228a7b41d818868c85017f2be4e1854a1536ba5c1cddf2c27818bd045df9589
+ languageName: node
+ linkType: hard
+
"react-hook-form@npm:^7.43.3":
version: 7.43.3
resolution: "react-hook-form@npm:7.43.3"
@@ -33463,7 +33638,7 @@ __metadata:
languageName: node
linkType: hard
-"remark@npm:^14.0.2":
+"remark@npm:^14.0.1, remark@npm:^14.0.2":
version: 14.0.2
resolution: "remark@npm:14.0.2"
dependencies:
@@ -33960,6 +34135,13 @@ __metadata:
languageName: node
linkType: hard
+"rrweb-cssom@npm:^0.6.0":
+ version: 0.6.0
+ resolution: "rrweb-cssom@npm:0.6.0"
+ checksum: 182312f6e4f41d18230ccc34f14263bc8e8a6b9d30ee3ec0d2d8e643c6f27964cd7a8d638d4a00e988d93e8dc55369f4ab5a473ccfeff7a8bab95b36d2b5499c
+ languageName: node
+ linkType: hard
+
"rsvp@npm:^4.8.4":
version: 4.8.5
resolution: "rsvp@npm:4.8.5"
@@ -34001,15 +34183,6 @@ __metadata:
languageName: node
linkType: hard
-"rxjs@npm:^7.0.0, rxjs@npm:^7.8.0":
- version: 7.8.0
- resolution: "rxjs@npm:7.8.0"
- dependencies:
- tslib: ^2.1.0
- checksum: 61b4d4fd323c1043d8d6ceb91f24183b28bcf5def4f01ca111511d5c6b66755bc5578587fe714ef5d67cf4c9f2e26f4490d4e1d8cabf9bd5967687835e9866a2
- languageName: node
- linkType: hard
-
"rxjs@npm:^7.5.5":
version: 7.5.5
resolution: "rxjs@npm:7.5.5"
@@ -34183,6 +34356,15 @@ __metadata:
languageName: node
linkType: hard
+"saxes@npm:^6.0.0":
+ version: 6.0.0
+ resolution: "saxes@npm:6.0.0"
+ dependencies:
+ xmlchars: ^2.2.0
+ checksum: d3fa3e2aaf6c65ed52ee993aff1891fc47d5e47d515164b5449cbf5da2cbdc396137e55590472e64c5c436c14ae64a8a03c29b9e7389fc6f14035cf4e982ef3b
+ languageName: node
+ linkType: hard
+
"scheduler@npm:^0.20.2":
version: 0.20.2
resolution: "scheduler@npm:0.20.2"
@@ -34622,13 +34804,6 @@ __metadata:
languageName: node
linkType: hard
-"shell-quote@npm:^1.7.3":
- version: 1.8.0
- resolution: "shell-quote@npm:1.8.0"
- checksum: 6ef7c5e308b9c77eedded882653a132214fa98b4a1512bb507588cf6cd2fc78bfee73e945d0c3211af028a1eabe09c6a19b96edd8977dc149810797e93809749
- languageName: node
- linkType: hard
-
"short-uuid@npm:^4.2.0":
version: 4.2.0
resolution: "short-uuid@npm:4.2.0"
@@ -34675,6 +34850,17 @@ __metadata:
languageName: node
linkType: hard
+"simple-get@npm:^3.0.3":
+ version: 3.1.1
+ resolution: "simple-get@npm:3.1.1"
+ dependencies:
+ decompress-response: ^4.2.0
+ once: ^1.3.1
+ simple-concat: ^1.0.0
+ checksum: 80195e70bf171486e75c31e28e5485468195cc42f85940f8b45c4a68472160144d223eb4d07bc82ef80cb974b7c401db021a540deb2d34ac4b3b8883da2d6401
+ languageName: node
+ linkType: hard
+
"sirv@npm:^1.0.7":
version: 1.0.19
resolution: "sirv@npm:1.0.19"
@@ -34965,13 +35151,6 @@ __metadata:
languageName: node
linkType: hard
-"spawn-command@npm:^0.0.2-1":
- version: 0.0.2
- resolution: "spawn-command@npm:0.0.2"
- checksum: e35c5d28177b4d461d33c88cc11f6f3a5079e2b132c11e1746453bbb7a0c0b8a634f07541a2a234fa4758239d88203b758def509161b651e81958894c0b4b64b
- languageName: node
- linkType: hard
-
"spdx-correct@npm:^3.0.0":
version: 3.1.1
resolution: "spdx-correct@npm:3.1.1"
@@ -35910,7 +36089,7 @@ __metadata:
languageName: node
linkType: hard
-"supports-color@npm:^8.0.0, supports-color@npm:^8.1.0":
+"supports-color@npm:^8.0.0":
version: 8.1.1
resolution: "supports-color@npm:8.1.1"
dependencies:
@@ -36736,7 +36915,7 @@ __metadata:
languageName: node
linkType: hard
-"tough-cookie@npm:*":
+"tough-cookie@npm:*, tough-cookie@npm:^4.1.2":
version: 4.1.2
resolution: "tough-cookie@npm:4.1.2"
dependencies:
@@ -36778,6 +36957,15 @@ __metadata:
languageName: node
linkType: hard
+"tr46@npm:^4.1.1":
+ version: 4.1.1
+ resolution: "tr46@npm:4.1.1"
+ dependencies:
+ punycode: ^2.3.0
+ checksum: aeeb821ac2cd792e63ec84888b4fd6598ac6ed75d861579e21a5cf9d4ee78b2c6b94e7d45036f2ca2088bc85b9b46560ad23c4482979421063b24137349dbd96
+ languageName: node
+ linkType: hard
+
"tr46@npm:~0.0.3":
version: 0.0.3
resolution: "tr46@npm:0.0.3"
@@ -36792,15 +36980,6 @@ __metadata:
languageName: node
linkType: hard
-"tree-kill@npm:^1.2.2":
- version: 1.2.2
- resolution: "tree-kill@npm:1.2.2"
- bin:
- tree-kill: cli.js
- checksum: 49117f5f410d19c84b0464d29afb9642c863bc5ba40fcb9a245d474c6d5cc64d1b177a6e6713129eb346b40aebb9d4631d967517f9fbe8251c35b21b13cd96c7
- languageName: node
- linkType: hard
-
"trim-newlines@npm:^1.0.0":
version: 1.0.0
resolution: "trim-newlines@npm:1.0.0"
@@ -37450,6 +37629,16 @@ __metadata:
languageName: node
linkType: hard
+"typescript@npm:^4.7.4":
+ version: 4.9.5
+ resolution: "typescript@npm:4.9.5"
+ bin:
+ tsc: bin/tsc
+ tsserver: bin/tsserver
+ checksum: ee000bc26848147ad423b581bd250075662a354d84f0e06eb76d3b892328d8d4440b7487b5a83e851b12b255f55d71835b008a66cbf8f255a11e4400159237db
+ languageName: node
+ linkType: hard
+
"typescript@npm:^4.9.4":
version: 4.9.4
resolution: "typescript@npm:4.9.4"
@@ -37460,6 +37649,16 @@ __metadata:
languageName: node
linkType: hard
+"typescript@patch:typescript@^4.7.4#~builtin":
+ version: 4.9.5
+ resolution: "typescript@patch:typescript@npm%3A4.9.5#~builtin::version=4.9.5&hash=23ec76"
+ bin:
+ tsc: bin/tsc
+ tsserver: bin/tsserver
+ checksum: ab417a2f398380c90a6cf5a5f74badd17866adf57f1165617d6a551f059c3ba0a3e4da0d147b3ac5681db9ac76a303c5876394b13b3de75fdd5b1eaa06181c9d
+ languageName: node
+ linkType: hard
+
"typescript@patch:typescript@^4.9.4#~builtin":
version: 4.9.4
resolution: "typescript@patch:typescript@npm%3A4.9.4#~builtin::version=4.9.4&hash=23ec76"
@@ -38545,6 +38744,15 @@ __metadata:
languageName: node
linkType: hard
+"w3c-xmlserializer@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "w3c-xmlserializer@npm:4.0.0"
+ dependencies:
+ xml-name-validator: ^4.0.0
+ checksum: eba070e78deb408ae8defa4d36b429f084b2b47a4741c4a9be3f27a0a3d1845e277e3072b04391a138f7e43776842627d1334e448ff13ff90ad9fb1214ee7091
+ languageName: node
+ linkType: hard
+
"wagmi@npm:^0.6.4":
version: 0.6.4
resolution: "wagmi@npm:0.6.4"
@@ -38563,21 +38771,6 @@ __metadata:
languageName: node
linkType: hard
-"wait-on@npm:^7.0.1":
- version: 7.0.1
- resolution: "wait-on@npm:7.0.1"
- dependencies:
- axios: ^0.27.2
- joi: ^17.7.0
- lodash: ^4.17.21
- minimist: ^1.2.7
- rxjs: ^7.8.0
- bin:
- wait-on: bin/wait-on
- checksum: 1e8a17d8ee6436f71d3ab82781ce31267481fcd7bbccde49b0f8124871e6e40a1acac3401f04f775ba6203853a5813352fa131620fc139914351f3b2894d573f
- languageName: node
- linkType: hard
-
"walker@npm:^1.0.7, walker@npm:^1.0.8, walker@npm:~1.0.5":
version: 1.0.8
resolution: "walker@npm:1.0.8"
@@ -38962,6 +39155,25 @@ __metadata:
languageName: node
linkType: hard
+"webpack-bundle-analyzer@npm:4.3.0":
+ version: 4.3.0
+ resolution: "webpack-bundle-analyzer@npm:4.3.0"
+ dependencies:
+ acorn: ^8.0.4
+ acorn-walk: ^8.0.0
+ chalk: ^4.1.0
+ commander: ^6.2.0
+ gzip-size: ^6.0.0
+ lodash: ^4.17.20
+ opener: ^1.5.2
+ sirv: ^1.0.7
+ ws: ^7.3.1
+ bin:
+ webpack-bundle-analyzer: lib/bin/analyzer.js
+ checksum: 00b7bf4ac9fca17062b66b6897145b94e87153d3ec8815f0e0c05a3b8a1ca75320262db01a5fa634f604ee3d41aecde1ee59838d05b6d03cd5be62eb1addbcf8
+ languageName: node
+ linkType: hard
+
"webpack-bundle-analyzer@npm:4.7.0":
version: 4.7.0
resolution: "webpack-bundle-analyzer@npm:4.7.0"
@@ -39274,6 +39486,16 @@ __metadata:
languageName: node
linkType: hard
+"whatwg-url@npm:^12.0.0, whatwg-url@npm:^12.0.1":
+ version: 12.0.1
+ resolution: "whatwg-url@npm:12.0.1"
+ dependencies:
+ tr46: ^4.1.1
+ webidl-conversions: ^7.0.0
+ checksum: 8698993b763c1e7eda5ed16c31dab24bca6489626aca7caf8b5a2b64684dda6578194786f10ec42ceb1c175feea16d0a915096e6419e08d154ce551c43176972
+ languageName: node
+ linkType: hard
+
"whatwg-url@npm:^5.0.0":
version: 5.0.0
resolution: "whatwg-url@npm:5.0.0"
@@ -39538,6 +39760,21 @@ __metadata:
languageName: node
linkType: hard
+"ws@npm:^8.13.0":
+ version: 8.13.0
+ resolution: "ws@npm:8.13.0"
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: ">=5.0.2"
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+ checksum: 53e991bbf928faf5dc6efac9b8eb9ab6497c69feeb94f963d648b7a3530a720b19ec2e0ec037344257e05a4f35bd9ad04d9de6f289615ffb133282031b18c61c
+ languageName: node
+ linkType: hard
+
"ws@npm:^8.2.3":
version: 8.8.0
resolution: "ws@npm:8.8.0"