diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
index e9625dc38f..402b8d37de 100644
--- a/.github/ISSUE_TEMPLATE/feature_request.md
+++ b/.github/ISSUE_TEMPLATE/feature_request.md
@@ -17,3 +17,10 @@ A clear and concise description of any alternative solutions or features you've
**Additional context**
Add any other context or screenshots about the feature request here.
+
+### How we code at Formbricks π€
+
+- Everything is type-safe
+- All UI components are in the package `formbricks/ui`
+- Run `pnpm dev` to find a demo app to test in-app surveys at `localhost:3002`
+- We use **chatGPT** to help refactor code. Use our [Formbricks β¨ megaprompt β¨](https://github.com/formbricks/formbricks/blob/main/megaprompt.md) to create the right context before you write your prompt.
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index f1547a39e3..bcc25bd390 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -31,6 +31,8 @@ Fixes # (issue)
+- [ ] Added a screen recording or screenshots to this PR
+- [ ] Filled out the "How to test" section in this PR
- [ ] Read the [contributing guide](https://github.com/formbricks/formbricks/blob/main/CONTRIBUTING.md)
- [ ] Self-reviewed my own code
- [ ] Commented on my code in hard-to-understand bits
diff --git a/LICENSE b/LICENSE
index 81998a1128..549e017679 100644
--- a/LICENSE
+++ b/LICENSE
@@ -3,7 +3,7 @@ Copyright (c) 2023 Matthias Nannt, Johannes Dancker
Portions of this software are licensed as follows:
- All content that resides under the "packages/ee/" directory of this repository, if that directory exists, is licensed under the license defined in "packages/ee/LICENSE".
-- All content that resides under the "packages/js/" directory of this repository, if that directory exists, is licensed under the "MIT" license as defined in "packages/js/LICENSE".
+- All content that resides under the "packages/js/", "packages/errors/" and "packages/api/" directories of this repository, if that directories exist, is licensed under the "MIT" license as defined in the "LICENSE" files of these packages.
- All third party components incorporated into the Formbricks Software are licensed under the original license provided by the owner of the applicable component.
- Content outside of the above mentioned directories or restrictions above is available under the "AGPLv3" license as defined below.
@@ -67,7 +67,7 @@ modification follow.
TERMS AND CONDITIONS
-0. Definitions.
+1. Definitions.
"This License" refers to version 3 of the GNU Affero General Public License.
diff --git a/README.md b/README.md
index a6677ea3ab..66e15df09e 100644
--- a/README.md
+++ b/README.md
@@ -12,67 +12,89 @@
(null);
-
- const scrollToBottom = () => {
- messagesEndRef.current?.scrollIntoView({ behavior: "smooth" });
- };
-
- // run once!
- useEffect(() => {
- const hookedConsole = Hook(window.console, (log) => setLogs((currLogs) => [...currLogs, log]), false);
- return () => Unhook(hookedConsole);
- }, []);
-
- useEffect(scrollToBottom, [logs]);
-
- return (
- <>
-
-
- >
- );
-};
-
-export { LogsContainer };
diff --git a/apps/demo/package.json b/apps/demo/package.json
index fe1bdd65d8..6548a5484c 100644
--- a/apps/demo/package.json
+++ b/apps/demo/package.json
@@ -12,22 +12,20 @@
"dependencies": {
"@formbricks/js": "workspace:*",
"@heroicons/react": "^2.0.17",
- "@types/node": "18.15.11",
- "@types/react": "18.0.33",
- "@types/react-dom": "18.0.11",
- "console-feed": "^3.5.0",
- "eslint": "8.37.0",
"eslint-config-formbricks": "workspace:*",
"next": "13.2.4",
"react": "18.2.0",
- "react-dom": "18.2.0",
- "typescript": "5.0.3"
+ "react-dom": "18.2.0"
},
"devDependencies": {
"@tailwindcss/forms": "^0.5.3",
+ "@types/node": "18.15.11",
+ "@types/react": "18.0.33",
+ "@types/react-dom": "18.0.11",
"autoprefixer": "^10.4.14",
"postcss": "^8.4.21",
"rimraf": "^5.0.0",
- "tailwindcss": "^3.3.1"
+ "tailwindcss": "^3.3.1",
+ "typescript": "5.0.3"
}
}
diff --git a/apps/demo/pages/app/index.tsx b/apps/demo/pages/app/index.tsx
index d76978548c..393a17ddd1 100644
--- a/apps/demo/pages/app/index.tsx
+++ b/apps/demo/pages/app/index.tsx
@@ -1,7 +1,6 @@
import fbsetup from "../../public/fb-setup.png";
import formbricks from "@formbricks/js";
import Image from "next/image";
-import { LogsContainer } from "../../components/ConsoleFeed";
export default function AppPage({}) {
return (
@@ -22,13 +21,13 @@ export default function AppPage({}) {
-
+ {/*
Console
You can also open your browser console to logs:
-
+
*/}
diff --git a/apps/formbricks-com/components/dummyUI/templates.ts b/apps/formbricks-com/components/dummyUI/templates.ts
index 13f5372750..eec443a3a6 100644
--- a/apps/formbricks-com/components/dummyUI/templates.ts
+++ b/apps/formbricks-com/components/dummyUI/templates.ts
@@ -45,6 +45,7 @@ export const customSurvey: Template = {
headline: "Custom Survey",
subheader: "This is an example survey.",
placeholder: "Type your answer here...",
+ longAnswer: true,
required: true,
},
],
@@ -116,12 +117,14 @@ export const templates: Template[] = [
id: createId(),
type: QuestionType.OpenText,
headline: "What type of people do you think would most benefit from Formbricks?",
+ longAnswer: true,
required: true,
},
{
id: createId(),
type: QuestionType.OpenText,
headline: "What is the main benefit your receive from Formbricks?",
+ longAnswer: true,
required: true,
},
{
@@ -129,6 +132,7 @@ export const templates: Template[] = [
type: QuestionType.OpenText,
headline: "How can we improve our service for you?",
subheader: "Please be as specific as possible.",
+ longAnswer: true,
required: true,
},
],
@@ -298,6 +302,7 @@ export const templates: Template[] = [
type: QuestionType.OpenText,
headline: "Would you like to add something?",
subheader: "Feel free to speak your mind, we do too.",
+ longAnswer: true,
required: false,
},
],
@@ -387,6 +392,7 @@ export const templates: Template[] = [
type: QuestionType.OpenText,
headline: "How can we win you back?",
subheader: "Feel free to speak your mind, we do too.",
+ longAnswer: true,
required: false,
},
],
@@ -434,6 +440,7 @@ export const templates: Template[] = [
id: createId(),
type: QuestionType.OpenText,
headline: "Any details to share?",
+ longAnswer: true,
required: false,
},
{
@@ -441,6 +448,7 @@ export const templates: Template[] = [
type: QuestionType.OpenText,
headline: "How are you solving your problem instead?",
subheader: "Please name alternative tools:",
+ longAnswer: true,
required: false,
},
],
@@ -549,6 +557,7 @@ export const templates: Template[] = [
id: createId(),
type: QuestionType.OpenText,
headline: "What did you come here to do today?",
+ longAnswer: true,
required: false,
},
],
@@ -615,6 +624,7 @@ export const templates: Template[] = [
type: QuestionType.OpenText,
headline: "Wanna add something?",
subheader: "This really helps us do better!",
+ longAnswer: true,
required: false,
},
],
@@ -678,6 +688,7 @@ export const templates: Template[] = [
type: QuestionType.OpenText,
headline: "How can we improve our service for you?",
subheader: "Please be as specific as possible.",
+ longAnswer: true,
required: true,
},
],
@@ -713,6 +724,7 @@ export const templates: Template[] = [
id: createId(),
type: QuestionType.OpenText,
headline: "Give us the juicy details:",
+ longAnswer: true,
required: true,
},
],
@@ -760,6 +772,7 @@ export const templates: Template[] = [
type: QuestionType.OpenText,
headline: "Which product would you like to integrate next?",
subheader: "We keep building integrations. Yours can be next:",
+ longAnswer: true,
required: false,
},
],
@@ -806,6 +819,7 @@ export const templates: Template[] = [
id: createId(),
type: QuestionType.OpenText,
headline: "If you chose other, please clarify:",
+ longAnswer: true,
required: false,
},
],
@@ -840,12 +854,14 @@ export const templates: Template[] = [
id: createId(),
type: QuestionType.OpenText,
headline: "Please elaborate:",
+ longAnswer: true,
required: false,
},
{
id: createId(),
type: QuestionType.OpenText,
headline: "Page URL",
+ longAnswer: true,
required: false,
},
],
@@ -974,6 +990,7 @@ export const templates: Template[] = [
id: createId(),
type: QuestionType.OpenText,
headline: "What's the #1 thing you'd like to change in Formbricks?",
+ longAnswer: true,
required: false,
},
],
@@ -1002,6 +1019,7 @@ export const templates: Template[] = [
id: createId(),
type: QuestionType.OpenText,
headline: "What is one thing we could do better?",
+ longAnswer: true,
required: false,
},
],
@@ -1040,6 +1058,7 @@ export const templates: Template[] = [
id: createId(),
type: QuestionType.OpenText,
headline: "Whatβs missing or unclear to you about Formbricks?",
+ longAnswer: true,
required: false,
},
{
diff --git a/apps/formbricks-com/components/home/GitHubSponsorship.tsx b/apps/formbricks-com/components/home/GitHubSponsorship.tsx
index d426a5ef09..c26ee3c187 100644
--- a/apps/formbricks-com/components/home/GitHubSponsorship.tsx
+++ b/apps/formbricks-com/components/home/GitHubSponsorship.tsx
@@ -23,10 +23,10 @@ export const GitHubSponsorship: React.FC = () => {
/>
- Sponsored by GitHub
+ Proudly Open-Source π€
- We're proud to join the first accelerator program by GitHub!{" "}
+ We're proud to to be supported by GitHubs Open-Source Program!{" "}
{
- Survey any segment. {" "}
-
- No coding required.
-
+ Create Products People Remember
- Survey granular user segments at any point in the user journey.
+ Understand what customers think & feel about your product.
- Gather up to 6x more insights with targeted micro-surveys.{" "}
- All open-source.
+ Continuously gather deep user insights,{" "}
+ all privacy-first.
diff --git a/apps/formbricks-com/components/shared/Footer.tsx b/apps/formbricks-com/components/shared/Footer.tsx
index b226f74dc0..081277a414 100644
--- a/apps/formbricks-com/components/shared/Footer.tsx
+++ b/apps/formbricks-com/components/shared/Footer.tsx
@@ -48,9 +48,7 @@ export default function Footer() {
Formbricks
-
- Make customer-centric decisions based on data.
-
+
Privacy-first Experience Management
© 2022. All rights reserved.
diff --git a/apps/formbricks-com/components/shared/Header.tsx b/apps/formbricks-com/components/shared/Header.tsx
index 0d630511e6..000b1e84fb 100644
--- a/apps/formbricks-com/components/shared/Header.tsx
+++ b/apps/formbricks-com/components/shared/Header.tsx
@@ -1,3 +1,5 @@
+import GitHubMarkWhite from "@/images/github-mark-white.svg";
+import GitHubMarkDark from "@/images/github-mark.svg";
import {
BaseballIcon,
Button,
@@ -11,9 +13,9 @@ import {
} from "@formbricks/ui";
import { Popover, Transition } from "@headlessui/react";
import { Bars3Icon, ChevronDownIcon, ChevronRightIcon, XMarkIcon } from "@heroicons/react/24/outline";
-import { StarIcon } from "@heroicons/react/24/solid";
import clsx from "clsx";
import { usePlausible } from "next-plausible";
+import Image from "next/image";
import Link from "next/link";
import { useRouter } from "next/router";
import { Fragment, useState } from "react";
@@ -269,9 +271,9 @@ export default function Header() {
*/}
- Community
+ Concierge
@@ -281,21 +283,24 @@ export default function Header() {
className="group px-2"
href="https://formbricks.com/github"
target="_blank">
-
+
+
{/*
setVideoModal(true)}>
setVideoModal(false)} />
*/}
- {/*
- View on Github
- */}
)}
-
Community
+
Concierge
Pricing
Docs
Blog
diff --git a/apps/formbricks-com/components/shared/Pricing.tsx b/apps/formbricks-com/components/shared/Pricing.tsx
index de3bda807d..ba0e91e2bb 100644
--- a/apps/formbricks-com/components/shared/Pricing.tsx
+++ b/apps/formbricks-com/components/shared/Pricing.tsx
@@ -1,6 +1,5 @@
import { Button } from "@formbricks/ui";
import clsx from "clsx";
-import EarlyBirdDeal from "./EarlyBirdDeal";
import HeadingCentered from "./HeadingCentered";
import { CheckIcon } from "@heroicons/react/24/outline";
import { usePlausible } from "next-plausible";
@@ -55,7 +54,7 @@ const tiers = [
priceMonthly: "$99",
paymentRythm: "/month",
button: "secondary",
- discounted: true,
+ discounted: false,
highlight: false,
description: "All features included. Unlimited usage.",
features: ["All features of Free plan", "Unlimited responses", "Remove branding"],
@@ -154,9 +153,6 @@ export default function Pricing() {
))}
-
-
-
);
}
diff --git a/apps/formbricks-com/lib/cn.ts b/apps/formbricks-com/lib/cn.ts
deleted file mode 100644
index cec6ac9e86..0000000000
--- a/apps/formbricks-com/lib/cn.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { ClassValue, clsx } from "clsx";
-import { twMerge } from "tailwind-merge";
-
-export function cn(...inputs: ClassValue[]) {
- return twMerge(clsx(inputs));
-}
diff --git a/apps/formbricks-com/next.config.mjs b/apps/formbricks-com/next.config.mjs
index 9e85ae1d90..7633dace97 100644
--- a/apps/formbricks-com/next.config.mjs
+++ b/apps/formbricks-com/next.config.mjs
@@ -26,6 +26,11 @@ const nextConfig = {
destination: "https://github.com/formbricks/formbricks",
permanent: true,
},
+ {
+ source: "/deal",
+ destination: "/concierge",
+ permanent: false,
+ },
{
source: "/privacy",
destination: "/privacy-policy",
diff --git a/apps/formbricks-com/package.json b/apps/formbricks-com/package.json
index 3138815893..ff595434a8 100644
--- a/apps/formbricks-com/package.json
+++ b/apps/formbricks-com/package.json
@@ -11,44 +11,45 @@
"lint": "next lint"
},
"dependencies": {
- "@docsearch/react": "^3.3.3",
- "@formbricks/ui": "workspace:*",
- "@formbricks/types": "workspace:*",
+ "@calcom/embed-react": "^1.1.1",
+ "@docsearch/react": "^3.5.1",
"@formbricks/lib": "workspace:*",
- "@headlessui/react": "^1.7.14",
- "@heroicons/react": "^2.0.17",
+ "@formbricks/types": "workspace:*",
+ "@formbricks/ui": "workspace:*",
+ "@headlessui/react": "^1.7.15",
+ "@heroicons/react": "^2.0.18",
"@mapbox/rehype-prism": "^0.8.0",
"@mdx-js/loader": "^2.3.0",
"@mdx-js/react": "^2.3.0",
- "@next/mdx": "^13.3.0",
- "add": "^2.0.6",
+ "@next/mdx": "^13.4.7",
+ "@paralleldrive/cuid2": "^2.2.0",
"clsx": "^1.2.1",
- "lottie-web": "^5.11.0",
- "next": "13.3.0",
- "next-plausible": "^3.7.2",
- "next-sitemap": "^4.0.7",
- "prism-react-renderer": "^1.3.5",
+ "lottie-web": "^5.12.2",
+ "next": "13.4.7",
+ "next-plausible": "^3.8.0",
+ "next-sitemap": "^4.1.3",
+ "prism-react-renderer": "^2.0.6",
"prismjs": "^1.29.0",
"react": "18.2.0",
"react-dom": "18.2.0",
- "react-hook-form": "^7.43.9",
+ "react-icons": "^4.8.0",
"react-responsive-embed": "^2.1.0",
"remark-gfm": "^3.0.1",
- "sharp": "^0.32.0"
+ "sharp": "^0.32.1"
},
"devDependencies": {
"@formbricks/tsconfig": "workspace:*",
"@tailwindcss/forms": "^0.5.3",
"@tailwindcss/typography": "^0.5.9",
- "@types/node": "18.15.11",
+ "@types/node": "20.3.2",
"@types/prismjs": "^1.26.0",
- "@types/react": "^18.0.35",
- "@types/react-dom": "^18.0.11",
+ "@types/react": "18.2.7",
+ "@types/react-dom": "18.2.4",
"autoprefixer": "^10.4.14",
"eslint-config-formbricks": "workspace:*",
- "postcss": "^8.4.22",
- "rimraf": "^5.0.0",
- "tailwindcss": "^3.3.1",
- "typescript": "^5.0.4"
+ "postcss": "^8.4.24",
+ "rimraf": "^5.0.1",
+ "tailwindcss": "^3.3.2",
+ "typescript": "5.0.4"
}
}
diff --git a/apps/formbricks-com/pages/concierge.tsx b/apps/formbricks-com/pages/concierge.tsx
new file mode 100644
index 0000000000..bf0ff7198c
--- /dev/null
+++ b/apps/formbricks-com/pages/concierge.tsx
@@ -0,0 +1,102 @@
+import HeroTitle from "@/components/shared/HeroTitle";
+import Layout from "@/components/shared/Layout";
+import Cal, { getCalApi } from "@calcom/embed-react";
+import { useEffect } from "react";
+import { CheckBadgeIcon } from "@heroicons/react/24/solid";
+
+const XMOffer = [
+ {
+ step: "1",
+ header: "Kick-off call",
+ description: "You share with our seasoned PMs which areas of your customer experience need improvement.",
+ },
+ {
+ step: "2",
+ header: "In-depth analysis",
+ description: "With a fresh pair of eyes, we analyze your customer experience to uncover potential.",
+ },
+ {
+ step: "3",
+ header: "Research design",
+ description: "We set up systems for continuous discovery. Benefit from an ongoing stream of insights.",
+ },
+ {
+ step: "4",
+ header: "Setup assistance",
+ description: "Our core developers help you get Formbricks up and running in no more than 60 minutes.",
+ },
+ {
+ step: "5",
+ header: "Actionable insights",
+ description:
+ "Once the results are in, we perform a thorough analysis and derive concrete Next Action Steps to retain your customers better.",
+ },
+];
+
+const ConciergePage = () => {
+ useEffect(() => {
+ (async function () {
+ const cal = await getCalApi();
+ cal("ui", {
+ theme: "light",
+ styles: { branding: { brandColor: "#000000" } },
+ hideEventTypeDetails: false,
+ });
+ })();
+ }, []);
+
+ return (
+
+
+
+
+ {XMOffer.map((offer) => (
+
+
+ {offer.step}
+
+
+
{offer.header}
+
{offer.description}
+
+
+ ))}
+
+
+
+
+ 100% Risk-free: Pay after the kick-off call.
+
+
+
+ Money-back: If you're not happy, get a full refund.
+
+
+
+
+
+
+
+
+ );
+};
+
+export default ConciergePage;
diff --git a/apps/formbricks-com/pages/index.tsx b/apps/formbricks-com/pages/index.tsx
index 418d831b0c..49824b0327 100644
--- a/apps/formbricks-com/pages/index.tsx
+++ b/apps/formbricks-com/pages/index.tsx
@@ -10,7 +10,7 @@ import BestPractices from "@/components/shared/BestPractices";
const IndexPage = () => (
diff --git a/apps/web/README.md b/apps/web/README.md
index f47558bb4f..7f6bb8e358 100644
--- a/apps/web/README.md
+++ b/apps/web/README.md
@@ -50,7 +50,7 @@ To get the project running locally on your machine you need to have the followin
1. Make sure your PostgreSQL Database Server is running. Then let prisma set up the database for you:
```sh
- pnpm dlx prisma migrate dev
+ pnpm prisma migrate dev
```
1. Start the development server:
diff --git a/apps/web/app/ClientLogout.tsx b/apps/web/app/ClientLogout.tsx
new file mode 100644
index 0000000000..d5f26fc4c8
--- /dev/null
+++ b/apps/web/app/ClientLogout.tsx
@@ -0,0 +1,11 @@
+"use client";
+
+import { signOut } from "next-auth/react";
+import { useEffect } from "react";
+
+export default function ClientLogout() {
+ useEffect(() => {
+ signOut();
+ });
+ return null;
+}
diff --git a/apps/web/app/api/v1/client/actions/route.ts b/apps/web/app/api/v1/client/actions/route.ts
deleted file mode 100644
index 4db063e56e..0000000000
--- a/apps/web/app/api/v1/client/actions/route.ts
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
-THIS FILE IS WORK IN PROGRESS
-PLEASE DO NOT USE IT YET
-*/
-
-import { responses } from "@/lib/api/response";
-import { prisma } from "@formbricks/database";
-import { NextResponse } from "next/server";
-
-export async function OPTIONS(): Promise
{
- return responses.successResponse({}, true);
-}
-
-export async function POST(request: Request): Promise {
- const { sessionId, environmentId, eventName, properties } = await request.json();
-
- if (!sessionId) {
- return responses.missingFieldResponse("sessionId", true);
- }
-
- if (!environmentId) {
- return responses.missingFieldResponse("environmentId", true);
- }
-
- if (!eventName) {
- return responses.missingFieldResponse("eventName", true);
- }
-
- const action = await prisma.event.create({
- data: {
- properties,
- session: {
- connect: {
- id: sessionId,
- },
- },
- eventClass: {
- connectOrCreate: {
- where: {
- name_environmentId: {
- name: eventName,
- environmentId,
- },
- },
- create: {
- name: eventName,
- type: "code",
- environment: {
- connect: {
- id: environmentId,
- },
- },
- },
- },
- },
- },
- select: {
- id: true,
- },
- });
-
- return responses.successResponse(action, true);
-}
diff --git a/apps/web/app/api/v1/client/people/getOrCreate/route.ts b/apps/web/app/api/v1/client/people/getOrCreate/route.ts
new file mode 100644
index 0000000000..1b3de716fa
--- /dev/null
+++ b/apps/web/app/api/v1/client/people/getOrCreate/route.ts
@@ -0,0 +1,44 @@
+import { NextResponse } from "next/server";
+import { prisma } from "@formbricks/database";
+import { responses } from "@/lib/api/response";
+import { createPersonWithUser } from "@/lib/api/clientPerson";
+
+export async function GET(req: Request): Promise {
+ const { searchParams } = new URL(req.url);
+ const userId = searchParams.get("userId");
+ if (!userId) {
+ return responses.badRequestResponse("Fields are missing or incorrectly formatted", { userId: "" }, true);
+ }
+ const environmentId = searchParams.get("environmentId");
+ if (!environmentId) {
+ return responses.badRequestResponse(
+ "Fields are missing or incorrectly formatted",
+ { environmentId: "" },
+ true
+ );
+ }
+
+ const person = await prisma.person.findFirst({
+ where: {
+ environmentId,
+ attributes: {
+ some: {
+ attributeClass: {
+ name: "userId",
+ },
+ value: userId,
+ },
+ },
+ },
+ select: {
+ id: true,
+ environmentId: true,
+ },
+ });
+
+ if (!person) {
+ const newPerson = await createPersonWithUser(environmentId, userId);
+ return responses.successResponse({ person: newPerson }, true);
+ }
+ return responses.successResponse({ person }, true);
+}
diff --git a/apps/web/app/api/v1/client/sessions/route.ts b/apps/web/app/api/v1/client/sessions/route.ts
deleted file mode 100644
index 55bb3bea60..0000000000
--- a/apps/web/app/api/v1/client/sessions/route.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-THIS FILE IS WORK IN PROGRESS
-PLEASE DO NOT USE IT YET
-*/
-
-import { createSession } from "@/lib/api/clientSession";
-import { getSettings } from "@/lib/api/clientSettings";
-import { responses } from "@/lib/api/response";
-import { captureTelemetry } from "@formbricks/lib/telemetry";
-import { NextResponse } from "next/server";
-
-export async function OPTIONS(): Promise {
- return responses.successResponse({}, true);
-}
-
-export async function POST(request: Request): Promise {
- const { personId, environmentId } = await request.json();
-
- if (!personId) {
- return responses.missingFieldResponse("sessionId", true);
- }
-
- if (!environmentId) {
- return responses.missingFieldResponse("environmentId", true);
- }
-
- const session = await createSession(personId);
- const { surveys, noCodeEvents, brandColor } = await getSettings(environmentId, personId);
-
- captureTelemetry("session created");
-
- return responses.successResponse({ session, surveys, noCodeEvents, brandColor }, true);
-}
diff --git a/apps/web/app/api/v1/client/settings/route.ts b/apps/web/app/api/v1/client/settings/route.ts
deleted file mode 100644
index 23199d7383..0000000000
--- a/apps/web/app/api/v1/client/settings/route.ts
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
-THIS FILE IS WORK IN PROGRESS
-PLEASE DO NOT USE IT YET
-*/
-
-import { getSettings } from "@/lib/api/clientSettings";
-import { responses } from "@/lib/api/response";
-import { prisma } from "@formbricks/database";
-import { captureTelemetry } from "@formbricks/lib/telemetry";
-import { NextResponse } from "next/server";
-
-export async function OPTIONS(): Promise {
- return responses.successResponse({}, true);
-}
-
-export async function POST(request: Request): Promise {
- const { userCuid } = await request.json();
-
- if (!userCuid) {
- return responses.missingFieldResponse("userCuid", true);
- }
-
- // get user
- const user = await prisma.person.findUnique({
- where: {
- id: userCuid,
- },
- select: {
- id: true,
- environmentId: true,
- },
- });
-
- if (!user) {
- return responses.notFoundResponse("User", userCuid, true);
- }
-
- const { surveys, noCodeEvents, brandColor } = await getSettings(user.environmentId, user.id);
-
- captureTelemetry("session created");
-
- return responses.successResponse({ surveys, noCodeEvents, brandColor }, true);
-}
diff --git a/apps/web/app/api/v1/client/users/[userCuid]/attribute/route.ts b/apps/web/app/api/v1/client/users/[userCuid]/attribute/route.ts
deleted file mode 100644
index 3925e2a2a1..0000000000
--- a/apps/web/app/api/v1/client/users/[userCuid]/attribute/route.ts
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
-THIS FILE IS WORK IN PROGRESS
-PLEASE DO NOT USE IT YET
-*/
-
-import { getSettings } from "@/lib/api/clientSettings";
-import { responses } from "@/lib/api/response";
-import { prisma } from "@formbricks/database";
-import { NextResponse } from "next/server";
-
-export async function OPTIONS(): Promise {
- return responses.successResponse({}, true);
-}
-
-export async function POST(request: Request, params: { userCuid: string }): Promise {
- const { userCuid } = params;
- const { key, value } = await request.json();
-
- if (!key) {
- return responses.missingFieldResponse("key", true);
- }
-
- if (!value) {
- return responses.missingFieldResponse("value", true);
- }
-
- const currentPerson = await prisma.person.findUnique({
- where: {
- id: userCuid,
- },
- select: {
- id: true,
- environmentId: true,
- attributes: {
- select: {
- id: true,
- attributeClass: {
- select: {
- name: true,
- },
- },
- },
- },
- },
- });
-
- if (!currentPerson) {
- return responses.notFoundResponse("User", userCuid, true);
- }
-
- const environmentId = currentPerson.environmentId;
-
- // find attribute class
- let attributeClass = await prisma.attributeClass.findUnique({
- where: {
- name_environmentId: {
- name: key,
- environmentId,
- },
- },
- select: {
- id: true,
- },
- });
-
- // create new attribute class if not found
- if (attributeClass === null) {
- attributeClass = await prisma.attributeClass.create({
- data: {
- name: key,
- type: "code",
- environment: {
- connect: {
- id: environmentId,
- },
- },
- },
- select: {
- id: true,
- },
- });
- }
-
- // upsert attribute (update or create)
- const attribute = await prisma.attribute.upsert({
- where: {
- attributeClassId_personId: {
- attributeClassId: attributeClass.id,
- personId: userCuid,
- },
- },
- update: {
- value,
- },
- create: {
- attributeClass: {
- connect: {
- id: attributeClass.id,
- },
- },
- person: {
- connect: {
- id: userCuid,
- },
- },
- value,
- },
- select: {
- person: {
- select: {
- id: true,
- environmentId: true,
- attributes: {
- select: {
- id: true,
- value: true,
- attributeClass: {
- select: {
- id: true,
- name: true,
- },
- },
- },
- },
- },
- },
- },
- });
-
- const user = attribute.person;
-
- const { surveys, noCodeEvents, brandColor } = await getSettings(environmentId, user.id);
-
- return responses.successResponse({ user, surveys, noCodeEvents, brandColor }, true);
-}
diff --git a/apps/web/app/api/v1/client/users/[userCuid]/user-id/route.ts b/apps/web/app/api/v1/client/users/[userCuid]/user-id/route.ts
deleted file mode 100644
index e55f41977b..0000000000
--- a/apps/web/app/api/v1/client/users/[userCuid]/user-id/route.ts
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
-THIS FILE IS WORK IN PROGRESS
-PLEASE DO NOT USE IT YET
-*/
-
-import { getSettings } from "@/lib/api/clientSettings";
-import { responses } from "@/lib/api/response";
-import { prisma } from "@formbricks/database";
-import { NextResponse } from "next/server";
-
-export async function OPTIONS(): Promise {
- return responses.successResponse({}, true);
-}
-
-export async function POST(request: Request, params: { userCuid: string }): Promise {
- const { userCuid } = params;
- const { userId, sessionId } = await request.json();
-
- if (!userId) {
- return responses.missingFieldResponse("userId", true);
- }
-
- if (!sessionId) {
- return responses.missingFieldResponse("sessionId", true);
- }
-
- let returnedUser;
-
- // find person
- const person = await prisma.person.findUnique({
- where: {
- id: userCuid,
- },
- select: {
- id: true,
- environmentId: true,
- },
- });
-
- if (!person) {
- return responses.notFoundResponse("User", userCuid, true);
- }
-
- const environmentId = person.environmentId;
-
- // check if person with this userId already exists
- const existingPerson = await prisma.person.findFirst({
- where: {
- environmentId,
- attributes: {
- some: {
- attributeClass: {
- name: "userId",
- },
- value: userId,
- },
- },
- },
- select: {
- id: true,
- environmentId: true,
- attributes: {
- select: {
- id: true,
- value: true,
- attributeClass: {
- select: {
- id: true,
- name: true,
- },
- },
- },
- },
- },
- });
- // if person exists, reconnect ression and delete old user
- if (existingPerson) {
- // reconnect session to new person
- await prisma.session.update({
- where: {
- id: sessionId,
- },
- data: {
- person: {
- connect: {
- id: existingPerson.id,
- },
- },
- },
- });
-
- // delete old person
- await prisma.person.delete({
- where: {
- id: userCuid,
- },
- });
- returnedUser = existingPerson;
- } else {
- // update person
- returnedUser = await prisma.person.update({
- where: {
- id: userCuid,
- },
- data: {
- attributes: {
- create: {
- value: userId,
- attributeClass: {
- connect: {
- name_environmentId: {
- name: "userId",
- environmentId,
- },
- },
- },
- },
- },
- },
- select: {
- id: true,
- environmentId: true,
- attributes: {
- select: {
- id: true,
- value: true,
- attributeClass: {
- select: {
- id: true,
- name: true,
- },
- },
- },
- },
- },
- });
- }
-
- const { surveys, noCodeEvents, brandColor } = await getSettings(environmentId, returnedUser.id);
-
- return responses.successResponse({ user: returnedUser, surveys, noCodeEvents, brandColor }, true);
-}
diff --git a/apps/web/app/api/v1/client/users/route.ts b/apps/web/app/api/v1/client/users/route.ts
deleted file mode 100644
index d8e04b4b5c..0000000000
--- a/apps/web/app/api/v1/client/users/route.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
-THIS FILE IS WORK IN PROGRESS
-PLEASE DO NOT USE IT YET
-*/
-
-import { createPerson } from "@/lib/api/clientPerson";
-import { createSession } from "@/lib/api/clientSession";
-import { getSettings } from "@/lib/api/clientSettings";
-import { responses } from "@/lib/api/response";
-import { NextResponse } from "next/server";
-
-export async function OPTIONS(): Promise {
- return responses.successResponse({}, true);
-}
-
-export async function POST(request: Request): Promise {
- const { environmentId } = await request.json();
-
- if (!environmentId) {
- return responses.missingFieldResponse("environmentId", true);
- }
-
- const user = await createPerson(environmentId);
- const session = await createSession(user.id);
- const { surveys, noCodeEvents, brandColor } = await getSettings(environmentId, user.id);
-
- return responses.successResponse({ user, session, surveys, noCodeEvents, brandColor }, true);
-}
diff --git a/apps/web/app/api/v1/responses/route.ts b/apps/web/app/api/v1/responses/route.ts
new file mode 100644
index 0000000000..9181674e4d
--- /dev/null
+++ b/apps/web/app/api/v1/responses/route.ts
@@ -0,0 +1,32 @@
+import { responses } from "@/lib/api/response";
+import { getApiKeyFromKey } from "@formbricks/lib/services/apiKey";
+import { getEnvironmentResponses } from "@formbricks/lib/services/response";
+import { headers } from "next/headers";
+import { DatabaseError } from "@formbricks/errors";
+
+export async function GET() {
+ const apiKey = headers().get("x-api-key");
+ if (!apiKey) {
+ return responses.notAuthenticatedResponse();
+ }
+ let apiKeyData;
+ try {
+ apiKeyData = await getApiKeyFromKey(apiKey);
+ if (!apiKeyData) {
+ return responses.notAuthenticatedResponse();
+ }
+ } catch (error) {
+ return responses.notAuthenticatedResponse();
+ }
+
+ // get webhooks from database
+ try {
+ const environmentResponses = await getEnvironmentResponses(apiKeyData.environmentId);
+ return responses.successResponse(environmentResponses);
+ } catch (error) {
+ if (error instanceof DatabaseError) {
+ return responses.badRequestResponse(error.message);
+ }
+ throw error;
+ }
+}
diff --git a/apps/web/app/environments/[environmentId]/EnvironmentsNavbar.tsx b/apps/web/app/environments/[environmentId]/EnvironmentsNavbar.tsx
index 4d0bb98f90..fa15f798a1 100644
--- a/apps/web/app/environments/[environmentId]/EnvironmentsNavbar.tsx
+++ b/apps/web/app/environments/[environmentId]/EnvironmentsNavbar.tsx
@@ -52,6 +52,7 @@ import {
PlusIcon,
UserCircleIcon,
UsersIcon,
+ ChatBubbleBottomCenterTextIcon,
} from "@heroicons/react/24/solid";
import clsx from "clsx";
import type { Session } from "next-auth";
@@ -62,6 +63,8 @@ import { usePathname, useRouter } from "next/navigation";
import { useEffect, useMemo, useState } from "react";
import AddProductModal from "./AddProductModal";
import { formbricksLogout } from "@/lib/formbricks";
+import formbricks from "@formbricks/js";
+import { IS_FORMBRICKS_CLOUD } from "@formbricks/lib/constants";
interface EnvironmentsNavbarProps {
environmentId: string;
@@ -163,7 +166,7 @@ export default function EnvironmentsNavbar({ environmentId, session }: Environme
icon: CreditCardIcon,
label: "Billing & Plan",
href: `/environments/${environmentId}/settings/billing`,
- hidden: process.env.NEXT_PUBLIC_IS_FORMBRICKS_CLOUD !== "1",
+ hidden: IS_FORMBRICKS_CLOUD,
},
],
},
@@ -421,6 +424,19 @@ export default function EnvironmentsNavbar({ environmentId, session }: Environme
))}
+ {IS_FORMBRICKS_CLOUD && (
+
+ {
+ formbricks.track("Top Menu: Product Feedback");
+ }}>
+
+
+ Product Feedback
+
+
+
+ )}
{
setLoading(true);
diff --git a/apps/web/app/environments/[environmentId]/settings/billing/PricingTable.tsx b/apps/web/app/environments/[environmentId]/settings/billing/PricingTable.tsx
index 4fe9cdcb1a..6e62ae9e5e 100644
--- a/apps/web/app/environments/[environmentId]/settings/billing/PricingTable.tsx
+++ b/apps/web/app/environments/[environmentId]/settings/billing/PricingTable.tsx
@@ -49,16 +49,18 @@ export default function PricingTable({ environmentId, session }: PricingTablePro
const freeFeatures = [
"Unlimited surveys",
"Unlimited team members",
+ "Remove branding",
"100 responses per survey",
"Granular targeting",
"In-product surveys",
"Link surveys",
"30+ templates",
"API access",
- "Integrations (Slack, PostHog, Zapier)",
+ "Webhooks",
+ "Integrations (Zapier)",
];
- const proFeatures = ["All features of Free plan", "Unlimited responses", "Remove branding"];
+ const proFeatures = ["All features of Free plan", "Unlimited responses"];
return (
@@ -105,9 +107,6 @@ export default function PricingTable({ environmentId, session }: PricingTablePro
-
- Limited Early Bird Deal
-
Pro
@@ -126,9 +125,7 @@ export default function PricingTable({ environmentId, session }: PricingTablePro
))}
-
- $99 49$
-
+ $99
/ month
diff --git a/apps/web/app/environments/[environmentId]/settings/lookandfeel/editLookAndFeel.tsx b/apps/web/app/environments/[environmentId]/settings/lookandfeel/editLookAndFeel.tsx
index e1c54a03df..43fdfc3fa5 100644
--- a/apps/web/app/environments/[environmentId]/settings/lookandfeel/editLookAndFeel.tsx
+++ b/apps/web/app/environments/[environmentId]/settings/lookandfeel/editLookAndFeel.tsx
@@ -16,6 +16,8 @@ import {
} from "@formbricks/ui";
import { useEffect, useState } from "react";
import toast from "react-hot-toast";
+import { getPlacementStyle } from "@/lib/preview";
+import { PlacementType } from "@formbricks/types/js";
export function EditBrandColor({ environmentId }) {
const { product, isLoadingProduct, isErrorProduct } = useProduct(environmentId);
@@ -59,35 +61,43 @@ export function EditBrandColor({ environmentId }) {
}
export function EditPlacement({ environmentId }) {
- const { isLoadingEnvironment, isErrorEnvironment } = useEnvironment(environmentId);
+ const { product, isLoadingProduct, isErrorProduct } = useProduct(environmentId);
+ const { triggerProductMutate, isMutatingProduct } = useProductMutation(environmentId);
- if (isLoadingEnvironment) {
+ const [currentPlacement, setCurrentPlacement] = useState
("bottomRight");
+ const [overlay, setOverlay] = useState("");
+ const [clickOutside, setClickOutside] = useState("");
+
+ useEffect(() => {
+ if (product) {
+ setCurrentPlacement(product.placement);
+ setOverlay(product.darkOverlay ? "darkOverlay" : "lightOverlay");
+ setClickOutside(product.clickOutsideClose ? "allow" : "disallow");
+ }
+ }, [product]);
+
+ if (isLoadingProduct) {
return ;
}
- if (isErrorEnvironment) {
+ if (isErrorProduct) {
return ;
}
const placements = [
- { name: "Bottom Right", value: "bottomRight", default: true, disabled: false },
- { name: "Top Right", value: "topRight", default: false, disabled: true },
- { name: "Top Left", value: "topLeft", default: false, disabled: true },
- { name: "Bottom Left", value: "bottomLeft", default: false, disabled: true },
- { name: "Centered Modal", value: "centered", default: false, disabled: true },
+ { name: "Bottom Right", value: "bottomRight", disabled: false },
+ { name: "Top Right", value: "topRight", disabled: false },
+ { name: "Top Left", value: "topLeft", disabled: false },
+ { name: "Bottom Left", value: "bottomLeft", disabled: false },
+ { name: "Centered Modal", value: "center", disabled: false },
];
return (
-
+ setCurrentPlacement(e as PlacementType)} value={currentPlacement}>
{placements.map((placement) => (
-
+
@@ -97,10 +107,73 @@ export function EditPlacement({ environmentId }) {
))}
-
+
+ {currentPlacement === "center" && (
+ <>
+
+
Centered modal overlay color
+
setOverlay(e)} value={overlay} className="flex space-x-4">
+
+
+
+ Light Overlay
+
+
+
+
+
+ Dark Overlay
+
+
+
+
+
+
Allow users to exit by clicking outside the study
+
setClickOutside(e)}
+ value={clickOutside}
+ className="flex space-x-4">
+
+
+
+ Don't Allow
+
+
+
+
+
+ Allow
+
+
+
+
+ >
+ )}
+ {
+ triggerProductMutate({
+ placement: currentPlacement,
+ darkOverlay: overlay === "darkOverlay",
+ clickOutsideClose: clickOutside === "allow",
+ })
+ .then(() => {
+ toast.success("Placement updated successfully.");
+ })
+ .catch((error) => {
+ toast.error(`Error: ${error.message}`);
+ });
+ }}>
Save
diff --git a/apps/web/app/environments/[environmentId]/settings/lookandfeel/page.tsx b/apps/web/app/environments/[environmentId]/settings/lookandfeel/page.tsx
index c9f70203dd..be5702fef4 100644
--- a/apps/web/app/environments/[environmentId]/settings/lookandfeel/page.tsx
+++ b/apps/web/app/environments/[environmentId]/settings/lookandfeel/page.tsx
@@ -10,7 +10,6 @@ export default function ProfileSettingsPage({ params }: { params: { environmentI
diff --git a/apps/web/app/environments/[environmentId]/settings/members/EditMemberships.tsx b/apps/web/app/environments/[environmentId]/settings/members/EditMemberships.tsx
index 95e6b895bd..db68fc2ca0 100644
--- a/apps/web/app/environments/[environmentId]/settings/members/EditMemberships.tsx
+++ b/apps/web/app/environments/[environmentId]/settings/members/EditMemberships.tsx
@@ -7,6 +7,7 @@ import {
deleteInvite,
removeMember,
resendInvite,
+ shareInvite,
updateInviteeRole,
updateMemberRole,
useMembers,
@@ -27,7 +28,7 @@ import {
TooltipProvider,
TooltipTrigger,
} from "@formbricks/ui";
-import { PaperAirplaneIcon, TrashIcon } from "@heroicons/react/24/outline";
+import { PaperAirplaneIcon, ShareIcon, TrashIcon } from "@heroicons/react/24/outline";
import { useState } from "react";
import toast from "react-hot-toast";
import AddMemberModal from "./AddMemberModal";
@@ -35,6 +36,7 @@ import CreateTeamModal from "@/components/team/CreateTeamModal";
import { capitalizeFirstLetter } from "@/lib/utils";
import { useProfile } from "@/lib/profile";
import { ChevronDownIcon } from "@heroicons/react/20/solid";
+import ShareInviteModal from "@/app/environments/[environmentId]/settings/members/ShareInviteModal";
type EditMembershipsProps = {
environmentId: string;
@@ -128,6 +130,8 @@ export function EditMemberships({ environmentId }: EditMembershipsProps) {
const [isAddMemberModalOpen, setAddMemberModalOpen] = useState(false);
const [isDeleteMemberModalOpen, setDeleteMemberModalOpen] = useState(false);
const [isCreateTeamModalOpen, setCreateTeamModalOpen] = useState(false);
+ const [showShareInviteModal, setShowShareInviteModal] = useState(false);
+ const [shareInviteToken, setShareInviteToken] = useState("");
const [activeMember, setActiveMember] = useState({} as any);
const { profile } = useProfile();
@@ -160,6 +164,12 @@ export function EditMemberships({ environmentId }: EditMembershipsProps) {
mutateTeam();
};
+ const handleShareInvite = async (member) => {
+ const { inviteToken } = await shareInvite(team.teamId, member.inviteId);
+ setShareInviteToken(inviteToken);
+ setShowShareInviteModal(true);
+ };
+
const handleResendInvite = async (inviteId) => {
await resendInvite(team.teamId, inviteId);
};
@@ -192,28 +202,28 @@ export function EditMemberships({ environmentId }: EditMembershipsProps) {
)}
-
-
-
Fullname
-
Email
-
Role
-
+
+
+
Fullname
+
Email
+
Role
+
-
+
{[...team.members, ...team.invitees].map((member) => (
-
+
-
+
-
+
{member.email}
-
+
-
- {!member.accepted &&
}
+
+ {!member.accepted &&
}
{member.role !== "owner" && (
handleOpenDeleteMemberModal(e, member)}>
@@ -234,6 +244,19 @@ export function EditMemberships({ environmentId }: EditMembershipsProps) {
)}
{!member.accepted && (
+
+
+ {
+ handleShareInvite(member);
+ }}>
+
+
+
+
+ Share Invite Link
+
+
+ {showShareInviteModal && (
+
+ )}
>
);
}
diff --git a/apps/web/app/environments/[environmentId]/settings/members/ShareInviteModal.tsx b/apps/web/app/environments/[environmentId]/settings/members/ShareInviteModal.tsx
new file mode 100644
index 0000000000..845c3e73ae
--- /dev/null
+++ b/apps/web/app/environments/[environmentId]/settings/members/ShareInviteModal.tsx
@@ -0,0 +1,69 @@
+"use client";
+
+import Modal from "@/components/shared/Modal";
+
+import { Button } from "@formbricks/ui";
+import { CheckIcon } from "@heroicons/react/24/outline";
+import { DocumentDuplicateIcon } from "@heroicons/react/24/solid";
+import { useRef } from "react";
+import toast from "react-hot-toast";
+
+interface ShareInviteModalProps {
+ inviteToken: string;
+ open: boolean;
+ setOpen: (open: boolean) => void;
+}
+
+export default function ShareInviteModal({ inviteToken, open, setOpen }: ShareInviteModalProps) {
+ const linkTextRef = useRef(null);
+
+ const handleTextSelection = () => {
+ if (linkTextRef.current) {
+ const range = document.createRange();
+ range.selectNodeContents(linkTextRef.current);
+
+ const selection = window.getSelection();
+ if (selection) {
+ selection.removeAllRanges();
+ selection.addRange(range);
+ }
+ }
+ };
+
+ return (
+
+
+
+
+
+
+
Your team invite link is ready!
+
+
Share this link to let your team member join your team:
+
handleTextSelection()}>
+ {`${window.location.protocol}//${window.location.host}/invite?token=${inviteToken}`}
+
+
+
+ {
+ navigator.clipboard.writeText(
+ `${window.location.protocol}//${window.location.host}/invite?token=${inviteToken}`
+ );
+ toast.success("URL copied to clipboard!");
+ }}
+ title="Copy invite link to clipboard"
+ aria-label="Copy invite link to clipboard"
+ EndIcon={DocumentDuplicateIcon}>
+ Copy URL
+
+
+
+
+
+ );
+}
diff --git a/apps/web/app/environments/[environmentId]/surveys/PreviewSurvey.tsx b/apps/web/app/environments/[environmentId]/surveys/PreviewSurvey.tsx
index fe0402d069..06f05b275b 100644
--- a/apps/web/app/environments/[environmentId]/surveys/PreviewSurvey.tsx
+++ b/apps/web/app/environments/[environmentId]/surveys/PreviewSurvey.tsx
@@ -157,6 +157,10 @@ export default function PreviewSurvey({
Array.isArray(logic.value) &&
logic.value.some((v) => answerValue.includes(v))
);
+ case "accepted":
+ return answerValue === "accepted";
+ case "clicked":
+ return answerValue === "clicked";
case "submitted":
if (typeof answerValue === "string") {
return answerValue !== "dismissed" && answerValue !== "" && answerValue !== null;
@@ -252,7 +256,7 @@ export default function PreviewSurvey({
{previewType === "modal" ? (
-
+
{!countdownStop && autoClose !== null && autoClose > 0 && (
)}
diff --git a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/ResponsesLimitReachedBanner.tsx b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/ResponsesLimitReachedBanner.tsx
index ea77891a06..06b3dcd1a1 100644
--- a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/ResponsesLimitReachedBanner.tsx
+++ b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/ResponsesLimitReachedBanner.tsx
@@ -1,17 +1,20 @@
+import { getAnalysisData } from "@/app/environments/[environmentId]/surveys/[surveyId]/summary/data";
import { RESPONSES_LIMIT_FREE } from "@formbricks/lib/constants";
+import { Session } from "next-auth";
import Link from "next/link";
interface ResponsesLimitReachedBannerProps {
environmentId: string;
- limitReached: boolean;
- responsesCount: number;
+ session: Session;
+ surveyId: string;
}
-export default function ResponsesLimitReachedBanner({
+export default async function ResponsesLimitReachedBanner({
+ surveyId,
environmentId,
- limitReached,
- responsesCount,
+ session,
}: ResponsesLimitReachedBannerProps) {
+ const { responsesCount, limitReached } = await getAnalysisData(session, surveyId);
return (
<>
{limitReached && (
diff --git a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/ConsentQuestionForm.tsx b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/ConsentQuestionForm.tsx
new file mode 100644
index 0000000000..42b13d4b26
--- /dev/null
+++ b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/ConsentQuestionForm.tsx
@@ -0,0 +1,80 @@
+"use client";
+
+import { md } from "@formbricks/lib/markdownIt";
+import type { ConsentQuestion } from "@formbricks/types/questions";
+import { Survey } from "@formbricks/types/surveys";
+import { Editor, Input, Label } from "@formbricks/ui";
+import { useState } from "react";
+
+interface ConsentQuestionFormProps {
+ localSurvey: Survey;
+ question: ConsentQuestion;
+ questionIdx: number;
+ updateQuestion: (questionIdx: number, updatedAttributes: any) => void;
+}
+
+export default function ConsentQuestionForm({
+ question,
+ questionIdx,
+ updateQuestion,
+}: ConsentQuestionFormProps): JSX.Element {
+ const [firstRender, setFirstRender] = useState(true);
+ return (
+
+ );
+}
diff --git a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/LogicEditor.tsx b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/LogicEditor.tsx
index b4ada2d79f..47949ae64e 100644
--- a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/LogicEditor.tsx
+++ b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/LogicEditor.tsx
@@ -79,7 +79,8 @@ export default function LogicEditor({
"submitted",
"skipped",
],
- cta: ["submitted", "skipped"],
+ cta: ["clicked", "skipped"],
+ consent: ["skipped", "accepted"],
};
const logicConditions: LogicConditions = {
submitted: {
@@ -92,6 +93,16 @@ export default function LogicEditor({
values: null,
unique: true,
},
+ accepted: {
+ label: "is accepted",
+ values: null,
+ unique: true,
+ },
+ clicked: {
+ label: "is clicked",
+ values: null,
+ unique: true,
+ },
equals: {
label: "equals",
values: questionValues,
diff --git a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/QuestionCard.tsx b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/QuestionCard.tsx
index bee17d67fb..8a42182e05 100644
--- a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/QuestionCard.tsx
+++ b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/QuestionCard.tsx
@@ -7,6 +7,7 @@ import type { Survey } from "@formbricks/types/surveys";
import { Input, Label, Switch } from "@formbricks/ui";
import {
ChatBubbleBottomCenterTextIcon,
+ CheckIcon,
ChevronDownIcon,
ChevronRightIcon,
CursorArrowRippleIcon,
@@ -25,6 +26,7 @@ import NPSQuestionForm from "./NPSQuestionForm";
import OpenQuestionForm from "./OpenQuestionForm";
import QuestionDropdown from "./QuestionMenu";
import RatingQuestionForm from "./RatingQuestionForm";
+import ConsentQuestionForm from "./ConsentQuestionForm";
import AdvancedSettings from "@/app/environments/[environmentId]/surveys/[surveyId]/edit/AdvancedSettings";
interface QuestionCardProps {
@@ -100,6 +102,8 @@ export default function QuestionCard({
) : question.type === QuestionType.Rating ? (
+ ) : question.type === "consent" ? (
+
) : null}
@@ -174,6 +178,13 @@ export default function QuestionCard({
updateQuestion={updateQuestion}
lastQuestion={lastQuestion}
/>
+ ) : question.type === "consent" ? (
+
) : null}
@@ -216,8 +227,24 @@ export default function QuestionCard({
{open && (
-
-
+
+ {question.type === "openText" && (
+
+ Long Answer
+ {
+ e.stopPropagation();
+ updateQuestion(questionIdx, {
+ longAnswer:
+ typeof question.longAnswer === "undefined" ? false : !question.longAnswer,
+ });
+ }}
+ />
+
+ )}
+
Required
)}
-
-
-
-
-
-
Redirect on completion
-
- Redirect user to specified link on survey completion
-
-
-
+ {localSurvey.type === "link" && (
+
+
+
+
+
+
Redirect on completion
+
+ Redirect user to specified link on survey completion
+
+
+
+
+
+ {redirectToggle && (
+ handleRedirectUrlChange(e.target.value)}
+ />
+ )}
+
-
- {redirectToggle && (
- handleRedirectUrlChange(e.target.value)}
- />
- )}
-
-
+ )}
diff --git a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/AudienceView.tsx b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/SettingsView.tsx
similarity index 80%
rename from apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/AudienceView.tsx
rename to apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/SettingsView.tsx
index e37b7165f4..9d96432cf1 100644
--- a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/AudienceView.tsx
+++ b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/SettingsView.tsx
@@ -5,13 +5,13 @@ import ResponseOptionsCard from "./ResponseOptionsCard";
import WhenToSendCard from "./WhenToSendCard";
import WhoToSendCard from "./WhoToSendCard";
-interface AudienceViewProps {
+interface SettingsViewProps {
environmentId: string;
localSurvey: Survey;
setLocalSurvey: (survey: Survey) => void;
}
-export default function AudienceView({ environmentId, localSurvey, setLocalSurvey }: AudienceViewProps) {
+export default function SettingsView({ environmentId, localSurvey, setLocalSurvey }: SettingsViewProps) {
return (
- {localSurvey.type==="link" &&
}
+
) : (
-
= ({
responseId,
surveyId,
}) => {
+ const router = useRouter();
const [searchValue, setSearchValue] = useState("");
const [open, setOpen] = React.useState(false);
const [tagsState, setTagsState] = useState(tags);
const [tagIdToHighlight, setTagIdToHighlight] = useState("");
const { createTag } = useCreateTag(environmentId);
- const { mutateResponses } = useResponses(environmentId, surveyId);
const { data: environmentTags, mutate: refetchEnvironmentTags } = useTagsForEnvironment(environmentId);
const { addTagToRespone } = useAddTagToResponse(environmentId, surveyId, responseId);
@@ -36,9 +39,10 @@ const ResponseTagsWrapper: React.FC = ({
try {
await removeTagFromResponse(environmentId, surveyId, responseId, tagId);
- mutateResponses();
+ router.refresh();
} catch (e) {
- console.log(e);
+ toast.error("An error occurred deleting the tag");
+ router.refresh();
}
};
@@ -96,27 +100,36 @@ const ResponseTagsWrapper: React.FC = ({
onSuccess: () => {
setSearchValue("");
setOpen(false);
- mutateResponses();
refetchEnvironmentTags();
+ router.refresh();
},
}
);
},
onError: (err) => {
- toast.error(err?.message ?? "Something went wrong", {
- duration: 2000,
- });
+ if (err?.cause === "DUPLICATE_RECORD") {
+ toast.error(err?.message ?? "Something went wrong", {
+ duration: 2000,
+ icon: ,
+ });
+
+ const tag = tags.find((tag) => tag.tagName === tagName?.trim() ?? "");
+ setTagIdToHighlight(tag?.tagId ?? "");
+ } else {
+ toast.error(err?.message ?? "Something went wrong", {
+ duration: 2000,
+ });
+ }
setSearchValue("");
setOpen(false);
- mutateResponses();
-
- const tag = tags.find((tag) => tag.tagName === tagName?.trim() ?? "");
- setTagIdToHighlight(tag?.tagId ?? "");
refetchEnvironmentTags();
+
+ router.refresh();
},
+ throwOnError: false,
}
);
}}
@@ -137,9 +150,9 @@ const ResponseTagsWrapper: React.FC = ({
onSuccess: () => {
setSearchValue("");
setOpen(false);
- mutateResponses();
-
refetchEnvironmentTags();
+
+ router.refresh();
},
}
);
diff --git a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/responses/Tag.tsx b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/responses/Tag.tsx
index 52ef533864..7d2708e862 100644
--- a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/responses/Tag.tsx
+++ b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/responses/Tag.tsx
@@ -35,7 +35,7 @@ export function Tag({
key={tagId}
className={cn(
"relative flex items-center justify-between gap-2 rounded-full border bg-slate-600 px-2 py-1 text-slate-100",
- highlight && "border-2 border-green-600"
+ highlight && "animate-shake"
)}>
{tagName}
diff --git a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/responses/page.tsx b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/responses/page.tsx
index 0ed99e96ed..30f6492a87 100644
--- a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/responses/page.tsx
+++ b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/responses/page.tsx
@@ -1,3 +1,5 @@
+export const revalidate = 0;
+
import ContentWrapper from "@/components/shared/ContentWrapper";
import SurveyResultsTabs from "../SurveyResultsTabs";
import ResponseTimeline from "./ResponseTimeline";
@@ -11,7 +13,7 @@ export default async function ResponsesPage({ params }) {
if (!session) {
throw new Error("Unauthorized");
}
- const { responses, responsesCount, limitReached, survey } = await getAnalysisData(session, params.surveyId);
+ const { responses, survey } = await getAnalysisData(session, params.surveyId);
return (
<>
+ {/* @ts-expect-error Server Component */}
;
+}
+
+interface ChoiceResult {
+ count: number;
+ acceptedCount: number;
+ acceptedPercentage: number;
+ dismissedCount: number;
+ dismissedPercentage: number;
+}
+
+export default function ConsentSummary({ questionSummary }: ConsentSummaryProps) {
+ const ctr: ChoiceResult = useMemo(() => {
+ const total = questionSummary.responses.length;
+ const clickedAbs = questionSummary.responses.filter((response) => response.value !== "skipped").length;
+
+ return {
+ count: total,
+ acceptedCount: clickedAbs,
+ acceptedPercentage: clickedAbs / total,
+ dismissedCount: total - clickedAbs,
+ dismissedPercentage: 1 - clickedAbs / total,
+ };
+ }, [questionSummary]);
+
+ return (
+
+
+
+
{questionSummary.question.headline}
+
+
+
Consent
+
+
+ {ctr.count} responses
+
+
+
+
+
+
+
+
Accepted
+
+
+ {Math.round(ctr.acceptedPercentage * 100)}%
+
+
+
+
+ {ctr.acceptedCount} {ctr.acceptedCount === 1 ? "response" : "responses"}
+
+
+
+
+
+
+
+
Skipped
+
+
+ {Math.round(ctr.dismissedPercentage * 100)}%
+
+
+
+
+ {ctr.dismissedCount} {ctr.dismissedCount === 1 ? "response" : "responses"}
+
+
+
+
+
+
+ );
+}
diff --git a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/summary/LinkModalButton.tsx b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/summary/LinkModalButton.tsx
new file mode 100644
index 0000000000..7ac6cf86c6
--- /dev/null
+++ b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/summary/LinkModalButton.tsx
@@ -0,0 +1,26 @@
+"use client";
+
+import LinkSurveyModal from "@/app/environments/[environmentId]/surveys/[surveyId]/summary/LinkSurveyModal";
+import { TSurvey } from "@formbricks/types/v1/surveys";
+import { Button } from "@formbricks/ui";
+import { ShareIcon } from "@heroicons/react/24/outline";
+import { useState } from "react";
+
+interface LinkSurveyShareButtonProps {
+ survey: TSurvey;
+}
+
+export default function LinkSurveyShareButton({ survey }: LinkSurveyShareButtonProps) {
+ const [showLinkModal, setShowLinkModal] = useState(false);
+ return (
+ <>
+ setShowLinkModal(true)}>
+
+
+ {showLinkModal && }
+ >
+ );
+}
diff --git a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/summary/StatusDropdown.tsx b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/summary/StatusDropdown.tsx
new file mode 100644
index 0000000000..b970c69ee7
--- /dev/null
+++ b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/summary/StatusDropdown.tsx
@@ -0,0 +1,32 @@
+"use client";
+
+import LoadingSpinner from "@/components/shared/LoadingSpinner";
+import SurveyStatusDropdown from "@/components/shared/SurveyStatusDropdown";
+import { useEnvironment } from "@/lib/environments/environments";
+import { TSurvey } from "@formbricks/types/v1/surveys";
+import { ErrorComponent } from "@formbricks/ui";
+
+interface StatusDropdownProps {
+ survey: TSurvey;
+ environmentId: string;
+}
+
+export default function StatusDropdown({ survey, environmentId }: StatusDropdownProps) {
+ const { environment, isLoadingEnvironment, isErrorEnvironment } = useEnvironment(environmentId);
+
+ if (isLoadingEnvironment) {
+ return ;
+ }
+
+ if (isErrorEnvironment) {
+ return ;
+ }
+
+ return (
+ <>
+ {environment.widgetSetupCompleted || survey.type === "link" ? (
+
+ ) : null}
+ >
+ );
+}
diff --git a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/summary/SuccessMessage.tsx b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/summary/SuccessMessage.tsx
new file mode 100644
index 0000000000..dcd3248055
--- /dev/null
+++ b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/summary/SuccessMessage.tsx
@@ -0,0 +1,49 @@
+"use client";
+
+import { useEnvironment } from "@/lib/environments/environments";
+import { TSurvey } from "@formbricks/types/v1/surveys";
+import { Confetti } from "@formbricks/ui";
+import { useSearchParams } from "next/navigation";
+import { useEffect, useState } from "react";
+import toast from "react-hot-toast";
+import LinkSurveyModal from "./LinkSurveyModal";
+
+interface SummaryMetadataProps {
+ environmentId: string;
+ survey: TSurvey;
+}
+
+export default function SuccessMessage({ environmentId, survey }: SummaryMetadataProps) {
+ const { environment } = useEnvironment(environmentId);
+ const searchParams = useSearchParams();
+ const [showLinkModal, setShowLinkModal] = useState(false);
+ const [confetti, setConfetti] = useState(false);
+ useEffect(() => {
+ if (environment) {
+ const newSurveyParam = searchParams?.get("success");
+ if (newSurveyParam && survey && environment) {
+ setConfetti(true);
+ toast.success(
+ survey.type === "web" && !environment.widgetSetupCompleted
+ ? "Almost there! Install widget to start receiving responses."
+ : "Congrats! Your survey is live.",
+ {
+ icon: survey.type === "web" && !environment.widgetSetupCompleted ? "π€" : "π",
+ duration: 5000,
+ position: "bottom-right",
+ }
+ );
+ if (survey.type === "link") {
+ setShowLinkModal(true);
+ }
+ }
+ }
+ }, [environment, searchParams, survey]);
+
+ return (
+ <>
+ {showLinkModal && }
+ {confetti && }
+ >
+ );
+}
diff --git a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/summary/SummaryList.tsx b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/summary/SummaryList.tsx
index e14b05c891..40b0784e2e 100644
--- a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/summary/SummaryList.tsx
+++ b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/summary/SummaryList.tsx
@@ -1,3 +1,4 @@
+import { getAnalysisData } from "@/app/environments/[environmentId]/surveys/[surveyId]/summary/data";
import EmptySpaceFiller from "@/components/shared/EmptySpaceFiller";
import {
QuestionType,
@@ -9,8 +10,8 @@ import {
type RatingQuestion,
} from "@formbricks/types/questions";
import type { QuestionSummary } from "@formbricks/types/responses";
-import { TResponse } from "@formbricks/types/v1/responses";
import { TSurvey, TSurveyQuestion } from "@formbricks/types/v1/surveys";
+import { Session } from "next-auth";
import CTASummary from "./CTASummary";
import MultipleChoiceSummary from "./MultipleChoiceSummary";
import NPSSummary from "./NPSSummary";
@@ -19,14 +20,16 @@ import RatingSummary from "./RatingSummary";
interface SummaryListProps {
environmentId: string;
- responses: TResponse[];
+ surveyId: string;
+ session: Session;
survey: TSurvey;
}
-export default function SummaryList({ environmentId, responses, survey }: SummaryListProps) {
- let summaryData: QuestionSummary[] = [];
- if (survey && responses) {
- summaryData = survey.questions.map((question) => {
+export default async function SummaryList({ environmentId, surveyId, session }: SummaryListProps) {
+ const { survey, responses } = await getAnalysisData(session, surveyId);
+
+ const getSummaryData = (): QuestionSummary[] =>
+ survey.questions.map((question) => {
const questionResponses = responses
.filter((response) => question.id in response.data)
.map((r) => ({
@@ -40,7 +43,6 @@ export default function SummaryList({ environmentId, responses, survey }: Summar
responses: questionResponses,
};
});
- }
return (
<>
@@ -53,7 +55,7 @@ export default function SummaryList({ environmentId, responses, survey }: Summar
/>
) : (
<>
- {summaryData.map((questionSummary) => {
+ {getSummaryData().map((questionSummary) => {
if (questionSummary.question.type === QuestionType.OpenText) {
return (
= RESPONSES_LIMIT_FREE;
+ const responses = limitReached ? allResponses.slice(0, RESPONSES_LIMIT_FREE) : allResponses;
- useEffect(() => {
- if (environment) {
- const newSurveyParam = searchParams?.get("success");
- if (newSurveyParam && survey && environment) {
- setConfetti(true);
- toast.success(
- survey.type === "web" && !environment.widgetSetupCompleted
- ? "Almost there! Install widget to start receiving responses."
- : "Congrats! Your survey is live.",
- {
- icon: survey.type === "web" && !environment.widgetSetupCompleted ? "π€" : "π",
- duration: 5000,
- position: "bottom-right",
- }
- );
- if (survey.type === "link") {
- setShowLinkModal(true);
- }
- }
- }
- }, [environment, searchParams, survey]);
-
- const completionRate = useMemo(() => {
- if (!responses) return 0;
- return (responses.filter((r) => r.finished).length / responses.length) * 100;
- }, [responses]);
-
- if (isLoadingEnvironment) {
- return ;
- }
-
- if (isErrorEnvironment) {
- return ;
- }
+ const completionRate = !responses
+ ? 0
+ : (responses.filter((r) => r.finished).length / responses.length) * 100;
return (
-
-
-
-
-
Survey displays
-
- {survey.analytics.numDisplays === 0 ? - : survey.analytics.numDisplays}
-
+ <>
+
+
+
+
+
Survey displays
+
+ {survey.analytics.numDisplays === 0 ? - : survey.analytics.numDisplays}
+
+
+
+
Total Responses
+
+ {responses.length === 0 ? - : responses.length}
+
+
+
+
+
+
+
+ Response %
+
+
+
+ {survey.analytics.responseRate === null || survey.analytics.responseRate === 0 ? (
+ -
+ ) : (
+ {Math.round(survey.analytics.responseRate * 100)} %
+ )}
+
+
+
+
+ % of people who responded when survey was shown.
+
+
+
+
+
+
+
+
+ Completion %
+
+
+
+ {responses.length === 0 ? (
+ -
+ ) : (
+ {parseFloat(completionRate.toFixed(2))} %
+ )}
+
+
+
+
+
+ % of people who started and completed the survey.
+
+
+
+
-
-
Total Responses
-
- {responses.length === 0 ? - : responses.length}
-
-
-
-
-
-
-
- Response %
-
-
-
- {survey.analytics.responseRate === null || survey.analytics.responseRate === 0 ? (
- -
- ) : (
- {Math.round(survey.analytics.responseRate * 100)} %
- )}
-
-
-
-
- % of people who responded when survey was shown.
-
-
-
-
-
-
-
-
- Completion %
-
-
-
- {responses.length === 0 ? (
- -
- ) : (
- {parseFloat(completionRate.toFixed(2))} %
- )}
-
-
-
-
-
- % of people who started and completed the survey.
-
-
-
-
-
-
-
- Last updated: {timeSinceConditionally(survey.updatedAt.toISOString())}
-
-
- {survey.type === "link" && (
-
setShowLinkModal(true)}>
-
-
- )}
+
+
+ Last updated: {timeSinceConditionally(survey.updatedAt.toISOString())}
+
+
+ {survey.type === "link" &&
}
- {environment.widgetSetupCompleted || survey.type === "link" ? (
-
- ) : null}
-
-
- Edit
-
+
+
+
+ Edit
+
+
- {showLinkModal &&
}
- {confetti &&
}
-
+
+ >
);
}
diff --git a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/summary/SurveyCreatedSuccessModal.tsx b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/summary/SurveyCreatedSuccessModal.tsx
deleted file mode 100644
index c163ed5076..0000000000
--- a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/summary/SurveyCreatedSuccessModal.tsx
+++ /dev/null
@@ -1,16 +0,0 @@
-import Modal from "components/shared/Modal";
-
-interface SurveyCreatedSuccessModalProps {
- open: boolean;
- setOpen: (open: boolean) => void;
-}
-
-export default function SurveyCreatedSuccessModal({ open, setOpen }: SurveyCreatedSuccessModalProps) {
- return (
- <>
-
- Your survey is live and collecting valuable insights!
-
- >
- );
-}
diff --git a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/summary/page.tsx b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/summary/page.tsx
index 20cbac6912..8b4a8fe4df 100644
--- a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/summary/page.tsx
+++ b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/summary/page.tsx
@@ -1,5 +1,6 @@
+export const revalidate = 0;
+
import { authOptions } from "@/app/api/auth/[...nextauth]/authOptions";
-import { getAnalysisData } from "@/app/environments/[environmentId]/surveys/[surveyId]/summary/data";
import ContentWrapper from "@/components/shared/ContentWrapper";
import { getServerSession } from "next-auth";
import ResponsesLimitReachedBanner from "../ResponsesLimitReachedBanner";
@@ -12,24 +13,21 @@ export default async function SummaryPage({ params }) {
if (!session) {
throw new Error("Unauthorized");
}
- const { responses, responsesCount, limitReached, survey } = await getAnalysisData(session, params.surveyId);
return (
<>
+ {/* @ts-expect-error Server Component */}
-
-
+ {/* @ts-expect-error Server Component */}
+
+ {/* @ts-expect-error Server Component */}
+
>
);
diff --git a/apps/web/app/environments/[environmentId]/surveys/templates/TemplateMenuBar.tsx b/apps/web/app/environments/[environmentId]/surveys/templates/TemplateMenuBar.tsx
deleted file mode 100644
index 511925e32d..0000000000
--- a/apps/web/app/environments/[environmentId]/surveys/templates/TemplateMenuBar.tsx
+++ /dev/null
@@ -1,44 +0,0 @@
-"use client";
-
-import { createSurvey } from "@/lib/surveys/surveys";
-import type { Template } from "@formbricks/types/templates";
-import { Button } from "@formbricks/ui";
-import { ArrowLeftIcon, ArrowRightIcon } from "@heroicons/react/24/solid";
-import { useRouter } from "next/navigation";
-import { useState } from "react";
-
-interface TemplateMenuBarProps {
- activeTemplate: Template | null;
- environmentId: string;
-}
-
-export default function TemplateMenuBar({ activeTemplate, environmentId }: TemplateMenuBarProps) {
- const router = useRouter();
- const [loading, setLoading] = useState(false);
- const addSurvey = async (activeTemplate) => {
- setLoading(true);
- const survey = await createSurvey(environmentId, activeTemplate.preset);
- router.push(`/environments/${environmentId}/surveys/${survey.id}/edit`);
- };
-
- return (
-
-
-
router.back()}>
-
-
-
Start with a template
-
-
- addSurvey(activeTemplate)}
- EndIcon={ArrowRightIcon}>
- Create Survey
-
-
-
- );
-}
diff --git a/apps/web/app/environments/[environmentId]/surveys/templates/page.tsx b/apps/web/app/environments/[environmentId]/surveys/templates/page.tsx
index 15eb6badfa..6e9a1be8e1 100644
--- a/apps/web/app/environments/[environmentId]/surveys/templates/page.tsx
+++ b/apps/web/app/environments/[environmentId]/surveys/templates/page.tsx
@@ -6,12 +6,9 @@ import { useProduct } from "@/lib/products/products";
import { replacePresetPlaceholders } from "@/lib/templates";
import type { Template } from "@formbricks/types/templates";
import { ErrorComponent } from "@formbricks/ui";
-/* import { PaintBrushIcon } from "@heroicons/react/24/solid";
-import Link from "next/link"; */
import { useEffect, useState } from "react";
import PreviewSurvey from "../PreviewSurvey";
import TemplateList from "./TemplateList";
-/* import TemplateMenuBar from "./TemplateMenuBar"; */
import { templates } from "./templates";
export default function SurveyTemplatesPage({ params }) {
@@ -36,7 +33,6 @@ export default function SurveyTemplatesPage({ params }) {
return (
- {/*
*/}
Create a new survey
diff --git a/apps/web/app/environments/[environmentId]/surveys/templates/templates.ts b/apps/web/app/environments/[environmentId]/surveys/templates/templates.ts
index bd6f8c6a37..2e81b92472 100644
--- a/apps/web/app/environments/[environmentId]/surveys/templates/templates.ts
+++ b/apps/web/app/environments/[environmentId]/surveys/templates/templates.ts
@@ -252,7 +252,7 @@ export const templates: Template[] = [
id: "mao94214zoo6c1at5rpuz7io",
html: '
We\'d love to keep you as a customer. Happy to offer a 30% discount for the next year.
',
type: QuestionType.CTA,
- logic: [{ condition: "submitted", destination: "end" }],
+ logic: [{ condition: "clicked", destination: "end" }],
headline: "Get 30% off for the next year!",
required: true,
buttonUrl: "https://formbricks.com",
@@ -273,7 +273,7 @@ export const templates: Template[] = [
id: "hdftsos1odzjllr7flj4m3j9",
html: '
We aim to provide the best possible customer service. Please email our CEO and she will personally handle your issue.
',
type: QuestionType.CTA,
- logic: [{ condition: "submitted", destination: "end" }],
+ logic: [{ condition: "clicked", destination: "end" }],
headline: "So sorry to hear π Talk to our CEO directly!",
required: true,
buttonUrl: "mailto:ceo@company.com",
@@ -409,7 +409,7 @@ export const templates: Template[] = [
id: "x760wga1fhtr1i80cpssr7af",
html: '
We\'re happy to offer you a 20% discount on a yearly plan.
',
type: QuestionType.CTA,
- logic: [{ condition: "submitted", destination: "end" }],
+ logic: [{ condition: "clicked", destination: "end" }],
headline: "Sorry to hear! Get 20% off the first year.",
required: true,
buttonUrl: "https://formbricks.com/github",
@@ -466,7 +466,7 @@ export const templates: Template[] = [
id: createId(),
html: '
This helps us a lot.
',
type: QuestionType.CTA,
- logic: [{ condition: "submitted", destination: "end" }],
+ logic: [{ condition: "clicked", destination: "end" }],
headline: "Happy to hear π Please write a review for us!",
required: true,
buttonUrl: "https://formbricks.com/github",
@@ -945,7 +945,7 @@ export const templates: Template[] = [
html: '
We will fix this as soon as possible. Do you want to be notified when we did?
',
type: QuestionType.CTA,
logic: [
- { condition: "submitted", destination: "end" },
+ { condition: "clicked", destination: "end" },
{ condition: "skipped", destination: "end" },
],
headline: "Want to stay in the loop?",
diff --git a/apps/web/app/onboarding/Onboarding.tsx b/apps/web/app/onboarding/Onboarding.tsx
index 172e92589f..f3dce61a1f 100644
--- a/apps/web/app/onboarding/Onboarding.tsx
+++ b/apps/web/app/onboarding/Onboarding.tsx
@@ -24,7 +24,11 @@ interface OnboardingProps {
}
export default function Onboarding({ session }: OnboardingProps) {
- const { data: environment, error } = useSWR(`/api/v1/environments/find-first`, fetcher);
+ const {
+ data: environment,
+ error: isErrorEnvironment,
+ isLoading: isLoadingEnvironment,
+ } = useSWR(`/api/v1/environments/find-first`, fetcher);
const { profile } = useProfile();
const { triggerProfileMutate } = useProfileMutation();
const [formbricksResponseId, setFormbricksResponseId] = useState
();
@@ -36,7 +40,7 @@ export default function Onboarding({ session }: OnboardingProps) {
return currentStep / MAX_STEPS;
}, [currentStep]);
- if (!profile) {
+ if (!profile || isLoadingEnvironment) {
return (
@@ -44,7 +48,7 @@ export default function Onboarding({ session }: OnboardingProps) {
);
}
- if (error) {
+ if (isErrorEnvironment) {
return
An error occurred
;
}
diff --git a/apps/web/app/page.tsx b/apps/web/app/page.tsx
index b516bd63fc..8c0a36a8b7 100644
--- a/apps/web/app/page.tsx
+++ b/apps/web/app/page.tsx
@@ -1,5 +1,6 @@
-import { WEBAPP_URL } from "@/../../packages/lib/constants";
+import ClientLogout from "@/app/ClientLogout";
import { authOptions } from "@/app/api/auth/[...nextauth]/authOptions";
+import { WEBAPP_URL } from "@formbricks/lib/constants";
import type { Session } from "next-auth";
import { getServerSession } from "next-auth";
import { headers } from "next/headers";
@@ -14,6 +15,8 @@ async function getEnvironment() {
});
if (!res.ok) {
+ const error = await res.json();
+ console.error(error);
throw new Error("Failed to fetch data");
}
@@ -31,10 +34,16 @@ export default async function Home() {
return redirect(`/onboarding`);
}
- const environment = await getEnvironment();
+ let environment;
+ try {
+ environment = await getEnvironment();
+ } catch (error) {
+ console.error("error getting environment", error);
+ }
if (!environment) {
- throw Error("No environment found for user");
+ console.error("Failed to get first environment of user; signing out");
+ return
;
}
return redirect(`/environments/${environment.id}`);
diff --git a/apps/web/components/Smileys.tsx b/apps/web/components/Smileys.tsx
index 8115f244d4..1dc7b009a6 100644
--- a/apps/web/components/Smileys.tsx
+++ b/apps/web/components/Smileys.tsx
@@ -460,5 +460,3 @@ export const GrinningSquintingFace: React.FC
> =
);
};
-
-export let icons = [ ];
diff --git a/apps/web/components/auth/SignupForm.tsx b/apps/web/components/auth/SignupForm.tsx
index a9e0e40319..dc93f572fb 100644
--- a/apps/web/components/auth/SignupForm.tsx
+++ b/apps/web/components/auth/SignupForm.tsx
@@ -21,8 +21,8 @@ export const SignupForm = () => {
const handleSubmit = async (e: any) => {
e.preventDefault();
- if(!isValid){
- return
+ if (!isValid) {
+ return;
}
setSigningUp(true);
try {
@@ -48,8 +48,8 @@ export const SignupForm = () => {
const [isButtonEnabled, setButtonEnabled] = useState(true);
const [isPasswordFocused, setIsPasswordFocused] = useState(false);
const formRef = useRef(null);
- const [password, setPassword] = useState(null)
- const [isValid, setIsValid] = useState(false)
+ const [password, setPassword] = useState(null);
+ const [isValid, setIsValid] = useState(false);
const checkFormValidity = () => {
// If all fields are filled, enable the button
@@ -145,7 +145,7 @@ export const SignupForm = () => {
)}
{
- e.preventDefault()
+ e.preventDefault();
if (!showLogin) {
setShowLogin(true);
setButtonEnabled(false);
@@ -158,7 +158,7 @@ export const SignupForm = () => {
variant="darkCTA"
className="w-full justify-center"
loading={signingUp}
- disabled={formRef.current ? (!isButtonEnabled || !isValid): !isButtonEnabled}>
+ disabled={formRef.current ? !isButtonEnabled || !isValid : !isButtonEnabled}>
Continue with Email
diff --git a/apps/web/components/preview/ConsentQuestion.tsx b/apps/web/components/preview/ConsentQuestion.tsx
new file mode 100644
index 0000000000..a2b9dc1e33
--- /dev/null
+++ b/apps/web/components/preview/ConsentQuestion.tsx
@@ -0,0 +1,62 @@
+import type { ConsentQuestion } from "@formbricks/types/questions";
+import Headline from "./Headline";
+import HtmlBody from "./HtmlBody";
+import { cn } from "@/../../packages/lib/cn";
+import { isLight } from "@/lib/utils";
+
+interface ConsentQuestionProps {
+ question: ConsentQuestion;
+ onSubmit: (data: { [x: string]: any }) => void;
+ lastQuestion: boolean;
+ brandColor: string;
+}
+
+export default function ConsentQuestion({
+ question,
+ onSubmit,
+ lastQuestion,
+ brandColor,
+}: ConsentQuestionProps) {
+ return (
+
+ );
+}
diff --git a/apps/web/components/preview/Modal.tsx b/apps/web/components/preview/Modal.tsx
index bcc619a205..9ca7e02300 100644
--- a/apps/web/components/preview/Modal.tsx
+++ b/apps/web/components/preview/Modal.tsx
@@ -1,7 +1,17 @@
+import { getPlacementStyle } from "@/lib/preview";
import { cn } from "@formbricks/lib/cn";
+import { PlacementType } from "@formbricks/types/js";
import { ReactNode, useEffect, useState } from "react";
-export default function Modal({ children, isOpen }: { children: ReactNode; isOpen: boolean }) {
+export default function Modal({
+ children,
+ isOpen,
+ placement,
+}: {
+ children: ReactNode;
+ isOpen: boolean;
+ placement: PlacementType;
+}) {
const [show, setShow] = useState(false);
useEffect(() => {
@@ -9,11 +19,12 @@ export default function Modal({ children, isOpen }: { children: ReactNode; isOpe
}, [isOpen]);
return (
-
+
{children}
diff --git a/apps/web/components/preview/OpenTextQuestion.tsx b/apps/web/components/preview/OpenTextQuestion.tsx
index a076c3f4d5..296f1fb10b 100644
--- a/apps/web/components/preview/OpenTextQuestion.tsx
+++ b/apps/web/components/preview/OpenTextQuestion.tsx
@@ -33,16 +33,30 @@ export default function OpenTextQuestion({
-
+ {question.longAnswer === false ? (
+ setValue(e.target.value)}
+ placeholder={question.placeholder}
+ required={question.required}
+ className="block w-full rounded-md border border-slate-100 bg-slate-50 p-2 shadow-sm focus:border-slate-500 focus:outline-none focus:ring-0 sm:text-sm"
+ />
+ ) : (
+
diff --git a/apps/web/components/preview/QuestionConditional.tsx b/apps/web/components/preview/QuestionConditional.tsx
index 207421dbc4..59312b7c90 100644
--- a/apps/web/components/preview/QuestionConditional.tsx
+++ b/apps/web/components/preview/QuestionConditional.tsx
@@ -5,6 +5,7 @@ import MultipleChoiceMultiQuestion from "./MultipleChoiceMultiQuestion";
import NPSQuestion from "./NPSQuestion";
import CTAQuestion from "./CTAQuestion";
import RatingQuestion from "./RatingQuestion";
+import ConsentQuestion from "./ConsentQuestion";
interface QuestionConditionalProps {
question: Question;
@@ -61,5 +62,12 @@ export default function QuestionConditional({
lastQuestion={lastQuestion}
brandColor={brandColor}
/>
+ ) : question.type === "consent" ? (
+
) : null;
}
diff --git a/apps/web/components/preview/RedirectCountDown.tsx b/apps/web/components/preview/RedirectCountDown.tsx
index c3d2130048..40d7a70f15 100644
--- a/apps/web/components/preview/RedirectCountDown.tsx
+++ b/apps/web/components/preview/RedirectCountDown.tsx
@@ -1,33 +1,30 @@
-import React from 'react'
-import { useEffect,useState } from 'react'
+import React from "react";
+import { useEffect, useState } from "react";
-export default function RedirectCountDown({
- initiateCountdown
-}:{
- initiateCountdown:boolean|undefined
-}) {
+export default function RedirectCountDown({ initiateCountdown }: { initiateCountdown: boolean | undefined }) {
+ const [timeRemaining, setTimeRemaining] = useState(3);
- const [timeRemaining, setTimeRemaining] = useState(3)
-
- useEffect(() => {
- const interval = setInterval(() => {
- setTimeRemaining((prevTime) => prevTime - 1);
- }, 1000);
-
- if (timeRemaining === 0) {
- clearInterval(interval);
- }
-
- // Clean up the interval when the component is unmounted
- return () => clearInterval(interval);
- }, [timeRemaining]);
+ useEffect(() => {
+ const interval = setInterval(() => {
+ setTimeRemaining((prevTime) => prevTime - 1);
+ }, 1000);
- return (
-
- {initiateCountdown &&
- You're redirected in
- {timeRemaining}
-
}
+ if (timeRemaining === 0) {
+ clearInterval(interval);
+ }
+
+ // Clean up the interval when the component is unmounted
+ return () => clearInterval(interval);
+ }, [timeRemaining]);
+
+ return (
+
+ {initiateCountdown && (
+
+ You're redirected in
+ {timeRemaining}
- )
+ )}
+
+ );
}
diff --git a/apps/web/components/preview/ThankYouCard.tsx b/apps/web/components/preview/ThankYouCard.tsx
index 21cee6bdc8..0869b24037 100644
--- a/apps/web/components/preview/ThankYouCard.tsx
+++ b/apps/web/components/preview/ThankYouCard.tsx
@@ -9,7 +9,12 @@ interface ThankYouCardProps {
initiateCountdown?: boolean;
}
-export default function ThankYouCard({ headline, subheader, brandColor,initiateCountdown }: ThankYouCardProps) {
+export default function ThankYouCard({
+ headline,
+ subheader,
+ brandColor,
+ initiateCountdown,
+}: ThankYouCardProps) {
return (
@@ -33,7 +38,7 @@ export default function ThankYouCard({ headline, subheader, brandColor,initiateC
-
+
);
diff --git a/apps/web/components/shared/ContentWrapper.tsx b/apps/web/components/shared/ContentWrapper.tsx
index 60d1b9e7c1..373bd00888 100644
--- a/apps/web/components/shared/ContentWrapper.tsx
+++ b/apps/web/components/shared/ContentWrapper.tsx
@@ -1,4 +1,4 @@
-import clsx from "clsx";
+import { cn } from "@formbricks/lib/cn";
interface ContentWrapperProps {
children: React.ReactNode;
@@ -6,5 +6,5 @@ interface ContentWrapperProps {
}
export default function ContentWrapper({ children, className }: ContentWrapperProps) {
- return
{children}
;
+ return
{children}
;
}
diff --git a/apps/web/lib/api/clientPerson.ts b/apps/web/lib/api/clientPerson.ts
index d3a713ef37..98a0cb54b3 100644
--- a/apps/web/lib/api/clientPerson.ts
+++ b/apps/web/lib/api/clientPerson.ts
@@ -1,6 +1,23 @@
import { prisma } from "@formbricks/database";
import type { Person } from "@formbricks/types/js";
+const select = {
+ id: true,
+ environmentId: true,
+ attributes: {
+ select: {
+ id: true,
+ value: true,
+ attributeClass: {
+ select: {
+ id: true,
+ name: true,
+ },
+ },
+ },
+ },
+};
+
export const createPerson = async (environmentId: string): Promise
=> {
return await prisma.person.create({
data: {
@@ -10,21 +27,45 @@ export const createPerson = async (environmentId: string): Promise => {
},
},
},
- select: {
- id: true,
- environmentId: true,
- attributes: {
- select: {
- id: true,
- value: true,
- attributeClass: {
- select: {
- id: true,
- name: true,
- },
- },
- },
- },
- },
+ select,
+ });
+};
+
+export const createPersonWithUser = async (environmentId: string, userId: string): Promise => {
+ const userIdAttributeClass = await prisma.attributeClass.findFirst({
+ where: {
+ environmentId,
+ name: "userId",
+ },
+ select: {
+ id: true,
+ },
+ });
+
+ if (!userIdAttributeClass) {
+ throw new Error("Attribute class not found for the given environmentId");
+ }
+
+ return await prisma.person.create({
+ data: {
+ environment: {
+ connect: {
+ id: environmentId,
+ },
+ },
+ attributes: {
+ create: [
+ {
+ attributeClass: {
+ connect: {
+ id: userIdAttributeClass.id,
+ },
+ },
+ value: userId,
+ },
+ ],
+ },
+ },
+ select,
});
};
diff --git a/apps/web/lib/api/clientSettings.ts b/apps/web/lib/api/clientSettings.ts
index f2dbeb9a25..2953a5ee1e 100644
--- a/apps/web/lib/api/clientSettings.ts
+++ b/apps/web/lib/api/clientSettings.ts
@@ -207,6 +207,9 @@ export const getSettings = async (environmentId: string, personId: string): Prom
select: {
brandColor: true,
formbricksSignature: true,
+ placement: true,
+ darkOverlay: true,
+ clickOutsideClose: true,
},
},
},
@@ -214,6 +217,17 @@ export const getSettings = async (environmentId: string, personId: string): Prom
const formbricksSignature = environmentProdut?.product.formbricksSignature;
const brandColor = environmentProdut?.product.brandColor;
+ const placement = environmentProdut?.product.placement;
+ const darkOverlay = environmentProdut?.product.darkOverlay;
+ const clickOutsideClose = environmentProdut?.product.clickOutsideClose;
- return { surveys, noCodeEvents, brandColor, formbricksSignature };
+ return {
+ surveys,
+ noCodeEvents,
+ brandColor,
+ formbricksSignature,
+ placement,
+ darkOverlay,
+ clickOutsideClose,
+ };
};
diff --git a/apps/web/lib/apiKeys.ts b/apps/web/lib/apiKeys.ts
index d1e058efc4..584ded13f7 100644
--- a/apps/web/lib/apiKeys.ts
+++ b/apps/web/lib/apiKeys.ts
@@ -12,29 +12,6 @@ export const useApiKeys = (environmentId: string) => {
};
};
-export const useApiKey = (environmentId: string, id: string) => {
- const { data, error, mutate } = useSWR(`/api/v1/environments/${environmentId}/api-keys/${id}`, fetcher);
-
- return {
- apiKey: data,
- isLoadingApiKey: !error && !data,
- isErrorApiKey: error,
- mutateApiKey: mutate,
- };
-};
-
-export const persistApiKey = async (environmentId: string, apiKey) => {
- try {
- await fetch(`/api/v1/environments/${environmentId}/api-keys/${apiKey.id}`, {
- method: "POST",
- headers: { "Content-Type": "application/json" },
- body: JSON.stringify(apiKey),
- });
- } catch (error) {
- console.error(error);
- }
-};
-
export const createApiKey = async (environmentId: string, apiKey = {}) => {
try {
const res = await fetch(`/api/v1/environments/${environmentId}/api-keys`, {
diff --git a/apps/web/lib/auth.ts b/apps/web/lib/auth.ts
index e0560ed9a4..976b6c32ce 100644
--- a/apps/web/lib/auth.ts
+++ b/apps/web/lib/auth.ts
@@ -9,20 +9,3 @@ export async function verifyPassword(password: string, hashedPassword: string) {
const isValid = await compare(password, hashedPassword);
return isValid;
}
-export function requireAuthentication(gssp: any) {
- return async (context: any) => {
- const { req, resolvedUrl } = context;
- const token = req.cookies.userToken;
-
- if (!token) {
- return {
- redirect: {
- destination: `/auth/login?callbackUrl=${encodeURIComponent(resolvedUrl)}`,
- statusCode: 302,
- },
- };
- }
-
- return await gssp(context); // Continue on to call `getServerSideProps` logic
- };
-}
diff --git a/apps/web/lib/email.ts b/apps/web/lib/email.ts
index a08164e7d9..b7598c5079 100644
--- a/apps/web/lib/email.ts
+++ b/apps/web/lib/email.ts
@@ -16,7 +16,7 @@ interface sendEmailData {
html: string;
}
-export const sendEmail = async (emailData: sendEmailData) => {
+const sendEmail = async (emailData: sendEmailData) => {
let transporter = nodemailer.createTransport({
host: process.env.SMTP_HOST,
port: process.env.SMTP_PORT,
diff --git a/apps/web/lib/linkSurvey/linkSurvey.ts b/apps/web/lib/linkSurvey/linkSurvey.ts
index 105bea711a..5692dd50c9 100644
--- a/apps/web/lib/linkSurvey/linkSurvey.ts
+++ b/apps/web/lib/linkSurvey/linkSurvey.ts
@@ -7,6 +7,7 @@ import { TResponseInput } from "@formbricks/types/v1/responses";
import { useState, useEffect, useCallback } from "react";
import type { Survey } from "@formbricks/types/surveys";
import { useRouter } from "next/navigation";
+import { useGetOrCreatePerson } from "../people/people";
export const useLinkSurvey = (surveyId: string) => {
const { data, error, mutate, isLoading } = useSWR(`/api/v1/client/surveys/${surveyId}`, fetcher);
@@ -36,22 +37,28 @@ export const useLinkSurveyUtils = (survey: Survey) => {
const lastQuestion = currentQuestion?.id === survey.questions[survey.questions.length - 1].id;
+ const userId = URLParams.get("userId");
+ const { person, isLoadingPerson } = useGetOrCreatePerson(survey.environmentId, isPreview ? null : userId);
+ const personId = person?.data.person.id ?? null;
+
useEffect(() => {
- if (survey) {
- setCurrentQuestion(survey.questions[0]);
+ if (!isLoadingPerson) {
+ if (survey) {
+ setCurrentQuestion(survey.questions[0]);
- if (isPreview) return;
+ if (isPreview) return;
- // create display
- createDisplay(
- { surveyId: survey.id },
- `${window.location.protocol}//${window.location.host}`,
- survey.environmentId
- ).then((display) => {
- setDisplayId(display.id);
- });
+ // create display
+ createDisplay(
+ { surveyId: survey.id },
+ `${window.location.protocol}//${window.location.host}`,
+ survey.environmentId
+ ).then((display) => {
+ setDisplayId(display.id);
+ });
+ }
}
- }, [survey, isPreview]);
+ }, [survey, isPreview, isLoadingPerson]);
useEffect(() => {
if (currentQuestion && survey) {
@@ -100,7 +107,7 @@ export const useLinkSurveyUtils = (survey: Survey) => {
// build response
const responseRequest: TResponseInput = {
surveyId: survey.id,
- personId: null,
+ personId: personId,
finished,
data,
};
@@ -307,6 +314,10 @@ const evaluateCondition = (logic: Logic, answerValue: any): boolean => {
Array.isArray(logic.value) &&
logic.value.some((v) => answerValue.includes(v))
);
+ case "accepted":
+ return answerValue === "accepted";
+ case "clicked":
+ return answerValue === "clicked";
case "submitted":
if (typeof answerValue === "string") {
return answerValue !== "dismissed" && answerValue !== "" && answerValue !== null;
diff --git a/apps/web/lib/members.ts b/apps/web/lib/members.ts
index 3653e4e9bd..d0c44a7f97 100644
--- a/apps/web/lib/members.ts
+++ b/apps/web/lib/members.ts
@@ -97,3 +97,21 @@ export const resendInvite = async (teamId: string, inviteId: string) => {
return false;
}
};
+
+export const shareInvite = async (teamId: string, inviteId: string) => {
+ try {
+ const res = await fetch(`/api/v1/teams/${teamId}/invite/${inviteId}`, {
+ method: "GET",
+ headers: { "Content-Type": "application/json" },
+ });
+
+ if (res.status !== 200) {
+ const json = await res.json();
+ throw Error(json.message);
+ }
+ return res.json();
+ } catch (error) {
+ console.error(error);
+ throw Error(`shareInvite: unable to get invite link: ${error.message}`);
+ }
+};
diff --git a/apps/web/lib/people/people.ts b/apps/web/lib/people/people.ts
index fac960de77..f0ea1df955 100644
--- a/apps/web/lib/people/people.ts
+++ b/apps/web/lib/people/people.ts
@@ -41,3 +41,15 @@ export const deletePerson = async (environmentId: string, personId: string) => {
throw Error(`deletePerson: unable to delete person: ${error.message}`);
}
};
+
+export const useGetOrCreatePerson = (environmentId: string, personId?: string | null) => {
+ const { data, isLoading } = useSWR(
+ personId ? `/api/v1/client/people/getOrCreate?userId=${personId}&environmentId=${environmentId}` : null,
+ fetcher
+ );
+
+ return {
+ person: data,
+ isLoadingPerson: isLoading,
+ };
+};
diff --git a/apps/web/lib/preview.ts b/apps/web/lib/preview.ts
new file mode 100644
index 0000000000..e0c32f306f
--- /dev/null
+++ b/apps/web/lib/preview.ts
@@ -0,0 +1,18 @@
+import { PlacementType } from "@formbricks/types/js";
+
+export const getPlacementStyle = (placement: PlacementType) => {
+ switch (placement) {
+ case "bottomRight":
+ return "bottom-3 sm:right-3";
+ case "topRight":
+ return "sm:top-3 sm:right-3 bottom-3";
+ case "topLeft":
+ return "sm:top-3 sm:left-3 bottom-3";
+ case "bottomLeft":
+ return "bottom-3 sm:left-3";
+ case "center":
+ return "top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2";
+ default:
+ return "bottom-3 sm:right-3";
+ }
+};
diff --git a/apps/web/lib/questions.ts b/apps/web/lib/questions.ts
index 81868f9980..e326acdb7c 100644
--- a/apps/web/lib/questions.ts
+++ b/apps/web/lib/questions.ts
@@ -5,6 +5,7 @@ import {
PresentationChartBarIcon,
QueueListIcon,
StarIcon,
+ CheckIcon,
} from "@heroicons/react/24/solid";
import { createId } from "@paralleldrive/cuid2";
import { replaceQuestionPresetPlaceholders } from "./templates";
@@ -28,6 +29,7 @@ export const questionTypes: QuestionType[] = [
headline: "Who let the dogs out?",
subheader: "Who? Who? Who?",
placeholder: "Type your answer here...",
+ longAnswer: true,
},
},
{
@@ -95,6 +97,17 @@ export const questionTypes: QuestionType[] = [
upperLabel: "Very good",
},
},
+ {
+ id: "consent",
+ label: "Consent",
+ description: "Ask your users to accept something",
+ icon: CheckIcon,
+ preset: {
+ headline: "Terms and Conditions",
+ label: "I agree to the terms and conditions",
+ dismissButtonLabel: "Skip",
+ },
+ },
];
export const universalQuestionPresets = {
diff --git a/apps/web/lib/tags/mutateTags.ts b/apps/web/lib/tags/mutateTags.ts
index a976f89435..d43865d006 100644
--- a/apps/web/lib/tags/mutateTags.ts
+++ b/apps/web/lib/tags/mutateTags.ts
@@ -15,6 +15,13 @@ export const useCreateTag = (environmentId: string) => {
if (!response.ok) {
const errorData = await response.json();
+
+ if (errorData?.duplicateRecord) {
+ throw new Error("Tag already assigned", {
+ cause: "DUPLICATE_RECORD",
+ });
+ }
+
throw new Error(errorData.message);
}
diff --git a/apps/web/lib/utils.ts b/apps/web/lib/utils.ts
index 941ba55e4b..b4033a8b5c 100644
--- a/apps/web/lib/utils.ts
+++ b/apps/web/lib/utils.ts
@@ -1,18 +1,7 @@
-import platform from "platform";
-
export function capitalizeFirstLetter(string = "") {
return string.charAt(0).toUpperCase() + string.slice(1);
}
-export const onlyUnique = (value, index, self) => {
- return self.indexOf(value) === index;
-};
-
-export const parseUserAgent = (userAgent: string) => {
- const info = platform.parse(userAgent);
- return info.description;
-};
-
// write a function that takes a string and truncates it to the specified length
export const truncate = (str: string, length: number) => {
if (!str) return "";
@@ -53,12 +42,3 @@ export function isLight(color) {
}
return r * 0.299 + g * 0.587 + b * 0.114 > 128;
}
-
-export const toJson = (obj: any): Object | null => {
- try {
- return JSON.parse(JSON.stringify(obj));
- } catch (error) {
- console.error(error);
- return null;
- }
-};
diff --git a/apps/web/package.json b/apps/web/package.json
index 5d55aec39e..7731dc277e 100644
--- a/apps/web/package.json
+++ b/apps/web/package.json
@@ -15,31 +15,22 @@
"@formbricks/js": "workspace:*",
"@formbricks/lib": "workspace:*",
"@formbricks/ui": "workspace:*",
+ "@headlessui/react": "^1.7.15",
"@heroicons/react": "^2.0.18",
"@json2csv/node": "^7.0.1",
"@paralleldrive/cuid2": "^2.2.0",
"@radix-ui/react-collapsible": "^1.0.2",
"@radix-ui/react-dropdown-menu": "^2.0.4",
- "@types/node": "20.2.3",
- "@types/react": "18.2.7",
- "@types/react-dom": "18.2.4",
"bcryptjs": "^2.4.3",
- "class-variance-authority": "^0.6.0",
- "date-fns": "^2.30.0",
"dotenv-webpack": "^8.0.1",
- "eslint": "8.41.0",
"eslint-config-next": "^13.4.3",
"jsonwebtoken": "^9.0.0",
"lodash": "^4.17.21",
"lucide-react": "^0.221.0",
- "markdown-it": "^13.0.1",
"next": "13.4.3",
"next-auth": "^4.22.1",
"nodemailer": "^6.9.2",
- "platform": "^1.3.6",
"posthog-js": "^1.57.3",
- "posthog-node": "^3.1.1",
- "preact": "10.15.0",
"prismjs": "^1.29.0",
"react": "18.2.0",
"react-beautiful-dnd": "^13.1.1",
@@ -47,10 +38,7 @@
"react-hook-form": "^7.43.9",
"react-hot-toast": "^2.4.1",
"react-icons": "^4.8.0",
- "react-use": "^17.4.0",
- "stripe": "^12.6.0",
"swr": "^2.1.5",
- "typescript": "5.0.4",
"ua-parser-js": "^1.0.35",
"zod": "^3.21.4"
},
@@ -63,12 +51,14 @@
"@types/bcryptjs": "^2.4.2",
"@types/lodash": "^4.14.195",
"@types/markdown-it": "^12.2.3",
+ "@types/node": "20.2.3",
+ "@types/react": "18.2.7",
+ "@types/react-dom": "18.2.4",
"autoprefixer": "^10.4.14",
"eslint-config-formbricks": "workspace:*",
"postcss": "^8.4.23",
"rimraf": "^5.0.1",
- "tailwind-merge": "^1.12.0",
"tailwindcss": "^3.3.2",
- "tailwindcss-animate": "^1.0.5"
+ "typescript": "5.0.4"
}
}
diff --git a/apps/web/pages/api/capture/forms/[formId]/schema/index.ts b/apps/web/pages/api/capture/forms/[formId]/schema/index.ts
deleted file mode 100644
index dfaf4192af..0000000000
--- a/apps/web/pages/api/capture/forms/[formId]/schema/index.ts
+++ /dev/null
@@ -1,39 +0,0 @@
-import type { NextApiRequest, NextApiResponse } from "next";
-
-export default async function handle(req: NextApiRequest, res: NextApiResponse) {
- const formId = req.query.formId?.toString();
-
- // CORS
- if (req.method === "OPTIONS") {
- res.status(200).end();
- }
-
- // POST/capture/forms/[formId]/schema
- // Update form schema
- // Required fields in body: -
- // Optional fields in body: customerId, data
- else if (req.method === "POST") {
- if (process.env.FORMBRICKS_LEGACY_HOST) {
- const response = await fetch(
- `${process.env.FORMBRICKS_LEGACY_HOST}/api/capture/forms/${formId}/schema`,
- {
- method: "POST",
- headers: {
- "Content-Type": "application/json",
- Authorization: `Bearer ${process.env.FORMBRICKS_LEGACY_HOST}`,
- },
- body: JSON.stringify(req.body),
- }
- );
- const responseData = await response.json();
- res.json(responseData);
- } else {
- throw new Error(`The HTTP ${req.method} method is not supported by this route.`);
- }
- }
-
- // Unknown HTTP Method
- else {
- throw new Error(`The HTTP ${req.method} method is not supported by this route.`);
- }
-}
diff --git a/apps/web/pages/api/capture/forms/[formId]/submissions/[submissionId]/index.ts b/apps/web/pages/api/capture/forms/[formId]/submissions/[submissionId]/index.ts
deleted file mode 100644
index e545977740..0000000000
--- a/apps/web/pages/api/capture/forms/[formId]/submissions/[submissionId]/index.ts
+++ /dev/null
@@ -1,41 +0,0 @@
-import type { NextApiRequest, NextApiResponse } from "next";
-
-export default async function handle(req: NextApiRequest, res: NextApiResponse) {
- const formId = req.query.formId?.toString();
- const submissionId = req.query.submissionId?.toString();
-
- // CORS
- if (req.method === "OPTIONS") {
- res.status(200).end();
- }
-
- // PUT /capture/forms/[formId]/submissions/[submissionId]
- // Extend an existing form submission
- // Required fields in body: -
- // Optional fields in body: customerId, data
- else if (req.method === "PUT") {
- // redirect request and make a request to legacy.formbricks.com
- if (process.env.FORMBRICKS_LEGACY_HOST) {
- const response = await fetch(
- `${process.env.FORMBRICKS_LEGACY_HOST}/api/capture/forms/${formId}/submissions/${submissionId}`,
- {
- method: "PUT",
- headers: {
- "Content-Type": "application/json",
- Authorization: `Bearer ${process.env.FORMBRICKS_LEGACY_HOST}`,
- },
- body: JSON.stringify(req.body),
- }
- );
- const responseData = await response.json();
- res.json(responseData);
- } else {
- throw new Error(`The HTTP ${req.method} method is not supported by this route.`);
- }
- }
-
- // Unknown HTTP Method
- else {
- throw new Error(`The HTTP ${req.method} method is not supported by this route.`);
- }
-}
diff --git a/apps/web/pages/api/capture/forms/[formId]/submissions/index.ts b/apps/web/pages/api/capture/forms/[formId]/submissions/index.ts
deleted file mode 100644
index 8158a39d2d..0000000000
--- a/apps/web/pages/api/capture/forms/[formId]/submissions/index.ts
+++ /dev/null
@@ -1,39 +0,0 @@
-import type { NextApiRequest, NextApiResponse } from "next";
-
-export default async function handle(req: NextApiRequest, res: NextApiResponse) {
- const formId = req.query.formId?.toString();
-
- // CORS
- if (req.method === "OPTIONS") {
- res.status(200).end();
- }
-
- // POST/capture/forms/[formId]/submissions
- // Create a new form submission
- // Required fields in body: -
- // Optional fields in body: customerId, data
- else if (req.method === "POST") {
- if (process.env.FORMBRICKS_LEGACY_HOST) {
- const response = await fetch(
- `${process.env.FORMBRICKS_LEGACY_HOST}/api/capture/forms/${formId}/submissions`,
- {
- method: "POST",
- headers: {
- "Content-Type": "application/json",
- Authorization: `Bearer ${process.env.FORMBRICKS_LEGACY_HOST}`,
- },
- body: JSON.stringify(req.body),
- }
- );
- const responseData = await response.json();
- res.json(responseData);
- } else {
- throw new Error(`The HTTP ${req.method} method is not supported by this route.`);
- }
- }
-
- // Unknown HTTP Method
- else {
- throw new Error(`The HTTP ${req.method} method is not supported by this route.`);
- }
-}
diff --git a/apps/web/pages/api/v1/environments/[environmentId]/posthog/export/index.ts b/apps/web/pages/api/v1/environments/[environmentId]/posthog/export/index.ts
deleted file mode 100644
index 099220241c..0000000000
--- a/apps/web/pages/api/v1/environments/[environmentId]/posthog/export/index.ts
+++ /dev/null
@@ -1,119 +0,0 @@
-import { hasEnvironmentAccess } from "@/lib/api/apiHelper";
-import { prisma } from "@formbricks/database";
-import type { NextApiRequest, NextApiResponse } from "next";
-
-export default async function handle(req: NextApiRequest, res: NextApiResponse) {
- const environmentId = req.query?.environmentId?.toString();
-
- if (!environmentId) {
- return res.status(400).json({ message: "Missing environmentId" });
- }
-
- const hasAccess = await hasEnvironmentAccess(req, res, environmentId);
- if (!hasAccess) {
- return res.status(403).json({ message: "Not authorized" });
- }
-
- // POST
- if (req.method === "POST") {
- // lastSyncedAt is the last time the environment was synced (iso string)
- const { lastSyncedAt } = req.body;
-
- let lastSyncedCondition = lastSyncedAt
- ? {
- OR: [
- {
- createdAt: {
- gt: lastSyncedAt,
- },
- },
- {
- updatedAt: {
- gt: lastSyncedAt,
- },
- },
- ],
- }
- : {};
-
- // Get all displays that have been created or updated since lastSyncedAt
- const displays = await prisma.display.findMany({
- where: {
- survey: {
- environmentId,
- },
- ...lastSyncedCondition,
- },
- select: {
- id: true,
- createdAt: true,
- updatedAt: true,
- person: {
- select: {
- attributes: {
- select: {
- id: true,
- value: true,
- attributeClass: {
- select: {
- name: true,
- },
- },
- },
- },
- },
- },
- },
- });
-
- // Get all responses that have been created or updated since lastSyncedAt
- const responses = await prisma.response.findMany({
- where: {
- survey: {
- environmentId,
- },
- ...lastSyncedCondition,
- },
- select: {
- id: true,
- createdAt: true,
- updatedAt: true,
- person: {
- select: {
- attributes: {
- select: {
- id: true,
- value: true,
- attributeClass: {
- select: {
- name: true,
- },
- },
- },
- },
- },
- },
- },
- });
-
- const events = [
- ...displays.map((display) => ({
- name: "formbricks_survey_displayed",
- timestamp: display.createdAt,
- userId: display.person?.attributes?.find((attr) => attr.attributeClass.name === "userId")?.value,
- })),
- ...responses.map((response) => ({
- name: "formbricks_response_created",
- timestamp: response.createdAt,
- userId: response.person?.attributes?.find((attr) => attr.attributeClass.name === "userId")?.value,
- })),
- ];
-
- return res.json({ events, lastSyncedAt: new Date().toISOString() });
- }
-
- // Unknown HTTP Method
- else {
- throw new Error(`The HTTP ${req.method} method is not supported by this route.`);
- }
-}
diff --git a/apps/web/pages/api/v1/environments/[environmentId]/posthog/import/index.ts b/apps/web/pages/api/v1/environments/[environmentId]/posthog/import/index.ts
deleted file mode 100644
index d1022faf4b..0000000000
--- a/apps/web/pages/api/v1/environments/[environmentId]/posthog/import/index.ts
+++ /dev/null
@@ -1,121 +0,0 @@
-import { hasEnvironmentAccess } from "@/lib/api/apiHelper";
-import { prisma } from "@formbricks/database";
-import type { NextApiRequest, NextApiResponse } from "next";
-
-interface FormbricksUser {
- userId: string;
- attributes: { [key: string]: string };
-}
-
-export default async function handle(req: NextApiRequest, res: NextApiResponse) {
- const environmentId = req.query?.environmentId?.toString();
-
- if (!environmentId) {
- return res.status(400).json({ message: "Missing environmentId" });
- }
-
- const hasAccess = await hasEnvironmentAccess(req, res, environmentId);
- if (!hasAccess) {
- return res.status(403).json({ message: "Not authorized" });
- }
-
- // POST
- if (req.method === "POST") {
- // lastSyncedAt is the last time the environment was synced (iso string)
- const { users }: { users: FormbricksUser[] } = req.body;
-
- for (const user of users) {
- // check if user with this userId as attribute already exists
- const existingUser = await prisma.person.findFirst({
- where: {
- attributes: {
- some: {
- attributeClass: {
- name: "userId",
- environmentId,
- },
- value: user.userId,
- },
- },
- },
- select: {
- id: true,
- attributes: {
- select: {
- id: true,
- value: true,
- attributeClass: {
- select: {
- name: true,
- },
- },
- },
- },
- },
- });
-
- if (existingUser) {
- // user already exists, loop through attributes and update or create them
- const attributeType: "noCode" = "noCode";
- for (const key of Object.keys(user.attributes)) {
- const existingAttribute = existingUser.attributes.find(
- (attribute) => attribute.attributeClass.name === key
- );
- if (existingAttribute) {
- // skip if value is the same
- if (existingAttribute.value === user.attributes[key]) {
- continue;
- }
- await prisma.attribute.update({
- where: {
- id: existingAttribute.id,
- },
- data: {
- value: user.attributes[key].toString(),
- },
- });
- } else {
- // create attribute
- await prisma.attribute.create({
- data: {
- value: user.attributes[key],
- attributeClass: {
- connectOrCreate: {
- where: {
- name_environmentId: {
- name: key,
- environmentId,
- },
- },
- create: {
- name: key,
- description: "Created by Posthog Import",
- type: attributeType,
- environment: {
- connect: {
- id: environmentId,
- },
- },
- },
- },
- },
- person: {
- connect: {
- id: existingUser.id,
- },
- },
- },
- });
- }
- }
- }
- }
-
- return res.status(200).end();
- }
-
- // Unknown HTTP Method
- else {
- throw new Error(`The HTTP ${req.method} method is not supported by this route.`);
- }
-}
diff --git a/apps/web/pages/api/v1/environments/[environmentId]/tags/count.ts b/apps/web/pages/api/v1/environments/[environmentId]/tags/count.ts
index 7389edfb1a..dd2a4fde9c 100644
--- a/apps/web/pages/api/v1/environments/[environmentId]/tags/count.ts
+++ b/apps/web/pages/api/v1/environments/[environmentId]/tags/count.ts
@@ -1,7 +1,5 @@
import { hasEnvironmentAccess, getSessionUser } from "@/lib/api/apiHelper";
import { prisma } from "@formbricks/database/src/client";
-import { TTag } from "@formbricks/types/v1/tags";
-import { Prisma } from "@prisma/client";
import type { NextApiRequest, NextApiResponse } from "next";
export default async function handle(req: NextApiRequest, res: NextApiResponse) {
@@ -25,9 +23,9 @@ export default async function handle(req: NextApiRequest, res: NextApiResponse)
return res.status(403).json({ message: "You are not authorized to access this environment! " });
}
- // GET /api/environments/[environmentId]/tags
+ // GET /api/environments/[environmentId]/tags/count
- // Get all tags for an environment
+ // Get the count of tags on responses
if (req.method === "GET") {
let tagsCounts;
@@ -46,38 +44,6 @@ export default async function handle(req: NextApiRequest, res: NextApiResponse)
return res.json(tagsCounts);
}
- // POST /api/environments/[environmentId]/tags
-
- // Create a new tag for a product
-
- if (req.method === "POST") {
- const name = req.body.name;
-
- if (!name) {
- return res.status(400).json({ message: "Invalid name" });
- }
-
- let tag: TTag;
-
- try {
- tag = await prisma.tag.create({
- data: {
- name,
- environmentId,
- },
- });
- } catch (e) {
- if (e instanceof Prisma.PrismaClientKnownRequestError) {
- if (e.code === "P2002") {
- return res.status(400).json({ message: "Tag already exists" });
- }
- }
- return res.status(500).json({ message: "Internal Server Error" });
- }
-
- return res.json(tag);
- }
-
// Unknown HTTP Method
else {
throw new Error(`The HTTP ${req.method} method is not supported by this route.`);
diff --git a/apps/web/pages/api/v1/environments/[environmentId]/tags/index.ts b/apps/web/pages/api/v1/environments/[environmentId]/tags/index.ts
index 87278c9417..57e489d49f 100644
--- a/apps/web/pages/api/v1/environments/[environmentId]/tags/index.ts
+++ b/apps/web/pages/api/v1/environments/[environmentId]/tags/index.ts
@@ -70,7 +70,7 @@ export default async function handle(req: NextApiRequest, res: NextApiResponse)
} catch (e) {
if (e instanceof Prisma.PrismaClientKnownRequestError) {
if (e.code === "P2002") {
- return res.status(400).json({ message: "Tag already exists" });
+ return res.status(400).json({ duplicateRecord: true });
}
}
return res.status(500).json({ message: "Internal Server Error" });
diff --git a/apps/web/pages/api/v1/teams/[teamId]/invite/[inviteId]/index.ts b/apps/web/pages/api/v1/teams/[teamId]/invite/[inviteId]/index.ts
index 5ed11ed8ca..1b417daeba 100644
--- a/apps/web/pages/api/v1/teams/[teamId]/invite/[inviteId]/index.ts
+++ b/apps/web/pages/api/v1/teams/[teamId]/invite/[inviteId]/index.ts
@@ -1,5 +1,6 @@
import { getSessionUser, isAdminOrOwner } from "@/lib/api/apiHelper";
import { sendInviteMemberEmail } from "@/lib/email";
+import { createInviteToken } from "@/lib/jwt";
import { prisma } from "@formbricks/database";
import type { NextApiRequest, NextApiResponse } from "next";
@@ -112,6 +113,28 @@ export default async function handle(req: NextApiRequest, res: NextApiResponse)
return res.status(200).json(updatedInvite);
}
+ // GET /api/v1/teams/[teamId]/invite/[inviteId]
+ // Retrieve an invite token
+ else if (req.method === "GET") {
+ const invite = await prisma.invite.findUnique({
+ where: {
+ id: inviteId,
+ },
+ select: {
+ email: true,
+ },
+ });
+
+ if (!invite) {
+ return res.status(403).json({ message: "You are not allowed to share this invite link" });
+ }
+
+ const inviteToken = createInviteToken(inviteId, invite?.email, {
+ expiresIn: "7d",
+ });
+
+ return res.status(200).json({ inviteToken: encodeURIComponent(inviteToken) });
+ }
// Unknown HTTP Method
else {
diff --git a/docker-compose.yml b/docker-compose.yml
index b7f0a15512..9c21120984 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,7 +1,7 @@
version: "3.3"
services:
postgres:
- restart: unless-stopped
+ restart: always
image: postgres:15-alpine
volumes:
- postgres:/var/lib/postgresql/data
@@ -9,7 +9,7 @@ services:
- POSTGRES_PASSWORD=postgres
formbricks:
- restart: unless-stopped
+ restart: always
build:
context: .
dockerfile: ./apps/web/Dockerfile
diff --git a/package.json b/package.json
index e1fb709378..aa6e4f2f7d 100644
--- a/package.json
+++ b/package.json
@@ -23,7 +23,8 @@
"generate": "turbo run generate",
"lint": "turbo run lint",
"release": "turbo run build --filter=react^... && changeset publish",
- "nuke": "rm -r node_modules; for d in **/node_modules; do echo $d; rm -r $d; done"
+ "nuke": "rm -r node_modules; for d in **/node_modules; do echo $d; rm -r $d; done",
+ "test": "turbo run test"
},
"devDependencies": {
"@changesets/cli": "^2.26.1",
diff --git a/packages/api/tsconfig.json b/packages/api/tsconfig.json
index 431acb1f6a..cfb861011c 100644
--- a/packages/api/tsconfig.json
+++ b/packages/api/tsconfig.json
@@ -1,5 +1,5 @@
{
"extends": "@formbricks/tsconfig/js-library.json",
"include": ["**/*.ts", "tsup.config.ts"],
- "exclude": ["node_modules"]
+ "exclude": ["node_modules", "dist"]
}
diff --git a/packages/database/migrations/20230628113957_add_placement/migration.sql b/packages/database/migrations/20230628113957_add_placement/migration.sql
new file mode 100644
index 0000000000..cb6e36e5dd
--- /dev/null
+++ b/packages/database/migrations/20230628113957_add_placement/migration.sql
@@ -0,0 +1,7 @@
+-- CreateEnum
+CREATE TYPE "WidgetPlacement" AS ENUM ('bottomLeft', 'bottomRight', 'topLeft', 'topRight', 'center');
+
+-- AlterTable
+ALTER TABLE "Product" ADD COLUMN "clickOutsideClose" BOOLEAN NOT NULL DEFAULT true,
+ADD COLUMN "darkOverlay" BOOLEAN NOT NULL DEFAULT false,
+ADD COLUMN "placement" "WidgetPlacement" NOT NULL DEFAULT 'bottomRight';
diff --git a/packages/database/package.json b/packages/database/package.json
index e0bcb2267a..a771df8850 100644
--- a/packages/database/package.json
+++ b/packages/database/package.json
@@ -20,25 +20,24 @@
"generate": "prisma generate",
"lint": "eslint ./src --fix",
"prebuild": "npm run generate",
- "predev": "npm run generate",
- "studio": "prisma studio"
+ "predev": "npm run generate"
},
"dependencies": {
- "@formbricks/types": "workspace:*",
- "@prisma/client": "^4.15.0",
- "prisma-json-types-generator": "^2.4.0",
+ "@prisma/client": "^4.16.1",
+ "prisma-json-types-generator": "^2.5.0",
"zod": "^3.21.4",
"zod-prisma": "^0.5.4"
},
"devDependencies": {
"@formbricks/tsconfig": "workspace:*",
- "eslint": "^8.41.0",
+ "@formbricks/types": "workspace:*",
+ "eslint": "^8.43.0",
"eslint-config-formbricks": "workspace:*",
- "prisma": "^4.15.0",
+ "prisma": "^4.16.1",
"prisma-dbml-generator": "^0.10.0",
"rimraf": "^5.0.1",
- "tsup": "^6.7.0",
+ "tsup": "^7.1.0",
"tsx": "^3.12.7",
- "typescript": "^5.0.4"
+ "typescript": "^5.1.3"
}
}
diff --git a/packages/database/schema.prisma b/packages/database/schema.prisma
index 7dbcd3a2ce..ae3370b682 100644
--- a/packages/database/schema.prisma
+++ b/packages/database/schema.prisma
@@ -8,7 +8,7 @@ datasource db {
generator client {
provider = "prisma-client-js"
- previewFeatures = ["filteredRelationCount", "extendedWhereUnique"]
+ previewFeatures = ["extendedWhereUnique"]
//provider = "prisma-dbml-generator"
}
@@ -304,17 +304,28 @@ model Environment {
tags Tag[]
}
+enum WidgetPlacement {
+ bottomLeft
+ bottomRight
+ topLeft
+ topRight
+ center
+}
+
model Product {
- id String @id @default(cuid())
- createdAt DateTime @default(now()) @map(name: "created_at")
- updatedAt DateTime @updatedAt @map(name: "updated_at")
+ id String @id @default(cuid())
+ createdAt DateTime @default(now()) @map(name: "created_at")
+ updatedAt DateTime @updatedAt @map(name: "updated_at")
name String
- team Team @relation(fields: [teamId], references: [id], onDelete: Cascade)
+ team Team @relation(fields: [teamId], references: [id], onDelete: Cascade)
teamId String
environments Environment[]
- brandColor String @default("#64748b")
- recontactDays Int @default(7)
- formbricksSignature Boolean @default(true)
+ brandColor String @default("#64748b")
+ recontactDays Int @default(7)
+ formbricksSignature Boolean @default(true)
+ placement WidgetPlacement @default(bottomRight)
+ clickOutsideClose Boolean @default(true)
+ darkOverlay Boolean @default(false)
}
enum Plan {
diff --git a/packages/database/tsconfig.json b/packages/database/tsconfig.json
index 9d6a826d01..eb408c5485 100644
--- a/packages/database/tsconfig.json
+++ b/packages/database/tsconfig.json
@@ -1,5 +1,5 @@
{
"extends": "@formbricks/tsconfig/node16.json",
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "tsup.config.ts"],
- "exclude": ["node_modules"]
+ "exclude": ["node_modules", "dist", "zod"]
}
diff --git a/packages/ee/package.json b/packages/ee/package.json
index 421d943b1d..7476c532e5 100644
--- a/packages/ee/package.json
+++ b/packages/ee/package.json
@@ -19,6 +19,7 @@
},
"dependencies": {
"@formbricks/database": "workspace:*",
- "next": "^13.4.4"
+ "next": "^13.4.4",
+ "stripe": "^12.6.0"
}
}
diff --git a/packages/errors/LICENSE b/packages/errors/LICENSE
new file mode 100644
index 0000000000..ade6b17980
--- /dev/null
+++ b/packages/errors/LICENSE
@@ -0,0 +1,9 @@
+MIT License
+
+Copyright (c) 2023 Matthias Nannt, Johannes Dancker
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/packages/errors/package.json b/packages/errors/package.json
index 38a62238ce..7d6d46d19c 100644
--- a/packages/errors/package.json
+++ b/packages/errors/package.json
@@ -1,8 +1,8 @@
{
"name": "@formbricks/errors",
+ "license": "MIT",
"description": "A helper package containing general error classes for Formbricks",
- "private": true,
- "version": "1.0.0",
+ "version": "0.1.0",
"main": "./dist/index.js",
"module": "./dist/index.mjs",
"types": "./dist/index.d.ts",
@@ -15,8 +15,8 @@
"dev": "tsup --watch",
"lint": "eslint ./src --fix",
"clean": "rimraf .turbo node_modules dist"
- },
- "devDependencies": {
+ },
+ "devDependencies": {
"@formbricks/tsconfig": "workspace:*",
"eslint": "^8.41.0",
"eslint-config-formbricks": "workspace:*",
diff --git a/packages/errors/tsconfig.json b/packages/errors/tsconfig.json
index 68efa55c17..ca019c54f7 100644
--- a/packages/errors/tsconfig.json
+++ b/packages/errors/tsconfig.json
@@ -1,5 +1,5 @@
{
"extends": "@formbricks/tsconfig/node16.json",
"include": ["**/*.ts", "tsup.config.ts"],
- "exclude": ["node_modules"]
+ "exclude": ["node_modules", "dist"]
}
diff --git a/packages/js/babel.config.js b/packages/js/babel.config.js
new file mode 100644
index 0000000000..0ea482c675
--- /dev/null
+++ b/packages/js/babel.config.js
@@ -0,0 +1,6 @@
+module.exports = (api) => {
+ return {
+ presets: [["@babel/preset-env", { targets: { node: "current" } }], "@babel/preset-typescript"],
+ plugins: [["@babel/plugin-transform-react-jsx", { runtime: api.env("test") ? "automatic" : "classic" }]],
+ };
+};
diff --git a/packages/js/package.json b/packages/js/package.json
index 6c88fca444..599b5f22eb 100644
--- a/packages/js/package.json
+++ b/packages/js/package.json
@@ -23,7 +23,7 @@
},
"scripts": {
"clean": "rimraf .turbo node_modules dist",
- "dev": "microbundle --css inline",
+ "dev": "microbundle --css inline --watch",
"lint": "eslint '{src,tests}/**/*.{ts,tsx}'",
"test": "jest",
"build": "microbundle --css inline"
@@ -42,36 +42,46 @@
]
},
"author": "Formbricks ",
- "dependencies": {},
"devDependencies": {
+ "@babel/core": "^7.22.5",
+ "@babel/preset-env": "^7.22.5",
+ "@babel/preset-typescript": "^7.22.5",
"@formbricks/api": "workspace:*",
"@formbricks/types": "workspace:*",
- "@types/enzyme": "^3.10.13",
"@types/jest": "^29.5.2",
"@typescript-eslint/eslint-plugin": "^5.59.9",
"@typescript-eslint/parser": "^5.59.9",
"autoprefixer": "^10.4.14",
+ "babel-jest": "^29.5.0",
"cross-env": "^7.0.3",
- "enzyme": "^3.11.0",
- "enzyme-adapter-preact-pure": "^4.1.0",
"eslint": "^8.42.0",
"eslint-config-formbricks": "workspace:*",
"eslint-config-preact": "^1.3.0",
+ "isomorphic-fetch": "^3.0.0",
"jest": "^29.5.0",
+ "jest-environment-jsdom": "^29.5.0",
+ "jest-fetch-mock": "^3.0.3",
"jest-preset-preact": "^4.0.5",
"microbundle": "^0.15.1",
"postcss": "^8.4.24",
"preact": "10.15.1",
"preact-cli": "^3.4.5",
"preact-render-to-string": "^6.1.0",
+ "regenerator-runtime": "^0.13.11",
"rimraf": "^5.0.1",
"tailwindcss": "^3.3.2",
"typescript": "^5.1.3"
},
"jest": {
- "preset": "jest-preset-preact",
+ "transformIgnorePatterns": [
+ "!node_modules/"
+ ],
"setupFiles": [
"/tests/__mocks__/setupTests.js"
- ]
+ ],
+ "moduleNameMapper": {
+ "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "/tests/__mocks__/fileMock.js",
+ "\\.(css|less)$": "/tests/__mocks__/styleMock.js"
+ }
}
}
diff --git a/packages/js/src/App.tsx b/packages/js/src/App.tsx
index 6fad36ab3f..a80d8c7803 100644
--- a/packages/js/src/App.tsx
+++ b/packages/js/src/App.tsx
@@ -24,7 +24,12 @@ export default function App({ config, survey, closeSurvey, errorHandler }: AppPr
return (
-
+
diff --git a/packages/js/src/components/ConsentQuestion.tsx b/packages/js/src/components/ConsentQuestion.tsx
new file mode 100644
index 0000000000..a741b9b664
--- /dev/null
+++ b/packages/js/src/components/ConsentQuestion.tsx
@@ -0,0 +1,59 @@
+import type { ConsentQuestion } from "../../../types/questions";
+import { h } from "preact";
+import Headline from "./Headline";
+import HtmlBody from "./HtmlBody";
+import SubmitButton from "./SubmitButton";
+
+interface ConsentQuestionProps {
+ question: ConsentQuestion;
+ onSubmit: (data: { [x: string]: any }) => void;
+ lastQuestion: boolean;
+ brandColor: string;
+}
+
+export default function ConsentQuestion({
+ question,
+ onSubmit,
+ lastQuestion,
+ brandColor,
+}: ConsentQuestionProps) {
+ return (
+
+ );
+}
diff --git a/packages/js/src/components/Modal.tsx b/packages/js/src/components/Modal.tsx
index e754ab88ce..aa8e594ca2 100644
--- a/packages/js/src/components/Modal.tsx
+++ b/packages/js/src/components/Modal.tsx
@@ -1,17 +1,26 @@
+import type { PlacementType } from "@formbricks/types/js";
import { h, VNode } from "preact";
-import { useEffect, useState } from "preact/hooks";
+import { useEffect, useRef, useState } from "preact/hooks";
import { cn } from "../lib/utils";
export default function Modal({
children,
isOpen,
+ placement,
+ clickOutside,
+ darkOverlay,
close,
}: {
children: VNode;
isOpen: boolean;
+ placement: PlacementType;
+ clickOutside: boolean;
+ darkOverlay: boolean;
close: () => void;
}) {
const [show, setShow] = useState(false);
+ const isCenter = placement === "center";
+ const modalRef = useRef(null);
/* useEffect(() => {
setLoaded(true);
}, []); */
@@ -19,15 +28,60 @@ export default function Modal({
useEffect(() => {
setShow(isOpen);
}, [isOpen]);
+
+ useEffect(() => {
+ if (!isCenter) return;
+
+ function handleClickOutside(event) {
+ if (clickOutside && show && modalRef.current && !modalRef.current.contains(event.target)) {
+ close();
+ }
+ }
+ document.addEventListener("mousedown", handleClickOutside);
+ return () => {
+ document.removeEventListener("mousedown", handleClickOutside);
+ };
+ }, [show, clickOutside, close, isCenter]);
+
+ const getPlacementStyle = (placement: PlacementType) => {
+ switch (placement) {
+ case "bottomRight":
+ return "fb-bottom-3 sm:fb-right-3";
+ case "topRight":
+ return "sm:fb-top-3 sm:fb-right-3 fb-bottom-3";
+ case "topLeft":
+ return "sm:fb-top-3 sm:fb-left-3 fb-bottom-3";
+ case "bottomLeft":
+ return "fb-bottom-3 sm:fb-left-3";
+ case "center":
+ return "fb-top-1/2 fb-left-1/2 fb-transform -fb-translate-x-1/2 -fb-translate-y-1/2";
+ default:
+ return "fb-bottom-3 sm:fb-right-3";
+ }
+ };
+
return (
-
+ className={cn(
+ isCenter ? "fb-pointer-events-auto" : "fb-pointer-events-none",
+ "fb-fixed fb-inset-0 fb-flex fb-items-end fb-z-40 fb-p-3 sm:fb-p-0"
+ )}>
+
-
+ {question.longAnswer === false ? (
+
+ ) : (
+
+ )}
diff --git a/packages/js/src/components/QuestionConditional.tsx b/packages/js/src/components/QuestionConditional.tsx
index 19b45ee225..73f94ab8ac 100644
--- a/packages/js/src/components/QuestionConditional.tsx
+++ b/packages/js/src/components/QuestionConditional.tsx
@@ -6,6 +6,7 @@ import MultipleChoiceMultiQuestion from "./MultipleChoiceMultiQuestion";
import NPSQuestion from "./NPSQuestion";
import CTAQuestion from "./CTAQuestion";
import RatingQuestion from "./RatingQuestion";
+import ConsentQuestion from "./ConsentQuestion";
interface QuestionConditionalProps {
question: Question;
@@ -62,5 +63,12 @@ export default function QuestionConditional({
lastQuestion={lastQuestion}
brandColor={brandColor}
/>
+ ) : question.type === "consent" ? (
+
) : null;
}
diff --git a/packages/js/src/components/SurveyView.tsx b/packages/js/src/components/SurveyView.tsx
index e358c92838..ae110c4d51 100644
--- a/packages/js/src/components/SurveyView.tsx
+++ b/packages/js/src/components/SurveyView.tsx
@@ -121,6 +121,10 @@ export default function SurveyView({ config, survey, close, errorHandler }: Surv
Array.isArray(logic.value) &&
logic.value.some((v) => answerValue.includes(v))
);
+ case "accepted":
+ return answerValue === "accepted";
+ case "clicked":
+ return answerValue === "clicked";
case "submitted":
if (typeof answerValue === "string") {
return answerValue !== "dismissed" && answerValue !== "" && answerValue !== null;
diff --git a/packages/js/src/lib/noCodeEvents.ts b/packages/js/src/lib/noCodeEvents.ts
index c06dbe4bd1..06eea331b3 100644
--- a/packages/js/src/lib/noCodeEvents.ts
+++ b/packages/js/src/lib/noCodeEvents.ts
@@ -12,6 +12,10 @@ const errorHandler = ErrorHandler.getInstance();
export const checkPageUrl = async (): Promise
> => {
logger.debug(`Checking page url: ${window.location.href}`);
const { settings } = config.get();
+ if (settings?.noCodeEvents === undefined) {
+ return okVoid();
+ }
+
const pageUrlEvents: Event[] = settings?.noCodeEvents.filter((e) => e.noCodeConfig?.type === "pageUrl");
if (pageUrlEvents.length === 0) {
diff --git a/packages/js/tests/__mocks__/apiMock.ts b/packages/js/tests/__mocks__/apiMock.ts
new file mode 100644
index 0000000000..193724d4d2
--- /dev/null
+++ b/packages/js/tests/__mocks__/apiMock.ts
@@ -0,0 +1,286 @@
+import fetchMock from "jest-fetch-mock";
+import { constants } from "../constants";
+
+const {
+ environmentId,
+ apiHost,
+ sessionId,
+ expiryTime,
+ surveyId,
+ questionOneId,
+ questionTwoId,
+ choiceOneId,
+ choiceTwoId,
+ choiceThreeId,
+ initialPersonUid,
+ initialUserId,
+ initialUserEmail,
+ newPersonUid,
+ eventIdForRouteChange,
+ updatedUserEmail,
+ customAttributeKey,
+ customAttributeValue,
+ eventIdForEventTracking,
+ userIdAttributeId,
+ userInitialEmailAttributeId,
+ userCustomAttrAttributeId,
+ userUpdatedEmailAttributeId,
+} = constants;
+
+export const mockInitResponse = () => {
+ fetchMock.mockResponseOnce(
+ JSON.stringify({
+ apiHost,
+ environmentId,
+ person: {
+ id: initialPersonUid,
+ environmentId,
+ attributes: [],
+ },
+ session: {
+ id: sessionId,
+ expiresAt: expiryTime,
+ },
+ settings: {
+ surveys: [
+ {
+ id: surveyId,
+ questions: [
+ {
+ id: questionOneId,
+ type: "multipleChoiceSingle",
+ choices: [
+ {
+ id: choiceOneId,
+ label: "Not at all disappointed",
+ },
+ {
+ id: choiceTwoId,
+ label: "Somewhat disappointed",
+ },
+ {
+ id: choiceThreeId,
+ label: "Very disappointed",
+ },
+ ],
+ headline: "How disappointed would you be if you could no longer use Test-Formbricks?",
+ required: true,
+ subheader: "Please select one of the following options:",
+ },
+ {
+ id: questionTwoId,
+ type: "openText",
+ headline: "How can we improve Test-Formbricks for you?",
+ required: true,
+ subheader: "Please be as specific as possible.",
+ },
+ ],
+ triggers: [],
+ thankYouCard: {
+ enabled: true,
+ headline: "Thank you!",
+ subheader: "We appreciate your feedback.",
+ },
+ autoClose: null,
+ delay: 0,
+ },
+ ],
+ noCodeEvents: [],
+ brandColor: "#20b398",
+ formbricksSignature: true,
+ placement: "bottomRight",
+ darkOverlay: false,
+ clickOutsideClose: true,
+ },
+ })
+ );
+};
+
+export const mockSetUserIdResponse = () => {
+ fetchMock.mockResponseOnce(
+ JSON.stringify({
+ apiHost,
+ environmentId,
+ settings: {
+ surveys: [],
+ noCodeEvents: [],
+ },
+ person: {
+ id: initialPersonUid,
+ environmentId,
+ attributes: [
+ {
+ id: userIdAttributeId,
+ value: initialUserId,
+ attributeClass: {
+ id: environmentId,
+ name: "userId",
+ },
+ },
+ ],
+ },
+ })
+ );
+};
+
+export const mockSetEmailIdResponse = () => {
+ fetchMock.mockResponseOnce(
+ JSON.stringify({
+ apiHost,
+ environmentId,
+ settings: {
+ surveys: [],
+ noCodeEvents: [],
+ },
+ person: {
+ id: initialPersonUid,
+ environmentId,
+ attributes: [
+ {
+ id: userIdAttributeId,
+ value: initialUserId,
+ attributeClass: {
+ id: environmentId,
+ name: "userId",
+ },
+ },
+ {
+ id: userInitialEmailAttributeId,
+ value: initialUserEmail,
+ attributeClass: {
+ id: environmentId,
+ name: "email",
+ },
+ },
+ ],
+ },
+ })
+ );
+};
+
+export const mockSetCustomAttributeResponse = () => {
+ fetchMock.mockResponseOnce(
+ JSON.stringify({
+ apiHost,
+ environmentId,
+ settings: {
+ surveys: [],
+ noCodeEvents: [],
+ },
+ person: {
+ id: initialPersonUid,
+ environmentId,
+ attributes: [
+ {
+ id: userIdAttributeId,
+ value: initialUserId,
+ attributeClass: {
+ id: environmentId,
+ name: "userId",
+ },
+ },
+ {
+ id: userInitialEmailAttributeId,
+ value: initialUserEmail,
+ attributeClass: {
+ id: environmentId,
+ name: "email",
+ },
+ },
+ {
+ id: userCustomAttrAttributeId,
+ value: customAttributeValue,
+ attributeClass: {
+ id: environmentId,
+ name: customAttributeKey,
+ },
+ },
+ ],
+ },
+ })
+ );
+};
+
+export const mockUpdateEmailResponse = () => {
+ fetchMock.mockResponseOnce(
+ JSON.stringify({
+ apiHost,
+ environmentId,
+ settings: {
+ surveys: [],
+ noCodeEvents: [],
+ },
+ person: {
+ id: initialPersonUid,
+ environmentId,
+ attributes: [
+ {
+ id: userIdAttributeId,
+ value: initialUserId,
+ attributeClass: {
+ id: environmentId,
+ name: "userId",
+ },
+ },
+ {
+ id: userUpdatedEmailAttributeId,
+ value: updatedUserEmail,
+ attributeClass: {
+ id: environmentId,
+ name: "email",
+ },
+ },
+ {
+ id: userCustomAttrAttributeId,
+ value: customAttributeValue,
+ attributeClass: {
+ id: environmentId,
+ name: customAttributeKey,
+ },
+ },
+ ],
+ },
+ })
+ );
+};
+
+export const mockEventTrackResponse = () => {
+ fetchMock.mockResponseOnce(
+ JSON.stringify({
+ id: eventIdForEventTracking,
+ })
+ );
+ console.log('Formbricks: Event "Button Clicked" tracked');
+};
+
+export const mockRefreshResponse = () => {
+ fetchMock.mockResponseOnce(JSON.stringify({}));
+ console.log("Settings refreshed");
+};
+
+export const mockRegisterRouteChangeResponse = () => {
+ fetchMock.mockResponseOnce(
+ JSON.stringify({
+ id: eventIdForRouteChange,
+ })
+ );
+ console.log("Checking page url: http://localhost/");
+};
+
+export const mockLogoutResponse = () => {
+ fetchMock.mockResponseOnce(
+ JSON.stringify({
+ settings: {
+ surveys: [],
+ noCodeEvents: [],
+ },
+ person: {
+ id: newPersonUid,
+ environmentId,
+ attributes: [],
+ },
+ session: {},
+ })
+ );
+ console.log("Resetting person. Getting new person, session and settings from backend");
+};
diff --git a/packages/js/tests/__mocks__/fileMock.js b/packages/js/tests/__mocks__/fileMock.js
new file mode 100644
index 0000000000..1d87881797
--- /dev/null
+++ b/packages/js/tests/__mocks__/fileMock.js
@@ -0,0 +1 @@
+module.exports = 'placeholer-to-not-mock-all-files-as-js';
diff --git a/packages/js/tests/__mocks__/setupTests.js b/packages/js/tests/__mocks__/setupTests.js
index d0bbb11755..47833658f7 100644
--- a/packages/js/tests/__mocks__/setupTests.js
+++ b/packages/js/tests/__mocks__/setupTests.js
@@ -1,6 +1,10 @@
-import { configure } from "enzyme";
-import Adapter from "enzyme-adapter-preact-pure";
+/** @type {import('jest').Config} */
+const config = {
+ verbose: true,
+ testEnvironment: "jsdom"
+};
-configure({
- adapter: new Adapter()
-});
\ No newline at end of file
+import fetchMock from "jest-fetch-mock";
+fetchMock.enableMocks();
+
+module.exports = config;
diff --git a/packages/js/tests/__mocks__/styleMock.js b/packages/js/tests/__mocks__/styleMock.js
new file mode 100644
index 0000000000..f053ebf797
--- /dev/null
+++ b/packages/js/tests/__mocks__/styleMock.js
@@ -0,0 +1 @@
+module.exports = {};
diff --git a/packages/js/tests/constants.ts b/packages/js/tests/constants.ts
new file mode 100644
index 0000000000..83380b38c1
--- /dev/null
+++ b/packages/js/tests/constants.ts
@@ -0,0 +1,59 @@
+const generateUserId = () => {
+ const min = 1000;
+ const max = 9999;
+ const randomNum = Math.floor(Math.random() * (max - min + 1) + min);
+ return randomNum.toString();
+};
+
+const generateEmailId = () => {
+ const domain = "formbricks.test";
+ const randomString = Math.random().toString(36).substring(2);
+ const emailId = `${randomString}@${domain}`;
+ return emailId;
+};
+
+const generateRandomString = () => {
+ const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
+ const maxLength = 8;
+
+ let randomString = "";
+ for (let i = 0; i < maxLength; i++) {
+ const randomIndex = Math.floor(Math.random() * characters.length);
+ randomString += characters.charAt(randomIndex);
+ }
+ return randomString;
+};
+
+const getOneDayExpiryTime = () => {
+ var ms = new Date().getTime();
+ var oneDayMs = 24 * 60 * 60 * 1000; // Number of milliseconds in one day
+ var expiryOfOneDay = ms + oneDayMs;
+ return expiryOfOneDay;
+};
+
+export const constants = {
+ environmentId: "mockedEnvironmentId",
+ apiHost: "mockedApiHost",
+ sessionId: generateRandomString(),
+ expiryTime: getOneDayExpiryTime(),
+ surveyId: generateRandomString(),
+ questionOneId: generateRandomString(),
+ questionTwoId: generateRandomString(),
+ choiceOneId: generateRandomString(),
+ choiceTwoId: generateRandomString(),
+ choiceThreeId: generateRandomString(),
+ choiceFourId: generateRandomString(),
+ initialPersonUid: generateRandomString(),
+ newPersonUid: generateRandomString(),
+ initialUserId: generateUserId(),
+ initialUserEmail: generateEmailId(),
+ updatedUserEmail: generateEmailId(),
+ customAttributeKey: generateRandomString(),
+ customAttributeValue: generateRandomString(),
+ userIdAttributeId: generateRandomString(),
+ userInitialEmailAttributeId: generateRandomString(),
+ userCustomAttrAttributeId: generateRandomString(),
+ userUpdatedEmailAttributeId: generateRandomString(),
+ eventIdForEventTracking: generateRandomString(),
+ eventIdForRouteChange: generateRandomString(),
+} as const;
diff --git a/packages/js/tests/declarations.d.ts b/packages/js/tests/declarations.d.ts
deleted file mode 100644
index 67e9402778..0000000000
--- a/packages/js/tests/declarations.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-// Enable enzyme adapter's integration with TypeScript
-// See: https://github.com/preactjs/enzyme-adapter-preact-pure#usage-with-typescript
-///
diff --git a/packages/js/tests/index.test.ts b/packages/js/tests/index.test.ts
new file mode 100644
index 0000000000..789fb969bd
--- /dev/null
+++ b/packages/js/tests/index.test.ts
@@ -0,0 +1,200 @@
+/**
+ * @jest-environment jsdom
+ */
+import formbricks from "../src/index";
+import { constants } from "./constants";
+import { Attribute } from "./types";
+import {
+ mockEventTrackResponse,
+ mockInitResponse,
+ mockLogoutResponse,
+ mockRefreshResponse,
+ mockRegisterRouteChangeResponse,
+ mockSetCustomAttributeResponse,
+ mockSetEmailIdResponse,
+ mockSetUserIdResponse,
+ mockUpdateEmailResponse,
+} from "./__mocks__/apiMock";
+
+const consoleLogMock = jest.spyOn(console, "log").mockImplementation();
+
+test("Test Jest", () => {
+ expect(1 + 9).toBe(10);
+});
+
+const {
+ environmentId,
+ apiHost,
+ initialUserId,
+ initialUserEmail,
+ updatedUserEmail,
+ customAttributeKey,
+ customAttributeValue,
+} = constants;
+
+beforeEach(() => {
+ fetchMock.resetMocks();
+});
+
+test("Formbricks should Initialise", async () => {
+ mockInitResponse();
+
+ await formbricks.init({
+ environmentId,
+ apiHost,
+ });
+
+ const configFromBrowser = localStorage.getItem("formbricksConfig");
+ expect(configFromBrowser).toBeTruthy();
+
+ if (configFromBrowser) {
+ const jsonSavedConfig = JSON.parse(configFromBrowser);
+ expect(jsonSavedConfig.environmentId).toStrictEqual(environmentId);
+ expect(jsonSavedConfig.apiHost).toStrictEqual(apiHost);
+ }
+});
+
+test("Formbricks should get the current person with no attributes", () => {
+ const currentState = formbricks.getPerson();
+
+ const currentStateAttributes: Array = currentState.attributes as Array;
+ expect(currentStateAttributes).toHaveLength(0);
+});
+
+test("Formbricks should set userId", async () => {
+ mockSetUserIdResponse();
+ await formbricks.setUserId(initialUserId);
+
+ const currentState = formbricks.getPerson();
+ expect(currentState.environmentId).toStrictEqual(environmentId);
+
+ const currentStateAttributes: Array = currentState.attributes as Array;
+ const numberOfUserAttributes = currentStateAttributes.length;
+ expect(numberOfUserAttributes).toStrictEqual(1);
+
+ currentStateAttributes.forEach((attribute) => {
+ switch (attribute.attributeClass.name) {
+ case "userId":
+ expect(attribute.value).toStrictEqual(initialUserId);
+ break;
+ default:
+ expect(0).toStrictEqual(1);
+ }
+ });
+});
+
+test("Formbricks should set email", async () => {
+ mockSetEmailIdResponse();
+ await formbricks.setEmail(initialUserEmail);
+
+ const currentState = formbricks.getPerson();
+ expect(currentState.environmentId).toStrictEqual(environmentId);
+
+ const currentStateAttributes: Array = currentState.attributes as Array;
+ const numberOfUserAttributes = currentStateAttributes.length;
+ expect(numberOfUserAttributes).toStrictEqual(2);
+
+ currentStateAttributes.forEach((attribute) => {
+ switch (attribute.attributeClass.name) {
+ case "userId":
+ expect(attribute.value).toStrictEqual(initialUserId);
+ break;
+ case "email":
+ expect(attribute.value).toStrictEqual(initialUserEmail);
+ break;
+ default:
+ expect(0).toStrictEqual(1);
+ }
+ });
+});
+
+test("Formbricks should set custom attribute", async () => {
+ mockSetCustomAttributeResponse();
+ await formbricks.setAttribute(customAttributeKey, customAttributeValue);
+
+ const currentState = formbricks.getPerson();
+ expect(currentState.environmentId).toStrictEqual(environmentId);
+
+ const currentStateAttributes: Array = currentState.attributes as Array;
+ const numberOfUserAttributes = currentStateAttributes.length;
+ expect(numberOfUserAttributes).toStrictEqual(3);
+
+ currentStateAttributes.forEach((attribute) => {
+ switch (attribute.attributeClass.name) {
+ case "userId":
+ expect(attribute.value).toStrictEqual(initialUserId);
+ break;
+ case "email":
+ expect(attribute.value).toStrictEqual(initialUserEmail);
+ break;
+ case customAttributeKey:
+ expect(attribute.value).toStrictEqual(customAttributeValue);
+ break;
+ default:
+ expect(0).toStrictEqual(1);
+ }
+ });
+});
+
+test("Formbricks should update attribute", async () => {
+ mockUpdateEmailResponse();
+ await formbricks.setEmail(updatedUserEmail);
+
+ const currentState = formbricks.getPerson();
+ expect(currentState.environmentId).toStrictEqual(environmentId);
+
+ const currentStateAttributes: Array = currentState.attributes as Array;
+
+ const numberOfUserAttributes = currentStateAttributes.length;
+ expect(numberOfUserAttributes).toStrictEqual(3);
+
+ currentStateAttributes.forEach((attribute) => {
+ switch (attribute.attributeClass.name) {
+ case "email":
+ expect(attribute.value).toStrictEqual(updatedUserEmail);
+ break;
+ case "userId":
+ expect(attribute.value).toStrictEqual(initialUserId);
+ break;
+ case customAttributeKey:
+ expect(attribute.value).toStrictEqual(customAttributeValue);
+ break;
+ default:
+ expect(0).toStrictEqual(1);
+ }
+ });
+});
+
+test("Formbricks should track event", async () => {
+ mockEventTrackResponse();
+ const mockButton = document.createElement("button");
+ mockButton.addEventListener("click", async () => {
+ await formbricks.track("Button Clicked");
+ });
+ await mockButton.click();
+ expect(consoleLogMock).toHaveBeenCalledWith(
+ expect.stringMatching(/Formbricks: Event "Button Clicked" tracked/)
+ );
+});
+
+test("Formbricks should refresh", async () => {
+ mockRefreshResponse();
+ await formbricks.refresh();
+ expect(consoleLogMock).toHaveBeenCalledWith(expect.stringMatching(/Settings refreshed/));
+});
+
+test("Formbricks should register for route change", async () => {
+ mockRegisterRouteChangeResponse();
+ await formbricks.registerRouteChange();
+ expect(consoleLogMock).toHaveBeenCalledWith(expect.stringMatching(/Checking page url/));
+});
+
+test("Formbricks should logout", async () => {
+ mockLogoutResponse();
+ await formbricks.logout();
+ const currentState = formbricks.getPerson();
+ const currentStateAttributes: Array = currentState.attributes as Array;
+
+ expect(currentState.environmentId).toStrictEqual(environmentId);
+ expect(currentStateAttributes.length).toBe(0);
+});
diff --git a/packages/js/tests/index.test.tsx b/packages/js/tests/index.test.tsx
deleted file mode 100644
index d47c4699b2..0000000000
--- a/packages/js/tests/index.test.tsx
+++ /dev/null
@@ -1,17 +0,0 @@
-import { h } from "preact";
-import { shallow } from "enzyme";
-
-import Hello from "../src/component";
-
-describe("Hello logic", () => {
- it("should be able to run tests", () => {
- expect(1 + 2).toEqual(3);
- });
-});
-
-describe("Hello Snapshot", () => {
- it("should render header with content", () => {
- const tree = shallow( );
- expect(tree.find("h1").text()).toBe("Hello, World!");
- });
-});
diff --git a/packages/js/tests/types.ts b/packages/js/tests/types.ts
new file mode 100644
index 0000000000..f434d0d369
--- /dev/null
+++ b/packages/js/tests/types.ts
@@ -0,0 +1,8 @@
+export interface Attribute {
+ id: string;
+ value: string;
+ attributeClass: {
+ id: string;
+ name: string;
+ };
+}
diff --git a/packages/js/tsconfig.json b/packages/js/tsconfig.json
index e1026db534..b88de68d4e 100644
--- a/packages/js/tsconfig.json
+++ b/packages/js/tsconfig.json
@@ -58,5 +58,6 @@
"references": [
{ "path": "../../../types/tsconfig.json" } // Add this line, adjust the path to the actual location
],
- "include": ["src", "../types", "../lib/client"]
+ "include": ["src", "../types", "../lib/client"],
+ "exclude": ["node_modules", "dist", "coverage"]
}
diff --git a/packages/lib/constants.ts b/packages/lib/constants.ts
index 2f4d0fe206..9d0c39072e 100644
--- a/packages/lib/constants.ts
+++ b/packages/lib/constants.ts
@@ -1,5 +1,5 @@
export const RESPONSES_LIMIT_FREE = 100;
-export const IS_FORMBRICKS_CLOUD = process.env.NEXT_PUBLIC_IS_FORMBRICKS_CLOUD !== "1";
+export const IS_FORMBRICKS_CLOUD = process.env.NEXT_PUBLIC_IS_FORMBRICKS_CLOUD === "1";
// URLs
const VERCEL_URL = process.env.NEXT_PUBLIC_VERCEL_URL ? `https://${process.env.NEXT_PUBLIC_VERCEL_URL}` : "";
diff --git a/packages/lib/package.json b/packages/lib/package.json
index 4a5deb0f1c..b366a619e0 100644
--- a/packages/lib/package.json
+++ b/packages/lib/package.json
@@ -13,8 +13,13 @@
},
"dependencies": {
"@formbricks/database": "*",
+ "@formbricks/errors": "*",
"@formbricks/types": "*",
- "@formbricks/errors": "*"
+ "date-fns": "^2.30.0",
+ "markdown-it": "^13.0.1",
+ "posthog-node": "^3.1.1",
+ "server-only": "^0.0.1",
+ "tailwind-merge": "^1.12.0"
},
"devDependencies": {
"@formbricks/tsconfig": "*",
diff --git a/packages/lib/services/response.ts b/packages/lib/services/response.ts
index c4d3cfcce8..0184c27cc7 100644
--- a/packages/lib/services/response.ts
+++ b/packages/lib/services/response.ts
@@ -1,9 +1,11 @@
import { prisma } from "@formbricks/database";
-import { TResponse, TResponseInput, TResponseUpdateInput } from "@formbricks/types/v1/responses";
-import { Prisma } from "@prisma/client";
import { DatabaseError, ResourceNotFoundError } from "@formbricks/errors";
-import { getPerson, TransformPersonOutput, transformPrismaPerson } from "./person";
+import { TResponse, TResponseInput, TResponseUpdateInput } from "@formbricks/types/v1/responses";
import { TTag } from "@formbricks/types/v1/tags";
+import { Prisma } from "@prisma/client";
+import "server-only";
+import { TransformPersonOutput, getPerson, transformPrismaPerson } from "./person";
+import { cache } from "react";
const responseSelection = {
id: true,
@@ -133,7 +135,11 @@ export const getResponse = async (responseId: string): Promise
}
};
-export const getSurveyResponses = async (surveyId: string): Promise => {
+export const preloadSurveyResponses = (surveyId: string) => {
+ void getSurveyResponses(surveyId);
+};
+
+export const getSurveyResponses = cache(async (surveyId: string): Promise => {
try {
const responsesPrisma = await prisma.response.findMany({
where: {
@@ -161,8 +167,44 @@ export const getSurveyResponses = async (surveyId: string): Promise
throw error;
}
+});
+
+export const preloadEnvironmentResponses = (environmentId: string) => {
+ void getEnvironmentResponses(environmentId);
};
+export const getEnvironmentResponses = cache(async (environmentId: string): Promise => {
+ try {
+ const responsesPrisma = await prisma.response.findMany({
+ where: {
+ survey: {
+ environmentId,
+ },
+ },
+ select: responseSelection,
+ orderBy: [
+ {
+ createdAt: "desc",
+ },
+ ],
+ });
+
+ const responses: TResponse[] = responsesPrisma.map((responsePrisma) => ({
+ ...responsePrisma,
+ person: transformPrismaPerson(responsePrisma.person),
+ tags: responsePrisma.tags.map((tagPrisma: { tag: TTag }) => tagPrisma.tag),
+ }));
+
+ return responses;
+ } catch (error) {
+ if (error instanceof Prisma.PrismaClientKnownRequestError) {
+ throw new DatabaseError("Database operation failed");
+ }
+
+ throw error;
+ }
+});
+
export const updateResponse = async (
responseId: string,
responseInput: TResponseUpdateInput
diff --git a/packages/lib/services/survey.ts b/packages/lib/services/survey.ts
index f64c4445b6..8092200cb2 100644
--- a/packages/lib/services/survey.ts
+++ b/packages/lib/services/survey.ts
@@ -4,8 +4,14 @@ import { ValidationError } from "@formbricks/errors";
import { DatabaseError, ResourceNotFoundError } from "@formbricks/errors";
import { TSurvey, ZSurvey } from "@formbricks/types/v1/surveys";
import { Prisma } from "@prisma/client";
+import "server-only";
+import { cache } from "react";
-export const getSurvey = async (surveyId: string): Promise => {
+export const preloadSurvey = (surveyId: string) => {
+ void getSurvey(surveyId);
+};
+
+export const getSurvey = cache(async (surveyId: string): Promise => {
let surveyPrisma;
try {
surveyPrisma = await prisma.survey.findUnique({
@@ -96,4 +102,4 @@ export const getSurvey = async (surveyId: string): Promise => {
}
throw new ValidationError("Data validation of survey failed");
}
-};
+});
diff --git a/packages/tailwind-config/tailwind.config.js b/packages/tailwind-config/tailwind.config.js
index 6885b794f2..27f7e777fa 100644
--- a/packages/tailwind-config/tailwind.config.js
+++ b/packages/tailwind-config/tailwind.config.js
@@ -4,6 +4,7 @@ module.exports = {
"./app/**/*.{js,ts,jsx,tsx}", // Note the addition of the `app` directory.
"./pages/**/*.{js,ts,jsx,tsx}",
"./components/**/*.{js,ts,jsx,tsx}",
+ "./lib/**/*.{js,ts,jsx,tsx}",
// include packages if not transpiling
"../../packages/ui/components/**/*.{js,ts,jsx,tsx}",
],
@@ -11,6 +12,7 @@ module.exports = {
extend: {
animation: {
"ping-slow": "ping 2s cubic-bezier(0, 0, 0.2, 1) infinite",
+ shake: "shake 0.82s cubic-bezier(0.36, 0.07, 0.19, 0.97) both",
},
backgroundImage: {
"gradient-radial": "radial-gradient(var(--tw-gradient-stops))",
@@ -30,6 +32,23 @@ module.exports = {
"0%": { opacity: "0" },
"100%": { opacity: "1" },
},
+ shake: {
+ "10%, 90%": {
+ transform: "translate3d(-1px, 0, 0)",
+ },
+
+ "20%, 80%": {
+ transform: "translate3d(2px, 0, 0),",
+ },
+
+ "30%, 50%, 70%": {
+ transform: "translate3d(-4px, 0, 0)",
+ },
+
+ "40%, 60%": {
+ transform: "translate3d(4px, 0, 0)",
+ },
+ },
},
maxWidth: {
"8xl": "88rem",
@@ -40,6 +59,9 @@ module.exports = {
scale: {
97: "0.97",
},
+ gridTemplateColumns: {
+ 20: "repeat(20, minmax(0, 1fr))",
+ },
},
},
plugins: [require("@tailwindcss/forms"), require("@tailwindcss/typography")],
diff --git a/packages/types/js.ts b/packages/types/js.ts
index 57800461f7..83570ab5a0 100644
--- a/packages/types/js.ts
+++ b/packages/types/js.ts
@@ -53,6 +53,9 @@ export interface Settings {
noCodeEvents?: any[];
brandColor?: string;
formbricksSignature?: boolean;
+ placement?: PlacementType;
+ clickOutsideClose?: boolean;
+ darkOverlay?: boolean;
}
export interface JsConfig {
@@ -92,3 +95,4 @@ export interface Trigger {
}
export type MatchType = "exactMatch" | "contains" | "startsWith" | "endsWith" | "notMatch" | "notContains";
+export type PlacementType = "bottomLeft" | "bottomRight" | "topLeft" | "topRight" | "center";
diff --git a/packages/types/questions.ts b/packages/types/questions.ts
index 0e8056ec77..153f0ba411 100644
--- a/packages/types/questions.ts
+++ b/packages/types/questions.ts
@@ -19,7 +19,8 @@ export type Question =
| MultipleChoiceMultiQuestion
| NPSQuestion
| CTAQuestion
- | RatingQuestion;
+ | RatingQuestion
+ | ConsentQuestion;
export interface IQuestion {
id: string;
@@ -33,6 +34,7 @@ export interface IQuestion {
export interface OpenTextQuestion extends IQuestion {
type: QuestionType.OpenText;
+ longAnswer?: boolean;
placeholder?: string;
}
@@ -68,9 +70,18 @@ export interface RatingQuestion extends IQuestion {
upperLabel: string;
}
+export interface ConsentQuestion extends IQuestion {
+ type: "consent";
+ html?: string;
+ label: string;
+ dismissButtonLabel?: string;
+}
+
export type LogicCondition =
| "submitted"
| "skipped"
+ | "accepted"
+ | "clicked"
| "equals"
| "notEquals"
| "lessThan"
@@ -112,7 +123,7 @@ export interface NPSLogic extends LogicBase {
value?: number;
}
export interface CTALogic extends LogicBase {
- condition: "submitted" | "skipped" | undefined;
+ condition: "clicked" | "skipped" | undefined;
value?: undefined;
}
export interface RatingLogic extends LogicBase {
@@ -128,10 +139,17 @@ export interface RatingLogic extends LogicBase {
| undefined;
value?: number | string;
}
+
+export interface ConsentLogic extends LogicBase {
+ condition: "submitted" | "skipped" | "accepted" | undefined;
+ value: undefined;
+}
+
export type Logic =
| OpenTextLogic
| MultipleChoiceSingleLogic
| MultipleChoiceMultiLogic
| NPSLogic
| CTALogic
- | RatingLogic;
+ | RatingLogic
+ | ConsentLogic;
diff --git a/packages/types/v1/surveys.ts b/packages/types/v1/surveys.ts
index 310fbac497..4c118d9b0b 100644
--- a/packages/types/v1/surveys.ts
+++ b/packages/types/v1/surveys.ts
@@ -40,7 +40,7 @@ export const ZSurveyOpenTextLogic = ZSurveyLogicBase.extend({
});
export const ZSurveyConsentLogic = ZSurveyLogicBase.extend({
- condition: z.enum(["submitted", "skipped", "accepted"]).optional(),
+ condition: z.enum(["skipped", "accepted"]).optional(),
value: z.undefined(),
});
@@ -71,7 +71,8 @@ export const ZSurveyNPSLogic = ZSurveyLogicBase.extend({
});
const ZSurveyCTALogic = ZSurveyLogicBase.extend({
- condition: z.enum(["submitted", "skipped"]).optional(),
+ // "submitted" condition is legacy and should be removed later
+ condition: z.enum(["clicked", "submitted", "skipped"]).optional(),
value: z.undefined(),
});
@@ -116,6 +117,7 @@ const ZSurveyQuestionBase = z.object({
export const ZSurveyOpenTextQuestion = ZSurveyQuestionBase.extend({
type: z.literal(QuestionType.OpenText),
placeholder: z.string().optional(),
+ longAnswer: z.boolean().optional(),
logic: z.array(ZSurveyOpenTextLogic).optional(),
});
diff --git a/packages/ui/components/PasswordInput.tsx b/packages/ui/components/PasswordInput.tsx
index d5143acf90..853d1fae59 100644
--- a/packages/ui/components/PasswordInput.tsx
+++ b/packages/ui/components/PasswordInput.tsx
@@ -25,9 +25,8 @@ const PasswordInput = ({ className, ...rest }: PasswordInputProps) => {
/>
+ className={cn("absolute right-3 top-1/2 -translate-y-1/2 transform")}
+ onClick={togglePasswordVisibility}>
{showPassword ? (
) : (
@@ -39,4 +38,3 @@ const PasswordInput = ({ className, ...rest }: PasswordInputProps) => {
};
export { PasswordInput };
-
diff --git a/packages/ui/package.json b/packages/ui/package.json
index 5e6f5eeda6..2a62c8a17c 100644
--- a/packages/ui/package.json
+++ b/packages/ui/package.json
@@ -10,9 +10,7 @@
},
"types": "./index.tsx",
"scripts": {
- "build": "tsup index.tsx --format esm,cjs --dts --external react",
- "clean": "rimraf .turbo node_modules dist",
- "dev": "tsup index.tsx --format esm,cjs --dts --external react --watch"
+ "clean": "rimraf .turbo node_modules dist"
},
"devDependencies": {
"@formbricks/tsconfig": "workspace:*",
@@ -24,7 +22,6 @@
"postcss": "^8.4.24",
"react": "^18.2.0",
"rimraf": "^5.0.1",
- "tsup": "^6.7.0",
"typescript": "^5.0.4"
},
"dependencies": {
@@ -47,6 +44,7 @@
"@radix-ui/react-switch": "^1.0.3",
"@radix-ui/react-tooltip": "^1.0.6",
"boring-avatars": "^1.7.0",
+ "class-variance-authority": "^0.6.0",
"clsx": "^1.2.1",
"cmdk": "^0.2.0",
"lucide-react": "^0.233.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 1068108622..230d834d02 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1,5 +1,9 @@
lockfileVersion: '6.0'
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
importers:
.:
@@ -28,21 +32,6 @@ importers:
'@heroicons/react':
specifier: ^2.0.17
version: 2.0.17(react@18.2.0)
- '@types/node':
- specifier: 18.15.11
- version: 18.15.11
- '@types/react':
- specifier: 18.0.33
- version: 18.0.33
- '@types/react-dom':
- specifier: 18.0.11
- version: 18.0.11
- console-feed:
- specifier: ^3.5.0
- version: 3.5.0(jquery@3.7.0)(react-dom@18.2.0)(react@18.2.0)
- eslint:
- specifier: 8.37.0
- version: 8.37.0
eslint-config-formbricks:
specifier: workspace:*
version: link:../../packages/eslint-config-formbricks
@@ -55,13 +44,19 @@ importers:
react-dom:
specifier: 18.2.0
version: 18.2.0(react@18.2.0)
- typescript:
- specifier: 5.0.3
- version: 5.0.3
devDependencies:
'@tailwindcss/forms':
specifier: ^0.5.3
version: 0.5.3(tailwindcss@3.3.1)
+ '@types/node':
+ specifier: 18.15.11
+ version: 18.15.11
+ '@types/react':
+ specifier: 18.0.33
+ version: 18.0.33
+ '@types/react-dom':
+ specifier: 18.0.11
+ version: 18.0.11
autoprefixer:
specifier: ^10.4.14
version: 10.4.14(postcss@8.4.21)
@@ -74,12 +69,18 @@ importers:
tailwindcss:
specifier: ^3.3.1
version: 3.3.1(postcss@8.4.21)
+ typescript:
+ specifier: 5.0.3
+ version: 5.0.3
apps/formbricks-com:
dependencies:
+ '@calcom/embed-react':
+ specifier: ^1.1.1
+ version: 1.1.1(react-dom@18.2.0)(react@18.2.0)
'@docsearch/react':
- specifier: ^3.3.3
- version: 3.3.3(@algolia/client-search@4.14.2)(@types/react@18.0.35)(react-dom@18.2.0)(react@18.2.0)
+ specifier: ^3.5.1
+ version: 3.5.1(@algolia/client-search@4.14.2)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.6.0)
'@formbricks/lib':
specifier: workspace:*
version: link:../../packages/lib
@@ -90,11 +91,11 @@ importers:
specifier: workspace:*
version: link:../../packages/ui
'@headlessui/react':
- specifier: ^1.7.14
- version: 1.7.14(react-dom@18.2.0)(react@18.2.0)
+ specifier: ^1.7.15
+ version: 1.7.15(react-dom@18.2.0)(react@18.2.0)
'@heroicons/react':
- specifier: ^2.0.17
- version: 2.0.17(react@18.2.0)
+ specifier: ^2.0.18
+ version: 2.0.18(react@18.2.0)
'@mapbox/rehype-prism':
specifier: ^0.8.0
version: 0.8.0
@@ -105,29 +106,29 @@ importers:
specifier: ^2.3.0
version: 2.3.0(react@18.2.0)
'@next/mdx':
- specifier: ^13.3.0
- version: 13.3.0(@mdx-js/loader@2.3.0)(@mdx-js/react@2.3.0)
- add:
- specifier: ^2.0.6
- version: 2.0.6
+ specifier: ^13.4.7
+ version: 13.4.7(@mdx-js/loader@2.3.0)(@mdx-js/react@2.3.0)
+ '@paralleldrive/cuid2':
+ specifier: ^2.2.0
+ version: 2.2.0
clsx:
specifier: ^1.2.1
version: 1.2.1
lottie-web:
- specifier: ^5.11.0
- version: 5.11.0
+ specifier: ^5.12.2
+ version: 5.12.2
next:
- specifier: 13.3.0
- version: 13.3.0(react-dom@18.2.0)(react@18.2.0)
+ specifier: 13.4.7
+ version: 13.4.7(react-dom@18.2.0)(react@18.2.0)
next-plausible:
- specifier: ^3.7.2
- version: 3.7.2(next@13.3.0)(react-dom@18.2.0)(react@18.2.0)
+ specifier: ^3.8.0
+ version: 3.8.0(next@13.4.7)(react-dom@18.2.0)(react@18.2.0)
next-sitemap:
- specifier: ^4.0.7
- version: 4.0.7(@next/env@13.4.4)(next@13.3.0)
+ specifier: ^4.1.3
+ version: 4.1.3(@next/env@13.4.7)(next@13.4.7)
prism-react-renderer:
- specifier: ^1.3.5
- version: 1.3.5(react@18.2.0)
+ specifier: ^2.0.6
+ version: 2.0.6(react@18.2.0)
prismjs:
specifier: ^1.29.0
version: 1.29.0
@@ -137,9 +138,9 @@ importers:
react-dom:
specifier: 18.2.0
version: 18.2.0(react@18.2.0)
- react-hook-form:
- specifier: ^7.43.9
- version: 7.43.9(react@18.2.0)
+ react-icons:
+ specifier: ^4.8.0
+ version: 4.8.0(react@18.2.0)
react-responsive-embed:
specifier: ^2.1.0
version: 2.1.0(prop-types@15.8.1)(react@18.2.0)
@@ -147,47 +148,47 @@ importers:
specifier: ^3.0.1
version: 3.0.1
sharp:
- specifier: ^0.32.0
- version: 0.32.0
+ specifier: ^0.32.1
+ version: 0.32.1
devDependencies:
'@formbricks/tsconfig':
specifier: workspace:*
version: link:../../packages/tsconfig
'@tailwindcss/forms':
specifier: ^0.5.3
- version: 0.5.3(tailwindcss@3.3.1)
+ version: 0.5.3(tailwindcss@3.3.2)
'@tailwindcss/typography':
specifier: ^0.5.9
- version: 0.5.9(tailwindcss@3.3.1)
+ version: 0.5.9(tailwindcss@3.3.2)
'@types/node':
- specifier: 18.15.11
- version: 18.15.11
+ specifier: 20.3.2
+ version: 20.3.2
'@types/prismjs':
specifier: ^1.26.0
version: 1.26.0
'@types/react':
- specifier: ^18.0.35
- version: 18.0.35
+ specifier: 18.2.7
+ version: 18.2.7
'@types/react-dom':
- specifier: ^18.0.11
- version: 18.0.11
+ specifier: 18.2.4
+ version: 18.2.4
autoprefixer:
specifier: ^10.4.14
- version: 10.4.14(postcss@8.4.22)
+ version: 10.4.14(postcss@8.4.24)
eslint-config-formbricks:
specifier: workspace:*
version: link:../../packages/eslint-config-formbricks
postcss:
- specifier: ^8.4.22
- version: 8.4.22
+ specifier: ^8.4.24
+ version: 8.4.24
rimraf:
- specifier: ^5.0.0
- version: 5.0.0
+ specifier: ^5.0.1
+ version: 5.0.1
tailwindcss:
- specifier: ^3.3.1
- version: 3.3.1(postcss@8.4.22)
+ specifier: ^3.3.2
+ version: 3.3.2
typescript:
- specifier: ^5.0.4
+ specifier: 5.0.4
version: 5.0.4
apps/web:
@@ -207,6 +208,9 @@ importers:
'@formbricks/ui':
specifier: workspace:*
version: link:../../packages/ui
+ '@headlessui/react':
+ specifier: ^1.7.15
+ version: 1.7.15(react-dom@18.2.0)(react@18.2.0)
'@heroicons/react':
specifier: ^2.0.18
version: 2.0.18(react@18.2.0)
@@ -222,33 +226,15 @@ importers:
'@radix-ui/react-dropdown-menu':
specifier: ^2.0.4
version: 2.0.4(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0)
- '@types/node':
- specifier: 20.2.3
- version: 20.2.3
- '@types/react':
- specifier: 18.2.7
- version: 18.2.7
- '@types/react-dom':
- specifier: 18.2.4
- version: 18.2.4
bcryptjs:
specifier: ^2.4.3
version: 2.4.3
- class-variance-authority:
- specifier: ^0.6.0
- version: 0.6.0(typescript@5.0.4)
- date-fns:
- specifier: ^2.30.0
- version: 2.30.0
dotenv-webpack:
specifier: ^8.0.1
version: 8.0.1(webpack@5.75.0)
- eslint:
- specifier: 8.41.0
- version: 8.41.0
eslint-config-next:
specifier: ^13.4.3
- version: 13.4.3(eslint@8.41.0)(typescript@5.0.4)
+ version: 13.4.3(eslint@8.43.0)(typescript@5.0.4)
jsonwebtoken:
specifier: ^9.0.0
version: 9.0.0
@@ -258,9 +244,6 @@ importers:
lucide-react:
specifier: ^0.221.0
version: 0.221.0(react@18.2.0)
- markdown-it:
- specifier: ^13.0.1
- version: 13.0.1
next:
specifier: 13.4.3
version: 13.4.3(react-dom@18.2.0)(react@18.2.0)
@@ -270,18 +253,9 @@ importers:
nodemailer:
specifier: ^6.9.2
version: 6.9.2
- platform:
- specifier: ^1.3.6
- version: 1.3.6
posthog-js:
specifier: ^1.57.3
version: 1.57.3
- posthog-node:
- specifier: ^3.1.1
- version: 3.1.1
- preact:
- specifier: 10.15.0
- version: 10.15.0
prismjs:
specifier: ^1.29.0
version: 1.29.0
@@ -303,18 +277,9 @@ importers:
react-icons:
specifier: ^4.8.0
version: 4.8.0(react@18.2.0)
- react-use:
- specifier: ^17.4.0
- version: 17.4.0(react-dom@18.2.0)(react@18.2.0)
- stripe:
- specifier: ^12.6.0
- version: 12.6.0
swr:
specifier: ^2.1.5
version: 2.1.5(react@18.2.0)
- typescript:
- specifier: 5.0.4
- version: 5.0.4
ua-parser-js:
specifier: ^1.0.35
version: 1.0.35
@@ -346,6 +311,15 @@ importers:
'@types/markdown-it':
specifier: ^12.2.3
version: 12.2.3
+ '@types/node':
+ specifier: 20.2.3
+ version: 20.2.3
+ '@types/react':
+ specifier: 18.2.7
+ version: 18.2.7
+ '@types/react-dom':
+ specifier: 18.2.4
+ version: 18.2.4
autoprefixer:
specifier: ^10.4.14
version: 10.4.14(postcss@8.4.23)
@@ -358,15 +332,12 @@ importers:
rimraf:
specifier: ^5.0.1
version: 5.0.1
- tailwind-merge:
- specifier: ^1.12.0
- version: 1.12.0
tailwindcss:
specifier: ^3.3.2
version: 3.3.2
- tailwindcss-animate:
- specifier: ^1.0.5
- version: 1.0.5(tailwindcss@3.3.2)
+ typescript:
+ specifier: 5.0.4
+ version: 5.0.4
packages/api:
dependencies:
@@ -395,34 +366,34 @@ importers:
packages/database:
dependencies:
- '@formbricks/types':
- specifier: workspace:*
- version: link:../types
'@prisma/client':
- specifier: ^4.15.0
- version: 4.15.0(prisma@4.15.0)
+ specifier: ^4.16.1
+ version: 4.16.1(prisma@4.16.1)
prisma-json-types-generator:
- specifier: ^2.4.0
- version: 2.4.0
+ specifier: ^2.5.0
+ version: 2.5.0(prisma@4.16.1)
zod:
specifier: ^3.21.4
version: 3.21.4
zod-prisma:
specifier: ^0.5.4
- version: 0.5.4(prisma@4.15.0)(zod@3.21.4)
+ version: 0.5.4(prisma@4.16.1)(zod@3.21.4)
devDependencies:
'@formbricks/tsconfig':
specifier: workspace:*
version: link:../tsconfig
+ '@formbricks/types':
+ specifier: workspace:*
+ version: link:../types
eslint:
- specifier: ^8.41.0
- version: 8.41.0
+ specifier: ^8.43.0
+ version: 8.43.0
eslint-config-formbricks:
specifier: workspace:*
version: link:../eslint-config-formbricks
prisma:
- specifier: ^4.15.0
- version: 4.15.0
+ specifier: ^4.16.1
+ version: 4.16.1
prisma-dbml-generator:
specifier: ^0.10.0
version: 0.10.0
@@ -430,14 +401,14 @@ importers:
specifier: ^5.0.1
version: 5.0.1
tsup:
- specifier: ^6.7.0
- version: 6.7.0(typescript@5.0.4)
+ specifier: ^7.1.0
+ version: 7.1.0(typescript@5.1.3)
tsx:
specifier: ^3.12.7
version: 3.12.7
typescript:
- specifier: ^5.0.4
- version: 5.0.4
+ specifier: ^5.1.3
+ version: 5.1.3
packages/ee:
dependencies:
@@ -447,6 +418,9 @@ importers:
next:
specifier: ^13.4.4
version: 13.4.4(react-dom@18.2.0)(react@18.2.0)
+ stripe:
+ specifier: ^12.6.0
+ version: 12.6.0
devDependencies:
'@formbricks/tsconfig':
specifier: '*'
@@ -509,15 +483,21 @@ importers:
packages/js:
devDependencies:
+ '@babel/core':
+ specifier: ^7.22.5
+ version: 7.22.5
+ '@babel/preset-env':
+ specifier: ^7.22.5
+ version: 7.22.5(@babel/core@7.22.5)
+ '@babel/preset-typescript':
+ specifier: ^7.22.5
+ version: 7.22.5(@babel/core@7.22.5)
'@formbricks/api':
specifier: workspace:*
version: link:../api
'@formbricks/types':
specifier: workspace:*
version: link:../types
- '@types/enzyme':
- specifier: ^3.10.13
- version: 3.10.13
'@types/jest':
specifier: ^29.5.2
version: 29.5.2
@@ -530,15 +510,12 @@ importers:
autoprefixer:
specifier: ^10.4.14
version: 10.4.14(postcss@8.4.24)
+ babel-jest:
+ specifier: ^29.5.0
+ version: 29.5.0(@babel/core@7.22.5)
cross-env:
specifier: ^7.0.3
version: 7.0.3
- enzyme:
- specifier: ^3.11.0
- version: 3.11.0
- enzyme-adapter-preact-pure:
- specifier: ^4.1.0
- version: 4.1.0(enzyme@3.11.0)(preact@10.15.1)
eslint:
specifier: ^8.42.0
version: 8.42.0
@@ -548,9 +525,18 @@ importers:
eslint-config-preact:
specifier: ^1.3.0
version: 1.3.0(@typescript-eslint/eslint-plugin@5.59.9)(eslint@8.42.0)(jest@29.5.0)(typescript@5.1.3)
+ isomorphic-fetch:
+ specifier: ^3.0.0
+ version: 3.0.0
jest:
specifier: ^29.5.0
version: 29.5.0
+ jest-environment-jsdom:
+ specifier: ^29.5.0
+ version: 29.5.0
+ jest-fetch-mock:
+ specifier: ^3.0.3
+ version: 3.0.3
jest-preset-preact:
specifier: ^4.0.5
version: 4.0.5(jest@29.5.0)(preact-render-to-string@6.1.0)(preact@10.15.1)
@@ -569,6 +555,9 @@ importers:
preact-render-to-string:
specifier: ^6.1.0
version: 6.1.0(preact@10.15.1)
+ regenerator-runtime:
+ specifier: ^0.13.11
+ version: 0.13.11
rimraf:
specifier: ^5.0.1
version: 5.0.1
@@ -590,6 +579,21 @@ importers:
'@formbricks/types':
specifier: '*'
version: link:../types
+ date-fns:
+ specifier: ^2.30.0
+ version: 2.30.0
+ markdown-it:
+ specifier: ^13.0.1
+ version: 13.0.1
+ posthog-node:
+ specifier: ^3.1.1
+ version: 3.1.1
+ server-only:
+ specifier: ^0.0.1
+ version: 0.0.1
+ tailwind-merge:
+ specifier: ^1.12.0
+ version: 1.12.0
devDependencies:
'@formbricks/tsconfig':
specifier: '*'
@@ -692,6 +696,9 @@ importers:
boring-avatars:
specifier: ^1.7.0
version: 1.7.0
+ class-variance-authority:
+ specifier: ^0.6.0
+ version: 0.6.0(typescript@5.0.4)
clsx:
specifier: ^1.2.1
version: 1.2.1
@@ -747,34 +754,54 @@ importers:
rimraf:
specifier: ^5.0.1
version: 5.0.1
- tsup:
- specifier: ^6.7.0
- version: 6.7.0(postcss@8.4.24)(typescript@5.0.4)
typescript:
specifier: ^5.0.4
version: 5.0.4
packages:
- /@algolia/autocomplete-core@1.7.4:
- resolution: {integrity: sha512-daoLpQ3ps/VTMRZDEBfU8ixXd+amZcNJ4QSP3IERGyzqnL5Ch8uSRFt/4G8pUvW9c3o6GA4vtVv4I4lmnkdXyg==}
+ /@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.14.2)(algoliasearch@4.14.2)(search-insights@2.6.0):
+ resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==}
dependencies:
- '@algolia/autocomplete-shared': 1.7.4
+ '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.14.2)(algoliasearch@4.14.2)(search-insights@2.6.0)
+ '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.14.2)(algoliasearch@4.14.2)
+ transitivePeerDependencies:
+ - '@algolia/client-search'
+ - algoliasearch
+ - search-insights
dev: false
- /@algolia/autocomplete-preset-algolia@1.7.4(@algolia/client-search@4.14.2)(algoliasearch@4.14.2):
- resolution: {integrity: sha512-s37hrvLEIfcmKY8VU9LsAXgm2yfmkdHT3DnA3SgHaY93yjZ2qL57wzb5QweVkYuEBZkT2PIREvRoLXC2sxTbpQ==}
+ /@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.14.2)(algoliasearch@4.14.2)(search-insights@2.6.0):
+ resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==}
+ peerDependencies:
+ search-insights: '>= 1 < 3'
+ dependencies:
+ '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.14.2)(algoliasearch@4.14.2)
+ search-insights: 2.6.0
+ transitivePeerDependencies:
+ - '@algolia/client-search'
+ - algoliasearch
+ dev: false
+
+ /@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.14.2)(algoliasearch@4.14.2):
+ resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==}
peerDependencies:
'@algolia/client-search': '>= 4.9.1 < 6'
algoliasearch: '>= 4.9.1 < 6'
dependencies:
- '@algolia/autocomplete-shared': 1.7.4
+ '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.14.2)(algoliasearch@4.14.2)
'@algolia/client-search': 4.14.2
algoliasearch: 4.14.2
dev: false
- /@algolia/autocomplete-shared@1.7.4:
- resolution: {integrity: sha512-2VGCk7I9tA9Ge73Km99+Qg87w0wzW4tgUruvWAn/gfey1ZXgmxZtyIRBebk35R1O8TbK77wujVtCnpsGpRy1kg==}
+ /@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.14.2)(algoliasearch@4.14.2):
+ resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==}
+ peerDependencies:
+ '@algolia/client-search': '>= 4.9.1 < 6'
+ algoliasearch: '>= 4.9.1 < 6'
+ dependencies:
+ '@algolia/client-search': 4.14.2
+ algoliasearch: 4.14.2
dev: false
/@algolia/cache-browser-local-storage@4.14.2:
@@ -892,31 +919,37 @@ packages:
leven: 3.1.0
dev: true
- /@babel/code-frame@7.18.6:
- resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==}
+ /@babel/code-frame@7.22.5:
+ resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/highlight': 7.18.6
+ '@babel/highlight': 7.22.5
+ dev: true
/@babel/compat-data@7.20.5:
resolution: {integrity: sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==}
engines: {node: '>=6.9.0'}
dev: true
- /@babel/core@7.20.12:
- resolution: {integrity: sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==}
+ /@babel/compat-data@7.22.5:
+ resolution: {integrity: sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /@babel/core@7.22.5:
+ resolution: {integrity: sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==}
engines: {node: '>=6.9.0'}
dependencies:
'@ampproject/remapping': 2.2.0
- '@babel/code-frame': 7.18.6
- '@babel/generator': 7.20.14
- '@babel/helper-compilation-targets': 7.20.7(@babel/core@7.20.12)
- '@babel/helper-module-transforms': 7.20.11
- '@babel/helpers': 7.20.13
- '@babel/parser': 7.20.13
- '@babel/template': 7.20.7
- '@babel/traverse': 7.20.13
- '@babel/types': 7.20.7
+ '@babel/code-frame': 7.22.5
+ '@babel/generator': 7.22.5
+ '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.5)
+ '@babel/helper-module-transforms': 7.22.5
+ '@babel/helpers': 7.22.5
+ '@babel/parser': 7.22.5
+ '@babel/template': 7.22.5
+ '@babel/traverse': 7.22.5
+ '@babel/types': 7.22.5
convert-source-map: 1.9.0
debug: 4.3.4
gensync: 1.0.0-beta.2
@@ -926,26 +959,27 @@ packages:
- supports-color
dev: true
- /@babel/eslint-parser@7.19.1(@babel/core@7.20.12)(eslint@8.42.0):
+ /@babel/eslint-parser@7.19.1(@babel/core@7.22.5)(eslint@8.42.0):
resolution: {integrity: sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==}
engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0}
peerDependencies:
'@babel/core': '>=7.11.0'
eslint: ^7.5.0 || ^8.0.0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.22.5
'@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1
eslint: 8.42.0
eslint-visitor-keys: 2.1.0
semver: 6.3.0
dev: true
- /@babel/generator@7.20.14:
- resolution: {integrity: sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==}
+ /@babel/generator@7.22.5:
+ resolution: {integrity: sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.20.7
+ '@babel/types': 7.22.5
'@jridgewell/gen-mapping': 0.3.2
+ '@jridgewell/trace-mapping': 0.3.17
jsesc: 2.5.2
dev: true
@@ -953,68 +987,106 @@ packages:
resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.20.7
+ '@babel/types': 7.22.5
dev: true
- /@babel/helper-builder-binary-assignment-operator-visitor@7.18.9:
- resolution: {integrity: sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==}
+ /@babel/helper-annotate-as-pure@7.22.5:
+ resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/helper-explode-assignable-expression': 7.18.6
- '@babel/types': 7.20.7
+ '@babel/types': 7.22.5
dev: true
- /@babel/helper-compilation-targets@7.20.7(@babel/core@7.20.12):
- resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==}
+ /@babel/helper-builder-binary-assignment-operator-visitor@7.22.5:
+ resolution: {integrity: sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.22.5
+ dev: true
+
+ /@babel/helper-compilation-targets@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/compat-data': 7.20.5
- '@babel/core': 7.20.12
- '@babel/helper-validator-option': 7.18.6
+ '@babel/compat-data': 7.22.5
+ '@babel/core': 7.22.5
+ '@babel/helper-validator-option': 7.22.5
browserslist: 4.21.5
lru-cache: 5.1.1
semver: 6.3.0
dev: true
- /@babel/helper-create-class-features-plugin@7.20.5(@babel/core@7.20.12):
+ /@babel/helper-create-class-features-plugin@7.20.5(@babel/core@7.22.5):
resolution: {integrity: sha512-3RCdA/EmEaikrhayahwToF0fpweU/8o2p8vhc1c/1kftHOdTKuC65kik/TLc+qfbS8JKw4qqJbne4ovICDhmww==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-annotate-as-pure': 7.18.6
- '@babel/helper-environment-visitor': 7.18.9
- '@babel/helper-function-name': 7.19.0
- '@babel/helper-member-expression-to-functions': 7.18.9
- '@babel/helper-optimise-call-expression': 7.18.6
- '@babel/helper-replace-supers': 7.19.1
- '@babel/helper-split-export-declaration': 7.18.6
+ '@babel/core': 7.22.5
+ '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/helper-environment-visitor': 7.22.5
+ '@babel/helper-function-name': 7.22.5
+ '@babel/helper-member-expression-to-functions': 7.22.5
+ '@babel/helper-optimise-call-expression': 7.22.5
+ '@babel/helper-replace-supers': 7.22.5
+ '@babel/helper-split-export-declaration': 7.22.5
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/helper-create-regexp-features-plugin@7.20.5(@babel/core@7.20.12):
+ /@babel/helper-create-class-features-plugin@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-xkb58MyOYIslxu3gKmVXmjTtUPvBU4odYzbiIQbWwLKIHCsx6UGZGX6F1IznMFVnDdirseUZopzN+ZRt8Xb33Q==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.22.5
+ '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/helper-environment-visitor': 7.22.5
+ '@babel/helper-function-name': 7.22.5
+ '@babel/helper-member-expression-to-functions': 7.22.5
+ '@babel/helper-optimise-call-expression': 7.22.5
+ '@babel/helper-replace-supers': 7.22.5
+ '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
+ '@babel/helper-split-export-declaration': 7.22.5
+ semver: 6.3.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/helper-create-regexp-features-plugin@7.20.5(@babel/core@7.22.5):
resolution: {integrity: sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-annotate-as-pure': 7.18.6
+ '@babel/core': 7.22.5
+ '@babel/helper-annotate-as-pure': 7.22.5
regexpu-core: 5.2.2
dev: true
- /@babel/helper-define-polyfill-provider@0.3.3(@babel/core@7.20.12):
- resolution: {integrity: sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==}
+ /@babel/helper-create-regexp-features-plugin@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-1VpEFOIbMRaXyDeUwUfmTIxExLwQ+zkW+Bh5zXpApA3oQedBx9v/updixWxnx/bZpKw7u8VxWjb/qWpIcmPq8A==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.22.5
+ '@babel/helper-annotate-as-pure': 7.22.5
+ regexpu-core: 5.3.2
+ semver: 6.3.0
+ dev: true
+
+ /@babel/helper-define-polyfill-provider@0.4.0(@babel/core@7.22.5):
+ resolution: {integrity: sha512-RnanLx5ETe6aybRi1cO/edaRH+bNYWaryCEmjDDYyNr4wnSzyOp8T0dWipmqVHKEY3AbVKUom50AKSlj1zmKbg==}
peerDependencies:
'@babel/core': ^7.4.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-compilation-targets': 7.20.7(@babel/core@7.20.12)
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.5)
+ '@babel/helper-plugin-utils': 7.22.5
debug: 4.3.4
lodash.debounce: 4.0.8
resolve: 1.22.2
@@ -1023,85 +1095,86 @@ packages:
- supports-color
dev: true
- /@babel/helper-environment-visitor@7.18.9:
- resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==}
+ /@babel/helper-environment-visitor@7.22.5:
+ resolution: {integrity: sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==}
engines: {node: '>=6.9.0'}
dev: true
- /@babel/helper-explode-assignable-expression@7.18.6:
- resolution: {integrity: sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==}
+ /@babel/helper-function-name@7.22.5:
+ resolution: {integrity: sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.20.7
+ '@babel/template': 7.22.5
+ '@babel/types': 7.22.5
dev: true
- /@babel/helper-function-name@7.19.0:
- resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==}
+ /@babel/helper-hoist-variables@7.22.5:
+ resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/template': 7.20.7
- '@babel/types': 7.20.7
+ '@babel/types': 7.22.5
dev: true
- /@babel/helper-hoist-variables@7.18.6:
- resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==}
+ /@babel/helper-member-expression-to-functions@7.22.5:
+ resolution: {integrity: sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.20.7
- dev: true
-
- /@babel/helper-member-expression-to-functions@7.18.9:
- resolution: {integrity: sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/types': 7.20.7
+ '@babel/types': 7.22.5
dev: true
/@babel/helper-module-imports@7.18.6:
resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.20.7
+ '@babel/types': 7.22.5
+ dev: true
- /@babel/helper-module-transforms@7.20.11:
- resolution: {integrity: sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==}
+ /@babel/helper-module-imports@7.22.5:
+ resolution: {integrity: sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/helper-environment-visitor': 7.18.9
- '@babel/helper-module-imports': 7.18.6
- '@babel/helper-simple-access': 7.20.2
- '@babel/helper-split-export-declaration': 7.18.6
- '@babel/helper-validator-identifier': 7.19.1
- '@babel/template': 7.20.7
- '@babel/traverse': 7.20.13
- '@babel/types': 7.20.7
+ '@babel/types': 7.22.5
+ dev: true
+
+ /@babel/helper-module-transforms@7.22.5:
+ resolution: {integrity: sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-environment-visitor': 7.22.5
+ '@babel/helper-module-imports': 7.22.5
+ '@babel/helper-simple-access': 7.22.5
+ '@babel/helper-split-export-declaration': 7.22.5
+ '@babel/helper-validator-identifier': 7.22.5
+ '@babel/template': 7.22.5
+ '@babel/traverse': 7.22.5
+ '@babel/types': 7.22.5
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/helper-optimise-call-expression@7.18.6:
- resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==}
+ /@babel/helper-optimise-call-expression@7.22.5:
+ resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.20.7
+ '@babel/types': 7.22.5
dev: true
- /@babel/helper-plugin-utils@7.20.2:
- resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==}
+ /@babel/helper-plugin-utils@7.22.5:
+ resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==}
engines: {node: '>=6.9.0'}
dev: true
- /@babel/helper-remap-async-to-generator@7.18.9(@babel/core@7.20.12):
- resolution: {integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==}
+ /@babel/helper-remap-async-to-generator@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-cU0Sq1Rf4Z55fgz7haOakIyM7+x/uCFwXpLPaeRzfoUtAEAuUZjZvFPjL/rk5rW693dIgn2hng1W7xbT7lWT4g==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-annotate-as-pure': 7.18.6
- '@babel/helper-environment-visitor': 7.18.9
- '@babel/helper-wrap-function': 7.20.5
- '@babel/types': 7.20.7
+ '@babel/core': 7.22.5
+ '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/helper-environment-visitor': 7.22.5
+ '@babel/helper-wrap-function': 7.22.5
+ '@babel/types': 7.22.5
transitivePeerDependencies:
- supports-color
dev: true
@@ -1110,1099 +1183,1246 @@ packages:
resolution: {integrity: sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/helper-environment-visitor': 7.18.9
- '@babel/helper-member-expression-to-functions': 7.18.9
- '@babel/helper-optimise-call-expression': 7.18.6
- '@babel/traverse': 7.20.13
- '@babel/types': 7.20.7
+ '@babel/helper-environment-visitor': 7.22.5
+ '@babel/helper-member-expression-to-functions': 7.22.5
+ '@babel/helper-optimise-call-expression': 7.22.5
+ '@babel/traverse': 7.22.5
+ '@babel/types': 7.22.5
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/helper-simple-access@7.20.2:
- resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==}
+ /@babel/helper-replace-supers@7.22.5:
+ resolution: {integrity: sha512-aLdNM5I3kdI/V9xGNyKSF3X/gTyMUBohTZ+/3QdQKAA9vxIiy12E+8E2HoOP1/DjeqU+g6as35QHJNMDDYpuCg==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.20.7
+ '@babel/helper-environment-visitor': 7.22.5
+ '@babel/helper-member-expression-to-functions': 7.22.5
+ '@babel/helper-optimise-call-expression': 7.22.5
+ '@babel/template': 7.22.5
+ '@babel/traverse': 7.22.5
+ '@babel/types': 7.22.5
+ transitivePeerDependencies:
+ - supports-color
dev: true
- /@babel/helper-skip-transparent-expression-wrappers@7.20.0:
- resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==}
+ /@babel/helper-simple-access@7.22.5:
+ resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.20.7
+ '@babel/types': 7.22.5
+ dev: true
+
+ /@babel/helper-skip-transparent-expression-wrappers@7.22.5:
+ resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.22.5
dev: true
/@babel/helper-split-export-declaration@7.18.6:
resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.20.7
+ '@babel/types': 7.22.5
dev: true
- /@babel/helper-string-parser@7.19.4:
- resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==}
- engines: {node: '>=6.9.0'}
-
- /@babel/helper-validator-identifier@7.19.1:
- resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==}
- engines: {node: '>=6.9.0'}
-
- /@babel/helper-validator-option@7.18.6:
- resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==}
- engines: {node: '>=6.9.0'}
- dev: true
-
- /@babel/helper-wrap-function@7.20.5:
- resolution: {integrity: sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==}
+ /@babel/helper-split-export-declaration@7.22.5:
+ resolution: {integrity: sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/helper-function-name': 7.19.0
- '@babel/template': 7.20.7
- '@babel/traverse': 7.20.13
- '@babel/types': 7.20.7
+ '@babel/types': 7.22.5
+ dev: true
+
+ /@babel/helper-string-parser@7.22.5:
+ resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /@babel/helper-validator-identifier@7.22.5:
+ resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /@babel/helper-validator-option@7.22.5:
+ resolution: {integrity: sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /@babel/helper-wrap-function@7.22.5:
+ resolution: {integrity: sha512-bYqLIBSEshYcYQyfks8ewYA8S30yaGSeRslcvKMvoUk6HHPySbxHq9YRi6ghhzEU+yhQv9bP/jXnygkStOcqZw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-function-name': 7.22.5
+ '@babel/template': 7.22.5
+ '@babel/traverse': 7.22.5
+ '@babel/types': 7.22.5
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/helpers@7.20.13:
- resolution: {integrity: sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==}
+ /@babel/helpers@7.22.5:
+ resolution: {integrity: sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/template': 7.20.7
- '@babel/traverse': 7.20.13
- '@babel/types': 7.20.7
+ '@babel/template': 7.22.5
+ '@babel/traverse': 7.22.5
+ '@babel/types': 7.22.5
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/highlight@7.18.6:
- resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==}
+ /@babel/highlight@7.22.5:
+ resolution: {integrity: sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/helper-validator-identifier': 7.19.1
+ '@babel/helper-validator-identifier': 7.22.5
chalk: 2.4.2
js-tokens: 4.0.0
+ dev: true
- /@babel/parser@7.20.13:
- resolution: {integrity: sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==}
+ /@babel/parser@7.22.5:
+ resolution: {integrity: sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==}
engines: {node: '>=6.0.0'}
hasBin: true
dependencies:
- '@babel/types': 7.20.7
+ '@babel/types': 7.22.5
dev: true
- /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.18.6(@babel/core@7.20.12):
- resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==}
+ /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.18.9(@babel/core@7.20.12):
- resolution: {integrity: sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==}
+ /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.13.0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/helper-skip-transparent-expression-wrappers': 7.20.0
- '@babel/plugin-proposal-optional-chaining': 7.18.9(@babel/core@7.20.12)
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
+ '@babel/plugin-transform-optional-chaining': 7.22.5(@babel/core@7.22.5)
dev: true
- /@babel/plugin-proposal-async-generator-functions@7.20.1(@babel/core@7.20.12):
- resolution: {integrity: sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-environment-visitor': 7.18.9
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/helper-remap-async-to-generator': 7.18.9(@babel/core@7.20.12)
- '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.20.12)
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /@babel/plugin-proposal-class-properties@7.12.1(@babel/core@7.20.12):
+ /@babel/plugin-proposal-class-properties@7.12.1(@babel/core@7.22.5):
resolution: {integrity: sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-create-class-features-plugin': 7.20.5(@babel/core@7.20.12)
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-create-class-features-plugin': 7.20.5(@babel/core@7.22.5)
+ '@babel/helper-plugin-utils': 7.22.5
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.20.12):
+ /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.22.5):
resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-create-class-features-plugin': 7.20.5(@babel/core@7.20.12)
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-create-class-features-plugin': 7.20.5(@babel/core@7.22.5)
+ '@babel/helper-plugin-utils': 7.22.5
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/plugin-proposal-class-static-block@7.18.6(@babel/core@7.20.12):
- resolution: {integrity: sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.12.0
- dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-create-class-features-plugin': 7.20.5(@babel/core@7.20.12)
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.20.12)
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /@babel/plugin-proposal-decorators@7.20.5(@babel/core@7.20.12):
+ /@babel/plugin-proposal-decorators@7.20.5(@babel/core@7.22.5):
resolution: {integrity: sha512-Lac7PpRJXcC3s9cKsBfl+uc+DYXU5FD06BrTFunQO6QIQT+DwyzDPURAowI3bcvD1dZF/ank1Z5rstUJn3Hn4Q==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-create-class-features-plugin': 7.20.5(@babel/core@7.20.12)
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-create-class-features-plugin': 7.20.5(@babel/core@7.22.5)
+ '@babel/helper-plugin-utils': 7.22.5
'@babel/helper-replace-supers': 7.19.1
'@babel/helper-split-export-declaration': 7.18.6
- '@babel/plugin-syntax-decorators': 7.19.0(@babel/core@7.20.12)
+ '@babel/plugin-syntax-decorators': 7.19.0(@babel/core@7.22.5)
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/plugin-proposal-dynamic-import@7.18.6(@babel/core@7.20.12):
- resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.20.12)
- dev: true
-
- /@babel/plugin-proposal-export-namespace-from@7.18.9(@babel/core@7.20.12):
- resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.20.12)
- dev: true
-
- /@babel/plugin-proposal-json-strings@7.18.6(@babel/core@7.20.12):
- resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.20.12)
- dev: true
-
- /@babel/plugin-proposal-logical-assignment-operators@7.18.9(@babel/core@7.20.12):
- resolution: {integrity: sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.20.12)
- dev: true
-
- /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.20.12):
- resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.20.12)
- dev: true
-
- /@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.20.12):
- resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.20.12)
- dev: true
-
- /@babel/plugin-proposal-object-rest-spread@7.20.2(@babel/core@7.20.12):
+ /@babel/plugin-proposal-object-rest-spread@7.20.2(@babel/core@7.22.5):
resolution: {integrity: sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/compat-data': 7.20.5
- '@babel/core': 7.20.12
- '@babel/helper-compilation-targets': 7.20.7(@babel/core@7.20.12)
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.20.12)
- '@babel/plugin-transform-parameters': 7.20.5(@babel/core@7.20.12)
+ '@babel/core': 7.22.5
+ '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.5)
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.5)
+ '@babel/plugin-transform-parameters': 7.20.5(@babel/core@7.22.5)
dev: true
- /@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.20.12):
- resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==}
+ /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.22.5):
+ resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.20.12)
+ '@babel/core': 7.22.5
dev: true
- /@babel/plugin-proposal-optional-chaining@7.18.9(@babel/core@7.20.12):
- resolution: {integrity: sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/helper-skip-transparent-expression-wrappers': 7.20.0
- '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.20.12)
- dev: true
-
- /@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.20.12):
- resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-create-class-features-plugin': 7.20.5(@babel/core@7.20.12)
- '@babel/helper-plugin-utils': 7.20.2
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /@babel/plugin-proposal-private-property-in-object@7.20.5(@babel/core@7.20.12):
- resolution: {integrity: sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-annotate-as-pure': 7.18.6
- '@babel/helper-create-class-features-plugin': 7.20.5(@babel/core@7.20.12)
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.20.12)
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.20.12):
+ /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.22.5):
resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==}
engines: {node: '>=4'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-create-regexp-features-plugin': 7.20.5(@babel/core@7.20.12)
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.22.5)
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.20.12):
+ /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.22.5):
resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.20.12):
+ /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.22.5):
resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.20.12):
+ /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.22.5):
resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.20.12):
+ /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.22.5):
resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-decorators@7.19.0(@babel/core@7.20.12):
+ /@babel/plugin-syntax-decorators@7.19.0(@babel/core@7.22.5):
resolution: {integrity: sha512-xaBZUEDntt4faL1yN8oIFlhfXeQAWJW7CLKYsHTUqriCUbj8xOra8bfxxKGi/UwExPFBuPdH4XfHc9rGQhrVkQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.20.12):
+ /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.22.5):
resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.20.12):
+ /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.22.5):
resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-flow@7.18.6(@babel/core@7.20.12):
+ /@babel/plugin-syntax-flow@7.18.6(@babel/core@7.22.5):
resolution: {integrity: sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-import-assertions@7.20.0(@babel/core@7.20.12):
- resolution: {integrity: sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==}
+ /@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.20.12):
+ /@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.22.5):
resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.20.12):
+ /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.22.5):
resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-jsx@7.18.6(@babel/core@7.20.12):
+ /@babel/plugin-syntax-jsx@7.18.6(@babel/core@7.22.5):
resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.20.12):
+ /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.22.5):
resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.20.12):
+ /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.22.5):
resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.20.12):
+ /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.22.5):
resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.20.12):
+ /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.22.5):
resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.20.12):
+ /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.22.5):
resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.20.12):
+ /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.22.5):
resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.20.12):
+ /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.22.5):
resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.20.12):
+ /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.22.5):
resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-syntax-typescript@7.20.0(@babel/core@7.20.12):
- resolution: {integrity: sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==}
+ /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-arrow-functions@7.18.6(@babel/core@7.20.12):
- resolution: {integrity: sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==}
+ /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.22.5):
+ resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.22.5
+ '@babel/helper-create-regexp-features-plugin': 7.20.5(@babel/core@7.22.5)
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-transform-arrow-functions@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-async-to-generator@7.18.6(@babel/core@7.20.12):
- resolution: {integrity: sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==}
+ /@babel/plugin-transform-async-generator-functions@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-gGOEvFzm3fWoyD5uZq7vVTD57pPJ3PczPUD/xCFGjzBpUosnklmXyKnGQbbbGs1NPNPskFex0j93yKbHt0cHyg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-module-imports': 7.18.6
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/helper-remap-async-to-generator': 7.18.9(@babel/core@7.20.12)
+ '@babel/core': 7.22.5
+ '@babel/helper-environment-visitor': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-remap-async-to-generator': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.5)
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/plugin-transform-block-scoped-functions@7.18.6(@babel/core@7.20.12):
- resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==}
+ /@babel/plugin-transform-async-to-generator@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-module-imports': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-remap-async-to-generator': 7.22.5(@babel/core@7.22.5)
+ transitivePeerDependencies:
+ - supports-color
dev: true
- /@babel/plugin-transform-block-scoping@7.20.5(@babel/core@7.20.12):
- resolution: {integrity: sha512-WvpEIW9Cbj9ApF3yJCjIEEf1EiNJLtXagOrL5LNWEZOo3jv8pmPoYTSNJQvqej8OavVlgOoOPw6/htGZro6IkA==}
+ /@babel/plugin-transform-block-scoped-functions@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-classes@7.20.2(@babel/core@7.20.12):
- resolution: {integrity: sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==}
+ /@babel/plugin-transform-block-scoping@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-annotate-as-pure': 7.18.6
- '@babel/helper-compilation-targets': 7.20.7(@babel/core@7.20.12)
- '@babel/helper-environment-visitor': 7.18.9
- '@babel/helper-function-name': 7.19.0
- '@babel/helper-optimise-call-expression': 7.18.6
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/helper-replace-supers': 7.19.1
- '@babel/helper-split-export-declaration': 7.18.6
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-transform-class-properties@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.5
+ '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.22.5)
+ '@babel/helper-plugin-utils': 7.22.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/plugin-transform-class-static-block@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.12.0
+ dependencies:
+ '@babel/core': 7.22.5
+ '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.22.5)
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.5)
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/plugin-transform-classes@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-2edQhLfibpWpsVBx2n/GKOz6JdGQvLruZQfGr9l1qes2KQaWswjBzhQF7UDUZMNaMMQeYnQzxwOMPsbYF7wqPQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.5
+ '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.5)
+ '@babel/helper-environment-visitor': 7.22.5
+ '@babel/helper-function-name': 7.22.5
+ '@babel/helper-optimise-call-expression': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-replace-supers': 7.22.5
+ '@babel/helper-split-export-declaration': 7.22.5
globals: 11.12.0
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/plugin-transform-computed-properties@7.18.9(@babel/core@7.20.12):
- resolution: {integrity: sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==}
+ /@babel/plugin-transform-computed-properties@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/template': 7.22.5
dev: true
- /@babel/plugin-transform-destructuring@7.20.2(@babel/core@7.20.12):
- resolution: {integrity: sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw==}
+ /@babel/plugin-transform-destructuring@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-dotall-regex@7.18.6(@babel/core@7.20.12):
- resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==}
+ /@babel/plugin-transform-dotall-regex@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-create-regexp-features-plugin': 7.20.5(@babel/core@7.20.12)
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.22.5)
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-duplicate-keys@7.18.9(@babel/core@7.20.12):
- resolution: {integrity: sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==}
+ /@babel/plugin-transform-duplicate-keys@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-exponentiation-operator@7.18.6(@babel/core@7.20.12):
- resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==}
+ /@babel/plugin-transform-dynamic-import@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-builder-binary-assignment-operator-visitor': 7.18.9
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.5)
dev: true
- /@babel/plugin-transform-flow-strip-types@7.19.0(@babel/core@7.20.12):
+ /@babel/plugin-transform-exponentiation-operator@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.5
+ '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-transform-export-namespace-from@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.5)
+ dev: true
+
+ /@babel/plugin-transform-flow-strip-types@7.19.0(@babel/core@7.22.5):
resolution: {integrity: sha512-sgeMlNaQVbCSpgLSKP4ZZKfsJVnFnNQlUSk6gPYzR/q7tzCgQF2t8RBKAP6cKJeZdveei7Q7Jm527xepI8lNLg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-syntax-flow': 7.18.6(@babel/core@7.20.12)
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-flow': 7.18.6(@babel/core@7.22.5)
dev: true
- /@babel/plugin-transform-for-of@7.18.8(@babel/core@7.20.12):
- resolution: {integrity: sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==}
+ /@babel/plugin-transform-for-of@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-function-name@7.18.9(@babel/core@7.20.12):
- resolution: {integrity: sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==}
+ /@babel/plugin-transform-function-name@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-compilation-targets': 7.20.7(@babel/core@7.20.12)
- '@babel/helper-function-name': 7.19.0
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.5)
+ '@babel/helper-function-name': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-literals@7.18.9(@babel/core@7.20.12):
- resolution: {integrity: sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==}
+ /@babel/plugin-transform-json-strings@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.5)
dev: true
- /@babel/plugin-transform-member-expression-literals@7.18.6(@babel/core@7.20.12):
- resolution: {integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==}
+ /@babel/plugin-transform-literals@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-modules-amd@7.19.6(@babel/core@7.20.12):
- resolution: {integrity: sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==}
+ /@babel/plugin-transform-logical-assignment-operators@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-module-transforms': 7.20.11
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.5)
+ dev: true
+
+ /@babel/plugin-transform-member-expression-literals@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-transform-modules-amd@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.5
+ '@babel/helper-module-transforms': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/plugin-transform-modules-commonjs@7.19.6(@babel/core@7.20.12):
- resolution: {integrity: sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==}
+ /@babel/plugin-transform-modules-commonjs@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-module-transforms': 7.20.11
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/helper-simple-access': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-module-transforms': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-simple-access': 7.22.5
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/plugin-transform-modules-systemjs@7.19.6(@babel/core@7.20.12):
- resolution: {integrity: sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==}
+ /@babel/plugin-transform-modules-systemjs@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-hoist-variables': 7.18.6
- '@babel/helper-module-transforms': 7.20.11
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/helper-validator-identifier': 7.19.1
+ '@babel/core': 7.22.5
+ '@babel/helper-hoist-variables': 7.22.5
+ '@babel/helper-module-transforms': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-validator-identifier': 7.22.5
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/plugin-transform-modules-umd@7.18.6(@babel/core@7.20.12):
- resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==}
+ /@babel/plugin-transform-modules-umd@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-module-transforms': 7.20.11
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-module-transforms': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/plugin-transform-named-capturing-groups-regex@7.20.5(@babel/core@7.20.12):
- resolution: {integrity: sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==}
+ /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-create-regexp-features-plugin': 7.20.5(@babel/core@7.20.12)
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.22.5)
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-new-target@7.18.6(@babel/core@7.20.12):
- resolution: {integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==}
+ /@babel/plugin-transform-new-target@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-object-assign@7.18.6(@babel/core@7.20.12):
+ /@babel/plugin-transform-nullish-coalescing-operator@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.5)
+ dev: true
+
+ /@babel/plugin-transform-numeric-separator@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.5)
+ dev: true
+
+ /@babel/plugin-transform-object-assign@7.18.6(@babel/core@7.22.5):
resolution: {integrity: sha512-mQisZ3JfqWh2gVXvfqYCAAyRs6+7oev+myBsTwW5RnPhYXOTuCEw2oe3YgxlXMViXUS53lG8koulI7mJ+8JE+A==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-object-super@7.18.6(@babel/core@7.20.12):
- resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==}
+ /@babel/plugin-transform-object-rest-spread@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/helper-replace-supers': 7.19.1
+ '@babel/compat-data': 7.22.5
+ '@babel/core': 7.22.5
+ '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.5)
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.5)
+ '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.22.5)
+ dev: true
+
+ /@babel/plugin-transform-object-super@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-replace-supers': 7.22.5
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/plugin-transform-parameters@7.20.5(@babel/core@7.20.12):
+ /@babel/plugin-transform-optional-catch-binding@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.5)
+ dev: true
+
+ /@babel/plugin-transform-optional-chaining@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-AconbMKOMkyG+xCng2JogMCDcqW8wedQAqpVIL4cOSescZ7+iW8utC6YDZLMCSUIReEA733gzRSaOSXMAt/4WQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.5)
+ dev: true
+
+ /@babel/plugin-transform-parameters@7.20.5(@babel/core@7.22.5):
resolution: {integrity: sha512-h7plkOmcndIUWXZFLgpbrh2+fXAi47zcUX7IrOQuZdLD0I0KvjJ6cvo3BEcAOsDOcZhVKGJqv07mkSqK0y2isQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-property-literals@7.18.6(@babel/core@7.20.12):
- resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==}
+ /@babel/plugin-transform-parameters@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-react-display-name@7.18.6(@babel/core@7.20.12):
+ /@babel/plugin-transform-private-methods@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.5
+ '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.22.5)
+ '@babel/helper-plugin-utils': 7.22.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/plugin-transform-private-property-in-object@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.5
+ '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.22.5)
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.5)
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/plugin-transform-property-literals@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-transform-react-display-name@7.18.6(@babel/core@7.22.5):
resolution: {integrity: sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-react-jsx-development@7.18.6(@babel/core@7.20.12):
+ /@babel/plugin-transform-react-jsx-development@7.18.6(@babel/core@7.22.5):
resolution: {integrity: sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/plugin-transform-react-jsx': 7.19.0(@babel/core@7.20.12)
+ '@babel/core': 7.22.5
+ '@babel/plugin-transform-react-jsx': 7.19.0(@babel/core@7.22.5)
dev: true
- /@babel/plugin-transform-react-jsx@7.19.0(@babel/core@7.20.12):
+ /@babel/plugin-transform-react-jsx@7.19.0(@babel/core@7.22.5):
resolution: {integrity: sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.22.5
'@babel/helper-annotate-as-pure': 7.18.6
'@babel/helper-module-imports': 7.18.6
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.20.12)
- '@babel/types': 7.20.7
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.5)
+ '@babel/types': 7.22.5
dev: true
- /@babel/plugin-transform-react-pure-annotations@7.18.6(@babel/core@7.20.12):
+ /@babel/plugin-transform-react-pure-annotations@7.18.6(@babel/core@7.22.5):
resolution: {integrity: sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-annotate-as-pure': 7.18.6
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-regenerator@7.20.5(@babel/core@7.20.12):
+ /@babel/plugin-transform-regenerator@7.20.5(@babel/core@7.22.5):
resolution: {integrity: sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
regenerator-transform: 0.15.1
dev: true
- /@babel/plugin-transform-reserved-words@7.18.6(@babel/core@7.20.12):
- resolution: {integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==}
+ /@babel/plugin-transform-regenerator@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ regenerator-transform: 0.15.1
dev: true
- /@babel/plugin-transform-shorthand-properties@7.18.6(@babel/core@7.20.12):
- resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==}
+ /@babel/plugin-transform-reserved-words@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-spread@7.19.0(@babel/core@7.20.12):
- resolution: {integrity: sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==}
+ /@babel/plugin-transform-shorthand-properties@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/helper-skip-transparent-expression-wrappers': 7.20.0
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-sticky-regex@7.18.6(@babel/core@7.20.12):
- resolution: {integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==}
+ /@babel/plugin-transform-spread@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
dev: true
- /@babel/plugin-transform-template-literals@7.18.9(@babel/core@7.20.12):
- resolution: {integrity: sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==}
+ /@babel/plugin-transform-sticky-regex@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-typeof-symbol@7.18.9(@babel/core@7.20.12):
- resolution: {integrity: sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==}
+ /@babel/plugin-transform-template-literals@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-typescript@7.20.2(@babel/core@7.20.12):
- resolution: {integrity: sha512-jvS+ngBfrnTUBfOQq8NfGnSbF9BrqlR6hjJ2yVxMkmO5nL/cdifNbI30EfjRlN4g5wYWNnMPyj5Sa6R1pbLeag==}
+ /@babel/plugin-transform-typeof-symbol@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-create-class-features-plugin': 7.20.5(@babel/core@7.20.12)
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-syntax-typescript': 7.20.0(@babel/core@7.20.12)
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-transform-typescript@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-SMubA9S7Cb5sGSFFUlqxyClTA9zWJ8qGQrppNUm05LtFuN1ELRFNndkix4zUJrC9F+YivWwa1dHMSyo0e0N9dA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.22.5
+ '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/helper-create-class-features-plugin': 7.22.5(@babel/core@7.22.5)
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.22.5)
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/plugin-transform-unicode-escapes@7.18.10(@babel/core@7.20.12):
- resolution: {integrity: sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==}
+ /@babel/plugin-transform-unicode-escapes@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/plugin-transform-unicode-regex@7.18.6(@babel/core@7.20.12):
- resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==}
+ /@babel/plugin-transform-unicode-property-regex@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-create-regexp-features-plugin': 7.20.5(@babel/core@7.20.12)
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/core': 7.22.5
+ '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.22.5)
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/preset-env@7.20.2(@babel/core@7.20.12):
- resolution: {integrity: sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==}
+ /@babel/plugin-transform-unicode-regex@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/compat-data': 7.20.5
- '@babel/core': 7.20.12
- '@babel/helper-compilation-targets': 7.20.7(@babel/core@7.20.12)
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/helper-validator-option': 7.18.6
- '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6(@babel/core@7.20.12)
- '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.18.9(@babel/core@7.20.12)
- '@babel/plugin-proposal-async-generator-functions': 7.20.1(@babel/core@7.20.12)
- '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.20.12)
- '@babel/plugin-proposal-class-static-block': 7.18.6(@babel/core@7.20.12)
- '@babel/plugin-proposal-dynamic-import': 7.18.6(@babel/core@7.20.12)
- '@babel/plugin-proposal-export-namespace-from': 7.18.9(@babel/core@7.20.12)
- '@babel/plugin-proposal-json-strings': 7.18.6(@babel/core@7.20.12)
- '@babel/plugin-proposal-logical-assignment-operators': 7.18.9(@babel/core@7.20.12)
- '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.20.12)
- '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.20.12)
- '@babel/plugin-proposal-object-rest-spread': 7.20.2(@babel/core@7.20.12)
- '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.20.12)
- '@babel/plugin-proposal-optional-chaining': 7.18.9(@babel/core@7.20.12)
- '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.20.12)
- '@babel/plugin-proposal-private-property-in-object': 7.20.5(@babel/core@7.20.12)
- '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.20.12)
- '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.20.12)
- '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.20.12)
- '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.20.12)
- '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.20.12)
- '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.20.12)
- '@babel/plugin-syntax-import-assertions': 7.20.0(@babel/core@7.20.12)
- '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.20.12)
- '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.20.12)
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.20.12)
- '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.20.12)
- '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.20.12)
- '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.20.12)
- '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.20.12)
- '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.20.12)
- '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.20.12)
- '@babel/plugin-transform-arrow-functions': 7.18.6(@babel/core@7.20.12)
- '@babel/plugin-transform-async-to-generator': 7.18.6(@babel/core@7.20.12)
- '@babel/plugin-transform-block-scoped-functions': 7.18.6(@babel/core@7.20.12)
- '@babel/plugin-transform-block-scoping': 7.20.5(@babel/core@7.20.12)
- '@babel/plugin-transform-classes': 7.20.2(@babel/core@7.20.12)
- '@babel/plugin-transform-computed-properties': 7.18.9(@babel/core@7.20.12)
- '@babel/plugin-transform-destructuring': 7.20.2(@babel/core@7.20.12)
- '@babel/plugin-transform-dotall-regex': 7.18.6(@babel/core@7.20.12)
- '@babel/plugin-transform-duplicate-keys': 7.18.9(@babel/core@7.20.12)
- '@babel/plugin-transform-exponentiation-operator': 7.18.6(@babel/core@7.20.12)
- '@babel/plugin-transform-for-of': 7.18.8(@babel/core@7.20.12)
- '@babel/plugin-transform-function-name': 7.18.9(@babel/core@7.20.12)
- '@babel/plugin-transform-literals': 7.18.9(@babel/core@7.20.12)
- '@babel/plugin-transform-member-expression-literals': 7.18.6(@babel/core@7.20.12)
- '@babel/plugin-transform-modules-amd': 7.19.6(@babel/core@7.20.12)
- '@babel/plugin-transform-modules-commonjs': 7.19.6(@babel/core@7.20.12)
- '@babel/plugin-transform-modules-systemjs': 7.19.6(@babel/core@7.20.12)
- '@babel/plugin-transform-modules-umd': 7.18.6(@babel/core@7.20.12)
- '@babel/plugin-transform-named-capturing-groups-regex': 7.20.5(@babel/core@7.20.12)
- '@babel/plugin-transform-new-target': 7.18.6(@babel/core@7.20.12)
- '@babel/plugin-transform-object-super': 7.18.6(@babel/core@7.20.12)
- '@babel/plugin-transform-parameters': 7.20.5(@babel/core@7.20.12)
- '@babel/plugin-transform-property-literals': 7.18.6(@babel/core@7.20.12)
- '@babel/plugin-transform-regenerator': 7.20.5(@babel/core@7.20.12)
- '@babel/plugin-transform-reserved-words': 7.18.6(@babel/core@7.20.12)
- '@babel/plugin-transform-shorthand-properties': 7.18.6(@babel/core@7.20.12)
- '@babel/plugin-transform-spread': 7.19.0(@babel/core@7.20.12)
- '@babel/plugin-transform-sticky-regex': 7.18.6(@babel/core@7.20.12)
- '@babel/plugin-transform-template-literals': 7.18.9(@babel/core@7.20.12)
- '@babel/plugin-transform-typeof-symbol': 7.18.9(@babel/core@7.20.12)
- '@babel/plugin-transform-unicode-escapes': 7.18.10(@babel/core@7.20.12)
- '@babel/plugin-transform-unicode-regex': 7.18.6(@babel/core@7.20.12)
- '@babel/preset-modules': 0.1.5(@babel/core@7.20.12)
- '@babel/types': 7.20.7
- babel-plugin-polyfill-corejs2: 0.3.3(@babel/core@7.20.12)
- babel-plugin-polyfill-corejs3: 0.6.0(@babel/core@7.20.12)
- babel-plugin-polyfill-regenerator: 0.4.1(@babel/core@7.20.12)
- core-js-compat: 3.26.1
+ '@babel/core': 7.22.5
+ '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.22.5)
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/plugin-transform-unicode-sets-regex@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.22.5
+ '@babel/helper-create-regexp-features-plugin': 7.22.5(@babel/core@7.22.5)
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
+ /@babel/preset-env@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-fj06hw89dpiZzGZtxn+QybifF07nNiZjZ7sazs2aVDcysAZVGjW7+7iFYxg6GLNM47R/thYfLdrXc+2f11Vi9A==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/compat-data': 7.22.5
+ '@babel/core': 7.22.5
+ '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.5)
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-validator-option': 7.22.5
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.22.5)
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.5)
+ '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.22.5)
+ '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.5)
+ '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.5)
+ '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.5)
+ '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.22.5)
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.5)
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.5)
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.5)
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.5)
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.5)
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.5)
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.5)
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.5)
+ '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.22.5)
+ '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.22.5)
+ '@babel/plugin-transform-arrow-functions': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-async-generator-functions': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-async-to-generator': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-block-scoped-functions': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-block-scoping': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-class-properties': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-class-static-block': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-classes': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-computed-properties': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-destructuring': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-duplicate-keys': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-dynamic-import': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-exponentiation-operator': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-export-namespace-from': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-for-of': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-function-name': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-json-strings': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-literals': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-logical-assignment-operators': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-member-expression-literals': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-modules-amd': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-modules-commonjs': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-modules-systemjs': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-modules-umd': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-new-target': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-nullish-coalescing-operator': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-numeric-separator': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-object-rest-spread': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-object-super': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-optional-catch-binding': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-optional-chaining': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-parameters': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-private-methods': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-private-property-in-object': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-property-literals': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-regenerator': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-reserved-words': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-shorthand-properties': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-spread': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-sticky-regex': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-template-literals': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-typeof-symbol': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-unicode-escapes': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-unicode-property-regex': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-unicode-regex': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-unicode-sets-regex': 7.22.5(@babel/core@7.22.5)
+ '@babel/preset-modules': 0.1.5(@babel/core@7.22.5)
+ '@babel/types': 7.22.5
+ babel-plugin-polyfill-corejs2: 0.4.3(@babel/core@7.22.5)
+ babel-plugin-polyfill-corejs3: 0.8.1(@babel/core@7.22.5)
+ babel-plugin-polyfill-regenerator: 0.5.0(@babel/core@7.22.5)
+ core-js-compat: 3.31.0
semver: 6.3.0
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/preset-flow@7.18.6(@babel/core@7.20.12):
+ /@babel/preset-flow@7.18.6(@babel/core@7.22.5):
resolution: {integrity: sha512-E7BDhL64W6OUqpuyHnSroLnqyRTcG6ZdOBl1OKI/QK/HJfplqK/S3sq1Cckx7oTodJ5yOXyfw7rEADJ6UjoQDQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/helper-validator-option': 7.18.6
- '@babel/plugin-transform-flow-strip-types': 7.19.0(@babel/core@7.20.12)
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-validator-option': 7.22.5
+ '@babel/plugin-transform-flow-strip-types': 7.19.0(@babel/core@7.22.5)
dev: true
- /@babel/preset-modules@0.1.5(@babel/core@7.20.12):
+ /@babel/preset-modules@0.1.5(@babel/core@7.22.5):
resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.20.12)
- '@babel/plugin-transform-dotall-regex': 7.18.6(@babel/core@7.20.12)
- '@babel/types': 7.20.7
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.22.5)
+ '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.22.5)
+ '@babel/types': 7.22.5
esutils: 2.0.3
dev: true
- /@babel/preset-react@7.18.6(@babel/core@7.20.12):
+ /@babel/preset-react@7.18.6(@babel/core@7.22.5):
resolution: {integrity: sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/helper-validator-option': 7.18.6
- '@babel/plugin-transform-react-display-name': 7.18.6(@babel/core@7.20.12)
- '@babel/plugin-transform-react-jsx': 7.19.0(@babel/core@7.20.12)
- '@babel/plugin-transform-react-jsx-development': 7.18.6(@babel/core@7.20.12)
- '@babel/plugin-transform-react-pure-annotations': 7.18.6(@babel/core@7.20.12)
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-validator-option': 7.22.5
+ '@babel/plugin-transform-react-display-name': 7.18.6(@babel/core@7.22.5)
+ '@babel/plugin-transform-react-jsx': 7.19.0(@babel/core@7.22.5)
+ '@babel/plugin-transform-react-jsx-development': 7.18.6(@babel/core@7.22.5)
+ '@babel/plugin-transform-react-pure-annotations': 7.18.6(@babel/core@7.22.5)
dev: true
- /@babel/preset-typescript@7.18.6(@babel/core@7.20.12):
- resolution: {integrity: sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==}
+ /@babel/preset-typescript@7.22.5(@babel/core@7.22.5):
+ resolution: {integrity: sha512-YbPaal9LxztSGhmndR46FmAbkJ/1fAsw293tSU+I5E5h+cnJ3d4GTwyUgGYmOXJYdGA+uNePle4qbaRzj2NISQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-plugin-utils': 7.20.2
- '@babel/helper-validator-option': 7.18.6
- '@babel/plugin-transform-typescript': 7.20.2(@babel/core@7.20.12)
+ '@babel/core': 7.22.5
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-validator-option': 7.22.5
+ '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-modules-commonjs': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-transform-typescript': 7.22.5(@babel/core@7.22.5)
transitivePeerDependencies:
- supports-color
dev: true
+ /@babel/regjsgen@0.8.0:
+ resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==}
+ dev: true
+
/@babel/runtime-corejs3@7.20.6:
resolution: {integrity: sha512-tqeujPiuEfcH067mx+7otTQWROVMKHXEaOQcAeNV5dDdbPWvPcFA8/W9LXw2NfjNmOetqLl03dfnG2WALPlsRQ==}
engines: {node: '>=6.9.0'}
@@ -2217,45 +2437,68 @@ packages:
dependencies:
regenerator-runtime: 0.13.11
- /@babel/template@7.20.7:
- resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==}
+ /@babel/template@7.22.5:
+ resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/code-frame': 7.18.6
- '@babel/parser': 7.20.13
- '@babel/types': 7.20.7
+ '@babel/code-frame': 7.22.5
+ '@babel/parser': 7.22.5
+ '@babel/types': 7.22.5
dev: true
- /@babel/traverse@7.20.13:
- resolution: {integrity: sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==}
+ /@babel/traverse@7.22.5:
+ resolution: {integrity: sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/code-frame': 7.18.6
- '@babel/generator': 7.20.14
- '@babel/helper-environment-visitor': 7.18.9
- '@babel/helper-function-name': 7.19.0
- '@babel/helper-hoist-variables': 7.18.6
- '@babel/helper-split-export-declaration': 7.18.6
- '@babel/parser': 7.20.13
- '@babel/types': 7.20.7
+ '@babel/code-frame': 7.22.5
+ '@babel/generator': 7.22.5
+ '@babel/helper-environment-visitor': 7.22.5
+ '@babel/helper-function-name': 7.22.5
+ '@babel/helper-hoist-variables': 7.22.5
+ '@babel/helper-split-export-declaration': 7.22.5
+ '@babel/parser': 7.22.5
+ '@babel/types': 7.22.5
debug: 4.3.4
globals: 11.12.0
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/types@7.20.7:
- resolution: {integrity: sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==}
+ /@babel/types@7.22.5:
+ resolution: {integrity: sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/helper-string-parser': 7.19.4
- '@babel/helper-validator-identifier': 7.19.1
+ '@babel/helper-string-parser': 7.22.5
+ '@babel/helper-validator-identifier': 7.22.5
to-fast-properties: 2.0.0
+ dev: true
/@bcoe/v8-coverage@0.2.3:
resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
dev: true
+ /@calcom/embed-core@1.2.1:
+ resolution: {integrity: sha512-KDL1gjWiixDmaLRT/Ps7Y2MgXfe1NPkVr9UG/VkkJnIVxBz8M0tLBdGTRZpLzwVpsN7VsK/Wb1p9dZ8SYTKitw==}
+ dev: false
+
+ /@calcom/embed-react@1.1.1(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-K27CYyrHKzkc7kWNhLnrZPh0+uJy2VAab9Z8e6jKylYNWBraiAb9zyx8hOFcAMpHHOHXb1XBN76HLm3Ug7Js3A==}
+ peerDependencies:
+ react: ^18.2.0
+ react-dom: ^18.2.0
+ dependencies:
+ '@calcom/embed-core': 1.2.1
+ '@calcom/embed-snippet': 1.0.9
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: false
+
+ /@calcom/embed-snippet@1.0.9:
+ resolution: {integrity: sha512-x8/RZxYUQ3uPZButjHWiZ5Kz00+Y9v+NK2XEklnKC2JslDEzRU+KV/g8Lk5aF/xweHSioKwVLa5xBmrfR9deKg==}
+ dependencies:
+ '@calcom/embed-core': 1.2.1
+ dev: false
+
/@changesets/apply-release-plan@6.1.3:
resolution: {integrity: sha512-ECDNeoc3nfeAe1jqJb5aFQX7CqzQhD2klXRez2JDb/aVpGUbX673HgKrnrgJRuQR/9f2TtLoYIzrGB9qwD77mg==}
dependencies:
@@ -2440,8 +2683,8 @@ packages:
prettier: 2.8.8
dev: true
- /@corex/deepmerge@4.0.37:
- resolution: {integrity: sha512-PX90bEnrLdxd5e6rSFWsghExMuSw0Uov3fWJuuaoFuUQIS/446diu/4seExK5b+43L+SOBbd2uBGwYUkG1JfCw==}
+ /@corex/deepmerge@4.0.43:
+ resolution: {integrity: sha512-N8uEMrMPL0cu/bdboEWpQYb/0i2K5Qn8eCsxzOmxSggJbbQte7ljMRoXm917AbntqTGOzdTu+vP3KOOzoC70HQ==}
dev: false
/@discoveryjs/json-ext@0.5.7:
@@ -2449,12 +2692,12 @@ packages:
engines: {node: '>=10.0.0'}
dev: true
- /@docsearch/css@3.3.3:
- resolution: {integrity: sha512-6SCwI7P8ao+se1TUsdZ7B4XzL+gqeQZnBc+2EONZlcVa0dVrk0NjETxozFKgMv0eEGH8QzP1fkN+A1rH61l4eg==}
+ /@docsearch/css@3.5.1:
+ resolution: {integrity: sha512-2Pu9HDg/uP/IT10rbQ+4OrTQuxIWdKVUEdcw9/w7kZJv9NeHS6skJx1xuRiFyoGKwAzcHXnLp7csE99sj+O1YA==}
dev: false
- /@docsearch/react@3.3.3(@algolia/client-search@4.14.2)(@types/react@18.0.35)(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-pLa0cxnl+G0FuIDuYlW+EBK6Rw2jwLw9B1RHIeS4N4s2VhsfJ/wzeCi3CWcs5yVfxLd5ZK50t//TMA5e79YT7Q==}
+ /@docsearch/react@3.5.1(@algolia/client-search@4.14.2)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.6.0):
+ resolution: {integrity: sha512-t5mEODdLzZq4PTFAm/dvqcvZFdPDMdfPE5rJS5SC8OUq9mPzxEy6b+9THIqNM9P0ocCb4UC5jqBrxKclnuIbzQ==}
peerDependencies:
'@types/react': '>= 16.8.0 < 19.0.0'
react: '>= 16.8.0 < 19.0.0'
@@ -2467,116 +2710,16 @@ packages:
react-dom:
optional: true
dependencies:
- '@algolia/autocomplete-core': 1.7.4
- '@algolia/autocomplete-preset-algolia': 1.7.4(@algolia/client-search@4.14.2)(algoliasearch@4.14.2)
- '@docsearch/css': 3.3.3
- '@types/react': 18.0.35
+ '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.14.2)(algoliasearch@4.14.2)(search-insights@2.6.0)
+ '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.14.2)(algoliasearch@4.14.2)
+ '@docsearch/css': 3.5.1
+ '@types/react': 18.2.7
algoliasearch: 4.14.2
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
transitivePeerDependencies:
- '@algolia/client-search'
- dev: false
-
- /@emotion/cache@10.0.29:
- resolution: {integrity: sha512-fU2VtSVlHiF27empSbxi1O2JFdNWZO+2NFHfwO0pxgTep6Xa3uGb+3pVKfLww2l/IBGLNEZl5Xf/++A4wAYDYQ==}
- dependencies:
- '@emotion/sheet': 0.9.4
- '@emotion/stylis': 0.8.5
- '@emotion/utils': 0.11.3
- '@emotion/weak-memoize': 0.2.5
- dev: false
-
- /@emotion/core@10.3.1(react@18.2.0):
- resolution: {integrity: sha512-447aUEjPIm0MnE6QYIaFz9VQOHSXf4Iu6EWOIqq11EAPqinkSZmfymPTmlOE3QjLv846lH4JVZBUOtwGbuQoww==}
- peerDependencies:
- react: '>=16.3.0'
- dependencies:
- '@babel/runtime': 7.21.0
- '@emotion/cache': 10.0.29
- '@emotion/css': 10.0.27
- '@emotion/serialize': 0.11.16
- '@emotion/sheet': 0.9.4
- '@emotion/utils': 0.11.3
- react: 18.2.0
- dev: false
-
- /@emotion/css@10.0.27:
- resolution: {integrity: sha512-6wZjsvYeBhyZQYNrGoR5yPMYbMBNEnanDrqmsqS1mzDm1cOTu12shvl2j4QHNS36UaTE0USIJawCH9C8oW34Zw==}
- dependencies:
- '@emotion/serialize': 0.11.16
- '@emotion/utils': 0.11.3
- babel-plugin-emotion: 10.2.2
- dev: false
-
- /@emotion/hash@0.8.0:
- resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==}
- dev: false
-
- /@emotion/is-prop-valid@0.8.8:
- resolution: {integrity: sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==}
- dependencies:
- '@emotion/memoize': 0.7.4
- dev: false
-
- /@emotion/memoize@0.7.4:
- resolution: {integrity: sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==}
- dev: false
-
- /@emotion/serialize@0.11.16:
- resolution: {integrity: sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg==}
- dependencies:
- '@emotion/hash': 0.8.0
- '@emotion/memoize': 0.7.4
- '@emotion/unitless': 0.7.5
- '@emotion/utils': 0.11.3
- csstype: 2.6.21
- dev: false
-
- /@emotion/sheet@0.9.4:
- resolution: {integrity: sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA==}
- dev: false
-
- /@emotion/styled-base@10.3.0(@emotion/core@10.3.1)(react@18.2.0):
- resolution: {integrity: sha512-PBRqsVKR7QRNkmfH78hTSSwHWcwDpecH9W6heujWAcyp2wdz/64PP73s7fWS1dIPm8/Exc8JAzYS8dEWXjv60w==}
- peerDependencies:
- '@emotion/core': ^10.0.28
- react: '>=16.3.0'
- dependencies:
- '@babel/runtime': 7.21.0
- '@emotion/core': 10.3.1(react@18.2.0)
- '@emotion/is-prop-valid': 0.8.8
- '@emotion/serialize': 0.11.16
- '@emotion/utils': 0.11.3
- react: 18.2.0
- dev: false
-
- /@emotion/styled@10.3.0(@emotion/core@10.3.1)(react@18.2.0):
- resolution: {integrity: sha512-GgcUpXBBEU5ido+/p/mCT2/Xx+Oqmp9JzQRuC+a4lYM4i4LBBn/dWvc0rQ19N9ObA8/T4NWMrPNe79kMBDJqoQ==}
- peerDependencies:
- '@emotion/core': ^10.0.27
- react: '>=16.3.0'
- dependencies:
- '@emotion/core': 10.3.1(react@18.2.0)
- '@emotion/styled-base': 10.3.0(@emotion/core@10.3.1)(react@18.2.0)
- babel-plugin-emotion: 10.2.2
- react: 18.2.0
- dev: false
-
- /@emotion/stylis@0.8.5:
- resolution: {integrity: sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==}
- dev: false
-
- /@emotion/unitless@0.7.5:
- resolution: {integrity: sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==}
- dev: false
-
- /@emotion/utils@0.11.3:
- resolution: {integrity: sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==}
- dev: false
-
- /@emotion/weak-memoize@0.2.5:
- resolution: {integrity: sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==}
+ - search-insights
dev: false
/@esbuild-kit/cjs-loader@2.4.2:
@@ -2609,6 +2752,15 @@ packages:
dev: true
optional: true
+ /@esbuild/android-arm64@0.18.10:
+ resolution: {integrity: sha512-ynm4naLbNbK0ajf9LUWtQB+6Vfg1Z/AplArqr4tGebC00Z6m9Y91OVIcjDa461wGcZwcaHYaZAab4yJxfhisTQ==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/android-arm@0.15.16:
resolution: {integrity: sha512-nyB6CH++2mSgx3GbnrJsZSxzne5K0HMyNIWafDHqYy7IwxFc4fd/CgHVZXr8Eh+Q3KbIAcAe3vGyqIPhGblvMQ==}
engines: {node: '>=12'}
@@ -2627,6 +2779,15 @@ packages:
dev: true
optional: true
+ /@esbuild/android-arm@0.18.10:
+ resolution: {integrity: sha512-3KClmVNd+Fku82uZJz5C4Rx8m1PPmWUFz5Zkw8jkpZPOmsq+EG1TTOtw1OXkHuX3WczOFQigrtf60B1ijKwNsg==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/android-x64@0.17.11:
resolution: {integrity: sha512-3PL3HKtsDIXGQcSCKtWD/dy+mgc4p2Tvo2qKgKHj9Yf+eniwFnuoQ0OUhlSfAEpKAFzF9N21Nwgnap6zy3L3MQ==}
engines: {node: '>=12'}
@@ -2636,6 +2797,15 @@ packages:
dev: true
optional: true
+ /@esbuild/android-x64@0.18.10:
+ resolution: {integrity: sha512-vFfXj8P9Yfjh54yqUDEHKzqzYuEfPyAOl3z7R9hjkwt+NCvbn9VMxX+IILnAfdImRBfYVItgSUsqGKhJFnBwZw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/darwin-arm64@0.17.11:
resolution: {integrity: sha512-pJ950bNKgzhkGNO3Z9TeHzIFtEyC2GDQL3wxkMApDEghYx5Qers84UTNc1bAxWbRkuJOgmOha5V0WUeh8G+YGw==}
engines: {node: '>=12'}
@@ -2645,6 +2815,15 @@ packages:
dev: true
optional: true
+ /@esbuild/darwin-arm64@0.18.10:
+ resolution: {integrity: sha512-k2OJQ7ZxE6sVc91+MQeZH9gFeDAH2uIYALPAwTjTCvcPy9Dzrf7V7gFUQPYkn09zloWhQ+nvxWHia2x2ZLR0sQ==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/darwin-x64@0.17.11:
resolution: {integrity: sha512-iB0dQkIHXyczK3BZtzw1tqegf0F0Ab5texX2TvMQjiJIWXAfM4FQl7D909YfXWnB92OQz4ivBYQ2RlxBJrMJOw==}
engines: {node: '>=12'}
@@ -2654,6 +2833,15 @@ packages:
dev: true
optional: true
+ /@esbuild/darwin-x64@0.18.10:
+ resolution: {integrity: sha512-tnz/mdZk1L1Z3WpGjin/L2bKTe8/AKZpI8fcCLtH+gq8WXWsCNJSxlesAObV4qbtTl6pG5vmqFXfWUQ5hV8PAQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/freebsd-arm64@0.17.11:
resolution: {integrity: sha512-7EFzUADmI1jCHeDRGKgbnF5sDIceZsQGapoO6dmw7r/ZBEKX7CCDnIz8m9yEclzr7mFsd+DyasHzpjfJnmBB1Q==}
engines: {node: '>=12'}
@@ -2663,6 +2851,15 @@ packages:
dev: true
optional: true
+ /@esbuild/freebsd-arm64@0.18.10:
+ resolution: {integrity: sha512-QJluV0LwBrbHnYYwSKC+K8RGz0g/EyhpQH1IxdoFT0nM7PfgjE+aS8wxq/KFEsU0JkL7U/EEKd3O8xVBxXb2aA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/freebsd-x64@0.17.11:
resolution: {integrity: sha512-iPgenptC8i8pdvkHQvXJFzc1eVMR7W2lBPrTE6GbhR54sLcF42mk3zBOjKPOodezzuAz/KSu8CPyFSjcBMkE9g==}
engines: {node: '>=12'}
@@ -2672,6 +2869,15 @@ packages:
dev: true
optional: true
+ /@esbuild/freebsd-x64@0.18.10:
+ resolution: {integrity: sha512-Hi/ycUkS6KTw+U9G5PK5NoK7CZboicaKUSVs0FSiPNtuCTzK6HNM4DIgniH7hFaeuszDS9T4dhAHWiLSt/Y5Ng==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/linux-arm64@0.17.11:
resolution: {integrity: sha512-Qxth3gsWWGKz2/qG2d5DsW/57SeA2AmpSMhdg9TSB5Svn2KDob3qxfQSkdnWjSd42kqoxIPy3EJFs+6w1+6Qjg==}
engines: {node: '>=12'}
@@ -2681,6 +2887,15 @@ packages:
dev: true
optional: true
+ /@esbuild/linux-arm64@0.18.10:
+ resolution: {integrity: sha512-Nz6XcfRBOO7jSrVpKAyEyFOPGhySPNlgumSDhWAspdQQ11ub/7/NZDMhWDFReE9QH/SsCOCLQbdj0atAk/HMOQ==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/linux-arm@0.17.11:
resolution: {integrity: sha512-M9iK/d4lgZH0U5M1R2p2gqhPV/7JPJcRz+8O8GBKVgqndTzydQ7B2XGDbxtbvFkvIs53uXTobOhv+RyaqhUiMg==}
engines: {node: '>=12'}
@@ -2690,6 +2905,15 @@ packages:
dev: true
optional: true
+ /@esbuild/linux-arm@0.18.10:
+ resolution: {integrity: sha512-HfFoxY172tVHPIvJy+FHxzB4l8xU7e5cxmNS11cQ2jt4JWAukn/7LXaPdZid41UyTweqa4P/1zs201gRGCTwHw==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/linux-ia32@0.17.11:
resolution: {integrity: sha512-dB1nGaVWtUlb/rRDHmuDQhfqazWE0LMro/AIbT2lWM3CDMHJNpLckH+gCddQyhhcLac2OYw69ikUMO34JLt3wA==}
engines: {node: '>=12'}
@@ -2699,6 +2923,15 @@ packages:
dev: true
optional: true
+ /@esbuild/linux-ia32@0.18.10:
+ resolution: {integrity: sha512-otMdmSmkMe+pmiP/bZBjfphyAsTsngyT9RCYwoFzqrveAbux9nYitDTpdgToG0Z0U55+PnH654gCH2GQ1aB6Yw==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/linux-loong64@0.15.16:
resolution: {integrity: sha512-SDLfP1uoB0HZ14CdVYgagllgrG7Mdxhkt4jDJOKl/MldKrkQ6vDJMZKl2+5XsEY/Lzz37fjgLQoJBGuAw/x8kQ==}
engines: {node: '>=12'}
@@ -2717,6 +2950,15 @@ packages:
dev: true
optional: true
+ /@esbuild/linux-loong64@0.18.10:
+ resolution: {integrity: sha512-t8tjFuON1koxskzQ4VFoh0T5UDUMiLYjwf9Wktd0tx8AoK6xgU+5ubKOpWpcnhEQ2tESS5u0v6QuN8PX/ftwcQ==}
+ engines: {node: '>=12'}
+ cpu: [loong64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/linux-mips64el@0.17.11:
resolution: {integrity: sha512-cGeGNdQxqY8qJwlYH1BP6rjIIiEcrM05H7k3tR7WxOLmD1ZxRMd6/QIOWMb8mD2s2YJFNRuNQ+wjMhgEL2oCEw==}
engines: {node: '>=12'}
@@ -2726,6 +2968,15 @@ packages:
dev: true
optional: true
+ /@esbuild/linux-mips64el@0.18.10:
+ resolution: {integrity: sha512-+dUkcVzcfEJHz3HEnVpIJu8z8Wdn2n/nWMWdl6FVPFGJAVySO4g3+XPzNKFytVFwf8hPVDwYXzVcu8GMFqsqZw==}
+ engines: {node: '>=12'}
+ cpu: [mips64el]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/linux-ppc64@0.17.11:
resolution: {integrity: sha512-BdlziJQPW/bNe0E8eYsHB40mYOluS+jULPCjlWiHzDgr+ZBRXPtgMV1nkLEGdpjrwgmtkZHEGEPaKdS/8faLDA==}
engines: {node: '>=12'}
@@ -2735,6 +2986,15 @@ packages:
dev: true
optional: true
+ /@esbuild/linux-ppc64@0.18.10:
+ resolution: {integrity: sha512-sO3PjjxEGy+PY2qkGe2gwJbXdZN9wAYpVBZWFD0AwAoKuXRkWK0/zaMQ5ekUFJDRDCRm8x5U0Axaub7ynH/wVg==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/linux-riscv64@0.17.11:
resolution: {integrity: sha512-MDLwQbtF+83oJCI1Cixn68Et/ME6gelmhssPebC40RdJaect+IM+l7o/CuG0ZlDs6tZTEIoxUe53H3GmMn8oMA==}
engines: {node: '>=12'}
@@ -2744,6 +3004,15 @@ packages:
dev: true
optional: true
+ /@esbuild/linux-riscv64@0.18.10:
+ resolution: {integrity: sha512-JDtdbJg3yjDeXLv4lZYE1kiTnxv73/8cbPHY9T/dUKi8rYOM/k5b3W4UJLMUksuQ6nTm5c89W1nADsql6FW75A==}
+ engines: {node: '>=12'}
+ cpu: [riscv64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/linux-s390x@0.17.11:
resolution: {integrity: sha512-4N5EMESvws0Ozr2J94VoUD8HIRi7X0uvUv4c0wpTHZyZY9qpaaN7THjosdiW56irQ4qnJ6Lsc+i+5zGWnyqWqQ==}
engines: {node: '>=12'}
@@ -2753,6 +3022,15 @@ packages:
dev: true
optional: true
+ /@esbuild/linux-s390x@0.18.10:
+ resolution: {integrity: sha512-NLuSKcp8WckjD2a7z5kzLiCywFwBTMlIxDNuud1AUGVuwBBJSkuubp6cNjJ0p5c6CZaA3QqUGwjHJBiG1SoOFw==}
+ engines: {node: '>=12'}
+ cpu: [s390x]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/linux-x64@0.17.11:
resolution: {integrity: sha512-rM/v8UlluxpytFSmVdbCe1yyKQd/e+FmIJE2oPJvbBo+D0XVWi1y/NQ4iTNx+436WmDHQBjVLrbnAQLQ6U7wlw==}
engines: {node: '>=12'}
@@ -2762,6 +3040,15 @@ packages:
dev: true
optional: true
+ /@esbuild/linux-x64@0.18.10:
+ resolution: {integrity: sha512-wj2KRsCsFusli+6yFgNO/zmmLslislAWryJnodteRmGej7ZzinIbMdsyp13rVGde88zxJd5vercNYK9kuvlZaQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/netbsd-x64@0.17.11:
resolution: {integrity: sha512-4WaAhuz5f91h3/g43VBGdto1Q+X7VEZfpcWGtOFXnggEuLvjV+cP6DyLRU15IjiU9fKLLk41OoJfBFN5DhPvag==}
engines: {node: '>=12'}
@@ -2771,6 +3058,15 @@ packages:
dev: true
optional: true
+ /@esbuild/netbsd-x64@0.18.10:
+ resolution: {integrity: sha512-pQ9QqxEPI3cVRZyUtCoZxhZK3If+7RzR8L2yz2+TDzdygofIPOJFaAPkEJ5rYIbUO101RaiYxfdOBahYexLk5A==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [netbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/openbsd-x64@0.17.11:
resolution: {integrity: sha512-UBj135Nx4FpnvtE+C8TWGp98oUgBcmNmdYgl5ToKc0mBHxVVqVE7FUS5/ELMImOp205qDAittL6Ezhasc2Ev/w==}
engines: {node: '>=12'}
@@ -2780,6 +3076,15 @@ packages:
dev: true
optional: true
+ /@esbuild/openbsd-x64@0.18.10:
+ resolution: {integrity: sha512-k8GTIIW9I8pEEfoOUm32TpPMgSg06JhL5DO+ql66aLTkOQUs0TxCA67Wi7pv6z8iF8STCGcNbm3UWFHLuci+ag==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [openbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/sunos-x64@0.17.11:
resolution: {integrity: sha512-1/gxTifDC9aXbV2xOfCbOceh5AlIidUrPsMpivgzo8P8zUtczlq1ncFpeN1ZyQJ9lVs2hILy1PG5KPp+w8QPPg==}
engines: {node: '>=12'}
@@ -2789,6 +3094,15 @@ packages:
dev: true
optional: true
+ /@esbuild/sunos-x64@0.18.10:
+ resolution: {integrity: sha512-vIGYJIdEI6d4JBucAx8py792G8J0GP40qSH+EvSt80A4zvGd6jph+5t1g+eEXcS2aRpgZw6CrssNCFZxTdEsxw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [sunos]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/win32-arm64@0.17.11:
resolution: {integrity: sha512-vtSfyx5yRdpiOW9yp6Ax0zyNOv9HjOAw8WaZg3dF5djEHKKm3UnoohftVvIJtRh0Ec7Hso0RIdTqZvPXJ7FdvQ==}
engines: {node: '>=12'}
@@ -2798,6 +3112,15 @@ packages:
dev: true
optional: true
+ /@esbuild/win32-arm64@0.18.10:
+ resolution: {integrity: sha512-kRhNcMZFGMW+ZHCarAM1ypr8OZs0k688ViUCetVCef9p3enFxzWeBg9h/575Y0nsFu0ZItluCVF5gMR2pwOEpA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/win32-ia32@0.17.11:
resolution: {integrity: sha512-GFPSLEGQr4wHFTiIUJQrnJKZhZjjq4Sphf+mM76nQR6WkQn73vm7IsacmBRPkALfpOCHsopSvLgqdd4iUW2mYw==}
engines: {node: '>=12'}
@@ -2807,6 +3130,15 @@ packages:
dev: true
optional: true
+ /@esbuild/win32-ia32@0.18.10:
+ resolution: {integrity: sha512-AR9PX1whYaYh9p0EOaKna0h48F/A101Mt/ag72+kMkkBZXPQ7cjbz2syXI/HI3OlBdUytSdHneljfjvUoqwqiQ==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@esbuild/win32-x64@0.17.11:
resolution: {integrity: sha512-N9vXqLP3eRL8BqSy8yn4Y98cZI2pZ8fyuHx6lKjiG2WABpT2l01TXdzq5Ma2ZUBzfB7tx5dXVhge8X9u0S70ZQ==}
engines: {node: '>=12'}
@@ -2816,15 +3148,14 @@ packages:
dev: true
optional: true
- /@eslint-community/eslint-utils@4.2.0(eslint@8.37.0):
- resolution: {integrity: sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- peerDependencies:
- eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
- dependencies:
- eslint: 8.37.0
- eslint-visitor-keys: 3.4.1
- dev: false
+ /@esbuild/win32-x64@0.18.10:
+ resolution: {integrity: sha512-5sTkYhAGHNRr6bVf4RM0PsscqVr6/DBYdrlMh168oph3usid3lKHcHEEHmr34iZ9GHeeg2juFOxtpl6XyC3tpw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
/@eslint-community/eslint-utils@4.2.0(eslint@8.41.0):
resolution: {integrity: sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ==}
@@ -2845,27 +3176,19 @@ packages:
eslint-visitor-keys: 3.4.1
dev: true
+ /@eslint-community/eslint-utils@4.2.0(eslint@8.43.0):
+ resolution: {integrity: sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
+ dependencies:
+ eslint: 8.43.0
+ eslint-visitor-keys: 3.4.1
+
/@eslint-community/regexpp@4.4.0:
resolution: {integrity: sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
- /@eslint/eslintrc@2.0.2:
- resolution: {integrity: sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- dependencies:
- ajv: 6.12.6
- debug: 4.3.4
- espree: 9.5.2
- globals: 13.19.0
- ignore: 5.2.1
- import-fresh: 3.3.0
- js-yaml: 4.1.0
- minimatch: 3.1.2
- strip-json-comments: 3.1.1
- transitivePeerDependencies:
- - supports-color
- dev: false
-
/@eslint/eslintrc@2.0.3:
resolution: {integrity: sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -2882,11 +3205,6 @@ packages:
transitivePeerDependencies:
- supports-color
- /@eslint/js@8.37.0:
- resolution: {integrity: sha512-x5vzdtOOGgFVDCUs81QRB2+liax8rFg3+7hqM+QhBG0/G3F1ZsoYl97UrqgHgQ9KKT7G6c4V+aTUCgu/n22v1A==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- dev: false
-
/@eslint/js@8.41.0:
resolution: {integrity: sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -2896,6 +3214,10 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
+ /@eslint/js@8.43.0:
+ resolution: {integrity: sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
/@floating-ui/core@0.7.3:
resolution: {integrity: sha512-buc8BXHmG9l82+OQXOFU3Kr2XQx9ys01U/Q9HMIrZ300iLc8HLMgh7dcCqgYzAzf4BkoQvDcXf5Y+CuEZ5JBYg==}
dev: false
@@ -2945,8 +3267,8 @@ packages:
resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==}
dev: true
- /@headlessui/react@1.7.14(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-znzdq9PG8rkwcu9oQ2FwIy0ZFtP9Z7ycS+BAqJ3R5EIqC/0bJGvhT7193rFf+45i9nnPsYvCQVW4V/bB9Xc+gA==}
+ /@headlessui/react@1.7.15(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-OTO0XtoRQ6JPB1cKNFYBZv2Q0JMqMGNhYP1CjPvcJvjz8YGokz8oAj89HIYZGN0gZzn/4kk9iUpmMF4Q21Gsqw==}
engines: {node: '>=10'}
peerDependencies:
react: ^16 || ^17 || ^18
@@ -2982,7 +3304,6 @@ packages:
minimatch: 3.1.2
transitivePeerDependencies:
- supports-color
- dev: true
/@humanwhocodes/config-array@0.11.8:
resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==}
@@ -3034,7 +3355,7 @@ packages:
engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
dependencies:
'@jest/types': 27.5.1
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
chalk: 4.1.2
jest-message-util: 27.5.1
jest-util: 27.5.1
@@ -3046,7 +3367,7 @@ packages:
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@jest/types': 29.5.0
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
chalk: 4.1.2
jest-message-util: 29.5.0
jest-util: 29.5.0
@@ -3067,14 +3388,14 @@ packages:
'@jest/test-result': 29.5.0
'@jest/transform': 29.5.0
'@jest/types': 29.5.0
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
ansi-escapes: 4.3.2
chalk: 4.1.2
ci-info: 3.7.0
exit: 0.1.2
graceful-fs: 4.2.10
jest-changed-files: 29.5.0
- jest-config: 29.5.0(@types/node@20.2.3)
+ jest-config: 29.5.0(@types/node@20.3.2)
jest-haste-map: 29.5.0
jest-message-util: 29.5.0
jest-regex-util: 29.4.3
@@ -3101,7 +3422,7 @@ packages:
dependencies:
'@jest/fake-timers': 29.5.0
'@jest/types': 29.5.0
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
jest-mock: 29.5.0
dev: true
@@ -3128,7 +3449,7 @@ packages:
dependencies:
'@jest/types': 29.5.0
'@sinonjs/fake-timers': 10.0.2
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
jest-message-util: 29.5.0
jest-mock: 29.5.0
jest-util: 29.5.0
@@ -3161,7 +3482,7 @@ packages:
'@jest/transform': 29.5.0
'@jest/types': 29.5.0
'@jridgewell/trace-mapping': 0.3.17
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
chalk: 4.1.2
collect-v8-coverage: 1.0.1
exit: 0.1.2
@@ -3233,7 +3554,7 @@ packages:
resolution: {integrity: sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==}
engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.22.5
'@jest/types': 27.5.1
babel-plugin-istanbul: 6.1.1
chalk: 4.1.2
@@ -3256,7 +3577,7 @@ packages:
resolution: {integrity: sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.22.5
'@jest/types': 29.5.0
'@jridgewell/trace-mapping': 0.3.17
babel-plugin-istanbul: 6.1.1
@@ -3281,7 +3602,7 @@ packages:
dependencies:
'@types/istanbul-lib-coverage': 2.0.4
'@types/istanbul-reports': 3.0.1
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
'@types/yargs': 16.0.5
chalk: 4.1.2
dev: true
@@ -3293,7 +3614,7 @@ packages:
'@jest/schemas': 29.4.3
'@types/istanbul-lib-coverage': 2.0.4
'@types/istanbul-reports': 3.0.1
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
'@types/yargs': 17.0.24
chalk: 4.1.2
dev: true
@@ -3663,7 +3984,7 @@ packages:
react: '>=16'
dependencies:
'@types/mdx': 2.0.3
- '@types/react': 18.2.5
+ '@types/react': 18.2.7
react: 18.2.0
dev: false
@@ -3671,10 +3992,6 @@ packages:
resolution: {integrity: sha512-+Mq3TtpkeeKFZanPturjcXt+KHfKYnLlX6jMLyCrmpq6OOs4i1GqBOAauSkii9QeKCMTYzGppar21JU57b/GEA==}
dev: false
- /@next/env@13.3.0:
- resolution: {integrity: sha512-AjppRV4uG3No7L1plinoTQETH+j2F10TEnrMfzbTUYwze5sBUPveeeBAPZPm8OkJZ1epq9OyYKhZrvbD6/9HCQ==}
- dev: false
-
/@next/env@13.4.3:
resolution: {integrity: sha512-pa1ErjyFensznttAk3EIv77vFbfSYT6cLzVRK5jx4uiRuCQo+m2wCFAREaHKIy63dlgvOyMlzh6R8Inu8H3KrQ==}
dev: false
@@ -3683,6 +4000,10 @@ packages:
resolution: {integrity: sha512-q/y7VZj/9YpgzDe64Zi6rY1xPizx80JjlU2BTevlajtaE3w1LqweH1gGgxou2N7hdFosXHjGrI4OUvtFXXhGLg==}
dev: false
+ /@next/env@13.4.7:
+ resolution: {integrity: sha512-ZlbiFulnwiFsW9UV1ku1OvX/oyIPLtMk9p/nnvDSwI0s7vSoZdRtxXNsaO+ZXrLv/pMbXVGq4lL8TbY9iuGmVw==}
+ dev: false
+
/@next/eslint-plugin-next@13.4.3:
resolution: {integrity: sha512-5B0uOnh7wyUY9vNNdIA6NUvWozhrZaTMZOzdirYAefqD0ZBK5C/h3+KMYdCKrR7JrXGvVpWnHtv54b3dCzwICA==}
dependencies:
@@ -3695,8 +4016,8 @@ packages:
glob: 7.1.7
dev: false
- /@next/mdx@13.3.0(@mdx-js/loader@2.3.0)(@mdx-js/react@2.3.0):
- resolution: {integrity: sha512-qrf1K/dTzC9LLPFyacNJBqmnT7BQphrvRDlXb6sfjgMK1iBaKpTmR1PETBT4CSaHzjRY9JjuRftZeYzWGJq3TQ==}
+ /@next/mdx@13.4.7(@mdx-js/loader@2.3.0)(@mdx-js/react@2.3.0):
+ resolution: {integrity: sha512-btb4ym4Gz72ACQjSlK+AsJRx5IYcS9O0FgUWK4/+9AJxLQtr5XNOAfpy1ioLqXG7REVvwWAea4z6Hp0agwc+Vg==}
peerDependencies:
'@mdx-js/loader': '>=0.15.0'
'@mdx-js/react': '>=0.15.0'
@@ -3738,15 +4059,6 @@ packages:
dev: false
optional: true
- /@next/swc-darwin-arm64@13.3.0:
- resolution: {integrity: sha512-DmIQCNq6JtccLPPBzf0dgh2vzMWt5wjxbP71pCi5EWpWYE3MsP6FcRXi4MlAmFNDQOfcFXR2r7kBeG1LpZUh1w==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [darwin]
- requiresBuild: true
- dev: false
- optional: true
-
/@next/swc-darwin-arm64@13.4.3:
resolution: {integrity: sha512-yx18udH/ZmR4Bw4M6lIIPE3JxsAZwo04iaucEfA2GMt1unXr2iodHUX/LAKNyi6xoLP2ghi0E+Xi1f4Qb8f1LQ==}
engines: {node: '>= 10'}
@@ -3765,17 +4077,17 @@ packages:
dev: false
optional: true
- /@next/swc-darwin-x64@13.2.4:
- resolution: {integrity: sha512-a6LBuoYGcFOPGd4o8TPo7wmv5FnMr+Prz+vYHopEDuhDoMSHOnC+v+Ab4D7F0NMZkvQjEJQdJS3rqgFhlZmKlw==}
+ /@next/swc-darwin-arm64@13.4.7:
+ resolution: {integrity: sha512-VZTxPv1b59KGiv/pZHTO5Gbsdeoxcj2rU2cqJu03btMhHpn3vwzEK0gUSVC/XW96aeGO67X+cMahhwHzef24/w==}
engines: {node: '>= 10'}
- cpu: [x64]
+ cpu: [arm64]
os: [darwin]
requiresBuild: true
dev: false
optional: true
- /@next/swc-darwin-x64@13.3.0:
- resolution: {integrity: sha512-oQoqFa88OGgwnYlnAGHVct618FRI/749se0N3S8t9Bzdv5CRbscnO0RcX901+YnNK4Q6yeiizfgO3b7kogtsZg==}
+ /@next/swc-darwin-x64@13.2.4:
+ resolution: {integrity: sha512-a6LBuoYGcFOPGd4o8TPo7wmv5FnMr+Prz+vYHopEDuhDoMSHOnC+v+Ab4D7F0NMZkvQjEJQdJS3rqgFhlZmKlw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
@@ -3801,6 +4113,15 @@ packages:
dev: false
optional: true
+ /@next/swc-darwin-x64@13.4.7:
+ resolution: {integrity: sha512-gO2bw+2Ymmga+QYujjvDz9955xvYGrWofmxTq7m70b9pDPvl7aDFABJOZ2a8SRCuSNB5mXU8eTOmVVwyp/nAew==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: false
+ optional: true
+
/@next/swc-freebsd-x64@13.2.4:
resolution: {integrity: sha512-kkbzKVZGPaXRBPisoAQkh3xh22r+TD+5HwoC5bOkALraJ0dsOQgSMAvzMXKsN3tMzJUPS0tjtRf1cTzrQ0I5vQ==}
engines: {node: '>= 10'}
@@ -3828,15 +4149,6 @@ packages:
dev: false
optional: true
- /@next/swc-linux-arm64-gnu@13.3.0:
- resolution: {integrity: sha512-Wzz2p/WqAJUqTVoLo6H18WMeAXo3i+9DkPDae4oQG8LMloJ3if4NEZTnOnTUlro6cq+S/W4pTGa97nWTrOjbGw==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [linux]
- requiresBuild: true
- dev: false
- optional: true
-
/@next/swc-linux-arm64-gnu@13.4.3:
resolution: {integrity: sha512-aBvtry4bxJ1xwKZ/LVPeBGBwWVwxa4bTnNkRRw6YffJnn/f4Tv4EGDPaVeYHZGQVA56wsGbtA6nZMuWs/EIk4Q==}
engines: {node: '>= 10'}
@@ -3855,8 +4167,8 @@ packages:
dev: false
optional: true
- /@next/swc-linux-arm64-musl@13.2.4:
- resolution: {integrity: sha512-8rXr3WfmqSiYkb71qzuDP6I6R2T2tpkmf83elDN8z783N9nvTJf2E7eLx86wu2OJCi4T05nuxCsh4IOU3LQ5xw==}
+ /@next/swc-linux-arm64-gnu@13.4.7:
+ resolution: {integrity: sha512-6cqp3vf1eHxjIDhEOc7Mh/s8z1cwc/l5B6ZNkOofmZVyu1zsbEM5Hmx64s12Rd9AYgGoiCz4OJ4M/oRnkE16/Q==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
@@ -3864,8 +4176,8 @@ packages:
dev: false
optional: true
- /@next/swc-linux-arm64-musl@13.3.0:
- resolution: {integrity: sha512-xPVrIQOQo9WXJYgmoTlMnAD/HlR/1e1ZIWGbwIzEirXBVBqMARUulBEIKdC19zuvoJ477qZJgBDCKtKEykCpyQ==}
+ /@next/swc-linux-arm64-musl@13.2.4:
+ resolution: {integrity: sha512-8rXr3WfmqSiYkb71qzuDP6I6R2T2tpkmf83elDN8z783N9nvTJf2E7eLx86wu2OJCi4T05nuxCsh4IOU3LQ5xw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
@@ -3891,17 +4203,17 @@ packages:
dev: false
optional: true
- /@next/swc-linux-x64-gnu@13.2.4:
- resolution: {integrity: sha512-Ngxh51zGSlYJ4EfpKG4LI6WfquulNdtmHg1yuOYlaAr33KyPJp4HeN/tivBnAHcZkoNy0hh/SbwDyCnz5PFJQQ==}
+ /@next/swc-linux-arm64-musl@13.4.7:
+ resolution: {integrity: sha512-T1kD2FWOEy5WPidOn1si0rYmWORNch4a/NR52Ghyp4q7KyxOCuiOfZzyhVC5tsLIBDH3+cNdB5DkD9afpNDaOw==}
engines: {node: '>= 10'}
- cpu: [x64]
+ cpu: [arm64]
os: [linux]
requiresBuild: true
dev: false
optional: true
- /@next/swc-linux-x64-gnu@13.3.0:
- resolution: {integrity: sha512-jOFlpGuPD7W2tuXVJP4wt9a3cpNxWAPcloq5EfMJRiXsBBOjLVFZA7boXYxEBzSVgUiVVr1V9T0HFM7pULJ1qA==}
+ /@next/swc-linux-x64-gnu@13.2.4:
+ resolution: {integrity: sha512-Ngxh51zGSlYJ4EfpKG4LI6WfquulNdtmHg1yuOYlaAr33KyPJp4HeN/tivBnAHcZkoNy0hh/SbwDyCnz5PFJQQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
@@ -3927,8 +4239,8 @@ packages:
dev: false
optional: true
- /@next/swc-linux-x64-musl@13.2.4:
- resolution: {integrity: sha512-gOvwIYoSxd+j14LOcvJr+ekd9fwYT1RyMAHOp7znA10+l40wkFiMONPLWiZuHxfRk+Dy7YdNdDh3ImumvL6VwA==}
+ /@next/swc-linux-x64-gnu@13.4.7:
+ resolution: {integrity: sha512-zaEC+iEiAHNdhl6fuwl0H0shnTzQoAoJiDYBUze8QTntE/GNPfTYpYboxF5LRYIjBwETUatvE0T64W6SKDipvg==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
@@ -3936,8 +4248,8 @@ packages:
dev: false
optional: true
- /@next/swc-linux-x64-musl@13.3.0:
- resolution: {integrity: sha512-2OwKlzaBgmuet9XYHc3KwsEilzb04F540rlRXkAcjMHL7eCxB7uZIGtsVvKOnQLvC/elrUegwSw1+5f7WmfyOw==}
+ /@next/swc-linux-x64-musl@13.2.4:
+ resolution: {integrity: sha512-gOvwIYoSxd+j14LOcvJr+ekd9fwYT1RyMAHOp7znA10+l40wkFiMONPLWiZuHxfRk+Dy7YdNdDh3ImumvL6VwA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
@@ -3963,17 +4275,17 @@ packages:
dev: false
optional: true
- /@next/swc-win32-arm64-msvc@13.2.4:
- resolution: {integrity: sha512-q3NJzcfClgBm4HvdcnoEncmztxrA5GXqKeiZ/hADvC56pwNALt3ngDC6t6qr1YW9V/EPDxCYeaX4zYxHciW4Dw==}
+ /@next/swc-linux-x64-musl@13.4.7:
+ resolution: {integrity: sha512-X6r12F8d8SKAtYJqLZBBMIwEqcTRvUdVm+xIq+l6pJqlgT2tNsLLf2i5Cl88xSsIytBICGsCNNHd+siD2fbWBA==}
engines: {node: '>= 10'}
- cpu: [arm64]
- os: [win32]
+ cpu: [x64]
+ os: [linux]
requiresBuild: true
dev: false
optional: true
- /@next/swc-win32-arm64-msvc@13.3.0:
- resolution: {integrity: sha512-OeHiA6YEvndxT46g+rzFK/MQTfftKxJmzslERMu9LDdC6Kez0bdrgEYed5eXFK2Z1viKZJCGRlhd06rBusyztA==}
+ /@next/swc-win32-arm64-msvc@13.2.4:
+ resolution: {integrity: sha512-q3NJzcfClgBm4HvdcnoEncmztxrA5GXqKeiZ/hADvC56pwNALt3ngDC6t6qr1YW9V/EPDxCYeaX4zYxHciW4Dw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
@@ -3999,17 +4311,17 @@ packages:
dev: false
optional: true
- /@next/swc-win32-ia32-msvc@13.2.4:
- resolution: {integrity: sha512-/eZ5ncmHUYtD2fc6EUmAIZlAJnVT2YmxDsKs1Ourx0ttTtvtma/WKlMV5NoUsyOez0f9ExLyOpeCoz5aj+MPXw==}
+ /@next/swc-win32-arm64-msvc@13.4.7:
+ resolution: {integrity: sha512-NPnmnV+vEIxnu6SUvjnuaWRglZzw4ox5n/MQTxeUhb5iwVWFedolPFebMNwgrWu4AELwvTdGtWjqof53AiWHcw==}
engines: {node: '>= 10'}
- cpu: [ia32]
+ cpu: [arm64]
os: [win32]
requiresBuild: true
dev: false
optional: true
- /@next/swc-win32-ia32-msvc@13.3.0:
- resolution: {integrity: sha512-4aB7K9mcVK1lYEzpOpqWrXHEZympU3oK65fnNcY1Qc4HLJFLJj8AViuqQd4jjjPNuV4sl8jAwTz3gN5VNGWB7w==}
+ /@next/swc-win32-ia32-msvc@13.2.4:
+ resolution: {integrity: sha512-/eZ5ncmHUYtD2fc6EUmAIZlAJnVT2YmxDsKs1Ourx0ttTtvtma/WKlMV5NoUsyOez0f9ExLyOpeCoz5aj+MPXw==}
engines: {node: '>= 10'}
cpu: [ia32]
os: [win32]
@@ -4035,17 +4347,17 @@ packages:
dev: false
optional: true
- /@next/swc-win32-x64-msvc@13.2.4:
- resolution: {integrity: sha512-0MffFmyv7tBLlji01qc0IaPP/LVExzvj7/R5x1Jph1bTAIj4Vu81yFQWHHQAP6r4ff9Ukj1mBK6MDNVXm7Tcvw==}
+ /@next/swc-win32-ia32-msvc@13.4.7:
+ resolution: {integrity: sha512-6Hxijm6/a8XqLQpOOf/XuwWRhcuc/g4rBB2oxjgCMuV9Xlr2bLs5+lXyh8w9YbAUMYR3iC9mgOlXbHa79elmXw==}
engines: {node: '>= 10'}
- cpu: [x64]
+ cpu: [ia32]
os: [win32]
requiresBuild: true
dev: false
optional: true
- /@next/swc-win32-x64-msvc@13.3.0:
- resolution: {integrity: sha512-Reer6rkLLcoOvB0dd66+Y7WrWVFH7sEEkF/4bJCIfsSKnTStTYaHtwIJAwbqnt9I392Tqvku0KkoqZOryWV9LQ==}
+ /@next/swc-win32-x64-msvc@13.2.4:
+ resolution: {integrity: sha512-0MffFmyv7tBLlji01qc0IaPP/LVExzvj7/R5x1Jph1bTAIj4Vu81yFQWHHQAP6r4ff9Ukj1mBK6MDNVXm7Tcvw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
@@ -4071,6 +4383,15 @@ packages:
dev: false
optional: true
+ /@next/swc-win32-x64-msvc@13.4.7:
+ resolution: {integrity: sha512-sW9Yt36Db1nXJL+mTr2Wo0y+VkPWeYhygvcHj1FF0srVtV+VoDjxleKtny21QHaG05zdeZnw2fCtf2+dEqgwqA==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: false
+ optional: true
+
/@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1:
resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==}
dependencies:
@@ -4103,7 +4424,7 @@ packages:
resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==}
dependencies:
'@gar/promisify': 1.1.3
- semver: 7.3.8
+ semver: 7.5.3
dev: true
/@npmcli/move-file@1.1.2:
@@ -4184,7 +4505,7 @@ packages:
open: 8.4.0
picocolors: 1.0.0
tiny-glob: 0.2.9
- tslib: 2.5.2
+ tslib: 2.5.3
dev: false
/@polka/url@1.0.0-next.21:
@@ -4232,8 +4553,8 @@ packages:
webpack: 4.46.0
dev: true
- /@prisma/client@4.15.0(prisma@4.15.0):
- resolution: {integrity: sha512-xnROvyABcGiwqRNdrObHVZkD9EjkJYHOmVdlKy1yGgI+XOzvMzJ4tRg3dz1pUlsyhKxXGCnjIQjWW+2ur+YXuw==}
+ /@prisma/client@4.16.1(prisma@4.16.1):
+ resolution: {integrity: sha512-CoDHu7Bt+NuDo40ijoeHP79EHtECsPBTy3yte5Yo3op8TqXt/kV0OT5OrsWewKvQGKFMHhYQ+ePed3zzjYdGAw==}
engines: {node: '>=14.17'}
requiresBuild: true
peerDependencies:
@@ -4242,8 +4563,8 @@ packages:
prisma:
optional: true
dependencies:
- '@prisma/engines-version': 4.15.0-28.8fbc245156db7124f997f4cecdd8d1219e360944
- prisma: 4.15.0
+ '@prisma/engines-version': 4.16.0-66.b20ead4d3ab9e78ac112966e242ded703f4a052c
+ prisma: 4.16.1
dev: false
/@prisma/debug@3.8.1:
@@ -4254,8 +4575,8 @@ packages:
strip-ansi: 6.0.1
dev: false
- /@prisma/debug@4.15.0:
- resolution: {integrity: sha512-dkbPz+gOVlWDBAaOEseSpAUz9NppT38UlwdryPyrwct6OClLirNC7wH+TpAQk5OZp9x59hNnfDz+T7XvL1v0/Q==}
+ /@prisma/debug@4.16.0:
+ resolution: {integrity: sha512-9xKz+5BXjnHDgPKtjTEbP6vNPeYMOqId2IIHCxfpouhSpSUHOA3FVzCRpZ0er/RV6y/MZUPLQbltVUvPncBDlg==}
dependencies:
'@types/debug': 4.1.8
debug: 4.3.4
@@ -4295,12 +4616,12 @@ packages:
- supports-color
dev: true
- /@prisma/engines-version@4.15.0-28.8fbc245156db7124f997f4cecdd8d1219e360944:
- resolution: {integrity: sha512-sVOig4tjGxxlYaFcXgE71f/rtFhzyYrfyfNFUsxCIEJyVKU9rdOWIlIwQ2NQ7PntvGnn+x0XuFo4OC1jvPJKzg==}
+ /@prisma/engines-version@4.16.0-66.b20ead4d3ab9e78ac112966e242ded703f4a052c:
+ resolution: {integrity: sha512-tMWAF/qF00fbUH1HB4Yjmz6bjh7fzkb7Y3NRoUfMlHu6V+O45MGvqwYxqwBjn1BIUXkl3r04W351D4qdJjrgvA==}
dev: false
- /@prisma/engines@4.15.0:
- resolution: {integrity: sha512-FTaOCGs0LL0OW68juZlGxFtYviZa4xdQj/rQEdat2txw0s3Vu/saAPKjNVXfIgUsGXmQ72HPgNr6935/P8FNAA==}
+ /@prisma/engines@4.16.1:
+ resolution: {integrity: sha512-gpZG0kGGxfemgvK/LghHdBIz+crHkZjzszja94xp4oytpsXrgt/Ice82MvPsWMleVIniKuARrowtsIsim0PFJQ==}
requiresBuild: true
/@prisma/engines@4.6.1:
@@ -4342,10 +4663,10 @@ packages:
cross-spawn: 7.0.3
dev: false
- /@prisma/generator-helper@4.15.0:
- resolution: {integrity: sha512-JVHNgXr0LrcqXqmFrs+BzxfyRL6cFD5GLTMVWfCLU7kqSJdWuZxfoZW995tg6mOXnBgPTf6Ocv3RY4RLQq8k4g==}
+ /@prisma/generator-helper@4.16.0:
+ resolution: {integrity: sha512-4rDLzQPpCz2FbYjW07j7BDkKVs4MiPbyxAeYoLheQj0Ubj7ihoK1hecrIEocULxjMwVJOLt8mj575bguNQ4DWA==}
dependencies:
- '@prisma/debug': 4.15.0
+ '@prisma/debug': 4.16.0
'@types/cross-spawn': 6.0.2
cross-spawn: 7.0.3
kleur: 4.1.5
@@ -5628,7 +5949,7 @@ packages:
slash: 3.0.0
dev: true
- /@rollup/plugin-babel@5.3.1(@babel/core@7.20.12)(rollup@2.79.1):
+ /@rollup/plugin-babel@5.3.1(@babel/core@7.22.5)(rollup@2.79.1):
resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==}
engines: {node: '>= 10.0.0'}
peerDependencies:
@@ -5639,7 +5960,7 @@ packages:
'@types/babel__core':
optional: true
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.22.5
'@babel/helper-module-imports': 7.18.6
'@rollup/pluginutils': 3.1.0(rollup@2.79.1)
rollup: 2.79.1
@@ -5755,13 +6076,13 @@ packages:
/@swc/helpers@0.4.14:
resolution: {integrity: sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==}
dependencies:
- tslib: 2.5.2
+ tslib: 2.5.3
dev: false
/@swc/helpers@0.5.1:
resolution: {integrity: sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==}
dependencies:
- tslib: 2.5.2
+ tslib: 2.5.3
dev: false
/@szmarczak/http-timer@1.1.2:
@@ -5788,18 +6109,6 @@ packages:
tailwindcss: 3.3.2
dev: true
- /@tailwindcss/typography@0.5.9(tailwindcss@3.3.1):
- resolution: {integrity: sha512-t8Sg3DyynFysV9f4JDOVISGsjazNb48AeIYQwcL+Bsq5uf4RYL75C1giZ43KISjeDGBaTN3Kxh7Xj/vRSMJUUg==}
- peerDependencies:
- tailwindcss: '>=3.0.0 || insiders'
- dependencies:
- lodash.castarray: 4.4.0
- lodash.isplainobject: 4.0.6
- lodash.merge: 4.6.2
- postcss-selector-parser: 6.0.10
- tailwindcss: 3.3.1(postcss@8.4.22)
- dev: true
-
/@tailwindcss/typography@0.5.9(tailwindcss@3.3.2):
resolution: {integrity: sha512-t8Sg3DyynFysV9f4JDOVISGsjazNb48AeIYQwcL+Bsq5uf4RYL75C1giZ43KISjeDGBaTN3Kxh7Xj/vRSMJUUg==}
peerDependencies:
@@ -5840,8 +6149,8 @@ packages:
/@types/babel__core@7.20.0:
resolution: {integrity: sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==}
dependencies:
- '@babel/parser': 7.20.13
- '@babel/types': 7.20.7
+ '@babel/parser': 7.22.5
+ '@babel/types': 7.22.5
'@types/babel__generator': 7.6.4
'@types/babel__template': 7.4.1
'@types/babel__traverse': 7.18.3
@@ -5850,20 +6159,20 @@ packages:
/@types/babel__generator@7.6.4:
resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==}
dependencies:
- '@babel/types': 7.20.7
+ '@babel/types': 7.22.5
dev: true
/@types/babel__template@7.4.1:
resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==}
dependencies:
- '@babel/parser': 7.20.13
- '@babel/types': 7.20.7
+ '@babel/parser': 7.22.5
+ '@babel/types': 7.22.5
dev: true
/@types/babel__traverse@7.18.3:
resolution: {integrity: sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==}
dependencies:
- '@babel/types': 7.20.7
+ '@babel/types': 7.22.5
dev: true
/@types/bcryptjs@2.4.2:
@@ -5874,38 +6183,32 @@ packages:
resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==}
dependencies:
'@types/connect': 3.4.35
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
dev: true
/@types/bonjour@3.5.10:
resolution: {integrity: sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==}
dependencies:
- '@types/node': 20.2.3
- dev: true
-
- /@types/cheerio@0.22.31:
- resolution: {integrity: sha512-Kt7Cdjjdi2XWSfrZ53v4Of0wG3ZcmaegFXjMmz9tfNrZSkzzo36G0AL1YqSdcIA78Etjt6E609pt5h1xnQkPUw==}
- dependencies:
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
dev: true
/@types/connect-history-api-fallback@1.3.5:
resolution: {integrity: sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==}
dependencies:
'@types/express-serve-static-core': 4.17.33
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
dev: true
/@types/connect@3.4.35:
resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==}
dependencies:
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
dev: true
/@types/cross-spawn@6.0.2:
resolution: {integrity: sha512-KuwNhp3eza+Rhu8IFI5HUXRP0LIhqH5cAjubUvGXXthh4YYBuP2ntwEX+Cz8GJoZUHlKo247wPWOfA9LYEq4cw==}
dependencies:
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
/@types/debug@4.1.7:
resolution: {integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==}
@@ -5918,13 +6221,6 @@ packages:
'@types/ms': 0.7.31
dev: false
- /@types/enzyme@3.10.13:
- resolution: {integrity: sha512-FCtoUhmFsud0Yx9fmZk179GkdZ4U9B0GFte64/Md+W/agx0L5SxsIIbhLBOxIb9y2UfBA4WQnaG1Od/UsUQs9Q==}
- dependencies:
- '@types/cheerio': 0.22.31
- '@types/react': 16.14.41
- dev: true
-
/@types/eslint-scope@3.7.4:
resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==}
dependencies:
@@ -5959,7 +6255,7 @@ packages:
/@types/express-serve-static-core@4.17.33:
resolution: {integrity: sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==}
dependencies:
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
'@types/qs': 6.9.7
'@types/range-parser': 1.2.4
dev: true
@@ -5976,7 +6272,7 @@ packages:
/@types/graceful-fs@4.1.5:
resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==}
dependencies:
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
dev: true
/@types/hast@2.3.4:
@@ -5995,7 +6291,7 @@ packages:
/@types/http-proxy@1.17.10:
resolution: {integrity: sha512-Qs5aULi+zV1bwKAg5z1PWnDXWmsn+LxIvUGv6E2+OOMYhclZMO+OXd9pYVf2gLykf2I7IV2u7oTHwChPNsvJ7g==}
dependencies:
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
dev: true
/@types/is-ci@3.0.0:
@@ -6031,6 +6327,14 @@ packages:
resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==}
dev: false
+ /@types/jsdom@20.0.1:
+ resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==}
+ dependencies:
+ '@types/node': 20.3.2
+ '@types/tough-cookie': 4.0.2
+ parse5: 7.1.2
+ dev: true
+
/@types/json-schema@7.0.11:
resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==}
@@ -6041,7 +6345,7 @@ packages:
/@types/keyv@3.1.4:
resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==}
dependencies:
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
/@types/linkify-it@3.0.2:
resolution: {integrity: sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==}
@@ -6089,9 +6393,14 @@ packages:
/@types/node@18.15.11:
resolution: {integrity: sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==}
+ dev: true
/@types/node@20.2.3:
resolution: {integrity: sha512-pg9d0yC4rVNWQzX8U7xb4olIOFuuVL9za3bzMT2pu2SU0SNEi66i2qrvhE2qt0HvkhuCaWJu7pLNOt/Pj8BIrw==}
+ dev: true
+
+ /@types/node@20.3.2:
+ resolution: {integrity: sha512-vOBLVQeCQfIcF/2Y7eKFTqrMnizK5lRNQ7ykML/5RuwVXVWxYkgwS7xbt4B6fKCUPgbSL5FSsjHQpaGQP/dQmw==}
/@types/normalize-package-data@2.4.1:
resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==}
@@ -6099,6 +6408,7 @@ packages:
/@types/parse-json@4.0.0:
resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==}
+ dev: true
/@types/prettier@2.7.2:
resolution: {integrity: sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==}
@@ -6106,7 +6416,6 @@ packages:
/@types/prismjs@1.26.0:
resolution: {integrity: sha512-ZTaqn/qSqUuAq1YwvOFQfVW1AR/oQJlLSZVustdjwI+GZ8kr0MSHBj0tsXPW1EqHubx50gtBEjbPGsdZwQwCjQ==}
- dev: true
/@types/prop-types@15.7.5:
resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==}
@@ -6127,6 +6436,7 @@ packages:
resolution: {integrity: sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==}
dependencies:
'@types/react': 18.0.37
+ dev: true
/@types/react-dom@18.2.4:
resolution: {integrity: sha512-G2mHoTMTL4yoydITgOGwWdWMVd8sNgyEP85xVmMKAPUBwQWm9wBPQUmvbeF4V3WBY1P7mmL4BkjQ0SqUpf1snw==}
@@ -6142,28 +6452,13 @@ packages:
redux: 4.2.1
dev: false
- /@types/react@16.14.41:
- resolution: {integrity: sha512-h+joCKF2r5rdECoM1U8WCEIHBp5/0TSR5Nyq8gtnnYY1n2WqGuj3indYqTjMb2/b5g2rfxJV6u4jUFq95lbT6Q==}
- dependencies:
- '@types/prop-types': 15.7.5
- '@types/scheduler': 0.16.2
- csstype: 3.1.1
- dev: true
-
/@types/react@18.0.33:
resolution: {integrity: sha512-sHxzVxeanvQyQ1lr8NSHaj0kDzcNiGpILEVt69g9S31/7PfMvNCKLKcsHw4lYKjs3cGNJjXSP4mYzX43QlnjNA==}
dependencies:
'@types/prop-types': 15.7.5
'@types/scheduler': 0.16.2
csstype: 3.1.1
- dev: false
-
- /@types/react@18.0.35:
- resolution: {integrity: sha512-6Laome31HpetaIUGFWl1VQ3mdSImwxtFZ39rh059a1MNnKGqBpC88J6NJ8n/Is3Qx7CefDGLgf/KhN/sYCf7ag==}
- dependencies:
- '@types/prop-types': 15.7.5
- '@types/scheduler': 0.16.2
- csstype: 3.1.1
+ dev: true
/@types/react@18.0.37:
resolution: {integrity: sha512-4yaZZtkRN3ZIQD3KSEwkfcik8s0SWV+82dlJot1AbGYHCzJkWP3ENBY6wYeDRmKZ6HkrgoGAmR2HqdwYGp6OEw==}
@@ -6171,14 +6466,7 @@ packages:
'@types/prop-types': 15.7.5
'@types/scheduler': 0.16.2
csstype: 3.1.1
-
- /@types/react@18.2.5:
- resolution: {integrity: sha512-RuoMedzJ5AOh23Dvws13LU9jpZHIc/k90AgmK7CecAYeWmSr3553L4u5rk4sWAPBuQosfT7HmTfG4Rg5o4nGEA==}
- dependencies:
- '@types/prop-types': 15.7.5
- '@types/scheduler': 0.16.2
- csstype: 3.1.1
- dev: false
+ dev: true
/@types/react@18.2.7:
resolution: {integrity: sha512-ojrXpSH2XFCmHm7Jy3q44nXDyN54+EYKP2lBhJ2bqfyPj6cIUW/FZW/Csdia34NQgq7KYcAlHi5184m4X88+yw==}
@@ -6190,13 +6478,13 @@ packages:
/@types/resolve@1.17.1:
resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==}
dependencies:
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
dev: true
/@types/responselike@1.0.0:
resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==}
dependencies:
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
/@types/retry@0.12.0:
resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==}
@@ -6223,13 +6511,13 @@ packages:
resolution: {integrity: sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==}
dependencies:
'@types/mime': 3.0.1
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
dev: true
/@types/sockjs@0.3.33:
resolution: {integrity: sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==}
dependencies:
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
dev: true
/@types/source-list-map@0.1.2:
@@ -6244,6 +6532,10 @@ packages:
resolution: {integrity: sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ==}
dev: true
+ /@types/tough-cookie@4.0.2:
+ resolution: {integrity: sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==}
+ dev: true
+
/@types/trusted-types@2.0.3:
resolution: {integrity: sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==}
dev: true
@@ -6261,7 +6553,7 @@ packages:
/@types/webpack-sources@3.2.0:
resolution: {integrity: sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg==}
dependencies:
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
'@types/source-list-map': 0.1.2
source-map: 0.7.4
dev: true
@@ -6269,7 +6561,7 @@ packages:
/@types/webpack@4.41.33:
resolution: {integrity: sha512-PPajH64Ft2vWevkerISMtnZ8rTs4YmRbs+23c402J0INmxDKCrhZNvwZYtzx96gY2wAtXdrK1BS2fiC8MlLr3g==}
dependencies:
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
'@types/tapable': 1.0.8
'@types/uglify-js': 3.17.1
'@types/webpack-sources': 3.2.0
@@ -6280,7 +6572,7 @@ packages:
/@types/ws@8.5.4:
resolution: {integrity: sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==}
dependencies:
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
dev: true
/@types/yargs-parser@21.0.0:
@@ -6340,7 +6632,7 @@ packages:
- typescript
dev: true
- /@typescript-eslint/parser@5.59.2(eslint@8.41.0)(typescript@5.0.4):
+ /@typescript-eslint/parser@5.59.2(eslint@8.43.0)(typescript@5.0.4):
resolution: {integrity: sha512-uq0sKyw6ao1iFOZZGk9F8Nro/8+gfB5ezl1cA06SrqbgJAt0SRoFhb9pXaHvkrxUpZaoLxt8KlovHNk8Gp6/HQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -6354,7 +6646,7 @@ packages:
'@typescript-eslint/types': 5.59.2
'@typescript-eslint/typescript-estree': 5.59.2(typescript@5.0.4)
debug: 4.3.4
- eslint: 8.41.0
+ eslint: 8.43.0
typescript: 5.0.4
transitivePeerDependencies:
- supports-color
@@ -6486,7 +6778,7 @@ packages:
debug: 4.3.4
globby: 11.1.0
is-glob: 4.0.3
- semver: 7.3.8
+ semver: 7.5.3
tsutils: 3.21.0(typescript@5.1.3)
typescript: 5.1.3
transitivePeerDependencies:
@@ -6507,7 +6799,7 @@ packages:
debug: 4.3.4
globby: 11.1.0
is-glob: 4.0.3
- semver: 7.3.8
+ semver: 7.5.3
tsutils: 3.21.0(typescript@5.0.4)
typescript: 5.0.4
transitivePeerDependencies:
@@ -6528,7 +6820,7 @@ packages:
debug: 4.3.4
globby: 11.1.0
is-glob: 4.0.3
- semver: 7.3.8
+ semver: 7.5.3
tsutils: 3.21.0(typescript@5.1.3)
typescript: 5.1.3
transitivePeerDependencies:
@@ -6549,7 +6841,7 @@ packages:
debug: 4.3.4
globby: 11.1.0
is-glob: 4.0.3
- semver: 7.3.8
+ semver: 7.5.3
tsutils: 3.21.0(typescript@5.1.3)
typescript: 5.1.3
transitivePeerDependencies:
@@ -6570,7 +6862,7 @@ packages:
eslint: 8.42.0
eslint-scope: 5.1.1
eslint-utils: 3.0.0(eslint@8.42.0)
- semver: 7.3.8
+ semver: 7.5.3
transitivePeerDependencies:
- supports-color
- typescript
@@ -6590,7 +6882,7 @@ packages:
'@typescript-eslint/typescript-estree': 5.59.9(typescript@5.1.3)
eslint: 8.42.0
eslint-scope: 5.1.1
- semver: 7.3.8
+ semver: 7.5.3
transitivePeerDependencies:
- supports-color
- typescript
@@ -6890,6 +7182,13 @@ packages:
acorn-walk: 6.2.0
dev: true
+ /acorn-globals@7.0.1:
+ resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==}
+ dependencies:
+ acorn: 8.8.1
+ acorn-walk: 8.2.0
+ dev: true
+
/acorn-import-assertions@1.8.0(acorn@8.8.1):
resolution: {integrity: sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==}
peerDependencies:
@@ -6926,10 +7225,6 @@ packages:
engines: {node: '>=0.4.0'}
hasBin: true
- /add@2.0.6:
- resolution: {integrity: sha512-j5QzrmsokwWWp6kUcJQySpbG+xfOBqqKnup3OIk1pz+kB/80SLorZ9V8zHFLO92Lcd+hbvq8bT+zOGoPkmBV0Q==}
- dev: false
-
/agent-base@6.0.2:
resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
engines: {node: '>= 6.0.0'}
@@ -7176,7 +7471,7 @@ packages:
resolution: {integrity: sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==}
engines: {node: '>=10'}
dependencies:
- tslib: 2.5.2
+ tslib: 2.5.3
dev: false
/aria-query@4.2.2:
@@ -7233,17 +7528,6 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
- /array.prototype.filter@1.0.2:
- resolution: {integrity: sha512-us+UrmGOilqttSOgoWZTpOvHu68vZT2YCjc/H4vhu56vzZpaDFBhB+Se2UwqWzMKbDv7Myq5M5pcZLAtUvTQdQ==}
- engines: {node: '>= 0.4'}
- dependencies:
- call-bind: 1.0.2
- define-properties: 1.1.4
- es-abstract: 1.20.4
- es-array-method-boxes-properly: 1.0.0
- is-string: 1.0.7
- dev: true
-
/array.prototype.flat@1.3.1:
resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==}
engines: {node: '>= 0.4'}
@@ -7386,22 +7670,6 @@ packages:
postcss-value-parser: 4.2.0
dev: true
- /autoprefixer@10.4.14(postcss@8.4.22):
- resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==}
- engines: {node: ^10 || ^12 || >=14}
- hasBin: true
- peerDependencies:
- postcss: ^8.1.0
- dependencies:
- browserslist: 4.21.5
- caniuse-lite: 1.0.30001466
- fraction.js: 4.2.0
- normalize-range: 0.1.2
- picocolors: 1.0.0
- postcss: 8.4.22
- postcss-value-parser: 4.2.0
- dev: true
-
/autoprefixer@10.4.14(postcss@8.4.23):
resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==}
engines: {node: ^10 || ^12 || >=14}
@@ -7486,18 +7754,18 @@ packages:
webpack: 4.46.0
dev: true
- /babel-jest@27.5.1(@babel/core@7.20.12):
+ /babel-jest@27.5.1(@babel/core@7.22.5):
resolution: {integrity: sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==}
engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
peerDependencies:
'@babel/core': ^7.8.0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.22.5
'@jest/transform': 27.5.1
'@jest/types': 27.5.1
'@types/babel__core': 7.20.0
babel-plugin-istanbul: 6.1.1
- babel-preset-jest: 27.5.1(@babel/core@7.20.12)
+ babel-preset-jest: 27.5.1(@babel/core@7.22.5)
chalk: 4.1.2
graceful-fs: 4.2.10
slash: 3.0.0
@@ -7505,17 +7773,17 @@ packages:
- supports-color
dev: true
- /babel-jest@29.5.0(@babel/core@7.20.12):
+ /babel-jest@29.5.0(@babel/core@7.22.5):
resolution: {integrity: sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
peerDependencies:
'@babel/core': ^7.8.0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.22.5
'@jest/transform': 29.5.0
'@types/babel__core': 7.20.0
babel-plugin-istanbul: 6.1.1
- babel-preset-jest: 29.5.0(@babel/core@7.20.12)
+ babel-preset-jest: 29.5.0(@babel/core@7.22.5)
chalk: 4.1.2
graceful-fs: 4.2.10
slash: 3.0.0
@@ -7523,14 +7791,14 @@ packages:
- supports-color
dev: true
- /babel-loader@8.3.0(@babel/core@7.20.12)(webpack@4.46.0):
+ /babel-loader@8.3.0(@babel/core@7.22.5)(webpack@4.46.0):
resolution: {integrity: sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==}
engines: {node: '>= 8.9'}
peerDependencies:
'@babel/core': ^7.0.0
webpack: '>=2'
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.22.5
find-cache-dir: 3.3.2
loader-utils: 2.0.4
make-dir: 3.1.0
@@ -7538,26 +7806,11 @@ packages:
webpack: 4.46.0
dev: true
- /babel-plugin-emotion@10.2.2:
- resolution: {integrity: sha512-SMSkGoqTbTyUTDeuVuPIWifPdUGkTk1Kf9BWRiXIOIcuyMfsdp2EjeiiFvOzX8NOBvEh/ypKYvUh2rkgAJMCLA==}
- dependencies:
- '@babel/helper-module-imports': 7.18.6
- '@emotion/hash': 0.8.0
- '@emotion/memoize': 0.7.4
- '@emotion/serialize': 0.11.16
- babel-plugin-macros: 2.8.0
- babel-plugin-syntax-jsx: 6.18.0
- convert-source-map: 1.9.0
- escape-string-regexp: 1.0.5
- find-root: 1.1.0
- source-map: 0.5.7
- dev: false
-
/babel-plugin-istanbul@6.1.1:
resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==}
engines: {node: '>=8'}
dependencies:
- '@babel/helper-plugin-utils': 7.20.2
+ '@babel/helper-plugin-utils': 7.22.5
'@istanbuljs/load-nyc-config': 1.1.0
'@istanbuljs/schema': 0.1.3
istanbul-lib-instrument: 5.2.1
@@ -7570,8 +7823,8 @@ packages:
resolution: {integrity: sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==}
engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
dependencies:
- '@babel/template': 7.20.7
- '@babel/types': 7.20.7
+ '@babel/template': 7.22.5
+ '@babel/types': 7.22.5
'@types/babel__core': 7.20.0
'@types/babel__traverse': 7.18.3
dev: true
@@ -7580,20 +7833,12 @@ packages:
resolution: {integrity: sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@babel/template': 7.20.7
- '@babel/types': 7.20.7
+ '@babel/template': 7.22.5
+ '@babel/types': 7.22.5
'@types/babel__core': 7.20.0
'@types/babel__traverse': 7.18.3
dev: true
- /babel-plugin-macros@2.8.0:
- resolution: {integrity: sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==}
- dependencies:
- '@babel/runtime': 7.21.0
- cosmiconfig: 6.0.0
- resolve: 1.22.2
- dev: false
-
/babel-plugin-macros@3.1.0:
resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==}
engines: {node: '>=10', npm: '>=6'}
@@ -7603,46 +7848,42 @@ packages:
resolve: 1.22.2
dev: true
- /babel-plugin-polyfill-corejs2@0.3.3(@babel/core@7.20.12):
- resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==}
+ /babel-plugin-polyfill-corejs2@0.4.3(@babel/core@7.22.5):
+ resolution: {integrity: sha512-bM3gHc337Dta490gg+/AseNB9L4YLHxq1nGKZZSHbhXv4aTYU2MD2cjza1Ru4S6975YLTaL1K8uJf6ukJhhmtw==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/compat-data': 7.20.5
- '@babel/core': 7.20.12
- '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.20.12)
+ '@babel/compat-data': 7.22.5
+ '@babel/core': 7.22.5
+ '@babel/helper-define-polyfill-provider': 0.4.0(@babel/core@7.22.5)
semver: 6.3.0
transitivePeerDependencies:
- supports-color
dev: true
- /babel-plugin-polyfill-corejs3@0.6.0(@babel/core@7.20.12):
- resolution: {integrity: sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==}
+ /babel-plugin-polyfill-corejs3@0.8.1(@babel/core@7.22.5):
+ resolution: {integrity: sha512-ikFrZITKg1xH6pLND8zT14UPgjKHiGLqex7rGEZCH2EvhsneJaJPemmpQaIZV5AL03II+lXylw3UmddDK8RU5Q==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.20.12)
- core-js-compat: 3.26.1
+ '@babel/core': 7.22.5
+ '@babel/helper-define-polyfill-provider': 0.4.0(@babel/core@7.22.5)
+ core-js-compat: 3.31.0
transitivePeerDependencies:
- supports-color
dev: true
- /babel-plugin-polyfill-regenerator@0.4.1(@babel/core@7.20.12):
- resolution: {integrity: sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==}
+ /babel-plugin-polyfill-regenerator@0.5.0(@babel/core@7.22.5):
+ resolution: {integrity: sha512-hDJtKjMLVa7Z+LwnTCxoDLQj6wdc+B8dun7ayF2fYieI6OzfuvcLMB32ihJZ4UhCBwNYGl5bg/x/P9cMdnkc2g==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.20.12)
+ '@babel/core': 7.22.5
+ '@babel/helper-define-polyfill-provider': 0.4.0(@babel/core@7.22.5)
transitivePeerDependencies:
- supports-color
dev: true
- /babel-plugin-syntax-jsx@6.18.0:
- resolution: {integrity: sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw==}
- dev: false
-
/babel-plugin-transform-async-to-promises@0.8.18:
resolution: {integrity: sha512-WpOrF76nUHijnNn10eBGOHZmXQC8JYRME9rOLxStOga7Av2VO53ehVFvVNImMksVtQuL2/7ZNxEgxnx7oo/3Hw==}
dev: true
@@ -7651,55 +7892,55 @@ packages:
resolution: {integrity: sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==}
dev: true
- /babel-plugin-transform-replace-expressions@0.2.0(@babel/core@7.20.12):
+ /babel-plugin-transform-replace-expressions@0.2.0(@babel/core@7.22.5):
resolution: {integrity: sha512-Eh1rRd9hWEYgkgoA3D0kGp7xJ/wgVshgsqmq60iC4HVWD+Lux+fNHSHBa2v1Hsv+dHflShC71qKhiH40OiPtDA==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.20.12
- '@babel/parser': 7.20.13
+ '@babel/core': 7.22.5
+ '@babel/parser': 7.22.5
dev: true
- /babel-preset-current-node-syntax@1.0.1(@babel/core@7.20.12):
+ /babel-preset-current-node-syntax@1.0.1(@babel/core@7.22.5):
resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.20.12
- '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.20.12)
- '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.20.12)
- '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.20.12)
- '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.20.12)
- '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.20.12)
- '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.20.12)
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.20.12)
- '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.20.12)
- '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.20.12)
- '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.20.12)
- '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.20.12)
- '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.20.12)
+ '@babel/core': 7.22.5
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.5)
+ '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.22.5)
+ '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.22.5)
+ '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.22.5)
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.5)
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.5)
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.5)
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.5)
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.5)
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.5)
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.5)
+ '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.22.5)
dev: true
- /babel-preset-jest@27.5.1(@babel/core@7.20.12):
+ /babel-preset-jest@27.5.1(@babel/core@7.22.5):
resolution: {integrity: sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==}
engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.22.5
babel-plugin-jest-hoist: 27.5.1
- babel-preset-current-node-syntax: 1.0.1(@babel/core@7.20.12)
+ babel-preset-current-node-syntax: 1.0.1(@babel/core@7.22.5)
dev: true
- /babel-preset-jest@29.5.0(@babel/core@7.20.12):
+ /babel-preset-jest@29.5.0(@babel/core@7.22.5):
resolution: {integrity: sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.22.5
babel-plugin-jest-hoist: 29.5.0
- babel-preset-current-node-syntax: 1.0.1(@babel/core@7.20.12)
+ babel-preset-current-node-syntax: 1.0.1(@babel/core@7.22.5)
dev: true
/bail@2.0.2:
@@ -8043,7 +8284,7 @@ packages:
/builtins@5.0.1:
resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==}
dependencies:
- semver: 7.3.8
+ semver: 7.5.3
dev: true
/bundle-require@4.0.1(esbuild@0.17.11):
@@ -8056,6 +8297,16 @@ packages:
load-tsconfig: 0.2.3
dev: true
+ /bundle-require@4.0.1(esbuild@0.18.10):
+ resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ peerDependencies:
+ esbuild: '>=0.17'
+ dependencies:
+ esbuild: 0.18.10
+ load-tsconfig: 0.2.3
+ dev: true
+
/busboy@1.6.0:
resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
engines: {node: '>=10.16.0'}
@@ -8330,30 +8581,6 @@ packages:
- encoding
dev: true
- /cheerio-select@2.1.0:
- resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==}
- dependencies:
- boolbase: 1.0.0
- css-select: 5.1.0
- css-what: 6.1.0
- domelementtype: 2.3.0
- domhandler: 5.0.3
- domutils: 3.0.1
- dev: true
-
- /cheerio@1.0.0-rc.12:
- resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==}
- engines: {node: '>= 6'}
- dependencies:
- cheerio-select: 2.1.0
- dom-serializer: 2.0.0
- domhandler: 5.0.3
- domutils: 3.0.1
- htmlparser2: 8.0.1
- parse5: 7.1.2
- parse5-htmlparser2-tree-adapter: 7.0.0
- dev: true
-
/chokidar@2.1.8:
resolution: {integrity: sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==}
deprecated: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies
@@ -8826,22 +9053,6 @@ packages:
engines: {node: '>=4'}
dev: true
- /console-feed@3.5.0(jquery@3.7.0)(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-2N5b37yH0HeaqbBDsHBx0jEy3qvhTGA1dVdGyEM6C1NQhVmIX+ToU6Rt/uo86K0lLs4Lg1orC940YSn+Z3kk5g==}
- peerDependencies:
- react: ^15.x || ^16.x || ^17.x || ^18.x
- dependencies:
- '@emotion/core': 10.3.1(react@18.2.0)
- '@emotion/styled': 10.3.0(@emotion/core@10.3.1)(react@18.2.0)
- emotion-theming: 10.3.0(@emotion/core@10.3.1)(react@18.2.0)
- linkifyjs: 2.1.9(jquery@3.7.0)(react-dom@18.2.0)(react@18.2.0)
- react: 18.2.0
- react-inspector: 5.1.1(react@18.2.0)
- transitivePeerDependencies:
- - jquery
- - react-dom
- dev: false
-
/constants-browserify@1.0.0:
resolution: {integrity: sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==}
dev: true
@@ -8860,6 +9071,7 @@ packages:
/convert-source-map@1.9.0:
resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==}
+ dev: true
/convert-source-map@2.0.0:
resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
@@ -8917,8 +9129,8 @@ packages:
- bluebird
dev: true
- /core-js-compat@3.26.1:
- resolution: {integrity: sha512-622/KzTudvXCDLRw70iHW4KKs1aGpcRcowGWyYJr2DEBfRrd6hNJybxSWJFuZYD4ma86xhrwDDHxmDaIq4EA8A==}
+ /core-js-compat@3.31.0:
+ resolution: {integrity: sha512-hM7YCu1cU6Opx7MXNu0NuumM0ezNeAeRKadixyiQELWY3vT3De9S4J5ZBMraWV2vZnrE1Cirl0GtFtDtMUXzPw==}
dependencies:
browserslist: 4.21.5
dev: true
@@ -8945,17 +9157,6 @@ packages:
parse-json: 4.0.0
dev: true
- /cosmiconfig@6.0.0:
- resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==}
- engines: {node: '>=8'}
- dependencies:
- '@types/parse-json': 4.0.0
- import-fresh: 3.3.0
- parse-json: 5.2.0
- path-type: 4.0.0
- yaml: 1.10.2
- dev: false
-
/cosmiconfig@7.1.0:
resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==}
engines: {node: '>=10'}
@@ -9047,6 +9248,14 @@ packages:
cross-spawn: 7.0.3
dev: true
+ /cross-fetch@3.1.6:
+ resolution: {integrity: sha512-riRvo06crlE8HiqOwIpQhxwdOk4fOeR7FVM/wXoxchFEqMNUjvbs3bfo4OTgMEMHzppd4DxFBDbyySj8Cv781g==}
+ dependencies:
+ node-fetch: 2.6.12
+ transitivePeerDependencies:
+ - encoding
+ dev: true
+
/cross-spawn-promise@0.10.2:
resolution: {integrity: sha512-74PXJf6DYaab2klRS+D+9qxKJL1Weo3/ao9OPoH6NFzxtINSa/HE2mcyAPu1fpEmRTPD4Gdmpg3xEXQSgI8lpg==}
engines: {node: '>=4'}
@@ -9142,7 +9351,7 @@ packages:
postcss-modules-values: 4.0.0(postcss@8.4.24)
postcss-value-parser: 4.2.0
schema-utils: 3.1.1
- semver: 7.3.8
+ semver: 7.5.3
webpack: 4.46.0
dev: true
@@ -9169,16 +9378,6 @@ packages:
nth-check: 2.1.1
dev: true
- /css-select@5.1.0:
- resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
- dependencies:
- boolbase: 1.0.0
- css-what: 6.1.0
- domhandler: 5.0.3
- domutils: 3.0.1
- nth-check: 2.1.1
- dev: true
-
/css-tree@1.0.0-alpha.37:
resolution: {integrity: sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==}
engines: {node: '>=8.0.0'}
@@ -9357,15 +9556,22 @@ packages:
resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==}
dev: true
+ /cssom@0.5.0:
+ resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==}
+ dev: true
+
/cssstyle@1.4.0:
resolution: {integrity: sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==}
dependencies:
cssom: 0.3.8
dev: true
- /csstype@2.6.21:
- resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==}
- dev: false
+ /cssstyle@2.3.0:
+ resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==}
+ engines: {node: '>=8'}
+ dependencies:
+ cssom: 0.3.8
+ dev: true
/csstype@3.1.1:
resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==}
@@ -9415,6 +9621,15 @@ packages:
whatwg-url: 7.1.0
dev: true
+ /data-urls@3.0.2:
+ resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ abab: 2.0.6
+ whatwg-mimetype: 3.0.0
+ whatwg-url: 11.0.0
+ dev: true
+
/date-fns@2.30.0:
resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==}
engines: {node: '>=0.11'}
@@ -9465,6 +9680,10 @@ packages:
resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
engines: {node: '>=0.10.0'}
+ /decimal.js@10.4.3:
+ resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
+ dev: true
+
/decode-named-character-reference@1.0.2:
resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==}
dependencies:
@@ -9655,10 +9874,6 @@ packages:
dependencies:
path-type: 4.0.0
- /discontinuous-range@1.0.0:
- resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==}
- dev: true
-
/dlv@1.1.3:
resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
dev: true
@@ -9707,14 +9922,6 @@ packages:
entities: 2.2.0
dev: true
- /dom-serializer@2.0.0:
- resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
- dependencies:
- domelementtype: 2.3.0
- domhandler: 5.0.3
- entities: 4.4.0
- dev: true
-
/domain-browser@1.2.0:
resolution: {integrity: sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==}
engines: {node: '>=0.4', npm: '>=1.2'}
@@ -9734,15 +9941,15 @@ packages:
webidl-conversions: 4.0.2
dev: true
- /domhandler@4.3.1:
- resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
- engines: {node: '>= 4'}
+ /domexception@4.0.0:
+ resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==}
+ engines: {node: '>=12'}
dependencies:
- domelementtype: 2.3.0
+ webidl-conversions: 7.0.0
dev: true
- /domhandler@5.0.3:
- resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
+ /domhandler@4.3.1:
+ resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
engines: {node: '>= 4'}
dependencies:
domelementtype: 2.3.0
@@ -9763,14 +9970,6 @@ packages:
domhandler: 4.3.1
dev: true
- /domutils@3.0.1:
- resolution: {integrity: sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==}
- dependencies:
- dom-serializer: 2.0.0
- domelementtype: 2.3.0
- domhandler: 5.0.3
- dev: true
-
/dot-prop@4.2.1:
resolution: {integrity: sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==}
engines: {node: '>=4'}
@@ -9921,19 +10120,6 @@ packages:
engines: {node: '>= 4'}
dev: true
- /emotion-theming@10.3.0(@emotion/core@10.3.1)(react@18.2.0):
- resolution: {integrity: sha512-mXiD2Oj7N9b6+h/dC6oLf9hwxbtKHQjoIqtodEyL8CpkN4F3V4IK/BT4D0C7zSs4BBFOu4UlPJbvvBLa88SGEA==}
- peerDependencies:
- '@emotion/core': ^10.0.27
- react: '>=16.3.0'
- dependencies:
- '@babel/runtime': 7.21.0
- '@emotion/core': 10.3.1(react@18.2.0)
- '@emotion/weak-memoize': 0.2.5
- hoist-non-react-statics: 3.3.2
- react: 18.2.0
- dev: false
-
/encodeurl@1.0.2:
resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
engines: {node: '>= 0.8'}
@@ -9993,50 +10179,6 @@ packages:
hasBin: true
dev: true
- /enzyme-adapter-preact-pure@4.1.0(enzyme@3.11.0)(preact@10.15.1):
- resolution: {integrity: sha512-SifzvBGf1qUEs0FfCAOiKgDppb1wg/R+rmX8D7jFVpQ/Q2L3/xuyc1V575zoi8QAhIBDUB/8QUWvI4KZc50trw==}
- peerDependencies:
- enzyme: ^3.11.0
- preact: ^10.0.0
- dependencies:
- enzyme: 3.11.0
- preact: 10.15.1
- dev: true
-
- /enzyme-shallow-equal@1.0.5:
- resolution: {integrity: sha512-i6cwm7hN630JXenxxJFBKzgLC3hMTafFQXflvzHgPmDhOBhxUWDe8AeRv1qp2/uWJ2Y8z5yLWMzmAfkTOiOCZg==}
- dependencies:
- has: 1.0.3
- object-is: 1.1.5
- dev: true
-
- /enzyme@3.11.0:
- resolution: {integrity: sha512-Dw8/Gs4vRjxY6/6i9wU0V+utmQO9kvh9XLnz3LIudviOnVYDEe2ec+0k+NQoMamn1VrjKgCUOWj5jG/5M5M0Qw==}
- dependencies:
- array.prototype.flat: 1.3.1
- cheerio: 1.0.0-rc.12
- enzyme-shallow-equal: 1.0.5
- function.prototype.name: 1.1.5
- has: 1.0.3
- html-element-map: 1.3.1
- is-boolean-object: 1.1.2
- is-callable: 1.2.7
- is-number-object: 1.0.7
- is-regex: 1.1.4
- is-string: 1.0.7
- is-subset: 0.1.1
- lodash.escape: 4.0.1
- lodash.isequal: 4.5.0
- object-inspect: 1.12.2
- object-is: 1.1.5
- object.assign: 4.1.4
- object.entries: 1.1.6
- object.values: 1.1.6
- raf: 3.4.1
- rst-selector-parser: 2.2.3
- string.prototype.trim: 1.2.7
- dev: true
-
/errno@0.1.8:
resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==}
hasBin: true
@@ -10048,6 +10190,7 @@ packages:
resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
dependencies:
is-arrayish: 0.2.1
+ dev: true
/error-stack-parser@2.1.4:
resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==}
@@ -10345,6 +10488,36 @@ packages:
'@esbuild/win32-x64': 0.17.11
dev: true
+ /esbuild@0.18.10:
+ resolution: {integrity: sha512-33WKo67auOXzZHBY/9DTJRo7kIvfU12S+D4sp2wIz39N88MDIaCGyCwbW01RR70pK6Iya0I74lHEpyLfFqOHPA==}
+ engines: {node: '>=12'}
+ hasBin: true
+ requiresBuild: true
+ optionalDependencies:
+ '@esbuild/android-arm': 0.18.10
+ '@esbuild/android-arm64': 0.18.10
+ '@esbuild/android-x64': 0.18.10
+ '@esbuild/darwin-arm64': 0.18.10
+ '@esbuild/darwin-x64': 0.18.10
+ '@esbuild/freebsd-arm64': 0.18.10
+ '@esbuild/freebsd-x64': 0.18.10
+ '@esbuild/linux-arm': 0.18.10
+ '@esbuild/linux-arm64': 0.18.10
+ '@esbuild/linux-ia32': 0.18.10
+ '@esbuild/linux-loong64': 0.18.10
+ '@esbuild/linux-mips64el': 0.18.10
+ '@esbuild/linux-ppc64': 0.18.10
+ '@esbuild/linux-riscv64': 0.18.10
+ '@esbuild/linux-s390x': 0.18.10
+ '@esbuild/linux-x64': 0.18.10
+ '@esbuild/netbsd-x64': 0.18.10
+ '@esbuild/openbsd-x64': 0.18.10
+ '@esbuild/sunos-x64': 0.18.10
+ '@esbuild/win32-arm64': 0.18.10
+ '@esbuild/win32-ia32': 0.18.10
+ '@esbuild/win32-x64': 0.18.10
+ dev: true
+
/escalade@3.1.1:
resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
engines: {node: '>=6'}
@@ -10388,7 +10561,20 @@ packages:
source-map: 0.6.1
dev: true
- /eslint-config-next@13.4.3(eslint@8.41.0)(typescript@5.0.4):
+ /escodegen@2.0.0:
+ resolution: {integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==}
+ engines: {node: '>=6.0'}
+ hasBin: true
+ dependencies:
+ esprima: 4.0.1
+ estraverse: 5.3.0
+ esutils: 2.0.3
+ optionator: 0.8.3
+ optionalDependencies:
+ source-map: 0.6.1
+ dev: true
+
+ /eslint-config-next@13.4.3(eslint@8.43.0)(typescript@5.0.4):
resolution: {integrity: sha512-1lXwdFi29fKxzeugof/TUE7lpHyJQt5+U4LaUHyvQfHjvsWO77vFNicJv5sX6k0VDVSbnfz0lw+avxI+CinbMg==}
peerDependencies:
eslint: ^7.23.0 || ^8.0.0
@@ -10399,14 +10585,14 @@ packages:
dependencies:
'@next/eslint-plugin-next': 13.4.3
'@rushstack/eslint-patch': 1.2.0
- '@typescript-eslint/parser': 5.59.2(eslint@8.41.0)(typescript@5.0.4)
- eslint: 8.41.0
+ '@typescript-eslint/parser': 5.59.2(eslint@8.43.0)(typescript@5.0.4)
+ eslint: 8.43.0
eslint-import-resolver-node: 0.3.6
- eslint-import-resolver-typescript: 3.5.2(eslint-plugin-import@2.26.0)(eslint@8.41.0)
- eslint-plugin-import: 2.26.0(eslint@8.41.0)
- eslint-plugin-jsx-a11y: 6.6.1(eslint@8.41.0)
- eslint-plugin-react: 7.32.2(eslint@8.41.0)
- eslint-plugin-react-hooks: 4.6.0(eslint@8.41.0)
+ eslint-import-resolver-typescript: 3.5.2(eslint-plugin-import@2.26.0)(eslint@8.43.0)
+ eslint-plugin-import: 2.26.0(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-typescript@3.5.2)(eslint@8.43.0)
+ eslint-plugin-jsx-a11y: 6.6.1(eslint@8.43.0)
+ eslint-plugin-react: 7.32.2(eslint@8.43.0)
+ eslint-plugin-react-hooks: 4.6.0(eslint@8.43.0)
typescript: 5.0.4
transitivePeerDependencies:
- eslint-import-resolver-webpack
@@ -10428,7 +10614,7 @@ packages:
eslint: 8.41.0
eslint-import-resolver-node: 0.3.6
eslint-import-resolver-typescript: 3.5.2(eslint-plugin-import@2.26.0)(eslint@8.41.0)
- eslint-plugin-import: 2.26.0(eslint@8.41.0)
+ eslint-plugin-import: 2.26.0(@typescript-eslint/parser@5.59.8)(eslint-import-resolver-typescript@3.5.2)(eslint@8.41.0)
eslint-plugin-jsx-a11y: 6.6.1(eslint@8.41.0)
eslint-plugin-react: 7.32.2(eslint@8.41.0)
eslint-plugin-react-hooks: 4.6.0(eslint@8.41.0)
@@ -10443,11 +10629,11 @@ packages:
peerDependencies:
eslint: 6.x || 7.x || 8.x
dependencies:
- '@babel/core': 7.20.12
- '@babel/eslint-parser': 7.19.1(@babel/core@7.20.12)(eslint@8.42.0)
- '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.20.12)
- '@babel/plugin-syntax-decorators': 7.19.0(@babel/core@7.20.12)
- '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.20.12)
+ '@babel/core': 7.22.5
+ '@babel/eslint-parser': 7.19.1(@babel/core@7.22.5)(eslint@8.42.0)
+ '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.22.5)
+ '@babel/plugin-syntax-decorators': 7.19.0(@babel/core@7.22.5)
+ '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.22.5)
eslint: 8.42.0
eslint-plugin-compat: 4.1.2(eslint@8.42.0)
eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.59.9)(eslint@8.42.0)(jest@29.5.0)(typescript@5.1.3)
@@ -10497,7 +10683,7 @@ packages:
debug: 4.3.4
enhanced-resolve: 5.12.0
eslint: 8.41.0
- eslint-plugin-import: 2.26.0(eslint@8.41.0)
+ eslint-plugin-import: 2.26.0(@typescript-eslint/parser@5.59.8)(eslint-import-resolver-typescript@3.5.2)(eslint@8.41.0)
get-tsconfig: 4.4.0
globby: 13.1.2
is-core-module: 2.11.0
@@ -10507,7 +10693,27 @@ packages:
- supports-color
dev: false
- /eslint-module-utils@2.7.4(eslint-import-resolver-node@0.3.6)(eslint@8.41.0):
+ /eslint-import-resolver-typescript@3.5.2(eslint-plugin-import@2.26.0)(eslint@8.43.0):
+ resolution: {integrity: sha512-zX4ebnnyXiykjhcBvKIf5TNvt8K7yX6bllTRZ14MiurKPjDpCAZujlszTdB8pcNXhZcOf+god4s9SjQa5GnytQ==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '*'
+ eslint-plugin-import: '*'
+ dependencies:
+ debug: 4.3.4
+ enhanced-resolve: 5.12.0
+ eslint: 8.43.0
+ eslint-plugin-import: 2.26.0(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-typescript@3.5.2)(eslint@8.43.0)
+ get-tsconfig: 4.4.0
+ globby: 13.1.2
+ is-core-module: 2.11.0
+ is-glob: 4.0.3
+ synckit: 0.8.4
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /eslint-module-utils@2.7.4(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.6)(eslint-import-resolver-typescript@3.5.2)(eslint@8.43.0):
resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==}
engines: {node: '>=4'}
peerDependencies:
@@ -10528,9 +10734,41 @@ packages:
eslint-import-resolver-webpack:
optional: true
dependencies:
+ '@typescript-eslint/parser': 5.59.2(eslint@8.43.0)(typescript@5.0.4)
+ debug: 3.2.7
+ eslint: 8.43.0
+ eslint-import-resolver-node: 0.3.6
+ eslint-import-resolver-typescript: 3.5.2(eslint-plugin-import@2.26.0)(eslint@8.43.0)
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /eslint-module-utils@2.7.4(@typescript-eslint/parser@5.59.8)(eslint-import-resolver-node@0.3.6)(eslint-import-resolver-typescript@3.5.2)(eslint@8.41.0):
+ resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==}
+ engines: {node: '>=4'}
+ peerDependencies:
+ '@typescript-eslint/parser': '*'
+ eslint: '*'
+ eslint-import-resolver-node: '*'
+ eslint-import-resolver-typescript: '*'
+ eslint-import-resolver-webpack: '*'
+ peerDependenciesMeta:
+ '@typescript-eslint/parser':
+ optional: true
+ eslint:
+ optional: true
+ eslint-import-resolver-node:
+ optional: true
+ eslint-import-resolver-typescript:
+ optional: true
+ eslint-import-resolver-webpack:
+ optional: true
+ dependencies:
+ '@typescript-eslint/parser': 5.59.8(eslint@8.41.0)(typescript@5.1.3)
debug: 3.2.7
eslint: 8.41.0
eslint-import-resolver-node: 0.3.6
+ eslint-import-resolver-typescript: 3.5.2(eslint-plugin-import@2.26.0)(eslint@8.41.0)
transitivePeerDependencies:
- supports-color
dev: false
@@ -10551,7 +10789,7 @@ packages:
semver: 7.3.8
dev: true
- /eslint-plugin-import@2.26.0(eslint@8.41.0):
+ /eslint-plugin-import@2.26.0(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-typescript@3.5.2)(eslint@8.43.0):
resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==}
engines: {node: '>=4'}
peerDependencies:
@@ -10561,13 +10799,45 @@ packages:
'@typescript-eslint/parser':
optional: true
dependencies:
+ '@typescript-eslint/parser': 5.59.2(eslint@8.43.0)(typescript@5.0.4)
+ array-includes: 3.1.6
+ array.prototype.flat: 1.3.1
+ debug: 2.6.9
+ doctrine: 2.1.0
+ eslint: 8.43.0
+ eslint-import-resolver-node: 0.3.6
+ eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.6)(eslint-import-resolver-typescript@3.5.2)(eslint@8.43.0)
+ has: 1.0.3
+ is-core-module: 2.11.0
+ is-glob: 4.0.3
+ minimatch: 3.1.2
+ object.values: 1.1.6
+ resolve: 1.22.2
+ tsconfig-paths: 3.14.1
+ transitivePeerDependencies:
+ - eslint-import-resolver-typescript
+ - eslint-import-resolver-webpack
+ - supports-color
+ dev: false
+
+ /eslint-plugin-import@2.26.0(@typescript-eslint/parser@5.59.8)(eslint-import-resolver-typescript@3.5.2)(eslint@8.41.0):
+ resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==}
+ engines: {node: '>=4'}
+ peerDependencies:
+ '@typescript-eslint/parser': '*'
+ eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
+ peerDependenciesMeta:
+ '@typescript-eslint/parser':
+ optional: true
+ dependencies:
+ '@typescript-eslint/parser': 5.59.8(eslint@8.41.0)(typescript@5.1.3)
array-includes: 3.1.6
array.prototype.flat: 1.3.1
debug: 2.6.9
doctrine: 2.1.0
eslint: 8.41.0
eslint-import-resolver-node: 0.3.6
- eslint-module-utils: 2.7.4(eslint-import-resolver-node@0.3.6)(eslint@8.41.0)
+ eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.59.8)(eslint-import-resolver-node@0.3.6)(eslint-import-resolver-typescript@3.5.2)(eslint@8.41.0)
has: 1.0.3
is-core-module: 2.11.0
is-glob: 4.0.3
@@ -10625,6 +10895,28 @@ packages:
semver: 6.3.0
dev: false
+ /eslint-plugin-jsx-a11y@6.6.1(eslint@8.43.0):
+ resolution: {integrity: sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==}
+ engines: {node: '>=4.0'}
+ peerDependencies:
+ eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
+ dependencies:
+ '@babel/runtime': 7.21.0
+ aria-query: 4.2.2
+ array-includes: 3.1.6
+ ast-types-flow: 0.0.7
+ axe-core: 4.5.2
+ axobject-query: 2.2.0
+ damerau-levenshtein: 1.0.8
+ emoji-regex: 9.2.2
+ eslint: 8.43.0
+ has: 1.0.3
+ jsx-ast-utils: 3.3.3
+ language-tags: 1.0.5
+ minimatch: 3.1.2
+ semver: 6.3.0
+ dev: false
+
/eslint-plugin-react-hooks@4.6.0(eslint@8.41.0):
resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==}
engines: {node: '>=10'}
@@ -10643,6 +10935,15 @@ packages:
eslint: 8.42.0
dev: true
+ /eslint-plugin-react-hooks@4.6.0(eslint@8.43.0):
+ resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
+ dependencies:
+ eslint: 8.43.0
+ dev: false
+
/eslint-plugin-react@7.32.2(eslint@8.41.0):
resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==}
engines: {node: '>=4'}
@@ -10691,6 +10992,30 @@ packages:
string.prototype.matchall: 4.0.8
dev: true
+ /eslint-plugin-react@7.32.2(eslint@8.43.0):
+ resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==}
+ engines: {node: '>=4'}
+ peerDependencies:
+ eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
+ dependencies:
+ array-includes: 3.1.6
+ array.prototype.flatmap: 1.3.1
+ array.prototype.tosorted: 1.1.1
+ doctrine: 2.1.0
+ eslint: 8.43.0
+ estraverse: 5.3.0
+ jsx-ast-utils: 3.3.3
+ minimatch: 3.1.2
+ object.entries: 1.1.6
+ object.fromentries: 2.0.6
+ object.hasown: 1.1.2
+ object.values: 1.1.6
+ prop-types: 15.8.1
+ resolve: 2.0.0-next.4
+ semver: 6.3.0
+ string.prototype.matchall: 4.0.8
+ dev: false
+
/eslint-plugin-turbo@1.8.8(eslint@8.41.0):
resolution: {integrity: sha512-zqyTIvveOY4YU5jviDWw9GXHd4RiKmfEgwsjBrV/a965w0PpDwJgEUoSMB/C/dU310Sv9mF3DSdEjxjJLaw6rA==}
peerDependencies:
@@ -10714,14 +11039,6 @@ packages:
esrecurse: 4.3.0
estraverse: 4.3.0
- /eslint-scope@7.1.1:
- resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- dependencies:
- esrecurse: 4.3.0
- estraverse: 5.3.0
- dev: false
-
/eslint-scope@7.2.0:
resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -10744,64 +11061,10 @@ packages:
engines: {node: '>=10'}
dev: true
- /eslint-visitor-keys@3.4.0:
- resolution: {integrity: sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- dev: false
-
/eslint-visitor-keys@3.4.1:
resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- /eslint@8.37.0:
- resolution: {integrity: sha512-NU3Ps9nI05GUoVMxcZx1J8CNR6xOvUT4jAUMH5+z8lpp3aEdPVCImKw6PWG4PY+Vfkpr+jvMpxs/qoE7wq0sPw==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- hasBin: true
- dependencies:
- '@eslint-community/eslint-utils': 4.2.0(eslint@8.37.0)
- '@eslint-community/regexpp': 4.4.0
- '@eslint/eslintrc': 2.0.2
- '@eslint/js': 8.37.0
- '@humanwhocodes/config-array': 0.11.8
- '@humanwhocodes/module-importer': 1.0.1
- '@nodelib/fs.walk': 1.2.8
- ajv: 6.12.6
- chalk: 4.1.2
- cross-spawn: 7.0.3
- debug: 4.3.4
- doctrine: 3.0.0
- escape-string-regexp: 4.0.0
- eslint-scope: 7.1.1
- eslint-visitor-keys: 3.4.0
- espree: 9.5.1
- esquery: 1.5.0
- esutils: 2.0.3
- 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.1
- import-fresh: 3.3.0
- imurmurhash: 0.1.4
- is-glob: 4.0.3
- is-path-inside: 3.0.3
- js-sdsl: 4.2.0
- 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.1
- text-table: 0.2.0
- transitivePeerDependencies:
- - supports-color
- dev: false
-
/eslint@8.41.0:
resolution: {integrity: sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -10897,20 +11160,58 @@ packages:
- supports-color
dev: true
+ /eslint@8.43.0:
+ resolution: {integrity: sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ hasBin: true
+ dependencies:
+ '@eslint-community/eslint-utils': 4.2.0(eslint@8.43.0)
+ '@eslint-community/regexpp': 4.4.0
+ '@eslint/eslintrc': 2.0.3
+ '@eslint/js': 8.43.0
+ '@humanwhocodes/config-array': 0.11.10
+ '@humanwhocodes/module-importer': 1.0.1
+ '@nodelib/fs.walk': 1.2.8
+ ajv: 6.12.6
+ chalk: 4.1.2
+ cross-spawn: 7.0.3
+ debug: 4.3.4
+ doctrine: 3.0.0
+ escape-string-regexp: 4.0.0
+ eslint-scope: 7.2.0
+ eslint-visitor-keys: 3.4.1
+ espree: 9.5.2
+ esquery: 1.5.0
+ esutils: 2.0.3
+ 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
+ graphemer: 1.4.0
+ ignore: 5.2.1
+ import-fresh: 3.3.0
+ imurmurhash: 0.1.4
+ is-glob: 4.0.3
+ is-path-inside: 3.0.3
+ 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.1
+ text-table: 0.2.0
+ transitivePeerDependencies:
+ - supports-color
+
/esm@3.2.25:
resolution: {integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==}
engines: {node: '>=6'}
dev: true
- /espree@9.5.1:
- resolution: {integrity: sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- dependencies:
- acorn: 8.8.1
- acorn-jsx: 5.3.2(acorn@8.8.1)
- eslint-visitor-keys: 3.4.1
- dev: false
-
/espree@9.5.2:
resolution: {integrity: sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -11329,10 +11630,6 @@ packages:
pkg-dir: 4.2.0
dev: true
- /find-root@1.1.0:
- resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==}
- dev: false
-
/find-up@3.0.0:
resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==}
engines: {node: '>=6'}
@@ -11417,7 +11714,7 @@ packages:
vue-template-compiler:
optional: true
dependencies:
- '@babel/code-frame': 7.18.6
+ '@babel/code-frame': 7.22.5
chalk: 2.4.2
eslint: 8.42.0
micromatch: 3.1.10
@@ -11447,7 +11744,6 @@ packages:
asynckit: 0.4.0
combined-stream: 1.0.8
mime-types: 2.1.35
- dev: false
/forwarded@0.2.0:
resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
@@ -11909,6 +12205,7 @@ packages:
/grapheme-splitter@1.0.4:
resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
+ dev: true
/graphemer@1.4.0:
resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
@@ -12150,19 +12447,19 @@ packages:
resolution: {integrity: sha512-7Wn5GMLuHBjZCb2bTmnDOycho0p/7UVaAeqXZGbHrBCl6Yd/xDhQJAXe6Ga9AXJH2I5zY1dEdYw2u1UptnSBJA==}
dev: true
- /html-element-map@1.3.1:
- resolution: {integrity: sha512-6XMlxrAFX4UEEGxctfFnmrFaaZFNf9i5fNuV5wZ3WWQ4FVaNP1aX1LkX9j2mfEx1NpjeE/rL3nmgEn23GdFmrg==}
- dependencies:
- array.prototype.filter: 1.0.2
- call-bind: 1.0.2
- dev: true
-
/html-encoding-sniffer@1.0.2:
resolution: {integrity: sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==}
dependencies:
whatwg-encoding: 1.0.5
dev: true
+ /html-encoding-sniffer@3.0.0:
+ resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==}
+ engines: {node: '>=12'}
+ dependencies:
+ whatwg-encoding: 2.0.0
+ dev: true
+
/html-entities@2.3.3:
resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==}
dev: true
@@ -12216,15 +12513,6 @@ packages:
entities: 2.2.0
dev: true
- /htmlparser2@8.0.1:
- resolution: {integrity: sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==}
- dependencies:
- domelementtype: 2.3.0
- domhandler: 5.0.3
- domutils: 3.0.1
- entities: 4.4.0
- dev: true
-
/http-cache-semantics@4.1.0:
resolution: {integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==}
@@ -12571,6 +12859,7 @@ packages:
/is-arrayish@0.2.1:
resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
+ dev: true
/is-arrayish@0.3.2:
resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
@@ -12706,13 +12995,6 @@ packages:
engines: {node: '>=8'}
hasBin: true
- /is-dom@1.1.0:
- resolution: {integrity: sha512-u82f6mvhYxRPKpw8V1N0W8ce1xXwOrQtgGcxl6UCL5zBmZu3is/18K0rR7uFCnMDuAsS/3W54mGL4vsaFUQlEQ==}
- dependencies:
- is-object: 1.0.2
- is-window: 1.0.2
- dev: false
-
/is-extendable@0.1.1:
resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
engines: {node: '>=0.10.0'}
@@ -12841,10 +13123,6 @@ packages:
resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==}
engines: {node: '>=8'}
- /is-object@1.0.2:
- resolution: {integrity: sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==}
- dev: false
-
/is-path-cwd@2.2.0:
resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==}
engines: {node: '>=6'}
@@ -12883,6 +13161,10 @@ packages:
isobject: 3.0.1
dev: true
+ /is-potential-custom-element-name@1.0.1:
+ resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
+ dev: true
+
/is-redirect@1.0.0:
resolution: {integrity: sha512-cr/SlUEe5zOGmzvj9bUyC4LVvkNVAXu4GytXLNMr1pny+a65MpQ9IJzFHD5vi7FyJgb4qt27+eS3TuQnqB+RQw==}
engines: {node: '>=0.10.0'}
@@ -12949,10 +13231,6 @@ packages:
better-path-resolve: 1.0.0
dev: true
- /is-subset@0.1.1:
- resolution: {integrity: sha512-6Ybun0IkarhmEqxXCNw/C0bna6Zb/TkfUX9UbwJtK6ObwAVCxmAP308WWTHviM/zAqXk05cdhYsUsZeGQh99iw==}
- dev: true
-
/is-symbol@1.0.4:
resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
engines: {node: '>= 0.4'}
@@ -12972,10 +13250,6 @@ packages:
dependencies:
call-bind: 1.0.2
- /is-window@1.0.2:
- resolution: {integrity: sha512-uj00kdXyZb9t9RcAUAwMZAnkBUwdYGhYlt7djMXhfyhUCzwNba50tIiBKR7q0l7tdoBtFVw/3JmLY6fI3rmZmg==}
- dev: false
-
/is-windows@1.0.2:
resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
engines: {node: '>=0.10.0'}
@@ -13014,10 +13288,19 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
+ /isomorphic-fetch@3.0.0:
+ resolution: {integrity: sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==}
+ dependencies:
+ node-fetch: 2.6.7
+ whatwg-fetch: 3.6.2
+ transitivePeerDependencies:
+ - encoding
+ dev: true
+
/isomorphic-unfetch@3.1.0:
resolution: {integrity: sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q==}
dependencies:
- node-fetch: 2.6.7
+ node-fetch: 2.6.12
unfetch: 4.2.0
transitivePeerDependencies:
- encoding
@@ -13040,8 +13323,8 @@ packages:
resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==}
engines: {node: '>=8'}
dependencies:
- '@babel/core': 7.20.12
- '@babel/parser': 7.20.13
+ '@babel/core': 7.22.5
+ '@babel/parser': 7.22.5
'@istanbuljs/schema': 0.1.3
istanbul-lib-coverage: 3.2.0
semver: 6.3.0
@@ -13113,7 +13396,7 @@ packages:
'@jest/expect': 29.5.0
'@jest/test-result': 29.5.0
'@jest/types': 29.5.0
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
chalk: 4.1.2
co: 4.6.0
dedent: 0.7.0
@@ -13150,7 +13433,7 @@ packages:
exit: 0.1.2
graceful-fs: 4.2.10
import-local: 3.1.0
- jest-config: 29.5.0
+ jest-config: 29.5.0(@types/node@20.3.2)
jest-util: 29.5.0
jest-validate: 29.5.0
prompts: 2.4.2
@@ -13161,7 +13444,7 @@ packages:
- ts-node
dev: true
- /jest-config@29.5.0:
+ /jest-config@29.5.0(@types/node@20.3.2):
resolution: {integrity: sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
peerDependencies:
@@ -13173,49 +13456,11 @@ packages:
ts-node:
optional: true
dependencies:
- '@babel/core': 7.20.12
+ '@babel/core': 7.22.5
'@jest/test-sequencer': 29.5.0
'@jest/types': 29.5.0
- babel-jest: 29.5.0(@babel/core@7.20.12)
- chalk: 4.1.2
- ci-info: 3.7.0
- deepmerge: 4.2.2
- glob: 7.2.3
- graceful-fs: 4.2.10
- jest-circus: 29.5.0
- jest-environment-node: 29.5.0
- jest-get-type: 29.4.3
- jest-regex-util: 29.4.3
- jest-resolve: 29.5.0
- jest-runner: 29.5.0
- jest-util: 29.5.0
- jest-validate: 29.5.0
- micromatch: 4.0.5
- parse-json: 5.2.0
- pretty-format: 29.5.0
- slash: 3.0.0
- strip-json-comments: 3.1.1
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /jest-config@29.5.0(@types/node@20.2.3):
- resolution: {integrity: sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- peerDependencies:
- '@types/node': '*'
- ts-node: '>=9.0.0'
- peerDependenciesMeta:
- '@types/node':
- optional: true
- ts-node:
- optional: true
- dependencies:
- '@babel/core': 7.20.12
- '@jest/test-sequencer': 29.5.0
- '@jest/types': 29.5.0
- '@types/node': 20.2.3
- babel-jest: 29.5.0(@babel/core@7.20.12)
+ '@types/node': 20.3.2
+ babel-jest: 29.5.0(@babel/core@7.22.5)
chalk: 4.1.2
ci-info: 3.7.0
deepmerge: 4.2.2
@@ -13266,6 +13511,29 @@ packages:
pretty-format: 29.5.0
dev: true
+ /jest-environment-jsdom@29.5.0:
+ resolution: {integrity: sha512-/KG8yEK4aN8ak56yFVdqFDzKNHgF4BAymCx2LbPNPsUshUlfAl0eX402Xm1pt+eoG9SLZEUVifqXtX8SK74KCw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ peerDependencies:
+ canvas: ^2.5.0
+ peerDependenciesMeta:
+ canvas:
+ optional: true
+ dependencies:
+ '@jest/environment': 29.5.0
+ '@jest/fake-timers': 29.5.0
+ '@jest/types': 29.5.0
+ '@types/jsdom': 20.0.1
+ '@types/node': 20.3.2
+ jest-mock: 29.5.0
+ jest-util: 29.5.0
+ jsdom: 20.0.3
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+ dev: true
+
/jest-environment-node@29.5.0:
resolution: {integrity: sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -13273,11 +13541,20 @@ packages:
'@jest/environment': 29.5.0
'@jest/fake-timers': 29.5.0
'@jest/types': 29.5.0
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
jest-mock: 29.5.0
jest-util: 29.5.0
dev: true
+ /jest-fetch-mock@3.0.3:
+ resolution: {integrity: sha512-Ux1nWprtLrdrH4XwE7O7InRY6psIi3GOsqNESJgMJ+M5cv4A8Lh7SN9d2V2kKRZ8ebAfcd1LNyZguAOb6JiDqw==}
+ dependencies:
+ cross-fetch: 3.1.6
+ promise-polyfill: 8.3.0
+ transitivePeerDependencies:
+ - encoding
+ dev: true
+
/jest-get-type@29.4.3:
resolution: {integrity: sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -13289,7 +13566,7 @@ packages:
dependencies:
'@jest/types': 27.5.1
'@types/graceful-fs': 4.1.5
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
anymatch: 3.1.3
fb-watchman: 2.0.2
graceful-fs: 4.2.10
@@ -13309,7 +13586,7 @@ packages:
dependencies:
'@jest/types': 29.5.0
'@types/graceful-fs': 4.1.5
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
anymatch: 3.1.3
fb-watchman: 2.0.2
graceful-fs: 4.2.10
@@ -13344,7 +13621,7 @@ packages:
resolution: {integrity: sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==}
engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
dependencies:
- '@babel/code-frame': 7.18.6
+ '@babel/code-frame': 7.22.5
'@jest/types': 27.5.1
'@types/stack-utils': 2.0.1
chalk: 4.1.2
@@ -13359,7 +13636,7 @@ packages:
resolution: {integrity: sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@babel/code-frame': 7.18.6
+ '@babel/code-frame': 7.22.5
'@jest/types': 29.5.0
'@types/stack-utils': 2.0.1
chalk: 4.1.2
@@ -13375,7 +13652,7 @@ packages:
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@jest/types': 29.5.0
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
jest-util: 29.5.0
dev: true
@@ -13398,12 +13675,12 @@ packages:
preact: 10.x
preact-render-to-string: 5.x
dependencies:
- '@babel/core': 7.20.12
- '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.20.12)
- '@babel/plugin-transform-react-jsx': 7.19.0(@babel/core@7.20.12)
- '@babel/preset-env': 7.20.2(@babel/core@7.20.12)
- '@babel/preset-typescript': 7.18.6(@babel/core@7.20.12)
- babel-jest: 27.5.1(@babel/core@7.20.12)
+ '@babel/core': 7.22.5
+ '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.22.5)
+ '@babel/plugin-transform-react-jsx': 7.19.0(@babel/core@7.22.5)
+ '@babel/preset-env': 7.22.5(@babel/core@7.22.5)
+ '@babel/preset-typescript': 7.22.5(@babel/core@7.22.5)
+ babel-jest: 27.5.1(@babel/core@7.22.5)
identity-obj-proxy: 3.0.0
isomorphic-unfetch: 3.1.0
jest: 29.5.0
@@ -13459,7 +13736,7 @@ packages:
'@jest/test-result': 29.5.0
'@jest/transform': 29.5.0
'@jest/types': 29.5.0
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
chalk: 4.1.2
emittery: 0.13.1
graceful-fs: 4.2.10
@@ -13490,7 +13767,7 @@ packages:
'@jest/test-result': 29.5.0
'@jest/transform': 29.5.0
'@jest/types': 29.5.0
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
chalk: 4.1.2
cjs-module-lexer: 1.2.2
collect-v8-coverage: 1.0.1
@@ -13513,7 +13790,7 @@ packages:
resolution: {integrity: sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==}
engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
dependencies:
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
graceful-fs: 4.2.10
dev: true
@@ -13521,18 +13798,18 @@ packages:
resolution: {integrity: sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@babel/core': 7.20.12
- '@babel/generator': 7.20.14
- '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.20.12)
- '@babel/plugin-syntax-typescript': 7.20.0(@babel/core@7.20.12)
- '@babel/traverse': 7.20.13
- '@babel/types': 7.20.7
+ '@babel/core': 7.22.5
+ '@babel/generator': 7.22.5
+ '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.5)
+ '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.22.5)
+ '@babel/traverse': 7.22.5
+ '@babel/types': 7.22.5
'@jest/expect-utils': 29.5.0
'@jest/transform': 29.5.0
'@jest/types': 29.5.0
'@types/babel__traverse': 7.18.3
'@types/prettier': 2.7.2
- babel-preset-current-node-syntax: 1.0.1(@babel/core@7.20.12)
+ babel-preset-current-node-syntax: 1.0.1(@babel/core@7.22.5)
chalk: 4.1.2
expect: 29.5.0
graceful-fs: 4.2.10
@@ -13543,7 +13820,7 @@ packages:
jest-util: 29.5.0
natural-compare: 1.4.0
pretty-format: 29.5.0
- semver: 7.3.8
+ semver: 7.5.3
transitivePeerDependencies:
- supports-color
dev: true
@@ -13553,7 +13830,7 @@ packages:
engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
dependencies:
'@jest/types': 27.5.1
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
chalk: 4.1.2
ci-info: 3.7.0
graceful-fs: 4.2.10
@@ -13565,7 +13842,7 @@ packages:
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@jest/types': 29.5.0
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
chalk: 4.1.2
ci-info: 3.7.0
graceful-fs: 4.2.10
@@ -13606,7 +13883,7 @@ packages:
dependencies:
'@jest/test-result': 27.5.1
'@jest/types': 27.5.1
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
ansi-escapes: 4.3.2
chalk: 4.1.2
jest-util: 27.5.1
@@ -13619,7 +13896,7 @@ packages:
dependencies:
'@jest/test-result': 29.5.0
'@jest/types': 29.5.0
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
ansi-escapes: 4.3.2
chalk: 4.1.2
emittery: 0.13.1
@@ -13631,7 +13908,7 @@ packages:
resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==}
engines: {node: '>= 10.13.0'}
dependencies:
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
merge-stream: 2.0.0
supports-color: 7.2.0
dev: true
@@ -13640,7 +13917,7 @@ packages:
resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
engines: {node: '>= 10.13.0'}
dependencies:
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
merge-stream: 2.0.0
supports-color: 8.1.1
@@ -13648,7 +13925,7 @@ packages:
resolution: {integrity: sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
jest-util: 29.5.0
merge-stream: 2.0.0
supports-color: 8.1.1
@@ -13688,18 +13965,10 @@ packages:
engines: {node: '>=10'}
dev: true
- /jquery@3.7.0:
- resolution: {integrity: sha512-umpJ0/k8X0MvD1ds0P9SfowREz2LenHsQaxSohMZ5OMNEU2r0tf8pdeEFTHMFxWVxKNyU9rTtK3CWzUCTKJUeQ==}
- dev: false
-
/js-cookie@2.2.1:
resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==}
dev: false
- /js-sdsl@4.2.0:
- resolution: {integrity: sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==}
- dev: false
-
/js-tokens@3.0.2:
resolution: {integrity: sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==}
dev: false
@@ -13759,6 +14028,47 @@ packages:
- utf-8-validate
dev: true
+ /jsdom@20.0.3:
+ resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ canvas: ^2.5.0
+ peerDependenciesMeta:
+ canvas:
+ optional: true
+ dependencies:
+ abab: 2.0.6
+ acorn: 8.8.1
+ acorn-globals: 7.0.1
+ cssom: 0.5.0
+ cssstyle: 2.3.0
+ data-urls: 3.0.2
+ 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
+ saxes: 6.0.0
+ symbol-tree: 3.2.4
+ tough-cookie: 4.1.3
+ w3c-xmlserializer: 4.0.0
+ webidl-conversions: 7.0.0
+ whatwg-encoding: 2.0.0
+ whatwg-mimetype: 3.0.0
+ whatwg-url: 11.0.0
+ ws: 8.11.0
+ xml-name-validator: 4.0.0
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+ dev: true
+
/jsesc@0.5.0:
resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==}
hasBin: true
@@ -14012,6 +14322,7 @@ packages:
/lines-and-columns@1.2.4:
resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
+ dev: true
/linkify-it@4.0.1:
resolution: {integrity: sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==}
@@ -14019,18 +14330,6 @@ packages:
uc.micro: 1.0.6
dev: false
- /linkifyjs@2.1.9(jquery@3.7.0)(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-74ivurkK6WHvHFozVaGtQWV38FzBwSTGNmJolEgFp7QgR2bl6ArUWlvT4GcHKbPe1z3nWYi+VUdDZk16zDOVug==}
- peerDependencies:
- jquery: '>= 1.11.0'
- react: '>= 0.14.0'
- react-dom: '>= 0.14.0'
- dependencies:
- jquery: 3.7.0
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- dev: false
-
/listify@1.0.3:
resolution: {integrity: sha512-083swF7iH7bx8666zdzBColpgEuy46HjN3r1isD4zV6Ix7FuHfb/2/WVnl4CH8hjuoWeFF7P5KkKNXUnJCFEJg==}
engines: {node: '>= 0.4'}
@@ -14132,26 +14431,14 @@ packages:
resolution: {integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==}
dev: true
- /lodash.escape@4.0.1:
- resolution: {integrity: sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw==}
- dev: true
-
/lodash.flatten@4.4.0:
resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==}
dev: true
- /lodash.flattendeep@4.4.0:
- resolution: {integrity: sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==}
- dev: true
-
/lodash.get@4.4.2:
resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==}
dev: false
- /lodash.isequal@4.5.0:
- resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==}
- dev: true
-
/lodash.isplainobject@4.0.6:
resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==}
dev: true
@@ -14205,8 +14492,8 @@ packages:
dependencies:
js-tokens: 4.0.0
- /lottie-web@5.11.0:
- resolution: {integrity: sha512-9vSt0AtdOH98GKDXwD5LPfFg9Pcmxt5+1BllAbudKM5iqPxpJnJUfuGaP45OyudDrESCOBgsjnntVUTygBNlzw==}
+ /lottie-web@5.12.2:
+ resolution: {integrity: sha512-uvhvYPC8kGPjXT3MyKMrL3JitEAmDMp30lVkuq/590Mw9ok6pWcFCwXJveo0t5uqYw1UREQHofD+jVpdjBv8wg==}
dev: false
/lower-case@1.1.4:
@@ -14602,18 +14889,18 @@ packages:
resolution: {integrity: sha512-aAF+nwFbkSIJGfrJk+HyzmJOq3KFaimH6OIFBU6J2DPjQeg1jXIYlIyEv81Gyisb9moUkudn+wj7zLNYMOv75Q==}
hasBin: true
dependencies:
- '@babel/core': 7.20.12
- '@babel/plugin-proposal-class-properties': 7.12.1(@babel/core@7.20.12)
- '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.20.12)
- '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.20.12)
- '@babel/plugin-transform-flow-strip-types': 7.19.0(@babel/core@7.20.12)
- '@babel/plugin-transform-react-jsx': 7.19.0(@babel/core@7.20.12)
- '@babel/plugin-transform-regenerator': 7.20.5(@babel/core@7.20.12)
- '@babel/preset-env': 7.20.2(@babel/core@7.20.12)
- '@babel/preset-flow': 7.18.6(@babel/core@7.20.12)
- '@babel/preset-react': 7.18.6(@babel/core@7.20.12)
+ '@babel/core': 7.22.5
+ '@babel/plugin-proposal-class-properties': 7.12.1(@babel/core@7.22.5)
+ '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.22.5)
+ '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.22.5)
+ '@babel/plugin-transform-flow-strip-types': 7.19.0(@babel/core@7.22.5)
+ '@babel/plugin-transform-react-jsx': 7.19.0(@babel/core@7.22.5)
+ '@babel/plugin-transform-regenerator': 7.20.5(@babel/core@7.22.5)
+ '@babel/preset-env': 7.22.5(@babel/core@7.22.5)
+ '@babel/preset-flow': 7.18.6(@babel/core@7.22.5)
+ '@babel/preset-react': 7.18.6(@babel/core@7.22.5)
'@rollup/plugin-alias': 3.1.9(rollup@2.79.1)
- '@rollup/plugin-babel': 5.3.1(@babel/core@7.20.12)(rollup@2.79.1)
+ '@rollup/plugin-babel': 5.3.1(@babel/core@7.22.5)(rollup@2.79.1)
'@rollup/plugin-commonjs': 17.1.0(rollup@2.79.1)
'@rollup/plugin-json': 4.1.0(rollup@2.79.1)
'@rollup/plugin-node-resolve': 11.2.1(rollup@2.79.1)
@@ -14622,7 +14909,7 @@ packages:
autoprefixer: 10.4.14(postcss@8.4.24)
babel-plugin-macros: 3.1.0
babel-plugin-transform-async-to-promises: 0.8.18
- babel-plugin-transform-replace-expressions: 0.2.0(@babel/core@7.20.12)
+ babel-plugin-transform-replace-expressions: 0.2.0(@babel/core@7.22.5)
brotli-size: 4.0.0
builtin-modules: 3.3.0
camelcase: 6.3.0
@@ -15224,10 +15511,6 @@ packages:
engines: {node: '>=10'}
hasBin: true
- /moo@0.5.2:
- resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==}
- dev: true
-
/move-concurrently@1.0.1:
resolution: {integrity: sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==}
dependencies:
@@ -15398,16 +15681,6 @@ packages:
/natural-compare@1.4.0:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
- /nearley@2.20.1:
- resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==}
- hasBin: true
- dependencies:
- commander: 2.20.3
- moo: 0.5.2
- railroad-diagrams: 1.0.0
- randexp: 0.4.6
- dev: true
-
/negotiator@0.6.3:
resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
engines: {node: '>= 0.6'}
@@ -15447,30 +15720,31 @@ packages:
uuid: 8.3.2
dev: false
- /next-plausible@3.7.2(next@13.3.0)(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-9PqFiVtD1kZO5gHFYTcgilHhg2WhMzD6I4NK/RUh9DGavD1N11IhNAvyGLFmvB3f4FtHC9IoAsauYDtQBt+riA==}
+ /next-plausible@3.8.0(next@13.4.7)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-fOSI5dRwQkDcARAPqwCM2nqYf2bCP5ITUrX/jj2owkggi7LHAaKku4k/6CoKHAygs7EumYiGOuPt+qaTxxo+YA==}
peerDependencies:
next: ^11.1.0 || ^12.0.0 || ^13.0.0
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
dependencies:
- next: 13.3.0(react-dom@18.2.0)(react@18.2.0)
+ next: 13.4.7(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
dev: false
- /next-sitemap@4.0.7(@next/env@13.4.4)(next@13.3.0):
- resolution: {integrity: sha512-S2g5IwJeO0+ecmFq981fb+Mw9YWmntOuN/qTCxclSkUibOJ8qKIOye0vn6NEJ1S4tKhbY+MTYKgJpNdFZYxLoA==}
+ /next-sitemap@4.1.3(@next/env@13.4.7)(next@13.4.7):
+ resolution: {integrity: sha512-eCvbXMCqbD/rYx912y4FzGOqPCbWOIBL4UkgVY5R15eCXygKFKWzEVZGPNVBDu2KVpRCeG943NibOchfyQGDhQ==}
engines: {node: '>=14.18'}
hasBin: true
peerDependencies:
'@next/env': '*'
next: '*'
dependencies:
- '@corex/deepmerge': 4.0.37
- '@next/env': 13.4.4
+ '@corex/deepmerge': 4.0.43
+ '@next/env': 13.4.7
+ fast-glob: 3.2.12
minimist: 1.2.8
- next: 13.3.0(react-dom@18.2.0)(react@18.2.0)
+ next: 13.4.7(react-dom@18.2.0)(react@18.2.0)
dev: false
/next@13.2.4(react-dom@18.2.0)(react@18.2.0):
@@ -15520,50 +15794,6 @@ packages:
- babel-plugin-macros
dev: false
- /next@13.3.0(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-OVTw8MpIPa12+DCUkPqRGPS3thlJPcwae2ZL4xti3iBff27goH024xy4q2lhlsdoYiKOi8Kz6uJoLW/GXwgfOA==}
- engines: {node: '>=14.6.0'}
- hasBin: true
- peerDependencies:
- '@opentelemetry/api': ^1.1.0
- fibers: '>= 3.1.0'
- node-sass: ^6.0.0 || ^7.0.0
- react: ^18.2.0
- react-dom: ^18.2.0
- sass: ^1.3.0
- peerDependenciesMeta:
- '@opentelemetry/api':
- optional: true
- fibers:
- optional: true
- node-sass:
- optional: true
- sass:
- optional: true
- dependencies:
- '@next/env': 13.3.0
- '@swc/helpers': 0.4.14
- busboy: 1.6.0
- caniuse-lite: 1.0.30001466
- postcss: 8.4.14
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- styled-jsx: 5.1.1(react@18.2.0)
- optionalDependencies:
- '@next/swc-darwin-arm64': 13.3.0
- '@next/swc-darwin-x64': 13.3.0
- '@next/swc-linux-arm64-gnu': 13.3.0
- '@next/swc-linux-arm64-musl': 13.3.0
- '@next/swc-linux-x64-gnu': 13.3.0
- '@next/swc-linux-x64-musl': 13.3.0
- '@next/swc-win32-arm64-msvc': 13.3.0
- '@next/swc-win32-ia32-msvc': 13.3.0
- '@next/swc-win32-x64-msvc': 13.3.0
- transitivePeerDependencies:
- - '@babel/core'
- - babel-plugin-macros
- dev: false
-
/next@13.4.3(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-FV3pBrAAnAIfOclTvncw9dDohyeuEEXPe5KNcva91anT/rdycWbgtu3IjUj4n5yHnWK8YEPo0vrUecHmnmUNbA==}
engines: {node: '>=16.8.0'}
@@ -15651,6 +15881,49 @@ packages:
- babel-plugin-macros
dev: false
+ /next@13.4.7(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-M8z3k9VmG51SRT6v5uDKdJXcAqLzP3C+vaKfLIAM0Mhx1um1G7MDnO63+m52qPdZfrTFzMZNzfsgvm3ghuVHIQ==}
+ engines: {node: '>=16.8.0'}
+ hasBin: true
+ peerDependencies:
+ '@opentelemetry/api': ^1.1.0
+ fibers: '>= 3.1.0'
+ react: ^18.2.0
+ react-dom: ^18.2.0
+ sass: ^1.3.0
+ peerDependenciesMeta:
+ '@opentelemetry/api':
+ optional: true
+ fibers:
+ optional: true
+ sass:
+ optional: true
+ dependencies:
+ '@next/env': 13.4.7
+ '@swc/helpers': 0.5.1
+ busboy: 1.6.0
+ caniuse-lite: 1.0.30001466
+ postcss: 8.4.14
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ styled-jsx: 5.1.1(react@18.2.0)
+ watchpack: 2.4.0
+ zod: 3.21.4
+ optionalDependencies:
+ '@next/swc-darwin-arm64': 13.4.7
+ '@next/swc-darwin-x64': 13.4.7
+ '@next/swc-linux-arm64-gnu': 13.4.7
+ '@next/swc-linux-arm64-musl': 13.4.7
+ '@next/swc-linux-x64-gnu': 13.4.7
+ '@next/swc-linux-x64-musl': 13.4.7
+ '@next/swc-win32-arm64-msvc': 13.4.7
+ '@next/swc-win32-ia32-msvc': 13.4.7
+ '@next/swc-win32-x64-msvc': 13.4.7
+ transitivePeerDependencies:
+ - '@babel/core'
+ - babel-plugin-macros
+ dev: false
+
/no-case@2.3.2:
resolution: {integrity: sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==}
dependencies:
@@ -15661,13 +15934,25 @@ packages:
resolution: {integrity: sha512-eSKV6s+APenqVh8ubJyiu/YhZgxQpGP66ntzUb3lY1xB9ukSRaGnx0AIxI+IM+1+IVYC1oWobgG5L3Lt9ARykQ==}
engines: {node: '>=10'}
dependencies:
- semver: 7.3.8
+ semver: 7.5.3
dev: false
- /node-addon-api@6.0.0:
- resolution: {integrity: sha512-GyHvgPvUXBvAkXa0YvYnhilSB1A+FRYMpIVggKzPZqdaZfevZOuzfWzyvgzOwRLHBeo/MMswmJFsrNF4Nw1pmA==}
+ /node-addon-api@6.1.0:
+ resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==}
dev: false
+ /node-fetch@2.6.12:
+ resolution: {integrity: sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==}
+ engines: {node: 4.x || >=6.0.0}
+ peerDependencies:
+ encoding: ^0.1.0
+ peerDependenciesMeta:
+ encoding:
+ optional: true
+ dependencies:
+ whatwg-url: 5.0.0
+ dev: true
+
/node-fetch@2.6.7:
resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==}
engines: {node: 4.x || >=6.0.0}
@@ -15844,14 +16129,6 @@ packages:
/object-inspect@1.12.2:
resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==}
- /object-is@1.1.5:
- resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==}
- engines: {node: '>= 0.4'}
- dependencies:
- call-bind: 1.0.2
- define-properties: 1.1.4
- dev: true
-
/object-keys@1.1.1:
resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
engines: {node: '>= 0.4'}
@@ -16247,23 +16524,17 @@ packages:
resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
engines: {node: '>=8'}
dependencies:
- '@babel/code-frame': 7.18.6
+ '@babel/code-frame': 7.22.5
error-ex: 1.3.2
json-parse-even-better-errors: 2.3.1
lines-and-columns: 1.2.4
+ dev: true
/parse-passwd@1.0.0:
resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==}
engines: {node: '>=0.10.0'}
dev: false
- /parse5-htmlparser2-tree-adapter@7.0.0:
- resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==}
- dependencies:
- domhandler: 5.0.3
- parse5: 7.1.2
- dev: true
-
/parse5@4.0.0:
resolution: {integrity: sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==}
dev: true
@@ -16417,10 +16688,6 @@ packages:
find-up: 4.1.0
dev: true
- /platform@1.3.6:
- resolution: {integrity: sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==}
- dev: false
-
/pn@1.1.0:
resolution: {integrity: sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==}
dev: true
@@ -16576,25 +16843,13 @@ packages:
resolve: 1.22.1
dev: true
- /postcss-import@14.1.0(postcss@8.4.22):
- resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==}
- engines: {node: '>=10.0.0'}
- peerDependencies:
- postcss: ^8.0.0
- dependencies:
- postcss: 8.4.22
- postcss-value-parser: 4.2.0
- read-cache: 1.0.0
- resolve: 1.22.1
- dev: true
-
- /postcss-import@15.1.0(postcss@8.4.23):
+ /postcss-import@15.1.0(postcss@8.4.24):
resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
engines: {node: '>=14.0.0'}
peerDependencies:
postcss: ^8.0.0
dependencies:
- postcss: 8.4.23
+ postcss: 8.4.24
postcss-value-parser: 4.2.0
read-cache: 1.0.0
resolve: 1.22.2
@@ -16610,40 +16865,14 @@ packages:
postcss: 8.4.21
dev: true
- /postcss-js@4.0.0(postcss@8.4.22):
- resolution: {integrity: sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==}
- engines: {node: ^12 || ^14 || >= 16}
- peerDependencies:
- postcss: ^8.3.3
- dependencies:
- camelcase-css: 2.0.1
- postcss: 8.4.22
- dev: true
-
- /postcss-js@4.0.1(postcss@8.4.23):
+ /postcss-js@4.0.1(postcss@8.4.24):
resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
engines: {node: ^12 || ^14 || >= 16}
peerDependencies:
postcss: ^8.4.21
dependencies:
camelcase-css: 2.0.1
- postcss: 8.4.23
- dev: true
-
- /postcss-load-config@3.1.4:
- resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==}
- engines: {node: '>= 10'}
- peerDependencies:
- postcss: '>=8.0.9'
- ts-node: '>=9.0.0'
- peerDependenciesMeta:
- postcss:
- optional: true
- ts-node:
- optional: true
- dependencies:
- lilconfig: 2.1.0
- yaml: 1.10.2
+ postcss: 8.4.24
dev: true
/postcss-load-config@3.1.4(postcss@8.4.21):
@@ -16663,23 +16892,6 @@ packages:
yaml: 1.10.2
dev: true
- /postcss-load-config@3.1.4(postcss@8.4.22):
- resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==}
- engines: {node: '>= 10'}
- peerDependencies:
- postcss: '>=8.0.9'
- ts-node: '>=9.0.0'
- peerDependenciesMeta:
- postcss:
- optional: true
- ts-node:
- optional: true
- dependencies:
- lilconfig: 2.1.0
- postcss: 8.4.22
- yaml: 1.10.2
- dev: true
-
/postcss-load-config@3.1.4(postcss@8.4.24):
resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==}
engines: {node: '>= 10'}
@@ -16697,7 +16909,7 @@ packages:
yaml: 1.10.2
dev: true
- /postcss-load-config@4.0.1(postcss@8.4.23):
+ /postcss-load-config@4.0.1(postcss@8.4.24):
resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==}
engines: {node: '>= 14'}
peerDependencies:
@@ -16710,7 +16922,7 @@ packages:
optional: true
dependencies:
lilconfig: 2.1.0
- postcss: 8.4.23
+ postcss: 8.4.24
yaml: 2.1.3
dev: true
@@ -16726,7 +16938,7 @@ packages:
loader-utils: 2.0.4
postcss: 8.4.24
schema-utils: 3.1.1
- semver: 7.3.8
+ semver: 7.5.3
webpack: 4.46.0
dev: true
@@ -16927,23 +17139,13 @@ packages:
postcss-selector-parser: 6.0.11
dev: true
- /postcss-nested@6.0.0(postcss@8.4.22):
- resolution: {integrity: sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==}
- engines: {node: '>=12.0'}
- peerDependencies:
- postcss: ^8.2.14
- dependencies:
- postcss: 8.4.22
- postcss-selector-parser: 6.0.11
- dev: true
-
- /postcss-nested@6.0.1(postcss@8.4.23):
+ /postcss-nested@6.0.1(postcss@8.4.24):
resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
engines: {node: '>=12.0'}
peerDependencies:
postcss: ^8.2.14
dependencies:
- postcss: 8.4.23
+ postcss: 8.4.24
postcss-selector-parser: 6.0.11
dev: true
@@ -17278,15 +17480,6 @@ packages:
source-map-js: 1.0.2
dev: true
- /postcss@8.4.22:
- resolution: {integrity: sha512-XseknLAfRHzVWjCEtdviapiBtfLdgyzExD50Rg2ePaucEesyh8Wv4VPdW0nbyDa1ydbrAxV19jvMT4+LFmcNUA==}
- engines: {node: ^10 || ^12 || >=14}
- dependencies:
- nanoid: 3.3.6
- picocolors: 1.0.0
- source-map-js: 1.0.2
- dev: true
-
/postcss@8.4.23:
resolution: {integrity: sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==}
engines: {node: ^10 || ^12 || >=14}
@@ -17340,22 +17533,22 @@ packages:
stylus-loader:
optional: true
dependencies:
- '@babel/core': 7.20.12
- '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.20.12)
- '@babel/plugin-proposal-decorators': 7.20.5(@babel/core@7.20.12)
- '@babel/plugin-proposal-object-rest-spread': 7.20.2(@babel/core@7.20.12)
- '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.20.12)
- '@babel/plugin-transform-object-assign': 7.18.6(@babel/core@7.20.12)
- '@babel/plugin-transform-react-jsx': 7.19.0(@babel/core@7.20.12)
- '@babel/preset-env': 7.20.2(@babel/core@7.20.12)
- '@babel/preset-typescript': 7.18.6(@babel/core@7.20.12)
+ '@babel/core': 7.22.5
+ '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.22.5)
+ '@babel/plugin-proposal-decorators': 7.20.5(@babel/core@7.22.5)
+ '@babel/plugin-proposal-object-rest-spread': 7.20.2(@babel/core@7.22.5)
+ '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.5)
+ '@babel/plugin-transform-object-assign': 7.18.6(@babel/core@7.22.5)
+ '@babel/plugin-transform-react-jsx': 7.19.0(@babel/core@7.22.5)
+ '@babel/preset-env': 7.22.5(@babel/core@7.22.5)
+ '@babel/preset-typescript': 7.22.5(@babel/core@7.22.5)
'@preact/async-loader': 3.0.2(preact@10.15.1)
'@prefresh/babel-plugin': 0.4.4
'@prefresh/webpack': 3.3.4(@prefresh/babel-plugin@0.4.4)(preact@10.15.1)(webpack@4.46.0)
'@types/webpack': 4.41.33
autoprefixer: 10.4.14(postcss@8.4.24)
babel-esm-plugin: 0.9.0(webpack@4.46.0)
- babel-loader: 8.3.0(@babel/core@7.20.12)(webpack@4.46.0)
+ babel-loader: 8.3.0(@babel/core@7.22.5)(webpack@4.46.0)
babel-plugin-macros: 3.1.0
babel-plugin-transform-react-remove-prop-types: 0.4.24
browserslist: 4.21.5
@@ -17616,11 +17809,13 @@ packages:
/pretty-format@3.8.0:
resolution: {integrity: sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==}
- /prism-react-renderer@1.3.5(react@18.2.0):
- resolution: {integrity: sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg==}
+ /prism-react-renderer@2.0.6(react@18.2.0):
+ resolution: {integrity: sha512-ERzmAI5UvrcTw5ivfEG20/dYClAsC84eSED5p9X3oKpm0xPV4A5clFK1mp7lPIdKmbLnQYsPTGiOI7WS6gWigw==}
peerDependencies:
- react: '>=0.14.9'
+ react: '>=16.0.0'
dependencies:
+ '@types/prismjs': 1.26.0
+ clsx: 1.2.1
react: 18.2.0
dev: false
@@ -17635,24 +17830,27 @@ packages:
- supports-color
dev: true
- /prisma-json-types-generator@2.4.0:
- resolution: {integrity: sha512-iOdo8sBoUz2jCi+kw5nwACbe0QHcPIIEToXyvn0cW5IJhPEhoYbY/XwMhEDIEla247YhXe1yYPiKwviFm9LNpg==}
+ /prisma-json-types-generator@2.5.0(prisma@4.16.1):
+ resolution: {integrity: sha512-jVaaIhHNceWba1LPnS6j1Q+HZLZnrTjwxGANfCvHxFtywSEP9iM25cs233m90TpC7E+ABFJcWgBpXob2ms+3gw==}
engines: {node: '>=14.0'}
hasBin: true
+ peerDependencies:
+ prisma: ^4.16.0
dependencies:
- '@prisma/generator-helper': 4.15.0
- tslib: 2.5.2
+ '@prisma/generator-helper': 4.16.0
+ prisma: 4.16.1
+ tslib: 2.5.3
transitivePeerDependencies:
- supports-color
dev: false
- /prisma@4.15.0:
- resolution: {integrity: sha512-iKZZpobPl48gTcSZVawLMQ3lEy6BnXwtoMj7hluoGFYu2kQ6F9LBuBrUyF95zRVnNo8/3KzLXJXJ5TEnLSJFiA==}
+ /prisma@4.16.1:
+ resolution: {integrity: sha512-C2Xm7yxHxjFjjscBEW4tmoraPHH/Vyu/A0XABdbaFtoiOZARsxvOM7rwc2iZ0qVxbh0bGBGBWZUSXO/52/nHBQ==}
engines: {node: '>=14.17'}
hasBin: true
requiresBuild: true
dependencies:
- '@prisma/engines': 4.15.0
+ '@prisma/engines': 4.16.1
/prismjs@1.27.0:
resolution: {integrity: sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==}
@@ -17839,6 +18037,10 @@ packages:
deprecated: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
dev: true
+ /querystringify@2.2.0:
+ resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
+ dev: true
+
/queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
@@ -17856,24 +18058,6 @@ packages:
resolution: {integrity: sha512-tQkJl2GRWh83ui2DiPTJz9wEiMN20syf+5oKfB03yYP7ioZcJwsIK8FjrtLwH1m7C7e+Tt2yYBlrOpdT+dyeIQ==}
dev: false
- /raf@3.4.1:
- resolution: {integrity: sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==}
- dependencies:
- performance-now: 2.1.0
- dev: true
-
- /railroad-diagrams@1.0.0:
- resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==}
- dev: true
-
- /randexp@0.4.6:
- resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==}
- engines: {node: '>=0.12'}
- dependencies:
- discontinuous-range: 1.0.0
- ret: 0.1.15
- dev: true
-
/randombytes@2.1.0:
resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
dependencies:
@@ -18011,17 +18195,6 @@ packages:
react: 18.2.0
dev: false
- /react-inspector@5.1.1(react@18.2.0):
- resolution: {integrity: sha512-GURDaYzoLbW8pMGXwYPDBIv6nqei4kK7LPRZ9q9HCZF54wqXz/dnylBp/kfE9XmekBhHvLDdcYeyIwSrvtOiWg==}
- peerDependencies:
- react: ^16.8.4 || ^17.0.0
- dependencies:
- '@babel/runtime': 7.21.0
- is-dom: 1.1.0
- prop-types: 15.8.1
- react: 18.2.0
- dev: false
-
/react-is@16.13.1:
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
@@ -18083,7 +18256,7 @@ packages:
'@types/react': 18.2.7
react: 18.2.0
react-style-singleton: 2.2.1(@types/react@18.2.7)(react@18.2.0)
- tslib: 2.5.2
+ tslib: 2.5.3
dev: false
/react-remove-scroll@2.5.4(@types/react@18.2.7)(react@18.2.0):
@@ -18100,7 +18273,7 @@ packages:
react: 18.2.0
react-remove-scroll-bar: 2.3.4(@types/react@18.2.7)(react@18.2.0)
react-style-singleton: 2.2.1(@types/react@18.2.7)(react@18.2.0)
- tslib: 2.5.2
+ tslib: 2.5.3
use-callback-ref: 1.3.0(@types/react@18.2.7)(react@18.2.0)
use-sidecar: 1.1.2(@types/react@18.2.7)(react@18.2.0)
dev: false
@@ -18119,7 +18292,7 @@ packages:
react: 18.2.0
react-remove-scroll-bar: 2.3.4(@types/react@18.2.7)(react@18.2.0)
react-style-singleton: 2.2.1(@types/react@18.2.7)(react@18.2.0)
- tslib: 2.5.2
+ tslib: 2.5.3
use-callback-ref: 1.3.0(@types/react@18.2.7)(react@18.2.0)
use-sidecar: 1.1.2(@types/react@18.2.7)(react@18.2.0)
dev: false
@@ -18149,7 +18322,7 @@ packages:
get-nonce: 1.0.1
invariant: 2.2.4
react: 18.2.0
- tslib: 2.5.2
+ tslib: 2.5.3
dev: false
/react-universal-interface@0.6.2(react@18.2.0)(tslib@2.4.1):
@@ -18348,6 +18521,18 @@ packages:
unicode-match-property-value-ecmascript: 2.1.0
dev: true
+ /regexpu-core@5.3.2:
+ resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==}
+ engines: {node: '>=4'}
+ dependencies:
+ '@babel/regjsgen': 0.8.0
+ regenerate: 1.4.2
+ regenerate-unicode-properties: 10.1.0
+ regjsparser: 0.9.1
+ unicode-match-property-ecmascript: 2.0.0
+ unicode-match-property-value-ecmascript: 2.1.0
+ dev: true
+
/registry-auth-token@3.4.0:
resolution: {integrity: sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==}
dependencies:
@@ -18697,7 +18882,7 @@ packages:
peerDependencies:
rollup: ^2.0.0
dependencies:
- '@babel/code-frame': 7.18.6
+ '@babel/code-frame': 7.22.5
jest-worker: 26.6.2
rollup: 2.79.1
serialize-javascript: 4.0.0
@@ -18715,7 +18900,7 @@ packages:
fs-extra: 10.1.0
resolve: 1.22.2
rollup: 2.79.1
- tslib: 2.5.2
+ tslib: 2.5.3
typescript: 4.9.5
dev: true
@@ -18762,13 +18947,6 @@ packages:
resolution: {integrity: sha512-eP5pirNjP5+GewQfcOQY4uBiDnpqxNRc65yKPW0eSoU1XamDfc4M8oqpXGMyUyvLyxFDB0q0+DChuxxiU2FXBQ==}
dev: false
- /rst-selector-parser@2.2.3:
- resolution: {integrity: sha512-nDG1rZeP6oFTLN6yNDV/uiAvs1+FS/KlrEwh7+y7dpuApDBy6bI2HTBcc0/V8lv9OTqfyD34eF7au2pm8aBbhA==}
- dependencies:
- lodash.flattendeep: 4.4.0
- nearley: 2.20.1
- dev: true
-
/rtl-css-js@1.16.1:
resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==}
dependencies:
@@ -18805,7 +18983,7 @@ packages:
/rxjs@7.8.0:
resolution: {integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==}
dependencies:
- tslib: 2.5.2
+ tslib: 2.5.3
dev: true
/sade@1.8.1:
@@ -18852,6 +19030,13 @@ packages:
xmlchars: 2.2.0
dev: true
+ /saxes@6.0.0:
+ resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
+ engines: {node: '>=v12.22.7'}
+ dependencies:
+ xmlchars: 2.2.0
+ dev: true
+
/scheduler@0.23.0:
resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
dependencies:
@@ -18899,6 +19084,11 @@ packages:
engines: {node: '>=0.10.0'}
dev: false
+ /search-insights@2.6.0:
+ resolution: {integrity: sha512-vU2/fJ+h/Mkm/DJOe+EaM5cafJv/1rRTZpGJTuFPf/Q5LjzgMDsqPdSaZsAe+GAWHHsfsu+rQSAn6c8IGtBEVw==}
+ engines: {node: '>=8.16.0'}
+ dev: false
+
/select-hose@2.0.0:
resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==}
dev: true
@@ -18942,6 +19132,13 @@ packages:
dependencies:
lru-cache: 6.0.0
+ /semver@7.5.3:
+ resolution: {integrity: sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==}
+ engines: {node: '>=10'}
+ hasBin: true
+ dependencies:
+ lru-cache: 6.0.0
+
/send@0.18.0:
resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==}
engines: {node: '>= 0.8.0'}
@@ -19008,6 +19205,10 @@ packages:
- supports-color
dev: true
+ /server-only@0.0.1:
+ resolution: {integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==}
+ dev: false
+
/set-blocking@2.0.0:
resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
@@ -19053,16 +19254,16 @@ packages:
kind-of: 6.0.3
dev: true
- /sharp@0.32.0:
- resolution: {integrity: sha512-yLAypVcqj1toSAqRSwbs86nEzfyZVDYqjuUX8grhFpeij0DDNagKJXELS/auegDBRDg1XBtELdOGfo2X1cCpeA==}
+ /sharp@0.32.1:
+ resolution: {integrity: sha512-kQTFtj7ldpUqSe8kDxoGLZc1rnMFU0AO2pqbX6pLy3b7Oj8ivJIdoKNwxHVQG2HN6XpHPJqCSM2nsma2gOXvOg==}
engines: {node: '>=14.15.0'}
requiresBuild: true
dependencies:
color: 4.2.3
detect-libc: 2.0.1
- node-addon-api: 6.0.0
+ node-addon-api: 6.1.0
prebuild-install: 7.1.1
- semver: 7.3.8
+ semver: 7.5.3
simple-get: 4.0.1
tar-fs: 2.1.1
tunnel-agent: 0.6.0
@@ -19297,6 +19498,7 @@ packages:
/source-map@0.5.7:
resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==}
engines: {node: '>=0.10.0'}
+ dev: true
/source-map@0.6.1:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
@@ -19589,15 +19791,6 @@ packages:
regexp.prototype.flags: 1.4.3
side-channel: 1.0.4
- /string.prototype.trim@1.2.7:
- resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==}
- engines: {node: '>= 0.4'}
- dependencies:
- call-bind: 1.0.2
- define-properties: 1.1.4
- es-abstract: 1.20.4
- dev: true
-
/string.prototype.trimend@1.0.6:
resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==}
dependencies:
@@ -19714,7 +19907,7 @@ packages:
resolution: {integrity: sha512-aJat4pGA6fr5DvuojRVXMaOCAw8ceS3UQM4ux1BMUViG686NmOAf1psEh6Wu+NFUifoy6kV7+4APq66OlTWtTw==}
engines: {node: '>=12.*'}
dependencies:
- '@types/node': 20.2.3
+ '@types/node': 20.3.2
qs: 6.11.0
dev: false
@@ -19894,20 +20087,12 @@ packages:
engines: {node: ^14.18.0 || >=16.0.0}
dependencies:
'@pkgr/utils': 2.3.1
- tslib: 2.5.2
+ tslib: 2.5.3
dev: false
/tailwind-merge@1.12.0:
resolution: {integrity: sha512-Y17eDp7FtN1+JJ4OY0Bqv9OA41O+MS8c1Iyr3T6JFLnOgLg3EvcyMKZAnQ8AGyvB5Nxm3t9Xb5Mhe139m8QT/g==}
- dev: true
-
- /tailwindcss-animate@1.0.5(tailwindcss@3.3.2):
- resolution: {integrity: sha512-UU3qrOJ4lFQABY+MVADmBm+0KW3xZyhMdRvejwtXqYOL7YjHYxmuREFAZdmVG5LPe5E9CAst846SLC4j5I3dcw==}
- peerDependencies:
- tailwindcss: '>=3.0.0 || insiders'
- dependencies:
- tailwindcss: 3.3.2
- dev: true
+ dev: false
/tailwindcss@3.3.1(postcss@8.4.21):
resolution: {integrity: sha512-Vkiouc41d4CEq0ujXl6oiGFQ7bA3WEhUZdTgXAhtKxSy49OmKs8rEfQmupsfF0IGW8fv2iQkp1EVUuapCFrZ9g==}
@@ -19944,41 +20129,6 @@ packages:
- ts-node
dev: true
- /tailwindcss@3.3.1(postcss@8.4.22):
- resolution: {integrity: sha512-Vkiouc41d4CEq0ujXl6oiGFQ7bA3WEhUZdTgXAhtKxSy49OmKs8rEfQmupsfF0IGW8fv2iQkp1EVUuapCFrZ9g==}
- engines: {node: '>=12.13.0'}
- hasBin: true
- peerDependencies:
- postcss: ^8.0.9
- dependencies:
- arg: 5.0.2
- chokidar: 3.5.3
- color-name: 1.1.4
- didyoumean: 1.2.2
- dlv: 1.1.3
- fast-glob: 3.2.12
- glob-parent: 6.0.2
- is-glob: 4.0.3
- jiti: 1.18.2
- lilconfig: 2.0.6
- micromatch: 4.0.5
- normalize-path: 3.0.0
- object-hash: 3.0.0
- picocolors: 1.0.0
- postcss: 8.4.22
- postcss-import: 14.1.0(postcss@8.4.22)
- postcss-js: 4.0.0(postcss@8.4.22)
- postcss-load-config: 3.1.4(postcss@8.4.22)
- postcss-nested: 6.0.0(postcss@8.4.22)
- postcss-selector-parser: 6.0.11
- postcss-value-parser: 4.2.0
- quick-lru: 5.1.1
- resolve: 1.22.1
- sucrase: 3.29.0
- transitivePeerDependencies:
- - ts-node
- dev: true
-
/tailwindcss@3.3.2:
resolution: {integrity: sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==}
engines: {node: '>=14.0.0'}
@@ -19998,11 +20148,11 @@ packages:
normalize-path: 3.0.0
object-hash: 3.0.0
picocolors: 1.0.0
- postcss: 8.4.23
- postcss-import: 15.1.0(postcss@8.4.23)
- postcss-js: 4.0.1(postcss@8.4.23)
- postcss-load-config: 4.0.1(postcss@8.4.23)
- postcss-nested: 6.0.1(postcss@8.4.23)
+ postcss: 8.4.24
+ postcss-import: 15.1.0(postcss@8.4.24)
+ postcss-js: 4.0.1(postcss@8.4.24)
+ postcss-load-config: 4.0.1(postcss@8.4.24)
+ postcss-nested: 6.0.1(postcss@8.4.24)
postcss-selector-parser: 6.0.11
postcss-value-parser: 4.2.0
resolve: 1.22.2
@@ -20303,6 +20453,7 @@ packages:
/to-fast-properties@2.0.0:
resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
engines: {node: '>=4'}
+ dev: true
/to-object-path@0.3.0:
resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==}
@@ -20365,6 +20516,16 @@ packages:
punycode: 2.1.1
dev: true
+ /tough-cookie@4.1.3:
+ resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==}
+ engines: {node: '>=6'}
+ dependencies:
+ psl: 1.9.0
+ punycode: 2.1.1
+ universalify: 0.2.0
+ url-parse: 1.5.10
+ dev: true
+
/tr46@0.0.3:
resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
dev: true
@@ -20375,6 +20536,13 @@ packages:
punycode: 2.1.1
dev: true
+ /tr46@3.0.0:
+ resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==}
+ engines: {node: '>=12'}
+ dependencies:
+ punycode: 2.1.1
+ dev: true
+
/tree-kill@1.2.2:
resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
hasBin: true
@@ -20439,8 +20607,8 @@ packages:
/tslib@2.4.1:
resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==}
- /tslib@2.5.2:
- resolution: {integrity: sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA==}
+ /tslib@2.5.3:
+ resolution: {integrity: sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==}
/tsup@6.7.0:
resolution: {integrity: sha512-L3o8hGkaHnu5TdJns+mCqFsDBo83bJ44rlK7e6VdanIvpea4ArPcU3swWGsLVbXak1PqQx/V+SSmFPujBK+zEQ==}
@@ -20466,57 +20634,20 @@ packages:
execa: 5.1.1
globby: 11.1.0
joycon: 3.1.1
- postcss-load-config: 3.1.4
- resolve-from: 5.0.0
- rollup: 3.5.1
- source-map: 0.8.0-beta.0
- sucrase: 3.29.0
- tree-kill: 1.2.2
- transitivePeerDependencies:
- - supports-color
- - ts-node
- dev: true
-
- /tsup@6.7.0(postcss@8.4.24)(typescript@5.0.4):
- resolution: {integrity: sha512-L3o8hGkaHnu5TdJns+mCqFsDBo83bJ44rlK7e6VdanIvpea4ArPcU3swWGsLVbXak1PqQx/V+SSmFPujBK+zEQ==}
- engines: {node: '>=14.18'}
- hasBin: true
- peerDependencies:
- '@swc/core': ^1
- postcss: ^8.4.12
- typescript: '>=4.1.0'
- peerDependenciesMeta:
- '@swc/core':
- optional: true
- postcss:
- optional: true
- typescript:
- optional: true
- dependencies:
- bundle-require: 4.0.1(esbuild@0.17.11)
- cac: 6.7.14
- chokidar: 3.5.3
- debug: 4.3.4
- esbuild: 0.17.11
- execa: 5.1.1
- globby: 11.1.0
- joycon: 3.1.1
- postcss: 8.4.24
postcss-load-config: 3.1.4(postcss@8.4.24)
resolve-from: 5.0.0
rollup: 3.5.1
source-map: 0.8.0-beta.0
sucrase: 3.29.0
tree-kill: 1.2.2
- typescript: 5.0.4
transitivePeerDependencies:
- supports-color
- ts-node
dev: true
- /tsup@6.7.0(typescript@5.0.4):
- resolution: {integrity: sha512-L3o8hGkaHnu5TdJns+mCqFsDBo83bJ44rlK7e6VdanIvpea4ArPcU3swWGsLVbXak1PqQx/V+SSmFPujBK+zEQ==}
- engines: {node: '>=14.18'}
+ /tsup@7.1.0(typescript@5.1.3):
+ resolution: {integrity: sha512-mazl/GRAk70j8S43/AbSYXGgvRP54oQeX8Un4iZxzATHt0roW0t6HYDVZIXMw0ZQIpvr1nFMniIVnN5186lW7w==}
+ engines: {node: '>=16.14'}
hasBin: true
peerDependencies:
'@swc/core': ^1
@@ -20530,21 +20661,21 @@ packages:
typescript:
optional: true
dependencies:
- bundle-require: 4.0.1(esbuild@0.17.11)
+ bundle-require: 4.0.1(esbuild@0.18.10)
cac: 6.7.14
chokidar: 3.5.3
debug: 4.3.4
- esbuild: 0.17.11
+ esbuild: 0.18.10
execa: 5.1.1
globby: 11.1.0
joycon: 3.1.1
- postcss-load-config: 3.1.4
+ postcss-load-config: 4.0.1(postcss@8.4.24)
resolve-from: 5.0.0
rollup: 3.5.1
source-map: 0.8.0-beta.0
- sucrase: 3.29.0
+ sucrase: 3.32.0
tree-kill: 1.2.2
- typescript: 5.0.4
+ typescript: 5.1.3
transitivePeerDependencies:
- supports-color
- ts-node
@@ -20761,7 +20892,7 @@ packages:
resolution: {integrity: sha512-xv8mOEDnigb/tN9PSMTwSEqAnUvkoXMQlicOb0IUVDBSQCgBSaAAROUZYy2IcUy5qU6XajK5jjjO7TMWqBTKZA==}
engines: {node: '>=12.20'}
hasBin: true
- dev: false
+ dev: true
/typescript@5.0.4:
resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==}
@@ -20976,6 +21107,11 @@ packages:
resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
engines: {node: '>= 4.0.0'}
+ /universalify@0.2.0:
+ resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==}
+ engines: {node: '>= 4.0.0'}
+ dev: true
+
/universalify@2.0.0:
resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==}
engines: {node: '>= 10.0.0'}
@@ -21068,7 +21204,7 @@ packages:
is-yarn-global: 0.3.0
latest-version: 5.1.0
pupa: 2.1.1
- semver: 7.3.8
+ semver: 7.5.3
semver-diff: 3.1.1
xdg-basedir: 4.0.0
dev: true
@@ -21117,6 +21253,13 @@ packages:
dependencies:
prepend-http: 2.0.0
+ /url-parse@1.5.10:
+ resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
+ dependencies:
+ querystringify: 2.2.0
+ requires-port: 1.0.0
+ dev: true
+
/url@0.11.0:
resolution: {integrity: sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==}
dependencies:
@@ -21136,7 +21279,7 @@ packages:
dependencies:
'@types/react': 18.2.7
react: 18.2.0
- tslib: 2.5.2
+ tslib: 2.5.3
dev: false
/use-isomorphic-layout-effect@1.1.2(@types/react@18.2.7)(react@18.2.0):
@@ -21173,7 +21316,7 @@ packages:
'@types/react': 18.2.7
detect-node-es: 1.1.0
react: 18.2.0
- tslib: 2.5.2
+ tslib: 2.5.3
dev: false
/use-sync-external-store@1.2.0(react@18.2.0):
@@ -21336,6 +21479,13 @@ packages:
browser-process-hrtime: 1.0.0
dev: true
+ /w3c-xmlserializer@4.0.0:
+ resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==}
+ engines: {node: '>=14'}
+ dependencies:
+ xml-name-validator: 4.0.0
+ dev: true
+
/walker@1.0.8:
resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
dependencies:
@@ -21392,6 +21542,11 @@ packages:
resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==}
dev: true
+ /webidl-conversions@7.0.0:
+ resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
+ engines: {node: '>=12'}
+ dev: true
+
/webpack-bundle-analyzer@4.8.0:
resolution: {integrity: sha512-ZzoSBePshOKhr+hd8u6oCkZVwpVaXgpw23ScGLFpR6SjYI7+7iIWYarjN6OEYOfRt8o7ZyZZQk0DuMizJ+LEIg==}
engines: {node: '>= 10.13.0'}
@@ -21636,10 +21791,34 @@ packages:
iconv-lite: 0.4.24
dev: true
+ /whatwg-encoding@2.0.0:
+ resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==}
+ engines: {node: '>=12'}
+ dependencies:
+ iconv-lite: 0.6.3
+ dev: true
+
+ /whatwg-fetch@3.6.2:
+ resolution: {integrity: sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==}
+ dev: true
+
/whatwg-mimetype@2.3.0:
resolution: {integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==}
dev: true
+ /whatwg-mimetype@3.0.0:
+ resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /whatwg-url@11.0.0:
+ resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ tr46: 3.0.0
+ webidl-conversions: 7.0.0
+ dev: true
+
/whatwg-url@5.0.0:
resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
dependencies:
@@ -21727,10 +21906,10 @@ packages:
engines: {node: '>=10.0.0'}
dependencies:
'@apideck/better-ajv-errors': 0.3.6(ajv@8.11.0)
- '@babel/core': 7.20.12
- '@babel/preset-env': 7.20.2(@babel/core@7.20.12)
+ '@babel/core': 7.22.5
+ '@babel/preset-env': 7.22.5(@babel/core@7.22.5)
'@babel/runtime': 7.21.0
- '@rollup/plugin-babel': 5.3.1(@babel/core@7.20.12)(rollup@2.79.1)
+ '@rollup/plugin-babel': 5.3.1(@babel/core@7.22.5)(rollup@2.79.1)
'@rollup/plugin-node-resolve': 11.2.1(rollup@2.79.1)
'@rollup/plugin-replace': 2.4.2(rollup@2.79.1)
'@surma/rollup-plugin-off-main-thread': 2.2.3
@@ -22000,6 +22179,11 @@ packages:
resolution: {integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==}
dev: true
+ /xml-name-validator@4.0.0:
+ resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
+ engines: {node: '>=12'}
+ dev: true
+
/xmlchars@2.2.0:
resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
dev: true
@@ -22029,6 +22213,7 @@ packages:
/yaml@1.10.2:
resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
engines: {node: '>= 6'}
+ dev: true
/yaml@2.1.3:
resolution: {integrity: sha512-AacA8nRULjKMX2DvWvOAdBZMOfQlypSFkjcOcu9FalllIDJ1kvlREzcdIZmidQUqqeMv7jorHjq2HlLv/+c2lg==}
@@ -22120,7 +22305,7 @@ packages:
readable-stream: 3.6.0
dev: true
- /zod-prisma@0.5.4(prisma@4.15.0)(zod@3.21.4):
+ /zod-prisma@0.5.4(prisma@4.16.1)(zod@3.21.4):
resolution: {integrity: sha512-5Ca4Qd1a1jy1T/NqCEpbr0c+EsbjJfJ/7euEHob3zDvtUK2rTuD1Rc/vfzH8q8PtaR2TZbysD88NHmrLwpv3Xg==}
engines: {node: '>=14'}
hasBin: true
@@ -22134,7 +22319,7 @@ packages:
dependencies:
'@prisma/generator-helper': 3.8.1
parenthesis: 3.1.8
- prisma: 4.15.0
+ prisma: 4.16.1
ts-morph: 13.0.3
zod: 3.21.4
dev: false
diff --git a/turbo.json b/turbo.json
index ad6d74def8..1f006505fc 100644
--- a/turbo.json
+++ b/turbo.json
@@ -5,7 +5,6 @@
"dependsOn": ["^build"],
"outputs": ["dist/**", ".next/**"],
"env": [
- "FORMBRICKS_LEGACY_HOST",
"GITHUB_ID",
"GITHUB_SECRET",
"GOOGLE_CLIENT_ID",
@@ -80,11 +79,15 @@
"outputs": []
},
"dev": {
- "cache": false
+ "cache": false,
+ "persistent": true
},
"start": {
"outputs": []
},
+ "test": {
+ "outputs": []
+ },
"generate": {
"dependsOn": ["^generate"]
},