From e90221654a6b371a95c91a44fb24f03d3d8b44fb Mon Sep 17 00:00:00 2001 From: Amaury <1293565+amaury1729@users.noreply.github.com> Date: Sun, 10 Dec 2023 10:51:12 +0100 Subject: [PATCH] chore: Update dependencies (#469) * React 18 * Sentry part1 * Update sentry * use @/util * Update packages --- .gitignore | 3 + next-env.d.ts | 1 + next.config.js | 65 +- package.json | 31 +- sentry.client.config.js | 17 - sentry.client.config.ts | 30 + sentry.edge.config.ts | 16 + sentry.properties | 4 - sentry.server.config.js | 17 - sentry.server.config.ts | 15 + src/app/global-error.tsx | 19 + src/app/layout.tsx | 16 + src/components/ApiUsage.tsx | 8 +- src/components/Dashboard.tsx | 6 +- src/components/Demo.tsx | 6 +- src/components/Footer.tsx | 7 +- src/components/Nav.tsx | 11 +- src/components/ProductCard/Card.tsx | 8 +- src/components/ProductCard/FreeTrial.tsx | 22 +- src/components/ProductCard/Sub.tsx | 70 +- src/components/ProductCard/index.ts | 4 +- src/components/SigninLayout.tsx | 2 +- src/components/StripeManageButton.tsx | 8 +- .../SubGetStarted/GetStartedLicense.tsx | 8 +- .../SubGetStarted/GetStartedSaas.tsx | 26 +- src/components/SubGetStarted/index.tsx | 10 +- src/pages/_app.tsx | 2 +- src/pages/_error.tsx | 18 + src/pages/api/calls/webhook.ts | 22 +- src/pages/api/sendinblue/create-contact.ts | 36 +- .../api/stripe/create-checkout-session.ts | 32 +- src/pages/api/stripe/create-portal-link.ts | 20 +- src/pages/api/stripe/webhooks.ts | 102 +- src/pages/api/v0/check_email.ts | 42 +- src/pages/dashboard.tsx | 6 +- src/pages/index.tsx | 8 +- src/pages/login.tsx | 4 +- src/pages/pricing.tsx | 10 +- src/pages/reset_password_part_one.tsx | 4 +- src/pages/reset_password_part_two.tsx | 8 +- src/pages/signup.tsx | 4 +- src/util/sentry.ts | 2 +- src/util/useUser.tsx | 18 +- yarn.lock | 1164 +++++------------ 44 files changed, 797 insertions(+), 1135 deletions(-) delete mode 100644 sentry.client.config.js create mode 100644 sentry.client.config.ts create mode 100644 sentry.edge.config.ts delete mode 100644 sentry.properties delete mode 100644 sentry.server.config.js create mode 100644 sentry.server.config.ts create mode 100644 src/app/global-error.tsx create mode 100644 src/app/layout.tsx create mode 100644 src/pages/_error.tsx diff --git a/.gitignore b/.gitignore index 23eab37d..1d0b5cf4 100644 --- a/.gitignore +++ b/.gitignore @@ -42,3 +42,6 @@ reacher_backends.json # Supabase **/supabase/.branches **/supabase/.temp + +# Sentry Config File +.sentryclirc diff --git a/next-env.d.ts b/next-env.d.ts index 4f11a03d..fd36f949 100644 --- a/next-env.d.ts +++ b/next-env.d.ts @@ -1,5 +1,6 @@ /// /// +/// // NOTE: This file should not be edited // see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/next.config.js b/next.config.js index 118f72ac..25811efc 100644 --- a/next.config.js +++ b/next.config.js @@ -1,36 +1,55 @@ -// This file sets a custom webpack configuration to use your Next.js app -// with Sentry. -// https://nextjs.org/docs/api-reference/next.config.js/introduction -// https://docs.sentry.io/platforms/javascript/guides/nextjs/ - -const { withSentryConfig } = require('@sentry/nextjs'); - -const moduleExports = { +const apiConfig = { async rewrites() { return [ { // Rewrite `api.reacher.email/v0/check_email` to // `reacher.email/api/v0/check_email` to be handled by the // Next.js API handlers. - source: '/v0/check_email', - destination: '/api/v0/check_email', + source: "/v0/check_email", + destination: "/api/v0/check_email", }, ]; }, }; -const SentryWebpackPluginOptions = { - // Additional config options for the Sentry Webpack plugin. Keep in mind that - // the following options are set automatically, and overriding them is not - // recommended: - // release, url, org, project, authToken, configFile, stripPrefix, - // urlPrefix, include, ignore +// Injected content via Sentry wizard below - silent: true, // Suppresses all logs - // For all available options, see: - // https://github.com/getsentry/sentry-webpack-plugin#options. -}; +const { withSentryConfig } = require("@sentry/nextjs"); + +module.exports = withSentryConfig( + apiConfig, + { + // For all available options, see: + // https://github.com/getsentry/sentry-webpack-plugin#options + + // Suppresses source map uploading logs during build + silent: true, + org: "reacherhq", + project: "webapp", + }, + { + // For all available options, see: + // https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/ + + // Upload a larger set of source maps for prettier stack traces (increases build time) + widenClientFileUpload: true, + + // Transpiles SDK to be compatible with IE11 (increases bundle size) + transpileClientSDK: true, + + // Routes browser requests to Sentry through a Next.js rewrite to circumvent ad-blockers (increases server load) + tunnelRoute: "/monitoring", + + // Hides source maps from generated client bundles + hideSourceMaps: true, + + // Automatically tree-shake Sentry logger statements to reduce bundle size + disableLogger: true, -// Make sure adding Sentry options is the last code to run before exporting, to -// ensure that your source maps include changes from all other Webpack plugins -module.exports = withSentryConfig(moduleExports, SentryWebpackPluginOptions); + // Enables automatic instrumentation of Vercel Cron Monitors. + // See the following for more information: + // https://docs.sentry.io/product/crons/ + // https://vercel.com/docs/cron-jobs + automaticVercelMonitors: true, + } +); diff --git a/package.json b/package.json index a24ac168..65b3329d 100644 --- a/package.json +++ b/package.json @@ -16,34 +16,33 @@ "dependencies": { "@geist-ui/react": "^2.1.5", "@geist-ui/react-icons": "^1.0.1", - "@hcaptcha/react-hcaptcha": "^1.4.4", + "@hcaptcha/react-hcaptcha": "^1.9.2", "@reacherhq/api": "^0.3.10", "@sendinblue/client": "^3.3.1", - "@sentry/nextjs": "^7.45.0", + "@sentry/nextjs": "^7.86.0", "@stripe/stripe-js": "^1.52.0", "@supabase/supabase-js": "^1.35.7", - "@types/cors": "^2.8.13", - "@types/mailgun-js": "^0.22.13", - "@types/markdown-pdf": "^9.0.2", - "@types/mustache": "^4.2.2", - "@types/react": "^17.0.43", - "@types/react-dom": "^18.0.11", - "@types/request-ip": "^0.0.37", - "@types/uuid": "^9.0.1", - "axios": "^1.3.4", + "@types/cors": "^2.8.17", + "@types/mailgun-js": "^0.22.18", + "@types/markdown-pdf": "^9.0.5", + "@types/mustache": "^4.2.5", + "@types/react": "18.2.19", + "@types/react-dom": "^18.2.17", + "@types/request-ip": "^0.0.41", + "@types/uuid": "^9.0.7", + "axios": "^1.6.2", "cors": "^2.8.5", - "date-fns": "^2.29.3", + "date-fns": "^2.30.0", "mailgun-js": "^0.22.0", "markdown-pdf": "^11.0.0", "mustache": "^4.2.0", - "next": "^12.2.5", + "next": "13", "rate-limiter-flexible": "^2.4.1", - "react": "^17.0.2", - "react-dom": "^17.0.2", + "react": "^18.2.0", + "react-dom": "^18.2.0", "stripe": "^9.13.0" }, "devDependencies": { - "@amaurym/config": "^1.3.6", "eslint-config-next": "^13.2.4", "supabase": "^1.115.5", "typescript": "^5.0.2", diff --git a/sentry.client.config.js b/sentry.client.config.js deleted file mode 100644 index 147d4d2a..00000000 --- a/sentry.client.config.js +++ /dev/null @@ -1,17 +0,0 @@ -// This file configures the initialization of Sentry on the browser. -// The config you add here will be used whenever a page is visited. -// https://docs.sentry.io/platforms/javascript/guides/nextjs/ - -import * as Sentry from '@sentry/nextjs'; - -const SENTRY_DSN = process.env.SENTRY_DSN || process.env.NEXT_PUBLIC_SENTRY_DSN; - -Sentry.init({ - dsn: SENTRY_DSN, - // Adjust this value in production, or use tracesSampler for greater control - tracesSampleRate: 1.0, - // ... - // Note: if you want to override the automatic release value, do not set a - // `release` value here - use the environment variable `SENTRY_RELEASE`, so - // that it will also get attached to your source maps -}); diff --git a/sentry.client.config.ts b/sentry.client.config.ts new file mode 100644 index 00000000..fb395c1e --- /dev/null +++ b/sentry.client.config.ts @@ -0,0 +1,30 @@ +// This file configures the initialization of Sentry on the client. +// The config you add here will be used whenever a users loads a page in their browser. +// https://docs.sentry.io/platforms/javascript/guides/nextjs/ + +import * as Sentry from "@sentry/nextjs"; + +Sentry.init({ + dsn: process.env.NEXT_PUBLIC_SENTRY_DSN, + + // Adjust this value in production, or use tracesSampler for greater control + tracesSampleRate: 1, + + // Setting this option to true will print useful information to the console while you're setting up Sentry. + debug: false, + + replaysOnErrorSampleRate: 1.0, + + // This sets the sample rate to be 10%. You may want this to be 100% while + // in development and sample at a lower rate in production + replaysSessionSampleRate: 0.1, + + // You can remove this option if you're not planning to use the Sentry Session Replay feature: + integrations: [ + new Sentry.Replay({ + // Additional Replay configuration goes in here, for example: + maskAllText: true, + blockAllMedia: true, + }), + ], +}); diff --git a/sentry.edge.config.ts b/sentry.edge.config.ts new file mode 100644 index 00000000..7f15b544 --- /dev/null +++ b/sentry.edge.config.ts @@ -0,0 +1,16 @@ +// This file configures the initialization of Sentry for edge features (middleware, edge routes, and so on). +// The config you add here will be used whenever one of the edge features is loaded. +// Note that this config is unrelated to the Vercel Edge Runtime and is also required when running locally. +// https://docs.sentry.io/platforms/javascript/guides/nextjs/ + +import * as Sentry from "@sentry/nextjs"; + +Sentry.init({ + dsn: process.env.NEXT_PUBLIC_SENTRY_DSN, + + // Adjust this value in production, or use tracesSampler for greater control + tracesSampleRate: 1, + + // Setting this option to true will print useful information to the console while you're setting up Sentry. + debug: false, +}); diff --git a/sentry.properties b/sentry.properties deleted file mode 100644 index 921d959b..00000000 --- a/sentry.properties +++ /dev/null @@ -1,4 +0,0 @@ -defaults.url=https://sentry.io/ -defaults.org=reacherhq -defaults.project=webapp -cli.executable=./node_modules/@sentry/cli/bin/sentry-cli diff --git a/sentry.server.config.js b/sentry.server.config.js deleted file mode 100644 index f138ddec..00000000 --- a/sentry.server.config.js +++ /dev/null @@ -1,17 +0,0 @@ -// This file configures the initialization of Sentry on the server. -// The config you add here will be used whenever the server handles a request. -// https://docs.sentry.io/platforms/javascript/guides/nextjs/ - -import * as Sentry from '@sentry/nextjs'; - -const SENTRY_DSN = process.env.SENTRY_DSN || process.env.NEXT_PUBLIC_SENTRY_DSN; - -Sentry.init({ - dsn: SENTRY_DSN, - // Adjust this value in production, or use tracesSampler for greater control - tracesSampleRate: 1.0, - // ... - // Note: if you want to override the automatic release value, do not set a - // `release` value here - use the environment variable `SENTRY_RELEASE`, so - // that it will also get attached to your source maps -}); diff --git a/sentry.server.config.ts b/sentry.server.config.ts new file mode 100644 index 00000000..56499f56 --- /dev/null +++ b/sentry.server.config.ts @@ -0,0 +1,15 @@ +// This file configures the initialization of Sentry on the server. +// The config you add here will be used whenever the server handles a request. +// https://docs.sentry.io/platforms/javascript/guides/nextjs/ + +import * as Sentry from "@sentry/nextjs"; + +Sentry.init({ + dsn: process.env.NEXT_PUBLIC_SENTRY_DSN, + + // Adjust this value in production, or use tracesSampler for greater control + tracesSampleRate: 1, + + // Setting this option to true will print useful information to the console while you're setting up Sentry. + debug: false, +}); diff --git a/src/app/global-error.tsx b/src/app/global-error.tsx new file mode 100644 index 00000000..93779ffc --- /dev/null +++ b/src/app/global-error.tsx @@ -0,0 +1,19 @@ +"use client"; + +import * as Sentry from "@sentry/nextjs"; +import Error from "next/error"; +import { useEffect } from "react"; + +export default function GlobalError({ error }: { error: Error }) { + useEffect(() => { + Sentry.captureException(error); + }, [error]); + + return ( + + + + + + ); +} diff --git a/src/app/layout.tsx b/src/app/layout.tsx new file mode 100644 index 00000000..7e8e1632 --- /dev/null +++ b/src/app/layout.tsx @@ -0,0 +1,16 @@ +export const metadata = { + title: "Next.js", + description: "Generated by Next.js", +}; + +export default function RootLayout({ + children, +}: { + children: React.ReactNode; +}) { + return ( + + {children} + + ); +} diff --git a/src/components/ApiUsage.tsx b/src/components/ApiUsage.tsx index d89046e8..5f0bccca 100644 --- a/src/components/ApiUsage.tsx +++ b/src/components/ApiUsage.tsx @@ -3,10 +3,10 @@ import { Loader } from "@geist-ui/react-icons"; import { format, parseISO } from "date-fns"; import React, { useEffect, useState } from "react"; -import { sentryException } from "../util/sentry"; -import { subApiMaxCalls } from "../util/subs"; -import { getApiUsageClient } from "../util/supabaseClient"; -import { useUser } from "../util/useUser"; +import { sentryException } from "@/util/sentry"; +import { subApiMaxCalls } from "@/util/subs"; +import { getApiUsageClient } from "@/util/supabaseClient"; +import { useUser } from "@/util/useUser"; import styles from "./ApiUsage.module.css"; import { Demo } from "./Demo"; diff --git a/src/components/Dashboard.tsx b/src/components/Dashboard.tsx index 08b10546..54431a40 100644 --- a/src/components/Dashboard.tsx +++ b/src/components/Dashboard.tsx @@ -7,9 +7,9 @@ import { COMMERCIAL_LICENSE_PRODUCT_ID, productName, SAAS_10K_PRODUCT_ID, -} from "../util/subs"; -import { SupabaseProductWithPrice } from "../util/supabaseClient"; -import { useUser } from "../util/useUser"; +} from "@/util/subs"; +import { SupabaseProductWithPrice } from "@/util/supabaseClient"; +import { useUser } from "@/util/useUser"; import { ApiUsage } from "./ApiUsage"; import styles from "./Dashboard.module.css"; diff --git a/src/components/Demo.tsx b/src/components/Demo.tsx index c0e78be0..b2f80b96 100644 --- a/src/components/Demo.tsx +++ b/src/components/Demo.tsx @@ -2,9 +2,9 @@ import { Button, Card, Code, Input, Spacer, Text } from "@geist-ui/react"; import { CheckEmailOutput } from "@reacherhq/api/lib"; import React, { useState } from "react"; -import { postData } from "../util/helpers"; -import { sentryException } from "../util/sentry"; -import { useUser } from "../util/useUser"; +import { postData } from "@/util/helpers"; +import { sentryException } from "@/util/sentry"; +import { useUser } from "@/util/useUser"; function alertError(e: string) { alert( diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx index 55446733..cb641c15 100644 --- a/src/components/Footer.tsx +++ b/src/components/Footer.tsx @@ -14,7 +14,12 @@ export function Footer(): React.ReactElement {
- + Reacher logo Made by Amaury, an indie diff --git a/src/components/Nav.tsx b/src/components/Nav.tsx index a611cb2c..369e81d8 100644 --- a/src/components/Nav.tsx +++ b/src/components/Nav.tsx @@ -6,8 +6,8 @@ import { useRouter } from "next/router"; import React from "react"; import logo from "../assets/logo/reacher.svg"; -import { sentryException } from "../util/sentry"; -import { useUser } from "../util/useUser"; +import { sentryException } from "@/util/sentry"; +import { useUser } from "@/util/useUser"; import styles from "./Nav.module.css"; export function Nav(): React.ReactElement { @@ -21,7 +21,12 @@ export function Nav(): React.ReactElement { className="flex" href={user ? "/dashboard" : "https://reacher.email"} > - + Reacher logo Reacher {user && ( diff --git a/src/components/ProductCard/Card.tsx b/src/components/ProductCard/Card.tsx index 173138e4..1a3ebf69 100644 --- a/src/components/ProductCard/Card.tsx +++ b/src/components/ProductCard/Card.tsx @@ -1,8 +1,8 @@ -import { Card as GCard, Divider, Spacer, Text } from '@geist-ui/react'; -import { Check } from '@geist-ui/react-icons'; -import React from 'react'; +import { Card as GCard, Divider, Spacer, Text } from "@geist-ui/react"; +import { Check } from "@geist-ui/react-icons"; +import React from "react"; -import styles from './Card.module.css'; +import styles from "./Card.module.css"; export interface CardProps extends React.HTMLProps { body?: string | React.ReactChild; diff --git a/src/components/ProductCard/FreeTrial.tsx b/src/components/ProductCard/FreeTrial.tsx index 67503cd3..52bf7365 100644 --- a/src/components/ProductCard/FreeTrial.tsx +++ b/src/components/ProductCard/FreeTrial.tsx @@ -1,8 +1,8 @@ -import { Button } from '@geist-ui/react'; -import React from 'react'; +import { Button } from "@geist-ui/react"; +import React from "react"; -import { productName } from '../../util/subs'; -import { Card } from './Card'; +import { productName } from "@/util/subs"; +import { Card } from "./Card"; export interface FreeTrialProps { active: boolean; @@ -13,8 +13,8 @@ export function FreeTrial({ active, currency, }: FreeTrialProps): React.ReactElement { - const priceString = new Intl.NumberFormat('en-US', { - style: 'currency', + const priceString = new Intl.NumberFormat("en-US", { + style: "currency", currency, minimumFractionDigits: 0, }).format(0); @@ -23,11 +23,11 @@ export function FreeTrial({ - {active ? 'Current Plan' : 'Not available'} + {active ? "Current Plan" : "Not available"} } features={[ - '50 email verifications per month.', + "50 email verifications per month.", Full-featured - {' '} + {" "} email verifications. , - Support via{' '} + Support via{" "} . , - 'No credit card required.', + "No credit card required.", ]} header="Free Forever" subtitle={ diff --git a/src/components/ProductCard/Sub.tsx b/src/components/ProductCard/Sub.tsx index 1b9955dd..09ac7843 100644 --- a/src/components/ProductCard/Sub.tsx +++ b/src/components/ProductCard/Sub.tsx @@ -1,20 +1,20 @@ -import { Button, Text } from '@geist-ui/react'; -import { Info } from '@geist-ui/react-icons'; -import { useRouter } from 'next/router'; -import React, { useState } from 'react'; +import { Button, Text } from "@geist-ui/react"; +import { Info } from "@geist-ui/react-icons"; +import { useRouter } from "next/router"; +import React, { useState } from "react"; -import { postData } from '../../util/helpers'; -import { sentryException } from '../../util/sentry'; -import { getStripe } from '../../util/stripeClient'; -import { COMMERCIAL_LICENSE_PRODUCT_ID } from '../../util/subs'; +import { postData } from "@/util/helpers"; +import { sentryException } from "@/util/sentry"; +import { getStripe } from "@/util/stripeClient"; +import { COMMERCIAL_LICENSE_PRODUCT_ID } from "@/util/subs"; import type { SupabasePrice, SupabaseProductWithPrice, SupabaseSubscription, -} from '../../util/supabaseClient'; -import { useUser } from '../../util/useUser'; -import { Card } from './Card'; -import styles from './Card.module.css'; +} from "@/util/supabaseClient"; +import { useUser } from "@/util/useUser"; +import { Card } from "./Card"; +import styles from "./Card.module.css"; export interface ProductCardProps { currency: string; @@ -41,21 +41,21 @@ export function ProductCard({ setPriceIdLoading(price.id); if (!session) { - router.push('/signup').catch(sentryException); + router.push("/signup").catch(sentryException); return; } try { const { sessionId } = await postData<{ sessionId: string }>({ - url: '/api/stripe/create-checkout-session', + url: "/api/stripe/create-checkout-session", data: { price }, token: session.access_token, }); const stripe = await getStripe(); if (!stripe) { - throw new Error('Empty stripe object at checkout'); + throw new Error("Empty stripe object at checkout"); } await stripe.redirectToCheckout({ sessionId }); @@ -67,8 +67,8 @@ export function ProductCard({ } }; - const priceString = new Intl.NumberFormat('en-US', { - style: 'currency', + const priceString = new Intl.NumberFormat("en-US", { + style: "currency", currency: price.currency, minimumFractionDigits: 0, }).format(price.unit_amount / 100); @@ -84,8 +84,8 @@ export function ProductCard({ window.sa_event( `pricing:${ product.id === COMMERCIAL_LICENSE_PRODUCT_ID - ? 'commercial' - : 'saas' + ? "commercial" + : "saas" }` ); handleCheckout(price).catch(sentryException); @@ -94,13 +94,13 @@ export function ProductCard({ > {priceIdLoading ? session - ? 'Redirecting to Stripe...' - : 'Redirecting to sign up page...' + ? "Redirecting to Stripe..." + : "Redirecting to sign up page..." : active - ? 'Current Plan' + ? "Current Plan" : user - ? 'Upgrade Plan' - : 'Get Started'} + ? "Upgrade Plan" + : "Get Started"} } features={ @@ -116,7 +116,7 @@ export function ProductCard({
Want a free trial before - committing? Feel free to try self-hosting with the{' '} + committing? Feel free to try self-hosting with the{" "} Full-featured - {' '} + {" "} email verifications. , - 'Customer support via email/chat.', - 'Cancel anytime.', + "Customer support via email/chat.", + "Cancel anytime.", ]; } @@ -184,7 +184,7 @@ function licenseFeatures(): (string | React.ReactElement)[] { Unlimited email verifications per month. , - 💪 Bulk email verification.{' '} + 💪 Bulk email verification.{" "} Full-featured - {' '} + {" "} email verifications. , - 'Customer support via email/chat.', + "Customer support via email/chat.", - Comes with{' '} + Comes with{" "} self-host guides - {' '} + {" "} (Heroku, Docker). , - See{' '} + See{" "} { diff --git a/src/components/StripeManageButton.tsx b/src/components/StripeManageButton.tsx index 0f8ff469..8e85d7e8 100644 --- a/src/components/StripeManageButton.tsx +++ b/src/components/StripeManageButton.tsx @@ -1,12 +1,12 @@ import { Link as GLink } from "@geist-ui/react"; import React, { useState } from "react"; -import { postData } from "../util/helpers"; -import { sentryException } from "../util/sentry"; -import { useUser } from "../util/useUser"; +import { postData } from "@/util/helpers"; +import { sentryException } from "@/util/sentry"; +import { useUser } from "@/util/useUser"; export interface StripeMananageButton { - children: React.ReactChildren | string; + children: React.ReactNode | string; } export function StripeMananageButton({ diff --git a/src/components/SubGetStarted/GetStartedLicense.tsx b/src/components/SubGetStarted/GetStartedLicense.tsx index d73df538..d31285d8 100644 --- a/src/components/SubGetStarted/GetStartedLicense.tsx +++ b/src/components/SubGetStarted/GetStartedLicense.tsx @@ -1,5 +1,5 @@ -import { Card, Text } from '@geist-ui/react'; -import React from 'react'; +import { Card, Text } from "@geist-ui/react"; +import React from "react"; export function GetStartedLicense(): React.ReactElement { return ( @@ -7,7 +7,7 @@ export function GetStartedLicense(): React.ReactElement { How to get started with email verifications? - To get started with self-hosting, please refer to our{' '} + To get started with self-hosting, please refer to our{" "} - If you have any questions about self-hosting, please contact ✉️{' '} + If you have any questions about self-hosting, please contact ✉️{" "} amaury@reacher.email. diff --git a/src/components/SubGetStarted/GetStartedSaas.tsx b/src/components/SubGetStarted/GetStartedSaas.tsx index 4cd7400c..c8b46251 100644 --- a/src/components/SubGetStarted/GetStartedSaas.tsx +++ b/src/components/SubGetStarted/GetStartedSaas.tsx @@ -1,7 +1,7 @@ -import { Card, Snippet, Spacer, Text } from '@geist-ui/react'; -import React from 'react'; +import { Card, Snippet, Spacer, Text } from "@geist-ui/react"; +import React from "react"; -import { useUser } from '../../util/useUser'; +import { useUser } from "@/util/useUser"; export function GetStartedSaas(): React.ReactElement { const { userDetails } = useUser(); @@ -37,7 +37,7 @@ export function GetStartedSaas(): React.ReactElement { width="100%" /> - Below is your unique AUTH_TOKEN.{' '} + Below is your unique AUTH_TOKEN.{" "} Don't share it with anyone else! - The most important field to check is{' '} - is_reachable, and you can also understand{' '} + The most important field to check is{" "} + is_reachable, and you can also understand{" "} all the other fields - {' '} - or read the{' '} + {" "} + or read the{" "} Help! I still don't understand what to do. 😱 - Don't worry, I have prepared a{' '} + Don't worry, I have prepared a{" "} beginner's guide - {' '} + {" "} for using the API, with a program called Postman. If you still have questions, just use the chat widget on the bottom right - corner to send me a message, or shoot me an email at{' '} + corner to send me a message, or shoot me an email at{" "} amaury@reacher.email. diff --git a/src/components/SubGetStarted/index.tsx b/src/components/SubGetStarted/index.tsx index 560d44c7..5266dec2 100644 --- a/src/components/SubGetStarted/index.tsx +++ b/src/components/SubGetStarted/index.tsx @@ -1,9 +1,9 @@ -import React from 'react'; +import React from "react"; -import { COMMERCIAL_LICENSE_PRODUCT_ID } from '../../util/subs'; -import { SupabaseSubscription } from '../../util/supabaseClient'; -import { GetStartedLicense } from './GetStartedLicense'; -import { GetStartedSaas } from './GetStartedSaas'; +import { COMMERCIAL_LICENSE_PRODUCT_ID } from "@/util/subs"; +import { SupabaseSubscription } from "@/util/supabaseClient"; +import { GetStartedLicense } from "./GetStartedLicense"; +import { GetStartedSaas } from "./GetStartedSaas"; interface SubGetStartedProps { subscription: SupabaseSubscription | null; // null means Free Trial diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index a0078ad1..3d1e1b20 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -6,7 +6,7 @@ import dynamic from "next/dynamic"; import React from "react"; import { Layout } from "../components"; -import { UserContextProvider } from "../util/useUser"; +import { UserContextProvider } from "@/util/useUser"; const myTheme = Themes.createFromLight({ type: "default", diff --git a/src/pages/_error.tsx b/src/pages/_error.tsx new file mode 100644 index 00000000..2c06a1ca --- /dev/null +++ b/src/pages/_error.tsx @@ -0,0 +1,18 @@ +import * as Sentry from "@sentry/nextjs"; +import { NextPageContext } from "next"; +import Error from "next/error"; + +const CustomErrorComponent = (props: { statusCode: number }) => { + return ; +}; + +CustomErrorComponent.getInitialProps = async (contextData: NextPageContext) => { + // In case this is running in a serverless function, await this in order to give Sentry + // time to send the error before the lambda exits + await Sentry.captureUnderscoreErrorException(contextData); + + // This will contain the status code of the response + return Error.getInitialProps(contextData); +}; + +export default CustomErrorComponent; diff --git a/src/pages/api/calls/webhook.ts b/src/pages/api/calls/webhook.ts index a0927b68..b68b2c53 100644 --- a/src/pages/api/calls/webhook.ts +++ b/src/pages/api/calls/webhook.ts @@ -1,8 +1,8 @@ -import { CheckEmailOutput } from '@reacherhq/api'; -import { NextApiRequest, NextApiResponse } from 'next'; +import { CheckEmailOutput } from "@reacherhq/api"; +import { NextApiRequest, NextApiResponse } from "next"; -import { SupabaseCall } from '../../../util/supabaseClient'; -import { supabaseAdmin } from '../../../util/supabaseServer'; +import { SupabaseCall } from "@/util/supabaseClient"; +import { supabaseAdmin } from "@/util/supabaseServer"; export interface WebhookExtra { userId: string; @@ -19,24 +19,24 @@ const POST = async ( req: NextApiRequest, res: NextApiResponse ): Promise => { - if (req.method !== 'POST') { - res.setHeader('Allow', 'POST'); - res.status(405).json({ error: 'Method Not Allowed' }); + if (req.method !== "POST") { + res.setHeader("Allow", "POST"); + res.status(405).json({ error: "Method Not Allowed" }); return; } if ( - req.headers['x-orchestrator-secret'] !== + req.headers["x-orchestrator-secret"] !== process.env.RCH_ORCHESTRATOR_SECRET ) { - res.status(403).json({ error: 'Invalid orchestrator secret' }); + res.status(403).json({ error: "Invalid orchestrator secret" }); return; } const { extra, data: output } = req.body as WebhookPayload; // Add to supabase - const response = await supabaseAdmin.from('calls').insert({ + const response = await supabaseAdmin.from("calls").insert({ endpoint: extra.endpoint, user_id: extra.userId, backend: output.debug?.server_name, @@ -55,7 +55,7 @@ const POST = async ( return; } - res.status(200).json({ message: 'ok' }); + res.status(200).json({ message: "ok" }); }; export default POST; diff --git a/src/pages/api/sendinblue/create-contact.ts b/src/pages/api/sendinblue/create-contact.ts index 58a009f3..7833faae 100644 --- a/src/pages/api/sendinblue/create-contact.ts +++ b/src/pages/api/sendinblue/create-contact.ts @@ -1,31 +1,31 @@ -import { CreateUpdateContactModel } from '@sendinblue/client'; -import type { User } from '@supabase/supabase-js'; -import { NextApiRequest, NextApiResponse } from 'next'; +import { CreateUpdateContactModel } from "@sendinblue/client"; +import type { User } from "@supabase/supabase-js"; +import { NextApiRequest, NextApiResponse } from "next"; -import { sendinblueApi } from '../../../util/sendinblue'; -import { sentryException } from '../../../util/sentry'; -import type { SupabaseUser } from '../../../util/supabaseClient'; -import { getUser, supabaseAdmin } from '../../../util/supabaseServer'; +import { sendinblueApi } from "@/util/sendinblue"; +import { sentryException } from "@/util/sentry"; +import type { SupabaseUser } from "@/util/supabaseClient"; +import { getUser, supabaseAdmin } from "@/util/supabaseServer"; const createContact = async ( req: NextApiRequest, res: NextApiResponse ): Promise => { try { - if (req.method !== 'POST') { - res.setHeader('Allow', 'POST'); - res.status(405).json({ error: 'Method Not Allowed' }); + if (req.method !== "POST") { + res.setHeader("Allow", "POST"); + res.status(405).json({ error: "Method Not Allowed" }); return; } const token = req.headers.authorization || req.headers.Authorization; - if (typeof token !== 'string') { - throw new Error('Expected API token in the Authorization header.'); + if (typeof token !== "string") { + throw new Error("Expected API token in the Authorization header."); } const user = await getUser(token); if (!user) { - res.status(401).json({ error: 'User not found' }); + res.status(401).json({ error: "User not found" }); return; } @@ -33,9 +33,9 @@ const createContact = async ( email: user.email, attributes: { WEBAPP_ENV: - process.env.VERCEL_ENV === 'production' - ? 'production' - : 'staging', + process.env.VERCEL_ENV === "production" + ? "production" + : "staging", SUPABASE_UUID: user.id, }, listIds: [7], // List #7 is the Reacher sign up contact list. @@ -73,9 +73,9 @@ async function updateUserSendinblueContactId( } await supabaseAdmin - .from('users') + .from("users") .update({ sendinblue_contact_id: body.id.toString(), }) - .eq('id', user.id); + .eq("id", user.id); } diff --git a/src/pages/api/stripe/create-checkout-session.ts b/src/pages/api/stripe/create-checkout-session.ts index 19c70126..9b009f71 100644 --- a/src/pages/api/stripe/create-checkout-session.ts +++ b/src/pages/api/stripe/create-checkout-session.ts @@ -1,19 +1,19 @@ -import { NextApiRequest, NextApiResponse } from 'next'; +import { NextApiRequest, NextApiResponse } from "next"; -import { getWebappURL } from '../../../util/helpers'; -import { sentryException } from '../../../util/sentry'; -import { stripe } from '../../../util/stripeServer'; -import { SupabasePrice } from '../../../util/supabaseClient'; -import { getActiveSubscription, getUser } from '../../../util/supabaseServer'; -import { createOrRetrieveCustomer } from '../../../util/useDatabase'; +import { getWebappURL } from "@/util/helpers"; +import { sentryException } from "@/util/sentry"; +import { stripe } from "@/util/stripeServer"; +import { SupabasePrice } from "@/util/supabaseClient"; +import { getActiveSubscription, getUser } from "@/util/supabaseServer"; +import { createOrRetrieveCustomer } from "@/util/useDatabase"; const createCheckoutSession = async ( req: NextApiRequest, res: NextApiResponse ): Promise => { - if (req.method !== 'POST') { - res.setHeader('Allow', 'POST'); - res.status(405).json({ error: 'Method Not Allowed' }); + if (req.method !== "POST") { + res.setHeader("Allow", "POST"); + res.status(405).json({ error: "Method Not Allowed" }); return; } @@ -29,7 +29,7 @@ const createCheckoutSession = async ( metadata: Record; }; - if (typeof token !== 'string') { + if (typeof token !== "string") { throw new Error(`Expected token as string, got ${typeof token}.`); } const user = await getUser(token); @@ -43,20 +43,20 @@ const createCheckoutSession = async ( `You can only have one active subscription at a time. Please cancel your existing subscription${ subscription.prices?.products?.name ? ` "${subscription.prices?.products?.name}"` - : '' + : "" }.` ); } if (!process.env.NEXT_PUBLIC_FRANCE_TAX_RATE_ID) { throw new Error( - 'Env variable NEXT_PUBLIC_FRANCE_TAX_RATE_ID needs to be set.' + "Env variable NEXT_PUBLIC_FRANCE_TAX_RATE_ID needs to be set." ); } const session = await stripe.checkout.sessions.create({ - payment_method_types: ['card'], - billing_address_collection: 'required', + payment_method_types: ["card"], + billing_address_collection: "required", customer, line_items: [ { @@ -67,7 +67,7 @@ const createCheckoutSession = async ( quantity, }, ], - mode: 'subscription', + mode: "subscription", allow_promotion_codes: true, subscription_data: { trial_from_plan: true, diff --git a/src/pages/api/stripe/create-portal-link.ts b/src/pages/api/stripe/create-portal-link.ts index eeda0e76..a3872720 100644 --- a/src/pages/api/stripe/create-portal-link.ts +++ b/src/pages/api/stripe/create-portal-link.ts @@ -1,25 +1,25 @@ -import { NextApiRequest, NextApiResponse } from 'next'; +import { NextApiRequest, NextApiResponse } from "next"; -import { getWebappURL } from '../../../util/helpers'; -import { sentryException } from '../../../util/sentry'; -import { stripe } from '../../../util/stripeServer'; -import { getUser } from '../../../util/supabaseServer'; -import { createOrRetrieveCustomer } from '../../../util/useDatabase'; +import { getWebappURL } from "@/util/helpers"; +import { sentryException } from "@/util/sentry"; +import { stripe } from "@/util/stripeServer"; +import { getUser } from "@/util/supabaseServer"; +import { createOrRetrieveCustomer } from "@/util/useDatabase"; const createPortalLink = async ( req: NextApiRequest, res: NextApiResponse ): Promise => { - if (req.method !== 'POST') { - res.setHeader('Allow', 'POST'); - res.status(405).json({ error: 'Method Not Allowed' }); + if (req.method !== "POST") { + res.setHeader("Allow", "POST"); + res.status(405).json({ error: "Method Not Allowed" }); return; } try { const token = req.headers.token; - if (typeof token !== 'string') { + if (typeof token !== "string") { throw new Error(`Expected token as string, got ${typeof token}.`); } const user = await getUser(token); diff --git a/src/pages/api/stripe/webhooks.ts b/src/pages/api/stripe/webhooks.ts index 6b76be6f..09dfa39a 100644 --- a/src/pages/api/stripe/webhooks.ts +++ b/src/pages/api/stripe/webhooks.ts @@ -1,19 +1,19 @@ -import { addMonths, format } from 'date-fns'; -import mailgun from 'mailgun-js'; +import { addMonths, format } from "date-fns"; +import mailgun from "mailgun-js"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore -import Attachment from 'mailgun-js/lib/attachment'; -import { NextApiRequest, NextApiResponse } from 'next'; -import Stripe from 'stripe'; +import Attachment from "mailgun-js/lib/attachment"; +import { NextApiRequest, NextApiResponse } from "next"; +import Stripe from "stripe"; -import { generateLicense } from '../../../util/license'; -import { sentryException } from '../../../util/sentry'; -import { stripe } from '../../../util/stripeServer'; +import { generateLicense } from "@/util/license"; +import { sentryException } from "@/util/sentry"; +import { stripe } from "@/util/stripeServer"; import { manageSubscriptionStatusChange, upsertPriceRecord, upsertProductRecord, -} from '../../../util/useDatabase'; +} from "@/util/useDatabase"; // Stripe requires the raw body to construct the event. export const config = { @@ -25,30 +25,30 @@ export const config = { async function buffer(readable: NextApiRequest) { const chunks = []; for await (const chunk of readable) { - chunks.push(typeof chunk === 'string' ? Buffer.from(chunk) : chunk); + chunks.push(typeof chunk === "string" ? Buffer.from(chunk) : chunk); } return Buffer.concat(chunks); } const relevantEvents = new Set([ - 'product.created', - 'product.updated', - 'price.created', - 'price.updated', - 'checkout.session.completed', - 'customer.subscription.created', - 'customer.subscription.updated', - 'customer.subscription.deleted', - 'invoice.payment_succeeded', + "product.created", + "product.updated", + "price.created", + "price.updated", + "checkout.session.completed", + "customer.subscription.created", + "customer.subscription.updated", + "customer.subscription.deleted", + "invoice.payment_succeeded", ]); const webhookHandler = async ( req: NextApiRequest, res: NextApiResponse ): Promise => { - if (req.method === 'POST') { + if (req.method === "POST") { const buf = await buffer(req); - const sig = req.headers['stripe-signature'] as string; + const sig = req.headers["stripe-signature"] as string; const webhookSecret = process.env.STRIPE_WEBHOOK_SECRET_LIVE as string; let event; @@ -64,46 +64,46 @@ const webhookHandler = async ( if (relevantEvents.has(event.type)) { try { switch (event.type) { - case 'product.created': - case 'product.updated': { + case "product.created": + case "product.updated": { await upsertProductRecord( event.data.object as Stripe.Product ); break; } - case 'price.created': - case 'price.updated': { + case "price.created": + case "price.updated": { await upsertPriceRecord( event.data.object as Stripe.Price ); break; } - case 'customer.subscription.created': - case 'customer.subscription.updated': - case 'customer.subscription.deleted': { + case "customer.subscription.created": + case "customer.subscription.updated": + case "customer.subscription.deleted": { const sub = event.data.object as Stripe.Subscription; await manageSubscriptionStatusChange( sub.id, sub.customer as string, - event.type === 'customer.subscription.created' + event.type === "customer.subscription.created" ); break; } - case 'checkout.session.completed': { + case "checkout.session.completed": { const checkoutSession = event.data .object as Stripe.Checkout.Session; - if (checkoutSession.mode === 'subscription') { + if (checkoutSession.mode === "subscription") { const subscriptionId = checkoutSession.subscription; - if (typeof subscriptionId !== 'string') { + if (typeof subscriptionId !== "string") { throw new Error( `Got invalid subscriptionId in webhookHandler.` ); } - if (typeof checkoutSession.customer !== 'string') { + if (typeof checkoutSession.customer !== "string") { throw new Error( `Got invalid checkoutSession.customer in webhookHandler.` ); @@ -118,12 +118,12 @@ const webhookHandler = async ( break; } - case 'invoice.payment_succeeded': { + case "invoice.payment_succeeded": { const invoice = event.data.object as Stripe.Invoice; if (!invoice.customer_email) { res.status(400).json({ - error: 'Got empty customer_email in invoice.', + error: "Got empty customer_email in invoice.", }); return; } @@ -139,7 +139,7 @@ const webhookHandler = async ( if (!invoice.customer_name) { throw new Error( - 'customer_name is empty in invoice' + "customer_name is empty in invoice" ); } @@ -147,8 +147,8 @@ const webhookHandler = async ( const stripeBuyDate = new Date(invoice.created * 1000); const licenseEndDate = addMonths(stripeBuyDate, 1); const pdf = await generateLicense({ - backend_version: '<=0.3.x', - ciee_version: '<=0.8.x', + backend_version: "<=0.3.x", + ciee_version: "<=0.8.x", license_end_date: licenseEndDate, number_devs: 8, stripe_buy_date: stripeBuyDate, @@ -161,18 +161,18 @@ const webhookHandler = async ( // Send the email with the attached PDF. const data = { - from: 'Amaury ', - to: 'amaury@reacher.email', + from: "Amaury ", + to: "amaury@reacher.email", subject: `Reacher Commercial License: ${format( stripeBuyDate, - 'dd/MM/yyyy' - )} to ${format(licenseEndDate, 'dd/MM/yyyy')}`, + "dd/MM/yyyy" + )} to ${format(licenseEndDate, "dd/MM/yyyy")}`, text: `Hello ${invoice.customer_name}, Thank you for using Reacher. You will find attached the Commercial License for the period of ${format( stripeBuyDate, - 'dd/MM/yyyy' - )} to ${format(licenseEndDate, 'dd/MM/yyyy')}. + "dd/MM/yyyy" + )} to ${format(licenseEndDate, "dd/MM/yyyy")}. A self-host guide can be found at https://help.reacher.email/self-host-guide, let me know if you need help. @@ -181,7 +181,7 @@ Amaury`, // eslint-disable-next-line attachment: new Attachment({ ...pdf, - contentType: 'application/pdf', + contentType: "application/pdf", }), }; @@ -190,7 +190,7 @@ Amaury`, domain: process.env.MAILGUN_DOMAIN as string, // We need to set Host for EU zones. // https://stackoverflow.com/questions/63489555/mailgun-401-forbidden - host: 'api.eu.mailgun.net', + host: "api.eu.mailgun.net", }); await mg.messages().send(data); @@ -199,20 +199,20 @@ Amaury`, } default: - throw new Error('Unhandled relevant event!'); + throw new Error("Unhandled relevant event!"); } } catch (err) { sentryException(err as Error); return res.json({ - error: 'Webhook handler failed. View logs.', + error: "Webhook handler failed. View logs.", }); } } res.json({ received: true }); } else { - res.setHeader('Allow', 'POST'); - res.status(405).json({ error: 'Method Not Allowed' }); + res.setHeader("Allow", "POST"); + res.status(405).json({ error: "Method Not Allowed" }); } }; @@ -239,7 +239,7 @@ function stripeAddressToString(addr: Stripe.Address | null): string { addr.country, ] .filter((x) => !!x) - .join(', '); + .join(", "); } export default webhookHandler; diff --git a/src/pages/api/v0/check_email.ts b/src/pages/api/v0/check_email.ts index 2dc55756..b7ece5e8 100644 --- a/src/pages/api/v0/check_email.ts +++ b/src/pages/api/v0/check_email.ts @@ -1,16 +1,16 @@ -import type { CheckEmailInput, CheckEmailOutput } from '@reacherhq/api'; -import { PostgrestError } from '@supabase/supabase-js'; -import axios, { AxiosError } from 'axios'; -import { NextApiRequest, NextApiResponse } from 'next'; -import { v4 } from 'uuid'; +import type { CheckEmailInput, CheckEmailOutput } from "@reacherhq/api"; +import { PostgrestError } from "@supabase/supabase-js"; +import axios, { AxiosError } from "axios"; +import { NextApiRequest, NextApiResponse } from "next"; +import { v4 } from "uuid"; -import { checkUserInDB, cors } from '../../../util/api'; -import { convertAxiosError, getWebappURL } from '../../../util/helpers'; -import { updateSendinblue } from '../../../util/sendinblue'; -import { sentryException } from '../../../util/sentry'; -import { SupabaseCall } from '../../../util/supabaseClient'; -import { supabaseAdmin } from '../../../util/supabaseServer'; -import { WebhookExtra } from '../calls/webhook'; +import { checkUserInDB, cors } from "@/util/api"; +import { convertAxiosError, getWebappURL } from "@/util/helpers"; +import { updateSendinblue } from "@/util/sendinblue"; +import { sentryException } from "@/util/sentry"; +import { SupabaseCall } from "@/util/supabaseClient"; +import { supabaseAdmin } from "@/util/supabaseServer"; +import { WebhookExtra } from "../calls/webhook"; const ORCHESTRATOR_URL = process.env.RCH_ORCHESTRATOR_URL as string; const TIMEOUT = 60000; @@ -22,9 +22,9 @@ const POST = async ( // Run cors await cors(req, res); - if (req.method !== 'POST') { - res.setHeader('Allow', 'POST'); - res.status(405).json({ error: 'Method Not Allowed' }); + if (req.method !== "POST") { + res.setHeader("Allow", "POST"); + res.status(405).json({ error: "Method Not Allowed" }); return; } @@ -44,7 +44,7 @@ const POST = async ( url: `${getWebappURL()}/api/calls/webhook`, extra: { userId: user.id, - endpoint: '/v0/check_email', + endpoint: "/v0/check_email", verificationId: verificationId, } as WebhookExtra, }, @@ -58,7 +58,7 @@ const POST = async ( // Poll the database to make sure the call was added. let checkEmailOutput: CheckEmailOutput | undefined; let lastError: PostgrestError | Error | null = new Error( - 'Timeout verifying email.' + "Timeout verifying email." ); const startTime = Date.now(); @@ -66,9 +66,9 @@ const POST = async ( await new Promise((resolve) => setTimeout(resolve, 500)); const response = await supabaseAdmin - .from('calls') - .select('*') - .eq('verification_id', verificationId) + .from("calls") + .select("*") + .eq("verification_id", verificationId) .single(); // If there's no error, it means the result has been added to the @@ -90,7 +90,7 @@ const POST = async ( if (!checkEmailOutput) { res.status(500).json({ - error: 'Column result was not populated.', + error: "Column result was not populated.", }); return; } diff --git a/src/pages/dashboard.tsx b/src/pages/dashboard.tsx index 491afd50..cdb86837 100644 --- a/src/pages/dashboard.tsx +++ b/src/pages/dashboard.tsx @@ -4,12 +4,12 @@ import { useRouter } from "next/router"; import React, { useEffect } from "react"; import { Dashboard, Nav } from "../components"; -import { sentryException } from "../util/sentry"; +import { sentryException } from "@/util/sentry"; import { getActiveProductsWithPrices, SupabaseProductWithPrice, -} from "../util/supabaseClient"; -import { useUser } from "../util/useUser"; +} from "@/util/supabaseClient"; +import { useUser } from "@/util/useUser"; export const getStaticProps: GetStaticProps = async () => { const products = await getActiveProductsWithPrices(); diff --git a/src/pages/index.tsx b/src/pages/index.tsx index f12bc3dd..4779f075 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -5,10 +5,10 @@ import React, { useEffect } from "react"; import { useState } from "react"; import { Nav } from "../components"; -import { parseHashComponents, postData } from "../util/helpers"; -import { sentryException } from "../util/sentry"; -import { getActiveProductsWithPrices } from "../util/supabaseClient"; -import { useUser } from "../util/useUser"; +import { parseHashComponents, postData } from "@/util/helpers"; +import { sentryException } from "@/util/sentry"; +import { getActiveProductsWithPrices } from "@/util/supabaseClient"; +import { useUser } from "@/util/useUser"; export const getStaticProps: GetStaticProps = async () => { const products = await getActiveProductsWithPrices(); diff --git a/src/pages/login.tsx b/src/pages/login.tsx index 9ad1d311..2d8fd5a2 100644 --- a/src/pages/login.tsx +++ b/src/pages/login.tsx @@ -8,8 +8,8 @@ import { SigninLayoutMessage, SigninMessage, } from "../components"; -import { sentryException } from "../util/sentry"; -import { useUser } from "../util/useUser"; +import { sentryException } from "@/util/sentry"; +import { useUser } from "@/util/useUser"; export default function Login(): React.ReactElement { const [email, setEmail] = useState(""); diff --git a/src/pages/pricing.tsx b/src/pages/pricing.tsx index b6d3c5db..0192bcb3 100644 --- a/src/pages/pricing.tsx +++ b/src/pages/pricing.tsx @@ -6,12 +6,12 @@ import { FreeTrial, Nav, ProductCard } from "../components"; import { COMMERCIAL_LICENSE_PRODUCT_ID, SAAS_10K_PRODUCT_ID, -} from "../util/subs"; +} from "@/util/subs"; import { getActiveProductsWithPrices, SupabaseProductWithPrice, -} from "../util/supabaseClient"; -import { useUser } from "../util/useUser"; +} from "@/util/supabaseClient"; +import { useUser } from "@/util/useUser"; export const getStaticProps: GetStaticProps = async () => { const products = await getActiveProductsWithPrices(); @@ -63,8 +63,8 @@ export default function Pricing({ onChange={(c) => setCurrency(c as string)} value={currency} > - EUR - USD + EUR (€) + USD ($)
diff --git a/src/pages/reset_password_part_one.tsx b/src/pages/reset_password_part_one.tsx index bc4b5e04..0c15be2d 100644 --- a/src/pages/reset_password_part_one.tsx +++ b/src/pages/reset_password_part_one.tsx @@ -7,8 +7,8 @@ import { SigninLayoutMessage, SigninMessage, } from "../components"; -import { sentryException } from "../util/sentry"; -import { useUser } from "../util/useUser"; +import { sentryException } from "@/util/sentry"; +import { useUser } from "@/util/useUser"; export default function ResetPasswordPartOne(): React.ReactElement { const [email, setEmail] = useState(""); diff --git a/src/pages/reset_password_part_two.tsx b/src/pages/reset_password_part_two.tsx index 79901c65..1ed74bad 100644 --- a/src/pages/reset_password_part_two.tsx +++ b/src/pages/reset_password_part_two.tsx @@ -8,10 +8,10 @@ import { SigninLayoutMessage, SigninMessage, } from "../components"; -import { parseHashComponents } from "../util/helpers"; -import { sentryException } from "../util/sentry"; -import { supabase } from "../util/supabaseClient"; -import { useUser } from "../util/useUser"; +import { parseHashComponents } from "@/util/helpers"; +import { sentryException } from "@/util/sentry"; +import { supabase } from "@/util/supabaseClient"; +import { useUser } from "@/util/useUser"; export default function ResetPasswordPartTwo(): React.ReactElement { const router = useRouter(); diff --git a/src/pages/signup.tsx b/src/pages/signup.tsx index f51783d5..95cf7ffe 100644 --- a/src/pages/signup.tsx +++ b/src/pages/signup.tsx @@ -9,8 +9,8 @@ import { SigninLayoutMessage, SigninMessage, } from "../components"; -import { sentryException } from "../util/sentry"; -import { useUser } from "../util/useUser"; +import { sentryException } from "@/util/sentry"; +import { useUser } from "@/util/useUser"; function Feedback({ onChange, diff --git a/src/util/sentry.ts b/src/util/sentry.ts index f41bacde..9b8ed919 100644 --- a/src/util/sentry.ts +++ b/src/util/sentry.ts @@ -1,4 +1,4 @@ -import { captureException } from "@sentry/browser"; +import { captureException } from "@sentry/nextjs"; /** * Capture an error, and send it to Sentry. diff --git a/src/util/useUser.tsx b/src/util/useUser.tsx index cd9c4508..d19e20de 100644 --- a/src/util/useUser.tsx +++ b/src/util/useUser.tsx @@ -5,15 +5,9 @@ import type { User, UserCredentials, } from "@supabase/gotrue-js"; -import React, { - createContext, - FunctionComponent, - useContext, - useEffect, - useState, -} from "react"; +import React, { createContext, useContext, useEffect, useState } from "react"; -import { getWebappURL } from "../util/helpers"; +import { getWebappURL } from "./helpers"; import { sentryException } from "./sentry"; import { supabase, SupabaseSubscription, SupabaseUser } from "./supabaseClient"; @@ -56,8 +50,12 @@ interface UserContext { export const UserContext = createContext({} as UserContext); -export const UserContextProvider: FunctionComponent = ( - props +interface UserContextProviderProps { + children: React.ReactNode; +} + +export const UserContextProvider = ( + props: UserContextProviderProps ): React.ReactElement => { const [userLoaded, setUserLoaded] = useState(false); const [userFinishedLoading, setUserFinishedLoading] = useState(false); diff --git a/yarn.lock b/yarn.lock index 61fc17f1..8252204f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,34 +2,6 @@ # yarn lockfile v1 -"@amaurym/config@^1.3.6": - version "1.3.6" - resolved "https://registry.yarnpkg.com/@amaurym/config/-/config-1.3.6.tgz#81d78ead4817f848f31ada8748d2b683cb8fc4e1" - integrity sha512-8Fua0WEe78op4lqWdvW6U92EWRwPEWPP1Kmt9LtWIH+EjXVsncRUAQL5+8BdnICxXftDklkcrDzd94BIT0Z6cQ== - dependencies: - "@amaurym/eslintrc" "^1.3.6" - "@amaurym/tsconfig" "^1.3.5" - -"@amaurym/eslintrc@^1.3.6": - version "1.3.6" - resolved "https://registry.yarnpkg.com/@amaurym/eslintrc/-/eslintrc-1.3.6.tgz#88d1420aed45daaaaf6e5e32bad7203522a8ebc2" - integrity sha512-vM6MEl9NpCsQK32hiPq6kyQyXlUf+74KV2F6G8TBL3fj3fZfdIc+IqUFTVrv4c0AP6AKwxQNCM71P3mnZunabA== - dependencies: - "@typescript-eslint/eslint-plugin" "^5.14.0" - "@typescript-eslint/parser" "^5.14.0" - eslint "^8.10.0" - eslint-config-prettier "^8.5.0" - eslint-plugin-prettier "^4.0.0" - eslint-plugin-react "^7.29.3" - eslint-plugin-react-hooks "^4.3.0" - eslint-plugin-simple-import-sort "^7.0.0" - prettier "^2.5.1" - -"@amaurym/tsconfig@^1.3.5": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@amaurym/tsconfig/-/tsconfig-1.3.5.tgz#9c7d070902100eca97e7de1ecb2178576cf27b51" - integrity sha512-toHa2YI/Ew3PIyMTBJqjWY/ZazcMrGODB3I9oz5SPZZGdZxyAlo2trLi63HA+NZlweJjXQQWWrGb90RruYjS6g== - "@ampproject/remapping@^2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" @@ -959,6 +931,13 @@ dependencies: regenerator-runtime "^0.13.11" +"@babel/runtime@^7.21.0": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.5.tgz#11edb98f8aeec529b82b211028177679144242db" + integrity sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w== + dependencies: + regenerator-runtime "^0.14.0" + "@babel/template@^7.18.10", "@babel/template@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" @@ -1369,21 +1348,6 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.6.tgz#563ff4277f1230a006472664fa9278a83dd124da" integrity sha512-n6d8MOyUrNp6G4VSpRcgjs5xj4A91svJSaiwLIDWVWEsZtpN5FA9NlBbZHDmAJc2e8e6SF4tkBD3HAvPF+7igA== -"@eslint/eslintrc@^1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.0.tgz#29f92c30bb3e771e4a2048c95fa6855392dfac4f" - integrity sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.3.2" - globals "^13.15.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" - "@gar/promisify@^1.0.1": version "1.1.3" resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" @@ -1401,26 +1365,18 @@ dependencies: styled-jsx "3.3.0" -"@hcaptcha/react-hcaptcha@^1.4.4": - version "1.4.4" - resolved "https://registry.yarnpkg.com/@hcaptcha/react-hcaptcha/-/react-hcaptcha-1.4.4.tgz#529c55369160995115735b5fe5453daef4670f04" - integrity sha512-Aen217LDnf5ywbPSwBG5CsoqBLIHIAS9lhj3zQjXJuO13doQ6/ubkCWNuY8jmwYLefoFt3V3MrZmCdKDaFoTuQ== - dependencies: - "@babel/runtime" "^7.17.9" +"@hcaptcha/loader@^1.0.10": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@hcaptcha/loader/-/loader-1.1.2.tgz#512d8ce528c7e7393924c3f188fa98425aa4313f" + integrity sha512-YEBXCGNUBpPJUd5UZg64jBU6YMOhDjGdzS6dUCI9P8uIJttuQz3P76wVmK9kdKOuvLUaB7HwVBBmNv/bkAaIEw== -"@humanwhocodes/config-array@^0.9.2": - version "0.9.5" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.5.tgz#2cbaf9a89460da24b5ca6531b8bbfc23e1df50c7" - integrity sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw== +"@hcaptcha/react-hcaptcha@^1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@hcaptcha/react-hcaptcha/-/react-hcaptcha-1.9.2.tgz#62ee76003ab290d11f7b4ae6c59f8ec06d4d9a1d" + integrity sha512-FKsfxi2PV0UTFp3TvW8L02z2MHZjhBVOvH1OznR4ccxjugCZa8ix4weP/wKRUaLHcKwmCfXSu35Agen41aP1mQ== dependencies: - "@humanwhocodes/object-schema" "^1.2.1" - debug "^4.1.1" - minimatch "^3.0.4" - -"@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== + "@babel/runtime" "^7.17.9" + "@hcaptcha/loader" "^1.0.10" "@jridgewell/gen-mapping@^0.1.0": version "0.1.1" @@ -1485,10 +1441,10 @@ semver "^7.3.5" tar "^6.1.11" -"@next/env@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/env/-/env-12.2.5.tgz#d908c57b35262b94db3e431e869b72ac3e1ad3e3" - integrity sha512-vLPLV3cpPGjUPT3PjgRj7e3nio9t6USkuew3JE/jMeon/9Mvp1WyR18v3iwnCuX7eUAm1HmAbJHHLAbcu/EJcw== +"@next/env@13.5.6": + version "13.5.6" + resolved "https://registry.yarnpkg.com/@next/env/-/env-13.5.6.tgz#c1148e2e1aa166614f05161ee8f77ded467062bc" + integrity sha512-Yac/bV5sBGkkEXmAX5FWPS9Mmo2rthrOPRQQNfycJPkjUAUclomCPH7QFVCDQ4Mp2k2K1SSM6m0zrxYrOwtFQw== "@next/eslint-plugin-next@13.2.4": version "13.2.4" @@ -1497,70 +1453,50 @@ dependencies: glob "7.1.7" -"@next/swc-android-arm-eabi@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.2.5.tgz#903a5479ab4c2705d9c08d080907475f7bacf94d" - integrity sha512-cPWClKxGhgn2dLWnspW+7psl3MoLQUcNqJqOHk2BhNcou9ARDtC0IjQkKe5qcn9qg7I7U83Gp1yh2aesZfZJMA== - -"@next/swc-android-arm64@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-12.2.5.tgz#2f9a98ec4166c7860510963b31bda1f57a77c792" - integrity sha512-vMj0efliXmC5b7p+wfcQCX0AfU8IypjkzT64GiKJD9PgiA3IILNiGJr1fw2lyUDHkjeWx/5HMlMEpLnTsQslwg== - -"@next/swc-darwin-arm64@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.2.5.tgz#31b1c3c659d54be546120c488a1e1bad21c24a1d" - integrity sha512-VOPWbO5EFr6snla/WcxUKtvzGVShfs302TEMOtzYyWni6f9zuOetijJvVh9CCTzInnXAZMtHyNhefijA4HMYLg== - -"@next/swc-darwin-x64@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-12.2.5.tgz#2e44dd82b2b7fef88238d1bc4d3bead5884cedfd" - integrity sha512-5o8bTCgAmtYOgauO/Xd27vW52G2/m3i5PX7MUYePquxXAnX73AAtqA3WgPXBRitEB60plSKZgOTkcpqrsh546A== - -"@next/swc-freebsd-x64@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.2.5.tgz#e24e75d8c2581bfebc75e4f08f6ddbd116ce9dbd" - integrity sha512-yYUbyup1JnznMtEBRkK4LT56N0lfK5qNTzr6/DEyDw5TbFVwnuy2hhLBzwCBkScFVjpFdfiC6SQAX3FrAZzuuw== - -"@next/swc-linux-arm-gnueabihf@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.2.5.tgz#46d8c514d834d2b5f67086013f0bd5e3081e10b9" - integrity sha512-2ZE2/G921Acks7UopJZVMgKLdm4vN4U0yuzvAMJ6KBavPzqESA2yHJlm85TV/K9gIjKhSk5BVtauIUntFRP8cg== - -"@next/swc-linux-arm64-gnu@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.2.5.tgz#91f725ac217d3a1f4f9f53b553615ba582fd3d9f" - integrity sha512-/I6+PWVlz2wkTdWqhlSYYJ1pWWgUVva6SgX353oqTh8njNQp1SdFQuWDqk8LnM6ulheVfSsgkDzxrDaAQZnzjQ== - -"@next/swc-linux-arm64-musl@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.2.5.tgz#e627e8c867920995810250303cd9b8e963598383" - integrity sha512-LPQRelfX6asXyVr59p5sTpx5l+0yh2Vjp/R8Wi4X9pnqcayqT4CUJLiHqCvZuLin3IsFdisJL0rKHMoaZLRfmg== - -"@next/swc-linux-x64-gnu@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.2.5.tgz#83a5e224fbc4d119ef2e0f29d0d79c40cc43887e" - integrity sha512-0szyAo8jMCClkjNK0hknjhmAngUppoRekW6OAezbEYwHXN/VNtsXbfzgYOqjKWxEx3OoAzrT3jLwAF0HdX2MEw== - -"@next/swc-linux-x64-musl@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.2.5.tgz#be700d48471baac1ec2e9539396625584a317e95" - integrity sha512-zg/Y6oBar1yVnW6Il1I/08/2ukWtOG6s3acdJdEyIdsCzyQi4RLxbbhkD/EGQyhqBvd3QrC6ZXQEXighQUAZ0g== - -"@next/swc-win32-arm64-msvc@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.2.5.tgz#a93e958133ad3310373fda33a79aa10af2a0aa97" - integrity sha512-3/90DRNSqeeSRMMEhj4gHHQlLhhKg5SCCoYfE3kBjGpE63EfnblYUqsszGGZ9ekpKL/R4/SGB40iCQr8tR5Jiw== - -"@next/swc-win32-ia32-msvc@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.2.5.tgz#4f5f7ba0a98ff89a883625d4af0125baed8b2e19" - integrity sha512-hGLc0ZRAwnaPL4ulwpp4D2RxmkHQLuI8CFOEEHdzZpS63/hMVzv81g8jzYA0UXbb9pus/iTc3VRbVbAM03SRrw== - -"@next/swc-win32-x64-msvc@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.2.5.tgz#20fed129b04a0d3f632c6d0de135345bb623b1e4" - integrity sha512-7h5/ahY7NeaO2xygqVrSG/Y8Vs4cdjxIjowTZ5W6CKoTKn7tmnuxlUc2h74x06FKmbhAd9agOjr/AOKyxYYm9Q== +"@next/swc-darwin-arm64@13.5.6": + version "13.5.6" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.5.6.tgz#b15d139d8971360fca29be3bdd703c108c9a45fb" + integrity sha512-5nvXMzKtZfvcu4BhtV0KH1oGv4XEW+B+jOfmBdpFI3C7FrB/MfujRpWYSBBO64+qbW8pkZiSyQv9eiwnn5VIQA== + +"@next/swc-darwin-x64@13.5.6": + version "13.5.6" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-13.5.6.tgz#9c72ee31cc356cb65ce6860b658d807ff39f1578" + integrity sha512-6cgBfxg98oOCSr4BckWjLLgiVwlL3vlLj8hXg2b+nDgm4bC/qVXXLfpLB9FHdoDu4057hzywbxKvmYGmi7yUzA== + +"@next/swc-linux-arm64-gnu@13.5.6": + version "13.5.6" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.5.6.tgz#59f5f66155e85380ffa26ee3d95b687a770cfeab" + integrity sha512-txagBbj1e1w47YQjcKgSU4rRVQ7uF29YpnlHV5xuVUsgCUf2FmyfJ3CPjZUvpIeXCJAoMCFAoGnbtX86BK7+sg== + +"@next/swc-linux-arm64-musl@13.5.6": + version "13.5.6" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.5.6.tgz#f012518228017052736a87d69bae73e587c76ce2" + integrity sha512-cGd+H8amifT86ZldVJtAKDxUqeFyLWW+v2NlBULnLAdWsiuuN8TuhVBt8ZNpCqcAuoruoSWynvMWixTFcroq+Q== + +"@next/swc-linux-x64-gnu@13.5.6": + version "13.5.6" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.5.6.tgz#339b867a7e9e7ee727a700b496b269033d820df4" + integrity sha512-Mc2b4xiIWKXIhBy2NBTwOxGD3nHLmq4keFk+d4/WL5fMsB8XdJRdtUlL87SqVCTSaf1BRuQQf1HvXZcy+rq3Nw== + +"@next/swc-linux-x64-musl@13.5.6": + version "13.5.6" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.5.6.tgz#ae0ae84d058df758675830bcf70ca1846f1028f2" + integrity sha512-CFHvP9Qz98NruJiUnCe61O6GveKKHpJLloXbDSWRhqhkJdZD2zU5hG+gtVJR//tyW897izuHpM6Gtf6+sNgJPQ== + +"@next/swc-win32-arm64-msvc@13.5.6": + version "13.5.6" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.5.6.tgz#a5cc0c16920485a929a17495064671374fdbc661" + integrity sha512-aFv1ejfkbS7PUa1qVPwzDHjQWQtknzAZWGTKYIAaS4NMtBlk3VyA6AYn593pqNanlicewqyl2jUhQAaFV/qXsg== + +"@next/swc-win32-ia32-msvc@13.5.6": + version "13.5.6" + resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.5.6.tgz#6a2409b84a2cbf34bf92fe714896455efb4191e4" + integrity sha512-XqqpHgEIlBHvzwG8sp/JXMFkLAfGLqkbVsyN+/Ih1mR8INb6YCc2x/Mbwi6hsAgUnqQztz8cvEbHJUbSl7RHDg== + +"@next/swc-win32-x64-msvc@13.5.6": + version "13.5.6" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.5.6.tgz#4a3e2a206251abc729339ba85f60bc0433c2865d" + integrity sha512-Cqfe1YmOS7k+5mGu92nl5ULkzpKuxJrP3+4AEuPmrpFZ3BHxTY3TnHmU1On3bFmFFs6FbTcdF58CCUProGpIGQ== "@nodelib/fs.scandir@2.1.4": version "2.1.4" @@ -1750,131 +1686,144 @@ lodash "^4.17.21" request "^2.81.0" -"@sentry-internal/tracing@7.45.0": - version "7.45.0" - resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.45.0.tgz#01f347d0d1b42451b340b32b12923dc22e042d27" - integrity sha512-0aIDY2OvUX7k2XHaimOlWkboXoQvJ9dEKvfpu0Wh0YxfUTGPa+wplUdg3WVdkk018sq1L11MKmj4MPZyYUvXhw== - dependencies: - "@sentry/core" "7.45.0" - "@sentry/types" "7.45.0" - "@sentry/utils" "7.45.0" - tslib "^1.9.3" - -"@sentry/browser@7.45.0": - version "7.45.0" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.45.0.tgz#c9f8031ad184558d08c374d4e4ee30996cc5b543" - integrity sha512-/dUrUwnI34voMj+jSJT7b5Jun+xy1utVyzzwTq3Oc22N+SB17ZOX9svZ4jl1Lu6tVJPVjPyvL6zlcbrbMwqFjg== - dependencies: - "@sentry-internal/tracing" "7.45.0" - "@sentry/core" "7.45.0" - "@sentry/replay" "7.45.0" - "@sentry/types" "7.45.0" - "@sentry/utils" "7.45.0" - tslib "^1.9.3" - -"@sentry/cli@^1.74.6": - version "1.74.6" - resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-1.74.6.tgz#c4f276e52c6f5e8c8d692845a965988068ebc6f5" - integrity sha512-pJ7JJgozyjKZSTjOGi86chIngZMLUlYt2HOog+OJn+WGvqEkVymu8m462j1DiXAnex9NspB4zLLNuZ/R6rTQHg== +"@sentry-internal/feedback@7.86.0": + version "7.86.0" + resolved "https://registry.yarnpkg.com/@sentry-internal/feedback/-/feedback-7.86.0.tgz#01c7b509a3adc9cdd03658082daf29a6cae9cc8f" + integrity sha512-6rl0JYjmAKnhm4/fuFaROh4Ht8oi9f6ZeIcViCuGJcrGICZJJY0s+R77XJI78rNa82PYFrSCcnWXcGji4T8E7g== + dependencies: + "@sentry/core" "7.86.0" + "@sentry/types" "7.86.0" + "@sentry/utils" "7.86.0" + +"@sentry-internal/tracing@7.86.0": + version "7.86.0" + resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.86.0.tgz#657e80eb7d08d1030393902c1a7bc47fc39ccb2d" + integrity sha512-b4dUsNWlPWRwakGwR7bhOkqiFlqQszH1hhVFwrm/8s3kqEBZ+E4CeIfCvuHBHQ1cM/fx55xpXX/BU163cy+3iQ== + dependencies: + "@sentry/core" "7.86.0" + "@sentry/types" "7.86.0" + "@sentry/utils" "7.86.0" + +"@sentry/browser@7.86.0": + version "7.86.0" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.86.0.tgz#9b828a444949f8fe4a47d830cc87b8b52275c24e" + integrity sha512-nfYWpVOmug+W7KJO7/xhA1JScMZcYHcoOVHLsUFm4znx51U4qZEk+zZDM11Q2Nw6MuDyEYg6bsH1QCwaoC6nLw== + dependencies: + "@sentry-internal/feedback" "7.86.0" + "@sentry-internal/tracing" "7.86.0" + "@sentry/core" "7.86.0" + "@sentry/replay" "7.86.0" + "@sentry/types" "7.86.0" + "@sentry/utils" "7.86.0" + +"@sentry/cli@^1.77.1": + version "1.77.1" + resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-1.77.1.tgz#ebcf884712ef6c3c75443f491ec16f6a22148aec" + integrity sha512-OtJ7U9LeuPUAY/xow9wwcjM9w42IJIpDtClTKI/RliE685vd/OJUIpiAvebHNthDYpQynvwb/0iuF4fonh+CKw== dependencies: https-proxy-agent "^5.0.0" mkdirp "^0.5.5" node-fetch "^2.6.7" - npmlog "^4.1.2" progress "^2.0.3" proxy-from-env "^1.1.0" which "^2.0.2" -"@sentry/core@7.45.0": - version "7.45.0" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.45.0.tgz#87fdb283c211f145e508cc8ff89dabdf2fbcfc39" - integrity sha512-xJfdTS4lRmHvZI/A5MazdnKhBJFkisKu6G9EGNLlZLre+6W4PH5sb7QX4+xoBdqG7v10Jvdia112vi762ojO2w== +"@sentry/core@7.86.0": + version "7.86.0" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.86.0.tgz#d01f538783dee9a0d79141a63145392ad2c1cb89" + integrity sha512-SbLvqd1bRYzhDS42u7GMnmbDMfth/zRiLElQWbLK/shmuZzTcfQSwNNdF4Yj+VfjOkqPFgGmICHSHVUc9dh01g== dependencies: - "@sentry/types" "7.45.0" - "@sentry/utils" "7.45.0" - tslib "^1.9.3" + "@sentry/types" "7.86.0" + "@sentry/utils" "7.86.0" -"@sentry/integrations@7.45.0": - version "7.45.0" - resolved "https://registry.yarnpkg.com/@sentry/integrations/-/integrations-7.45.0.tgz#79166f44af59127bd67824dcaddb4fee254023d7" - integrity sha512-2lwBACr7w9YmnilndRH+39Ow97DJIZUPsDMlppu2NNFEZl2fBDpl+YWh7rxuMIpsOKqZkgxVhxWuoZL9gcWvEA== +"@sentry/integrations@7.86.0": + version "7.86.0" + resolved "https://registry.yarnpkg.com/@sentry/integrations/-/integrations-7.86.0.tgz#70240b354428dbaac32c2224b27539f295593c2b" + integrity sha512-BStRH1yBhhUsvmCXWx88/1+cY93l4B+3RW60RPeYcupvUQ1DJ8qxfN918+nA9XoZt9XELXvs8USCqqynG/aEkg== dependencies: - "@sentry/types" "7.45.0" - "@sentry/utils" "7.45.0" + "@sentry/core" "7.86.0" + "@sentry/types" "7.86.0" + "@sentry/utils" "7.86.0" localforage "^1.8.1" - tslib "^1.9.3" -"@sentry/nextjs@^7.45.0": - version "7.45.0" - resolved "https://registry.yarnpkg.com/@sentry/nextjs/-/nextjs-7.45.0.tgz#b54012dc3b4554da81b5a463c59e0d7ddf63f38a" - integrity sha512-JEWM3g0X1a57qY6PpCFUYr/Zigyl/AlmVwl8RbAS9J4LF5M6wD9CXSFIGOtS+Pt3KoxJCgiUsRJg+KCsszIcCg== +"@sentry/nextjs@^7.86.0": + version "7.86.0" + resolved "https://registry.yarnpkg.com/@sentry/nextjs/-/nextjs-7.86.0.tgz#f814e3fe8ca3b27082fd1c7652aa01744a50feef" + integrity sha512-pdRTt3ELLlpyKKtvumSiqFeTImdSAnoII1JSNwJvmWz9+3MRsvBW/Ee4r19WxK07Y/nxPxyPaIuUmbsXnjkt1A== dependencies: "@rollup/plugin-commonjs" "24.0.0" - "@sentry/core" "7.45.0" - "@sentry/integrations" "7.45.0" - "@sentry/node" "7.45.0" - "@sentry/react" "7.45.0" - "@sentry/types" "7.45.0" - "@sentry/utils" "7.45.0" - "@sentry/webpack-plugin" "1.20.0" + "@sentry/core" "7.86.0" + "@sentry/integrations" "7.86.0" + "@sentry/node" "7.86.0" + "@sentry/react" "7.86.0" + "@sentry/types" "7.86.0" + "@sentry/utils" "7.86.0" + "@sentry/vercel-edge" "7.86.0" + "@sentry/webpack-plugin" "1.21.0" chalk "3.0.0" + resolve "1.22.8" rollup "2.78.0" stacktrace-parser "^0.1.10" - tslib "^1.9.3" -"@sentry/node@7.45.0": - version "7.45.0" - resolved "https://registry.yarnpkg.com/@sentry/node/-/node-7.45.0.tgz#7315cac471dadcbcc6ca2b2439fd2550ab3ddd1f" - integrity sha512-x8mq+DrJWpSi716Rap/2w70DKWD8vjl87Y70OYFu+Dn6CxWDHClObSxLzuJcE5lww0Sq9RnU6UHQWzjXSb/pVQ== +"@sentry/node@7.86.0": + version "7.86.0" + resolved "https://registry.yarnpkg.com/@sentry/node/-/node-7.86.0.tgz#416db178aeb64f7895a23ae1c3d4d65ce51ed50a" + integrity sha512-cB1bn/LMn2Km97Y3hv63xwWxT50/G5ixGuSxTZ3dCQM6VDhmZoCuC5NGT3itVvaRd6upQXRZa5W0Zgyh0HXKig== dependencies: - "@sentry-internal/tracing" "7.45.0" - "@sentry/core" "7.45.0" - "@sentry/types" "7.45.0" - "@sentry/utils" "7.45.0" - cookie "^0.4.1" + "@sentry-internal/tracing" "7.86.0" + "@sentry/core" "7.86.0" + "@sentry/types" "7.86.0" + "@sentry/utils" "7.86.0" https-proxy-agent "^5.0.0" - lru_map "^0.3.3" - tslib "^1.9.3" -"@sentry/react@7.45.0": - version "7.45.0" - resolved "https://registry.yarnpkg.com/@sentry/react/-/react-7.45.0.tgz#9d3634b7b93bc1fa0872cdec49c1fbacd4ef2506" - integrity sha512-Dbz85nfvMUikbLHUuIt6fBNPmTvThFn+rWB5KS1NIOJifyWAdpIU3X7yCUJE5xhsUObNLiHlNJlqhaQI4nR1bQ== +"@sentry/react@7.86.0": + version "7.86.0" + resolved "https://registry.yarnpkg.com/@sentry/react/-/react-7.86.0.tgz#54b1a27e773f3a4fe6afe5d83bbc3e71e42ac326" + integrity sha512-2bHi+YcG4cT+4xHXXzv+AZpU3pdPUlDBorSgHOpa9At4yxr17UWW2f8bP9wPYRgj+NEIM3YhDgR46FlBu9GSKg== dependencies: - "@sentry/browser" "7.45.0" - "@sentry/types" "7.45.0" - "@sentry/utils" "7.45.0" + "@sentry/browser" "7.86.0" + "@sentry/types" "7.86.0" + "@sentry/utils" "7.86.0" hoist-non-react-statics "^3.3.2" - tslib "^1.9.3" -"@sentry/replay@7.45.0": - version "7.45.0" - resolved "https://registry.yarnpkg.com/@sentry/replay/-/replay-7.45.0.tgz#1da15e8c419bb77ec7475c7b1879d11f17edad20" - integrity sha512-smM7FIcFIyKu30BqCl8BzLo1gH/z9WwXdGX6V0fNvHab9fJZ09+xjFn+LmIyo6N8H8jjwsup0+yQ12kiF/ZsEw== +"@sentry/replay@7.86.0": + version "7.86.0" + resolved "https://registry.yarnpkg.com/@sentry/replay/-/replay-7.86.0.tgz#d001eac9687de3555efded9423d3cf00e8ae6d9f" + integrity sha512-YYZO8bfQSx1H87Te/zzyHPLHvExWiYwUfMWW68yGX+PPZIIzxaM81/iCQHkoucxlvuPCOtxCgf7RSMbsnqEa8g== dependencies: - "@sentry/core" "7.45.0" - "@sentry/types" "7.45.0" - "@sentry/utils" "7.45.0" + "@sentry-internal/tracing" "7.86.0" + "@sentry/core" "7.86.0" + "@sentry/types" "7.86.0" + "@sentry/utils" "7.86.0" -"@sentry/types@7.45.0": - version "7.45.0" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.45.0.tgz#b5e2db7a421f6090398565b0a72fb3bbdc94233a" - integrity sha512-iFt7msfUK8LCodFF3RKUyaxy9tJv/gpWhzxUFyNxtuVwlpmd+q6mtsFGn8Af3pbpm8A+MKyz1ebMwXj0PQqknw== +"@sentry/types@7.86.0": + version "7.86.0" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.86.0.tgz#56ed2f5b15e8130ea5ecfbbc4102d88eaa3b3a67" + integrity sha512-pGAt0+bMfWgo0KG2epthfNV4Wae03tURpoxNjGo5Fr4cXxvLTSijSAQ6rmmO4bXBJ7+rErEjX30g30o/eEdP9g== -"@sentry/utils@7.45.0": - version "7.45.0" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.45.0.tgz#e13e075098578557ec3a0decf735cbad6a26ce63" - integrity sha512-aTY7qqtNUudd09SH5DVSKMm3iQ6ZeWufduc0I9bPZe6UMM09BDc4KmjmrzRkdQ+VaOmHo7+v+HZKQk5f+AbuTQ== +"@sentry/utils@7.86.0": + version "7.86.0" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.86.0.tgz#356ec19bf1e3e5c40935dd987fd15bee8c6b37ba" + integrity sha512-6PejFtw9VTFFy5vu0ks+U7Ozkqz+eMt+HN8AZKBKErYzX5/xs0kpkOcSRpu3ETdTYcZf8VAmLVgFgE2BE+3WuQ== dependencies: - "@sentry/types" "7.45.0" - tslib "^1.9.3" + "@sentry/types" "7.86.0" -"@sentry/webpack-plugin@1.20.0": - version "1.20.0" - resolved "https://registry.yarnpkg.com/@sentry/webpack-plugin/-/webpack-plugin-1.20.0.tgz#e7add76122708fb6b4ee7951294b521019720e58" - integrity sha512-Ssj1mJVFsfU6vMCOM2d+h+KQR7QHSfeIP16t4l20Uq/neqWXZUQ2yvQfe4S3BjdbJXz/X4Rw8Hfy1Sd0ocunYw== +"@sentry/vercel-edge@7.86.0": + version "7.86.0" + resolved "https://registry.yarnpkg.com/@sentry/vercel-edge/-/vercel-edge-7.86.0.tgz#aa0df4def5ffeaa39b8b15a62565eb4570e6435e" + integrity sha512-+MPb93DXIeYIoaFTT1YpC0myIkXW3xtxhQ7y7QwqS7k6x1zBb34OVCGitdE6+o85RV83sFMMiBxrfKNLt5Ht0A== dependencies: - "@sentry/cli" "^1.74.6" + "@sentry-internal/tracing" "7.86.0" + "@sentry/core" "7.86.0" + "@sentry/types" "7.86.0" + "@sentry/utils" "7.86.0" + +"@sentry/webpack-plugin@1.21.0": + version "1.21.0" + resolved "https://registry.yarnpkg.com/@sentry/webpack-plugin/-/webpack-plugin-1.21.0.tgz#bbe7cb293751f80246a4a56f9a7dd6de00f14b58" + integrity sha512-x0PYIMWcsTauqxgl7vWUY6sANl+XGKtx7DCVnnY7aOIIlIna0jChTAPANTfA2QrK+VK+4I/4JxatCEZBnXh3Og== + dependencies: + "@sentry/cli" "^1.77.1" webpack-sources "^2.0.0 || ^3.0.0" "@sinclair/typebox@0.25.24": @@ -1939,10 +1888,10 @@ "@supabase/realtime-js" "^1.7.5" "@supabase/storage-js" "^1.7.2" -"@swc/helpers@0.4.3": - version "0.4.3" - resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.4.3.tgz#16593dfc248c53b699d4b5026040f88ddb497012" - integrity sha512-6JrF+fdUK2zbGpJIlN7G3v966PQjyx/dPt1T9km2wj+EUBqgrxCk3uX4Kct16MIm9gGxfKRcfax2hVf5jvlTzA== +"@swc/helpers@0.5.2": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.2.tgz#85ea0c76450b61ad7d10a37050289eded783c27d" + integrity sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw== dependencies: tslib "^2.4.0" @@ -2025,10 +1974,10 @@ resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d" integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q== -"@types/cors@^2.8.13": - version "2.8.13" - resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.13.tgz#b8ade22ba455a1b8cb3b5d3f35910fd204f84f94" - integrity sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA== +"@types/cors@^2.8.17": + version "2.8.17" + resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.17.tgz#5d718a5e494a8166f569d986794e49c48b216b2b" + integrity sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA== dependencies: "@types/node" "*" @@ -2078,7 +2027,7 @@ resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== -"@types/json-schema@^7.0.6", "@types/json-schema@^7.0.9": +"@types/json-schema@^7.0.6": version "7.0.11" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== @@ -2095,18 +2044,18 @@ dependencies: "@types/node" "*" -"@types/mailgun-js@^0.22.13": - version "0.22.13" - resolved "https://registry.yarnpkg.com/@types/mailgun-js/-/mailgun-js-0.22.13.tgz#208219999b4c50426c477f9af848476bf79307c7" - integrity sha512-XmUM4BiawBrya84wNasBWSWPxjHhmFmqX3n56z0cskPoHZUYftjtr4/N0DzSjdLF0MctMWgEL5Hvoi7O0LHBTA== +"@types/mailgun-js@^0.22.18": + version "0.22.18" + resolved "https://registry.yarnpkg.com/@types/mailgun-js/-/mailgun-js-0.22.18.tgz#c4f2e0249a1f1db4934a68bf2ee1df33251466cf" + integrity sha512-xp1QwOjlgvbV9MmKEEmmXN0PkfDxkVQjq0IU1c9DL7VBIQCPxnrqLTaCVm40Ig+YxUnt6e2dT/dNUhaKGQ+V6A== dependencies: "@types/node" "*" form-data "^2.5.0" -"@types/markdown-pdf@^9.0.2": - version "9.0.2" - resolved "https://registry.yarnpkg.com/@types/markdown-pdf/-/markdown-pdf-9.0.2.tgz#4588587061fdb1c9f6158b2cf20bbf2652ddeb5d" - integrity sha512-T449YMxgP/JlOMS8cartggmFNvmn3NwUDyVY3MvD7bItYm064lG83GYMnmagCrzQQcU4I/Sfr8hDEJgJFrKg7A== +"@types/markdown-pdf@^9.0.5": + version "9.0.5" + resolved "https://registry.yarnpkg.com/@types/markdown-pdf/-/markdown-pdf-9.0.5.tgz#e81cb0140c27ab9ee40fc2715702d46a7eba4f7f" + integrity sha512-0FJtLFwfr0zZW69a/qbv/sSqFGr7YUdfIB+ytVhm7If7zIQ/UXXoOHXsTDwCz30/PLf8ya6JjD3mRL+lFnbT5g== "@types/mdast@^3.0.0": version "3.0.11" @@ -2130,10 +2079,10 @@ resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== -"@types/mustache@^4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@types/mustache/-/mustache-4.2.2.tgz#825bf5c214c3ab84d0b23fef2c8eb898f3ff8717" - integrity sha512-MUSpfpW0yZbTgjekDbH0shMYBUD+X/uJJJMm9LXN1d5yjl5lCY1vN/eWKD6D1tOtjA6206K0zcIPnUaFMurdNA== +"@types/mustache@^4.2.5": + version "4.2.5" + resolved "https://registry.yarnpkg.com/@types/mustache/-/mustache-4.2.5.tgz#9129f0d6857f976e00e171bbb3460e4b702f84ef" + integrity sha512-PLwiVvTBg59tGFL/8VpcGvqOu3L4OuveNvPi0EYbWchRdEVP++yRUXJPFl+CApKEq13017/4Nf7aQ5lTtHUNsA== "@types/node@*", "@types/node@>=8.1.0": version "16.3.3" @@ -2155,14 +2104,14 @@ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.4.tgz#fcf7205c25dff795ee79af1e30da2c9790808f11" integrity sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ== -"@types/react-dom@^18.0.11": - version "18.0.11" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.11.tgz#321351c1459bc9ca3d216aefc8a167beec334e33" - integrity sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw== +"@types/react-dom@^18.2.17": + version "18.2.17" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.17.tgz#375c55fab4ae671bd98448dcfa153268d01d6f64" + integrity sha512-rvrT/M7Df5eykWFxn6MYt5Pem/Dbyc1N8Y0S9Mrkw2WFCRiqUgw9P7ul2NpwsXCSM1DVdENzdG9J5SreqfAIWg== dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^17.0.43": +"@types/react@*": version "17.0.43" resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.43.tgz#4adc142887dd4a2601ce730bc56c3436fdb07a55" integrity sha512-8Q+LNpdxf057brvPu1lMtC5Vn7J119xrP1aq4qiaefNioQUYANF/CYeK4NsKorSZyUGJ66g0IM+4bbjwx45o2A== @@ -2171,6 +2120,15 @@ "@types/scheduler" "*" csstype "^3.0.2" +"@types/react@18.2.19": + version "18.2.19" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.19.tgz#f77cb2c8307368e624d464a25b9675fa35f95a8b" + integrity sha512-e2S8wmY1ePfM517PqCG80CcE48Xs5k0pwJzuDZsfE8IZRRBfOMCF+XqnFxu6mWtyivum1MQm4aco+WIt6Coimw== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + "@types/react@^18.0.15": version "18.0.30" resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.30.tgz#83944e679fc7aeab3f042b76d63c4d755b56b7c4" @@ -2180,10 +2138,10 @@ "@types/scheduler" "*" csstype "^3.0.2" -"@types/request-ip@^0.0.37": - version "0.0.37" - resolved "https://registry.yarnpkg.com/@types/request-ip/-/request-ip-0.0.37.tgz#06decdcdeeaa834edf2b0a7dea0c1aefd5a04375" - integrity sha512-uw6/i3rQnpznxD7LtLaeuZytLhKZK6bRoTS6XVJlwxIOoOpEBU7bgKoVXDNtOg4Xl6riUKHa9bjMVrL6ESqYlQ== +"@types/request-ip@^0.0.41": + version "0.0.41" + resolved "https://registry.yarnpkg.com/@types/request-ip/-/request-ip-0.0.41.tgz#c22a3244df2573402989346062851b06b7a5ac4e" + integrity sha512-Qzz0PM2nSZej4lsLzzNfADIORZhhxO7PED0fXpg4FjXiHuJ/lMyUg+YFF5q8x9HPZH3Gl6N+NOM8QZjItNgGKg== dependencies: "@types/node" "*" @@ -2219,27 +2177,12 @@ resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== -"@types/uuid@^9.0.1": - version "9.0.1" - resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.1.tgz#98586dc36aee8dacc98cc396dbca8d0429647aa6" - integrity sha512-rFT3ak0/2trgvp4yYZo5iKFEPsET7vKydKF+VRCxlQ9bpheehyAJH89dAkaLEq/j/RZXJIqcgsmPJKUP1Z28HA== +"@types/uuid@^9.0.7": + version "9.0.7" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.7.tgz#b14cebc75455eeeb160d5fe23c2fcc0c64f724d8" + integrity sha512-WUtIVRUZ9i5dYXefDEAI7sh9/O7jGvHg7Df/5O/gtH3Yabe5odI3UWopVR1qbPXQtvOxWu3mM4XxlYeZtMWF4g== -"@typescript-eslint/eslint-plugin@^5.14.0": - version "5.26.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.26.0.tgz#c1f98ccba9d345e38992975d3ca56ed6260643c2" - integrity sha512-oGCmo0PqnRZZndr+KwvvAUvD3kNE4AfyoGCwOZpoCncSh4MVD06JTE8XQa2u9u+NX5CsyZMBTEc2C72zx38eYA== - dependencies: - "@typescript-eslint/scope-manager" "5.26.0" - "@typescript-eslint/type-utils" "5.26.0" - "@typescript-eslint/utils" "5.26.0" - debug "^4.3.4" - functional-red-black-tree "^1.0.1" - ignore "^5.2.0" - regexpp "^3.2.0" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/parser@^5.14.0", "@typescript-eslint/parser@^5.42.0": +"@typescript-eslint/parser@^5.42.0": version "5.43.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.43.0.tgz#9c86581234b88f2ba406f0b99a274a91c11630fd" integrity sha512-2iHUK2Lh7PwNUlhFxxLI2haSDNyXvebBO9izhjhMoDC+S3XI9qt2DGFUsiJ89m2k7gGYch2aEpYqV5F/+nwZug== @@ -2249,14 +2192,6 @@ "@typescript-eslint/typescript-estree" "5.43.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.26.0": - version "5.26.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.26.0.tgz#44209c7f649d1a120f0717e0e82da856e9871339" - integrity sha512-gVzTJUESuTwiju/7NiTb4c5oqod8xt5GhMbExKsCTp6adU3mya6AGJ4Pl9xC7x2DX9UYFsjImC0mA62BCY22Iw== - dependencies: - "@typescript-eslint/types" "5.26.0" - "@typescript-eslint/visitor-keys" "5.26.0" - "@typescript-eslint/scope-manager@5.43.0": version "5.43.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.43.0.tgz#566e46303392014d5d163704724872e1f2dd3c15" @@ -2265,38 +2200,11 @@ "@typescript-eslint/types" "5.43.0" "@typescript-eslint/visitor-keys" "5.43.0" -"@typescript-eslint/type-utils@5.26.0": - version "5.26.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.26.0.tgz#937dee97702361744a3815c58991acf078230013" - integrity sha512-7ccbUVWGLmcRDSA1+ADkDBl5fP87EJt0fnijsMFTVHXKGduYMgienC/i3QwoVhDADUAPoytgjbZbCOMj4TY55A== - dependencies: - "@typescript-eslint/utils" "5.26.0" - debug "^4.3.4" - tsutils "^3.21.0" - -"@typescript-eslint/types@5.26.0": - version "5.26.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.26.0.tgz#cb204bb154d3c103d9cc4d225f311b08219469f3" - integrity sha512-8794JZFE1RN4XaExLWLI2oSXsVImNkl79PzTOOWt9h0UHROwJedNOD2IJyfL0NbddFllcktGIO2aOu10avQQyA== - "@typescript-eslint/types@5.43.0": version "5.43.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.43.0.tgz#e4ddd7846fcbc074325293515fa98e844d8d2578" integrity sha512-jpsbcD0x6AUvV7tyOlyvon0aUsQpF8W+7TpJntfCUWU1qaIKu2K34pMwQKSzQH8ORgUrGYY6pVIh1Pi8TNeteg== -"@typescript-eslint/typescript-estree@5.26.0": - version "5.26.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.26.0.tgz#16cbceedb0011c2ed4f607255f3ee1e6e43b88c3" - integrity sha512-EyGpw6eQDsfD6jIqmXP3rU5oHScZ51tL/cZgFbFBvWuCwrIptl+oueUZzSmLtxFuSOQ9vDcJIs+279gnJkfd1w== - dependencies: - "@typescript-eslint/types" "5.26.0" - "@typescript-eslint/visitor-keys" "5.26.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" - "@typescript-eslint/typescript-estree@5.43.0": version "5.43.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.43.0.tgz#b6883e58ba236a602c334be116bfc00b58b3b9f2" @@ -2310,26 +2218,6 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.26.0": - version "5.26.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.26.0.tgz#896b8480eb124096e99c8b240460bb4298afcfb4" - integrity sha512-PJFwcTq2Pt4AMOKfe3zQOdez6InIDOjUJJD3v3LyEtxHGVVRK3Vo7Dd923t/4M9hSH2q2CLvcTdxlLPjcIk3eg== - dependencies: - "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.26.0" - "@typescript-eslint/types" "5.26.0" - "@typescript-eslint/typescript-estree" "5.26.0" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - -"@typescript-eslint/visitor-keys@5.26.0": - version "5.26.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.26.0.tgz#7195f756e367f789c0e83035297c45b417b57f57" - integrity sha512-wei+ffqHanYDOQgg/fS6Hcar6wAWv0CUPQ3TZzOWd2BLfgP539rb49bwua8WRAs7R6kOSLn82rfEu2ro6Llt8Q== - dependencies: - "@typescript-eslint/types" "5.26.0" - eslint-visitor-keys "^3.3.0" - "@typescript-eslint/visitor-keys@5.43.0": version "5.43.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.43.0.tgz#cbbdadfdfea385310a20a962afda728ea106befa" @@ -2542,7 +2430,7 @@ accepts@~1.3.8: mime-types "~2.1.34" negotiator "0.6.3" -acorn-jsx@^5.0.0, acorn-jsx@^5.3.2: +acorn-jsx@^5.0.0: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== @@ -2562,7 +2450,7 @@ acorn@^8.4.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== -acorn@^8.6.0, acorn@^8.7.1: +acorn@^8.6.0: version "8.7.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== @@ -2618,7 +2506,7 @@ ajv@8.6.3: require-from-string "^2.0.2" uri-js "^4.2.2" -ajv@^6.0.0, ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4: +ajv@^6.0.0, ajv@^6.12.3: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -2635,16 +2523,6 @@ ansi-escapes@^4.2.1: dependencies: type-fest "^0.21.3" -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - ansi-regex@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" @@ -2677,11 +2555,6 @@ anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -aproba@^1.0.3: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - "aproba@^1.0.3 || ^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" @@ -2695,14 +2568,6 @@ are-we-there-yet@^2.0.0: delegates "^1.0.0" readable-stream "^3.6.0" -are-we-there-yet@~1.1.2: - version "1.1.5" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" - integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - arg@^4.1.0: version "4.1.3" resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" @@ -2896,10 +2761,10 @@ axios@^1.2.2: form-data "^4.0.0" proxy-from-env "^1.1.0" -axios@^1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.3.4.tgz#f5760cefd9cfb51fd2481acf88c05f67c4523024" - integrity sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ== +axios@^1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.2.tgz#de67d42c755b571d3e698df1b6504cde9b0ee9f2" + integrity sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A== dependencies: follow-redirects "^1.15.0" form-data "^4.0.0" @@ -3084,6 +2949,13 @@ bufferutil@^4.0.1: dependencies: node-gyp-build "^4.2.0" +busboy@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" + integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== + dependencies: + streamsearch "^1.1.0" + bytes@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" @@ -3149,15 +3021,10 @@ call-bind@^1.0.0, call-bind@^1.0.2: function-bind "^1.1.1" get-intrinsic "^1.0.2" -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -caniuse-lite@^1.0.30001332: - version "1.0.30001376" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001376.tgz#af2450833e5a06873fbb030a9556ca9461a2736d" - integrity sha512-I27WhtOQ3X3v3it9gNs/oTpoE5KpwmqKR5oKPA8M0G7uMXh9Ty81Q904HpKUrM30ei7zfcL5jE7AXefgbOfMig== +caniuse-lite@^1.0.30001406: + version "1.0.30001566" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001566.tgz#61a8e17caf3752e3e426d4239c549ebbb37fef0d" + integrity sha512-ggIhCsTxmITBAMmK8yZjEhCO5/47jKXPu6Dha/wuCS4JePVL+3uiDEBuhu2aIoT+bqTOR8L76Ip1ARL9xYsEJA== caniuse-lite@^1.0.30001449: version "1.0.30001472" @@ -3186,7 +3053,7 @@ chalk@^2.0.0: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: +chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -3266,6 +3133,11 @@ cli-width@^3.0.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== +client-only@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1" + integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA== + clone-response@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" @@ -3293,11 +3165,6 @@ code-block-writer@^10.1.1: resolved "https://registry.yarnpkg.com/code-block-writer/-/code-block-writer-10.1.1.tgz#ad5684ed4bfb2b0783c8b131281ae84ee640a42f" integrity sha512-67ueh2IRGst/51p0n6FvPrnRjAGHY5F8xdjkgrYE7DDzpJe6qA07RYQ9VcoUeo5ATOjSOiWpSL3SWBRRbempMw== -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= - color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -3364,7 +3231,7 @@ concat-stream@^1.4.7, concat-stream@^1.6.2: readable-stream "^2.2.2" typedarray "^0.0.6" -console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-strings@~1.1.0: +console-control-strings@^1.0.0, console-control-strings@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= @@ -3450,7 +3317,7 @@ cross-fetch@^3.0.6, cross-fetch@^3.1.0, cross-fetch@^3.1.5: dependencies: node-fetch "2.6.7" -cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -3514,10 +3381,12 @@ data-uri-to-buffer@^4.0.0: resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== -date-fns@^2.29.3: - version "2.29.3" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.3.tgz#27402d2fc67eb442b511b70bbdf98e6411cd68a8" - integrity sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA== +date-fns@^2.30.0: + version "2.30.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0" + integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw== + dependencies: + "@babel/runtime" "^7.21.0" deasync@^0.1.0: version "0.1.28" @@ -3569,13 +3438,6 @@ debug@^4.1.1: dependencies: ms "2.1.2" -debug@^4.3.2: - version "4.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" - integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== - dependencies: - ms "2.1.2" - decode-named-character-reference@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz#daabac9690874c394c81e4162a0304b35d824f0e" @@ -3590,7 +3452,7 @@ decompress-response@^6.0.0: dependencies: mimic-response "^3.1.0" -deep-is@^0.1.3, deep-is@~0.1.3: +deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= @@ -3725,13 +3587,6 @@ doctrine@^2.1.0: dependencies: esutils "^2.0.2" -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - dotenv@^16.0.0: version "16.0.3" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07" @@ -4213,11 +4068,6 @@ eslint-config-next@^13.2.4: eslint-plugin-react "^7.31.7" eslint-plugin-react-hooks "^4.5.0" -eslint-config-prettier@^8.5.0: - version "8.5.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz#5a81680ec934beca02c7b1a61cf8ca34b66feab1" - integrity sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q== - eslint-import-resolver-node@^0.3.6: version "0.3.6" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" @@ -4284,19 +4134,12 @@ eslint-plugin-jsx-a11y@^6.5.1: language-tags "^1.0.5" minimatch "^3.0.4" -eslint-plugin-prettier@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz#8b99d1e4b8b24a762472b4567992023619cb98e0" - integrity sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ== - dependencies: - prettier-linter-helpers "^1.0.0" - -eslint-plugin-react-hooks@^4.3.0, eslint-plugin-react-hooks@^4.5.0: +eslint-plugin-react-hooks@^4.5.0: version "4.6.0" resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== -eslint-plugin-react@^7.29.3, eslint-plugin-react@^7.31.7: +eslint-plugin-react@^7.31.7: version "7.31.8" resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.31.8.tgz#3a4f80c10be1bcbc8197be9e8b641b2a3ef219bf" integrity sha512-5lBTZmgQmARLLSYiwI71tiGVTLUuqXantZM6vlSY39OaDSV0M7+32K5DnLkmFrwTe+Ksz0ffuLUC91RUviVZfw== @@ -4316,94 +4159,11 @@ eslint-plugin-react@^7.29.3, eslint-plugin-react@^7.31.7: semver "^6.3.0" string.prototype.matchall "^4.0.7" -eslint-plugin-simple-import-sort@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-7.0.0.tgz#a1dad262f46d2184a90095a60c66fef74727f0f8" - integrity sha512-U3vEDB5zhYPNfxT5TYR7u01dboFZp+HNpnGhkDB2g/2E4wZ/g1Q9Ton8UwCLfRV9yAKyYqDh62oHOamvkFxsvw== - -eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-scope@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" - integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" - integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== - eslint-visitor-keys@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint@^8.10.0: - version "8.16.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.16.0.tgz#6d936e2d524599f2a86c708483b4c372c5d3bbae" - integrity sha512-MBndsoXY/PeVTDJeWsYj7kLZ5hQpJOfMYLsF6LicLHQWbRDG19lK5jOix4DPl8yY4SUFcE3txy86OzFLWT+yoA== - dependencies: - "@eslint/eslintrc" "^1.3.0" - "@humanwhocodes/config-array" "^0.9.2" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - escape-string-regexp "^4.0.0" - eslint-scope "^7.1.1" - eslint-utils "^3.0.0" - eslint-visitor-keys "^3.3.0" - espree "^9.3.2" - esquery "^1.4.0" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - functional-red-black-tree "^1.0.1" - glob-parent "^6.0.1" - globals "^13.15.0" - ignore "^5.2.0" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - is-glob "^4.0.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" - regexpp "^3.2.0" - strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" - text-table "^0.2.0" - v8-compile-cache "^2.0.3" - -espree@^9.3.2: - version "9.3.2" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.2.tgz#f58f77bd334731182801ced3380a8cc859091596" - integrity sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA== - dependencies: - acorn "^8.7.1" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.3.0" - esprima@3.x.x: version "3.1.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" @@ -4414,30 +4174,11 @@ esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1, estraverse@^4.2.0: +estraverse@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" - integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== - estraverse@^5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" @@ -4616,16 +4357,11 @@ extsprintf@^1.2.0: resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: +fast-deep-equal@^3.1.1: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-diff@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" - integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== - fast-glob@3.2.11, fast-glob@^3.2.7, fast-glob@^3.2.9: version "3.2.11" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" @@ -4653,7 +4389,7 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: +fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= @@ -4694,13 +4430,6 @@ figures@^3.0.0: dependencies: escape-string-regexp "^1.0.5" -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - file-uri-to-path@1, file-uri-to-path@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" @@ -4746,19 +4475,6 @@ find-up@^5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== - dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" - -flatted@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" - integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== - follow-redirects@^1.15.0: version "1.15.2" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" @@ -4889,6 +4605,11 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + function.prototype.name@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" @@ -4899,11 +4620,6 @@ function.prototype.name@^1.1.5: es-abstract "^1.19.0" functions-have-names "^1.2.2" -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - functions-have-names@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" @@ -4924,20 +4640,6 @@ gauge@^3.0.0: strip-ansi "^6.0.1" wide-align "^1.1.2" -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - generic-names@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/generic-names/-/generic-names-4.0.0.tgz#0bd8a2fd23fe8ea16cbd0a279acd69c06933d9a3" @@ -5032,12 +4734,10 @@ glob-parent@^5.1.2, glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -glob-parent@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== glob@7.1.7: version "7.1.7" @@ -5091,13 +4791,6 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.15.0: - version "13.15.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.15.0.tgz#38113218c907d2f7e98658af246cef8b77e90bac" - integrity sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog== - dependencies: - type-fest "^0.20.2" - globalyzer@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/globalyzer/-/globalyzer-0.1.0.tgz#cb76da79555669a1519d5a8edf093afaa0bf1465" @@ -5251,7 +4944,7 @@ has-tostringtag@^1.0.0: dependencies: has-symbols "^1.0.2" -has-unicode@^2.0.0, has-unicode@^2.0.1: +has-unicode@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= @@ -5271,6 +4964,13 @@ hasha@^2.2.0: is-stream "^1.0.1" pinkie-promise "^2.0.0" +hasown@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" + integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== + dependencies: + function-bind "^1.1.2" + hast-util-to-estree@^2.0.0: version "2.3.2" resolved "https://registry.yarnpkg.com/hast-util-to-estree/-/hast-util-to-estree-2.3.2.tgz#11ab0cd2e70ecf0305151af56e636b1cdfbba0bf" @@ -5444,14 +5144,6 @@ immediate@~3.0.5: resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps= -import-fresh@^3.0.0, import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -5594,6 +5286,13 @@ is-core-module@^2.10.0: dependencies: has "^1.0.3" +is-core-module@^2.13.0: + version "2.13.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== + dependencies: + hasown "^2.0.0" + is-core-module@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" @@ -5633,24 +5332,12 @@ is-extglob@^2.1.1: resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: +is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== @@ -5839,7 +5526,7 @@ javascript-stringify@^2.0.1: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^4.0.0, js-yaml@^4.1.0: +js-yaml@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== @@ -5899,11 +5586,6 @@ json-schema@0.2.3: resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= - json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" @@ -6011,14 +5693,6 @@ language-tags@^1.0.5: dependencies: language-subtag-registry "~0.3.2" -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -6094,11 +5768,6 @@ lodash.debounce@^4.0.8: resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" @@ -6148,11 +5817,6 @@ lru-cache@^7.14.1: resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== -lru_map@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd" - integrity sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0= - magic-string@^0.25.3: version "0.25.9" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" @@ -6857,10 +6521,10 @@ nanoid@^3.3.4: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= +nanoid@^3.3.6: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== negotiator@0.6.3: version "0.6.3" @@ -6882,31 +6546,28 @@ next-tick@~1.0.0: resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= -next@^12.2.5: - version "12.2.5" - resolved "https://registry.yarnpkg.com/next/-/next-12.2.5.tgz#14fb5975e8841fad09553b8ef41fe1393602b717" - integrity sha512-tBdjqX5XC/oFs/6gxrZhjmiq90YWizUYU6qOWAfat7zJwrwapJ+BYgX2PmiacunXMaRpeVT4vz5MSPSLgNkrpA== - dependencies: - "@next/env" "12.2.5" - "@swc/helpers" "0.4.3" - caniuse-lite "^1.0.30001332" - postcss "8.4.14" - styled-jsx "5.0.4" - use-sync-external-store "1.2.0" +next@13: + version "13.5.6" + resolved "https://registry.yarnpkg.com/next/-/next-13.5.6.tgz#e964b5853272236c37ce0dd2c68302973cf010b1" + integrity sha512-Y2wTcTbO4WwEsVb4A8VSnOsG1I9ok+h74q0ZdxkwM3EODqrs4pasq7O0iUxbcS9VtWMicG7f3+HAj0r1+NtKSw== + dependencies: + "@next/env" "13.5.6" + "@swc/helpers" "0.5.2" + busboy "1.6.0" + caniuse-lite "^1.0.30001406" + postcss "8.4.31" + styled-jsx "5.1.1" + watchpack "2.4.0" optionalDependencies: - "@next/swc-android-arm-eabi" "12.2.5" - "@next/swc-android-arm64" "12.2.5" - "@next/swc-darwin-arm64" "12.2.5" - "@next/swc-darwin-x64" "12.2.5" - "@next/swc-freebsd-x64" "12.2.5" - "@next/swc-linux-arm-gnueabihf" "12.2.5" - "@next/swc-linux-arm64-gnu" "12.2.5" - "@next/swc-linux-arm64-musl" "12.2.5" - "@next/swc-linux-x64-gnu" "12.2.5" - "@next/swc-linux-x64-musl" "12.2.5" - "@next/swc-win32-arm64-msvc" "12.2.5" - "@next/swc-win32-ia32-msvc" "12.2.5" - "@next/swc-win32-x64-msvc" "12.2.5" + "@next/swc-darwin-arm64" "13.5.6" + "@next/swc-darwin-x64" "13.5.6" + "@next/swc-linux-arm64-gnu" "13.5.6" + "@next/swc-linux-arm64-musl" "13.5.6" + "@next/swc-linux-x64-gnu" "13.5.6" + "@next/swc-linux-x64-musl" "13.5.6" + "@next/swc-win32-arm64-msvc" "13.5.6" + "@next/swc-win32-ia32-msvc" "13.5.6" + "@next/swc-win32-x64-msvc" "13.5.6" node-addon-api@^1.7.1: version "1.7.2" @@ -6978,16 +6639,6 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" -npmlog@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - npmlog@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" @@ -6998,17 +6649,12 @@ npmlog@^5.0.1: gauge "^3.0.0" set-blocking "^2.0.0" -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= - oauth-sign@~0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -7120,18 +6766,6 @@ optionator@^0.8.1: type-check "~0.3.2" word-wrap "~1.2.3" -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.3" - ora@^5.4.1: version "5.4.1" resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" @@ -7256,13 +6890,6 @@ pako@~0.2.0: resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" integrity sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA== -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - parse-entities@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-4.0.1.tgz#4e2a01111fb1c986549b944af39eeda258fc9e4e" @@ -7491,12 +7118,12 @@ postcss-value-parser@^4.1.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@8.4.14: - version "8.4.14" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" - integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== +postcss@8.4.31: + version "8.4.31" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" + integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== dependencies: - nanoid "^3.3.4" + nanoid "^3.3.6" picocolors "^1.0.0" source-map-js "^1.0.2" @@ -7509,33 +7136,16 @@ postcss@^8.4.19, postcss@^8.4.21: picocolors "^1.0.0" source-map-js "^1.0.2" -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= -prettier-linter-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - dependencies: - fast-diff "^1.1.2" - prettier@2.7.1: version "2.7.1" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== -prettier@^2.5.1: - version "2.6.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.2.tgz#e26d71a18a74c3d0f0597f55f01fb6c06c206032" - integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew== - pretty-bytes@5.6.0: version "5.6.0" resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" @@ -7719,14 +7329,13 @@ raw-body@^2.2.0: iconv-lite "0.4.24" unpipe "1.0.0" -react-dom@^17.0.2: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" - integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== +react-dom@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" + integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== dependencies: loose-envify "^1.1.0" - object-assign "^4.1.1" - scheduler "^0.20.2" + scheduler "^0.23.0" react-is@^16.13.1, react-is@^16.7.0: version "16.13.1" @@ -7738,13 +7347,12 @@ react-refresh@^0.14.0: resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.0.tgz#4e02825378a5f227079554d4284889354e5f553e" integrity sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ== -react@^17.0.2: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" - integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== +react@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" + integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== dependencies: loose-envify "^1.1.0" - object-assign "^4.1.1" read-cmd-shim@^4.0.0: version "4.0.0" @@ -7761,7 +7369,7 @@ readable-stream@1.1.x: isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@2, readable-stream@^2.0.6, readable-stream@^2.2.2: +readable-stream@2, readable-stream@^2.2.2: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -7844,6 +7452,11 @@ regenerator-runtime@^0.13.4: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== +regenerator-runtime@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" + integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== + regenerator-transform@^0.15.1: version "0.15.1" resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" @@ -7860,11 +7473,6 @@ regexp.prototype.flags@^1.4.1, regexp.prototype.flags@^1.4.3: define-properties "^1.1.3" functions-have-names "^1.2.2" -regexpp@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - regexpu-core@^5.3.1: version "5.3.2" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" @@ -7979,16 +7587,20 @@ resolve-alpn@^1.0.0: resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - resolve-from@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== +resolve@1.22.8: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + resolve@^1.14.2, resolve@^1.22.0, resolve@^1.22.1: version "1.22.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" @@ -8124,13 +7736,12 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -scheduler@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" - integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== +scheduler@^0.23.0: + version "0.23.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" + integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== dependencies: loose-envify "^1.1.0" - object-assign "^4.1.1" semver@6.1.1: version "6.1.1" @@ -8190,7 +7801,7 @@ serve-static@1.15.0: parseurl "~1.3.3" send "0.18.0" -set-blocking@^2.0.0, set-blocking@~2.0.0: +set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= @@ -8413,28 +8024,16 @@ stream-shift@^1.0.0: resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== +streamsearch@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" + integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== + string-hash@1.1.3, string-hash@^1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs= -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -"string-width@^1.0.2 || 2": - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -8528,20 +8127,6 @@ stringify-entities@^4.0.0: character-entities-html4 "^2.0.0" character-entities-legacy "^3.0.0" -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - strip-ansi@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" @@ -8566,11 +8151,6 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - stripe@^9.13.0: version "9.13.0" resolved "https://registry.yarnpkg.com/stripe/-/stripe-9.13.0.tgz#eea108bf522c8a13089c1c32e757cfc274027e6f" @@ -8600,10 +8180,12 @@ styled-jsx@3.3.0: stylis "3.5.4" stylis-rule-sheet "0.0.10" -styled-jsx@5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.0.4.tgz#5b1bd0b9ab44caae3dd1361295559706e044aa53" - integrity sha512-sDFWLbg4zR+UkNzfk5lPilyIgtpddfxXEULxhujorr5jtePTUqiPDc5BC0v1NRqTr/WaFBGQQUoYToGlF4B2KQ== +styled-jsx@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.1.1.tgz#839a1c3aaacc4e735fed0781b8619ea5d0009d1f" + integrity sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw== + dependencies: + client-only "0.0.1" stylis-rule-sheet@0.0.10: version "0.0.10" @@ -8714,11 +8296,6 @@ tar@^6.1.11: mkdirp "^1.0.3" yallist "^4.0.0" -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= - throttleit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" @@ -8914,13 +8491,6 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0: resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" @@ -8928,11 +8498,6 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - type-fest@^0.21.3: version "0.21.3" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" @@ -9163,11 +8728,6 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -use-sync-external-store@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a" - integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA== - utf-8-validate@^5.0.2: version "5.0.5" resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.5.tgz#dd32c2e82c72002dc9f02eb67ba6761f43456ca1" @@ -9205,11 +8765,6 @@ v8-compile-cache-lib@^3.0.1: resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== -v8-compile-cache@^2.0.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" - integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== - vary@^1, vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" @@ -9300,6 +8855,14 @@ vm2@^3.9.8: acorn "^8.7.0" acorn-walk "^8.2.0" +watchpack@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" + integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + wcwidth@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" @@ -9372,13 +8935,6 @@ which@^2.0.1, which@^2.0.2: dependencies: isexe "^2.0.0" -wide-align@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" - integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== - dependencies: - string-width "^1.0.2 || 2" - wide-align@^1.1.2: version "1.1.5" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" @@ -9391,7 +8947,7 @@ with-callback@^1.0.2: resolved "https://registry.yarnpkg.com/with-callback/-/with-callback-1.0.2.tgz#a09629b9a920028d721404fb435bdcff5c91bc21" integrity sha1-oJYpuakgAo1yFAT7Q1vc/1yRvCE= -word-wrap@^1.2.3, word-wrap@~1.2.3: +word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==