From 5b0146831f6d8a353ed82d92c63d40b69ff88091 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Mon, 15 May 2023 18:12:03 +0530 Subject: [PATCH 01/95] new blitz app starter --- .../app/(home)/@auth/components/Logout.tsx | 24 + apps/next13/app/(home)/@auth/error.tsx | 24 + apps/next13/app/(home)/@auth/loading.tsx | 4 + apps/next13/app/(home)/@auth/page.tsx | 17 + apps/next13/app/(home)/@starter/page.tsx | 15 + .../styles => app/(home)}/Home.module.css | 0 apps/next13/app/(home)/layout.tsx | 151 + apps/next13/app/auth/components/LoginForm.tsx | 107 + .../auth/components/SignupForm.tsx | 0 apps/next13/app/auth/layout.tsx | 2 +- apps/next13/app/auth/login/page.tsx | 6 +- .../auth/mutations/changePassword.ts | 2 +- .../auth/mutations/forgotPassword.test.ts | 2 +- .../auth/mutations/forgotPassword.ts | 2 +- apps/next13/app/auth/mutations/login.ts | 29 + .../{src => app}/auth/mutations/logout.ts | 0 .../auth/mutations/resetPassword.test.ts | 5 +- .../auth/mutations/resetPassword.ts | 2 +- .../{src => app}/auth/mutations/signup.ts | 7 +- apps/next13/app/auth/signup/page.tsx | 2 +- apps/next13/{src => app}/auth/validations.ts | 0 apps/next13/{src => app}/blitz-client.ts | 0 apps/next13/{src => app}/blitz-server.ts | 2 +- .../{src => app}/core/components/Form.tsx | 0 .../core/components/LabeledTextField.tsx | 0 apps/next13/app/layout.tsx | 60 +- apps/next13/app/page.tsx | 47 - apps/next13/app/react-query.tsx | 34 - apps/next13/{src => app}/styles/globals.css | 0 .../users/hooks/useCurrentUser.ts | 2 +- .../users/queries/getCurrentUser.ts | 5 +- apps/next13/{prisma => db}/dev.db | Bin 40960 -> 32768 bytes apps/next13/db/index.ts | 8 + .../migrations/20230515094145_/migration.sql | 26 + .../migrations/20230515094805_}/migration.sql | 52 +- .../migrations/migration_lock.toml | 0 apps/next13/db/schema.prisma | 65 + apps/next13/integrations/.keep | 0 apps/next13/mailers/.keep | 0 apps/next13/mailers/forgotPasswordMailer.ts | 45 + apps/next13/next.config.js | 3 +- apps/next13/package.json | 12 +- .../{src => }/pages/api/rpc/[[...blitz]].ts | 2 +- apps/next13/prisma/index.ts | 5 - .../migrations/20230206052436_/migration.sql | 48 - apps/next13/prisma/schema.prisma | 33 - apps/next13/src/auth/components/LoginForm.tsx | 61 - apps/next13/src/auth/mutations/login.ts | 31 - apps/next13/src/pages/api/auth/session.ts | 8 - apps/next13/tsconfig.json | 5 +- apps/next13/types.ts | 11 +- apps/toolkit-app/next.config.js | 4 +- .../src/pages/api/auth/[...nextauth].ts | 5 + apps/toolkit-app/src/pages/index.tsx | 4 +- pnpm-lock.yaml | 16649 ++++++---------- 55 files changed, 6603 insertions(+), 11025 deletions(-) create mode 100644 apps/next13/app/(home)/@auth/components/Logout.tsx create mode 100644 apps/next13/app/(home)/@auth/error.tsx create mode 100644 apps/next13/app/(home)/@auth/loading.tsx create mode 100644 apps/next13/app/(home)/@auth/page.tsx create mode 100644 apps/next13/app/(home)/@starter/page.tsx rename apps/next13/{src/styles => app/(home)}/Home.module.css (100%) create mode 100644 apps/next13/app/(home)/layout.tsx create mode 100644 apps/next13/app/auth/components/LoginForm.tsx rename apps/next13/{src => app}/auth/components/SignupForm.tsx (100%) rename apps/next13/{src => app}/auth/mutations/changePassword.ts (95%) rename apps/next13/{src => app}/auth/mutations/forgotPassword.test.ts (98%) rename apps/next13/{src => app}/auth/mutations/forgotPassword.ts (97%) create mode 100644 apps/next13/app/auth/mutations/login.ts rename apps/next13/{src => app}/auth/mutations/logout.ts (100%) rename apps/next13/{src => app}/auth/mutations/resetPassword.test.ts (94%) rename apps/next13/{src => app}/auth/mutations/resetPassword.ts (97%) rename apps/next13/{src => app}/auth/mutations/signup.ts (63%) rename apps/next13/{src => app}/auth/validations.ts (100%) rename apps/next13/{src => app}/blitz-client.ts (100%) rename apps/next13/{src => app}/blitz-server.ts (96%) rename apps/next13/{src => app}/core/components/Form.tsx (100%) rename apps/next13/{src => app}/core/components/LabeledTextField.tsx (100%) delete mode 100644 apps/next13/app/page.tsx delete mode 100644 apps/next13/app/react-query.tsx rename apps/next13/{src => app}/styles/globals.css (100%) rename apps/next13/{src => app}/users/hooks/useCurrentUser.ts (66%) rename apps/next13/{src => app}/users/queries/getCurrentUser.ts (70%) rename apps/next13/{prisma => db}/dev.db (75%) create mode 100644 apps/next13/db/index.ts create mode 100644 apps/next13/db/migrations/20230515094145_/migration.sql rename apps/next13/{prisma/migrations/20221027023832_init => db/migrations/20230515094805_}/migration.sql (59%) rename apps/next13/{prisma => db}/migrations/migration_lock.toml (100%) create mode 100644 apps/next13/db/schema.prisma create mode 100644 apps/next13/integrations/.keep create mode 100644 apps/next13/mailers/.keep create mode 100644 apps/next13/mailers/forgotPasswordMailer.ts rename apps/next13/{src => }/pages/api/rpc/[[...blitz]].ts (69%) delete mode 100644 apps/next13/prisma/index.ts delete mode 100644 apps/next13/prisma/migrations/20230206052436_/migration.sql delete mode 100644 apps/next13/prisma/schema.prisma delete mode 100644 apps/next13/src/auth/components/LoginForm.tsx delete mode 100644 apps/next13/src/auth/mutations/login.ts delete mode 100644 apps/next13/src/pages/api/auth/session.ts diff --git a/apps/next13/app/(home)/@auth/components/Logout.tsx b/apps/next13/app/(home)/@auth/components/Logout.tsx new file mode 100644 index 0000000000..93c96c4e2b --- /dev/null +++ b/apps/next13/app/(home)/@auth/components/Logout.tsx @@ -0,0 +1,24 @@ +"use client" + +import styles from "../../Home.module.css" +import logout from "@/app/auth/mutations/logout" +import {useRouter} from "next/navigation" + +export default function LogoutButton() { + const router = useRouter() + return ( + <> + + + ) +} \ No newline at end of file diff --git a/apps/next13/app/(home)/@auth/error.tsx b/apps/next13/app/(home)/@auth/error.tsx new file mode 100644 index 0000000000..2c6571bf17 --- /dev/null +++ b/apps/next13/app/(home)/@auth/error.tsx @@ -0,0 +1,24 @@ +"use client" // Error components must be Client components + +import React, {useEffect} from "react" + +export default function Error({error, reset}: {error: Error; reset: () => void}) { + useEffect(() => { + // Log the error to an error reporting service + console.error(error) + }, [error]) + + return ( +
+

Something went wrong!

+ +
+ ) +} diff --git a/apps/next13/app/(home)/@auth/loading.tsx b/apps/next13/app/(home)/@auth/loading.tsx new file mode 100644 index 0000000000..2fafa2a60a --- /dev/null +++ b/apps/next13/app/(home)/@auth/loading.tsx @@ -0,0 +1,4 @@ +export default function Loading() { + // Or a custom loading skeleton component + return "Loading..." +} diff --git a/apps/next13/app/(home)/@auth/page.tsx b/apps/next13/app/(home)/@auth/page.tsx new file mode 100644 index 0000000000..cfabe1405c --- /dev/null +++ b/apps/next13/app/(home)/@auth/page.tsx @@ -0,0 +1,17 @@ +import getCurrentUser from "@/app/users/queries/getCurrentUser" +import {invoke} from "@/app/blitz-server" +import LogoutButton from "./components/Logout" + +export default async function AuthenticatedHomePage() { + const currentUser = await invoke(getCurrentUser, null) + return ( + <> + +
+ User id: {currentUser!.id} +
+ User role: {currentUser!.role} +
+ + ) +} diff --git a/apps/next13/app/(home)/@starter/page.tsx b/apps/next13/app/(home)/@starter/page.tsx new file mode 100644 index 0000000000..e09f936bdd --- /dev/null +++ b/apps/next13/app/(home)/@starter/page.tsx @@ -0,0 +1,15 @@ +import Link from "next/link" +import styles from "../Home.module.css" + +export default async function StarterHomePage() { + return ( + <> + + Sign Up + + + Login + + + ) +} diff --git a/apps/next13/src/styles/Home.module.css b/apps/next13/app/(home)/Home.module.css similarity index 100% rename from apps/next13/src/styles/Home.module.css rename to apps/next13/app/(home)/Home.module.css diff --git a/apps/next13/app/(home)/layout.tsx b/apps/next13/app/(home)/layout.tsx new file mode 100644 index 0000000000..23ef808dfa --- /dev/null +++ b/apps/next13/app/(home)/layout.tsx @@ -0,0 +1,151 @@ +import Link from "next/link" +import {invoke} from "@/app/blitz-server" +import getCurrentUser from "@/app/users/queries/getCurrentUser" +import styles from "./Home.module.css" + +export default async function HomeLayout({ + auth, + starter, +}: { + children: React.ReactNode + auth: React.ReactNode + starter: React.ReactNode +}) { + const user = await invoke(getCurrentUser, null) + return ( + <> +
+
+
+

+ Congrats! Your app is ready, including user sign-up and log-in. +

+
+ +
+
+
+
+ + + + + +
+ +

Your database & authentication is ready. Try it by signing up.

+ + {/* Auth */} + +
{user ? <>{auth} : <>{starter}}
+
+ +
+ {/* Instructions */} +
+

+ Add a new model by running the following in your terminal: +

+ +
+
+ 1 +
+                      blitz generate all project
+                    
+
+ +
+ 2 +
+                      Ctrl + c
+                    
+
+ +
+ 3 +
+                      blitz dev
+                    
+
+ +
+ 4 +
+                      
+                        Go to{" "}
+                        
+                          /projects
+                        
+                      
+                    
+
+
+
+ {/* Links */} + +
+
+
+ + +
+ + ) +} diff --git a/apps/next13/app/auth/components/LoginForm.tsx b/apps/next13/app/auth/components/LoginForm.tsx new file mode 100644 index 0000000000..306be88de4 --- /dev/null +++ b/apps/next13/app/auth/components/LoginForm.tsx @@ -0,0 +1,107 @@ +import {AuthenticationError, PromiseReturnType} from "blitz" +import Link from "next/link" +import {LabeledTextField} from "../../core/components/LabeledTextField" +import {Form, FORM_ERROR} from "../../core/components/Form" +import login from "../../auth/mutations/login" +import {Login} from "../../auth/validations" +import {useMutation} from "@blitzjs/rpc" +import {startTransition, useMemo} from "react" +import {useRouter} from "next/navigation" +import { + FieldApi, + FormApi, + createFormFactory, + useField, +} from "@tanstack/react-form"; + +type Person = { + firstName: string; + lastName: string; +}; + +type Hobby = { + name: string; + description: string; + yearsOfExperience: number; +}; + +const formFactory = createFormFactory({ + defaultValues: { + firstName: "", + lastName: "", + }, +}); + +function FieldInfo({ field }: { field: FieldApi }) { + return ( + <> + {field.state.meta.touchedError ? ( + {field.state.meta.touchedError} + ) : null}{" "} + {field.state.meta.isValidating ? "Validating..." : null} + + ); +} + +export const LoginForm = () => { + const [loginMutation] = useMutation(login) + const router = useRouter() + const form = formFactory.useForm({ + onSubmit: async (values, formApi) => { + // Do something with form data + console.log(values); + }, + }); + return ( +
+

Login

+ + +
+
+ {/* A type-safe and pre-bound field component*/} + + !value + ? "A first name is required" + : value.length < 3 + ? "First name must be at least 3 characters" + : undefined + } + onChangeAsync={async (value) => { + await new Promise((resolve) => setTimeout(resolve, 1000)); + return ( + value.includes("error") && 'No "error" allowed in first name' + ); + }} + children={(field) => { + // Avoid hasty abstractions. Render props are great! + return ( + <> + + + + ); + }} + /> +
+ [state.canSubmit, state.isSubmitting]} + children={([canSubmit, isSubmitting]) => ( + + )} + /> + +
+ +
+ Or Sign Up +
+
+ ) +} + +export default LoginForm diff --git a/apps/next13/src/auth/components/SignupForm.tsx b/apps/next13/app/auth/components/SignupForm.tsx similarity index 100% rename from apps/next13/src/auth/components/SignupForm.tsx rename to apps/next13/app/auth/components/SignupForm.tsx diff --git a/apps/next13/app/auth/layout.tsx b/apps/next13/app/auth/layout.tsx index c97d74e45d..79b8cd1cc8 100644 --- a/apps/next13/app/auth/layout.tsx +++ b/apps/next13/app/auth/layout.tsx @@ -1,6 +1,6 @@ import {useAuthenticatedBlitzContext} from "@blitzjs/auth" -export default async function RootLayout({children}: {children: React.ReactNode}) { +export default async function AuthLayout({children}: {children: React.ReactNode}) { await useAuthenticatedBlitzContext({ redirectAuthenticatedTo: "/", }) diff --git a/apps/next13/app/auth/login/page.tsx b/apps/next13/app/auth/login/page.tsx index adc70f11cf..7c98e22b77 100644 --- a/apps/next13/app/auth/login/page.tsx +++ b/apps/next13/app/auth/login/page.tsx @@ -1,12 +1,8 @@ "use client" -import {LoginForm} from "../../../src/auth/components/LoginForm" -import {useRouter} from "next/navigation" -import {useSearchParams} from "next/navigation" +import {LoginForm} from "../components/LoginForm" const LoginPage = () => { - const router = useRouter() - const searchParams = useSearchParams() return {}} /> } diff --git a/apps/next13/src/auth/mutations/changePassword.ts b/apps/next13/app/auth/mutations/changePassword.ts similarity index 95% rename from apps/next13/src/auth/mutations/changePassword.ts rename to apps/next13/app/auth/mutations/changePassword.ts index d26d9cc325..41203ce137 100644 --- a/apps/next13/src/auth/mutations/changePassword.ts +++ b/apps/next13/app/auth/mutations/changePassword.ts @@ -1,5 +1,5 @@ import {NotFoundError} from "blitz" -import db from "../../../prisma" +import db from "@/db" // import {authenticateUser} from "./login" import {ChangePassword} from "../validations" import {resolver} from "@blitzjs/rpc" diff --git a/apps/next13/src/auth/mutations/forgotPassword.test.ts b/apps/next13/app/auth/mutations/forgotPassword.test.ts similarity index 98% rename from apps/next13/src/auth/mutations/forgotPassword.test.ts rename to apps/next13/app/auth/mutations/forgotPassword.test.ts index a30de6f1fb..c5678da0e2 100644 --- a/apps/next13/src/auth/mutations/forgotPassword.test.ts +++ b/apps/next13/app/auth/mutations/forgotPassword.test.ts @@ -1,5 +1,5 @@ import {vi, describe, it, beforeEach} from "vitest" -import db from "db" +import db from "@/db" import {hash256} from "@blitzjs/auth" import forgotPassword from "./forgotPassword" import previewEmail from "preview-email" diff --git a/apps/next13/src/auth/mutations/forgotPassword.ts b/apps/next13/app/auth/mutations/forgotPassword.ts similarity index 97% rename from apps/next13/src/auth/mutations/forgotPassword.ts rename to apps/next13/app/auth/mutations/forgotPassword.ts index c00b23eefa..56249a85c4 100644 --- a/apps/next13/src/auth/mutations/forgotPassword.ts +++ b/apps/next13/app/auth/mutations/forgotPassword.ts @@ -1,6 +1,6 @@ import {generateToken, hash256} from "@blitzjs/auth" import {resolver} from "@blitzjs/rpc" -import db from "../../../prisma" +import db from "@/db" import {ForgotPassword} from "../validations" const RESET_PASSWORD_TOKEN_EXPIRATION_IN_HOURS = 4 diff --git a/apps/next13/app/auth/mutations/login.ts b/apps/next13/app/auth/mutations/login.ts new file mode 100644 index 0000000000..4811af875a --- /dev/null +++ b/apps/next13/app/auth/mutations/login.ts @@ -0,0 +1,29 @@ +import {resolver} from "@blitzjs/rpc" +import {AuthenticationError} from "blitz" +import db from "@/db" +import {Login} from "../validations" +import { SecurePassword } from "@blitzjs/auth/secure-password" + +export const authenticateUser = async (rawEmail: string, rawPassword: string) => { + const {email, password} = Login.parse({email: rawEmail, password: rawPassword}) + const user = await db.user.findFirst({where: {email}}) + if (!user) throw new AuthenticationError() + + const result = await SecurePassword.verify(user.hashedPassword, password) + + if (result === SecurePassword.VALID_NEEDS_REHASH) { + // Upgrade hashed password with a more secure hash + const improvedHash = await SecurePassword.hash(password) + await db.user.update({where: {id: user.id}, data: {hashedPassword: improvedHash}}) + } + + const {hashedPassword, ...rest} = user + return rest +} + +export default resolver.pipe(resolver.zod(Login), async ({email, password}, ctx) => { + const user = await authenticateUser(email, password) + await ctx.session.$create({userId: user.id, role: user.role}) + console.log("user", user) + return user +}) diff --git a/apps/next13/src/auth/mutations/logout.ts b/apps/next13/app/auth/mutations/logout.ts similarity index 100% rename from apps/next13/src/auth/mutations/logout.ts rename to apps/next13/app/auth/mutations/logout.ts diff --git a/apps/next13/src/auth/mutations/resetPassword.test.ts b/apps/next13/app/auth/mutations/resetPassword.test.ts similarity index 94% rename from apps/next13/src/auth/mutations/resetPassword.test.ts rename to apps/next13/app/auth/mutations/resetPassword.test.ts index 6fa826c8e1..7ffa6c35ce 100644 --- a/apps/next13/src/auth/mutations/resetPassword.test.ts +++ b/apps/next13/app/auth/mutations/resetPassword.test.ts @@ -1,7 +1,8 @@ import {vi, describe, it, beforeEach, expect} from "vitest" import resetPassword from "./resetPassword" -import db from "db" -import {SecurePassword, hash256} from "@blitzjs/auth" +import db from "@/db" +import {hash256} from "@blitzjs/auth" +import {SecurePassword} from "@blitzjs/auth/secure-password" beforeEach(async () => { await db.$reset() diff --git a/apps/next13/src/auth/mutations/resetPassword.ts b/apps/next13/app/auth/mutations/resetPassword.ts similarity index 97% rename from apps/next13/src/auth/mutations/resetPassword.ts rename to apps/next13/app/auth/mutations/resetPassword.ts index f44dabe736..adcde0216a 100644 --- a/apps/next13/src/auth/mutations/resetPassword.ts +++ b/apps/next13/app/auth/mutations/resetPassword.ts @@ -1,5 +1,5 @@ import {hash256} from "@blitzjs/auth" -import db from "../../../prisma" +import db from "@/db" import {ResetPassword} from "../validations" import login from "./login" diff --git a/apps/next13/src/auth/mutations/signup.ts b/apps/next13/app/auth/mutations/signup.ts similarity index 63% rename from apps/next13/src/auth/mutations/signup.ts rename to apps/next13/app/auth/mutations/signup.ts index 29b63e027b..fe042ba76b 100644 --- a/apps/next13/src/auth/mutations/signup.ts +++ b/apps/next13/app/auth/mutations/signup.ts @@ -1,10 +1,9 @@ -import db from "../../../prisma" -// import {SecurePassword} from "@blitzjs/auth" +import db from "@/db" +import {SecurePassword} from "@blitzjs/auth/secure-password" export default async function signup(input: {password: string; email: string}, ctx: any) { const blitzContext = ctx - // const hashedPassword = await SecurePassword.hash((input.password as string) || "test-password") - const hashedPassword = (input.password as string) || "test-password" + const hashedPassword = await SecurePassword.hash((input.password as string) || "test-password") const email = (input.email as string) || "test" + Math.random() + "@test.com" const user = await db.user.create({ data: {email, hashedPassword}, diff --git a/apps/next13/app/auth/signup/page.tsx b/apps/next13/app/auth/signup/page.tsx index f45176b948..c1b62ba3c8 100644 --- a/apps/next13/app/auth/signup/page.tsx +++ b/apps/next13/app/auth/signup/page.tsx @@ -1,7 +1,7 @@ "use client" import {useRouter} from "next/navigation" -import SignupForm from "../../../src/auth/components/SignupForm" +import SignupForm from "../components/SignupForm" const SignUp = () => { const router = useRouter() diff --git a/apps/next13/src/auth/validations.ts b/apps/next13/app/auth/validations.ts similarity index 100% rename from apps/next13/src/auth/validations.ts rename to apps/next13/app/auth/validations.ts diff --git a/apps/next13/src/blitz-client.ts b/apps/next13/app/blitz-client.ts similarity index 100% rename from apps/next13/src/blitz-client.ts rename to apps/next13/app/blitz-client.ts diff --git a/apps/next13/src/blitz-server.ts b/apps/next13/app/blitz-server.ts similarity index 96% rename from apps/next13/src/blitz-server.ts rename to apps/next13/app/blitz-server.ts index 6e4f92c840..e10b78d21b 100644 --- a/apps/next13/src/blitz-server.ts +++ b/apps/next13/app/blitz-server.ts @@ -1,7 +1,7 @@ import type {BlitzCliConfig} from "blitz" import {setupBlitzServer} from "@blitzjs/next" import {AuthServerPlugin, PrismaStorage} from "@blitzjs/auth" -import db from "../prisma" +import db from "../db" import {simpleRolesIsAuthorized} from "@blitzjs/auth" import {BlitzLogger} from "blitz" import {RpcServerPlugin} from "@blitzjs/rpc" diff --git a/apps/next13/src/core/components/Form.tsx b/apps/next13/app/core/components/Form.tsx similarity index 100% rename from apps/next13/src/core/components/Form.tsx rename to apps/next13/app/core/components/Form.tsx diff --git a/apps/next13/src/core/components/LabeledTextField.tsx b/apps/next13/app/core/components/LabeledTextField.tsx similarity index 100% rename from apps/next13/src/core/components/LabeledTextField.tsx rename to apps/next13/app/core/components/LabeledTextField.tsx diff --git a/apps/next13/app/layout.tsx b/apps/next13/app/layout.tsx index 8842f2140a..1b88cdda55 100644 --- a/apps/next13/app/layout.tsx +++ b/apps/next13/app/layout.tsx @@ -1,57 +1,23 @@ -import "src/styles/globals.css" -import {BlitzProvider} from "../src/blitz-client" -import styles from "src/styles/Home.module.css" +import "@/app/styles/globals.css" +import {BlitzProvider} from "./blitz-client" +import {Inter} from "next/font/google" + +const inter = Inter({subsets: ["latin"]}) + +export const metadata = { + title: "New Blitz App", + description: "Generated by blitz new ", +} export default function RootLayout({children}: {children: React.ReactNode}) { return ( - - Create Next App - - - - + -
- -
-
-

- Congrats! Your app is ready, including user sign-up and log-in. -

-
- -
-
-
-
- - - - - -
-
-
- -
{children}
-
-
- - -
+ <>{children} ) } + diff --git a/apps/next13/app/page.tsx b/apps/next13/app/page.tsx deleted file mode 100644 index c46dbc6e9a..0000000000 --- a/apps/next13/app/page.tsx +++ /dev/null @@ -1,47 +0,0 @@ -import Link from "next/link" -import styles from "src/styles/Home.module.css" -import Test from "./react-query" -import {invoke, useAuthenticatedBlitzContext} from "../src/blitz-server" -import getCurrentUser from "../src/users/queries/getCurrentUser" - -export default async function Home() { - await useAuthenticatedBlitzContext({ - redirectTo: "/auth/login", - }) - const user = await invoke(getCurrentUser, null) - console.log("user", user) - return ( -
-
- - Sign Up - - - Login - -
-

Server Session

-

UserId: {user?.id}

-

Email: {user?.email}

-
-

Client Session

- -
-
- ) -} diff --git a/apps/next13/app/react-query.tsx b/apps/next13/app/react-query.tsx deleted file mode 100644 index 1bfd5d4b94..0000000000 --- a/apps/next13/app/react-query.tsx +++ /dev/null @@ -1,34 +0,0 @@ -"use client" - -import {useQuery, useMutation} from "@blitzjs/rpc" -import logout from "../src/auth/mutations/logout" -import getCurrentUser from "../src/users/queries/getCurrentUser" -import {useTransition} from "react" -import {useRouter} from "next/navigation" - -export default function Test() { - const router = useRouter() - const [user] = useQuery(getCurrentUser, null) - const [isPending, startTransition] = useTransition() - const [logoutMutation] = useMutation(logout) - console.log(user) - return ( -
-

Test

-

{user?.email}

- -
- ) -} diff --git a/apps/next13/src/styles/globals.css b/apps/next13/app/styles/globals.css similarity index 100% rename from apps/next13/src/styles/globals.css rename to apps/next13/app/styles/globals.css diff --git a/apps/next13/src/users/hooks/useCurrentUser.ts b/apps/next13/app/users/hooks/useCurrentUser.ts similarity index 66% rename from apps/next13/src/users/hooks/useCurrentUser.ts rename to apps/next13/app/users/hooks/useCurrentUser.ts index fb0b085d6f..4a0b15a931 100644 --- a/apps/next13/src/users/hooks/useCurrentUser.ts +++ b/apps/next13/app/users/hooks/useCurrentUser.ts @@ -1,5 +1,5 @@ import {useQuery} from "@blitzjs/rpc" -import getCurrentUser from "../../../src/users/queries/getCurrentUser" +import getCurrentUser from "../queries/getCurrentUser" export const useCurrentUser = () => { const [user] = useQuery(getCurrentUser, null) diff --git a/apps/next13/src/users/queries/getCurrentUser.ts b/apps/next13/app/users/queries/getCurrentUser.ts similarity index 70% rename from apps/next13/src/users/queries/getCurrentUser.ts rename to apps/next13/app/users/queries/getCurrentUser.ts index 9cc86e0737..8ff9ced4e5 100644 --- a/apps/next13/src/users/queries/getCurrentUser.ts +++ b/apps/next13/app/users/queries/getCurrentUser.ts @@ -1,11 +1,12 @@ import {Ctx} from "blitz" -import db from "../../../prisma" +import db from "../../../db" +import { Role } from "@/types" export default async function getCurrentUser(input: null, ctx: Ctx) { if (!ctx.session.userId) return null const user = await db.user.findFirst({ where: {id: ctx.session.userId}, - select: {id: true, name: true, email: true}, + select: {id: true, name: true, email: true, role: true}, }) return user diff --git a/apps/next13/prisma/dev.db b/apps/next13/db/dev.db similarity index 75% rename from apps/next13/prisma/dev.db rename to apps/next13/db/dev.db index b4a7322d4683fe74ef89dca184e767a9077a1048..0f593f8aac206379c4418562cde54fb8d899af7d 100644 GIT binary patch delta 801 zcma)(%}*0i6vf}Pw$lzYj~YoeO~f=YHGwwo&AiSBF@QxN2yKCOS|L%KnfHc|e$rL~ z0+C{3Shzsv?{L+XJGX9(DUNwX8-^J zcmIy>?T{3m0mu4V&;g;Zup1ic{oXSwoCuw6xQ`b+jCVFdce#Lb!jE3l{r-qE z7>IJbGZj#TS2ulpBpT&j^UgCN>wF2^>c)F^IiVBx@{#_2?f^UQd!ITtgmm|7DCzNY zunl0l8@{s+Uv`3=pm##PK>&O~iU}b$u@j=q%mmR0Ntm{*CKQD-CaIcXBZ*Lv+J+{X zvW%!rWMYXHvr-C1h!TZZNU~%@RH>|_FlI8dHA9v(rbr@F4HIkJ;q6avo`^`4Pzt9a zNF$h}mM_!+!Oet&#{eF8!$+T?829Q|VhUaSjQ}{}nj-LeXO!~;5Ij0zXRJ2(uHob1DS*G=sf+#t4hSA^G?-_t)>^&B zbKd@--eS#5&J2JVmvh_=A8`Wkx$$QngoE7ShuQnz>IIV3m&fHyBb#ZOxkn6@HnysZ zN{h`tTwUAD4%gc)BC5>P6sAh5Em4KqDN!>q(F}pCD!r_%J%$9X+&>X%9_%s*2)w4oI1U-QlBdpw`+7K_S~hNrm6l>NiEH-?h k#P)XfE;~8{@XR&(6Gr>I@!-FhlUBX@Uy1k5OT3D!KVA>rHvj+t literal 40960 zcmeI5%WoUU8Nhc%JuKP^tDuHb7;QH+0!y%E?2G#_8pIU2q)3yLNbd4=VP{_^&8N9b zQI?y7Y}YA}qPHG;F3>|zq(B4o+JB(vvB{}Gfwn+y1=2%{TsljwEK+h521b$C`36`n zcb?z(n{Q^8+?m;8KGSq9%I*z1$fY>qI|NA*w<(Gsh&Voi{xOHotN575$FU=iznpW9 z6E}B$vJxy2OUoLu@|Vy@m-5TMUDkqsSm`Z(Z|U|qDIo|500AHX1il^u!BXHyYgez5 zPeU%!+g8^a)r*$nG<)5NuNPtkC8{cv8r{k$RCppJOsxkg?7~emOr>(Fl2i&*ZbzkZ zS|&s77E;-0p-SCRs#H`{cTzc=QC7*RH;xin`~Bv?a-wdSisSs%R95jr8mMcwtuUo3 z6`Yr!-?K2MVVS;^YOiH=kK*~ksOvUk#X{n2NPnoen?@YDXevQ}(A-0=b;f__ScBAw zT1VN(c5+3v5XGueVPAy$QN+64vL1w~#7;p;C39n)*Ta4u8&p9_C|6 z9^hc_<$nhdY4tCkBw|xGvkk?X~XiX>_tq<7+AP2%}JAbW;EHNAyX%|Iuy1~0;tAthytp`StXgn!?HpS3&#jCvr*(L3d1>wPW%3a- zrsXB@j#I40gkPxjby3G}VZLrhwRKLL+eMBu>J4z4@Y-b%*DLYkwJTT1_mX2teIxWw zi_>-M`_9y1Jfatk830@hasQV$H?kOI3vfk`cB>G4ZCAak8hN;ToK;bbI6L`q_%B zGiUt*c$~W6ja4i7n0xK-M5vEHzySdu00e*l5C8%|00;m9AOHk_01$YI2^=oZ1+~MK zh3f>du#6p5B=uO!)Bb&Bqn7nQ4SUM3GCmOne3uonsOv{2G(4xsBOP378 zG$hUtIDw1smMqddE$}+S(=ro5vMfYci518vZ~XP&zreDv49$vIB#C3|`2Q7m9Pl&m z0sma+cSPtD`~eOK00AHX1b_e#00KY&2mk>f00e*l5cnn#SPy9AEdOB4T?=S4{k`D* z{$B_k5TUj>JG=Q;Og zAW5ROweR3%kpsL4>!#Ce^#NQ6EPeHi-bw}B1l2n2ut5C8%|00;m9AOHk_01yBIK;Y{mu<^i270beCw^hpQ z*X&v>O2@f_LZKF=qee$6GPioJ^SU?vUuE(mGgcYJWn0?JCt7;Zj&b+gQCIJDcslQT z5m&v4#dM$TGTIh*S9Mcv@}RuWW@Mf{*h`MKDf00e*l5C8%|00;m9AOHl;CGf+A1%kMCZE8w4!*YB?5G9$uilR5>afEj^zHo;3 zL;y~AxD&uH6G=X@P9|?ZXL@%!nRrlRn@y32O z(N1T}jYL&TuzJ!g=GuvaYMJ3xrC%-QqqDlV54Yy9Mw^eU)3exTR${wf$g1gNww-77 zPCAX$#;~xxwO6Pl;x*1_?UYNcok}#4Yn#=a*5gab#BQ;Zj$5tKs9M=dl#`55EI00C z6?3axO5dw>x0Dxvt-@eOb54PMpbYIEQZr1EZ2U5Yv2$F1b_e#00KY&2mk>f00e*l5C8%%0fFBT3wR6s z>|3iO`SkNOp*qXsW{yPy&&Z}s+pL86h=n(|XG~G#MON2&i8UpJB-u7~iDeC*M|Q+C zY0ji+Q8H}C;O$2Hz}d^1>ZX|*l(Lcg>E^CT;}_2FWupnDoq2ft7TjBrcOSmHaCmh! zI3eY~-n{tdS)O$>x?ppnX$lr6=nUSjpRpx_=8+^Yh{l`tGmL0(oNgNezLEsI6TXci zmZY%clJ}qTt(U)?BSw8vb_n(hu zdC+dzoP`TBu^=YT86w`lpP_a93IQgf00dq&0{;W0Wk7fU diff --git a/apps/next13/db/index.ts b/apps/next13/db/index.ts new file mode 100644 index 0000000000..4d7a5a6350 --- /dev/null +++ b/apps/next13/db/index.ts @@ -0,0 +1,8 @@ +import { enhancePrisma } from "blitz" +import { PrismaClient } from "@prisma/client" + +const EnhancedPrisma = enhancePrisma(PrismaClient) + +export * from "@prisma/client" +const db = new EnhancedPrisma() +export default db diff --git a/apps/next13/db/migrations/20230515094145_/migration.sql b/apps/next13/db/migrations/20230515094145_/migration.sql new file mode 100644 index 0000000000..bfe497a036 --- /dev/null +++ b/apps/next13/db/migrations/20230515094145_/migration.sql @@ -0,0 +1,26 @@ +-- CreateTable +CREATE TABLE "User" ( + "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + "name" TEXT, + "email" TEXT NOT NULL, + "hashedPassword" TEXT +); + +-- CreateTable +CREATE TABLE "Session" ( + "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + "expiresAt" DATETIME, + "handle" TEXT NOT NULL, + "hashedSessionToken" TEXT, + "antiCSRFToken" TEXT, + "publicData" TEXT, + "privateData" TEXT, + "userId" INTEGER, + CONSTRAINT "Session_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE SET NULL ON UPDATE CASCADE +); + +-- CreateIndex +CREATE UNIQUE INDEX "User_email_key" ON "User"("email"); + +-- CreateIndex +CREATE UNIQUE INDEX "Session_handle_key" ON "Session"("handle"); diff --git a/apps/next13/prisma/migrations/20221027023832_init/migration.sql b/apps/next13/db/migrations/20230515094805_/migration.sql similarity index 59% rename from apps/next13/prisma/migrations/20221027023832_init/migration.sql rename to apps/next13/db/migrations/20230515094805_/migration.sql index b6eb866e1b..c676c0b119 100644 --- a/apps/next13/prisma/migrations/20221027023832_init/migration.sql +++ b/apps/next13/db/migrations/20230515094805_/migration.sql @@ -1,16 +1,26 @@ +/* + Warnings: + + - Added the required column `updatedAt` to the `Session` table without a default value. This is not possible if the table is not empty. + - Added the required column `updatedAt` to the `User` table without a default value. This is not possible if the table is not empty. + +*/ -- CreateTable -CREATE TABLE "User" ( +CREATE TABLE "Token" ( "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" DATETIME NOT NULL, - "name" TEXT, - "email" TEXT NOT NULL, - "hashedPassword" TEXT, - "role" TEXT NOT NULL DEFAULT 'USER' + "hashedToken" TEXT NOT NULL, + "type" TEXT NOT NULL, + "expiresAt" DATETIME NOT NULL, + "sentTo" TEXT NOT NULL, + "userId" INTEGER NOT NULL, + CONSTRAINT "Token_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE RESTRICT ON UPDATE CASCADE ); --- CreateTable -CREATE TABLE "Session" ( +-- RedefineTables +PRAGMA foreign_keys=OFF; +CREATE TABLE "new_Session" ( "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" DATETIME NOT NULL, @@ -23,25 +33,25 @@ CREATE TABLE "Session" ( "userId" INTEGER, CONSTRAINT "Session_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE SET NULL ON UPDATE CASCADE ); - --- CreateTable -CREATE TABLE "Token" ( +INSERT INTO "new_Session" ("antiCSRFToken", "expiresAt", "handle", "hashedSessionToken", "id", "privateData", "publicData", "userId") SELECT "antiCSRFToken", "expiresAt", "handle", "hashedSessionToken", "id", "privateData", "publicData", "userId" FROM "Session"; +DROP TABLE "Session"; +ALTER TABLE "new_Session" RENAME TO "Session"; +CREATE UNIQUE INDEX "Session_handle_key" ON "Session"("handle"); +CREATE TABLE "new_User" ( "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" DATETIME NOT NULL, - "hashedToken" TEXT NOT NULL, - "type" TEXT NOT NULL, - "expiresAt" DATETIME NOT NULL, - "sentTo" TEXT NOT NULL, - "userId" INTEGER NOT NULL, - CONSTRAINT "Token_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE RESTRICT ON UPDATE CASCADE + "name" TEXT, + "email" TEXT NOT NULL, + "hashedPassword" TEXT, + "role" TEXT NOT NULL DEFAULT 'USER' ); - --- CreateIndex +INSERT INTO "new_User" ("email", "hashedPassword", "id", "name") SELECT "email", "hashedPassword", "id", "name" FROM "User"; +DROP TABLE "User"; +ALTER TABLE "new_User" RENAME TO "User"; CREATE UNIQUE INDEX "User_email_key" ON "User"("email"); - --- CreateIndex -CREATE UNIQUE INDEX "Session_handle_key" ON "Session"("handle"); +PRAGMA foreign_key_check; +PRAGMA foreign_keys=ON; -- CreateIndex CREATE UNIQUE INDEX "Token_hashedToken_type_key" ON "Token"("hashedToken", "type"); diff --git a/apps/next13/prisma/migrations/migration_lock.toml b/apps/next13/db/migrations/migration_lock.toml similarity index 100% rename from apps/next13/prisma/migrations/migration_lock.toml rename to apps/next13/db/migrations/migration_lock.toml diff --git a/apps/next13/db/schema.prisma b/apps/next13/db/schema.prisma new file mode 100644 index 0000000000..83cd1b80f6 --- /dev/null +++ b/apps/next13/db/schema.prisma @@ -0,0 +1,65 @@ +// This is your Prisma schema file, +// learn more about it in the docs: https://pris.ly/d/prisma-schema + +datasource db { + provider = "sqlite" + url = "file:./db.sqlite" +} + +generator client { + provider = "prisma-client-js" +} + +// -------------------------------------- + +model User { + id Int @id @default(autoincrement()) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + name String? + email String @unique + hashedPassword String? + role String @default("USER") + + tokens Token[] + sessions Session[] +} + +model Session { + id Int @id @default(autoincrement()) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + expiresAt DateTime? + handle String @unique + hashedSessionToken String? + antiCSRFToken String? + publicData String? + privateData String? + + user User? @relation(fields: [userId], references: [id]) + userId Int? +} + +model Token { + id Int @id @default(autoincrement()) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + hashedToken String + type String + // See note below about TokenType enum + // type TokenType + expiresAt DateTime + sentTo String + + user User @relation(fields: [userId], references: [id]) + userId Int + + @@unique([hashedToken, type]) +} + +// NOTE: It's highly recommended to use an enum for the token type +// but enums only work in Postgres. +// See: https://blitzjs.com/docs/database-overview#switch-to-postgre-sql +// enum TokenType { +// RESET_PASSWORD +// } diff --git a/apps/next13/integrations/.keep b/apps/next13/integrations/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/apps/next13/mailers/.keep b/apps/next13/mailers/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/apps/next13/mailers/forgotPasswordMailer.ts b/apps/next13/mailers/forgotPasswordMailer.ts new file mode 100644 index 0000000000..baace45b9a --- /dev/null +++ b/apps/next13/mailers/forgotPasswordMailer.ts @@ -0,0 +1,45 @@ +/* TODO - You need to add a mailer integration in `integrations/` and import here. + * + * The integration file can be very simple. Instantiate the email client + * and then export it. That way you can import here and anywhere else + * and use it straight away. + */ + +type ResetPasswordMailer = { + to: string + token: string +} + +export function forgotPasswordMailer({ to, token }: ResetPasswordMailer) { + // In production, set APP_ORIGIN to your production server origin + const origin = process.env.APP_ORIGIN || process.env.BLITZ_DEV_SERVER_ORIGIN + const resetUrl = `${origin}/auth/reset-password?token=${token}` + + const msg = { + from: "TODO@example.com", + to, + subject: "Your Password Reset Instructions", + html: ` +

Reset Your Password

+

NOTE: You must set up a production email integration in mailers/forgotPasswordMailer.ts

+ + + Click here to set a new password + + `, + } + + return { + async send() { + if (process.env.NODE_ENV === "production") { + // TODO - send the production email, like this: + // await postmark.sendEmail(msg) + throw new Error("No production email implementation in mailers/forgotPasswordMailer") + } else { + // Preview email in the browser + const previewEmail = (await import("preview-email")).default + await previewEmail(msg) + } + }, + } +} diff --git a/apps/next13/next.config.js b/apps/next13/next.config.js index 6f0b42c581..4e73ad708c 100644 --- a/apps/next13/next.config.js +++ b/apps/next13/next.config.js @@ -3,8 +3,7 @@ const {withBlitz} = require("@blitzjs/next") /** @type {import('next').NextConfig} */ const nextConfig = { experimental: { - appDir: true, - serverComponentsExternalPackages: ["@prisma/client", "prisma"], + typedRoutes: true, }, } diff --git a/apps/next13/package.json b/apps/next13/package.json index 1317e2a79c..4a9b08b3cd 100644 --- a/apps/next13/package.json +++ b/apps/next13/package.json @@ -1,7 +1,10 @@ { - "name": "next-blitz-auth", + "name": "blitz-app-starter", "version": "0.1.1-beta.3", "private": true, + "prisma": { + "schema": "db/schema.prisma" + }, "scripts": { "blitz:dev": "next dev", "blitz:build": "next build", @@ -15,12 +18,13 @@ "@blitzjs/rpc": "workspace:*", "@hookform/error-message": "2.0.0", "@hookform/resolvers": "2.9.10", - "@prisma/client": "^4.5.0", + "@prisma/client": "^4.14.0", + "@tanstack/react-form": "0.0.10", "@tanstack/react-query": "4.0.10", "blitz": "workspace:*", "flatted": "3.2.7", - "next": "13.3.0", - "prisma": "^4.5.0", + "next": "13.4.1", + "prisma": "^4.14.0", "react": "18.2.0", "react-dom": "18.2.0", "react-hook-form": "7.39.1", diff --git a/apps/next13/src/pages/api/rpc/[[...blitz]].ts b/apps/next13/pages/api/rpc/[[...blitz]].ts similarity index 69% rename from apps/next13/src/pages/api/rpc/[[...blitz]].ts rename to apps/next13/pages/api/rpc/[[...blitz]].ts index 1c5d84ba25..a031e77375 100644 --- a/apps/next13/src/pages/api/rpc/[[...blitz]].ts +++ b/apps/next13/pages/api/rpc/[[...blitz]].ts @@ -1,4 +1,4 @@ import {rpcHandler} from "@blitzjs/rpc" -import {api} from "../../../blitz-server" +import {api} from "@/app/blitz-server" export default api(rpcHandler({onError: console.log})) diff --git a/apps/next13/prisma/index.ts b/apps/next13/prisma/index.ts deleted file mode 100644 index 30f7513e7d..0000000000 --- a/apps/next13/prisma/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -import {PrismaClient} from "@prisma/client" - -export * from "@prisma/client" -const db = new PrismaClient() -export default db diff --git a/apps/next13/prisma/migrations/20230206052436_/migration.sql b/apps/next13/prisma/migrations/20230206052436_/migration.sql deleted file mode 100644 index e58b0dc73e..0000000000 --- a/apps/next13/prisma/migrations/20230206052436_/migration.sql +++ /dev/null @@ -1,48 +0,0 @@ -/* - Warnings: - - - You are about to drop the `Token` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the column `createdAt` on the `User` table. All the data in the column will be lost. - - You are about to drop the column `role` on the `User` table. All the data in the column will be lost. - - You are about to drop the column `updatedAt` on the `User` table. All the data in the column will be lost. - - You are about to drop the column `createdAt` on the `Session` table. All the data in the column will be lost. - - You are about to drop the column `updatedAt` on the `Session` table. All the data in the column will be lost. - -*/ --- DropIndex -DROP INDEX "Token_hashedToken_type_key"; - --- DropTable -PRAGMA foreign_keys=off; -DROP TABLE "Token"; -PRAGMA foreign_keys=on; - --- RedefineTables -PRAGMA foreign_keys=OFF; -CREATE TABLE "new_User" ( - "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, - "name" TEXT, - "email" TEXT NOT NULL, - "hashedPassword" TEXT -); -INSERT INTO "new_User" ("email", "hashedPassword", "id", "name") SELECT "email", "hashedPassword", "id", "name" FROM "User"; -DROP TABLE "User"; -ALTER TABLE "new_User" RENAME TO "User"; -CREATE UNIQUE INDEX "User_email_key" ON "User"("email"); -CREATE TABLE "new_Session" ( - "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, - "expiresAt" DATETIME, - "handle" TEXT NOT NULL, - "hashedSessionToken" TEXT, - "antiCSRFToken" TEXT, - "publicData" TEXT, - "privateData" TEXT, - "userId" INTEGER, - CONSTRAINT "Session_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE SET NULL ON UPDATE CASCADE -); -INSERT INTO "new_Session" ("antiCSRFToken", "expiresAt", "handle", "hashedSessionToken", "id", "privateData", "publicData", "userId") SELECT "antiCSRFToken", "expiresAt", "handle", "hashedSessionToken", "id", "privateData", "publicData", "userId" FROM "Session"; -DROP TABLE "Session"; -ALTER TABLE "new_Session" RENAME TO "Session"; -CREATE UNIQUE INDEX "Session_handle_key" ON "Session"("handle"); -PRAGMA foreign_key_check; -PRAGMA foreign_keys=ON; diff --git a/apps/next13/prisma/schema.prisma b/apps/next13/prisma/schema.prisma deleted file mode 100644 index 474f420ec9..0000000000 --- a/apps/next13/prisma/schema.prisma +++ /dev/null @@ -1,33 +0,0 @@ -// This is your Prisma schema file, -// learn more about it in the docs: https://pris.ly/d/prisma-schema - -generator client { - provider = "prisma-client-js" -} - -datasource db { - provider = "sqlite" - url = env("DATABASE_URL") -} - -model User { - id Int @id @default(autoincrement()) - name String? - email String @unique - hashedPassword String? - - sessions Session[] -} - -model Session { - id Int @id @default(autoincrement()) - expiresAt DateTime? - handle String @unique - hashedSessionToken String? - antiCSRFToken String? - publicData String? - privateData String? - - user User? @relation(fields: [userId], references: [id]) - userId Int? -} \ No newline at end of file diff --git a/apps/next13/src/auth/components/LoginForm.tsx b/apps/next13/src/auth/components/LoginForm.tsx deleted file mode 100644 index ee539c21b9..0000000000 --- a/apps/next13/src/auth/components/LoginForm.tsx +++ /dev/null @@ -1,61 +0,0 @@ -import {AuthenticationError, PromiseReturnType} from "blitz" -import Link from "next/link" -import {LabeledTextField} from "../../core/components/LabeledTextField" -import {Form, FORM_ERROR} from "../../core/components/Form" -import login from "../../auth/mutations/login" -import {Login} from "../../auth/validations" -import {useMutation} from "@blitzjs/rpc" -import {startTransition} from "react" -import {useRouter} from "next/navigation" - -type LoginFormProps = { - onSuccess?: (user: PromiseReturnType) => void -} - -export const LoginForm = (props: LoginFormProps) => { - const [loginMutation] = useMutation(login) - const router = useRouter() - return ( -
-

Login

- -
{ - try { - const user = await loginMutation(values) - props.onSuccess?.(user) - startTransition(() => { - // Refresh the current route and fetch new data from the server without - // losing client-side browser or React state. - router.refresh() - }) - } catch (error: any) { - if (error instanceof AuthenticationError) { - return {[FORM_ERROR]: "Sorry, those credentials are invalid"} - } else { - return { - [FORM_ERROR]: - "Sorry, we had an unexpected error. Please try again. - " + error.toString(), - } - } - } - }} - > - - - - - -
- Or Sign Up -
-
- ) -} - -export default LoginForm diff --git a/apps/next13/src/auth/mutations/login.ts b/apps/next13/src/auth/mutations/login.ts deleted file mode 100644 index e8addbfcf1..0000000000 --- a/apps/next13/src/auth/mutations/login.ts +++ /dev/null @@ -1,31 +0,0 @@ -import {resolver} from "@blitzjs/rpc" -// import {AuthenticationError} from "blitz" -import db from "../../../prisma" -import {Login} from "../validations" - -// export const authenticateUser = async (rawEmail: string, rawPassword: string) => { -// const {email, password} = Login.parse({email: rawEmail, password: rawPassword}) -// const user = await db.user.findFirst({where: {email}}) -// if (!user) throw new AuthenticationError() - -// const result = await SecurePassword.verify(user.hashedPassword, password) - -// if (result === SecurePassword.VALID_NEEDS_REHASH) { -// // Upgrade hashed password with a more secure hash -// const improvedHash = await SecurePassword.hash(password) -// await db.user.update({where: {id: user.id}, data: {hashedPassword: improvedHash}}) -// } - -// const {hashedPassword, ...rest} = user -// return rest -// } -//@ts-ignore -export default resolver.pipe(resolver.zod(Login), async ({email, password}, ctx) => { - // This throws an error if credentials are invalid - // const user = await authenticateUser(email, password) - const user = await db.user.findFirst({where: {email}}) - //@ts-ignore - await ctx.session.$create({userId: user.id, role: user.role}) - console.log("user", user) - return user -}) diff --git a/apps/next13/src/pages/api/auth/session.ts b/apps/next13/src/pages/api/auth/session.ts deleted file mode 100644 index 46a08f3cfc..0000000000 --- a/apps/next13/src/pages/api/auth/session.ts +++ /dev/null @@ -1,8 +0,0 @@ -import {api} from "../../../blitz-server" - -export default api((req, res, ctx) => { - // console.log("session", ctx.session) - //get cookie - console.dir("cookie", req.headers.cookie) - res.json({session: ctx.session.userId}) -}) diff --git a/apps/next13/tsconfig.json b/apps/next13/tsconfig.json index 6ef5cd577f..e06a4454ab 100644 --- a/apps/next13/tsconfig.json +++ b/apps/next13/tsconfig.json @@ -18,7 +18,10 @@ { "name": "next" } - ] + ], + "paths": { + "@/*": ["./*"] + } }, "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], "exclude": ["node_modules"] diff --git a/apps/next13/types.ts b/apps/next13/types.ts index f0078d6e6d..452fe3411f 100644 --- a/apps/next13/types.ts +++ b/apps/next13/types.ts @@ -1,12 +1,15 @@ -import {SimpleRolesIsAuthorized} from "@blitzjs/auth" -import {User} from "./prisma" +import { SimpleRolesIsAuthorized } from "@blitzjs/auth" +import { User } from "@/db" + +export type Role = "ADMIN" | "USER" declare module "@blitzjs/auth" { export interface Session { - isAuthorized: SimpleRolesIsAuthorized + isAuthorized: SimpleRolesIsAuthorized PublicData: { userId: User["id"] - email: User["email"] + role: Role + views?: number } } } diff --git a/apps/toolkit-app/next.config.js b/apps/toolkit-app/next.config.js index 427535318a..c832684e2e 100644 --- a/apps/toolkit-app/next.config.js +++ b/apps/toolkit-app/next.config.js @@ -4,8 +4,6 @@ const { withBlitz } = require("@blitzjs/next") /** * @type {import('@blitzjs/next').BlitzConfig} **/ -const config = { - reactStrictMode: true, -} +const config = {} module.exports = withBlitz(withNextAuthAdapter(config)) diff --git a/apps/toolkit-app/src/pages/api/auth/[...nextauth].ts b/apps/toolkit-app/src/pages/api/auth/[...nextauth].ts index 370b5abef4..5f9a90f21a 100644 --- a/apps/toolkit-app/src/pages/api/auth/[...nextauth].ts +++ b/apps/toolkit-app/src/pages/api/auth/[...nextauth].ts @@ -1,5 +1,6 @@ import { api } from "src/blitz-server" import GithubProvider from "next-auth/providers/github" +import EmailProvider from "next-auth/providers/email" import { NextAuthAdapter, BlitzNextAuthOptions } from "@blitzjs/auth/next-auth" import db, { User } from "db" import { Role } from "types" @@ -10,6 +11,10 @@ const providers = [ clientId: process.env.GITHUB_CLIENT_ID as string, clientSecret: process.env.GITHUB_CLIENT_SECRET as string, }), + EmailProvider({ + from: process.env.GITHUB_CLIENT_ID as string, + server: process.env.GITHUB_CLIENT_SECRET as string, + }), ] export default api( diff --git a/apps/toolkit-app/src/pages/index.tsx b/apps/toolkit-app/src/pages/index.tsx index e1e3d07538..61f7db8be7 100644 --- a/apps/toolkit-app/src/pages/index.tsx +++ b/apps/toolkit-app/src/pages/index.tsx @@ -38,10 +38,10 @@ const UserInfo = () => { } else { return ( <> - + Sign Up - + Login diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cbac0387d0..955eabb8b9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,10 +1,11 @@ lockfileVersion: 5.4 importers: + .: specifiers: - "@blitzjs/manypkg": 0.19.1 - "@changesets/cli": 2.22.0 + '@blitzjs/manypkg': 0.19.1 + '@changesets/cli': 2.22.0 eslint: 8.27.0 husky: 8.0.2 jsdom: ^19.0.0 @@ -18,8 +19,8 @@ importers: vitest: 0.25.3 wait-on: 6.0.1 dependencies: - "@blitzjs/manypkg": 0.19.1 - "@changesets/cli": 2.22.0 + '@blitzjs/manypkg': 0.19.1 + '@changesets/cli': 2.22.0 eslint: 8.27.0 husky: 8.0.2 jsdom: 19.0.0 @@ -33,25 +34,70 @@ importers: vitest: 0.25.3_jsdom@19.0.0 wait-on: 6.0.1 + apps/app-dir: + specifiers: + '@blitzjs/auth': workspace:2.0.0-beta.27 + '@blitzjs/next': workspace:2.0.0-beta.27 + '@blitzjs/rpc': workspace:2.0.0-beta.27 + '@prisma/client': 4.14.0 + '@tanstack/react-form': 0.0.10 + '@types/node': 20.1.1 + '@types/react': 18.2.6 + '@types/react-dom': 18.2.4 + autoprefixer: 10.4.14 + blitz: workspace:2.0.0-beta.27 + eslint: 8.40.0 + eslint-config-next: 13.4.1 + next: 13.4.1 + postcss: 8.4.23 + prisma: 4.14.0 + react: 18.2.0 + react-dom: 18.2.0 + tailwindcss: 3.3.2 + typescript: 5.0.4 + zod: 3.20.2 + dependencies: + '@blitzjs/auth': link:../../packages/blitz-auth + '@blitzjs/next': link:../../packages/blitz-next + '@blitzjs/rpc': link:../../packages/blitz-rpc + '@prisma/client': 4.14.0_prisma@4.14.0 + '@tanstack/react-form': 0.0.10_biqbaboplfbrettd7655fr4n2y + '@types/node': 20.1.1 + '@types/react': 18.2.6 + '@types/react-dom': 18.2.4 + autoprefixer: 10.4.14_postcss@8.4.23 + blitz: link:../../packages/blitz + eslint: 8.40.0 + eslint-config-next: 13.4.1_3qfatcekpgbllh6uk5ivyhkbxq + next: 13.4.1_biqbaboplfbrettd7655fr4n2y + postcss: 8.4.23 + prisma: 4.14.0 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + tailwindcss: 3.3.2 + typescript: 5.0.4 + zod: 3.20.2 + apps/next13: specifiers: - "@blitzjs/auth": workspace:* - "@blitzjs/config": workspace:* - "@blitzjs/next": workspace:* - "@blitzjs/rpc": workspace:* - "@hookform/error-message": 2.0.0 - "@hookform/resolvers": 2.9.10 - "@prisma/client": ^4.5.0 - "@tanstack/react-query": 4.0.10 - "@types/node": 18.11.7 - "@types/react": 18.0.23 - "@types/react-dom": 18.0.7 + '@blitzjs/auth': workspace:* + '@blitzjs/config': workspace:* + '@blitzjs/next': workspace:* + '@blitzjs/rpc': workspace:* + '@hookform/error-message': 2.0.0 + '@hookform/resolvers': 2.9.10 + '@prisma/client': ^4.14.0 + '@tanstack/react-form': 0.0.10 + '@tanstack/react-query': 4.0.10 + '@types/node': 18.11.7 + '@types/react': 18.0.23 + '@types/react-dom': 18.0.7 blitz: workspace:* eslint: 8.26.0 eslint-config-next: 13.0.0 flatted: 3.2.7 - next: 13.3.0 - prisma: ^4.5.0 + next: 13.4.1 + prisma: ^4.14.0 react: 18.2.0 react-dom: 18.2.0 react-hook-form: 7.39.1 @@ -59,49 +105,50 @@ importers: typescript: 4.8.4 zod: 3.20.2 dependencies: - "@blitzjs/auth": link:../../packages/blitz-auth - "@blitzjs/config": link:../../packages/config - "@blitzjs/next": link:../../packages/blitz-next - "@blitzjs/rpc": link:../../packages/blitz-rpc - "@hookform/error-message": 2.0.0_uitc6c22ofsl6jhrdjqyu3was4 - "@hookform/resolvers": 2.9.10_react-hook-form@7.39.1 - "@prisma/client": 4.6.1_prisma@4.6.1 - "@tanstack/react-query": 4.0.10_biqbaboplfbrettd7655fr4n2y + '@blitzjs/auth': link:../../packages/blitz-auth + '@blitzjs/config': link:../../packages/config + '@blitzjs/next': link:../../packages/blitz-next + '@blitzjs/rpc': link:../../packages/blitz-rpc + '@hookform/error-message': 2.0.0_uitc6c22ofsl6jhrdjqyu3was4 + '@hookform/resolvers': 2.9.10_react-hook-form@7.39.1 + '@prisma/client': 4.14.0_prisma@4.14.0 + '@tanstack/react-form': 0.0.10_biqbaboplfbrettd7655fr4n2y + '@tanstack/react-query': 4.0.10_biqbaboplfbrettd7655fr4n2y blitz: link:../../packages/blitz flatted: 3.2.7 - next: 13.3.0_biqbaboplfbrettd7655fr4n2y - prisma: 4.6.1 + next: 13.4.1_biqbaboplfbrettd7655fr4n2y + prisma: 4.14.0 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 react-hook-form: 7.39.1_react@18.2.0 superjson: 1.11.0 zod: 3.20.2 devDependencies: - "@types/node": 18.11.7 - "@types/react": 18.0.23 - "@types/react-dom": 18.0.7 + '@types/node': 18.11.7 + '@types/react': 18.0.23 + '@types/react-dom': 18.0.7 eslint: 8.26.0 eslint-config-next: 13.0.0_wyqvi574yv7oiwfeinomdzmc3m typescript: 4.8.4 apps/toolkit-app: specifiers: - "@blitzjs/auth": workspace:* - "@blitzjs/config": workspace:* - "@blitzjs/next": workspace:* - "@blitzjs/rpc": workspace:* - "@hookform/error-message": 2.0.0 - "@hookform/resolvers": 2.9.10 - "@next/bundle-analyzer": 12.0.8 - "@prisma/client": 4.6.1 - "@testing-library/jest-dom": 5.16.5 - "@testing-library/react": 13.4.0 - "@testing-library/react-hooks": 8.0.1 - "@types/node": 18.11.9 - "@types/preview-email": 2.0.1 - "@types/react": 18.0.25 - "@typescript-eslint/eslint-plugin": 5.42.1 - "@vitejs/plugin-react": 2.2.0 + '@blitzjs/auth': workspace:* + '@blitzjs/config': workspace:* + '@blitzjs/next': workspace:* + '@blitzjs/rpc': workspace:* + '@hookform/error-message': 2.0.0 + '@hookform/resolvers': 2.9.10 + '@next/bundle-analyzer': 12.0.8 + '@prisma/client': 4.6.1 + '@testing-library/jest-dom': 5.16.5 + '@testing-library/react': 13.4.0 + '@testing-library/react-hooks': 8.0.1 + '@types/node': 18.11.9 + '@types/preview-email': 2.0.1 + '@types/react': 18.0.25 + '@typescript-eslint/eslint-plugin': 5.42.1 + '@vitejs/plugin-react': 2.2.0 blitz: workspace:2.0.0-beta.27 eslint: 8.27.0 eslint-config-next: 12.3.1 @@ -125,13 +172,13 @@ importers: vitest: 0.25.3 zod: 3.20.2 dependencies: - "@blitzjs/auth": link:../../packages/blitz-auth - "@blitzjs/config": link:../../packages/config - "@blitzjs/next": link:../../packages/blitz-next - "@blitzjs/rpc": link:../../packages/blitz-rpc - "@hookform/error-message": 2.0.0_uitc6c22ofsl6jhrdjqyu3was4 - "@hookform/resolvers": 2.9.10_react-hook-form@7.39.1 - "@prisma/client": 4.6.1_prisma@4.6.1 + '@blitzjs/auth': link:../../packages/blitz-auth + '@blitzjs/config': link:../../packages/config + '@blitzjs/next': link:../../packages/blitz-next + '@blitzjs/rpc': link:../../packages/blitz-rpc + '@hookform/error-message': 2.0.0_uitc6c22ofsl6jhrdjqyu3was4 + '@hookform/resolvers': 2.9.10_react-hook-form@7.39.1 + '@prisma/client': 4.6.1_prisma@4.6.1 blitz: link:../../packages/blitz next: 13.3.0_biqbaboplfbrettd7655fr4n2y next-auth: 4.18.7_yucv4tfv7v7nrkw2uguegj6e7e @@ -142,15 +189,15 @@ importers: ts-node: 10.9.1_cbe7ovvae6zqfnmtgctpgpys54 zod: 3.20.2 devDependencies: - "@next/bundle-analyzer": 12.0.8 - "@testing-library/jest-dom": 5.16.5 - "@testing-library/react": 13.4.0_biqbaboplfbrettd7655fr4n2y - "@testing-library/react-hooks": 8.0.1_2zx2umvpluuhvlq44va5bta2da - "@types/node": 18.11.9 - "@types/preview-email": 2.0.1 - "@types/react": 18.0.25 - "@typescript-eslint/eslint-plugin": 5.42.1_rmayb2veg2btbq6mbmnyivgasy - "@vitejs/plugin-react": 2.2.0 + '@next/bundle-analyzer': 12.0.8 + '@testing-library/jest-dom': 5.16.5 + '@testing-library/react': 13.4.0_biqbaboplfbrettd7655fr4n2y + '@testing-library/react-hooks': 8.0.1_2zx2umvpluuhvlq44va5bta2da + '@types/node': 18.11.9 + '@types/preview-email': 2.0.1 + '@types/react': 18.0.25 + '@typescript-eslint/eslint-plugin': 5.42.1_rmayb2veg2btbq6mbmnyivgasy + '@vitejs/plugin-react': 2.2.0 eslint: 8.27.0 eslint-config-next: 12.3.1_rmayb2veg2btbq6mbmnyivgasy eslint-config-prettier: 8.5.0_eslint@8.27.0 @@ -167,21 +214,21 @@ importers: apps/toolkit-app-passportjs: specifiers: - "@blitzjs/auth": workspace:* - "@blitzjs/config": workspace:* - "@blitzjs/next": workspace:* - "@blitzjs/rpc": workspace:* - "@hookform/error-message": 2.0.0 - "@hookform/resolvers": 2.9.10 - "@next/bundle-analyzer": 12.0.8 - "@prisma/client": 4.6.1 - "@testing-library/react": 13.4.0 - "@testing-library/react-hooks": 8.0.1 - "@types/jest": 29.2.2 - "@types/node": 18.11.9 - "@types/preview-email": 2.0.1 - "@types/react": 18.0.25 - "@typescript-eslint/eslint-plugin": 5.42.1 + '@blitzjs/auth': workspace:* + '@blitzjs/config': workspace:* + '@blitzjs/next': workspace:* + '@blitzjs/rpc': workspace:* + '@hookform/error-message': 2.0.0 + '@hookform/resolvers': 2.9.10 + '@next/bundle-analyzer': 12.0.8 + '@prisma/client': 4.6.1 + '@testing-library/react': 13.4.0 + '@testing-library/react-hooks': 8.0.1 + '@types/jest': 29.2.2 + '@types/node': 18.11.9 + '@types/preview-email': 2.0.1 + '@types/react': 18.0.25 + '@typescript-eslint/eslint-plugin': 5.42.1 blitz: workspace:2.0.0-beta.27 eslint: 8.27.0 eslint-config-next: 12.3.1 @@ -204,13 +251,13 @@ importers: typescript: ^4.8.4 zod: 3.20.2 dependencies: - "@blitzjs/auth": link:../../packages/blitz-auth - "@blitzjs/config": link:../../packages/config - "@blitzjs/next": link:../../packages/blitz-next - "@blitzjs/rpc": link:../../packages/blitz-rpc - "@hookform/error-message": 2.0.0_uitc6c22ofsl6jhrdjqyu3was4 - "@hookform/resolvers": 2.9.10_react-hook-form@7.39.1 - "@prisma/client": 4.6.1_prisma@4.6.1 + '@blitzjs/auth': link:../../packages/blitz-auth + '@blitzjs/config': link:../../packages/config + '@blitzjs/next': link:../../packages/blitz-next + '@blitzjs/rpc': link:../../packages/blitz-rpc + '@hookform/error-message': 2.0.0_uitc6c22ofsl6jhrdjqyu3was4 + '@hookform/resolvers': 2.9.10_react-hook-form@7.39.1 + '@prisma/client': 4.6.1_prisma@4.6.1 blitz: link:../../packages/blitz next: 13.3.0_biqbaboplfbrettd7655fr4n2y openid-client: 5.2.1 @@ -221,14 +268,14 @@ importers: ts-node: 10.9.1_cbe7ovvae6zqfnmtgctpgpys54 zod: 3.20.2 devDependencies: - "@next/bundle-analyzer": 12.0.8 - "@testing-library/react": 13.4.0_biqbaboplfbrettd7655fr4n2y - "@testing-library/react-hooks": 8.0.1_2zx2umvpluuhvlq44va5bta2da - "@types/jest": 29.2.2 - "@types/node": 18.11.9 - "@types/preview-email": 2.0.1 - "@types/react": 18.0.25 - "@typescript-eslint/eslint-plugin": 5.42.1_rmayb2veg2btbq6mbmnyivgasy + '@next/bundle-analyzer': 12.0.8 + '@testing-library/react': 13.4.0_biqbaboplfbrettd7655fr4n2y + '@testing-library/react-hooks': 8.0.1_2zx2umvpluuhvlq44va5bta2da + '@types/jest': 29.2.2 + '@types/node': 18.11.9 + '@types/preview-email': 2.0.1 + '@types/react': 18.0.25 + '@typescript-eslint/eslint-plugin': 5.42.1_rmayb2veg2btbq6mbmnyivgasy eslint: 8.27.0 eslint-config-next: 12.3.1_rmayb2veg2btbq6mbmnyivgasy eslint-config-prettier: 8.5.0_eslint@8.27.0 @@ -244,15 +291,15 @@ importers: apps/web: specifiers: - "@blitzjs/auth": workspace:* - "@blitzjs/config": workspace:* - "@blitzjs/next": workspace:* - "@blitzjs/rpc": workspace:* - "@next/bundle-analyzer": 12.0.8 - "@prisma/client": 4.6.1 - "@types/jest": 29.2.2 - "@types/passport-twitter": 1.0.37 - "@types/react": 18.0.25 + '@blitzjs/auth': workspace:* + '@blitzjs/config': workspace:* + '@blitzjs/next': workspace:* + '@blitzjs/rpc': workspace:* + '@next/bundle-analyzer': 12.0.8 + '@prisma/client': 4.6.1 + '@types/jest': 29.2.2 + '@types/passport-twitter': 1.0.37 + '@types/react': 18.0.25 blitz: workspace:* eslint: 8.27.0 jest: 29.3.0 @@ -266,13 +313,13 @@ importers: ts-node: 10.9.1 typescript: ^4.8.4 dependencies: - "@blitzjs/auth": link:../../packages/blitz-auth - "@blitzjs/config": link:../../packages/config - "@blitzjs/next": link:../../packages/blitz-next - "@blitzjs/rpc": link:../../packages/blitz-rpc - "@prisma/client": 4.6.1_prisma@4.6.1 - "@types/jest": 29.2.2 - "@types/passport-twitter": 1.0.37 + '@blitzjs/auth': link:../../packages/blitz-auth + '@blitzjs/config': link:../../packages/config + '@blitzjs/next': link:../../packages/blitz-next + '@blitzjs/rpc': link:../../packages/blitz-rpc + '@prisma/client': 4.6.1_prisma@4.6.1 + '@types/jest': 29.2.2 + '@types/passport-twitter': 1.0.37 blitz: link:../../packages/blitz jest: 29.3.0_ts-node@10.9.1 jest-environment-jsdom: 29.3.0 @@ -284,23 +331,23 @@ importers: react-dom: 18.2.0_react@18.2.0 ts-node: 10.9.1_typescript@4.8.4 devDependencies: - "@next/bundle-analyzer": 12.0.8 - "@types/react": 18.0.25 + '@next/bundle-analyzer': 12.0.8 + '@types/react': 18.0.25 eslint: 8.27.0 typescript: 4.8.4 integration-tests/auth: specifiers: - "@blitzjs/auth": workspace:2.0.0-beta.27 - "@blitzjs/config": workspace:2.0.0-beta.27 - "@blitzjs/next": workspace:2.0.0-beta.27 - "@next/bundle-analyzer": 12.0.8 - "@prisma/client": 4.6.1 - "@types/express": 4.17.13 - "@types/fs-extra": 9.0.13 - "@types/node": 18.7.13 - "@types/node-fetch": 2.6.1 - "@types/react": 18.0.25 + '@blitzjs/auth': workspace:2.0.0-beta.27 + '@blitzjs/config': workspace:2.0.0-beta.27 + '@blitzjs/next': workspace:2.0.0-beta.27 + '@next/bundle-analyzer': 12.0.8 + '@prisma/client': 4.6.1 + '@types/express': 4.17.13 + '@types/fs-extra': 9.0.13 + '@types/node': 18.7.13 + '@types/node-fetch': 2.6.1 + '@types/react': 18.0.25 b64-lite: 1.4.0 blitz: workspace:2.0.0-beta.27 eslint: 8.27.0 @@ -318,10 +365,10 @@ importers: typescript: ^4.8.4 wait-port: 1.0.4 dependencies: - "@blitzjs/auth": link:../../packages/blitz-auth - "@blitzjs/config": link:../../packages/config - "@blitzjs/next": link:../../packages/blitz-next - "@prisma/client": 4.6.1_prisma@4.6.1 + '@blitzjs/auth': link:../../packages/blitz-auth + '@blitzjs/config': link:../../packages/config + '@blitzjs/next': link:../../packages/blitz-next + '@prisma/client': 4.6.1_prisma@4.6.1 blitz: link:../../packages/blitz lowdb: 3.0.0 next: 13.3.0_biqbaboplfbrettd7655fr4n2y @@ -331,12 +378,12 @@ importers: secure-password: 4.0.0 wait-port: 1.0.4 devDependencies: - "@next/bundle-analyzer": 12.0.8 - "@types/express": 4.17.13 - "@types/fs-extra": 9.0.13 - "@types/node": 18.7.13 - "@types/node-fetch": 2.6.1 - "@types/react": 18.0.25 + '@next/bundle-analyzer': 12.0.8 + '@types/express': 4.17.13 + '@types/fs-extra': 9.0.13 + '@types/node': 18.7.13 + '@types/node-fetch': 2.6.1 + '@types/react': 18.0.25 b64-lite: 1.4.0 eslint: 8.27.0 fs-extra: 10.0.1 @@ -348,22 +395,22 @@ importers: integration-tests/auth-with-rpc: specifiers: - "@blitzjs/auth": workspace:2.0.0-beta.27 - "@blitzjs/config": workspace:2.0.0-beta.27 - "@blitzjs/next": workspace:2.0.0-beta.27 - "@blitzjs/rpc": workspace:2.0.0-beta.27 - "@hookform/error-message": 2.0.0 - "@hookform/resolvers": 2.9.10 - "@next/bundle-analyzer": 12.0.8 - "@prisma/client": 4.6.1 - "@testing-library/jest-dom": 5.16.5 - "@testing-library/react": 13.4.0 - "@testing-library/react-hooks": 8.0.1 - "@types/node": 18.11.9 - "@types/preview-email": 2.0.1 - "@types/react": 18.0.25 - "@typescript-eslint/eslint-plugin": 5.42.1 - "@vitejs/plugin-react": 2.2.0 + '@blitzjs/auth': workspace:2.0.0-beta.27 + '@blitzjs/config': workspace:2.0.0-beta.27 + '@blitzjs/next': workspace:2.0.0-beta.27 + '@blitzjs/rpc': workspace:2.0.0-beta.27 + '@hookform/error-message': 2.0.0 + '@hookform/resolvers': 2.9.10 + '@next/bundle-analyzer': 12.0.8 + '@prisma/client': 4.6.1 + '@testing-library/jest-dom': 5.16.5 + '@testing-library/react': 13.4.0 + '@testing-library/react-hooks': 8.0.1 + '@types/node': 18.11.9 + '@types/preview-email': 2.0.1 + '@types/react': 18.0.25 + '@typescript-eslint/eslint-plugin': 5.42.1 + '@vitejs/plugin-react': 2.2.0 blitz: workspace:2.0.0-beta.27 delay: 5.0.0 eslint: 8.27.0 @@ -388,13 +435,13 @@ importers: vitest: 0.25.3 zod: 3.20.2 dependencies: - "@blitzjs/auth": link:../../packages/blitz-auth - "@blitzjs/config": link:../../packages/config - "@blitzjs/next": link:../../packages/blitz-next - "@blitzjs/rpc": link:../../packages/blitz-rpc - "@hookform/error-message": 2.0.0_uitc6c22ofsl6jhrdjqyu3was4 - "@hookform/resolvers": 2.9.10_react-hook-form@7.39.1 - "@prisma/client": 4.6.1_prisma@4.6.1 + '@blitzjs/auth': link:../../packages/blitz-auth + '@blitzjs/config': link:../../packages/config + '@blitzjs/next': link:../../packages/blitz-next + '@blitzjs/rpc': link:../../packages/blitz-rpc + '@hookform/error-message': 2.0.0_uitc6c22ofsl6jhrdjqyu3was4 + '@hookform/resolvers': 2.9.10_react-hook-form@7.39.1 + '@prisma/client': 4.6.1_prisma@4.6.1 blitz: link:../../packages/blitz delay: 5.0.0 next: 13.3.0_biqbaboplfbrettd7655fr4n2y @@ -405,15 +452,15 @@ importers: ts-node: 10.9.1_cbe7ovvae6zqfnmtgctpgpys54 zod: 3.20.2 devDependencies: - "@next/bundle-analyzer": 12.0.8 - "@testing-library/jest-dom": 5.16.5 - "@testing-library/react": 13.4.0_biqbaboplfbrettd7655fr4n2y - "@testing-library/react-hooks": 8.0.1_2zx2umvpluuhvlq44va5bta2da - "@types/node": 18.11.9 - "@types/preview-email": 2.0.1 - "@types/react": 18.0.25 - "@typescript-eslint/eslint-plugin": 5.42.1_rmayb2veg2btbq6mbmnyivgasy - "@vitejs/plugin-react": 2.2.0 + '@next/bundle-analyzer': 12.0.8 + '@testing-library/jest-dom': 5.16.5 + '@testing-library/react': 13.4.0_biqbaboplfbrettd7655fr4n2y + '@testing-library/react-hooks': 8.0.1_2zx2umvpluuhvlq44va5bta2da + '@types/node': 18.11.9 + '@types/preview-email': 2.0.1 + '@types/react': 18.0.25 + '@typescript-eslint/eslint-plugin': 5.42.1_rmayb2veg2btbq6mbmnyivgasy + '@vitejs/plugin-react': 2.2.0 eslint: 8.27.0 eslint-config-next: 12.3.1_rmayb2veg2btbq6mbmnyivgasy eslint-config-prettier: 8.5.0_eslint@8.27.0 @@ -431,16 +478,16 @@ importers: integration-tests/get-initial-props: specifiers: - "@blitzjs/auth": workspace:2.0.0-beta.27 - "@blitzjs/config": workspace:2.0.0-beta.27 - "@blitzjs/next": workspace:2.0.0-beta.27 - "@blitzjs/rpc": workspace:2.0.0-beta.27 - "@next/bundle-analyzer": 12.0.8 - "@prisma/client": 4.6.1 - "@types/express": 4.17.13 - "@types/fs-extra": 9.0.13 - "@types/node-fetch": 2.6.1 - "@types/react": 18.0.25 + '@blitzjs/auth': workspace:2.0.0-beta.27 + '@blitzjs/config': workspace:2.0.0-beta.27 + '@blitzjs/next': workspace:2.0.0-beta.27 + '@blitzjs/rpc': workspace:2.0.0-beta.27 + '@next/bundle-analyzer': 12.0.8 + '@prisma/client': 4.6.1 + '@types/express': 4.17.13 + '@types/fs-extra': 9.0.13 + '@types/node-fetch': 2.6.1 + '@types/react': 18.0.25 b64-lite: 1.4.0 blitz: workspace:2.0.0-beta.27 eslint: 8.27.0 @@ -454,10 +501,10 @@ importers: react-dom: 18.2.0 typescript: ^4.8.4 dependencies: - "@blitzjs/auth": link:../../packages/blitz-auth - "@blitzjs/next": link:../../packages/blitz-next - "@blitzjs/rpc": link:../../packages/blitz-rpc - "@prisma/client": 4.6.1_prisma@4.6.1 + '@blitzjs/auth': link:../../packages/blitz-auth + '@blitzjs/next': link:../../packages/blitz-next + '@blitzjs/rpc': link:../../packages/blitz-rpc + '@prisma/client': 4.6.1_prisma@4.6.1 blitz: link:../../packages/blitz lowdb: 3.0.0 next: 13.3.0_biqbaboplfbrettd7655fr4n2y @@ -465,12 +512,12 @@ importers: react: 18.2.0 react-dom: 18.2.0_react@18.2.0 devDependencies: - "@blitzjs/config": link:../../packages/config - "@next/bundle-analyzer": 12.0.8 - "@types/express": 4.17.13 - "@types/fs-extra": 9.0.13 - "@types/node-fetch": 2.6.1 - "@types/react": 18.0.25 + '@blitzjs/config': link:../../packages/config + '@next/bundle-analyzer': 12.0.8 + '@types/express': 4.17.13 + '@types/fs-extra': 9.0.13 + '@types/node-fetch': 2.6.1 + '@types/react': 18.0.25 b64-lite: 1.4.0 eslint: 8.27.0 fs-extra: 10.0.1 @@ -480,14 +527,14 @@ importers: integration-tests/middleware: specifiers: - "@blitzjs/config": workspace:2.0.0-beta.27 - "@blitzjs/next": workspace:2.0.0-beta.27 - "@blitzjs/rpc": workspace:2.0.0-beta.27 - "@next/bundle-analyzer": 12.0.8 - "@types/express": 4.17.13 - "@types/fs-extra": 9.0.13 - "@types/node-fetch": 2.6.1 - "@types/react": 18.0.25 + '@blitzjs/config': workspace:2.0.0-beta.27 + '@blitzjs/next': workspace:2.0.0-beta.27 + '@blitzjs/rpc': workspace:2.0.0-beta.27 + '@next/bundle-analyzer': 12.0.8 + '@types/express': 4.17.13 + '@types/fs-extra': 9.0.13 + '@types/node-fetch': 2.6.1 + '@types/react': 18.0.25 blitz: workspace:2.0.0-beta.27 eslint: 8.27.0 fs-extra: 10.0.1 @@ -498,19 +545,19 @@ importers: react-dom: 18.2.0 typescript: ^4.8.4 dependencies: - "@blitzjs/config": link:../../packages/config - "@blitzjs/next": link:../../packages/blitz-next - "@blitzjs/rpc": link:../../packages/blitz-rpc + '@blitzjs/config': link:../../packages/config + '@blitzjs/next': link:../../packages/blitz-next + '@blitzjs/rpc': link:../../packages/blitz-rpc blitz: link:../../packages/blitz next: 13.3.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 devDependencies: - "@next/bundle-analyzer": 12.0.8 - "@types/express": 4.17.13 - "@types/fs-extra": 9.0.13 - "@types/node-fetch": 2.6.1 - "@types/react": 18.0.25 + '@next/bundle-analyzer': 12.0.8 + '@types/express': 4.17.13 + '@types/fs-extra': 9.0.13 + '@types/node-fetch': 2.6.1 + '@types/react': 18.0.25 eslint: 8.27.0 fs-extra: 10.0.1 get-port: 6.1.2 @@ -519,17 +566,17 @@ importers: integration-tests/next-13-app-dir: specifiers: - "@blitzjs/auth": workspace:2.0.0-beta.27 - "@blitzjs/config": workspace:2.0.0-beta.27 - "@blitzjs/next": workspace:2.0.0-beta.27 - "@blitzjs/rpc": workspace:2.0.0-beta.27 - "@next/bundle-analyzer": 12.0.8 - "@prisma/client": 4.6.1 - "@types/express": 4.17.13 - "@types/fs-extra": 9.0.13 - "@types/node": 18.7.13 - "@types/node-fetch": 2.6.1 - "@types/react": 18.0.25 + '@blitzjs/auth': workspace:2.0.0-beta.27 + '@blitzjs/config': workspace:2.0.0-beta.27 + '@blitzjs/next': workspace:2.0.0-beta.27 + '@blitzjs/rpc': workspace:2.0.0-beta.27 + '@next/bundle-analyzer': 12.0.8 + '@prisma/client': 4.6.1 + '@types/express': 4.17.13 + '@types/fs-extra': 9.0.13 + '@types/node': 18.7.13 + '@types/node-fetch': 2.6.1 + '@types/react': 18.0.25 b64-lite: 1.4.0 blitz: workspace:2.0.0-beta.27 eslint: 8.27.0 @@ -547,11 +594,11 @@ importers: typescript: ^4.8.4 wait-port: 1.0.4 dependencies: - "@blitzjs/auth": link:../../packages/blitz-auth - "@blitzjs/config": link:../../packages/config - "@blitzjs/next": link:../../packages/blitz-next - "@blitzjs/rpc": link:../../packages/blitz-rpc - "@prisma/client": 4.6.1_prisma@4.6.1 + '@blitzjs/auth': link:../../packages/blitz-auth + '@blitzjs/config': link:../../packages/config + '@blitzjs/next': link:../../packages/blitz-next + '@blitzjs/rpc': link:../../packages/blitz-rpc + '@prisma/client': 4.6.1_prisma@4.6.1 blitz: link:../../packages/blitz lowdb: 3.0.0 next: 13.3.0_biqbaboplfbrettd7655fr4n2y @@ -561,12 +608,12 @@ importers: secure-password: 4.0.0 wait-port: 1.0.4 devDependencies: - "@next/bundle-analyzer": 12.0.8 - "@types/express": 4.17.13 - "@types/fs-extra": 9.0.13 - "@types/node": 18.7.13 - "@types/node-fetch": 2.6.1 - "@types/react": 18.0.25 + '@next/bundle-analyzer': 12.0.8 + '@types/express': 4.17.13 + '@types/fs-extra': 9.0.13 + '@types/node': 18.7.13 + '@types/node-fetch': 2.6.1 + '@types/react': 18.0.25 b64-lite: 1.4.0 eslint: 8.27.0 fs-extra: 10.0.1 @@ -578,16 +625,16 @@ importers: integration-tests/no-suspense: specifiers: - "@blitzjs/auth": workspace:2.0.0-beta.27 - "@blitzjs/config": workspace:2.0.0-beta.27 - "@blitzjs/next": workspace:2.0.0-beta.27 - "@blitzjs/rpc": workspace:2.0.0-beta.27 - "@next/bundle-analyzer": 12.0.8 - "@prisma/client": 4.6.1 - "@types/express": 4.17.13 - "@types/fs-extra": 9.0.13 - "@types/node-fetch": 2.6.1 - "@types/react": 18.0.25 + '@blitzjs/auth': workspace:2.0.0-beta.27 + '@blitzjs/config': workspace:2.0.0-beta.27 + '@blitzjs/next': workspace:2.0.0-beta.27 + '@blitzjs/rpc': workspace:2.0.0-beta.27 + '@next/bundle-analyzer': 12.0.8 + '@prisma/client': 4.6.1 + '@types/express': 4.17.13 + '@types/fs-extra': 9.0.13 + '@types/node-fetch': 2.6.1 + '@types/react': 18.0.25 b64-lite: 1.4.0 blitz: workspace:2.0.0-beta.27 eslint: 8.27.0 @@ -601,10 +648,10 @@ importers: react-dom: 18.2.0 typescript: ^4.8.4 dependencies: - "@blitzjs/auth": link:../../packages/blitz-auth - "@blitzjs/next": link:../../packages/blitz-next - "@blitzjs/rpc": link:../../packages/blitz-rpc - "@prisma/client": 4.6.1_prisma@4.6.1 + '@blitzjs/auth': link:../../packages/blitz-auth + '@blitzjs/next': link:../../packages/blitz-next + '@blitzjs/rpc': link:../../packages/blitz-rpc + '@prisma/client': 4.6.1_prisma@4.6.1 blitz: link:../../packages/blitz lowdb: 3.0.0 next: 13.3.0_biqbaboplfbrettd7655fr4n2y @@ -612,12 +659,12 @@ importers: react: 18.2.0 react-dom: 18.2.0_react@18.2.0 devDependencies: - "@blitzjs/config": link:../../packages/config - "@next/bundle-analyzer": 12.0.8 - "@types/express": 4.17.13 - "@types/fs-extra": 9.0.13 - "@types/node-fetch": 2.6.1 - "@types/react": 18.0.25 + '@blitzjs/config': link:../../packages/config + '@next/bundle-analyzer': 12.0.8 + '@types/express': 4.17.13 + '@types/fs-extra': 9.0.13 + '@types/node-fetch': 2.6.1 + '@types/react': 18.0.25 b64-lite: 1.4.0 eslint: 8.27.0 fs-extra: 10.0.1 @@ -627,15 +674,15 @@ importers: integration-tests/qm: specifiers: - "@blitzjs/auth": workspace:2.0.0-beta.27 - "@blitzjs/config": workspace:2.0.0-beta.27 - "@blitzjs/next": workspace:2.0.0-beta.27 - "@blitzjs/rpc": workspace:2.0.0-beta.27 - "@prisma/client": 4.6.1 - "@tanstack/react-query": 4.0.10 - "@testing-library/react": 13.4.0 - "@types/react": 18.0.25 - "@vitejs/plugin-react": 1.3.0 + '@blitzjs/auth': workspace:2.0.0-beta.27 + '@blitzjs/config': workspace:2.0.0-beta.27 + '@blitzjs/next': workspace:2.0.0-beta.27 + '@blitzjs/rpc': workspace:2.0.0-beta.27 + '@prisma/client': 4.6.1 + '@tanstack/react-query': 4.0.10 + '@testing-library/react': 13.4.0 + '@types/react': 18.0.25 + '@vitejs/plugin-react': 1.3.0 blitz: workspace:2.0.0-beta.27 delay: 5.0.0 eslint: 8.27.0 @@ -648,39 +695,39 @@ importers: react-dom: 18.2.0 typescript: ^4.8.4 dependencies: - "@blitzjs/auth": link:../../packages/blitz-auth - "@blitzjs/config": link:../../packages/config - "@blitzjs/next": link:../../packages/blitz-next - "@blitzjs/rpc": link:../../packages/blitz-rpc - "@prisma/client": 4.6.1_prisma@4.6.1 - "@tanstack/react-query": 4.0.10_biqbaboplfbrettd7655fr4n2y + '@blitzjs/auth': link:../../packages/blitz-auth + '@blitzjs/config': link:../../packages/config + '@blitzjs/next': link:../../packages/blitz-next + '@blitzjs/rpc': link:../../packages/blitz-rpc + '@prisma/client': 4.6.1_prisma@4.6.1 + '@tanstack/react-query': 4.0.10_biqbaboplfbrettd7655fr4n2y blitz: link:../../packages/blitz next: 13.3.0_biqbaboplfbrettd7655fr4n2y prisma: 4.6.1 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 devDependencies: - "@testing-library/react": 13.4.0_biqbaboplfbrettd7655fr4n2y - "@types/react": 18.0.25 - "@vitejs/plugin-react": 1.3.0 + '@testing-library/react': 13.4.0_biqbaboplfbrettd7655fr4n2y + '@types/react': 18.0.25 + '@vitejs/plugin-react': 1.3.0 delay: 5.0.0 eslint: 8.27.0 - eslint-config-next: 13.3.4_rmayb2veg2btbq6mbmnyivgasy + eslint-config-next: 13.4.2_rmayb2veg2btbq6mbmnyivgasy eslint-plugin-testing-library: 5.0.1_rmayb2veg2btbq6mbmnyivgasy jsdom: 19.0.0 typescript: 4.8.4 integration-tests/react-query-utils: specifiers: - "@blitzjs/config": workspace:2.0.0-beta.27 - "@blitzjs/next": workspace:2.0.0-beta.27 - "@blitzjs/rpc": workspace:2.0.0-beta.27 - "@next/bundle-analyzer": 12.0.8 - "@prisma/client": 4.6.1 - "@types/express": 4.17.13 - "@types/fs-extra": 9.0.13 - "@types/node-fetch": 2.6.1 - "@types/react": 18.0.25 + '@blitzjs/config': workspace:2.0.0-beta.27 + '@blitzjs/next': workspace:2.0.0-beta.27 + '@blitzjs/rpc': workspace:2.0.0-beta.27 + '@next/bundle-analyzer': 12.0.8 + '@prisma/client': 4.6.1 + '@types/express': 4.17.13 + '@types/fs-extra': 9.0.13 + '@types/node-fetch': 2.6.1 + '@types/react': 18.0.25 b64-lite: 1.4.0 blitz: workspace:2.0.0-beta.27 eslint: 8.27.0 @@ -694,9 +741,9 @@ importers: react-dom: 18.2.0 typescript: ^4.8.4 dependencies: - "@blitzjs/next": link:../../packages/blitz-next - "@blitzjs/rpc": link:../../packages/blitz-rpc - "@prisma/client": 4.6.1_prisma@4.6.1 + '@blitzjs/next': link:../../packages/blitz-next + '@blitzjs/rpc': link:../../packages/blitz-rpc + '@prisma/client': 4.6.1_prisma@4.6.1 blitz: link:../../packages/blitz lowdb: 3.0.0 next: 13.3.0_biqbaboplfbrettd7655fr4n2y @@ -704,12 +751,12 @@ importers: react: 18.2.0 react-dom: 18.2.0_react@18.2.0 devDependencies: - "@blitzjs/config": link:../../packages/config - "@next/bundle-analyzer": 12.0.8 - "@types/express": 4.17.13 - "@types/fs-extra": 9.0.13 - "@types/node-fetch": 2.6.1 - "@types/react": 18.0.25 + '@blitzjs/config': link:../../packages/config + '@next/bundle-analyzer': 12.0.8 + '@types/express': 4.17.13 + '@types/fs-extra': 9.0.13 + '@types/node-fetch': 2.6.1 + '@types/react': 18.0.25 b64-lite: 1.4.0 eslint: 8.27.0 fs-extra: 10.0.1 @@ -719,13 +766,13 @@ importers: integration-tests/rpc: specifiers: - "@blitzjs/config": workspace:2.0.0-beta.27 - "@blitzjs/next": workspace:2.0.0-beta.27 - "@blitzjs/rpc": workspace:2.0.0-beta.27 - "@types/express": 4.17.13 - "@types/fs-extra": 9.0.13 - "@types/node-fetch": 2.6.1 - "@types/react": 18.0.25 + '@blitzjs/config': workspace:2.0.0-beta.27 + '@blitzjs/next': workspace:2.0.0-beta.27 + '@blitzjs/rpc': workspace:2.0.0-beta.27 + '@types/express': 4.17.13 + '@types/fs-extra': 9.0.13 + '@types/node-fetch': 2.6.1 + '@types/react': 18.0.25 b64-lite: 1.4.0 blitz: workspace:2.0.0-beta.27 eslint: 8.27.0 @@ -735,18 +782,18 @@ importers: react-dom: 18.2.0 typescript: ^4.8.4 dependencies: - "@blitzjs/config": link:../../packages/config - "@blitzjs/next": link:../../packages/blitz-next - "@blitzjs/rpc": link:../../packages/blitz-rpc + '@blitzjs/config': link:../../packages/config + '@blitzjs/next': link:../../packages/blitz-next + '@blitzjs/rpc': link:../../packages/blitz-rpc blitz: link:../../packages/blitz next: 13.3.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 devDependencies: - "@types/express": 4.17.13 - "@types/fs-extra": 9.0.13 - "@types/node-fetch": 2.6.1 - "@types/react": 18.0.25 + '@types/express': 4.17.13 + '@types/fs-extra': 9.0.13 + '@types/node-fetch': 2.6.1 + '@types/react': 18.0.25 b64-lite: 1.4.0 eslint: 8.27.0 fs-extra: 10.0.1 @@ -754,13 +801,13 @@ importers: integration-tests/rpc-path-root: specifiers: - "@blitzjs/config": workspace:2.0.0-beta.27 - "@blitzjs/next": workspace:2.0.0-beta.27 - "@blitzjs/rpc": workspace:2.0.0-beta.27 - "@types/express": 4.17.13 - "@types/fs-extra": 9.0.13 - "@types/node-fetch": 2.6.1 - "@types/react": 18.0.25 + '@blitzjs/config': workspace:2.0.0-beta.27 + '@blitzjs/next': workspace:2.0.0-beta.27 + '@blitzjs/rpc': workspace:2.0.0-beta.27 + '@types/express': 4.17.13 + '@types/fs-extra': 9.0.13 + '@types/node-fetch': 2.6.1 + '@types/react': 18.0.25 b64-lite: 1.4.0 blitz: workspace:2.0.0-beta.27 eslint: 8.27.0 @@ -770,18 +817,18 @@ importers: react-dom: 18.2.0 typescript: ^4.8.4 dependencies: - "@blitzjs/config": link:../../packages/config - "@blitzjs/next": link:../../packages/blitz-next - "@blitzjs/rpc": link:../../packages/blitz-rpc + '@blitzjs/config': link:../../packages/config + '@blitzjs/next': link:../../packages/blitz-next + '@blitzjs/rpc': link:../../packages/blitz-rpc blitz: link:../../packages/blitz next: 13.3.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 devDependencies: - "@types/express": 4.17.13 - "@types/fs-extra": 9.0.13 - "@types/node-fetch": 2.6.1 - "@types/react": 18.0.25 + '@types/express': 4.17.13 + '@types/fs-extra': 9.0.13 + '@types/node-fetch': 2.6.1 + '@types/react': 18.0.25 b64-lite: 1.4.0 eslint: 8.27.0 fs-extra: 10.0.1 @@ -789,16 +836,16 @@ importers: integration-tests/trailing-slash: specifiers: - "@blitzjs/auth": workspace:2.0.0-beta.27 - "@blitzjs/config": workspace:2.0.0-beta.27 - "@blitzjs/next": workspace:2.0.0-beta.27 - "@blitzjs/rpc": workspace:2.0.0-beta.27 - "@next/bundle-analyzer": 12.0.8 - "@prisma/client": 4.6.1 - "@types/express": 4.17.13 - "@types/fs-extra": 9.0.13 - "@types/node-fetch": 2.6.1 - "@types/react": 18.0.25 + '@blitzjs/auth': workspace:2.0.0-beta.27 + '@blitzjs/config': workspace:2.0.0-beta.27 + '@blitzjs/next': workspace:2.0.0-beta.27 + '@blitzjs/rpc': workspace:2.0.0-beta.27 + '@next/bundle-analyzer': 12.0.8 + '@prisma/client': 4.6.1 + '@types/express': 4.17.13 + '@types/fs-extra': 9.0.13 + '@types/node-fetch': 2.6.1 + '@types/react': 18.0.25 b64-lite: 1.4.0 blitz: workspace:2.0.0-beta.27 eslint: 8.27.0 @@ -812,10 +859,10 @@ importers: react-dom: 18.2.0 typescript: ^4.8.4 dependencies: - "@blitzjs/auth": link:../../packages/blitz-auth - "@blitzjs/next": link:../../packages/blitz-next - "@blitzjs/rpc": link:../../packages/blitz-rpc - "@prisma/client": 4.6.1_prisma@4.6.1 + '@blitzjs/auth': link:../../packages/blitz-auth + '@blitzjs/next': link:../../packages/blitz-next + '@blitzjs/rpc': link:../../packages/blitz-rpc + '@prisma/client': 4.6.1_prisma@4.6.1 blitz: link:../../packages/blitz lowdb: 3.0.0 next: 13.3.0_biqbaboplfbrettd7655fr4n2y @@ -823,12 +870,12 @@ importers: react: 18.2.0 react-dom: 18.2.0_react@18.2.0 devDependencies: - "@blitzjs/config": link:../../packages/config - "@next/bundle-analyzer": 12.0.8 - "@types/express": 4.17.13 - "@types/fs-extra": 9.0.13 - "@types/node-fetch": 2.6.1 - "@types/react": 18.0.25 + '@blitzjs/config': link:../../packages/config + '@next/bundle-analyzer': 12.0.8 + '@types/express': 4.17.13 + '@types/fs-extra': 9.0.13 + '@types/node-fetch': 2.6.1 + '@types/react': 18.0.25 b64-lite: 1.4.0 eslint: 8.27.0 fs-extra: 10.0.1 @@ -838,16 +885,16 @@ importers: integration-tests/utils: specifiers: - "@blitzjs/config": "workspace: *" - "@blitzjs/rpc": "workspace: *" - "@tanstack/react-query": 4.13.0 - "@testing-library/react": 13.4.0 - "@types/express": 4.17.13 - "@types/fs-extra": 9.0.13 - "@types/node-fetch": 2.6.1 - "@types/react": 18.0.25 - "@types/rimraf": 3.0.2 - "@types/selenium-webdriver": 4.0.18 + '@blitzjs/config': 'workspace: *' + '@blitzjs/rpc': 'workspace: *' + '@tanstack/react-query': 4.13.0 + '@testing-library/react': 13.4.0 + '@types/express': 4.17.13 + '@types/fs-extra': 9.0.13 + '@types/node-fetch': 2.6.1 + '@types/react': 18.0.25 + '@types/rimraf': 3.0.2 + '@types/selenium-webdriver': 4.0.18 chromedriver: 100.0.0 cross-spawn: 7.0.3 eslint: 8.27.0 @@ -866,16 +913,16 @@ importers: tree-kill: 1.2.2 typescript: ^4.8.4 devDependencies: - "@blitzjs/config": link:../../packages/config - "@blitzjs/rpc": link:../../packages/blitz-rpc - "@tanstack/react-query": 4.13.0_biqbaboplfbrettd7655fr4n2y - "@testing-library/react": 13.4.0_biqbaboplfbrettd7655fr4n2y - "@types/express": 4.17.13 - "@types/fs-extra": 9.0.13 - "@types/node-fetch": 2.6.1 - "@types/react": 18.0.25 - "@types/rimraf": 3.0.2 - "@types/selenium-webdriver": 4.0.18 + '@blitzjs/config': link:../../packages/config + '@blitzjs/rpc': link:../../packages/blitz-rpc + '@tanstack/react-query': 4.13.0_biqbaboplfbrettd7655fr4n2y + '@testing-library/react': 13.4.0_biqbaboplfbrettd7655fr4n2y + '@types/express': 4.17.13 + '@types/fs-extra': 9.0.13 + '@types/node-fetch': 2.6.1 + '@types/react': 18.0.25 + '@types/rimraf': 3.0.2 + '@types/selenium-webdriver': 4.0.18 chromedriver: 100.0.0 cross-spawn: 7.0.3 eslint: 8.27.0 @@ -896,28 +943,28 @@ importers: packages/blitz: specifiers: - "@blitzjs/config": workspace:2.0.0-beta.27 - "@blitzjs/generator": 2.0.0-beta.27 - "@mrleebo/prisma-ast": 0.2.6 - "@types/cookie": 0.4.1 - "@types/cross-spawn": 6.0.2 - "@types/debug": 4.1.7 - "@types/detect-port": 1.3.2 - "@types/envinfo": 7.8.1 - "@types/express": 4.17.13 - "@types/findup-sync": 4.0.2 - "@types/fs-extra": 9.0.13 - "@types/global-agent": 2.1.1 - "@types/hasbin": 1.2.0 - "@types/jscodeshift": 0.11.2 - "@types/node-fetch": 2.6.1 - "@types/npm-which": 3.0.1 - "@types/progress": 2.0.5 - "@types/prompts": 2.0.14 - "@types/react": 18.0.25 - "@types/react-dom": 17.0.14 - "@types/test-listen": 1.1.0 - "@types/watchpack": 1.1.1 + '@blitzjs/config': workspace:2.0.0-beta.27 + '@blitzjs/generator': 2.0.0-beta.27 + '@mrleebo/prisma-ast': 0.2.6 + '@types/cookie': 0.4.1 + '@types/cross-spawn': 6.0.2 + '@types/debug': 4.1.7 + '@types/detect-port': 1.3.2 + '@types/envinfo': 7.8.1 + '@types/express': 4.17.13 + '@types/findup-sync': 4.0.2 + '@types/fs-extra': 9.0.13 + '@types/global-agent': 2.1.1 + '@types/hasbin': 1.2.0 + '@types/jscodeshift': 0.11.2 + '@types/node-fetch': 2.6.1 + '@types/npm-which': 3.0.1 + '@types/progress': 2.0.5 + '@types/prompts': 2.0.14 + '@types/react': 18.0.25 + '@types/react-dom': 17.0.14 + '@types/test-listen': 1.1.0 + '@types/watchpack': 1.1.1 arg: 5.0.1 ast-types: 0.14.2 boxen: 7.0.0 @@ -971,9 +1018,9 @@ importers: watchpack: 2.1.1 zod: 3.20.2 dependencies: - "@blitzjs/generator": link:../generator - "@mrleebo/prisma-ast": 0.2.6 - "@types/global-agent": 2.1.1 + '@blitzjs/generator': link:../generator + '@mrleebo/prisma-ast': 0.2.6 + '@types/global-agent': 2.1.1 arg: 5.0.1 ast-types: 0.14.2 boxen: 7.0.0 @@ -1020,25 +1067,25 @@ importers: tslog: 3.3.4 watchpack: 2.1.1 devDependencies: - "@blitzjs/config": link:../config - "@types/cookie": 0.4.1 - "@types/cross-spawn": 6.0.2 - "@types/debug": 4.1.7 - "@types/detect-port": 1.3.2 - "@types/envinfo": 7.8.1 - "@types/express": 4.17.13 - "@types/findup-sync": 4.0.2 - "@types/fs-extra": 9.0.13 - "@types/hasbin": 1.2.0 - "@types/jscodeshift": 0.11.2 - "@types/node-fetch": 2.6.1 - "@types/npm-which": 3.0.1 - "@types/progress": 2.0.5 - "@types/prompts": 2.0.14 - "@types/react": 18.0.25 - "@types/react-dom": 17.0.14 - "@types/test-listen": 1.1.0 - "@types/watchpack": 1.1.1 + '@blitzjs/config': link:../config + '@types/cookie': 0.4.1 + '@types/cross-spawn': 6.0.2 + '@types/debug': 4.1.7 + '@types/detect-port': 1.3.2 + '@types/envinfo': 7.8.1 + '@types/express': 4.17.13 + '@types/findup-sync': 4.0.2 + '@types/fs-extra': 9.0.13 + '@types/hasbin': 1.2.0 + '@types/jscodeshift': 0.11.2 + '@types/node-fetch': 2.6.1 + '@types/npm-which': 3.0.1 + '@types/progress': 2.0.5 + '@types/prompts': 2.0.14 + '@types/react': 18.0.25 + '@types/react-dom': 17.0.14 + '@types/test-listen': 1.1.0 + '@types/watchpack': 1.1.1 express: 4.17.3_supports-color@8.1.1 react: 18.2.0 test-listen: 1.1.0 @@ -1049,19 +1096,19 @@ importers: packages/blitz-auth: specifiers: - "@blitzjs/config": workspace:2.0.0-beta.27 - "@testing-library/react": 13.4.0 - "@testing-library/react-hooks": 8.0.1 - "@types/b64-lite": 1.3.0 - "@types/cookie": 0.4.1 - "@types/cookie-session": 2.0.44 - "@types/debug": 4.1.7 - "@types/jsonwebtoken": 8.5.8 - "@types/oauth": 0.9.1 - "@types/passport": 1.0.7 - "@types/react": 18.0.25 - "@types/react-dom": 17.0.14 - "@types/secure-password": 3.1.1 + '@blitzjs/config': workspace:2.0.0-beta.27 + '@testing-library/react': 13.4.0 + '@testing-library/react-hooks': 8.0.1 + '@types/b64-lite': 1.3.0 + '@types/cookie': 0.4.1 + '@types/cookie-session': 2.0.44 + '@types/debug': 4.1.7 + '@types/jsonwebtoken': 8.5.8 + '@types/oauth': 0.9.1 + '@types/passport': 1.0.7 + '@types/react': 18.0.25 + '@types/react-dom': 17.0.14 + '@types/secure-password': 3.1.1 b64-lite: 1.4.0 bad-behavior: 1.0.1 blitz: 2.0.0-beta.27 @@ -1086,11 +1133,11 @@ importers: url: 0.11.0 watch: 1.0.2 dependencies: - "@types/b64-lite": 1.3.0 - "@types/cookie-session": 2.0.44 - "@types/oauth": 0.9.1 - "@types/passport": 1.0.7 - "@types/secure-password": 3.1.1 + '@types/b64-lite': 1.3.0 + '@types/cookie-session': 2.0.44 + '@types/oauth': 0.9.1 + '@types/passport': 1.0.7 + '@types/secure-password': 3.1.1 b64-lite: 1.4.0 bad-behavior: 1.0.1 cookie: 0.4.1 @@ -1106,14 +1153,14 @@ importers: supports-color: 8.1.1 url: 0.11.0 devDependencies: - "@blitzjs/config": link:../config - "@testing-library/react": 13.4.0_biqbaboplfbrettd7655fr4n2y - "@testing-library/react-hooks": 8.0.1_2zx2umvpluuhvlq44va5bta2da - "@types/cookie": 0.4.1 - "@types/debug": 4.1.7 - "@types/jsonwebtoken": 8.5.8 - "@types/react": 18.0.25 - "@types/react-dom": 17.0.14 + '@blitzjs/config': link:../config + '@testing-library/react': 13.4.0_biqbaboplfbrettd7655fr4n2y + '@testing-library/react-hooks': 8.0.1_2zx2umvpluuhvlq44va5bta2da + '@types/cookie': 0.4.1 + '@types/debug': 4.1.7 + '@types/jsonwebtoken': 8.5.8 + '@types/react': 18.0.25 + '@types/react-dom': 17.0.14 blitz: link:../blitz next: 13.3.0_biqbaboplfbrettd7655fr4n2y next-auth: 4.18.7_yucv4tfv7v7nrkw2uguegj6e7e @@ -1126,18 +1173,18 @@ importers: packages/blitz-next: specifiers: - "@blitzjs/config": workspace:2.0.0-beta.27 - "@blitzjs/rpc": 2.0.0-beta.27 - "@testing-library/dom": 8.13.0 - "@testing-library/jest-dom": 5.16.3 - "@testing-library/react": 13.4.0 - "@testing-library/react-hooks": 8.0.1 - "@testing-library/user-event": 13.5.0 - "@types/hoist-non-react-statics": 3.3.1 - "@types/node": 18.11.9 - "@types/react": 18.0.25 - "@types/react-dom": 17.0.14 - "@types/testing-library__react-hooks": 4.0.0 + '@blitzjs/config': workspace:2.0.0-beta.27 + '@blitzjs/rpc': 2.0.0-beta.27 + '@testing-library/dom': 8.13.0 + '@testing-library/jest-dom': 5.16.3 + '@testing-library/react': 13.4.0 + '@testing-library/react-hooks': 8.0.1 + '@testing-library/user-event': 13.5.0 + '@types/hoist-non-react-statics': 3.3.1 + '@types/node': 18.11.9 + '@types/react': 18.0.25 + '@types/react-dom': 17.0.14 + '@types/testing-library__react-hooks': 4.0.0 blitz: 2.0.0-beta.27 cross-spawn: 7.0.3 debug: 4.3.3 @@ -1156,24 +1203,24 @@ importers: unbuild: 0.7.6 watch: 1.0.2 dependencies: - "@blitzjs/rpc": link:../blitz-rpc - "@types/hoist-non-react-statics": 3.3.1 + '@blitzjs/rpc': link:../blitz-rpc + '@types/hoist-non-react-statics': 3.3.1 debug: 4.3.3_supports-color@8.1.1 fs-extra: 10.0.1 hoist-non-react-statics: 3.3.2 superjson: 1.11.0 supports-color: 8.1.1 devDependencies: - "@blitzjs/config": link:../config - "@testing-library/dom": 8.13.0 - "@testing-library/jest-dom": 5.16.3 - "@testing-library/react": 13.4.0_biqbaboplfbrettd7655fr4n2y - "@testing-library/react-hooks": 8.0.1_2zx2umvpluuhvlq44va5bta2da - "@testing-library/user-event": 13.5.0_tlwynutqiyp5mns3woioasuxnq - "@types/node": 18.11.9 - "@types/react": 18.0.25 - "@types/react-dom": 17.0.14 - "@types/testing-library__react-hooks": 4.0.0_2zx2umvpluuhvlq44va5bta2da + '@blitzjs/config': link:../config + '@testing-library/dom': 8.13.0 + '@testing-library/jest-dom': 5.16.3 + '@testing-library/react': 13.4.0_biqbaboplfbrettd7655fr4n2y + '@testing-library/react-hooks': 8.0.1_2zx2umvpluuhvlq44va5bta2da + '@testing-library/user-event': 13.5.0_tlwynutqiyp5mns3woioasuxnq + '@types/node': 18.11.9 + '@types/react': 18.0.25 + '@types/react-dom': 17.0.14 + '@types/testing-library__react-hooks': 4.0.0_2zx2umvpluuhvlq44va5bta2da blitz: link:../blitz cross-spawn: 7.0.3 find-up: 4.1.0 @@ -1189,14 +1236,14 @@ importers: packages/blitz-rpc: specifiers: - "@blitzjs/auth": 2.0.0-beta.27 - "@blitzjs/config": workspace:2.0.0-beta.27 - "@swc/core": 1.3.7 - "@tanstack/query-core": 4.24.4 - "@tanstack/react-query": 4.24.4 - "@types/debug": 4.1.7 - "@types/react": 18.0.25 - "@types/react-dom": 17.0.14 + '@blitzjs/auth': 2.0.0-beta.27 + '@blitzjs/config': workspace:2.0.0-beta.27 + '@swc/core': 1.3.7 + '@tanstack/query-core': 4.24.4 + '@tanstack/react-query': 4.24.4 + '@types/debug': 4.1.7 + '@types/react': 18.0.25 + '@types/react-dom': 17.0.14 b64-lite: 1.4.0 bad-behavior: 1.0.1 blitz: 2.0.0-beta.27 @@ -1212,8 +1259,8 @@ importers: watch: 1.0.2 zod: 3.20.2 dependencies: - "@swc/core": 1.3.7 - "@tanstack/react-query": 4.24.4_biqbaboplfbrettd7655fr4n2y + '@swc/core': 1.3.7 + '@tanstack/react-query': 4.24.4_biqbaboplfbrettd7655fr4n2y b64-lite: 1.4.0 bad-behavior: 1.0.1 chalk: 4.1.2 @@ -1221,12 +1268,12 @@ importers: superjson: 1.11.0 supports-color: 8.1.1 devDependencies: - "@blitzjs/auth": link:../blitz-auth - "@blitzjs/config": link:../config - "@tanstack/query-core": 4.24.4 - "@types/debug": 4.1.7 - "@types/react": 18.0.25 - "@types/react-dom": 17.0.14 + '@blitzjs/auth': link:../blitz-auth + '@blitzjs/config': link:../config + '@tanstack/query-core': 4.24.4 + '@types/debug': 4.1.7 + '@types/react': 18.0.25 + '@types/react-dom': 17.0.14 blitz: link:../blitz next: 13.3.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 @@ -1238,15 +1285,15 @@ importers: packages/codemod: specifiers: - "@babel/core": 7.12.10 - "@babel/plugin-proposal-class-properties": 7.17.12 - "@babel/plugin-syntax-jsx": 7.17.12 - "@babel/plugin-syntax-typescript": 7.17.12 - "@babel/preset-env": 7.12.10 - "@blitzjs/config": workspace:* - "@blitzjs/generator": 2.0.0-beta.27 - "@types/jscodeshift": 0.11.2 - "@types/node": 18.11.9 + '@babel/core': 7.12.10 + '@babel/plugin-proposal-class-properties': 7.17.12 + '@babel/plugin-syntax-jsx': 7.17.12 + '@babel/plugin-syntax-typescript': 7.17.12 + '@babel/preset-env': 7.12.10 + '@blitzjs/config': workspace:* + '@blitzjs/generator': 2.0.0-beta.27 + '@types/jscodeshift': 0.11.2 + '@types/node': 18.11.9 arg: 5.0.1 ast-types: 0.14.2 blitz: 2.0.0-beta.27 @@ -1260,11 +1307,11 @@ importers: unbuild: 0.7.6 watch: 1.0.2 dependencies: - "@babel/core": 7.12.10 - "@babel/plugin-proposal-class-properties": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-syntax-jsx": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-syntax-typescript": 7.17.12_@babel+core@7.12.10 - "@blitzjs/generator": link:../generator + '@babel/core': 7.12.10 + '@babel/plugin-proposal-class-properties': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-syntax-jsx': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-syntax-typescript': 7.17.12_@babel+core@7.12.10 + '@blitzjs/generator': link:../generator arg: 5.0.1 blitz: link:../blitz chalk: 4.1.2 @@ -1275,24 +1322,24 @@ importers: jscodeshift: 0.13.0_@babel+preset-env@7.12.10 prompts: 2.4.2 devDependencies: - "@babel/preset-env": 7.12.10_@babel+core@7.12.10 - "@blitzjs/config": link:../config - "@types/jscodeshift": 0.11.2 - "@types/node": 18.11.9 + '@babel/preset-env': 7.12.10_@babel+core@7.12.10 + '@blitzjs/config': link:../config + '@types/jscodeshift': 0.11.2 + '@types/node': 18.11.9 ast-types: 0.14.2 unbuild: 0.7.6 watch: 1.0.2 packages/config: specifiers: - "@typescript-eslint/eslint-plugin": 5.42.1 - "@typescript-eslint/parser": 5.9.1 + '@typescript-eslint/eslint-plugin': 5.42.1 + '@typescript-eslint/parser': 5.9.1 eslint-config-next: 12.3.1 eslint-config-prettier: 8.5.0 typescript: ^4.8.4 dependencies: - "@typescript-eslint/eslint-plugin": 5.42.1_z4ocgzhfuku3ho6vky337zbopm - "@typescript-eslint/parser": 5.9.1_typescript@4.8.4 + '@typescript-eslint/eslint-plugin': 5.42.1_z4ocgzhfuku3ho6vky337zbopm + '@typescript-eslint/parser': 5.9.1_typescript@4.8.4 eslint-config-next: 12.3.1_typescript@4.8.4 eslint-config-prettier: 8.5.0 devDependencies: @@ -1300,26 +1347,26 @@ importers: packages/generator: specifiers: - "@babel/core": 7.12.10 - "@babel/plugin-transform-typescript": 7.12.1 - "@babel/preset-env": 7.12.10 - "@babel/types": 7.12.10 - "@blitzjs/config": 2.0.0-beta.27 - "@juanm04/cpx": 2.0.1 - "@mrleebo/prisma-ast": 0.4.1 - "@types/babel__core": 7.1.19 - "@types/diff": 5.0.2 - "@types/fs-extra": 9.0.13 - "@types/jscodeshift": 0.11.2 - "@types/mem-fs": 1.1.2 - "@types/mem-fs-editor": 7.0.1 - "@types/pluralize": 0.0.29 - "@types/prettier": 2.4.4 - "@types/react": 18.0.25 - "@types/react-dom": 17.0.14 - "@types/vinyl": 2.0.6 - "@typescript-eslint/eslint-plugin": 5.42.1 - "@typescript-eslint/parser": 5.9.1 + '@babel/core': 7.12.10 + '@babel/plugin-transform-typescript': 7.12.1 + '@babel/preset-env': 7.12.10 + '@babel/types': 7.12.10 + '@blitzjs/config': 2.0.0-beta.27 + '@juanm04/cpx': 2.0.1 + '@mrleebo/prisma-ast': 0.4.1 + '@types/babel__core': 7.1.19 + '@types/diff': 5.0.2 + '@types/fs-extra': 9.0.13 + '@types/jscodeshift': 0.11.2 + '@types/mem-fs': 1.1.2 + '@types/mem-fs-editor': 7.0.1 + '@types/pluralize': 0.0.29 + '@types/prettier': 2.4.4 + '@types/react': 18.0.25 + '@types/react-dom': 17.0.14 + '@types/vinyl': 2.0.6 + '@typescript-eslint/eslint-plugin': 5.42.1 + '@typescript-eslint/parser': 5.9.1 babylon: 6.18.0 chalk: ^4.1.0 console-table-printer: 2.10.0 @@ -1350,11 +1397,11 @@ importers: watch: 1.0.2 zod: 3.20.2 dependencies: - "@babel/core": 7.12.10_supports-color@8.1.1 - "@babel/plugin-transform-typescript": 7.12.1_ps3yxa7qdojvlda5ukda3zlwie - "@babel/preset-env": 7.12.10_ps3yxa7qdojvlda5ukda3zlwie - "@babel/types": 7.12.10 - "@mrleebo/prisma-ast": 0.4.1 + '@babel/core': 7.12.10_supports-color@8.1.1 + '@babel/plugin-transform-typescript': 7.12.1_ps3yxa7qdojvlda5ukda3zlwie + '@babel/preset-env': 7.12.10_ps3yxa7qdojvlda5ukda3zlwie + '@babel/types': 7.12.10 + '@mrleebo/prisma-ast': 0.4.1 chalk: 4.1.2 console-table-printer: 2.10.0 cross-spawn: 7.0.3 @@ -1378,21 +1425,21 @@ importers: vinyl: 2.2.1 zod: 3.20.2 devDependencies: - "@blitzjs/config": link:../config - "@juanm04/cpx": 2.0.1_supports-color@8.1.1 - "@types/babel__core": 7.1.19 - "@types/diff": 5.0.2 - "@types/fs-extra": 9.0.13 - "@types/jscodeshift": 0.11.2 - "@types/mem-fs": 1.1.2 - "@types/mem-fs-editor": 7.0.1 - "@types/pluralize": 0.0.29 - "@types/prettier": 2.4.4 - "@types/react": 18.0.25 - "@types/react-dom": 17.0.14 - "@types/vinyl": 2.0.6 - "@typescript-eslint/eslint-plugin": 5.42.1_6dla7skwulzvrxac2nj7jbunfa - "@typescript-eslint/parser": 5.9.1_nw6v2wse7au2evadw7vu3hneg4 + '@blitzjs/config': link:../config + '@juanm04/cpx': 2.0.1_supports-color@8.1.1 + '@types/babel__core': 7.1.19 + '@types/diff': 5.0.2 + '@types/fs-extra': 9.0.13 + '@types/jscodeshift': 0.11.2 + '@types/mem-fs': 1.1.2 + '@types/mem-fs-editor': 7.0.1 + '@types/pluralize': 0.0.29 + '@types/prettier': 2.4.4 + '@types/react': 18.0.25 + '@types/react-dom': 17.0.14 + '@types/vinyl': 2.0.6 + '@typescript-eslint/eslint-plugin': 5.42.1_6dla7skwulzvrxac2nj7jbunfa + '@typescript-eslint/parser': 5.9.1_nw6v2wse7au2evadw7vu3hneg4 babylon: 6.18.0 debug: 4.3.3_supports-color@8.1.1 eslint: 8.27.0_supports-color@8.1.1 @@ -1403,22 +1450,22 @@ importers: packages/pkg-template: specifiers: - "@blitzjs/config": 2.0.0-beta.27 - "@types/react": 18.0.25 - "@types/react-dom": 17.0.14 - "@typescript-eslint/eslint-plugin": 5.42.1 - "@typescript-eslint/parser": 5.9.1 + '@blitzjs/config': 2.0.0-beta.27 + '@types/react': 18.0.25 + '@types/react-dom': 17.0.14 + '@typescript-eslint/eslint-plugin': 5.42.1 + '@typescript-eslint/parser': 5.9.1 react: 18.2.0 typescript: ^4.8.4 unbuild: 0.7.6 watch: 1.0.2 dependencies: - "@typescript-eslint/eslint-plugin": 5.42.1_z4ocgzhfuku3ho6vky337zbopm - "@typescript-eslint/parser": 5.9.1_typescript@4.8.4 + '@typescript-eslint/eslint-plugin': 5.42.1_z4ocgzhfuku3ho6vky337zbopm + '@typescript-eslint/parser': 5.9.1_typescript@4.8.4 devDependencies: - "@blitzjs/config": link:../config - "@types/react": 18.0.25 - "@types/react-dom": 17.0.14 + '@blitzjs/config': link:../config + '@types/react': 18.0.25 + '@types/react-dom': 17.0.14 react: 18.2.0 typescript: 4.8.4 unbuild: 0.7.6 @@ -1426,29 +1473,29 @@ importers: recipes/base-web: specifiers: - "@types/jscodeshift": 0.11.2 + '@types/jscodeshift': 0.11.2 blitz: 2.0.0-beta.27 jscodeshift: 0.13.0 dependencies: blitz: link:../../packages/blitz jscodeshift: 0.13.0 devDependencies: - "@types/jscodeshift": 0.11.2 + '@types/jscodeshift': 0.11.2 recipes/bulma: specifiers: - "@types/jscodeshift": 0.11.2 + '@types/jscodeshift': 0.11.2 blitz: 2.0.0-beta.27 jscodeshift: 0.13.0 dependencies: blitz: link:../../packages/blitz jscodeshift: 0.13.0 devDependencies: - "@types/jscodeshift": 0.11.2 + '@types/jscodeshift': 0.11.2 recipes/bumbag-ui: specifiers: - "@types/jscodeshift": 0.11.2 + '@types/jscodeshift': 0.11.2 ast-types: 0.14.2 blitz: 2.0.0-beta.27 jscodeshift: 0.13.0 @@ -1456,12 +1503,12 @@ importers: blitz: link:../../packages/blitz jscodeshift: 0.13.0 devDependencies: - "@types/jscodeshift": 0.11.2 + '@types/jscodeshift': 0.11.2 ast-types: 0.14.2 recipes/chakra-ui: specifiers: - "@types/jscodeshift": 0.11.2 + '@types/jscodeshift': 0.11.2 ast-types: 0.14.2 blitz: 2.0.0-beta.27 jscodeshift: 0.13.0 @@ -1469,19 +1516,19 @@ importers: blitz: link:../../packages/blitz jscodeshift: 0.13.0 devDependencies: - "@types/jscodeshift": 0.11.2 + '@types/jscodeshift': 0.11.2 ast-types: 0.14.2 recipes/emotion: specifiers: - "@types/jscodeshift": 0.11.2 + '@types/jscodeshift': 0.11.2 blitz: 2.0.0-beta.27 jscodeshift: 0.13.0 dependencies: blitz: link:../../packages/blitz jscodeshift: 0.13.0 devDependencies: - "@types/jscodeshift": 0.11.2 + '@types/jscodeshift': 0.11.2 recipes/gh-action-yarn-mariadb: specifiers: @@ -1497,18 +1544,18 @@ importers: recipes/ghost: specifiers: - "@types/jscodeshift": 0.11.2 + '@types/jscodeshift': 0.11.2 blitz: 2.0.0-beta.27 jscodeshift: 0.13.0 dependencies: blitz: link:../../packages/blitz jscodeshift: 0.13.0 devDependencies: - "@types/jscodeshift": 0.11.2 + '@types/jscodeshift': 0.11.2 recipes/graphql-apollo-server: specifiers: - "@types/jscodeshift": 0.11.2 + '@types/jscodeshift': 0.11.2 blitz: 2.0.0-beta.27 jscodeshift: 0.13.0 uuid: ^8.3.1 @@ -1517,33 +1564,33 @@ importers: jscodeshift: 0.13.0 uuid: 8.3.2 devDependencies: - "@types/jscodeshift": 0.11.2 + '@types/jscodeshift': 0.11.2 recipes/logrocket: specifiers: - "@types/jscodeshift": 0.11.2 + '@types/jscodeshift': 0.11.2 blitz: 2.0.0-beta.27 jscodeshift: 0.13.0 dependencies: blitz: link:../../packages/blitz jscodeshift: 0.13.0 devDependencies: - "@types/jscodeshift": 0.11.2 + '@types/jscodeshift': 0.11.2 recipes/material-ui: specifiers: - "@types/jscodeshift": 0.11.2 + '@types/jscodeshift': 0.11.2 blitz: 2.0.0-beta.27 jscodeshift: 0.13.0 dependencies: blitz: link:../../packages/blitz jscodeshift: 0.13.0 devDependencies: - "@types/jscodeshift": 0.11.2 + '@types/jscodeshift': 0.11.2 recipes/next-ui: specifiers: - "@types/jscodeshift": 0.11.2 + '@types/jscodeshift': 0.11.2 ast-types: 0.14.2 blitz: 2.0.0-beta.27 jscodeshift: 0.13.0 @@ -1551,7 +1598,7 @@ importers: blitz: link:../../packages/blitz jscodeshift: 0.13.0 devDependencies: - "@types/jscodeshift": 0.11.2 + '@types/jscodeshift': 0.11.2 ast-types: 0.14.2 recipes/passenger: @@ -1568,7 +1615,7 @@ importers: recipes/reflexjs: specifiers: - "@types/jscodeshift": 0.11.2 + '@types/jscodeshift': 0.11.2 ast-types: 0.14.2 blitz: 2.0.0-beta.27 jscodeshift: 0.13.0 @@ -1576,7 +1623,7 @@ importers: blitz: link:../../packages/blitz jscodeshift: 0.13.0 devDependencies: - "@types/jscodeshift": 0.11.2 + '@types/jscodeshift': 0.11.2 ast-types: 0.14.2 recipes/render: @@ -1587,7 +1634,7 @@ importers: recipes/secureheaders: specifiers: - "@types/jscodeshift": 0.11.2 + '@types/jscodeshift': 0.11.2 blitz: 2.0.0-beta.27 jscodeshift: 0.13.0 uuid: ^8.3.1 @@ -1596,22 +1643,22 @@ importers: jscodeshift: 0.13.0 uuid: 8.3.2 devDependencies: - "@types/jscodeshift": 0.11.2 + '@types/jscodeshift': 0.11.2 recipes/stitches: specifiers: - "@types/jscodeshift": 0.11.2 + '@types/jscodeshift': 0.11.2 blitz: 2.0.0-beta.27 jscodeshift: 0.13.0 dependencies: blitz: link:../../packages/blitz jscodeshift: 0.13.0 devDependencies: - "@types/jscodeshift": 0.11.2 + '@types/jscodeshift': 0.11.2 recipes/styled-components: specifiers: - "@types/jscodeshift": 0.11.2 + '@types/jscodeshift': 0.11.2 ast-types: 0.14.2 blitz: 2.0.0-beta.27 jscodeshift: 0.13.0 @@ -1619,23 +1666,23 @@ importers: blitz: link:../../packages/blitz jscodeshift: 0.13.0 devDependencies: - "@types/jscodeshift": 0.11.2 + '@types/jscodeshift': 0.11.2 ast-types: 0.14.2 recipes/tailwind: specifiers: - "@types/jscodeshift": 0.11.2 + '@types/jscodeshift': 0.11.2 blitz: 2.0.0-beta.27 jscodeshift: 0.13.0 dependencies: blitz: link:../../packages/blitz jscodeshift: 0.13.0 devDependencies: - "@types/jscodeshift": 0.11.2 + '@types/jscodeshift': 0.11.2 recipes/theme-ui: specifiers: - "@types/jscodeshift": 0.11.2 + '@types/jscodeshift': 0.11.2 ast-types: 0.14.2 blitz: 2.0.0-beta.27 jscodeshift: 0.13.0 @@ -1643,87 +1690,72 @@ importers: blitz: link:../../packages/blitz jscodeshift: 0.13.0 devDependencies: - "@types/jscodeshift": 0.11.2 + '@types/jscodeshift': 0.11.2 ast-types: 0.14.2 recipes/vanilla-extract: specifiers: - "@types/jscodeshift": 0.11.2 + '@types/jscodeshift': 0.11.2 blitz: 2.0.0-beta.27 jscodeshift: 0.13.0 dependencies: blitz: link:../../packages/blitz jscodeshift: 0.13.0 devDependencies: - "@types/jscodeshift": 0.11.2 + '@types/jscodeshift': 0.11.2 packages: + /@adobe/css-tools/4.0.1: - resolution: - { - integrity: sha512-+u76oB43nOHrF4DDWRLWDCtci7f3QJoEBigemIdIeTi1ODqjx6Tad9NCVnPRwewWlKkVab5PlK8DCtPTyX7S8g==, - } + resolution: {integrity: sha512-+u76oB43nOHrF4DDWRLWDCtci7f3QJoEBigemIdIeTi1ODqjx6Tad9NCVnPRwewWlKkVab5PlK8DCtPTyX7S8g==} dev: true + /@alloc/quick-lru/5.2.0: + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + dev: false + /@ampproject/remapping/2.2.0: - resolution: - { - integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==, - } - engines: {node: ">=6.0.0"} + resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} + engines: {node: '>=6.0.0'} dependencies: - "@jridgewell/gen-mapping": 0.1.1 - "@jridgewell/trace-mapping": 0.3.11 + '@jridgewell/gen-mapping': 0.1.1 + '@jridgewell/trace-mapping': 0.3.11 /@babel/code-frame/7.16.7: - resolution: - { - integrity: sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==} + engines: {node: '>=6.9.0'} requiresBuild: true dependencies: - "@babel/highlight": 7.17.9 + '@babel/highlight': 7.17.9 /@babel/code-frame/7.18.6: - resolution: - { - integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} + engines: {node: '>=6.9.0'} requiresBuild: true dependencies: - "@babel/highlight": 7.18.6 + '@babel/highlight': 7.18.6 /@babel/compat-data/7.17.10: - resolution: - { - integrity: sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==} + engines: {node: '>=6.9.0'} /@babel/compat-data/7.20.1: - resolution: - { - integrity: sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==} + engines: {node: '>=6.9.0'} /@babel/core/7.12.10: - resolution: - { - integrity: sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w==, - } - engines: {node: ">=6.9.0"} - dependencies: - "@babel/code-frame": 7.16.7 - "@babel/generator": 7.18.2 - "@babel/helper-module-transforms": 7.18.0 - "@babel/helpers": 7.18.2 - "@babel/parser": 7.18.4 - "@babel/template": 7.16.7 - "@babel/traverse": 7.18.2 - "@babel/types": 7.18.4 + resolution: {integrity: sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.16.7 + '@babel/generator': 7.18.2 + '@babel/helper-module-transforms': 7.18.0 + '@babel/helpers': 7.18.2 + '@babel/parser': 7.18.4 + '@babel/template': 7.16.7 + '@babel/traverse': 7.18.2 + '@babel/types': 7.18.4 convert-source-map: 1.8.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -1735,20 +1767,17 @@ packages: - supports-color /@babel/core/7.12.10_supports-color@8.1.1: - resolution: - { - integrity: sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w==, - } - engines: {node: ">=6.9.0"} - dependencies: - "@babel/code-frame": 7.16.7 - "@babel/generator": 7.18.2 - "@babel/helper-module-transforms": 7.18.0_supports-color@8.1.1 - "@babel/helpers": 7.18.2_supports-color@8.1.1 - "@babel/parser": 7.18.4 - "@babel/template": 7.16.7 - "@babel/traverse": 7.18.2_supports-color@8.1.1 - "@babel/types": 7.18.4 + resolution: {integrity: sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.16.7 + '@babel/generator': 7.18.2 + '@babel/helper-module-transforms': 7.18.0_supports-color@8.1.1 + '@babel/helpers': 7.18.2_supports-color@8.1.1 + '@babel/parser': 7.18.4 + '@babel/template': 7.16.7 + '@babel/traverse': 7.18.2_supports-color@8.1.1 + '@babel/types': 7.18.4 convert-source-map: 1.8.0 debug: 4.3.4_supports-color@8.1.1 gensync: 1.0.0-beta.2 @@ -1761,22 +1790,19 @@ packages: dev: false /@babel/core/7.18.2: - resolution: - { - integrity: sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ==, - } - engines: {node: ">=6.9.0"} - dependencies: - "@ampproject/remapping": 2.2.0 - "@babel/code-frame": 7.16.7 - "@babel/generator": 7.18.2 - "@babel/helper-compilation-targets": 7.18.2_@babel+core@7.18.2 - "@babel/helper-module-transforms": 7.18.0 - "@babel/helpers": 7.18.2 - "@babel/parser": 7.18.4 - "@babel/template": 7.16.7 - "@babel/traverse": 7.18.2 - "@babel/types": 7.18.4 + resolution: {integrity: sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.0 + '@babel/code-frame': 7.16.7 + '@babel/generator': 7.18.2 + '@babel/helper-compilation-targets': 7.18.2_@babel+core@7.18.2 + '@babel/helper-module-transforms': 7.18.0 + '@babel/helpers': 7.18.2 + '@babel/parser': 7.18.4 + '@babel/template': 7.16.7 + '@babel/traverse': 7.18.2 + '@babel/types': 7.18.4 convert-source-map: 1.8.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -1786,22 +1812,19 @@ packages: - supports-color /@babel/core/7.18.2_supports-color@8.1.1: - resolution: - { - integrity: sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ==, - } - engines: {node: ">=6.9.0"} - dependencies: - "@ampproject/remapping": 2.2.0 - "@babel/code-frame": 7.16.7 - "@babel/generator": 7.18.2 - "@babel/helper-compilation-targets": 7.18.2_@babel+core@7.18.2 - "@babel/helper-module-transforms": 7.18.0_supports-color@8.1.1 - "@babel/helpers": 7.18.2_supports-color@8.1.1 - "@babel/parser": 7.18.4 - "@babel/template": 7.16.7 - "@babel/traverse": 7.18.2_supports-color@8.1.1 - "@babel/types": 7.18.4 + resolution: {integrity: sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.0 + '@babel/code-frame': 7.16.7 + '@babel/generator': 7.18.2 + '@babel/helper-compilation-targets': 7.18.2_@babel+core@7.18.2 + '@babel/helper-module-transforms': 7.18.0_supports-color@8.1.1 + '@babel/helpers': 7.18.2_supports-color@8.1.1 + '@babel/parser': 7.18.4 + '@babel/template': 7.16.7 + '@babel/traverse': 7.18.2_supports-color@8.1.1 + '@babel/types': 7.18.4 convert-source-map: 1.8.0 debug: 4.3.4_supports-color@8.1.1 gensync: 1.0.0-beta.2 @@ -1812,22 +1835,19 @@ packages: dev: false /@babel/core/7.20.2: - resolution: - { - integrity: sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==, - } - engines: {node: ">=6.9.0"} - dependencies: - "@ampproject/remapping": 2.2.0 - "@babel/code-frame": 7.18.6 - "@babel/generator": 7.20.4 - "@babel/helper-compilation-targets": 7.20.0_@babel+core@7.20.2 - "@babel/helper-module-transforms": 7.20.2 - "@babel/helpers": 7.20.1 - "@babel/parser": 7.20.3 - "@babel/template": 7.18.10 - "@babel/traverse": 7.20.1 - "@babel/types": 7.20.2 + resolution: {integrity: sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.0 + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.20.4 + '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.20.2 + '@babel/helper-module-transforms': 7.20.2 + '@babel/helpers': 7.20.1 + '@babel/parser': 7.20.3 + '@babel/template': 7.18.10 + '@babel/traverse': 7.20.1 + '@babel/types': 7.20.2 convert-source-map: 1.8.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -1837,22 +1857,19 @@ packages: - supports-color /@babel/core/7.20.2_supports-color@8.1.1: - resolution: - { - integrity: sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==, - } - engines: {node: ">=6.9.0"} - dependencies: - "@ampproject/remapping": 2.2.0 - "@babel/code-frame": 7.18.6 - "@babel/generator": 7.20.4 - "@babel/helper-compilation-targets": 7.20.0_@babel+core@7.20.2 - "@babel/helper-module-transforms": 7.20.2_supports-color@8.1.1 - "@babel/helpers": 7.20.1_supports-color@8.1.1 - "@babel/parser": 7.20.3 - "@babel/template": 7.18.10 - "@babel/traverse": 7.20.1_supports-color@8.1.1 - "@babel/types": 7.20.2 + resolution: {integrity: sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.0 + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.20.4 + '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.20.2 + '@babel/helper-module-transforms': 7.20.2_supports-color@8.1.1 + '@babel/helpers': 7.20.1_supports-color@8.1.1 + '@babel/parser': 7.20.3 + '@babel/template': 7.18.10 + '@babel/traverse': 7.20.1_supports-color@8.1.1 + '@babel/types': 7.20.2 convert-source-map: 1.8.0 debug: 4.3.4_supports-color@8.1.1 gensync: 1.0.0-beta.2 @@ -1863,2285 +1880,1790 @@ packages: dev: true /@babel/generator/7.18.2: - resolution: - { - integrity: sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==, - } - engines: {node: ">=6.9.0"} - dependencies: - "@babel/types": 7.18.4 - "@jridgewell/gen-mapping": 0.3.1 + resolution: {integrity: sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.18.4 + '@jridgewell/gen-mapping': 0.3.1 jsesc: 2.5.2 /@babel/generator/7.20.4: - resolution: - { - integrity: sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA==, - } - engines: {node: ">=6.9.0"} - dependencies: - "@babel/types": 7.20.2 - "@jridgewell/gen-mapping": 0.3.2 + resolution: {integrity: sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.20.2 + '@jridgewell/gen-mapping': 0.3.2 jsesc: 2.5.2 /@babel/helper-annotate-as-pure/7.16.7: - resolution: - { - integrity: sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==} + engines: {node: '>=6.9.0'} dependencies: - "@babel/types": 7.18.4 + '@babel/types': 7.18.4 /@babel/helper-annotate-as-pure/7.18.6: - resolution: - { - integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} + engines: {node: '>=6.9.0'} dependencies: - "@babel/types": 7.20.2 + '@babel/types': 7.20.2 dev: true /@babel/helper-builder-binary-assignment-operator-visitor/7.16.7: - resolution: - { - integrity: sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==} + engines: {node: '>=6.9.0'} dependencies: - "@babel/helper-explode-assignable-expression": 7.16.7 - "@babel/types": 7.20.2 + '@babel/helper-explode-assignable-expression': 7.16.7 + '@babel/types': 7.20.2 /@babel/helper-compilation-targets/7.18.2_@babel+core@7.12.10: - resolution: - { - integrity: sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0 + '@babel/core': ^7.0.0 dependencies: - "@babel/compat-data": 7.17.10 - "@babel/core": 7.12.10 - "@babel/helper-validator-option": 7.16.7 + '@babel/compat-data': 7.17.10 + '@babel/core': 7.12.10 + '@babel/helper-validator-option': 7.16.7 browserslist: 4.20.3 semver: 6.3.0 /@babel/helper-compilation-targets/7.18.2_@babel+core@7.18.2: - resolution: - { - integrity: sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0 + '@babel/core': ^7.0.0 dependencies: - "@babel/compat-data": 7.17.10 - "@babel/core": 7.18.2 - "@babel/helper-validator-option": 7.16.7 + '@babel/compat-data': 7.17.10 + '@babel/core': 7.18.2 + '@babel/helper-validator-option': 7.16.7 browserslist: 4.20.3 semver: 6.3.0 /@babel/helper-compilation-targets/7.20.0_@babel+core@7.20.2: - resolution: - { - integrity: sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0 + '@babel/core': ^7.0.0 dependencies: - "@babel/compat-data": 7.20.1 - "@babel/core": 7.20.2 - "@babel/helper-validator-option": 7.18.6 + '@babel/compat-data': 7.20.1 + '@babel/core': 7.20.2 + '@babel/helper-validator-option': 7.18.6 browserslist: 4.21.4 semver: 6.3.0 /@babel/helper-create-class-features-plugin/7.17.12_@babel+core@7.12.10: - resolution: - { - integrity: sha512-sZoOeUTkFJMyhqCei2+Z+wtH/BehW8NVKQt7IRUQlRiOARuXymJYfN/FCcI8CvVbR0XVyDM6eLFOlR7YtiXnew==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0 - dependencies: - "@babel/core": 7.12.10 - "@babel/helper-annotate-as-pure": 7.16.7 - "@babel/helper-environment-visitor": 7.18.2 - "@babel/helper-function-name": 7.17.9 - "@babel/helper-member-expression-to-functions": 7.17.7 - "@babel/helper-optimise-call-expression": 7.16.7 - "@babel/helper-replace-supers": 7.18.2 - "@babel/helper-split-export-declaration": 7.16.7 + resolution: {integrity: sha512-sZoOeUTkFJMyhqCei2+Z+wtH/BehW8NVKQt7IRUQlRiOARuXymJYfN/FCcI8CvVbR0XVyDM6eLFOlR7YtiXnew==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.12.10 + '@babel/helper-annotate-as-pure': 7.16.7 + '@babel/helper-environment-visitor': 7.18.2 + '@babel/helper-function-name': 7.17.9 + '@babel/helper-member-expression-to-functions': 7.17.7 + '@babel/helper-optimise-call-expression': 7.16.7 + '@babel/helper-replace-supers': 7.18.2 + '@babel/helper-split-export-declaration': 7.16.7 transitivePeerDependencies: - supports-color /@babel/helper-create-class-features-plugin/7.17.12_ps3yxa7qdojvlda5ukda3zlwie: - resolution: - { - integrity: sha512-sZoOeUTkFJMyhqCei2+Z+wtH/BehW8NVKQt7IRUQlRiOARuXymJYfN/FCcI8CvVbR0XVyDM6eLFOlR7YtiXnew==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0 - dependencies: - "@babel/core": 7.12.10_supports-color@8.1.1 - "@babel/helper-annotate-as-pure": 7.16.7 - "@babel/helper-environment-visitor": 7.18.2 - "@babel/helper-function-name": 7.17.9 - "@babel/helper-member-expression-to-functions": 7.17.7 - "@babel/helper-optimise-call-expression": 7.16.7 - "@babel/helper-replace-supers": 7.18.2_supports-color@8.1.1 - "@babel/helper-split-export-declaration": 7.16.7 + resolution: {integrity: sha512-sZoOeUTkFJMyhqCei2+Z+wtH/BehW8NVKQt7IRUQlRiOARuXymJYfN/FCcI8CvVbR0XVyDM6eLFOlR7YtiXnew==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.12.10_supports-color@8.1.1 + '@babel/helper-annotate-as-pure': 7.16.7 + '@babel/helper-environment-visitor': 7.18.2 + '@babel/helper-function-name': 7.17.9 + '@babel/helper-member-expression-to-functions': 7.17.7 + '@babel/helper-optimise-call-expression': 7.16.7 + '@babel/helper-replace-supers': 7.18.2_supports-color@8.1.1 + '@babel/helper-split-export-declaration': 7.16.7 transitivePeerDependencies: - supports-color dev: false /@babel/helper-create-class-features-plugin/7.18.0_@babel+core@7.12.10: - resolution: - { - integrity: sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0 - dependencies: - "@babel/core": 7.12.10 - "@babel/helper-annotate-as-pure": 7.16.7 - "@babel/helper-environment-visitor": 7.18.2 - "@babel/helper-function-name": 7.17.9 - "@babel/helper-member-expression-to-functions": 7.17.7 - "@babel/helper-optimise-call-expression": 7.16.7 - "@babel/helper-replace-supers": 7.18.2 - "@babel/helper-split-export-declaration": 7.16.7 + resolution: {integrity: sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.12.10 + '@babel/helper-annotate-as-pure': 7.16.7 + '@babel/helper-environment-visitor': 7.18.2 + '@babel/helper-function-name': 7.17.9 + '@babel/helper-member-expression-to-functions': 7.17.7 + '@babel/helper-optimise-call-expression': 7.16.7 + '@babel/helper-replace-supers': 7.18.2 + '@babel/helper-split-export-declaration': 7.16.7 transitivePeerDependencies: - supports-color /@babel/helper-create-class-features-plugin/7.18.0_@babel+core@7.18.2: - resolution: - { - integrity: sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0 - dependencies: - "@babel/core": 7.18.2 - "@babel/helper-annotate-as-pure": 7.16.7 - "@babel/helper-environment-visitor": 7.18.2 - "@babel/helper-function-name": 7.17.9 - "@babel/helper-member-expression-to-functions": 7.17.7 - "@babel/helper-optimise-call-expression": 7.16.7 - "@babel/helper-replace-supers": 7.18.2 - "@babel/helper-split-export-declaration": 7.16.7 + resolution: {integrity: sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.18.2 + '@babel/helper-annotate-as-pure': 7.16.7 + '@babel/helper-environment-visitor': 7.18.2 + '@babel/helper-function-name': 7.17.9 + '@babel/helper-member-expression-to-functions': 7.17.7 + '@babel/helper-optimise-call-expression': 7.16.7 + '@babel/helper-replace-supers': 7.18.2 + '@babel/helper-split-export-declaration': 7.16.7 transitivePeerDependencies: - supports-color dev: false /@babel/helper-create-class-features-plugin/7.18.0_aiglbhfglusiuujjiuminyg6ui: - resolution: - { - integrity: sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0 - dependencies: - "@babel/core": 7.18.2_supports-color@8.1.1 - "@babel/helper-annotate-as-pure": 7.16.7 - "@babel/helper-environment-visitor": 7.18.2 - "@babel/helper-function-name": 7.17.9 - "@babel/helper-member-expression-to-functions": 7.17.7 - "@babel/helper-optimise-call-expression": 7.16.7 - "@babel/helper-replace-supers": 7.18.2_supports-color@8.1.1 - "@babel/helper-split-export-declaration": 7.16.7 + resolution: {integrity: sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.18.2_supports-color@8.1.1 + '@babel/helper-annotate-as-pure': 7.16.7 + '@babel/helper-environment-visitor': 7.18.2 + '@babel/helper-function-name': 7.17.9 + '@babel/helper-member-expression-to-functions': 7.17.7 + '@babel/helper-optimise-call-expression': 7.16.7 + '@babel/helper-replace-supers': 7.18.2_supports-color@8.1.1 + '@babel/helper-split-export-declaration': 7.16.7 transitivePeerDependencies: - supports-color dev: false /@babel/helper-create-class-features-plugin/7.18.0_ps3yxa7qdojvlda5ukda3zlwie: - resolution: - { - integrity: sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0 - dependencies: - "@babel/core": 7.12.10_supports-color@8.1.1 - "@babel/helper-annotate-as-pure": 7.16.7 - "@babel/helper-environment-visitor": 7.18.2 - "@babel/helper-function-name": 7.17.9 - "@babel/helper-member-expression-to-functions": 7.17.7 - "@babel/helper-optimise-call-expression": 7.16.7 - "@babel/helper-replace-supers": 7.18.2_supports-color@8.1.1 - "@babel/helper-split-export-declaration": 7.16.7 + resolution: {integrity: sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.12.10_supports-color@8.1.1 + '@babel/helper-annotate-as-pure': 7.16.7 + '@babel/helper-environment-visitor': 7.18.2 + '@babel/helper-function-name': 7.17.9 + '@babel/helper-member-expression-to-functions': 7.17.7 + '@babel/helper-optimise-call-expression': 7.16.7 + '@babel/helper-replace-supers': 7.18.2_supports-color@8.1.1 + '@babel/helper-split-export-declaration': 7.16.7 transitivePeerDependencies: - supports-color dev: false /@babel/helper-create-regexp-features-plugin/7.17.12_@babel+core@7.12.10: - resolution: - { - integrity: sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0 + '@babel/core': ^7.0.0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-annotate-as-pure": 7.16.7 + '@babel/core': 7.12.10 + '@babel/helper-annotate-as-pure': 7.16.7 regexpu-core: 5.0.1 /@babel/helper-environment-visitor/7.18.2: - resolution: - { - integrity: sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==} + engines: {node: '>=6.9.0'} dependencies: - "@babel/types": 7.17.12 + '@babel/types': 7.17.12 /@babel/helper-environment-visitor/7.18.9: - resolution: - { - integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} + engines: {node: '>=6.9.0'} /@babel/helper-explode-assignable-expression/7.16.7: - resolution: - { - integrity: sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==} + engines: {node: '>=6.9.0'} dependencies: - "@babel/types": 7.20.2 + '@babel/types': 7.20.2 /@babel/helper-function-name/7.17.9: - resolution: - { - integrity: sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==} + engines: {node: '>=6.9.0'} dependencies: - "@babel/template": 7.16.7 - "@babel/types": 7.18.4 + '@babel/template': 7.16.7 + '@babel/types': 7.18.4 /@babel/helper-function-name/7.19.0: - resolution: - { - integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==} + engines: {node: '>=6.9.0'} dependencies: - "@babel/template": 7.18.10 - "@babel/types": 7.20.2 + '@babel/template': 7.18.10 + '@babel/types': 7.20.2 /@babel/helper-hoist-variables/7.16.7: - resolution: - { - integrity: sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==} + engines: {node: '>=6.9.0'} dependencies: - "@babel/types": 7.18.4 + '@babel/types': 7.18.4 /@babel/helper-hoist-variables/7.18.6: - resolution: - { - integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} + engines: {node: '>=6.9.0'} dependencies: - "@babel/types": 7.20.2 + '@babel/types': 7.20.2 /@babel/helper-member-expression-to-functions/7.17.7: - resolution: - { - integrity: sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==} + engines: {node: '>=6.9.0'} dependencies: - "@babel/types": 7.18.4 + '@babel/types': 7.18.4 /@babel/helper-module-imports/7.16.7: - resolution: - { - integrity: sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==} + engines: {node: '>=6.9.0'} dependencies: - "@babel/types": 7.18.4 + '@babel/types': 7.18.4 /@babel/helper-module-imports/7.18.6: - resolution: - { - integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} + engines: {node: '>=6.9.0'} dependencies: - "@babel/types": 7.20.2 + '@babel/types': 7.20.2 /@babel/helper-module-transforms/7.18.0: - resolution: - { - integrity: sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==, - } - engines: {node: ">=6.9.0"} - dependencies: - "@babel/helper-environment-visitor": 7.18.2 - "@babel/helper-module-imports": 7.16.7 - "@babel/helper-simple-access": 7.18.2 - "@babel/helper-split-export-declaration": 7.16.7 - "@babel/helper-validator-identifier": 7.16.7 - "@babel/template": 7.16.7 - "@babel/traverse": 7.18.2 - "@babel/types": 7.18.4 + resolution: {integrity: sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.18.2 + '@babel/helper-module-imports': 7.16.7 + '@babel/helper-simple-access': 7.18.2 + '@babel/helper-split-export-declaration': 7.16.7 + '@babel/helper-validator-identifier': 7.16.7 + '@babel/template': 7.16.7 + '@babel/traverse': 7.18.2 + '@babel/types': 7.18.4 transitivePeerDependencies: - supports-color /@babel/helper-module-transforms/7.18.0_supports-color@8.1.1: - resolution: - { - integrity: sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==, - } - engines: {node: ">=6.9.0"} - dependencies: - "@babel/helper-environment-visitor": 7.18.2 - "@babel/helper-module-imports": 7.16.7 - "@babel/helper-simple-access": 7.18.2 - "@babel/helper-split-export-declaration": 7.16.7 - "@babel/helper-validator-identifier": 7.16.7 - "@babel/template": 7.16.7 - "@babel/traverse": 7.18.2_supports-color@8.1.1 - "@babel/types": 7.18.4 + resolution: {integrity: sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.18.2 + '@babel/helper-module-imports': 7.16.7 + '@babel/helper-simple-access': 7.18.2 + '@babel/helper-split-export-declaration': 7.16.7 + '@babel/helper-validator-identifier': 7.16.7 + '@babel/template': 7.16.7 + '@babel/traverse': 7.18.2_supports-color@8.1.1 + '@babel/types': 7.18.4 transitivePeerDependencies: - supports-color dev: false /@babel/helper-module-transforms/7.20.2: - resolution: - { - integrity: sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==, - } - engines: {node: ">=6.9.0"} - dependencies: - "@babel/helper-environment-visitor": 7.18.9 - "@babel/helper-module-imports": 7.18.6 - "@babel/helper-simple-access": 7.20.2 - "@babel/helper-split-export-declaration": 7.18.6 - "@babel/helper-validator-identifier": 7.19.1 - "@babel/template": 7.18.10 - "@babel/traverse": 7.20.1 - "@babel/types": 7.20.2 + resolution: {integrity: sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-simple-access': 7.20.2 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/helper-validator-identifier': 7.19.1 + '@babel/template': 7.18.10 + '@babel/traverse': 7.20.1 + '@babel/types': 7.20.2 transitivePeerDependencies: - supports-color /@babel/helper-module-transforms/7.20.2_supports-color@8.1.1: - resolution: - { - integrity: sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==, - } - engines: {node: ">=6.9.0"} - dependencies: - "@babel/helper-environment-visitor": 7.18.9 - "@babel/helper-module-imports": 7.18.6 - "@babel/helper-simple-access": 7.20.2 - "@babel/helper-split-export-declaration": 7.18.6 - "@babel/helper-validator-identifier": 7.19.1 - "@babel/template": 7.18.10 - "@babel/traverse": 7.20.1_supports-color@8.1.1 - "@babel/types": 7.20.2 + resolution: {integrity: sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-simple-access': 7.20.2 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/helper-validator-identifier': 7.19.1 + '@babel/template': 7.18.10 + '@babel/traverse': 7.20.1_supports-color@8.1.1 + '@babel/types': 7.20.2 transitivePeerDependencies: - supports-color dev: true /@babel/helper-optimise-call-expression/7.16.7: - resolution: - { - integrity: sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==} + engines: {node: '>=6.9.0'} dependencies: - "@babel/types": 7.18.4 + '@babel/types': 7.18.4 /@babel/helper-plugin-utils/7.17.12: - resolution: - { - integrity: sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==} + engines: {node: '>=6.9.0'} /@babel/helper-plugin-utils/7.20.2: - resolution: - { - integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==} + engines: {node: '>=6.9.0'} dev: true /@babel/helper-remap-async-to-generator/7.16.8: - resolution: - { - integrity: sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==, - } - engines: {node: ">=6.9.0"} - dependencies: - "@babel/helper-annotate-as-pure": 7.16.7 - "@babel/helper-wrap-function": 7.16.8 - "@babel/types": 7.18.4 + resolution: {integrity: sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-annotate-as-pure': 7.16.7 + '@babel/helper-wrap-function': 7.16.8 + '@babel/types': 7.18.4 transitivePeerDependencies: - supports-color /@babel/helper-remap-async-to-generator/7.16.8_supports-color@8.1.1: - resolution: - { - integrity: sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==, - } - engines: {node: ">=6.9.0"} - dependencies: - "@babel/helper-annotate-as-pure": 7.16.7 - "@babel/helper-wrap-function": 7.16.8_supports-color@8.1.1 - "@babel/types": 7.18.4 + resolution: {integrity: sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-annotate-as-pure': 7.16.7 + '@babel/helper-wrap-function': 7.16.8_supports-color@8.1.1 + '@babel/types': 7.18.4 transitivePeerDependencies: - supports-color dev: false /@babel/helper-replace-supers/7.18.2: - resolution: - { - integrity: sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q==, - } - engines: {node: ">=6.9.0"} - dependencies: - "@babel/helper-environment-visitor": 7.18.2 - "@babel/helper-member-expression-to-functions": 7.17.7 - "@babel/helper-optimise-call-expression": 7.16.7 - "@babel/traverse": 7.18.2 - "@babel/types": 7.18.4 + resolution: {integrity: sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.18.2 + '@babel/helper-member-expression-to-functions': 7.17.7 + '@babel/helper-optimise-call-expression': 7.16.7 + '@babel/traverse': 7.18.2 + '@babel/types': 7.18.4 transitivePeerDependencies: - supports-color /@babel/helper-replace-supers/7.18.2_supports-color@8.1.1: - resolution: - { - integrity: sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q==, - } - engines: {node: ">=6.9.0"} - dependencies: - "@babel/helper-environment-visitor": 7.18.2 - "@babel/helper-member-expression-to-functions": 7.17.7 - "@babel/helper-optimise-call-expression": 7.16.7 - "@babel/traverse": 7.18.2_supports-color@8.1.1 - "@babel/types": 7.18.4 + resolution: {integrity: sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.18.2 + '@babel/helper-member-expression-to-functions': 7.17.7 + '@babel/helper-optimise-call-expression': 7.16.7 + '@babel/traverse': 7.18.2_supports-color@8.1.1 + '@babel/types': 7.18.4 transitivePeerDependencies: - supports-color dev: false /@babel/helper-simple-access/7.18.2: - resolution: - { - integrity: sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ==} + engines: {node: '>=6.9.0'} dependencies: - "@babel/types": 7.18.4 + '@babel/types': 7.18.4 /@babel/helper-simple-access/7.20.2: - resolution: - { - integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==} + engines: {node: '>=6.9.0'} dependencies: - "@babel/types": 7.20.2 + '@babel/types': 7.20.2 /@babel/helper-skip-transparent-expression-wrappers/7.16.0: - resolution: - { - integrity: sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==} + engines: {node: '>=6.9.0'} dependencies: - "@babel/types": 7.18.4 + '@babel/types': 7.18.4 /@babel/helper-split-export-declaration/7.16.7: - resolution: - { - integrity: sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==} + engines: {node: '>=6.9.0'} dependencies: - "@babel/types": 7.18.4 + '@babel/types': 7.18.4 /@babel/helper-split-export-declaration/7.18.6: - resolution: - { - integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} + engines: {node: '>=6.9.0'} dependencies: - "@babel/types": 7.20.2 + '@babel/types': 7.20.2 /@babel/helper-string-parser/7.19.4: - resolution: - { - integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} + engines: {node: '>=6.9.0'} /@babel/helper-validator-identifier/7.16.7: - resolution: - { - integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==} + engines: {node: '>=6.9.0'} /@babel/helper-validator-identifier/7.19.1: - resolution: - { - integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} + engines: {node: '>=6.9.0'} /@babel/helper-validator-option/7.16.7: - resolution: - { - integrity: sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==} + engines: {node: '>=6.9.0'} /@babel/helper-validator-option/7.18.6: - resolution: - { - integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==} + engines: {node: '>=6.9.0'} /@babel/helper-wrap-function/7.16.8: - resolution: - { - integrity: sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==, - } - engines: {node: ">=6.9.0"} - dependencies: - "@babel/helper-function-name": 7.17.9 - "@babel/template": 7.16.7 - "@babel/traverse": 7.18.2 - "@babel/types": 7.18.4 + resolution: {integrity: sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-function-name': 7.17.9 + '@babel/template': 7.16.7 + '@babel/traverse': 7.18.2 + '@babel/types': 7.18.4 transitivePeerDependencies: - supports-color /@babel/helper-wrap-function/7.16.8_supports-color@8.1.1: - resolution: - { - integrity: sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==, - } - engines: {node: ">=6.9.0"} - dependencies: - "@babel/helper-function-name": 7.17.9 - "@babel/template": 7.16.7 - "@babel/traverse": 7.18.2_supports-color@8.1.1 - "@babel/types": 7.18.4 + resolution: {integrity: sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-function-name': 7.17.9 + '@babel/template': 7.16.7 + '@babel/traverse': 7.18.2_supports-color@8.1.1 + '@babel/types': 7.18.4 transitivePeerDependencies: - supports-color dev: false /@babel/helpers/7.18.2: - resolution: - { - integrity: sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==, - } - engines: {node: ">=6.9.0"} - dependencies: - "@babel/template": 7.16.7 - "@babel/traverse": 7.18.2 - "@babel/types": 7.18.4 + resolution: {integrity: sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.16.7 + '@babel/traverse': 7.18.2 + '@babel/types': 7.18.4 transitivePeerDependencies: - supports-color /@babel/helpers/7.18.2_supports-color@8.1.1: - resolution: - { - integrity: sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==, - } - engines: {node: ">=6.9.0"} - dependencies: - "@babel/template": 7.16.7 - "@babel/traverse": 7.18.2_supports-color@8.1.1 - "@babel/types": 7.18.4 + resolution: {integrity: sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.16.7 + '@babel/traverse': 7.18.2_supports-color@8.1.1 + '@babel/types': 7.18.4 transitivePeerDependencies: - supports-color dev: false /@babel/helpers/7.20.1: - resolution: - { - integrity: sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==, - } - engines: {node: ">=6.9.0"} - dependencies: - "@babel/template": 7.18.10 - "@babel/traverse": 7.20.1 - "@babel/types": 7.20.2 + resolution: {integrity: sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.18.10 + '@babel/traverse': 7.20.1 + '@babel/types': 7.20.2 transitivePeerDependencies: - supports-color /@babel/helpers/7.20.1_supports-color@8.1.1: - resolution: - { - integrity: sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==, - } - engines: {node: ">=6.9.0"} - dependencies: - "@babel/template": 7.18.10 - "@babel/traverse": 7.20.1_supports-color@8.1.1 - "@babel/types": 7.20.2 + resolution: {integrity: sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.18.10 + '@babel/traverse': 7.20.1_supports-color@8.1.1 + '@babel/types': 7.20.2 transitivePeerDependencies: - supports-color dev: true /@babel/highlight/7.17.9: - resolution: - { - integrity: sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==} + engines: {node: '>=6.9.0'} dependencies: - "@babel/helper-validator-identifier": 7.16.7 + '@babel/helper-validator-identifier': 7.16.7 chalk: 2.4.2 js-tokens: 4.0.0 /@babel/highlight/7.18.6: - resolution: - { - integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} + engines: {node: '>=6.9.0'} dependencies: - "@babel/helper-validator-identifier": 7.19.1 + '@babel/helper-validator-identifier': 7.19.1 chalk: 2.4.2 js-tokens: 4.0.0 /@babel/parser/7.18.4: - resolution: - { - integrity: sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==, - } - engines: {node: ">=6.0.0"} + resolution: {integrity: sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==} + engines: {node: '>=6.0.0'} hasBin: true dependencies: - "@babel/types": 7.18.4 + '@babel/types': 7.18.4 /@babel/parser/7.20.3: - resolution: - { - integrity: sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==, - } - engines: {node: ">=6.0.0"} + resolution: {integrity: sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==} + engines: {node: '>=6.0.0'} hasBin: true dependencies: - "@babel/types": 7.20.2 + '@babel/types': 7.20.2 /@babel/plugin-proposal-async-generator-functions/7.17.12_@babel+core@7.12.10: - resolution: - { - integrity: sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/helper-remap-async-to-generator": 7.16.8 - "@babel/plugin-syntax-async-generators": 7.8.4_@babel+core@7.12.10 + resolution: {integrity: sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-remap-async-to-generator': 7.16.8 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.12.10 transitivePeerDependencies: - supports-color /@babel/plugin-proposal-async-generator-functions/7.17.12_ps3yxa7qdojvlda5ukda3zlwie: - resolution: - { - integrity: sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.12.10_supports-color@8.1.1 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/helper-remap-async-to-generator": 7.16.8_supports-color@8.1.1 - "@babel/plugin-syntax-async-generators": 7.8.4_@babel+core@7.12.10 + resolution: {integrity: sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.10_supports-color@8.1.1 + '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-remap-async-to-generator': 7.16.8_supports-color@8.1.1 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.12.10 transitivePeerDependencies: - supports-color dev: false /@babel/plugin-proposal-class-properties/7.17.12_@babel+core@7.12.10: - resolution: - { - integrity: sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-create-class-features-plugin": 7.18.0_@babel+core@7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-create-class-features-plugin': 7.18.0_@babel+core@7.12.10 + '@babel/helper-plugin-utils': 7.17.12 transitivePeerDependencies: - supports-color /@babel/plugin-proposal-class-properties/7.17.12_@babel+core@7.18.2: - resolution: - { - integrity: sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.18.2 - "@babel/helper-create-class-features-plugin": 7.18.0_@babel+core@7.18.2 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.18.2 + '@babel/helper-create-class-features-plugin': 7.18.0_@babel+core@7.18.2 + '@babel/helper-plugin-utils': 7.17.12 transitivePeerDependencies: - supports-color dev: false /@babel/plugin-proposal-class-properties/7.17.12_aiglbhfglusiuujjiuminyg6ui: - resolution: - { - integrity: sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.18.2_supports-color@8.1.1 - "@babel/helper-create-class-features-plugin": 7.18.0_aiglbhfglusiuujjiuminyg6ui - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.18.2_supports-color@8.1.1 + '@babel/helper-create-class-features-plugin': 7.18.0_aiglbhfglusiuujjiuminyg6ui + '@babel/helper-plugin-utils': 7.17.12 transitivePeerDependencies: - supports-color dev: false /@babel/plugin-proposal-class-properties/7.17.12_ps3yxa7qdojvlda5ukda3zlwie: - resolution: - { - integrity: sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10_supports-color@8.1.1 - "@babel/helper-create-class-features-plugin": 7.18.0_ps3yxa7qdojvlda5ukda3zlwie - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10_supports-color@8.1.1 + '@babel/helper-create-class-features-plugin': 7.18.0_ps3yxa7qdojvlda5ukda3zlwie + '@babel/helper-plugin-utils': 7.17.12 transitivePeerDependencies: - supports-color dev: false /@babel/plugin-proposal-dynamic-import/7.16.7_@babel+core@7.12.10: - resolution: - { - integrity: sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/plugin-syntax-dynamic-import": 7.8.3_@babel+core@7.12.10 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.12.10 /@babel/plugin-proposal-export-namespace-from/7.17.12_@babel+core@7.12.10: - resolution: - { - integrity: sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/plugin-syntax-export-namespace-from": 7.8.3_@babel+core@7.12.10 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.12.10 /@babel/plugin-proposal-json-strings/7.17.12_@babel+core@7.12.10: - resolution: - { - integrity: sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/plugin-syntax-json-strings": 7.8.3_@babel+core@7.12.10 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.12.10 /@babel/plugin-proposal-logical-assignment-operators/7.17.12_@babel+core@7.12.10: - resolution: - { - integrity: sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/plugin-syntax-logical-assignment-operators": 7.10.4_@babel+core@7.12.10 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.12.10 /@babel/plugin-proposal-nullish-coalescing-operator/7.17.12_@babel+core@7.12.10: - resolution: - { - integrity: sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/plugin-syntax-nullish-coalescing-operator": 7.8.3_@babel+core@7.12.10 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.12.10 /@babel/plugin-proposal-nullish-coalescing-operator/7.17.12_@babel+core@7.18.2: - resolution: - { - integrity: sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.18.2_supports-color@8.1.1 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/plugin-syntax-nullish-coalescing-operator": 7.8.3_@babel+core@7.18.2 + '@babel/core': 7.18.2_supports-color@8.1.1 + '@babel/helper-plugin-utils': 7.17.12 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.18.2 dev: false /@babel/plugin-proposal-numeric-separator/7.16.7_@babel+core@7.12.10: - resolution: - { - integrity: sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/plugin-syntax-numeric-separator": 7.10.4_@babel+core@7.12.10 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.12.10 /@babel/plugin-proposal-object-rest-spread/7.18.0_@babel+core@7.12.10: - resolution: - { - integrity: sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/compat-data": 7.17.10 - "@babel/core": 7.12.10 - "@babel/helper-compilation-targets": 7.18.2_@babel+core@7.12.10 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/plugin-syntax-object-rest-spread": 7.8.3_@babel+core@7.12.10 - "@babel/plugin-transform-parameters": 7.17.12_@babel+core@7.12.10 + '@babel/compat-data': 7.17.10 + '@babel/core': 7.12.10 + '@babel/helper-compilation-targets': 7.18.2_@babel+core@7.12.10 + '@babel/helper-plugin-utils': 7.17.12 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.12.10 + '@babel/plugin-transform-parameters': 7.17.12_@babel+core@7.12.10 /@babel/plugin-proposal-optional-catch-binding/7.16.7_@babel+core@7.12.10: - resolution: - { - integrity: sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/plugin-syntax-optional-catch-binding": 7.8.3_@babel+core@7.12.10 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.12.10 /@babel/plugin-proposal-optional-chaining/7.17.12_@babel+core@7.12.10: - resolution: - { - integrity: sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/helper-skip-transparent-expression-wrappers": 7.16.0 - "@babel/plugin-syntax-optional-chaining": 7.8.3_@babel+core@7.12.10 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-skip-transparent-expression-wrappers': 7.16.0 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.12.10 /@babel/plugin-proposal-optional-chaining/7.17.12_@babel+core@7.18.2: - resolution: - { - integrity: sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.18.2_supports-color@8.1.1 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/helper-skip-transparent-expression-wrappers": 7.16.0 - "@babel/plugin-syntax-optional-chaining": 7.8.3_@babel+core@7.18.2 + '@babel/core': 7.18.2_supports-color@8.1.1 + '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-skip-transparent-expression-wrappers': 7.16.0 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.18.2 dev: false /@babel/plugin-proposal-private-methods/7.17.12_@babel+core@7.12.10: - resolution: - { - integrity: sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-create-class-features-plugin": 7.17.12_@babel+core@7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-create-class-features-plugin': 7.17.12_@babel+core@7.12.10 + '@babel/helper-plugin-utils': 7.17.12 transitivePeerDependencies: - supports-color /@babel/plugin-proposal-private-methods/7.17.12_ps3yxa7qdojvlda5ukda3zlwie: - resolution: - { - integrity: sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10_supports-color@8.1.1 - "@babel/helper-create-class-features-plugin": 7.17.12_ps3yxa7qdojvlda5ukda3zlwie - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10_supports-color@8.1.1 + '@babel/helper-create-class-features-plugin': 7.17.12_ps3yxa7qdojvlda5ukda3zlwie + '@babel/helper-plugin-utils': 7.17.12 transitivePeerDependencies: - supports-color dev: false /@babel/plugin-proposal-unicode-property-regex/7.17.12_@babel+core@7.12.10: - resolution: - { - integrity: sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A==} + engines: {node: '>=4'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-create-regexp-features-plugin": 7.17.12_@babel+core@7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-create-regexp-features-plugin': 7.17.12_@babel+core@7.12.10 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.12.10: - resolution: - { - integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==, - } + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.20.2: - resolution: - { - integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==, - } + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.20.2 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.20.2: - resolution: - { - integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==, - } + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.20.2 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.12.10: - resolution: - { - integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==, - } + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.20.2: - resolution: - { - integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==, - } + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.20.2 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.12.10: - resolution: - { - integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==, - } + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.12.10: - resolution: - { - integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==, - } + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-syntax-flow/7.17.12_@babel+core@7.18.2: - resolution: - { - integrity: sha512-B8QIgBvkIG6G2jgsOHQUist7Sm0EBLDCx8sen072IwqNuzMegZNXrYnSv77cYzA8mLDZAfQYqsLIhimiP1s2HQ==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-B8QIgBvkIG6G2jgsOHQUist7Sm0EBLDCx8sen072IwqNuzMegZNXrYnSv77cYzA8mLDZAfQYqsLIhimiP1s2HQ==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.18.2_supports-color@8.1.1 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.18.2_supports-color@8.1.1 + '@babel/helper-plugin-utils': 7.17.12 dev: false /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.20.2: - resolution: - { - integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==, - } + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.20.2 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.12.10: - resolution: - { - integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==, - } + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.20.2: - resolution: - { - integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==, - } + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.20.2 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-syntax-jsx/7.17.12_@babel+core@7.12.10: - resolution: - { - integrity: sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 dev: false /@babel/plugin-syntax-jsx/7.17.12_@babel+core@7.18.2: - resolution: - { - integrity: sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.18.2 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.18.2 + '@babel/helper-plugin-utils': 7.17.12 dev: true /@babel/plugin-syntax-jsx/7.17.12_@babel+core@7.20.2: - resolution: - { - integrity: sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.20.2 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.20.2: - resolution: - { - integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.20.2 - "@babel/helper-plugin-utils": 7.20.2 + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.12.10: - resolution: - { - integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==, - } + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.20.2: - resolution: - { - integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==, - } + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.20.2 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.12.10: - resolution: - { - integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==, - } + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.18.2: - resolution: - { - integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==, - } + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.18.2_supports-color@8.1.1 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.18.2_supports-color@8.1.1 + '@babel/helper-plugin-utils': 7.17.12 dev: false /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.20.2: - resolution: - { - integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==, - } + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.20.2 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.12.10: - resolution: - { - integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==, - } + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.20.2: - resolution: - { - integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==, - } + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.20.2 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.12.10: - resolution: - { - integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==, - } + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.20.2: - resolution: - { - integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==, - } + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.20.2 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.12.10: - resolution: - { - integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==, - } + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.20.2: - resolution: - { - integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==, - } + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.20.2 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.12.10: - resolution: - { - integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==, - } + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.18.2: - resolution: - { - integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==, - } + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.18.2_supports-color@8.1.1 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.18.2_supports-color@8.1.1 + '@babel/helper-plugin-utils': 7.17.12 dev: false /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.20.2: - resolution: - { - integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==, - } + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.20.2 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.12.10: - resolution: - { - integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.20.2: - resolution: - { - integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.20.2 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-syntax-typescript/7.17.12_@babel+core@7.12.10: - resolution: - { - integrity: sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 dev: false /@babel/plugin-syntax-typescript/7.17.12_@babel+core@7.18.2: - resolution: - { - integrity: sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.18.2_supports-color@8.1.1 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.18.2_supports-color@8.1.1 + '@babel/helper-plugin-utils': 7.17.12 dev: false /@babel/plugin-syntax-typescript/7.17.12_@babel+core@7.20.2: - resolution: - { - integrity: sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.20.2 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-transform-arrow-functions/7.17.12_@babel+core@7.12.10: - resolution: - { - integrity: sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-transform-async-to-generator/7.17.12_@babel+core@7.12.10: - resolution: - { - integrity: sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.12.10 - "@babel/helper-module-imports": 7.16.7 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/helper-remap-async-to-generator": 7.16.8 + resolution: {integrity: sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.10 + '@babel/helper-module-imports': 7.16.7 + '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-remap-async-to-generator': 7.16.8 transitivePeerDependencies: - supports-color /@babel/plugin-transform-async-to-generator/7.17.12_ps3yxa7qdojvlda5ukda3zlwie: - resolution: - { - integrity: sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.12.10_supports-color@8.1.1 - "@babel/helper-module-imports": 7.16.7 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/helper-remap-async-to-generator": 7.16.8_supports-color@8.1.1 + resolution: {integrity: sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.10_supports-color@8.1.1 + '@babel/helper-module-imports': 7.16.7 + '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-remap-async-to-generator': 7.16.8_supports-color@8.1.1 transitivePeerDependencies: - supports-color dev: false /@babel/plugin-transform-block-scoped-functions/7.16.7_@babel+core@7.12.10: - resolution: - { - integrity: sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-transform-block-scoping/7.18.4_@babel+core@7.12.10: - resolution: - { - integrity: sha512-+Hq10ye+jlvLEogSOtq4mKvtk7qwcUQ1f0Mrueai866C82f844Yom2cttfJdMdqRLTxWpsbfbkIkOIfovyUQXw==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-+Hq10ye+jlvLEogSOtq4mKvtk7qwcUQ1f0Mrueai866C82f844Yom2cttfJdMdqRLTxWpsbfbkIkOIfovyUQXw==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-transform-classes/7.18.4_@babel+core@7.12.10: - resolution: - { - integrity: sha512-e42NSG2mlKWgxKUAD9EJJSkZxR67+wZqzNxLSpc51T8tRU5SLFHsPmgYR5yr7sdgX4u+iHA1C5VafJ6AyImV3A==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.12.10 - "@babel/helper-annotate-as-pure": 7.16.7 - "@babel/helper-environment-visitor": 7.18.2 - "@babel/helper-function-name": 7.17.9 - "@babel/helper-optimise-call-expression": 7.16.7 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/helper-replace-supers": 7.18.2 - "@babel/helper-split-export-declaration": 7.16.7 + resolution: {integrity: sha512-e42NSG2mlKWgxKUAD9EJJSkZxR67+wZqzNxLSpc51T8tRU5SLFHsPmgYR5yr7sdgX4u+iHA1C5VafJ6AyImV3A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.10 + '@babel/helper-annotate-as-pure': 7.16.7 + '@babel/helper-environment-visitor': 7.18.2 + '@babel/helper-function-name': 7.17.9 + '@babel/helper-optimise-call-expression': 7.16.7 + '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-replace-supers': 7.18.2 + '@babel/helper-split-export-declaration': 7.16.7 globals: 11.12.0 transitivePeerDependencies: - supports-color /@babel/plugin-transform-classes/7.18.4_ps3yxa7qdojvlda5ukda3zlwie: - resolution: - { - integrity: sha512-e42NSG2mlKWgxKUAD9EJJSkZxR67+wZqzNxLSpc51T8tRU5SLFHsPmgYR5yr7sdgX4u+iHA1C5VafJ6AyImV3A==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.12.10_supports-color@8.1.1 - "@babel/helper-annotate-as-pure": 7.16.7 - "@babel/helper-environment-visitor": 7.18.2 - "@babel/helper-function-name": 7.17.9 - "@babel/helper-optimise-call-expression": 7.16.7 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/helper-replace-supers": 7.18.2_supports-color@8.1.1 - "@babel/helper-split-export-declaration": 7.16.7 + resolution: {integrity: sha512-e42NSG2mlKWgxKUAD9EJJSkZxR67+wZqzNxLSpc51T8tRU5SLFHsPmgYR5yr7sdgX4u+iHA1C5VafJ6AyImV3A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.10_supports-color@8.1.1 + '@babel/helper-annotate-as-pure': 7.16.7 + '@babel/helper-environment-visitor': 7.18.2 + '@babel/helper-function-name': 7.17.9 + '@babel/helper-optimise-call-expression': 7.16.7 + '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-replace-supers': 7.18.2_supports-color@8.1.1 + '@babel/helper-split-export-declaration': 7.16.7 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: false /@babel/plugin-transform-computed-properties/7.17.12_@babel+core@7.12.10: - resolution: - { - integrity: sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-transform-destructuring/7.18.0_@babel+core@7.12.10: - resolution: - { - integrity: sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-transform-dotall-regex/7.16.7_@babel+core@7.12.10: - resolution: - { - integrity: sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-create-regexp-features-plugin": 7.17.12_@babel+core@7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-create-regexp-features-plugin': 7.17.12_@babel+core@7.12.10 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-transform-duplicate-keys/7.17.12_@babel+core@7.12.10: - resolution: - { - integrity: sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-transform-exponentiation-operator/7.16.7_@babel+core@7.12.10: - resolution: - { - integrity: sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-builder-binary-assignment-operator-visitor": 7.16.7 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.16.7 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-transform-flow-strip-types/7.17.12_@babel+core@7.18.2: - resolution: - { - integrity: sha512-g8cSNt+cHCpG/uunPQELdq/TeV3eg1OLJYwxypwHtAWo9+nErH3lQx9CSO2uI9lF74A0mR0t4KoMjs1snSgnTw==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-g8cSNt+cHCpG/uunPQELdq/TeV3eg1OLJYwxypwHtAWo9+nErH3lQx9CSO2uI9lF74A0mR0t4KoMjs1snSgnTw==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.18.2_supports-color@8.1.1 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/plugin-syntax-flow": 7.17.12_@babel+core@7.18.2 + '@babel/core': 7.18.2_supports-color@8.1.1 + '@babel/helper-plugin-utils': 7.17.12 + '@babel/plugin-syntax-flow': 7.17.12_@babel+core@7.18.2 dev: false /@babel/plugin-transform-for-of/7.18.1_@babel+core@7.12.10: - resolution: - { - integrity: sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-transform-function-name/7.16.7_@babel+core@7.12.10: - resolution: - { - integrity: sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-compilation-targets": 7.18.2_@babel+core@7.12.10 - "@babel/helper-function-name": 7.17.9 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-compilation-targets': 7.18.2_@babel+core@7.12.10 + '@babel/helper-function-name': 7.17.9 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-transform-literals/7.17.12_@babel+core@7.12.10: - resolution: - { - integrity: sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-transform-member-expression-literals/7.16.7_@babel+core@7.12.10: - resolution: - { - integrity: sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-transform-modules-amd/7.18.0_@babel+core@7.12.10: - resolution: - { - integrity: sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-module-transforms": 7.18.0 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-module-transforms': 7.18.0 + '@babel/helper-plugin-utils': 7.17.12 babel-plugin-dynamic-import-node: 2.3.3 transitivePeerDependencies: - supports-color /@babel/plugin-transform-modules-amd/7.18.0_ps3yxa7qdojvlda5ukda3zlwie: - resolution: - { - integrity: sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10_supports-color@8.1.1 - "@babel/helper-module-transforms": 7.18.0_supports-color@8.1.1 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10_supports-color@8.1.1 + '@babel/helper-module-transforms': 7.18.0_supports-color@8.1.1 + '@babel/helper-plugin-utils': 7.17.12 babel-plugin-dynamic-import-node: 2.3.3 transitivePeerDependencies: - supports-color dev: false /@babel/plugin-transform-modules-commonjs/7.18.2_@babel+core@7.12.10: - resolution: - { - integrity: sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.12.10 - "@babel/helper-module-transforms": 7.18.0 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/helper-simple-access": 7.18.2 + resolution: {integrity: sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.10 + '@babel/helper-module-transforms': 7.18.0 + '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-simple-access': 7.18.2 babel-plugin-dynamic-import-node: 2.3.3 transitivePeerDependencies: - supports-color /@babel/plugin-transform-modules-commonjs/7.18.2_@babel+core@7.18.2: - resolution: - { - integrity: sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2 - "@babel/helper-module-transforms": 7.18.0 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/helper-simple-access": 7.18.2 + resolution: {integrity: sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.18.2 + '@babel/helper-module-transforms': 7.18.0 + '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-simple-access': 7.18.2 babel-plugin-dynamic-import-node: 2.3.3 transitivePeerDependencies: - supports-color dev: false /@babel/plugin-transform-modules-commonjs/7.18.2_aiglbhfglusiuujjiuminyg6ui: - resolution: - { - integrity: sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2_supports-color@8.1.1 - "@babel/helper-module-transforms": 7.18.0_supports-color@8.1.1 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/helper-simple-access": 7.18.2 + resolution: {integrity: sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.18.2_supports-color@8.1.1 + '@babel/helper-module-transforms': 7.18.0_supports-color@8.1.1 + '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-simple-access': 7.18.2 babel-plugin-dynamic-import-node: 2.3.3 transitivePeerDependencies: - supports-color dev: false /@babel/plugin-transform-modules-commonjs/7.18.2_ps3yxa7qdojvlda5ukda3zlwie: - resolution: - { - integrity: sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.12.10_supports-color@8.1.1 - "@babel/helper-module-transforms": 7.18.0_supports-color@8.1.1 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/helper-simple-access": 7.18.2 + resolution: {integrity: sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.10_supports-color@8.1.1 + '@babel/helper-module-transforms': 7.18.0_supports-color@8.1.1 + '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-simple-access': 7.18.2 babel-plugin-dynamic-import-node: 2.3.3 transitivePeerDependencies: - supports-color dev: false /@babel/plugin-transform-modules-systemjs/7.18.4_@babel+core@7.12.10: - resolution: - { - integrity: sha512-lH2UaQaHVOAeYrUUuZ8i38o76J/FnO8vu21OE+tD1MyP9lxdZoSfz+pDbWkq46GogUrdrMz3tiz/FYGB+bVThg==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.12.10 - "@babel/helper-hoist-variables": 7.16.7 - "@babel/helper-module-transforms": 7.18.0 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/helper-validator-identifier": 7.16.7 + resolution: {integrity: sha512-lH2UaQaHVOAeYrUUuZ8i38o76J/FnO8vu21OE+tD1MyP9lxdZoSfz+pDbWkq46GogUrdrMz3tiz/FYGB+bVThg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.10 + '@babel/helper-hoist-variables': 7.16.7 + '@babel/helper-module-transforms': 7.18.0 + '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-validator-identifier': 7.16.7 babel-plugin-dynamic-import-node: 2.3.3 transitivePeerDependencies: - supports-color /@babel/plugin-transform-modules-systemjs/7.18.4_ps3yxa7qdojvlda5ukda3zlwie: - resolution: - { - integrity: sha512-lH2UaQaHVOAeYrUUuZ8i38o76J/FnO8vu21OE+tD1MyP9lxdZoSfz+pDbWkq46GogUrdrMz3tiz/FYGB+bVThg==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.12.10_supports-color@8.1.1 - "@babel/helper-hoist-variables": 7.16.7 - "@babel/helper-module-transforms": 7.18.0_supports-color@8.1.1 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/helper-validator-identifier": 7.16.7 + resolution: {integrity: sha512-lH2UaQaHVOAeYrUUuZ8i38o76J/FnO8vu21OE+tD1MyP9lxdZoSfz+pDbWkq46GogUrdrMz3tiz/FYGB+bVThg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.10_supports-color@8.1.1 + '@babel/helper-hoist-variables': 7.16.7 + '@babel/helper-module-transforms': 7.18.0_supports-color@8.1.1 + '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-validator-identifier': 7.16.7 babel-plugin-dynamic-import-node: 2.3.3 transitivePeerDependencies: - supports-color dev: false /@babel/plugin-transform-modules-umd/7.18.0_@babel+core@7.12.10: - resolution: - { - integrity: sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-module-transforms": 7.18.0 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-module-transforms': 7.18.0 + '@babel/helper-plugin-utils': 7.17.12 transitivePeerDependencies: - supports-color /@babel/plugin-transform-modules-umd/7.18.0_ps3yxa7qdojvlda5ukda3zlwie: - resolution: - { - integrity: sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10_supports-color@8.1.1 - "@babel/helper-module-transforms": 7.18.0_supports-color@8.1.1 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10_supports-color@8.1.1 + '@babel/helper-module-transforms': 7.18.0_supports-color@8.1.1 + '@babel/helper-plugin-utils': 7.17.12 transitivePeerDependencies: - supports-color dev: false /@babel/plugin-transform-named-capturing-groups-regex/7.17.12_@babel+core@7.12.10: - resolution: - { - integrity: sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0 + '@babel/core': ^7.0.0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-create-regexp-features-plugin": 7.17.12_@babel+core@7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-create-regexp-features-plugin': 7.17.12_@babel+core@7.12.10 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-transform-new-target/7.17.12_@babel+core@7.12.10: - resolution: - { - integrity: sha512-CaOtzk2fDYisbjAD4Sd1MTKGVIpRtx9bWLyj24Y/k6p4s4gQ3CqDGJauFJxt8M/LEx003d0i3klVqnN73qvK3w==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-CaOtzk2fDYisbjAD4Sd1MTKGVIpRtx9bWLyj24Y/k6p4s4gQ3CqDGJauFJxt8M/LEx003d0i3klVqnN73qvK3w==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-transform-object-super/7.16.7_@babel+core@7.12.10: - resolution: - { - integrity: sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/helper-replace-supers": 7.18.2 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-replace-supers': 7.18.2 transitivePeerDependencies: - supports-color /@babel/plugin-transform-object-super/7.16.7_ps3yxa7qdojvlda5ukda3zlwie: - resolution: - { - integrity: sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10_supports-color@8.1.1 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/helper-replace-supers": 7.18.2_supports-color@8.1.1 + '@babel/core': 7.12.10_supports-color@8.1.1 + '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-replace-supers': 7.18.2_supports-color@8.1.1 transitivePeerDependencies: - supports-color dev: false /@babel/plugin-transform-parameters/7.17.12_@babel+core@7.12.10: - resolution: - { - integrity: sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-transform-property-literals/7.16.7_@babel+core@7.12.10: - resolution: - { - integrity: sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-transform-react-jsx-development/7.16.7_@babel+core@7.18.2: - resolution: - { - integrity: sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.18.2 - "@babel/plugin-transform-react-jsx": 7.17.12_@babel+core@7.18.2 + '@babel/core': 7.18.2 + '@babel/plugin-transform-react-jsx': 7.17.12_@babel+core@7.18.2 dev: true /@babel/plugin-transform-react-jsx-development/7.18.6_@babel+core@7.20.2: - resolution: - { - integrity: sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.20.2 - "@babel/plugin-transform-react-jsx": 7.19.0_@babel+core@7.20.2 + '@babel/core': 7.20.2 + '@babel/plugin-transform-react-jsx': 7.19.0_@babel+core@7.20.2 dev: true /@babel/plugin-transform-react-jsx-self/7.17.12_@babel+core@7.18.2: - resolution: - { - integrity: sha512-7S9G2B44EnYOx74mue02t1uD8ckWZ/ee6Uz/qfdzc35uWHX5NgRy9i+iJSb2LFRgMd+QV9zNcStQaazzzZ3n3Q==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-7S9G2B44EnYOx74mue02t1uD8ckWZ/ee6Uz/qfdzc35uWHX5NgRy9i+iJSb2LFRgMd+QV9zNcStQaazzzZ3n3Q==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.18.2 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.18.2 + '@babel/helper-plugin-utils': 7.17.12 dev: true /@babel/plugin-transform-react-jsx-self/7.18.6_@babel+core@7.20.2: - resolution: - { - integrity: sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.20.2 - "@babel/helper-plugin-utils": 7.20.2 + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-react-jsx-source/7.16.7_@babel+core@7.18.2: - resolution: - { - integrity: sha512-rONFiQz9vgbsnaMtQlZCjIRwhJvlrPET8TabIUK2hzlXw9B9s2Ieaxte1SCOOXMbWRHodbKixNf3BLcWVOQ8Bw==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-rONFiQz9vgbsnaMtQlZCjIRwhJvlrPET8TabIUK2hzlXw9B9s2Ieaxte1SCOOXMbWRHodbKixNf3BLcWVOQ8Bw==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.18.2 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.18.2 + '@babel/helper-plugin-utils': 7.17.12 dev: true /@babel/plugin-transform-react-jsx-source/7.19.6_@babel+core@7.20.2: - resolution: - { - integrity: sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.20.2 - "@babel/helper-plugin-utils": 7.20.2 + '@babel/core': 7.20.2 + '@babel/helper-plugin-utils': 7.20.2 dev: true /@babel/plugin-transform-react-jsx/7.17.12_@babel+core@7.18.2: - resolution: - { - integrity: sha512-Lcaw8bxd1DKht3thfD4A12dqo1X16he1Lm8rIv8sTwjAYNInRS1qHa9aJoqvzpscItXvftKDCfaEQzwoVyXpEQ==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-Lcaw8bxd1DKht3thfD4A12dqo1X16he1Lm8rIv8sTwjAYNInRS1qHa9aJoqvzpscItXvftKDCfaEQzwoVyXpEQ==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.18.2 - "@babel/helper-annotate-as-pure": 7.16.7 - "@babel/helper-module-imports": 7.16.7 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/plugin-syntax-jsx": 7.17.12_@babel+core@7.18.2 - "@babel/types": 7.18.4 + '@babel/core': 7.18.2 + '@babel/helper-annotate-as-pure': 7.16.7 + '@babel/helper-module-imports': 7.16.7 + '@babel/helper-plugin-utils': 7.17.12 + '@babel/plugin-syntax-jsx': 7.17.12_@babel+core@7.18.2 + '@babel/types': 7.18.4 dev: true /@babel/plugin-transform-react-jsx/7.19.0_@babel+core@7.20.2: - resolution: - { - integrity: sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.20.2 - "@babel/helper-annotate-as-pure": 7.18.6 - "@babel/helper-module-imports": 7.18.6 - "@babel/helper-plugin-utils": 7.20.2 - "@babel/plugin-syntax-jsx": 7.18.6_@babel+core@7.20.2 - "@babel/types": 7.20.2 + '@babel/core': 7.20.2 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.20.2 + '@babel/types': 7.20.2 dev: true /@babel/plugin-transform-regenerator/7.18.0_@babel+core@7.12.10: - resolution: - { - integrity: sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 regenerator-transform: 0.15.0 /@babel/plugin-transform-reserved-words/7.17.12_@babel+core@7.12.10: - resolution: - { - integrity: sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-transform-shorthand-properties/7.16.7_@babel+core@7.12.10: - resolution: - { - integrity: sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-transform-spread/7.17.12_@babel+core@7.12.10: - resolution: - { - integrity: sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/helper-skip-transparent-expression-wrappers": 7.16.0 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-skip-transparent-expression-wrappers': 7.16.0 /@babel/plugin-transform-sticky-regex/7.16.7_@babel+core@7.12.10: - resolution: - { - integrity: sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-transform-template-literals/7.18.2_@babel+core@7.12.10: - resolution: - { - integrity: sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-transform-typeof-symbol/7.17.12_@babel+core@7.12.10: - resolution: - { - integrity: sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-transform-typescript/7.12.1_ps3yxa7qdojvlda5ukda3zlwie: - resolution: - { - integrity: sha512-VrsBByqAIntM+EYMqSm59SiMEf7qkmI9dqMt6RbD/wlwueWmYcI0FFK5Fj47pP6DRZm+3teXjosKlwcZJ5lIMw==, - } + resolution: {integrity: sha512-VrsBByqAIntM+EYMqSm59SiMEf7qkmI9dqMt6RbD/wlwueWmYcI0FFK5Fj47pP6DRZm+3teXjosKlwcZJ5lIMw==} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10_supports-color@8.1.1 - "@babel/helper-create-class-features-plugin": 7.18.0_ps3yxa7qdojvlda5ukda3zlwie - "@babel/helper-plugin-utils": 7.17.12 - "@babel/plugin-syntax-typescript": 7.17.12_@babel+core@7.12.10 + '@babel/core': 7.12.10_supports-color@8.1.1 + '@babel/helper-create-class-features-plugin': 7.18.0_ps3yxa7qdojvlda5ukda3zlwie + '@babel/helper-plugin-utils': 7.17.12 + '@babel/plugin-syntax-typescript': 7.17.12_@babel+core@7.12.10 transitivePeerDependencies: - supports-color dev: false /@babel/plugin-transform-typescript/7.18.4_@babel+core@7.18.2: - resolution: - { - integrity: sha512-l4vHuSLUajptpHNEOUDEGsnpl9pfRLsN1XUoDQDD/YBuXTM+v37SHGS+c6n4jdcZy96QtuUuSvZYMLSSsjH8Mw==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2 - "@babel/helper-create-class-features-plugin": 7.18.0_@babel+core@7.18.2 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/plugin-syntax-typescript": 7.17.12_@babel+core@7.18.2 + resolution: {integrity: sha512-l4vHuSLUajptpHNEOUDEGsnpl9pfRLsN1XUoDQDD/YBuXTM+v37SHGS+c6n4jdcZy96QtuUuSvZYMLSSsjH8Mw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.18.2 + '@babel/helper-create-class-features-plugin': 7.18.0_@babel+core@7.18.2 + '@babel/helper-plugin-utils': 7.17.12 + '@babel/plugin-syntax-typescript': 7.17.12_@babel+core@7.18.2 transitivePeerDependencies: - supports-color dev: false /@babel/plugin-transform-typescript/7.18.4_aiglbhfglusiuujjiuminyg6ui: - resolution: - { - integrity: sha512-l4vHuSLUajptpHNEOUDEGsnpl9pfRLsN1XUoDQDD/YBuXTM+v37SHGS+c6n4jdcZy96QtuUuSvZYMLSSsjH8Mw==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2_supports-color@8.1.1 - "@babel/helper-create-class-features-plugin": 7.18.0_aiglbhfglusiuujjiuminyg6ui - "@babel/helper-plugin-utils": 7.17.12 - "@babel/plugin-syntax-typescript": 7.17.12_@babel+core@7.18.2 + resolution: {integrity: sha512-l4vHuSLUajptpHNEOUDEGsnpl9pfRLsN1XUoDQDD/YBuXTM+v37SHGS+c6n4jdcZy96QtuUuSvZYMLSSsjH8Mw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.18.2_supports-color@8.1.1 + '@babel/helper-create-class-features-plugin': 7.18.0_aiglbhfglusiuujjiuminyg6ui + '@babel/helper-plugin-utils': 7.17.12 + '@babel/plugin-syntax-typescript': 7.17.12_@babel+core@7.18.2 transitivePeerDependencies: - supports-color dev: false /@babel/plugin-transform-unicode-escapes/7.16.7_@babel+core@7.12.10: - resolution: - { - integrity: sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 /@babel/plugin-transform-unicode-regex/7.16.7_@babel+core@7.12.10: - resolution: - { - integrity: sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.12.10 - "@babel/helper-create-regexp-features-plugin": 7.17.12_@babel+core@7.12.10 - "@babel/helper-plugin-utils": 7.17.12 + '@babel/core': 7.12.10 + '@babel/helper-create-regexp-features-plugin': 7.17.12_@babel+core@7.12.10 + '@babel/helper-plugin-utils': 7.17.12 /@babel/preset-env/7.12.10_@babel+core@7.12.10: - resolution: - { - integrity: sha512-Gz9hnBT/tGeTE2DBNDkD7BiWRELZt+8lSysHuDwmYXUIvtwZl0zI+D6mZgXZX0u8YBlLS4tmai9ONNY9tjRgRA==, - } - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/compat-data": 7.17.10 - "@babel/core": 7.12.10 - "@babel/helper-compilation-targets": 7.18.2_@babel+core@7.12.10 - "@babel/helper-module-imports": 7.16.7 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/helper-validator-option": 7.16.7 - "@babel/plugin-proposal-async-generator-functions": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-proposal-class-properties": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-proposal-dynamic-import": 7.16.7_@babel+core@7.12.10 - "@babel/plugin-proposal-export-namespace-from": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-proposal-json-strings": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-proposal-logical-assignment-operators": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-proposal-nullish-coalescing-operator": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-proposal-numeric-separator": 7.16.7_@babel+core@7.12.10 - "@babel/plugin-proposal-object-rest-spread": 7.18.0_@babel+core@7.12.10 - "@babel/plugin-proposal-optional-catch-binding": 7.16.7_@babel+core@7.12.10 - "@babel/plugin-proposal-optional-chaining": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-proposal-private-methods": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-proposal-unicode-property-regex": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-syntax-async-generators": 7.8.4_@babel+core@7.12.10 - "@babel/plugin-syntax-class-properties": 7.12.13_@babel+core@7.12.10 - "@babel/plugin-syntax-dynamic-import": 7.8.3_@babel+core@7.12.10 - "@babel/plugin-syntax-export-namespace-from": 7.8.3_@babel+core@7.12.10 - "@babel/plugin-syntax-json-strings": 7.8.3_@babel+core@7.12.10 - "@babel/plugin-syntax-logical-assignment-operators": 7.10.4_@babel+core@7.12.10 - "@babel/plugin-syntax-nullish-coalescing-operator": 7.8.3_@babel+core@7.12.10 - "@babel/plugin-syntax-numeric-separator": 7.10.4_@babel+core@7.12.10 - "@babel/plugin-syntax-object-rest-spread": 7.8.3_@babel+core@7.12.10 - "@babel/plugin-syntax-optional-catch-binding": 7.8.3_@babel+core@7.12.10 - "@babel/plugin-syntax-optional-chaining": 7.8.3_@babel+core@7.12.10 - "@babel/plugin-syntax-top-level-await": 7.14.5_@babel+core@7.12.10 - "@babel/plugin-transform-arrow-functions": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-transform-async-to-generator": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-transform-block-scoped-functions": 7.16.7_@babel+core@7.12.10 - "@babel/plugin-transform-block-scoping": 7.18.4_@babel+core@7.12.10 - "@babel/plugin-transform-classes": 7.18.4_@babel+core@7.12.10 - "@babel/plugin-transform-computed-properties": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-transform-destructuring": 7.18.0_@babel+core@7.12.10 - "@babel/plugin-transform-dotall-regex": 7.16.7_@babel+core@7.12.10 - "@babel/plugin-transform-duplicate-keys": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-transform-exponentiation-operator": 7.16.7_@babel+core@7.12.10 - "@babel/plugin-transform-for-of": 7.18.1_@babel+core@7.12.10 - "@babel/plugin-transform-function-name": 7.16.7_@babel+core@7.12.10 - "@babel/plugin-transform-literals": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-transform-member-expression-literals": 7.16.7_@babel+core@7.12.10 - "@babel/plugin-transform-modules-amd": 7.18.0_@babel+core@7.12.10 - "@babel/plugin-transform-modules-commonjs": 7.18.2_@babel+core@7.12.10 - "@babel/plugin-transform-modules-systemjs": 7.18.4_@babel+core@7.12.10 - "@babel/plugin-transform-modules-umd": 7.18.0_@babel+core@7.12.10 - "@babel/plugin-transform-named-capturing-groups-regex": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-transform-new-target": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-transform-object-super": 7.16.7_@babel+core@7.12.10 - "@babel/plugin-transform-parameters": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-transform-property-literals": 7.16.7_@babel+core@7.12.10 - "@babel/plugin-transform-regenerator": 7.18.0_@babel+core@7.12.10 - "@babel/plugin-transform-reserved-words": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-transform-shorthand-properties": 7.16.7_@babel+core@7.12.10 - "@babel/plugin-transform-spread": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-transform-sticky-regex": 7.16.7_@babel+core@7.12.10 - "@babel/plugin-transform-template-literals": 7.18.2_@babel+core@7.12.10 - "@babel/plugin-transform-typeof-symbol": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-transform-unicode-escapes": 7.16.7_@babel+core@7.12.10 - "@babel/plugin-transform-unicode-regex": 7.16.7_@babel+core@7.12.10 - "@babel/preset-modules": 0.1.5_@babel+core@7.12.10 - "@babel/types": 7.17.12 + resolution: {integrity: sha512-Gz9hnBT/tGeTE2DBNDkD7BiWRELZt+8lSysHuDwmYXUIvtwZl0zI+D6mZgXZX0u8YBlLS4tmai9ONNY9tjRgRA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.17.10 + '@babel/core': 7.12.10 + '@babel/helper-compilation-targets': 7.18.2_@babel+core@7.12.10 + '@babel/helper-module-imports': 7.16.7 + '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-validator-option': 7.16.7 + '@babel/plugin-proposal-async-generator-functions': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-proposal-class-properties': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-proposal-dynamic-import': 7.16.7_@babel+core@7.12.10 + '@babel/plugin-proposal-export-namespace-from': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-proposal-json-strings': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-proposal-logical-assignment-operators': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-proposal-nullish-coalescing-operator': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-proposal-numeric-separator': 7.16.7_@babel+core@7.12.10 + '@babel/plugin-proposal-object-rest-spread': 7.18.0_@babel+core@7.12.10 + '@babel/plugin-proposal-optional-catch-binding': 7.16.7_@babel+core@7.12.10 + '@babel/plugin-proposal-optional-chaining': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-proposal-private-methods': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-proposal-unicode-property-regex': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.12.10 + '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.12.10 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.12.10 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.12.10 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.12.10 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.12.10 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.12.10 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.12.10 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.12.10 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.12.10 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.12.10 + '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.12.10 + '@babel/plugin-transform-arrow-functions': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-transform-async-to-generator': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-transform-block-scoped-functions': 7.16.7_@babel+core@7.12.10 + '@babel/plugin-transform-block-scoping': 7.18.4_@babel+core@7.12.10 + '@babel/plugin-transform-classes': 7.18.4_@babel+core@7.12.10 + '@babel/plugin-transform-computed-properties': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-transform-destructuring': 7.18.0_@babel+core@7.12.10 + '@babel/plugin-transform-dotall-regex': 7.16.7_@babel+core@7.12.10 + '@babel/plugin-transform-duplicate-keys': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-transform-exponentiation-operator': 7.16.7_@babel+core@7.12.10 + '@babel/plugin-transform-for-of': 7.18.1_@babel+core@7.12.10 + '@babel/plugin-transform-function-name': 7.16.7_@babel+core@7.12.10 + '@babel/plugin-transform-literals': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-transform-member-expression-literals': 7.16.7_@babel+core@7.12.10 + '@babel/plugin-transform-modules-amd': 7.18.0_@babel+core@7.12.10 + '@babel/plugin-transform-modules-commonjs': 7.18.2_@babel+core@7.12.10 + '@babel/plugin-transform-modules-systemjs': 7.18.4_@babel+core@7.12.10 + '@babel/plugin-transform-modules-umd': 7.18.0_@babel+core@7.12.10 + '@babel/plugin-transform-named-capturing-groups-regex': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-transform-new-target': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-transform-object-super': 7.16.7_@babel+core@7.12.10 + '@babel/plugin-transform-parameters': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-transform-property-literals': 7.16.7_@babel+core@7.12.10 + '@babel/plugin-transform-regenerator': 7.18.0_@babel+core@7.12.10 + '@babel/plugin-transform-reserved-words': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-transform-shorthand-properties': 7.16.7_@babel+core@7.12.10 + '@babel/plugin-transform-spread': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-transform-sticky-regex': 7.16.7_@babel+core@7.12.10 + '@babel/plugin-transform-template-literals': 7.18.2_@babel+core@7.12.10 + '@babel/plugin-transform-typeof-symbol': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-transform-unicode-escapes': 7.16.7_@babel+core@7.12.10 + '@babel/plugin-transform-unicode-regex': 7.16.7_@babel+core@7.12.10 + '@babel/preset-modules': 0.1.5_@babel+core@7.12.10 + '@babel/types': 7.17.12 core-js-compat: 3.22.5 semver: 5.7.1 transitivePeerDependencies: - supports-color /@babel/preset-env/7.12.10_ps3yxa7qdojvlda5ukda3zlwie: - resolution: - { - integrity: sha512-Gz9hnBT/tGeTE2DBNDkD7BiWRELZt+8lSysHuDwmYXUIvtwZl0zI+D6mZgXZX0u8YBlLS4tmai9ONNY9tjRgRA==, - } - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/compat-data": 7.17.10 - "@babel/core": 7.12.10_supports-color@8.1.1 - "@babel/helper-compilation-targets": 7.18.2_@babel+core@7.12.10 - "@babel/helper-module-imports": 7.16.7 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/helper-validator-option": 7.16.7 - "@babel/plugin-proposal-async-generator-functions": 7.17.12_ps3yxa7qdojvlda5ukda3zlwie - "@babel/plugin-proposal-class-properties": 7.17.12_ps3yxa7qdojvlda5ukda3zlwie - "@babel/plugin-proposal-dynamic-import": 7.16.7_@babel+core@7.12.10 - "@babel/plugin-proposal-export-namespace-from": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-proposal-json-strings": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-proposal-logical-assignment-operators": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-proposal-nullish-coalescing-operator": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-proposal-numeric-separator": 7.16.7_@babel+core@7.12.10 - "@babel/plugin-proposal-object-rest-spread": 7.18.0_@babel+core@7.12.10 - "@babel/plugin-proposal-optional-catch-binding": 7.16.7_@babel+core@7.12.10 - "@babel/plugin-proposal-optional-chaining": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-proposal-private-methods": 7.17.12_ps3yxa7qdojvlda5ukda3zlwie - "@babel/plugin-proposal-unicode-property-regex": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-syntax-async-generators": 7.8.4_@babel+core@7.12.10 - "@babel/plugin-syntax-class-properties": 7.12.13_@babel+core@7.12.10 - "@babel/plugin-syntax-dynamic-import": 7.8.3_@babel+core@7.12.10 - "@babel/plugin-syntax-export-namespace-from": 7.8.3_@babel+core@7.12.10 - "@babel/plugin-syntax-json-strings": 7.8.3_@babel+core@7.12.10 - "@babel/plugin-syntax-logical-assignment-operators": 7.10.4_@babel+core@7.12.10 - "@babel/plugin-syntax-nullish-coalescing-operator": 7.8.3_@babel+core@7.12.10 - "@babel/plugin-syntax-numeric-separator": 7.10.4_@babel+core@7.12.10 - "@babel/plugin-syntax-object-rest-spread": 7.8.3_@babel+core@7.12.10 - "@babel/plugin-syntax-optional-catch-binding": 7.8.3_@babel+core@7.12.10 - "@babel/plugin-syntax-optional-chaining": 7.8.3_@babel+core@7.12.10 - "@babel/plugin-syntax-top-level-await": 7.14.5_@babel+core@7.12.10 - "@babel/plugin-transform-arrow-functions": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-transform-async-to-generator": 7.17.12_ps3yxa7qdojvlda5ukda3zlwie - "@babel/plugin-transform-block-scoped-functions": 7.16.7_@babel+core@7.12.10 - "@babel/plugin-transform-block-scoping": 7.18.4_@babel+core@7.12.10 - "@babel/plugin-transform-classes": 7.18.4_ps3yxa7qdojvlda5ukda3zlwie - "@babel/plugin-transform-computed-properties": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-transform-destructuring": 7.18.0_@babel+core@7.12.10 - "@babel/plugin-transform-dotall-regex": 7.16.7_@babel+core@7.12.10 - "@babel/plugin-transform-duplicate-keys": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-transform-exponentiation-operator": 7.16.7_@babel+core@7.12.10 - "@babel/plugin-transform-for-of": 7.18.1_@babel+core@7.12.10 - "@babel/plugin-transform-function-name": 7.16.7_@babel+core@7.12.10 - "@babel/plugin-transform-literals": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-transform-member-expression-literals": 7.16.7_@babel+core@7.12.10 - "@babel/plugin-transform-modules-amd": 7.18.0_ps3yxa7qdojvlda5ukda3zlwie - "@babel/plugin-transform-modules-commonjs": 7.18.2_ps3yxa7qdojvlda5ukda3zlwie - "@babel/plugin-transform-modules-systemjs": 7.18.4_ps3yxa7qdojvlda5ukda3zlwie - "@babel/plugin-transform-modules-umd": 7.18.0_ps3yxa7qdojvlda5ukda3zlwie - "@babel/plugin-transform-named-capturing-groups-regex": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-transform-new-target": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-transform-object-super": 7.16.7_ps3yxa7qdojvlda5ukda3zlwie - "@babel/plugin-transform-parameters": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-transform-property-literals": 7.16.7_@babel+core@7.12.10 - "@babel/plugin-transform-regenerator": 7.18.0_@babel+core@7.12.10 - "@babel/plugin-transform-reserved-words": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-transform-shorthand-properties": 7.16.7_@babel+core@7.12.10 - "@babel/plugin-transform-spread": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-transform-sticky-regex": 7.16.7_@babel+core@7.12.10 - "@babel/plugin-transform-template-literals": 7.18.2_@babel+core@7.12.10 - "@babel/plugin-transform-typeof-symbol": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-transform-unicode-escapes": 7.16.7_@babel+core@7.12.10 - "@babel/plugin-transform-unicode-regex": 7.16.7_@babel+core@7.12.10 - "@babel/preset-modules": 0.1.5_@babel+core@7.12.10 - "@babel/types": 7.17.12 + resolution: {integrity: sha512-Gz9hnBT/tGeTE2DBNDkD7BiWRELZt+8lSysHuDwmYXUIvtwZl0zI+D6mZgXZX0u8YBlLS4tmai9ONNY9tjRgRA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.17.10 + '@babel/core': 7.12.10_supports-color@8.1.1 + '@babel/helper-compilation-targets': 7.18.2_@babel+core@7.12.10 + '@babel/helper-module-imports': 7.16.7 + '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-validator-option': 7.16.7 + '@babel/plugin-proposal-async-generator-functions': 7.17.12_ps3yxa7qdojvlda5ukda3zlwie + '@babel/plugin-proposal-class-properties': 7.17.12_ps3yxa7qdojvlda5ukda3zlwie + '@babel/plugin-proposal-dynamic-import': 7.16.7_@babel+core@7.12.10 + '@babel/plugin-proposal-export-namespace-from': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-proposal-json-strings': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-proposal-logical-assignment-operators': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-proposal-nullish-coalescing-operator': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-proposal-numeric-separator': 7.16.7_@babel+core@7.12.10 + '@babel/plugin-proposal-object-rest-spread': 7.18.0_@babel+core@7.12.10 + '@babel/plugin-proposal-optional-catch-binding': 7.16.7_@babel+core@7.12.10 + '@babel/plugin-proposal-optional-chaining': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-proposal-private-methods': 7.17.12_ps3yxa7qdojvlda5ukda3zlwie + '@babel/plugin-proposal-unicode-property-regex': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.12.10 + '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.12.10 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.12.10 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.12.10 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.12.10 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.12.10 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.12.10 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.12.10 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.12.10 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.12.10 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.12.10 + '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.12.10 + '@babel/plugin-transform-arrow-functions': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-transform-async-to-generator': 7.17.12_ps3yxa7qdojvlda5ukda3zlwie + '@babel/plugin-transform-block-scoped-functions': 7.16.7_@babel+core@7.12.10 + '@babel/plugin-transform-block-scoping': 7.18.4_@babel+core@7.12.10 + '@babel/plugin-transform-classes': 7.18.4_ps3yxa7qdojvlda5ukda3zlwie + '@babel/plugin-transform-computed-properties': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-transform-destructuring': 7.18.0_@babel+core@7.12.10 + '@babel/plugin-transform-dotall-regex': 7.16.7_@babel+core@7.12.10 + '@babel/plugin-transform-duplicate-keys': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-transform-exponentiation-operator': 7.16.7_@babel+core@7.12.10 + '@babel/plugin-transform-for-of': 7.18.1_@babel+core@7.12.10 + '@babel/plugin-transform-function-name': 7.16.7_@babel+core@7.12.10 + '@babel/plugin-transform-literals': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-transform-member-expression-literals': 7.16.7_@babel+core@7.12.10 + '@babel/plugin-transform-modules-amd': 7.18.0_ps3yxa7qdojvlda5ukda3zlwie + '@babel/plugin-transform-modules-commonjs': 7.18.2_ps3yxa7qdojvlda5ukda3zlwie + '@babel/plugin-transform-modules-systemjs': 7.18.4_ps3yxa7qdojvlda5ukda3zlwie + '@babel/plugin-transform-modules-umd': 7.18.0_ps3yxa7qdojvlda5ukda3zlwie + '@babel/plugin-transform-named-capturing-groups-regex': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-transform-new-target': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-transform-object-super': 7.16.7_ps3yxa7qdojvlda5ukda3zlwie + '@babel/plugin-transform-parameters': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-transform-property-literals': 7.16.7_@babel+core@7.12.10 + '@babel/plugin-transform-regenerator': 7.18.0_@babel+core@7.12.10 + '@babel/plugin-transform-reserved-words': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-transform-shorthand-properties': 7.16.7_@babel+core@7.12.10 + '@babel/plugin-transform-spread': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-transform-sticky-regex': 7.16.7_@babel+core@7.12.10 + '@babel/plugin-transform-template-literals': 7.18.2_@babel+core@7.12.10 + '@babel/plugin-transform-typeof-symbol': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-transform-unicode-escapes': 7.16.7_@babel+core@7.12.10 + '@babel/plugin-transform-unicode-regex': 7.16.7_@babel+core@7.12.10 + '@babel/preset-modules': 0.1.5_@babel+core@7.12.10 + '@babel/types': 7.17.12 core-js-compat: 3.22.5 semver: 5.7.1 transitivePeerDependencies: @@ -4149,79 +3671,64 @@ packages: dev: false /@babel/preset-flow/7.17.12_@babel+core@7.18.2: - resolution: - { - integrity: sha512-7QDz7k4uiaBdu7N89VKjUn807pJRXmdirQu0KyR9LXnQrr5Jt41eIMKTS7ljej+H29erwmMrwq9Io9mJHLI3Lw==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-7QDz7k4uiaBdu7N89VKjUn807pJRXmdirQu0KyR9LXnQrr5Jt41eIMKTS7ljej+H29erwmMrwq9Io9mJHLI3Lw==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.18.2_supports-color@8.1.1 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/helper-validator-option": 7.16.7 - "@babel/plugin-transform-flow-strip-types": 7.17.12_@babel+core@7.18.2 + '@babel/core': 7.18.2_supports-color@8.1.1 + '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-validator-option': 7.16.7 + '@babel/plugin-transform-flow-strip-types': 7.17.12_@babel+core@7.18.2 dev: false /@babel/preset-modules/0.1.5_@babel+core@7.12.10: - resolution: - { - integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==, - } - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/plugin-proposal-unicode-property-regex": 7.17.12_@babel+core@7.12.10 - "@babel/plugin-transform-dotall-regex": 7.16.7_@babel+core@7.12.10 - "@babel/types": 7.18.4 + resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.12.10 + '@babel/helper-plugin-utils': 7.17.12 + '@babel/plugin-proposal-unicode-property-regex': 7.17.12_@babel+core@7.12.10 + '@babel/plugin-transform-dotall-regex': 7.16.7_@babel+core@7.12.10 + '@babel/types': 7.18.4 esutils: 2.0.3 /@babel/preset-typescript/7.17.12_@babel+core@7.18.2: - resolution: - { - integrity: sha512-S1ViF8W2QwAKUGJXxP9NAfNaqGDdEBJKpYkxHf5Yy2C4NPPzXGeR3Lhk7G8xJaaLcFTRfNjVbtbVtm8Gb0mqvg==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/helper-validator-option": 7.16.7 - "@babel/plugin-transform-typescript": 7.18.4_@babel+core@7.18.2 + resolution: {integrity: sha512-S1ViF8W2QwAKUGJXxP9NAfNaqGDdEBJKpYkxHf5Yy2C4NPPzXGeR3Lhk7G8xJaaLcFTRfNjVbtbVtm8Gb0mqvg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.18.2 + '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-validator-option': 7.16.7 + '@babel/plugin-transform-typescript': 7.18.4_@babel+core@7.18.2 transitivePeerDependencies: - supports-color dev: false /@babel/preset-typescript/7.17.12_aiglbhfglusiuujjiuminyg6ui: - resolution: - { - integrity: sha512-S1ViF8W2QwAKUGJXxP9NAfNaqGDdEBJKpYkxHf5Yy2C4NPPzXGeR3Lhk7G8xJaaLcFTRfNjVbtbVtm8Gb0mqvg==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2_supports-color@8.1.1 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/helper-validator-option": 7.16.7 - "@babel/plugin-transform-typescript": 7.18.4_aiglbhfglusiuujjiuminyg6ui + resolution: {integrity: sha512-S1ViF8W2QwAKUGJXxP9NAfNaqGDdEBJKpYkxHf5Yy2C4NPPzXGeR3Lhk7G8xJaaLcFTRfNjVbtbVtm8Gb0mqvg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.18.2_supports-color@8.1.1 + '@babel/helper-plugin-utils': 7.17.12 + '@babel/helper-validator-option': 7.16.7 + '@babel/plugin-transform-typescript': 7.18.4_aiglbhfglusiuujjiuminyg6ui transitivePeerDependencies: - supports-color dev: false /@babel/register/7.17.7_@babel+core@7.18.2: - resolution: - { - integrity: sha512-fg56SwvXRifootQEDQAu1mKdjh5uthPzdO0N6t358FktfL4XjAVXuH58ULoiW8mesxiOgNIrxiImqEwv0+hRRA==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-fg56SwvXRifootQEDQAu1mKdjh5uthPzdO0N6t358FktfL4XjAVXuH58ULoiW8mesxiOgNIrxiImqEwv0+hRRA==} + engines: {node: '>=6.9.0'} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.18.2_supports-color@8.1.1 + '@babel/core': 7.18.2_supports-color@8.1.1 clone-deep: 4.0.1 find-cache-dir: 2.1.0 make-dir: 2.1.0 @@ -4230,89 +3737,68 @@ packages: dev: false /@babel/runtime-corejs3/7.18.3: - resolution: - { - integrity: sha512-l4ddFwrc9rnR+EJsHsh+TJ4A35YqQz/UqcjtlX2ov53hlJYG5CxtQmNZxyajwDVmCxwy++rtvGU5HazCK4W41Q==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-l4ddFwrc9rnR+EJsHsh+TJ4A35YqQz/UqcjtlX2ov53hlJYG5CxtQmNZxyajwDVmCxwy++rtvGU5HazCK4W41Q==} + engines: {node: '>=6.9.0'} dependencies: core-js-pure: 3.23.0 regenerator-runtime: 0.13.9 /@babel/runtime/7.18.3: - resolution: - { - integrity: sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==} + engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.13.9 /@babel/standalone/7.18.9: - resolution: - { - integrity: sha512-6E+p5azHMHcMkHzGFnA7Pqhtgfwx1cClwjMqomMHhdFupCLZDDpVQUctRGYE7p7nn7cXJZSI/L9en+tt30AP3w==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-6E+p5azHMHcMkHzGFnA7Pqhtgfwx1cClwjMqomMHhdFupCLZDDpVQUctRGYE7p7nn7cXJZSI/L9en+tt30AP3w==} + engines: {node: '>=6.9.0'} dev: true /@babel/template/7.16.7: - resolution: - { - integrity: sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==} + engines: {node: '>=6.9.0'} dependencies: - "@babel/code-frame": 7.16.7 - "@babel/parser": 7.18.4 - "@babel/types": 7.18.4 + '@babel/code-frame': 7.16.7 + '@babel/parser': 7.18.4 + '@babel/types': 7.18.4 /@babel/template/7.18.10: - resolution: - { - integrity: sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==} + engines: {node: '>=6.9.0'} dependencies: - "@babel/code-frame": 7.18.6 - "@babel/parser": 7.20.3 - "@babel/types": 7.20.2 + '@babel/code-frame': 7.18.6 + '@babel/parser': 7.20.3 + '@babel/types': 7.20.2 /@babel/traverse/7.18.2: - resolution: - { - integrity: sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA==, - } - engines: {node: ">=6.9.0"} - dependencies: - "@babel/code-frame": 7.16.7 - "@babel/generator": 7.18.2 - "@babel/helper-environment-visitor": 7.18.2 - "@babel/helper-function-name": 7.17.9 - "@babel/helper-hoist-variables": 7.16.7 - "@babel/helper-split-export-declaration": 7.16.7 - "@babel/parser": 7.18.4 - "@babel/types": 7.18.4 + resolution: {integrity: sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.16.7 + '@babel/generator': 7.18.2 + '@babel/helper-environment-visitor': 7.18.2 + '@babel/helper-function-name': 7.17.9 + '@babel/helper-hoist-variables': 7.16.7 + '@babel/helper-split-export-declaration': 7.16.7 + '@babel/parser': 7.18.4 + '@babel/types': 7.18.4 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color /@babel/traverse/7.18.2_supports-color@8.1.1: - resolution: - { - integrity: sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA==, - } - engines: {node: ">=6.9.0"} - dependencies: - "@babel/code-frame": 7.16.7 - "@babel/generator": 7.18.2 - "@babel/helper-environment-visitor": 7.18.2 - "@babel/helper-function-name": 7.17.9 - "@babel/helper-hoist-variables": 7.16.7 - "@babel/helper-split-export-declaration": 7.16.7 - "@babel/parser": 7.18.4 - "@babel/types": 7.18.4 + resolution: {integrity: sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.16.7 + '@babel/generator': 7.18.2 + '@babel/helper-environment-visitor': 7.18.2 + '@babel/helper-function-name': 7.17.9 + '@babel/helper-hoist-variables': 7.16.7 + '@babel/helper-split-export-declaration': 7.16.7 + '@babel/parser': 7.18.4 + '@babel/types': 7.18.4 debug: 4.3.4_supports-color@8.1.1 globals: 11.12.0 transitivePeerDependencies: @@ -4320,103 +3806,79 @@ packages: dev: false /@babel/traverse/7.20.1: - resolution: - { - integrity: sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==, - } - engines: {node: ">=6.9.0"} - dependencies: - "@babel/code-frame": 7.18.6 - "@babel/generator": 7.20.4 - "@babel/helper-environment-visitor": 7.18.9 - "@babel/helper-function-name": 7.19.0 - "@babel/helper-hoist-variables": 7.18.6 - "@babel/helper-split-export-declaration": 7.18.6 - "@babel/parser": 7.20.3 - "@babel/types": 7.20.2 - debug: 4.3.4 + resolution: {integrity: sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.20.4 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.19.0 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/parser': 7.20.3 + '@babel/types': 7.20.2 + debug: 4.3.3 globals: 11.12.0 transitivePeerDependencies: - supports-color /@babel/traverse/7.20.1_supports-color@8.1.1: - resolution: - { - integrity: sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==, - } - engines: {node: ">=6.9.0"} - dependencies: - "@babel/code-frame": 7.18.6 - "@babel/generator": 7.20.4 - "@babel/helper-environment-visitor": 7.18.9 - "@babel/helper-function-name": 7.19.0 - "@babel/helper-hoist-variables": 7.18.6 - "@babel/helper-split-export-declaration": 7.18.6 - "@babel/parser": 7.20.3 - "@babel/types": 7.20.2 - debug: 4.3.4_supports-color@8.1.1 + resolution: {integrity: sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.20.4 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.19.0 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/parser': 7.20.3 + '@babel/types': 7.20.2 + debug: 4.3.3_supports-color@8.1.1 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true /@babel/types/7.12.10: - resolution: - { - integrity: sha512-sf6wboJV5mGyip2hIpDSKsr80RszPinEFjsHTalMxZAZkoQ2/2yQzxlcFN52SJqsyPfLtPmenL4g2KB3KJXPDw==, - } + resolution: {integrity: sha512-sf6wboJV5mGyip2hIpDSKsr80RszPinEFjsHTalMxZAZkoQ2/2yQzxlcFN52SJqsyPfLtPmenL4g2KB3KJXPDw==} dependencies: - "@babel/helper-validator-identifier": 7.16.7 + '@babel/helper-validator-identifier': 7.16.7 lodash: 4.17.21 to-fast-properties: 2.0.0 dev: false /@babel/types/7.17.12: - resolution: - { - integrity: sha512-rH8i29wcZ6x9xjzI5ILHL/yZkbQnCERdHlogKuIb4PUr7do4iT8DPekrTbBLWTnRQm6U0GYABbTMSzijmEqlAg==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-rH8i29wcZ6x9xjzI5ILHL/yZkbQnCERdHlogKuIb4PUr7do4iT8DPekrTbBLWTnRQm6U0GYABbTMSzijmEqlAg==} + engines: {node: '>=6.9.0'} dependencies: - "@babel/helper-validator-identifier": 7.16.7 + '@babel/helper-validator-identifier': 7.16.7 to-fast-properties: 2.0.0 /@babel/types/7.18.4: - resolution: - { - integrity: sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==} + engines: {node: '>=6.9.0'} dependencies: - "@babel/helper-validator-identifier": 7.16.7 + '@babel/helper-validator-identifier': 7.16.7 to-fast-properties: 2.0.0 /@babel/types/7.20.2: - resolution: - { - integrity: sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==, - } - engines: {node: ">=6.9.0"} - dependencies: - "@babel/helper-string-parser": 7.19.4 - "@babel/helper-validator-identifier": 7.19.1 + resolution: {integrity: sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.19.4 + '@babel/helper-validator-identifier': 7.19.1 to-fast-properties: 2.0.0 /@bcoe/v8-coverage/0.2.3: - resolution: - { - integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==, - } + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} /@blitzjs/manypkg/0.19.1: - resolution: - { - integrity: sha512-Z8liT59nSKynZceIN5tba7cZuM15vOuSGTOGNhgcaLlTMtqp/Jlo3wVvvLn9YEIe/V+nwlq5ydLrjPl4I6ZLYA==, - } + resolution: {integrity: sha512-Z8liT59nSKynZceIN5tba7cZuM15vOuSGTOGNhgcaLlTMtqp/Jlo3wVvvLn9YEIe/V+nwlq5ydLrjPl4I6ZLYA==} hasBin: true dependencies: - "@babel/runtime": 7.18.3 - "@manypkg/get-packages": 1.1.3 + '@babel/runtime': 7.18.3 + '@manypkg/get-packages': 1.1.3 chalk: 2.4.2 detect-indent: 6.1.0 find-up: 4.1.0 @@ -4435,17 +3897,14 @@ packages: dev: false /@changesets/apply-release-plan/6.0.0: - resolution: - { - integrity: sha512-gp6nIdVdfYdwKww2+f8whckKmvfE4JEm4jJgBhTmooi0uzHWhnxvk6JIzQi89qEAMINN0SeVNnXiAtbFY0Mj3w==, - } - dependencies: - "@babel/runtime": 7.18.3 - "@changesets/config": 2.0.0 - "@changesets/get-version-range-type": 0.3.2 - "@changesets/git": 1.3.2 - "@changesets/types": 5.0.0 - "@manypkg/get-packages": 1.1.3 + resolution: {integrity: sha512-gp6nIdVdfYdwKww2+f8whckKmvfE4JEm4jJgBhTmooi0uzHWhnxvk6JIzQi89qEAMINN0SeVNnXiAtbFY0Mj3w==} + dependencies: + '@babel/runtime': 7.18.3 + '@changesets/config': 2.0.0 + '@changesets/get-version-range-type': 0.3.2 + '@changesets/git': 1.3.2 + '@changesets/types': 5.0.0 + '@manypkg/get-packages': 1.1.3 detect-indent: 6.1.0 fs-extra: 7.0.1 lodash.startcase: 4.4.0 @@ -4456,52 +3915,43 @@ packages: dev: false /@changesets/assemble-release-plan/5.1.3: - resolution: - { - integrity: sha512-I+TTkUoqvxBEuDLoJfJYKDXIJ+nyiTbVJ8KGhpXEsLq4N/ms/AStSbouJwF2d/p3cB+RCPr5+gXh31GSN4kA7w==, - } - dependencies: - "@babel/runtime": 7.18.3 - "@changesets/errors": 0.1.4 - "@changesets/get-dependents-graph": 1.3.2 - "@changesets/types": 5.0.0 - "@manypkg/get-packages": 1.1.3 + resolution: {integrity: sha512-I+TTkUoqvxBEuDLoJfJYKDXIJ+nyiTbVJ8KGhpXEsLq4N/ms/AStSbouJwF2d/p3cB+RCPr5+gXh31GSN4kA7w==} + dependencies: + '@babel/runtime': 7.18.3 + '@changesets/errors': 0.1.4 + '@changesets/get-dependents-graph': 1.3.2 + '@changesets/types': 5.0.0 + '@manypkg/get-packages': 1.1.3 semver: 5.7.1 dev: false /@changesets/changelog-git/0.1.11: - resolution: - { - integrity: sha512-sWJvAm+raRPeES9usNpZRkooeEB93lOpUN0Lmjz5vhVAb7XGIZrHEJ93155bpE1S0c4oJ5Di9ZWgzIwqhWP/Wg==, - } + resolution: {integrity: sha512-sWJvAm+raRPeES9usNpZRkooeEB93lOpUN0Lmjz5vhVAb7XGIZrHEJ93155bpE1S0c4oJ5Di9ZWgzIwqhWP/Wg==} dependencies: - "@changesets/types": 5.0.0 + '@changesets/types': 5.0.0 dev: false /@changesets/cli/2.22.0: - resolution: - { - integrity: sha512-4bA3YoBkd5cm5WUxmrR2N9WYE7EeQcM+R3bVYMUj2NvffkQVpU3ckAI+z8UICoojq+HRl2OEwtz+S5UBmYY4zw==, - } + resolution: {integrity: sha512-4bA3YoBkd5cm5WUxmrR2N9WYE7EeQcM+R3bVYMUj2NvffkQVpU3ckAI+z8UICoojq+HRl2OEwtz+S5UBmYY4zw==} hasBin: true dependencies: - "@babel/runtime": 7.18.3 - "@changesets/apply-release-plan": 6.0.0 - "@changesets/assemble-release-plan": 5.1.3 - "@changesets/changelog-git": 0.1.11 - "@changesets/config": 2.0.0 - "@changesets/errors": 0.1.4 - "@changesets/get-dependents-graph": 1.3.2 - "@changesets/get-release-plan": 3.0.9 - "@changesets/git": 1.3.2 - "@changesets/logger": 0.0.5 - "@changesets/pre": 1.0.11 - "@changesets/read": 0.5.5 - "@changesets/types": 5.0.0 - "@changesets/write": 0.1.8 - "@manypkg/get-packages": 1.1.3 - "@types/is-ci": 3.0.0 - "@types/semver": 6.2.3 + '@babel/runtime': 7.18.3 + '@changesets/apply-release-plan': 6.0.0 + '@changesets/assemble-release-plan': 5.1.3 + '@changesets/changelog-git': 0.1.11 + '@changesets/config': 2.0.0 + '@changesets/errors': 0.1.4 + '@changesets/get-dependents-graph': 1.3.2 + '@changesets/get-release-plan': 3.0.9 + '@changesets/git': 1.3.2 + '@changesets/logger': 0.0.5 + '@changesets/pre': 1.0.11 + '@changesets/read': 0.5.5 + '@changesets/types': 5.0.0 + '@changesets/write': 0.1.8 + '@manypkg/get-packages': 1.1.3 + '@types/is-ci': 3.0.0 + '@types/semver': 6.2.3 chalk: 2.4.2 enquirer: 2.3.6 external-editor: 3.1.0 @@ -4520,217 +3970,167 @@ packages: dev: false /@changesets/config/2.0.0: - resolution: - { - integrity: sha512-r5bIFY6CN3K6SQ+HZbjyE3HXrBIopONR47mmX7zUbORlybQXtympq9rVAOzc0Oflbap8QeIexc+hikfZoREXDg==, - } - dependencies: - "@changesets/errors": 0.1.4 - "@changesets/get-dependents-graph": 1.3.2 - "@changesets/logger": 0.0.5 - "@changesets/types": 5.0.0 - "@manypkg/get-packages": 1.1.3 + resolution: {integrity: sha512-r5bIFY6CN3K6SQ+HZbjyE3HXrBIopONR47mmX7zUbORlybQXtympq9rVAOzc0Oflbap8QeIexc+hikfZoREXDg==} + dependencies: + '@changesets/errors': 0.1.4 + '@changesets/get-dependents-graph': 1.3.2 + '@changesets/logger': 0.0.5 + '@changesets/types': 5.0.0 + '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 micromatch: 4.0.5 dev: false /@changesets/errors/0.1.4: - resolution: - { - integrity: sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==, - } + resolution: {integrity: sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==} dependencies: extendable-error: 0.1.7 dev: false /@changesets/get-dependents-graph/1.3.2: - resolution: - { - integrity: sha512-tsqA6qZRB86SQuApSoDvI8yEWdyIlo/WLI4NUEdhhxLMJ0dapdeT6rUZRgSZzK1X2nv5YwR0MxQBbDAiDibKrg==, - } + resolution: {integrity: sha512-tsqA6qZRB86SQuApSoDvI8yEWdyIlo/WLI4NUEdhhxLMJ0dapdeT6rUZRgSZzK1X2nv5YwR0MxQBbDAiDibKrg==} dependencies: - "@changesets/types": 5.0.0 - "@manypkg/get-packages": 1.1.3 + '@changesets/types': 5.0.0 + '@manypkg/get-packages': 1.1.3 chalk: 2.4.2 fs-extra: 7.0.1 semver: 5.7.1 dev: false /@changesets/get-release-plan/3.0.9: - resolution: - { - integrity: sha512-5C1r4DcOjVxcCvPmXpymeyT6mdSTLCNiB2L+5uf19BRkDKndJdIQorH5Fe2XBR2nHUcZQFT+2TXDzCepat969w==, - } + resolution: {integrity: sha512-5C1r4DcOjVxcCvPmXpymeyT6mdSTLCNiB2L+5uf19BRkDKndJdIQorH5Fe2XBR2nHUcZQFT+2TXDzCepat969w==} dependencies: - "@babel/runtime": 7.18.3 - "@changesets/assemble-release-plan": 5.1.3 - "@changesets/config": 2.0.0 - "@changesets/pre": 1.0.11 - "@changesets/read": 0.5.5 - "@changesets/types": 5.0.0 - "@manypkg/get-packages": 1.1.3 + '@babel/runtime': 7.18.3 + '@changesets/assemble-release-plan': 5.1.3 + '@changesets/config': 2.0.0 + '@changesets/pre': 1.0.11 + '@changesets/read': 0.5.5 + '@changesets/types': 5.0.0 + '@manypkg/get-packages': 1.1.3 dev: false /@changesets/get-version-range-type/0.3.2: - resolution: - { - integrity: sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==, - } + resolution: {integrity: sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==} dev: false /@changesets/git/1.3.2: - resolution: - { - integrity: sha512-p5UL+urAg0Nnpt70DLiBe2iSsMcDubTo9fTOD/61krmcJ466MGh71OHwdAwu1xG5+NKzeysdy1joRTg8CXcEXA==, - } - dependencies: - "@babel/runtime": 7.18.3 - "@changesets/errors": 0.1.4 - "@changesets/types": 5.0.0 - "@manypkg/get-packages": 1.1.3 + resolution: {integrity: sha512-p5UL+urAg0Nnpt70DLiBe2iSsMcDubTo9fTOD/61krmcJ466MGh71OHwdAwu1xG5+NKzeysdy1joRTg8CXcEXA==} + dependencies: + '@babel/runtime': 7.18.3 + '@changesets/errors': 0.1.4 + '@changesets/types': 5.0.0 + '@manypkg/get-packages': 1.1.3 is-subdir: 1.2.0 spawndamnit: 2.0.0 dev: false /@changesets/logger/0.0.5: - resolution: - { - integrity: sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw==, - } + resolution: {integrity: sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw==} dependencies: chalk: 2.4.2 dev: false /@changesets/parse/0.3.13: - resolution: - { - integrity: sha512-wh9Ifa0dungY6d2nMz6XxF6FZ/1I7j+mEgPAqrIyKS64nifTh1Ua82qKKMMK05CL7i4wiB2NYc3SfnnCX3RVeA==, - } + resolution: {integrity: sha512-wh9Ifa0dungY6d2nMz6XxF6FZ/1I7j+mEgPAqrIyKS64nifTh1Ua82qKKMMK05CL7i4wiB2NYc3SfnnCX3RVeA==} dependencies: - "@changesets/types": 5.0.0 + '@changesets/types': 5.0.0 js-yaml: 3.14.1 dev: false /@changesets/pre/1.0.11: - resolution: - { - integrity: sha512-CXZnt4SV9waaC9cPLm7818+SxvLKIDHUxaiTXnJYDp1c56xIexx1BNfC1yMuOdzO2a3rAIcZua5Odxr3dwSKfg==, - } - dependencies: - "@babel/runtime": 7.18.3 - "@changesets/errors": 0.1.4 - "@changesets/types": 5.0.0 - "@manypkg/get-packages": 1.1.3 + resolution: {integrity: sha512-CXZnt4SV9waaC9cPLm7818+SxvLKIDHUxaiTXnJYDp1c56xIexx1BNfC1yMuOdzO2a3rAIcZua5Odxr3dwSKfg==} + dependencies: + '@babel/runtime': 7.18.3 + '@changesets/errors': 0.1.4 + '@changesets/types': 5.0.0 + '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 dev: false /@changesets/read/0.5.5: - resolution: - { - integrity: sha512-bzonrPWc29Tsjvgh+8CqJ0apQOwWim0zheeD4ZK44ApSa/GudnZJTODtA3yNOOuQzeZmL0NUebVoHIurtIkA7w==, - } - dependencies: - "@babel/runtime": 7.18.3 - "@changesets/git": 1.3.2 - "@changesets/logger": 0.0.5 - "@changesets/parse": 0.3.13 - "@changesets/types": 5.0.0 + resolution: {integrity: sha512-bzonrPWc29Tsjvgh+8CqJ0apQOwWim0zheeD4ZK44ApSa/GudnZJTODtA3yNOOuQzeZmL0NUebVoHIurtIkA7w==} + dependencies: + '@babel/runtime': 7.18.3 + '@changesets/git': 1.3.2 + '@changesets/logger': 0.0.5 + '@changesets/parse': 0.3.13 + '@changesets/types': 5.0.0 chalk: 2.4.2 fs-extra: 7.0.1 p-filter: 2.1.0 dev: false /@changesets/types/0.4.0: - resolution: - { - integrity: sha512-TclHHKDVYQ8rJGZgVeWiF7c91yWzTTWdPagltgutelGu/Psup5PQlUq6svx7S8suj+jXcaE34yEEsfIvzXXB2Q==, - } + resolution: {integrity: sha512-TclHHKDVYQ8rJGZgVeWiF7c91yWzTTWdPagltgutelGu/Psup5PQlUq6svx7S8suj+jXcaE34yEEsfIvzXXB2Q==} dev: false /@changesets/types/4.1.0: - resolution: - { - integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==, - } + resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} dev: false /@changesets/types/5.0.0: - resolution: - { - integrity: sha512-IT1kBLSbAgTS4WtpU6P5ko054hq12vk4tgeIFRVE7Vnm4a/wgbNvBalgiKP0MjEXbCkZbItiGQHkCGxYWR55sA==, - } + resolution: {integrity: sha512-IT1kBLSbAgTS4WtpU6P5ko054hq12vk4tgeIFRVE7Vnm4a/wgbNvBalgiKP0MjEXbCkZbItiGQHkCGxYWR55sA==} dev: false /@changesets/write/0.1.8: - resolution: - { - integrity: sha512-oIHeFVMuP6jf0TPnKPpaFpvvAf3JBc+s2pmVChbeEgQTBTALoF51Z9kqxQfG4XONZPHZnqkmy564c7qohhhhTQ==, - } + resolution: {integrity: sha512-oIHeFVMuP6jf0TPnKPpaFpvvAf3JBc+s2pmVChbeEgQTBTALoF51Z9kqxQfG4XONZPHZnqkmy564c7qohhhhTQ==} dependencies: - "@babel/runtime": 7.18.3 - "@changesets/types": 5.0.0 + '@babel/runtime': 7.18.3 + '@changesets/types': 5.0.0 fs-extra: 7.0.1 human-id: 1.0.2 prettier: 1.19.1 dev: false /@chevrotain/types/9.1.0: - resolution: - { - integrity: sha512-3hbCD1CThkv9gnaSIPq0GUXwKni68e0ph6jIHwCvcWiQ4JB2xi8bFxBain0RF04qHUWuDjgnZLj4rLgimuGO+g==, - } + resolution: {integrity: sha512-3hbCD1CThkv9gnaSIPq0GUXwKni68e0ph6jIHwCvcWiQ4JB2xi8bFxBain0RF04qHUWuDjgnZLj4rLgimuGO+g==} dev: false /@chevrotain/utils/9.1.0: - resolution: - { - integrity: sha512-llLJZ8OAlZrjGlBvamm6Zdo/HmGAcCLq5gx7cSwUX8No+n/8ip+oaC4x33IdZIif8+Rh5dQUIZXmfbSghiOmNQ==, - } + resolution: {integrity: sha512-llLJZ8OAlZrjGlBvamm6Zdo/HmGAcCLq5gx7cSwUX8No+n/8ip+oaC4x33IdZIif8+Rh5dQUIZXmfbSghiOmNQ==} dev: false /@cspotcode/source-map-support/0.8.1: - resolution: - { - integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} dependencies: - "@jridgewell/trace-mapping": 0.3.9 + '@jridgewell/trace-mapping': 0.3.9 /@cush/relative/1.0.0: - resolution: - { - integrity: sha512-RpfLEtTlyIxeNPGKcokS+p3BZII/Q3bYxryFRglh5H3A3T8q9fsLYm72VYAMEOOIBLEa8o93kFLiBDUWKrwXZA==, - } + resolution: {integrity: sha512-RpfLEtTlyIxeNPGKcokS+p3BZII/Q3bYxryFRglh5H3A3T8q9fsLYm72VYAMEOOIBLEa8o93kFLiBDUWKrwXZA==} dev: true /@esbuild/android-arm/0.15.15: - resolution: - { - integrity: sha512-JJjZjJi2eBL01QJuWjfCdZxcIgot+VoK6Fq7eKF9w4YHm9hwl7nhBR1o2Wnt/WcANk5l9SkpvrldW1PLuXxcbw==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-JJjZjJi2eBL01QJuWjfCdZxcIgot+VoK6Fq7eKF9w4YHm9hwl7nhBR1o2Wnt/WcANk5l9SkpvrldW1PLuXxcbw==} + engines: {node: '>=12'} cpu: [arm] os: [android] requiresBuild: true optional: true /@esbuild/linux-loong64/0.15.15: - resolution: - { - integrity: sha512-lhz6UNPMDXUhtXSulw8XlFAtSYO26WmHQnCi2Lg2p+/TMiJKNLtZCYUxV4wG6rZMzXmr8InGpNwk+DLT2Hm0PA==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-lhz6UNPMDXUhtXSulw8XlFAtSYO26WmHQnCi2Lg2p+/TMiJKNLtZCYUxV4wG6rZMzXmr8InGpNwk+DLT2Hm0PA==} + engines: {node: '>=12'} cpu: [loong64] os: [linux] requiresBuild: true optional: true + /@eslint-community/eslint-utils/4.4.0_eslint@8.40.0: + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.40.0 + eslint-visitor-keys: 3.4.1 + + /@eslint-community/regexpp/4.5.1: + resolution: {integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + /@eslint/eslintrc/1.3.3: - resolution: - { - integrity: sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==, - } + resolution: {integrity: sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 @@ -4746,10 +4146,7 @@ packages: - supports-color /@eslint/eslintrc/1.3.3_supports-color@8.1.1: - resolution: - { - integrity: sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==, - } + resolution: {integrity: sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 @@ -4765,30 +4162,41 @@ packages: - supports-color dev: true + /@eslint/eslintrc/2.0.3: + resolution: {integrity: sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.5.2 + globals: 13.20.0 + ignore: 5.2.0 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + /@eslint/js/8.40.0: + resolution: {integrity: sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@hapi/hoek/9.3.0: - resolution: - { - integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==, - } + resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} dev: false /@hapi/topo/5.1.0: - resolution: - { - integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==, - } + resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} dependencies: - "@hapi/hoek": 9.3.0 + '@hapi/hoek': 9.3.0 dev: false /@hookform/error-message/2.0.0_uitc6c22ofsl6jhrdjqyu3was4: - resolution: - { - integrity: sha512-Y90nHzjgL2MP7GFy75kscdvxrCTjtyxGmOLLxX14nd08OXRIh9lMH/y9Kpdo0p1IPowJBiZMHyueg7p+yrqynQ==, - } + resolution: {integrity: sha512-Y90nHzjgL2MP7GFy75kscdvxrCTjtyxGmOLLxX14nd08OXRIh9lMH/y9Kpdo0p1IPowJBiZMHyueg7p+yrqynQ==} peerDependencies: - react: ">=16.8.0" - react-dom: ">=16.8.0" + react: '>=16.8.0' + react-dom: '>=16.8.0' react-hook-form: ^7.0.0 dependencies: react: 18.2.0 @@ -4797,10 +4205,7 @@ packages: dev: false /@hookform/resolvers/2.9.10_react-hook-form@7.39.1: - resolution: - { - integrity: sha512-JIL1DgJIlH9yuxcNGtyhsWX/PgNltz+5Gr6+8SX9fhXc/hPbEIk6wPI82nhgvp3uUb6ZfAM5mqg/x7KR7NAb+A==, - } + resolution: {integrity: sha512-JIL1DgJIlH9yuxcNGtyhsWX/PgNltz+5Gr6+8SX9fhXc/hPbEIk6wPI82nhgvp3uUb6ZfAM5mqg/x7KR7NAb+A==} peerDependencies: react-hook-form: ^7.0.0 dependencies: @@ -4808,51 +4213,46 @@ packages: dev: false /@humanwhocodes/config-array/0.11.7: - resolution: - { - integrity: sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==, - } - engines: {node: ">=10.10.0"} + resolution: {integrity: sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==} + engines: {node: '>=10.10.0'} dependencies: - "@humanwhocodes/object-schema": 1.2.1 + '@humanwhocodes/object-schema': 1.2.1 debug: 4.3.3 minimatch: 3.1.2 transitivePeerDependencies: - supports-color /@humanwhocodes/config-array/0.11.7_supports-color@8.1.1: - resolution: - { - integrity: sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==, - } - engines: {node: ">=10.10.0"} + resolution: {integrity: sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==} + engines: {node: '>=10.10.0'} dependencies: - "@humanwhocodes/object-schema": 1.2.1 + '@humanwhocodes/object-schema': 1.2.1 debug: 4.3.3_supports-color@8.1.1 minimatch: 3.1.2 transitivePeerDependencies: - supports-color dev: true + /@humanwhocodes/config-array/0.11.8: + resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + /@humanwhocodes/module-importer/1.0.1: - resolution: - { - integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==, - } - engines: {node: ">=12.22"} + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} /@humanwhocodes/object-schema/1.2.1: - resolution: - { - integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==, - } + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} /@istanbuljs/load-nyc-config/1.1.0: - resolution: - { - integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} dependencies: camelcase: 5.3.1 find-up: 4.1.0 @@ -4861,31 +4261,22 @@ packages: resolve-from: 5.0.0 /@istanbuljs/schema/0.1.3: - resolution: - { - integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} /@jest/console/29.2.1: - resolution: - { - integrity: sha512-MF8Adcw+WPLZGBiNxn76DOuczG3BhODTcMlDCA4+cFi41OkaY/lyI0XUUhi73F88Y+7IHoGmD80pN5CtxQUdSw==, - } + resolution: {integrity: sha512-MF8Adcw+WPLZGBiNxn76DOuczG3BhODTcMlDCA4+cFi41OkaY/lyI0XUUhi73F88Y+7IHoGmD80pN5CtxQUdSw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - "@jest/types": 29.2.1 - "@types/node": 18.11.9 + '@jest/types': 29.2.1 + '@types/node': 18.11.9 chalk: 4.1.2 jest-message-util: 29.2.1 jest-util: 29.2.1 slash: 3.0.0 /@jest/core/29.3.0_ts-node@10.9.1: - resolution: - { - integrity: sha512-5DyNvV8452bwqcYyXHCYaAD8UrTiWosrhBY+rc0MBMyXyDzcIL+w5gdlCYhlHbNsHoWnf4nUbRmg++LWfWVtMQ==, - } + resolution: {integrity: sha512-5DyNvV8452bwqcYyXHCYaAD8UrTiWosrhBY+rc0MBMyXyDzcIL+w5gdlCYhlHbNsHoWnf4nUbRmg++LWfWVtMQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -4893,12 +4284,12 @@ packages: node-notifier: optional: true dependencies: - "@jest/console": 29.2.1 - "@jest/reporters": 29.3.0 - "@jest/test-result": 29.2.1 - "@jest/transform": 29.3.0 - "@jest/types": 29.2.1 - "@types/node": 18.11.9 + '@jest/console': 29.2.1 + '@jest/reporters': 29.3.0 + '@jest/test-result': 29.2.1 + '@jest/transform': 29.3.0 + '@jest/types': 29.2.1 + '@types/node': 18.11.9 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.5.0 @@ -4926,31 +4317,22 @@ packages: - ts-node /@jest/environment/29.3.0: - resolution: - { - integrity: sha512-8wgn3br51bx+7rgC8FOKmAD62Q39iswdiy5/p6acoekp/9Bb/IQbh3zydOrnGp74LwStSrKgpQSKBlOKlAQq0g==, - } + resolution: {integrity: sha512-8wgn3br51bx+7rgC8FOKmAD62Q39iswdiy5/p6acoekp/9Bb/IQbh3zydOrnGp74LwStSrKgpQSKBlOKlAQq0g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - "@jest/fake-timers": 29.3.0 - "@jest/types": 29.2.1 - "@types/node": 18.11.9 + '@jest/fake-timers': 29.3.0 + '@jest/types': 29.2.1 + '@types/node': 18.11.9 jest-mock: 29.3.0 /@jest/expect-utils/29.2.2: - resolution: - { - integrity: sha512-vwnVmrVhTmGgQzyvcpze08br91OL61t9O0lJMDyb6Y/D8EKQ9V7rGUb/p7PDt0GPzK0zFYqXWFo4EO2legXmkg==, - } + resolution: {integrity: sha512-vwnVmrVhTmGgQzyvcpze08br91OL61t9O0lJMDyb6Y/D8EKQ9V7rGUb/p7PDt0GPzK0zFYqXWFo4EO2legXmkg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-get-type: 29.2.0 /@jest/expect/29.3.0: - resolution: - { - integrity: sha512-Lz/3x4Se5g6nBuLjTO+xE8D4OXY9fFmosZPwkXXZUJUsp9r9seN81cJa54wOGr1QjCQnhngMqclblhM4X/hcCg==, - } + resolution: {integrity: sha512-Lz/3x4Se5g6nBuLjTO+xE8D4OXY9fFmosZPwkXXZUJUsp9r9seN81cJa54wOGr1QjCQnhngMqclblhM4X/hcCg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: expect: 29.3.0 @@ -4959,38 +4341,29 @@ packages: - supports-color /@jest/fake-timers/29.3.0: - resolution: - { - integrity: sha512-SzmWtN6Rld+xebMRGuWeMGhytc7qHnYfFk1Zd/1QavQWsFOmA9SgtvGHCBue1wXQhdDMaSIm1aPGj2Zmyrr1Zg==, - } + resolution: {integrity: sha512-SzmWtN6Rld+xebMRGuWeMGhytc7qHnYfFk1Zd/1QavQWsFOmA9SgtvGHCBue1wXQhdDMaSIm1aPGj2Zmyrr1Zg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - "@jest/types": 29.2.1 - "@sinonjs/fake-timers": 9.1.2 - "@types/node": 18.11.9 + '@jest/types': 29.2.1 + '@sinonjs/fake-timers': 9.1.2 + '@types/node': 18.11.9 jest-message-util: 29.2.1 jest-mock: 29.3.0 jest-util: 29.2.1 /@jest/globals/29.3.0: - resolution: - { - integrity: sha512-okYDVzYNrt/4ysR8XnX6u0I1bGG4kmfdXtUu7kwWHZ9OP13RCjmphgve0tfOrNluwksWvOPYS1f/HOrFTHLygQ==, - } + resolution: {integrity: sha512-okYDVzYNrt/4ysR8XnX6u0I1bGG4kmfdXtUu7kwWHZ9OP13RCjmphgve0tfOrNluwksWvOPYS1f/HOrFTHLygQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - "@jest/environment": 29.3.0 - "@jest/expect": 29.3.0 - "@jest/types": 29.2.1 + '@jest/environment': 29.3.0 + '@jest/expect': 29.3.0 + '@jest/types': 29.2.1 jest-mock: 29.3.0 transitivePeerDependencies: - supports-color /@jest/reporters/29.3.0: - resolution: - { - integrity: sha512-MV76tB3Kd80vcv2yMDZfQpMkwkHaY9hlvVhCtHXkVRCWwN+SX3EOmCdX8pT/X4Xh+NusA7l2Rc3yhx4q5p3+Fg==, - } + resolution: {integrity: sha512-MV76tB3Kd80vcv2yMDZfQpMkwkHaY9hlvVhCtHXkVRCWwN+SX3EOmCdX8pT/X4Xh+NusA7l2Rc3yhx4q5p3+Fg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -4998,13 +4371,13 @@ packages: node-notifier: optional: true dependencies: - "@bcoe/v8-coverage": 0.2.3 - "@jest/console": 29.2.1 - "@jest/test-result": 29.2.1 - "@jest/transform": 29.3.0 - "@jest/types": 29.2.1 - "@jridgewell/trace-mapping": 0.3.17 - "@types/node": 18.11.9 + '@bcoe/v8-coverage': 0.2.3 + '@jest/console': 29.2.1 + '@jest/test-result': 29.2.1 + '@jest/transform': 29.3.0 + '@jest/types': 29.2.1 + '@jridgewell/trace-mapping': 0.3.17 + '@types/node': 18.11.9 chalk: 4.1.2 collect-v8-coverage: 1.0.1 exit: 0.1.2 @@ -5026,59 +4399,44 @@ packages: - supports-color /@jest/schemas/29.0.0: - resolution: - { - integrity: sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==, - } + resolution: {integrity: sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - "@sinclair/typebox": 0.24.51 + '@sinclair/typebox': 0.24.51 /@jest/source-map/29.2.0: - resolution: - { - integrity: sha512-1NX9/7zzI0nqa6+kgpSdKPK+WU1p+SJk3TloWZf5MzPbxri9UEeXX5bWZAPCzbQcyuAzubcdUHA7hcNznmRqWQ==, - } + resolution: {integrity: sha512-1NX9/7zzI0nqa6+kgpSdKPK+WU1p+SJk3TloWZf5MzPbxri9UEeXX5bWZAPCzbQcyuAzubcdUHA7hcNznmRqWQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - "@jridgewell/trace-mapping": 0.3.17 + '@jridgewell/trace-mapping': 0.3.17 callsites: 3.1.0 graceful-fs: 4.2.10 /@jest/test-result/29.2.1: - resolution: - { - integrity: sha512-lS4+H+VkhbX6z64tZP7PAUwPqhwj3kbuEHcaLuaBuB+riyaX7oa1txe0tXgrFj5hRWvZKvqO7LZDlNWeJ7VTPA==, - } + resolution: {integrity: sha512-lS4+H+VkhbX6z64tZP7PAUwPqhwj3kbuEHcaLuaBuB+riyaX7oa1txe0tXgrFj5hRWvZKvqO7LZDlNWeJ7VTPA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - "@jest/console": 29.2.1 - "@jest/types": 29.2.1 - "@types/istanbul-lib-coverage": 2.0.4 + '@jest/console': 29.2.1 + '@jest/types': 29.2.1 + '@types/istanbul-lib-coverage': 2.0.4 collect-v8-coverage: 1.0.1 /@jest/test-sequencer/29.3.0: - resolution: - { - integrity: sha512-XQlTP/S6Yf6NKV0Mt4oopFKyDxiEkDMD7hIFcCTeltKQszE0Z+LI5KLukwNW6Qxr1YzaZ/s6PlKJusiCLJNTcw==, - } + resolution: {integrity: sha512-XQlTP/S6Yf6NKV0Mt4oopFKyDxiEkDMD7hIFcCTeltKQszE0Z+LI5KLukwNW6Qxr1YzaZ/s6PlKJusiCLJNTcw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - "@jest/test-result": 29.2.1 + '@jest/test-result': 29.2.1 graceful-fs: 4.2.10 jest-haste-map: 29.3.0 slash: 3.0.0 /@jest/transform/29.3.0: - resolution: - { - integrity: sha512-4T8h61ItCakAlJkdYa7XVWP3r39QldlCeOSNmRpiJisi5PrrlzwZdpJDIH13ZZjh+MlSPQ2cq8YbUs3TuH+tRA==, - } + resolution: {integrity: sha512-4T8h61ItCakAlJkdYa7XVWP3r39QldlCeOSNmRpiJisi5PrrlzwZdpJDIH13ZZjh+MlSPQ2cq8YbUs3TuH+tRA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - "@babel/core": 7.20.2 - "@jest/types": 29.2.1 - "@jridgewell/trace-mapping": 0.3.17 + '@babel/core': 7.20.2 + '@jest/types': 29.2.1 + '@jridgewell/trace-mapping': 0.3.17 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 convert-source-map: 2.0.0 @@ -5095,131 +4453,89 @@ packages: - supports-color /@jest/types/27.5.1: - resolution: - { - integrity: sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==, - } + resolution: {integrity: sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - "@types/istanbul-lib-coverage": 2.0.4 - "@types/istanbul-reports": 3.0.1 - "@types/node": 18.11.9 - "@types/yargs": 16.0.4 + '@types/istanbul-lib-coverage': 2.0.4 + '@types/istanbul-reports': 3.0.1 + '@types/node': 18.11.9 + '@types/yargs': 16.0.4 chalk: 4.1.2 dev: true /@jest/types/29.2.1: - resolution: - { - integrity: sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw==, - } + resolution: {integrity: sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - "@jest/schemas": 29.0.0 - "@types/istanbul-lib-coverage": 2.0.4 - "@types/istanbul-reports": 3.0.1 - "@types/node": 18.11.9 - "@types/yargs": 17.0.13 + '@jest/schemas': 29.0.0 + '@types/istanbul-lib-coverage': 2.0.4 + '@types/istanbul-reports': 3.0.1 + '@types/node': 18.11.9 + '@types/yargs': 17.0.13 chalk: 4.1.2 /@jridgewell/gen-mapping/0.1.1: - resolution: - { - integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==, - } - engines: {node: ">=6.0.0"} + resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} + engines: {node: '>=6.0.0'} dependencies: - "@jridgewell/set-array": 1.1.1 - "@jridgewell/sourcemap-codec": 1.4.13 + '@jridgewell/set-array': 1.1.1 + '@jridgewell/sourcemap-codec': 1.4.13 /@jridgewell/gen-mapping/0.3.1: - resolution: - { - integrity: sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==, - } - engines: {node: ">=6.0.0"} + resolution: {integrity: sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==} + engines: {node: '>=6.0.0'} dependencies: - "@jridgewell/set-array": 1.1.1 - "@jridgewell/sourcemap-codec": 1.4.13 - "@jridgewell/trace-mapping": 0.3.11 + '@jridgewell/set-array': 1.1.1 + '@jridgewell/sourcemap-codec': 1.4.13 + '@jridgewell/trace-mapping': 0.3.11 /@jridgewell/gen-mapping/0.3.2: - resolution: - { - integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==, - } - engines: {node: ">=6.0.0"} + resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} + engines: {node: '>=6.0.0'} dependencies: - "@jridgewell/set-array": 1.1.1 - "@jridgewell/sourcemap-codec": 1.4.14 - "@jridgewell/trace-mapping": 0.3.17 + '@jridgewell/set-array': 1.1.1 + '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/trace-mapping': 0.3.17 /@jridgewell/resolve-uri/3.0.7: - resolution: - { - integrity: sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==, - } - engines: {node: ">=6.0.0"} + resolution: {integrity: sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==} + engines: {node: '>=6.0.0'} /@jridgewell/resolve-uri/3.1.0: - resolution: - { - integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==, - } - engines: {node: ">=6.0.0"} + resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} + engines: {node: '>=6.0.0'} /@jridgewell/set-array/1.1.1: - resolution: - { - integrity: sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==, - } - engines: {node: ">=6.0.0"} + resolution: {integrity: sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==} + engines: {node: '>=6.0.0'} /@jridgewell/sourcemap-codec/1.4.13: - resolution: - { - integrity: sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==, - } + resolution: {integrity: sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==} /@jridgewell/sourcemap-codec/1.4.14: - resolution: - { - integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==, - } + resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} /@jridgewell/trace-mapping/0.3.11: - resolution: - { - integrity: sha512-RllI476aSMsxzeI9TtlSMoNTgHDxEmnl6GkkHwhr0vdL8W+0WuesyI8Vd3rBOfrwtPXbPxdT9ADJdiOKgzxPQA==, - } + resolution: {integrity: sha512-RllI476aSMsxzeI9TtlSMoNTgHDxEmnl6GkkHwhr0vdL8W+0WuesyI8Vd3rBOfrwtPXbPxdT9ADJdiOKgzxPQA==} dependencies: - "@jridgewell/resolve-uri": 3.0.7 - "@jridgewell/sourcemap-codec": 1.4.13 + '@jridgewell/resolve-uri': 3.0.7 + '@jridgewell/sourcemap-codec': 1.4.13 /@jridgewell/trace-mapping/0.3.17: - resolution: - { - integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==, - } + resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} dependencies: - "@jridgewell/resolve-uri": 3.1.0 - "@jridgewell/sourcemap-codec": 1.4.14 + '@jridgewell/resolve-uri': 3.1.0 + '@jridgewell/sourcemap-codec': 1.4.14 /@jridgewell/trace-mapping/0.3.9: - resolution: - { - integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==, - } + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} dependencies: - "@jridgewell/resolve-uri": 3.0.7 - "@jridgewell/sourcemap-codec": 1.4.13 + '@jridgewell/resolve-uri': 3.0.7 + '@jridgewell/sourcemap-codec': 1.4.13 /@juanm04/cpx/2.0.1_supports-color@8.1.1: - resolution: - { - integrity: sha512-OaTjKI3ycQnF0Cb4KvLVycB/O8nki2wUYBstmMWW7ocrkFil+YzYO23C+zY321h4p9YxSXCA1Xeg30vtminh6A==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-OaTjKI3ycQnF0Cb4KvLVycB/O8nki2wUYBstmMWW7ocrkFil+YzYO23C+zY321h4p9YxSXCA1Xeg30vtminh6A==} + engines: {node: '>=10'} hasBin: true dependencies: co: 4.6.0 @@ -5239,67 +4555,49 @@ packages: dev: true /@manypkg/find-root/1.1.0: - resolution: - { - integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==, - } + resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} dependencies: - "@babel/runtime": 7.18.3 - "@types/node": 12.20.55 + '@babel/runtime': 7.18.3 + '@types/node': 12.20.55 find-up: 4.1.0 fs-extra: 8.1.0 dev: false /@manypkg/get-packages/1.1.3: - resolution: - { - integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==, - } - dependencies: - "@babel/runtime": 7.18.3 - "@changesets/types": 4.1.0 - "@manypkg/find-root": 1.1.0 + resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} + dependencies: + '@babel/runtime': 7.18.3 + '@changesets/types': 4.1.0 + '@manypkg/find-root': 1.1.0 fs-extra: 8.1.0 globby: 11.1.0 read-yaml-file: 1.1.0 dev: false /@mrleebo/prisma-ast/0.2.6: - resolution: - { - integrity: sha512-Df0gAGmws3sxNMmLviTarBL9znf84QVlVhlx4EPgArrnaVBy8tNQZAI9aSTJHzH0JGj9BVGa0Qz1g3hPt12Kxw==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-Df0gAGmws3sxNMmLviTarBL9znf84QVlVhlx4EPgArrnaVBy8tNQZAI9aSTJHzH0JGj9BVGa0Qz1g3hPt12Kxw==} + engines: {node: '>=10'} dependencies: chevrotain: 9.1.0 dev: false /@mrleebo/prisma-ast/0.4.1: - resolution: - { - integrity: sha512-vk1JBunTocQ8xaVqjgVnDVZ63d8Vm/HpOrFXATsKZI5ufC6ZG7FmRtWwyljLXHzW9C/pLp3kJAKc24oSPOYXgw==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-vk1JBunTocQ8xaVqjgVnDVZ63d8Vm/HpOrFXATsKZI5ufC6ZG7FmRtWwyljLXHzW9C/pLp3kJAKc24oSPOYXgw==} + engines: {node: '>=12'} dependencies: chevrotain: 9.1.0 dev: false /@mrmlnc/readdir-enhanced/2.2.1: - resolution: - { - integrity: sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==} + engines: {node: '>=4'} dependencies: call-me-maybe: 1.0.1 glob-to-regexp: 0.3.0 dev: false /@next/bundle-analyzer/12.0.8: - resolution: - { - integrity: sha512-tRwFyAkJA0h+rwt4exq31T59qo4qwp7vPoR3yC8gIpK/E5NAwafyk40aNpk4OWhiQ2IvJMFutukMzY3xl79NXA==, - } + resolution: {integrity: sha512-tRwFyAkJA0h+rwt4exq31T59qo4qwp7vPoR3yC8gIpK/E5NAwafyk40aNpk4OWhiQ2IvJMFutukMzY3xl79NXA==} dependencies: webpack-bundle-analyzer: 4.3.0 transitivePeerDependencies: @@ -5308,182 +4606,216 @@ packages: dev: true /@next/env/13.3.0: - resolution: - { - integrity: sha512-AjppRV4uG3No7L1plinoTQETH+j2F10TEnrMfzbTUYwze5sBUPveeeBAPZPm8OkJZ1epq9OyYKhZrvbD6/9HCQ==, - } + resolution: {integrity: sha512-AjppRV4uG3No7L1plinoTQETH+j2F10TEnrMfzbTUYwze5sBUPveeeBAPZPm8OkJZ1epq9OyYKhZrvbD6/9HCQ==} + + /@next/env/13.4.1: + resolution: {integrity: sha512-eD6WCBMFjLFooLM19SIhSkWBHtaFrZFfg2Cxnyl3vS3DAdFRfnx5TY2RxlkuKXdIRCC0ySbtK9JXXt8qLCqzZg==} + dev: false /@next/eslint-plugin-next/12.3.1: - resolution: - { - integrity: sha512-sw+lTf6r6P0j+g/n9y4qdWWI2syPqZx+uc0+B/fRENqfR3KpSid6MIKqc9gNwGhJASazEQ5b3w8h4cAET213jw==, - } + resolution: {integrity: sha512-sw+lTf6r6P0j+g/n9y4qdWWI2syPqZx+uc0+B/fRENqfR3KpSid6MIKqc9gNwGhJASazEQ5b3w8h4cAET213jw==} dependencies: glob: 7.1.7 /@next/eslint-plugin-next/13.0.0: - resolution: - { - integrity: sha512-z+gnX4Zizatqatc6f4CQrcC9oN8Us3Vrq/OLyc98h7K/eWctrnV91zFZodmJHUjx0cITY8uYM7LXD7IdYkg3kg==, - } + resolution: {integrity: sha512-z+gnX4Zizatqatc6f4CQrcC9oN8Us3Vrq/OLyc98h7K/eWctrnV91zFZodmJHUjx0cITY8uYM7LXD7IdYkg3kg==} dependencies: glob: 7.1.7 dev: true - /@next/eslint-plugin-next/13.3.4: - resolution: - { - integrity: sha512-mvS+HafOPy31oJbAi920WJXMdjbyb4v5FAMr9PeGZfRIdEcsLkA3mU/ZvmwzovJgP3nAWw2e2yM8iIFW8VpvIA==, - } + /@next/eslint-plugin-next/13.4.1: + resolution: {integrity: sha512-tVPS/2FKlA3ANCRCYZVT5jdbUKasBU8LG6bYqcNhyORDFTlDYa4cAWQJjZ7msIgLwMQIbL8CAsxrOL8maa/4Lg==} + dependencies: + glob: 7.1.7 + dev: false + + /@next/eslint-plugin-next/13.4.2: + resolution: {integrity: sha512-ZeFWgrxwckxTpYM+ANeUL9E7LOGPbZKmI94LJIjbDU69iEIgqd4WD0l2pVbOJMr/+vgoZmJ9Dx1m0WJ7WScXHA==} dependencies: glob: 7.1.7 dev: true /@next/swc-darwin-arm64/13.3.0: - resolution: - { - integrity: sha512-DmIQCNq6JtccLPPBzf0dgh2vzMWt5wjxbP71pCi5EWpWYE3MsP6FcRXi4MlAmFNDQOfcFXR2r7kBeG1LpZUh1w==, - } - engines: {node: ">= 10"} + resolution: {integrity: sha512-DmIQCNq6JtccLPPBzf0dgh2vzMWt5wjxbP71pCi5EWpWYE3MsP6FcRXi4MlAmFNDQOfcFXR2r7kBeG1LpZUh1w==} + engines: {node: '>= 10'} cpu: [arm64] os: [darwin] requiresBuild: true optional: true + /@next/swc-darwin-arm64/13.4.1: + resolution: {integrity: sha512-eF8ARHtYfnoYtDa6xFHriUKA/Mfj/cCbmKb3NofeKhMccs65G6/loZ15a6wYCCx4rPAd6x4t1WmVYtri7EdeBg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + /@next/swc-darwin-x64/13.3.0: - resolution: - { - integrity: sha512-oQoqFa88OGgwnYlnAGHVct618FRI/749se0N3S8t9Bzdv5CRbscnO0RcX901+YnNK4Q6yeiizfgO3b7kogtsZg==, - } - engines: {node: ">= 10"} + resolution: {integrity: sha512-oQoqFa88OGgwnYlnAGHVct618FRI/749se0N3S8t9Bzdv5CRbscnO0RcX901+YnNK4Q6yeiizfgO3b7kogtsZg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + optional: true + + /@next/swc-darwin-x64/13.4.1: + resolution: {integrity: sha512-7cmDgF9tGWTgn5Gw+vP17miJbH4wcraMHDCOHTYWkO/VeKT73dUWG23TNRLfgtCNSPgH4V5B4uLHoZTanx9bAw==} + engines: {node: '>= 10'} cpu: [x64] os: [darwin] requiresBuild: true + dev: false optional: true /@next/swc-linux-arm64-gnu/13.3.0: - resolution: - { - integrity: sha512-Wzz2p/WqAJUqTVoLo6H18WMeAXo3i+9DkPDae4oQG8LMloJ3if4NEZTnOnTUlro6cq+S/W4pTGa97nWTrOjbGw==, - } - engines: {node: ">= 10"} + resolution: {integrity: sha512-Wzz2p/WqAJUqTVoLo6H18WMeAXo3i+9DkPDae4oQG8LMloJ3if4NEZTnOnTUlro6cq+S/W4pTGa97nWTrOjbGw==} + engines: {node: '>= 10'} cpu: [arm64] os: [linux] requiresBuild: true optional: true + /@next/swc-linux-arm64-gnu/13.4.1: + resolution: {integrity: sha512-qwJqmCri2ie8aTtE5gjTSr8S6O8B67KCYgVZhv9gKH44yvc/zXbAY8u23QGULsYOyh1islWE5sWfQNLOj9iryg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + /@next/swc-linux-arm64-musl/13.3.0: - resolution: - { - integrity: sha512-xPVrIQOQo9WXJYgmoTlMnAD/HlR/1e1ZIWGbwIzEirXBVBqMARUulBEIKdC19zuvoJ477qZJgBDCKtKEykCpyQ==, - } - engines: {node: ">= 10"} + resolution: {integrity: sha512-xPVrIQOQo9WXJYgmoTlMnAD/HlR/1e1ZIWGbwIzEirXBVBqMARUulBEIKdC19zuvoJ477qZJgBDCKtKEykCpyQ==} + engines: {node: '>= 10'} cpu: [arm64] os: [linux] requiresBuild: true optional: true + /@next/swc-linux-arm64-musl/13.4.1: + resolution: {integrity: sha512-qcC54tWNGDv/VVIFkazxhqH1Bnagjfs4enzELVRlUOoJPD2BGJTPI7z08pQPbbgxLtRiu8gl2mXvpB8WlOkMeA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + /@next/swc-linux-x64-gnu/13.3.0: - resolution: - { - integrity: sha512-jOFlpGuPD7W2tuXVJP4wt9a3cpNxWAPcloq5EfMJRiXsBBOjLVFZA7boXYxEBzSVgUiVVr1V9T0HFM7pULJ1qA==, - } - engines: {node: ">= 10"} + resolution: {integrity: sha512-jOFlpGuPD7W2tuXVJP4wt9a3cpNxWAPcloq5EfMJRiXsBBOjLVFZA7boXYxEBzSVgUiVVr1V9T0HFM7pULJ1qA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + + /@next/swc-linux-x64-gnu/13.4.1: + resolution: {integrity: sha512-9TeWFlpLsBosZ+tsm/rWBaMwt5It9tPH8m3nawZqFUUrZyGRfGcI67js774vtx0k3rL9qbyY6+3pw9BCVpaYUA==} + engines: {node: '>= 10'} cpu: [x64] os: [linux] requiresBuild: true + dev: false optional: true /@next/swc-linux-x64-musl/13.3.0: - resolution: - { - integrity: sha512-2OwKlzaBgmuet9XYHc3KwsEilzb04F540rlRXkAcjMHL7eCxB7uZIGtsVvKOnQLvC/elrUegwSw1+5f7WmfyOw==, - } - engines: {node: ">= 10"} + resolution: {integrity: sha512-2OwKlzaBgmuet9XYHc3KwsEilzb04F540rlRXkAcjMHL7eCxB7uZIGtsVvKOnQLvC/elrUegwSw1+5f7WmfyOw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + + /@next/swc-linux-x64-musl/13.4.1: + resolution: {integrity: sha512-sNDGaWmSqTS4QRUzw61wl4mVPeSqNIr1OOjLlQTRuyInxMxtqImRqdvzDvFTlDfdeUMU/DZhWGYoHrXLlZXe6A==} + engines: {node: '>= 10'} cpu: [x64] os: [linux] requiresBuild: true + dev: false optional: true /@next/swc-win32-arm64-msvc/13.3.0: - resolution: - { - integrity: sha512-OeHiA6YEvndxT46g+rzFK/MQTfftKxJmzslERMu9LDdC6Kez0bdrgEYed5eXFK2Z1viKZJCGRlhd06rBusyztA==, - } - engines: {node: ">= 10"} + resolution: {integrity: sha512-OeHiA6YEvndxT46g+rzFK/MQTfftKxJmzslERMu9LDdC6Kez0bdrgEYed5eXFK2Z1viKZJCGRlhd06rBusyztA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + optional: true + + /@next/swc-win32-arm64-msvc/13.4.1: + resolution: {integrity: sha512-+CXZC7u1iXdLRudecoUYbhbsXpglYv8KFYsFxKBPn7kg+bk7eJo738wAA4jXIl8grTF2mPdmO93JOQym+BlYGA==} + engines: {node: '>= 10'} cpu: [arm64] os: [win32] requiresBuild: true + dev: false optional: true /@next/swc-win32-ia32-msvc/13.3.0: - resolution: - { - integrity: sha512-4aB7K9mcVK1lYEzpOpqWrXHEZympU3oK65fnNcY1Qc4HLJFLJj8AViuqQd4jjjPNuV4sl8jAwTz3gN5VNGWB7w==, - } - engines: {node: ">= 10"} + resolution: {integrity: sha512-4aB7K9mcVK1lYEzpOpqWrXHEZympU3oK65fnNcY1Qc4HLJFLJj8AViuqQd4jjjPNuV4sl8jAwTz3gN5VNGWB7w==} + engines: {node: '>= 10'} cpu: [ia32] os: [win32] requiresBuild: true optional: true + /@next/swc-win32-ia32-msvc/13.4.1: + resolution: {integrity: sha512-vIoXVVc7UYO68VwVMDKwJC2+HqAZQtCYiVlApyKEeIPIQpz2gpufzGxk1z3/gwrJt/kJ5CDZjlhYDCzd3hdz+g==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false + optional: true + /@next/swc-win32-x64-msvc/13.3.0: - resolution: - { - integrity: sha512-Reer6rkLLcoOvB0dd66+Y7WrWVFH7sEEkF/4bJCIfsSKnTStTYaHtwIJAwbqnt9I392Tqvku0KkoqZOryWV9LQ==, - } - engines: {node: ">= 10"} + resolution: {integrity: sha512-Reer6rkLLcoOvB0dd66+Y7WrWVFH7sEEkF/4bJCIfsSKnTStTYaHtwIJAwbqnt9I392Tqvku0KkoqZOryWV9LQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true + + /@next/swc-win32-x64-msvc/13.4.1: + resolution: {integrity: sha512-n8V5ImLQZibKTu10UUdI3nIeTLkliEXe628qxqW9v8My3BAH2a7H0SaCqkV2OgqFnn8sG1wxKYw9/SNJ632kSA==} + engines: {node: '>= 10'} cpu: [x64] os: [win32] requiresBuild: true + dev: false optional: true /@nodelib/fs.scandir/2.1.5: - resolution: - { - integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, - } - engines: {node: ">= 8"} + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} dependencies: - "@nodelib/fs.stat": 2.0.5 + '@nodelib/fs.stat': 2.0.5 run-parallel: 1.2.0 /@nodelib/fs.stat/1.1.3: - resolution: - { - integrity: sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==, - } - engines: {node: ">= 6"} + resolution: {integrity: sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==} + engines: {node: '>= 6'} dev: false /@nodelib/fs.stat/2.0.5: - resolution: - { - integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, - } - engines: {node: ">= 8"} + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} /@nodelib/fs.walk/1.2.8: - resolution: - { - integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, - } - engines: {node: ">= 8"} + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} dependencies: - "@nodelib/fs.scandir": 2.1.5 + '@nodelib/fs.scandir': 2.1.5 fastq: 1.13.0 /@panva/hkdf/1.0.2: - resolution: - { - integrity: sha512-MSAs9t3Go7GUkMhpKC44T58DJ5KGk2vBo+h1cqQeqlMfdGkxaVB78ZWpv9gYi/g2fa4sopag9gJsNvS8XGgWJA==, - } + resolution: {integrity: sha512-MSAs9t3Go7GUkMhpKC44T58DJ5KGk2vBo+h1cqQeqlMfdGkxaVB78ZWpv9gYi/g2fa4sopag9gJsNvS8XGgWJA==} /@pkgr/utils/2.3.1: - resolution: - { - integrity: sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw==, - } + resolution: {integrity: sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} dependencies: cross-spawn: 7.0.3 @@ -5492,59 +4824,63 @@ packages: picocolors: 1.0.0 tiny-glob: 0.2.9 tslib: 2.4.0 - dev: true /@polka/url/1.0.0-next.21: - resolution: - { - integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==, - } + resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} dev: true + /@prisma/client/4.14.0_prisma@4.14.0: + resolution: {integrity: sha512-MK/XaA2sFdfaOa7I9MjNKz6dxeIEdeZlnpNRoF2w3JuRLlFJLkpp6cD3yaqw2nUUhbrn3Iqe3ZpVV+VuGGil7Q==} + engines: {node: '>=14.17'} + requiresBuild: true + peerDependencies: + prisma: '*' + peerDependenciesMeta: + prisma: + optional: true + dependencies: + '@prisma/engines-version': 4.14.0-67.d9a4c5988f480fa576d43970d5a23641aa77bc9c + prisma: 4.14.0 + dev: false + /@prisma/client/4.6.1_prisma@4.6.1: - resolution: - { - integrity: sha512-M1+NNrMzqaOIxT7PBGcTs3IZo7d1EW/+gVQd4C4gUgWBDGgD9AcIeZnUSidgWClmpMSgVUdnVORjsWWGUameYA==, - } - engines: {node: ">=14.17"} + resolution: {integrity: sha512-M1+NNrMzqaOIxT7PBGcTs3IZo7d1EW/+gVQd4C4gUgWBDGgD9AcIeZnUSidgWClmpMSgVUdnVORjsWWGUameYA==} + engines: {node: '>=14.17'} requiresBuild: true peerDependencies: - prisma: "*" + prisma: '*' peerDependenciesMeta: prisma: optional: true dependencies: - "@prisma/engines-version": 4.6.1-3.694eea289a8462c80264df36757e4fdc129b1b32 + '@prisma/engines-version': 4.6.1-3.694eea289a8462c80264df36757e4fdc129b1b32 prisma: 4.6.1 dev: false + /@prisma/engines-version/4.14.0-67.d9a4c5988f480fa576d43970d5a23641aa77bc9c: + resolution: {integrity: sha512-3jum8/YSudeSN0zGW5qkpz+wAN2V/NYCQ+BPjvHYDfWatLWlQkqy99toX0GysDeaUoBIJg1vaz2yKqiA3CFcQw==} + dev: false + /@prisma/engines-version/4.6.1-3.694eea289a8462c80264df36757e4fdc129b1b32: - resolution: - { - integrity: sha512-HUCmkXAU2jqp2O1RvNtbE+seLGLyJGEABZS/R38rZjSAafAy0WzBuHq+tbZMnD+b5OSCsTVtIPVcuvx1ySxcWQ==, - } + resolution: {integrity: sha512-HUCmkXAU2jqp2O1RvNtbE+seLGLyJGEABZS/R38rZjSAafAy0WzBuHq+tbZMnD+b5OSCsTVtIPVcuvx1ySxcWQ==} + dev: false + + /@prisma/engines/4.14.0: + resolution: {integrity: sha512-PDNlhP/1vyTgmNyiucGqGCdXIp7HIkkvKO50si3y3PcceeHvqtiKPaH1iJdz63jCWMVMbj2MElSxXPOeBvEVIQ==} + requiresBuild: true dev: false /@prisma/engines/4.6.1: - resolution: - { - integrity: sha512-3u2/XxvxB+Q7cMXHnKU0CpBiUK1QWqpgiBv28YDo1zOIJE3FCF8DI2vrp6vuwjGt5h0JGXDSvmSf4D4maVjJdw==, - } + resolution: {integrity: sha512-3u2/XxvxB+Q7cMXHnKU0CpBiUK1QWqpgiBv28YDo1zOIJE3FCF8DI2vrp6vuwjGt5h0JGXDSvmSf4D4maVjJdw==} requiresBuild: true dev: false /@prisma/prisma-fmt-wasm/4.4.0-66.f352a33b70356f46311da8b00d83386dd9f145d6: - resolution: - { - integrity: sha512-Hc2i5nfAt3nLDUkQNWJcKFJaA9Avd5zz6t85w9SW7P0vGtFXScQ+xIu6znbULr9bc0pgTWejY1We2u/7EMxHWw==, - } + resolution: {integrity: sha512-Hc2i5nfAt3nLDUkQNWJcKFJaA9Avd5zz6t85w9SW7P0vGtFXScQ+xIu6znbULr9bc0pgTWejY1We2u/7EMxHWw==} /@rollup/plugin-alias/3.1.9_rollup@2.77.2: - resolution: - { - integrity: sha512-QI5fsEvm9bDzt32k39wpOwZhVzRcL5ydcffUHMyLVaVaLeC70I8TJZ17F1z1eMoLu4E/UOcH9BWVkKpIKdrfiw==, - } - engines: {node: ">=8.0.0"} + resolution: {integrity: sha512-QI5fsEvm9bDzt32k39wpOwZhVzRcL5ydcffUHMyLVaVaLeC70I8TJZ17F1z1eMoLu4E/UOcH9BWVkKpIKdrfiw==} + engines: {node: '>=8.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0 dependencies: @@ -5553,236 +4889,173 @@ packages: dev: true /@rollup/plugin-commonjs/21.1.0_rollup@2.77.2: - resolution: - { - integrity: sha512-6ZtHx3VHIp2ReNNDxHjuUml6ur+WcQ28N1yHgCQwsbNkQg2suhxGMDQGJOn/KuDxKtd1xuZP5xSTwBA4GQ8hbA==, - } - engines: {node: ">= 8.0.0"} + resolution: {integrity: sha512-6ZtHx3VHIp2ReNNDxHjuUml6ur+WcQ28N1yHgCQwsbNkQg2suhxGMDQGJOn/KuDxKtd1xuZP5xSTwBA4GQ8hbA==} + engines: {node: '>= 8.0.0'} peerDependencies: rollup: ^2.38.3 dependencies: - "@rollup/pluginutils": 3.1.0_rollup@2.77.2 + '@rollup/pluginutils': 3.1.0_rollup@2.77.2 commondir: 1.0.1 estree-walker: 2.0.2 glob: 7.2.0 is-reference: 1.2.1 magic-string: 0.25.9 - resolve: 1.22.1 + resolve: 1.22.2 rollup: 2.77.2 dev: true /@rollup/plugin-commonjs/22.0.1_rollup@2.77.2: - resolution: - { - integrity: sha512-dGfEZvdjDHObBiP5IvwTKMVeq/tBZGMBHZFMdIV1ClMM/YoWS34xrHFGfag9SN2ZtMgNZRFruqvxZQEa70O6nQ==, - } - engines: {node: ">= 12.0.0"} + resolution: {integrity: sha512-dGfEZvdjDHObBiP5IvwTKMVeq/tBZGMBHZFMdIV1ClMM/YoWS34xrHFGfag9SN2ZtMgNZRFruqvxZQEa70O6nQ==} + engines: {node: '>= 12.0.0'} peerDependencies: rollup: ^2.68.0 dependencies: - "@rollup/pluginutils": 3.1.0_rollup@2.77.2 + '@rollup/pluginutils': 3.1.0_rollup@2.77.2 commondir: 1.0.1 estree-walker: 2.0.2 glob: 7.2.0 is-reference: 1.2.1 magic-string: 0.25.9 - resolve: 1.22.1 + resolve: 1.22.2 rollup: 2.77.2 dev: true /@rollup/plugin-json/4.1.0_rollup@2.77.2: - resolution: - { - integrity: sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==, - } + resolution: {integrity: sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==} peerDependencies: rollup: ^1.20.0 || ^2.0.0 dependencies: - "@rollup/pluginutils": 3.1.0_rollup@2.77.2 + '@rollup/pluginutils': 3.1.0_rollup@2.77.2 rollup: 2.77.2 dev: true /@rollup/plugin-node-resolve/13.3.0_rollup@2.77.2: - resolution: - { - integrity: sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==, - } - engines: {node: ">= 10.0.0"} + resolution: {integrity: sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==} + engines: {node: '>= 10.0.0'} peerDependencies: rollup: ^2.42.0 dependencies: - "@rollup/pluginutils": 3.1.0_rollup@2.77.2 - "@types/resolve": 1.17.1 + '@rollup/pluginutils': 3.1.0_rollup@2.77.2 + '@types/resolve': 1.17.1 deepmerge: 4.2.2 is-builtin-module: 3.1.0 is-module: 1.0.0 - resolve: 1.22.1 + resolve: 1.22.2 rollup: 2.77.2 dev: true /@rollup/plugin-replace/3.1.0_rollup@2.77.2: - resolution: - { - integrity: sha512-pA3XRUrSKybVYqmH5TqWNZpGxF+VV+1GrYchKgCNIj2vsSOX7CVm2RCtx8p2nrC7xvkziYyK+lSi74T93MU3YA==, - } + resolution: {integrity: sha512-pA3XRUrSKybVYqmH5TqWNZpGxF+VV+1GrYchKgCNIj2vsSOX7CVm2RCtx8p2nrC7xvkziYyK+lSi74T93MU3YA==} peerDependencies: rollup: ^1.20.0 || ^2.0.0 dependencies: - "@rollup/pluginutils": 3.1.0_rollup@2.77.2 + '@rollup/pluginutils': 3.1.0_rollup@2.77.2 magic-string: 0.25.9 rollup: 2.77.2 dev: true /@rollup/plugin-replace/4.0.0_rollup@2.77.2: - resolution: - { - integrity: sha512-+rumQFiaNac9y64OHtkHGmdjm7us9bo1PlbgQfdihQtuNxzjpaB064HbRnewUOggLQxVCCyINfStkgmBeQpv1g==, - } + resolution: {integrity: sha512-+rumQFiaNac9y64OHtkHGmdjm7us9bo1PlbgQfdihQtuNxzjpaB064HbRnewUOggLQxVCCyINfStkgmBeQpv1g==} peerDependencies: rollup: ^1.20.0 || ^2.0.0 dependencies: - "@rollup/pluginutils": 3.1.0_rollup@2.77.2 + '@rollup/pluginutils': 3.1.0_rollup@2.77.2 magic-string: 0.25.9 rollup: 2.77.2 dev: true /@rollup/pluginutils/3.1.0_rollup@2.77.2: - resolution: - { - integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==, - } - engines: {node: ">= 8.0.0"} + resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} + engines: {node: '>= 8.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0 dependencies: - "@types/estree": 0.0.39 + '@types/estree': 0.0.39 estree-walker: 1.0.1 picomatch: 2.3.1 rollup: 2.77.2 dev: true /@rollup/pluginutils/4.2.1: - resolution: - { - integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==, - } - engines: {node: ">= 8.0.0"} + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} + engines: {node: '>= 8.0.0'} dependencies: estree-walker: 2.0.2 picomatch: 2.3.1 dev: true /@rushstack/eslint-patch/1.1.3: - resolution: - { - integrity: sha512-WiBSI6JBIhC6LRIsB2Kwh8DsGTlbBU+mLRxJmAe3LjHTdkDpwIbEOZgoXBbZilk/vlfjK8i6nKRAvIRn1XaIMw==, - } + resolution: {integrity: sha512-WiBSI6JBIhC6LRIsB2Kwh8DsGTlbBU+mLRxJmAe3LjHTdkDpwIbEOZgoXBbZilk/vlfjK8i6nKRAvIRn1XaIMw==} /@selderee/plugin-htmlparser2/0.6.0: - resolution: - { - integrity: sha512-J3jpy002TyBjd4N/p6s+s90eX42H2eRhK3SbsZuvTDv977/E8p2U3zikdiehyJja66do7FlxLomZLPlvl2/xaA==, - } + resolution: {integrity: sha512-J3jpy002TyBjd4N/p6s+s90eX42H2eRhK3SbsZuvTDv977/E8p2U3zikdiehyJja66do7FlxLomZLPlvl2/xaA==} dependencies: domhandler: 4.3.1 selderee: 0.6.0 dev: true /@sideway/address/4.1.4: - resolution: - { - integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==, - } + resolution: {integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==} dependencies: - "@hapi/hoek": 9.3.0 + '@hapi/hoek': 9.3.0 dev: false /@sideway/formula/3.0.0: - resolution: - { - integrity: sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==, - } + resolution: {integrity: sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==} dev: false /@sideway/pinpoint/2.0.0: - resolution: - { - integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==, - } + resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} dev: false /@sinclair/typebox/0.24.51: - resolution: - { - integrity: sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==, - } + resolution: {integrity: sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==} /@sindresorhus/is/0.14.0: - resolution: - { - integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==} + engines: {node: '>=6'} dev: false /@sindresorhus/is/4.6.0: - resolution: - { - integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} dev: false /@sinonjs/commons/1.8.3: - resolution: - { - integrity: sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==, - } + resolution: {integrity: sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==} dependencies: type-detect: 4.0.8 /@sinonjs/fake-timers/9.1.2: - resolution: - { - integrity: sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==, - } + resolution: {integrity: sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==} dependencies: - "@sinonjs/commons": 1.8.3 + '@sinonjs/commons': 1.8.3 /@swc/core-android-arm-eabi/1.3.7: - resolution: - { - integrity: sha512-zvUpTBOUnXDkfp2JXv1T3NfyimxsAnqEfT65gWC/3ZpB/gmc59vqYVko4Pifyvuxo5aVvEdT2gfHlWM/aXwtpg==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-zvUpTBOUnXDkfp2JXv1T3NfyimxsAnqEfT65gWC/3ZpB/gmc59vqYVko4Pifyvuxo5aVvEdT2gfHlWM/aXwtpg==} + engines: {node: '>=10'} cpu: [arm] os: [android] requiresBuild: true dependencies: - "@swc/wasm": 1.2.122 + '@swc/wasm': 1.2.122 dev: false optional: true /@swc/core-android-arm64/1.3.7: - resolution: - { - integrity: sha512-qnh1aYTrIjuFOkgxUYG8SGzpPD92o/w5hrHUy71LfUbHf5HRs7FpMgQXtTGnk33S/uMCvSv7V/ewv+t+N6tlVA==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-qnh1aYTrIjuFOkgxUYG8SGzpPD92o/w5hrHUy71LfUbHf5HRs7FpMgQXtTGnk33S/uMCvSv7V/ewv+t+N6tlVA==} + engines: {node: '>=10'} cpu: [arm64] os: [android] requiresBuild: true dependencies: - "@swc/wasm": 1.2.130 + '@swc/wasm': 1.2.130 dev: false optional: true /@swc/core-darwin-arm64/1.3.7: - resolution: - { - integrity: sha512-q8NgUK/CleCmGYIuskL1sCad8opkfJD/8GWd+MkGSi+MGkExrLMmJftgG5FCj0l/xCHxGGNYj1TCrM/qV6CheA==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-q8NgUK/CleCmGYIuskL1sCad8opkfJD/8GWd+MkGSi+MGkExrLMmJftgG5FCj0l/xCHxGGNYj1TCrM/qV6CheA==} + engines: {node: '>=10'} cpu: [arm64] os: [darwin] requiresBuild: true @@ -5790,11 +5063,8 @@ packages: optional: true /@swc/core-darwin-x64/1.3.7: - resolution: - { - integrity: sha512-dKrJkZYbF7Qi1wQgyVnR1a5Vk8UN7fJ/WlK6pZVJwMvWLoZgYE+U0Nn7RsVB4LmOxHtaJF7eesbGUm2y2NVEwA==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-dKrJkZYbF7Qi1wQgyVnR1a5Vk8UN7fJ/WlK6pZVJwMvWLoZgYE+U0Nn7RsVB4LmOxHtaJF7eesbGUm2y2NVEwA==} + engines: {node: '>=10'} cpu: [x64] os: [darwin] requiresBuild: true @@ -5802,39 +5072,30 @@ packages: optional: true /@swc/core-freebsd-x64/1.3.7: - resolution: - { - integrity: sha512-ENHthc4iFPlBj0xaf2DbJLDzYSBA4QMQEA2HhZoSWWMsqhg8mGZxwgRd6+loROGZ2a5HKMZXIxCev8BbYnE0OA==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-ENHthc4iFPlBj0xaf2DbJLDzYSBA4QMQEA2HhZoSWWMsqhg8mGZxwgRd6+loROGZ2a5HKMZXIxCev8BbYnE0OA==} + engines: {node: '>=10'} cpu: [x64] os: [freebsd] requiresBuild: true dependencies: - "@swc/wasm": 1.2.130 + '@swc/wasm': 1.2.130 dev: false optional: true /@swc/core-linux-arm-gnueabihf/1.3.7: - resolution: - { - integrity: sha512-anE65tcRLr/fYayXkpwZ7p7Ft5HCH4rvi3wSFdK8ycRWn9fVZhyWUJkJ3p1S0R19xr7hcb14hyxqPbd4m0I4yA==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-anE65tcRLr/fYayXkpwZ7p7Ft5HCH4rvi3wSFdK8ycRWn9fVZhyWUJkJ3p1S0R19xr7hcb14hyxqPbd4m0I4yA==} + engines: {node: '>=10'} cpu: [arm] os: [linux] requiresBuild: true dependencies: - "@swc/wasm": 1.2.130 + '@swc/wasm': 1.2.130 dev: false optional: true /@swc/core-linux-arm64-gnu/1.3.7: - resolution: - { - integrity: sha512-Qv6f76Tt8t51qb29R2isWvuQM26Xi7ZJavAv0hMdCxfkF+h1Yd14j82H7afGzdONH1LyLaPrhWSQirU/ZtBtdA==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-Qv6f76Tt8t51qb29R2isWvuQM26Xi7ZJavAv0hMdCxfkF+h1Yd14j82H7afGzdONH1LyLaPrhWSQirU/ZtBtdA==} + engines: {node: '>=10'} cpu: [arm64] os: [linux] requiresBuild: true @@ -5842,11 +5103,8 @@ packages: optional: true /@swc/core-linux-arm64-musl/1.3.7: - resolution: - { - integrity: sha512-paYbmvm7+7QxjyMzRd4X4tyhHw5VgkGCMBYC3PbfpuI7SsCdmEFG9v1t5uMbTf60VU1wB4/n+AxY9KCZLfK7DQ==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-paYbmvm7+7QxjyMzRd4X4tyhHw5VgkGCMBYC3PbfpuI7SsCdmEFG9v1t5uMbTf60VU1wB4/n+AxY9KCZLfK7DQ==} + engines: {node: '>=10'} cpu: [arm64] os: [linux] requiresBuild: true @@ -5854,11 +5112,8 @@ packages: optional: true /@swc/core-linux-x64-gnu/1.3.7: - resolution: - { - integrity: sha512-tkIHt64mmqEVM0CTGvUsB37Pv7AD/BinOEe6oPfMcS/2a00kYvXn9kEVKPqNTpiFpjYGoFQJaVV8UsD+iv8IvQ==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-tkIHt64mmqEVM0CTGvUsB37Pv7AD/BinOEe6oPfMcS/2a00kYvXn9kEVKPqNTpiFpjYGoFQJaVV8UsD+iv8IvQ==} + engines: {node: '>=10'} cpu: [x64] os: [linux] requiresBuild: true @@ -5866,11 +5121,8 @@ packages: optional: true /@swc/core-linux-x64-musl/1.3.7: - resolution: - { - integrity: sha512-V0xeTS8kvnTlghO1YyO1QgfPqsY896MknYCzBeK9CGKkGbc3JaxSoyb11nbGEDEaUwzDd9gj9L4D2uP+IWpoyw==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-V0xeTS8kvnTlghO1YyO1QgfPqsY896MknYCzBeK9CGKkGbc3JaxSoyb11nbGEDEaUwzDd9gj9L4D2uP+IWpoyw==} + engines: {node: '>=10'} cpu: [x64] os: [linux] requiresBuild: true @@ -5878,39 +5130,30 @@ packages: optional: true /@swc/core-win32-arm64-msvc/1.3.7: - resolution: - { - integrity: sha512-LeauQIok8tw4Mjmj7wlc7C62HCUx3xa5k6tNQnKWbDs7odZVWisgDxn7RSl9/xxlC8wPLTVUyBh3O1rHigVfWg==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-LeauQIok8tw4Mjmj7wlc7C62HCUx3xa5k6tNQnKWbDs7odZVWisgDxn7RSl9/xxlC8wPLTVUyBh3O1rHigVfWg==} + engines: {node: '>=10'} cpu: [arm64] os: [win32] requiresBuild: true dependencies: - "@swc/wasm": 1.2.130 + '@swc/wasm': 1.2.130 dev: false optional: true /@swc/core-win32-ia32-msvc/1.3.7: - resolution: - { - integrity: sha512-E1C8bpUrml0vIv4FTSP7f4CwkZVGsCY9fBsBHCC4j9N1mtQk8/nzpGOUsPo4QP+FTYJiNKedZ4Cy7baihnV4Lw==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-E1C8bpUrml0vIv4FTSP7f4CwkZVGsCY9fBsBHCC4j9N1mtQk8/nzpGOUsPo4QP+FTYJiNKedZ4Cy7baihnV4Lw==} + engines: {node: '>=10'} cpu: [ia32] os: [win32] requiresBuild: true dependencies: - "@swc/wasm": 1.2.130 + '@swc/wasm': 1.2.130 dev: false optional: true /@swc/core-win32-x64-msvc/1.3.7: - resolution: - { - integrity: sha512-Ti9H/1hqBrxhYtNLVaLsahO/iiJn1Zd4qSc0LZpl6wBJxP4LltLV4MLeib6i8lg11pj4ijIhzZfC6bT614ee3w==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-Ti9H/1hqBrxhYtNLVaLsahO/iiJn1Zd4qSc0LZpl6wBJxP4LltLV4MLeib6i8lg11pj4ijIhzZfC6bT614ee3w==} + engines: {node: '>=10'} cpu: [x64] os: [win32] requiresBuild: true @@ -5918,169 +5161,178 @@ packages: optional: true /@swc/core/1.3.7: - resolution: - { - integrity: sha512-g4ptYRZRE+g/6wLB3WBuWhAWJsZDUeiSOvKVM1Wdn29Vi/EgLuVaY5ssz0HLQJxuDSJGwtAOZA8exh4+AKNHLw==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-g4ptYRZRE+g/6wLB3WBuWhAWJsZDUeiSOvKVM1Wdn29Vi/EgLuVaY5ssz0HLQJxuDSJGwtAOZA8exh4+AKNHLw==} + engines: {node: '>=10'} hasBin: true requiresBuild: true optionalDependencies: - "@swc/core-android-arm-eabi": 1.3.7 - "@swc/core-android-arm64": 1.3.7 - "@swc/core-darwin-arm64": 1.3.7 - "@swc/core-darwin-x64": 1.3.7 - "@swc/core-freebsd-x64": 1.3.7 - "@swc/core-linux-arm-gnueabihf": 1.3.7 - "@swc/core-linux-arm64-gnu": 1.3.7 - "@swc/core-linux-arm64-musl": 1.3.7 - "@swc/core-linux-x64-gnu": 1.3.7 - "@swc/core-linux-x64-musl": 1.3.7 - "@swc/core-win32-arm64-msvc": 1.3.7 - "@swc/core-win32-ia32-msvc": 1.3.7 - "@swc/core-win32-x64-msvc": 1.3.7 + '@swc/core-android-arm-eabi': 1.3.7 + '@swc/core-android-arm64': 1.3.7 + '@swc/core-darwin-arm64': 1.3.7 + '@swc/core-darwin-x64': 1.3.7 + '@swc/core-freebsd-x64': 1.3.7 + '@swc/core-linux-arm-gnueabihf': 1.3.7 + '@swc/core-linux-arm64-gnu': 1.3.7 + '@swc/core-linux-arm64-musl': 1.3.7 + '@swc/core-linux-x64-gnu': 1.3.7 + '@swc/core-linux-x64-musl': 1.3.7 + '@swc/core-win32-arm64-msvc': 1.3.7 + '@swc/core-win32-ia32-msvc': 1.3.7 + '@swc/core-win32-x64-msvc': 1.3.7 dev: false /@swc/helpers/0.4.14: - resolution: - { - integrity: sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==, - } + resolution: {integrity: sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==} dependencies: tslib: 2.4.0 + /@swc/helpers/0.5.1: + resolution: {integrity: sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==} + dependencies: + tslib: 2.4.0 + dev: false + /@swc/wasm/1.2.122: - resolution: - { - integrity: sha512-sM1VCWQxmNhFtdxME+8UXNyPNhxNu7zdb6ikWpz0YKAQQFRGT5ThZgJrubEpah335SUToNg8pkdDF7ibVCjxbQ==, - } + resolution: {integrity: sha512-sM1VCWQxmNhFtdxME+8UXNyPNhxNu7zdb6ikWpz0YKAQQFRGT5ThZgJrubEpah335SUToNg8pkdDF7ibVCjxbQ==} requiresBuild: true dev: false optional: true /@swc/wasm/1.2.130: - resolution: - { - integrity: sha512-rNcJsBxS70+pv8YUWwf5fRlWX6JoY/HJc25HD/F8m6Kv7XhJdqPPMhyX6TKkUBPAG7TWlZYoxa+rHAjPy4Cj3Q==, - } + resolution: {integrity: sha512-rNcJsBxS70+pv8YUWwf5fRlWX6JoY/HJc25HD/F8m6Kv7XhJdqPPMhyX6TKkUBPAG7TWlZYoxa+rHAjPy4Cj3Q==} requiresBuild: true dev: false optional: true /@szmarczak/http-timer/1.1.2: - resolution: - { - integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} + engines: {node: '>=6'} dependencies: defer-to-connect: 1.1.3 dev: false /@szmarczak/http-timer/4.0.6: - resolution: - { - integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} + engines: {node: '>=10'} dependencies: defer-to-connect: 2.0.1 dev: false + /@tanstack/form-core/0.0.9: + resolution: {integrity: sha512-r6iPdnOA0YpT+XsbYAmCX6y7RyYa4kNAmD/MlMxLoQkyLl6TTJg5W6H6JDD7t6EuN20AoNPdVU1zofCS81p5dw==} + dependencies: + '@tanstack/store': 0.0.1-beta.84 + dev: false + /@tanstack/query-core/4.13.0: - resolution: - { - integrity: sha512-PzmLQcEgC4rl2OzkiPHYPC9O79DFcMGaKsOzDEP+U4PJ+tbkcEP+Z+FQDlfvX8mCwYC7UNH7hXrQ5EdkGlJjVg==, - } + resolution: {integrity: sha512-PzmLQcEgC4rl2OzkiPHYPC9O79DFcMGaKsOzDEP+U4PJ+tbkcEP+Z+FQDlfvX8mCwYC7UNH7hXrQ5EdkGlJjVg==} dev: true /@tanstack/query-core/4.24.4: - resolution: - { - integrity: sha512-9dqjv9eeB6VHN7lD3cLo16ZAjfjCsdXetSAD5+VyKqLUvcKTL0CklGQRJu+bWzdrS69R6Ea4UZo8obHYZnG6aA==, - } + resolution: {integrity: sha512-9dqjv9eeB6VHN7lD3cLo16ZAjfjCsdXetSAD5+VyKqLUvcKTL0CklGQRJu+bWzdrS69R6Ea4UZo8obHYZnG6aA==} + + /@tanstack/react-form/0.0.10_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-X7GZRSK3OLs42wGkJ/ahHVKMgdeBZZn6OEiHhbB57wWBV7I4JgCndrFp8vXtLQDz5+Pz03qTo0qD8X1nFV9agA==} + peerDependencies: + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + react-native: '*' + peerDependenciesMeta: + react-dom: + optional: true + react-native: + optional: true + dependencies: + '@tanstack/form-core': 0.0.9 + '@tanstack/react-store': 0.0.1-beta.84_biqbaboplfbrettd7655fr4n2y + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false /@tanstack/react-query/4.0.10_biqbaboplfbrettd7655fr4n2y: - resolution: - { - integrity: sha512-Wn5QhZUE5wvr6rGClV7KeQIUsdTmYR9mgmMZen7DSRWauHW2UTynFg3Kkf6pw+XlxxOLsyLWwz/Q6q1lSpM3TQ==, - } + resolution: {integrity: sha512-Wn5QhZUE5wvr6rGClV7KeQIUsdTmYR9mgmMZen7DSRWauHW2UTynFg3Kkf6pw+XlxxOLsyLWwz/Q6q1lSpM3TQ==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-native: "*" + react-native: '*' peerDependenciesMeta: react-dom: optional: true react-native: optional: true dependencies: - "@tanstack/query-core": 4.24.4 - "@types/use-sync-external-store": 0.0.3 + '@tanstack/query-core': 4.24.4 + '@types/use-sync-external-store': 0.0.3 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 use-sync-external-store: 1.2.0_react@18.2.0 dev: false /@tanstack/react-query/4.13.0_biqbaboplfbrettd7655fr4n2y: - resolution: - { - integrity: sha512-dI/5hJ/pGQ74P5hxBLC9h6K0/Cap2T3k0ZjjjFLBCNnohDYgl7LNmMopzrRzBHk2mMjf2hgXHIzcKNG8GOZ5hg==, - } + resolution: {integrity: sha512-dI/5hJ/pGQ74P5hxBLC9h6K0/Cap2T3k0ZjjjFLBCNnohDYgl7LNmMopzrRzBHk2mMjf2hgXHIzcKNG8GOZ5hg==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-native: "*" + react-native: '*' peerDependenciesMeta: react-dom: optional: true react-native: optional: true dependencies: - "@tanstack/query-core": 4.13.0 + '@tanstack/query-core': 4.13.0 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 use-sync-external-store: 1.2.0_react@18.2.0 dev: true /@tanstack/react-query/4.24.4_biqbaboplfbrettd7655fr4n2y: - resolution: - { - integrity: sha512-RpaS/3T/a3pHuZJbIAzAYRu+1nkp+/enr9hfRXDS/mojwx567UiMksoqW4wUFWlwIvWTXyhot2nbIipTKEg55Q==, - } + resolution: {integrity: sha512-RpaS/3T/a3pHuZJbIAzAYRu+1nkp+/enr9hfRXDS/mojwx567UiMksoqW4wUFWlwIvWTXyhot2nbIipTKEg55Q==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-native: "*" + react-native: '*' peerDependenciesMeta: react-dom: optional: true react-native: optional: true dependencies: - "@tanstack/query-core": 4.24.4 + '@tanstack/query-core': 4.24.4 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + use-sync-external-store: 1.2.0_react@18.2.0 + dev: false + + /@tanstack/react-store/0.0.1-beta.84_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-NHCt8pPjcwENwMPnaXdu1ZdvpE/u6JJdZwl/5aKxX9gW4XtLvpNEXHq1KyuOMk2ZfWInW2cuDsDsK5+iZARhrg==} + engines: {node: '>=12'} + peerDependencies: + react: '>=16' + react-dom: '>=16' + dependencies: + '@tanstack/store': 0.0.1-beta.84 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 use-sync-external-store: 1.2.0_react@18.2.0 dev: false + /@tanstack/store/0.0.1-beta.84: + resolution: {integrity: sha512-sqE4U8b/bNxXLrm5uoDET7glaZvThn0FPNperVNZV+XXwkJUFcc+/KH7n1MwCi7Y/76FeMpKWLRmEx9KhZbq3A==} + engines: {node: '>=12'} + dev: false + /@testim/chrome-version/1.1.2: - resolution: - { - integrity: sha512-1c4ZOETSRpI0iBfIFUqU4KqwBAB2lHUAlBjZz/YqOHqwM9dTTzjV6Km0ZkiEiSCx/tLr1BtESIKyWWMww+RUqw==, - } + resolution: {integrity: sha512-1c4ZOETSRpI0iBfIFUqU4KqwBAB2lHUAlBjZz/YqOHqwM9dTTzjV6Km0ZkiEiSCx/tLr1BtESIKyWWMww+RUqw==} dev: true /@testing-library/dom/8.13.0: - resolution: - { - integrity: sha512-9VHgfIatKNXQNaZTtLnalIy0jNZzY35a4S3oi08YAt9Hv1VsfZ/DfA45lM8D/UhtHBGJ4/lGwp0PZkVndRkoOQ==, - } - engines: {node: ">=12"} - dependencies: - "@babel/code-frame": 7.16.7 - "@babel/runtime": 7.18.3 - "@types/aria-query": 4.2.2 + resolution: {integrity: sha512-9VHgfIatKNXQNaZTtLnalIy0jNZzY35a4S3oi08YAt9Hv1VsfZ/DfA45lM8D/UhtHBGJ4/lGwp0PZkVndRkoOQ==} + engines: {node: '>=12'} + dependencies: + '@babel/code-frame': 7.16.7 + '@babel/runtime': 7.18.3 + '@types/aria-query': 4.2.2 aria-query: 5.0.0 chalk: 4.1.2 dom-accessibility-api: 0.5.14 @@ -6089,14 +5341,11 @@ packages: dev: true /@testing-library/jest-dom/5.16.3: - resolution: - { - integrity: sha512-u5DfKj4wfSt6akfndfu1eG06jsdyA/IUrlX2n3pyq5UXgXMhXY+NJb8eNK/7pqPWAhCKsCGWDdDO0zKMKAYkEA==, - } - engines: {node: ">=8", npm: ">=6", yarn: ">=1"} - dependencies: - "@babel/runtime": 7.18.3 - "@types/testing-library__jest-dom": 5.14.3 + resolution: {integrity: sha512-u5DfKj4wfSt6akfndfu1eG06jsdyA/IUrlX2n3pyq5UXgXMhXY+NJb8eNK/7pqPWAhCKsCGWDdDO0zKMKAYkEA==} + engines: {node: '>=8', npm: '>=6', yarn: '>=1'} + dependencies: + '@babel/runtime': 7.18.3 + '@types/testing-library__jest-dom': 5.14.3 aria-query: 5.0.0 chalk: 3.0.0 css: 3.0.0 @@ -6107,15 +5356,12 @@ packages: dev: true /@testing-library/jest-dom/5.16.5: - resolution: - { - integrity: sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA==, - } - engines: {node: ">=8", npm: ">=6", yarn: ">=1"} - dependencies: - "@adobe/css-tools": 4.0.1 - "@babel/runtime": 7.18.3 - "@types/testing-library__jest-dom": 5.14.3 + resolution: {integrity: sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA==} + engines: {node: '>=8', npm: '>=6', yarn: '>=1'} + dependencies: + '@adobe/css-tools': 4.0.1 + '@babel/runtime': 7.18.3 + '@types/testing-library__jest-dom': 5.14.3 aria-query: 5.0.0 chalk: 3.0.0 css.escape: 1.5.1 @@ -6125,944 +5371,631 @@ packages: dev: true /@testing-library/react-hooks/8.0.1_2zx2umvpluuhvlq44va5bta2da: - resolution: - { - integrity: sha512-Aqhl2IVmLt8IovEVarNDFuJDVWVvhnr9/GCU6UUnrYXwgDFF9h2L2o2P9KBni1AST5sT6riAyoukFLyjQUgD/g==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-Aqhl2IVmLt8IovEVarNDFuJDVWVvhnr9/GCU6UUnrYXwgDFF9h2L2o2P9KBni1AST5sT6riAyoukFLyjQUgD/g==} + engines: {node: '>=12'} peerDependencies: - "@types/react": ^16.9.0 || ^17.0.0 + '@types/react': ^16.9.0 || ^17.0.0 react: ^16.9.0 || ^17.0.0 react-dom: ^16.9.0 || ^17.0.0 react-test-renderer: ^16.9.0 || ^17.0.0 peerDependenciesMeta: - "@types/react": + '@types/react': optional: true react-dom: optional: true react-test-renderer: optional: true dependencies: - "@babel/runtime": 7.18.3 - "@types/react": 18.0.25 + '@babel/runtime': 7.18.3 + '@types/react': 18.0.25 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 react-error-boundary: 3.1.4_react@18.2.0 dev: true /@testing-library/react/13.4.0_biqbaboplfbrettd7655fr4n2y: - resolution: - { - integrity: sha512-sXOGON+WNTh3MLE9rve97ftaZukN3oNf2KjDy7YTx6hcTO2uuLHuCGynMDhFwGw/jYf4OJ2Qk0i4i79qMNNkyw==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-sXOGON+WNTh3MLE9rve97ftaZukN3oNf2KjDy7YTx6hcTO2uuLHuCGynMDhFwGw/jYf4OJ2Qk0i4i79qMNNkyw==} + engines: {node: '>=12'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - "@babel/runtime": 7.18.3 - "@testing-library/dom": 8.13.0 - "@types/react-dom": 18.0.7 + '@babel/runtime': 7.18.3 + '@testing-library/dom': 8.13.0 + '@types/react-dom': 18.0.7 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: true /@testing-library/user-event/13.5.0_tlwynutqiyp5mns3woioasuxnq: - resolution: - { - integrity: sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==, - } - engines: {node: ">=10", npm: ">=6"} + resolution: {integrity: sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==} + engines: {node: '>=10', npm: '>=6'} peerDependencies: - "@testing-library/dom": ">=7.21.4" + '@testing-library/dom': '>=7.21.4' dependencies: - "@babel/runtime": 7.18.3 - "@testing-library/dom": 8.13.0 + '@babel/runtime': 7.18.3 + '@testing-library/dom': 8.13.0 dev: true /@tootallnate/once/2.0.0: - resolution: - { - integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==, - } - engines: {node: ">= 10"} + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} /@tsconfig/node10/1.0.9: - resolution: - { - integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==, - } + resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} /@tsconfig/node12/1.0.10: - resolution: - { - integrity: sha512-N+srakvPaYMGkwjNDx3ASx65Zl3QG8dJgVtIB+YMOkucU+zctlv/hdP5250VKdDHSDoW9PFZoCqbqNcAPjCjXA==, - } + resolution: {integrity: sha512-N+srakvPaYMGkwjNDx3ASx65Zl3QG8dJgVtIB+YMOkucU+zctlv/hdP5250VKdDHSDoW9PFZoCqbqNcAPjCjXA==} /@tsconfig/node14/1.0.2: - resolution: - { - integrity: sha512-YwrUA5ysDXHFYfL0Xed9x3sNS4P+aKlCOnnbqUa2E5HdQshHFleCJVrj1PlGTb4GgFUCDyte1v3JWLy2sz8Oqg==, - } + resolution: {integrity: sha512-YwrUA5ysDXHFYfL0Xed9x3sNS4P+aKlCOnnbqUa2E5HdQshHFleCJVrj1PlGTb4GgFUCDyte1v3JWLy2sz8Oqg==} /@tsconfig/node16/1.0.3: - resolution: - { - integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==, - } + resolution: {integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==} /@types/aria-query/4.2.2: - resolution: - { - integrity: sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==, - } + resolution: {integrity: sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==} dev: true /@types/b64-lite/1.3.0: - resolution: - { - integrity: sha512-xrTKDOdOCLtdWAn+XnFWVoVNdump98dtZEpzQcw+BCtMdrGNVdbg6i6D1b9IU7HWzQm3ypi7hoLuXhrLiJn3bw==, - } + resolution: {integrity: sha512-xrTKDOdOCLtdWAn+XnFWVoVNdump98dtZEpzQcw+BCtMdrGNVdbg6i6D1b9IU7HWzQm3ypi7hoLuXhrLiJn3bw==} dev: false /@types/babel__core/7.1.19: - resolution: - { - integrity: sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==, - } + resolution: {integrity: sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==} dependencies: - "@babel/parser": 7.18.4 - "@babel/types": 7.18.4 - "@types/babel__generator": 7.6.4 - "@types/babel__template": 7.4.1 - "@types/babel__traverse": 7.17.1 + '@babel/parser': 7.18.4 + '@babel/types': 7.18.4 + '@types/babel__generator': 7.6.4 + '@types/babel__template': 7.4.1 + '@types/babel__traverse': 7.17.1 /@types/babel__generator/7.6.4: - resolution: - { - integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==, - } + resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==} dependencies: - "@babel/types": 7.18.4 + '@babel/types': 7.18.4 /@types/babel__template/7.4.1: - resolution: - { - integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==, - } + resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} dependencies: - "@babel/parser": 7.18.4 - "@babel/types": 7.18.4 + '@babel/parser': 7.18.4 + '@babel/types': 7.18.4 /@types/babel__traverse/7.17.1: - resolution: - { - integrity: sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==, - } + resolution: {integrity: sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==} dependencies: - "@babel/types": 7.18.4 + '@babel/types': 7.18.4 /@types/body-parser/1.19.2: - resolution: - { - integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==, - } + resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} dependencies: - "@types/connect": 3.4.35 - "@types/node": 18.11.9 + '@types/connect': 3.4.35 + '@types/node': 18.11.9 /@types/braces/3.0.1: - resolution: - { - integrity: sha512-+euflG6ygo4bn0JHtn4pYqcXwRtLvElQ7/nnjDu7iYG56H0+OhCd7d6Ug0IE3WcFpZozBKW2+80FUbv5QGk5AQ==, - } + resolution: {integrity: sha512-+euflG6ygo4bn0JHtn4pYqcXwRtLvElQ7/nnjDu7iYG56H0+OhCd7d6Ug0IE3WcFpZozBKW2+80FUbv5QGk5AQ==} dev: true /@types/cacheable-request/6.0.2: - resolution: - { - integrity: sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==, - } + resolution: {integrity: sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==} dependencies: - "@types/http-cache-semantics": 4.0.1 - "@types/keyv": 3.1.4 - "@types/node": 18.11.9 - "@types/responselike": 1.0.0 + '@types/http-cache-semantics': 4.0.1 + '@types/keyv': 3.1.4 + '@types/node': 18.11.9 + '@types/responselike': 1.0.0 dev: false /@types/chai-subset/1.3.3: - resolution: - { - integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==, - } + resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} dependencies: - "@types/chai": 4.3.4 + '@types/chai': 4.3.4 /@types/chai/4.3.4: - resolution: - { - integrity: sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==, - } + resolution: {integrity: sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==} /@types/chokidar/2.1.3: - resolution: - { - integrity: sha512-6qK3xoLLAhQVTucQGHTySwOVA1crHRXnJeLwqK6KIFkkKa2aoMFXh+WEi8PotxDtvN6MQJLyYN9ag9P6NLV81w==, - } + resolution: {integrity: sha512-6qK3xoLLAhQVTucQGHTySwOVA1crHRXnJeLwqK6KIFkkKa2aoMFXh+WEi8PotxDtvN6MQJLyYN9ag9P6NLV81w==} deprecated: This is a stub types definition. chokidar provides its own type definitions, so you do not need this installed. dependencies: chokidar: 3.5.3 dev: true /@types/connect/3.4.35: - resolution: - { - integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==, - } + resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: - "@types/node": 18.11.9 + '@types/node': 18.11.9 /@types/cookie-session/2.0.44: - resolution: - { - integrity: sha512-3DheOZ41pql6raSIkqEPphJdhA2dX2bkS+s2Qacv8YMKkoCbAIEXbsDil7351ARzMqvfyDUGNeHGiRZveIzhqQ==, - } + resolution: {integrity: sha512-3DheOZ41pql6raSIkqEPphJdhA2dX2bkS+s2Qacv8YMKkoCbAIEXbsDil7351ARzMqvfyDUGNeHGiRZveIzhqQ==} dependencies: - "@types/express": 4.17.13 - "@types/keygrip": 1.0.2 + '@types/express': 4.17.13 + '@types/keygrip': 1.0.2 dev: false /@types/cookie/0.4.1: - resolution: - { - integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==, - } + resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} dev: true /@types/cross-spawn/6.0.2: - resolution: - { - integrity: sha512-KuwNhp3eza+Rhu8IFI5HUXRP0LIhqH5cAjubUvGXXthh4YYBuP2ntwEX+Cz8GJoZUHlKo247wPWOfA9LYEq4cw==, - } + resolution: {integrity: sha512-KuwNhp3eza+Rhu8IFI5HUXRP0LIhqH5cAjubUvGXXthh4YYBuP2ntwEX+Cz8GJoZUHlKo247wPWOfA9LYEq4cw==} dependencies: - "@types/node": 18.11.9 + '@types/node': 18.11.9 dev: true /@types/debug/4.1.7: - resolution: - { - integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==, - } + resolution: {integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==} dependencies: - "@types/ms": 0.7.31 + '@types/ms': 0.7.31 dev: true /@types/detect-port/1.3.2: - resolution: - { - integrity: sha512-xxgAGA2SAU4111QefXPSp5eGbDm/hW6zhvYl9IeEPZEry9F4d66QAHm5qpUXjb6IsevZV/7emAEx5MhP6O192g==, - } + resolution: {integrity: sha512-xxgAGA2SAU4111QefXPSp5eGbDm/hW6zhvYl9IeEPZEry9F4d66QAHm5qpUXjb6IsevZV/7emAEx5MhP6O192g==} dev: true /@types/diff/5.0.2: - resolution: - { - integrity: sha512-uw8eYMIReOwstQ0QKF0sICefSy8cNO/v7gOTiIy9SbwuHyEecJUm7qlgueOO5S1udZ5I/irVydHVwMchgzbKTg==, - } + resolution: {integrity: sha512-uw8eYMIReOwstQ0QKF0sICefSy8cNO/v7gOTiIy9SbwuHyEecJUm7qlgueOO5S1udZ5I/irVydHVwMchgzbKTg==} dev: true /@types/ejs/3.1.1: - resolution: - { - integrity: sha512-RQul5wEfY7BjWm0sYY86cmUN/pcXWGyVxWX93DFFJvcrxax5zKlieLwA3T77xJGwNcZW0YW6CYG70p1m8xPFmA==, - } + resolution: {integrity: sha512-RQul5wEfY7BjWm0sYY86cmUN/pcXWGyVxWX93DFFJvcrxax5zKlieLwA3T77xJGwNcZW0YW6CYG70p1m8xPFmA==} dev: true /@types/envinfo/7.8.1: - resolution: - { - integrity: sha512-pTyshpmGxqB9lRwG75v2YR0oqKYpCrklOYlZWQ88z/JB0fimT8EVmYekuIwpU3IxPZDHSXCqXKzkCrtAcKY25g==, - } + resolution: {integrity: sha512-pTyshpmGxqB9lRwG75v2YR0oqKYpCrklOYlZWQ88z/JB0fimT8EVmYekuIwpU3IxPZDHSXCqXKzkCrtAcKY25g==} dev: true /@types/estree/0.0.39: - resolution: - { - integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==, - } + resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} dev: true /@types/estree/0.0.51: - resolution: - { - integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==, - } + resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} dev: true /@types/expect/1.20.4: - resolution: - { - integrity: sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==, - } + resolution: {integrity: sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==} dev: true /@types/express-serve-static-core/4.17.28: - resolution: - { - integrity: sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==, - } + resolution: {integrity: sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==} dependencies: - "@types/node": 18.11.9 - "@types/qs": 6.9.7 - "@types/range-parser": 1.2.4 + '@types/node': 18.11.9 + '@types/qs': 6.9.7 + '@types/range-parser': 1.2.4 /@types/express/4.17.13: - resolution: - { - integrity: sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==, - } + resolution: {integrity: sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==} dependencies: - "@types/body-parser": 1.19.2 - "@types/express-serve-static-core": 4.17.28 - "@types/qs": 6.9.7 - "@types/serve-static": 1.13.10 + '@types/body-parser': 1.19.2 + '@types/express-serve-static-core': 4.17.28 + '@types/qs': 6.9.7 + '@types/serve-static': 1.13.10 /@types/findup-sync/4.0.2: - resolution: - { - integrity: sha512-MY2Acwvq6O+/rOMRtbV31phQOj1A+sbVWRbp47PvcZ5+VoofiSZHhj8ByATusuzJE+q/u+PA1SlkfPu3thhsjw==, - } + resolution: {integrity: sha512-MY2Acwvq6O+/rOMRtbV31phQOj1A+sbVWRbp47PvcZ5+VoofiSZHhj8ByATusuzJE+q/u+PA1SlkfPu3thhsjw==} dependencies: - "@types/micromatch": 4.0.2 + '@types/micromatch': 4.0.2 dev: true /@types/fs-extra/9.0.13: - resolution: - { - integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==, - } + resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - "@types/node": 18.11.9 + '@types/node': 18.11.9 dev: true /@types/glob/7.2.0: - resolution: - { - integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==, - } + resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: - "@types/minimatch": 3.0.5 - "@types/node": 18.11.9 + '@types/minimatch': 3.0.5 + '@types/node': 20.1.1 /@types/global-agent/2.1.1: - resolution: - { - integrity: sha512-sVox8Phk1UKgP6LQPAdeRxfww6vHKt7Bf59dXzYLsQBUEMEn8S10a+ESp/yO0i4fJ3WS4+CIuz42hgJcuA+3mA==, - } + resolution: {integrity: sha512-sVox8Phk1UKgP6LQPAdeRxfww6vHKt7Bf59dXzYLsQBUEMEn8S10a+ESp/yO0i4fJ3WS4+CIuz42hgJcuA+3mA==} dev: false /@types/graceful-fs/4.1.5: - resolution: - { - integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==, - } + resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} dependencies: - "@types/node": 18.11.9 + '@types/node': 18.11.9 /@types/hasbin/1.2.0: - resolution: - { - integrity: sha512-QhPPTycu+tr/RnGA4mvv+4P1Vebmq9TGEbDvBS9WjPT1pW7dheWeXXWcxb9zJ+YC38LbO8mwVW/DP+FwBroFKw==, - } + resolution: {integrity: sha512-QhPPTycu+tr/RnGA4mvv+4P1Vebmq9TGEbDvBS9WjPT1pW7dheWeXXWcxb9zJ+YC38LbO8mwVW/DP+FwBroFKw==} dev: true /@types/hoist-non-react-statics/3.3.1: - resolution: - { - integrity: sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==, - } + resolution: {integrity: sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==} dependencies: - "@types/react": 18.0.25 + '@types/react': 18.0.25 hoist-non-react-statics: 3.3.2 dev: false /@types/http-cache-semantics/4.0.1: - resolution: - { - integrity: sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==, - } + resolution: {integrity: sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==} dev: false /@types/is-ci/3.0.0: - resolution: - { - integrity: sha512-Q0Op0hdWbYd1iahB+IFNQcWXFq4O0Q5MwQP7uN0souuQ4rPg1vEYcnIOfr1gY+M+6rc8FGoRaBO1mOOvL29sEQ==, - } + resolution: {integrity: sha512-Q0Op0hdWbYd1iahB+IFNQcWXFq4O0Q5MwQP7uN0souuQ4rPg1vEYcnIOfr1gY+M+6rc8FGoRaBO1mOOvL29sEQ==} dependencies: ci-info: 3.3.1 dev: false /@types/istanbul-lib-coverage/2.0.4: - resolution: - { - integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==, - } + resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} /@types/istanbul-lib-report/3.0.0: - resolution: - { - integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==, - } + resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==} dependencies: - "@types/istanbul-lib-coverage": 2.0.4 + '@types/istanbul-lib-coverage': 2.0.4 /@types/istanbul-reports/3.0.1: - resolution: - { - integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==, - } + resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==} dependencies: - "@types/istanbul-lib-report": 3.0.0 + '@types/istanbul-lib-report': 3.0.0 /@types/jest/29.2.2: - resolution: - { - integrity: sha512-og1wAmdxKoS71K2ZwSVqWPX6OVn3ihZ6ZT2qvZvZQm90lJVDyXIjYcu4Khx2CNIeaFv12rOU/YObOsI3VOkzog==, - } + resolution: {integrity: sha512-og1wAmdxKoS71K2ZwSVqWPX6OVn3ihZ6ZT2qvZvZQm90lJVDyXIjYcu4Khx2CNIeaFv12rOU/YObOsI3VOkzog==} dependencies: expect: 29.3.0 pretty-format: 29.2.1 /@types/jscodeshift/0.11.2: - resolution: - { - integrity: sha512-CwgUni90VW+H3xc9Hekz/+ShEKPTvYbgVsDWCV4YksKoTKrWu9qfPpNaf7VDvbwjRp+PlkBJ7wZJNDpILzRiRw==, - } + resolution: {integrity: sha512-CwgUni90VW+H3xc9Hekz/+ShEKPTvYbgVsDWCV4YksKoTKrWu9qfPpNaf7VDvbwjRp+PlkBJ7wZJNDpILzRiRw==} dependencies: ast-types: 0.14.2 recast: 0.20.5 dev: true /@types/jsdom/20.0.1: - resolution: - { - integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==, - } + resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} dependencies: - "@types/node": 18.11.9 - "@types/tough-cookie": 4.0.2 + '@types/node': 18.11.9 + '@types/tough-cookie': 4.0.2 parse5: 7.1.1 /@types/json-buffer/3.0.0: - resolution: - { - integrity: sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==, - } + resolution: {integrity: sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==} dev: false /@types/json-schema/7.0.11: - resolution: - { - integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==, - } + resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} /@types/json5/0.0.29: - resolution: - { - integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==, - } + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} /@types/jsonwebtoken/8.5.8: - resolution: - { - integrity: sha512-zm6xBQpFDIDM6o9r6HSgDeIcLy82TKWctCXEPbJJcXb5AKmi5BNNdLXneixK4lplX3PqIVcwLBCGE/kAGnlD4A==, - } + resolution: {integrity: sha512-zm6xBQpFDIDM6o9r6HSgDeIcLy82TKWctCXEPbJJcXb5AKmi5BNNdLXneixK4lplX3PqIVcwLBCGE/kAGnlD4A==} dependencies: - "@types/node": 18.11.9 + '@types/node': 18.11.9 dev: true /@types/keygrip/1.0.2: - resolution: - { - integrity: sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==, - } + resolution: {integrity: sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==} dev: false /@types/keyv/3.1.4: - resolution: - { - integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==, - } + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: - "@types/node": 18.11.9 + '@types/node': 20.1.1 dev: false /@types/mem-fs-editor/7.0.1: - resolution: - { - integrity: sha512-aixqlCy0k0fZa+J4k7SZ7ZQCuJUmD4YuuMk42Q86YrGNBTZOSSnqkV8QcedBgLF5uR78PXj8HDWIFpXn+eOJbw==, - } + resolution: {integrity: sha512-aixqlCy0k0fZa+J4k7SZ7ZQCuJUmD4YuuMk42Q86YrGNBTZOSSnqkV8QcedBgLF5uR78PXj8HDWIFpXn+eOJbw==} dependencies: - "@types/ejs": 3.1.1 - "@types/glob": 7.2.0 - "@types/json-schema": 7.0.11 - "@types/mem-fs": 1.1.2 - "@types/node": 18.11.9 - "@types/vinyl": 2.0.6 + '@types/ejs': 3.1.1 + '@types/glob': 7.2.0 + '@types/json-schema': 7.0.11 + '@types/mem-fs': 1.1.2 + '@types/node': 18.11.9 + '@types/vinyl': 2.0.6 dev: true /@types/mem-fs/1.1.2: - resolution: - { - integrity: sha512-tt+4IoDO8/wmtaP2bHnB91c8AnzYtR9MK6NxfcZY9E3XgtmzOiFMeSXu3EZrBeevd0nJ87iGoUiFDGsb9QUvew==, - } + resolution: {integrity: sha512-tt+4IoDO8/wmtaP2bHnB91c8AnzYtR9MK6NxfcZY9E3XgtmzOiFMeSXu3EZrBeevd0nJ87iGoUiFDGsb9QUvew==} dependencies: - "@types/node": 18.11.9 - "@types/vinyl": 2.0.6 + '@types/node': 18.11.9 + '@types/vinyl': 2.0.6 dev: true /@types/micromatch/4.0.2: - resolution: - { - integrity: sha512-oqXqVb0ci19GtH0vOA/U2TmHTcRY9kuZl4mqUxe0QmJAlIW13kzhuK5pi1i9+ngav8FjpSb9FVS/GE00GLX1VA==, - } + resolution: {integrity: sha512-oqXqVb0ci19GtH0vOA/U2TmHTcRY9kuZl4mqUxe0QmJAlIW13kzhuK5pi1i9+ngav8FjpSb9FVS/GE00GLX1VA==} dependencies: - "@types/braces": 3.0.1 + '@types/braces': 3.0.1 dev: true /@types/mime/1.3.2: - resolution: - { - integrity: sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==, - } + resolution: {integrity: sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==} /@types/minimatch/3.0.5: - resolution: - { - integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==, - } + resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} /@types/minimist/1.2.2: - resolution: - { - integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==, - } + resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} dev: false /@types/ms/0.7.31: - resolution: - { - integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==, - } + resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} dev: true /@types/node-fetch/2.6.1: - resolution: - { - integrity: sha512-oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA==, - } + resolution: {integrity: sha512-oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA==} dependencies: - "@types/node": 18.11.9 + '@types/node': 18.11.9 form-data: 3.0.1 dev: true /@types/node/12.20.55: - resolution: - { - integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==, - } + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} dev: false /@types/node/18.11.7: - resolution: - { - integrity: sha512-LhFTglglr63mNXUSRYD8A+ZAIu5sFqNJ4Y2fPuY7UlrySJH87rRRlhtVmMHplmfk5WkoJGmDjE9oiTfyX94CpQ==, - } + resolution: {integrity: sha512-LhFTglglr63mNXUSRYD8A+ZAIu5sFqNJ4Y2fPuY7UlrySJH87rRRlhtVmMHplmfk5WkoJGmDjE9oiTfyX94CpQ==} dev: true /@types/node/18.11.9: - resolution: - { - integrity: sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==, - } + resolution: {integrity: sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==} /@types/node/18.7.13: - resolution: - { - integrity: sha512-46yIhxSe5xEaJZXWdIBP7GU4HDTG8/eo0qd9atdiL+lFpA03y8KS+lkTN834TWJj5767GbWv4n/P6efyTFt1Dw==, - } + resolution: {integrity: sha512-46yIhxSe5xEaJZXWdIBP7GU4HDTG8/eo0qd9atdiL+lFpA03y8KS+lkTN834TWJj5767GbWv4n/P6efyTFt1Dw==} dev: true + /@types/node/20.1.1: + resolution: {integrity: sha512-uKBEevTNb+l6/aCQaKVnUModfEMjAl98lw2Si9P5y4hLu9tm6AlX2ZIoXZX6Wh9lJueYPrGPKk5WMCNHg/u6/A==} + /@types/nodemailer/6.4.4: - resolution: - { - integrity: sha512-Ksw4t7iliXeYGvIQcSIgWQ5BLuC/mljIEbjf615svhZL10PE9t+ei8O9gDaD3FPCasUJn9KTLwz2JFJyiiyuqw==, - } + resolution: {integrity: sha512-Ksw4t7iliXeYGvIQcSIgWQ5BLuC/mljIEbjf615svhZL10PE9t+ei8O9gDaD3FPCasUJn9KTLwz2JFJyiiyuqw==} dependencies: - "@types/node": 18.11.9 + '@types/node': 18.11.9 dev: true /@types/normalize-package-data/2.4.1: - resolution: - { - integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==, - } + resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} dev: false /@types/npm-which/3.0.1: - resolution: - { - integrity: sha512-6cCMPsnLzad47O+OuWHnz+r+GRoHb/o1fVZ4AqzS3hzliy7wVgXm6kHBj/VxkKYLvda3zJa/A3QZU0xOoDxOxg==, - } + resolution: {integrity: sha512-6cCMPsnLzad47O+OuWHnz+r+GRoHb/o1fVZ4AqzS3hzliy7wVgXm6kHBj/VxkKYLvda3zJa/A3QZU0xOoDxOxg==} dependencies: - "@types/node": 18.11.9 + '@types/node': 18.11.9 dev: true /@types/oauth/0.9.1: - resolution: - { - integrity: sha512-a1iY62/a3yhZ7qH7cNUsxoI3U/0Fe9+RnuFrpTKr+0WVOzbKlSLojShCKe20aOD1Sppv+i8Zlq0pLDuTJnwS4A==, - } + resolution: {integrity: sha512-a1iY62/a3yhZ7qH7cNUsxoI3U/0Fe9+RnuFrpTKr+0WVOzbKlSLojShCKe20aOD1Sppv+i8Zlq0pLDuTJnwS4A==} dependencies: - "@types/node": 18.11.9 + '@types/node': 18.11.9 dev: false /@types/passport-twitter/1.0.37: - resolution: - { - integrity: sha512-/FHODUP6ExYpRFdhVOtbHwVZRmni0kFyOFhOwqg61SoSwcED4c5tkhYu5cJElyhD5jbevRTmgInLFFI5s2hBag==, - } + resolution: {integrity: sha512-/FHODUP6ExYpRFdhVOtbHwVZRmni0kFyOFhOwqg61SoSwcED4c5tkhYu5cJElyhD5jbevRTmgInLFFI5s2hBag==} dependencies: - "@types/express": 4.17.13 - "@types/passport": 1.0.8 + '@types/express': 4.17.13 + '@types/passport': 1.0.8 dev: false /@types/passport/1.0.7: - resolution: - { - integrity: sha512-JtswU8N3kxBYgo+n9of7C97YQBT+AYPP2aBfNGTzABqPAZnK/WOAaKfh3XesUYMZRrXFuoPc2Hv0/G/nQFveHw==, - } + resolution: {integrity: sha512-JtswU8N3kxBYgo+n9of7C97YQBT+AYPP2aBfNGTzABqPAZnK/WOAaKfh3XesUYMZRrXFuoPc2Hv0/G/nQFveHw==} dependencies: - "@types/express": 4.17.13 + '@types/express': 4.17.13 dev: false /@types/passport/1.0.8: - resolution: - { - integrity: sha512-Gdcvis7+7G/Mobm+25AeFi+oe5teBhHzpbCOFWeN10Bj8tnoEE1L5lkraQjzmDEKkJQuM7xSJUGIFGl/giyRfQ==, - } + resolution: {integrity: sha512-Gdcvis7+7G/Mobm+25AeFi+oe5teBhHzpbCOFWeN10Bj8tnoEE1L5lkraQjzmDEKkJQuM7xSJUGIFGl/giyRfQ==} dependencies: - "@types/express": 4.17.13 + '@types/express': 4.17.13 dev: false /@types/pluralize/0.0.29: - resolution: - { - integrity: sha512-BYOID+l2Aco2nBik+iYS4SZX0Lf20KPILP5RGmM1IgzdwNdTs0eebiFriOPcej1sX9mLnSoiNte5zcFxssgpGA==, - } + resolution: {integrity: sha512-BYOID+l2Aco2nBik+iYS4SZX0Lf20KPILP5RGmM1IgzdwNdTs0eebiFriOPcej1sX9mLnSoiNte5zcFxssgpGA==} dev: true /@types/prettier/2.4.4: - resolution: - { - integrity: sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA==, - } + resolution: {integrity: sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA==} dev: true /@types/prettier/2.6.3: - resolution: - { - integrity: sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg==, - } + resolution: {integrity: sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg==} /@types/preview-email/2.0.1: - resolution: - { - integrity: sha512-wHtm/Xxlxk2WKRok0ya7iUr+UvQFlq9nTIQXZi2d3n2tdrt+n4Fkybvi45BjQILl2wfGFq4y+jARCo2+ZoaTrA==, - } + resolution: {integrity: sha512-wHtm/Xxlxk2WKRok0ya7iUr+UvQFlq9nTIQXZi2d3n2tdrt+n4Fkybvi45BjQILl2wfGFq4y+jARCo2+ZoaTrA==} dependencies: - "@types/nodemailer": 6.4.4 + '@types/nodemailer': 6.4.4 dev: true /@types/progress/2.0.5: - resolution: - { - integrity: sha512-ZYYVc/kSMkhH9W/4dNK/sLNra3cnkfT2nJyOAIDY+C2u6w72wa0s1aXAezVtbTsnN8HID1uhXCrLwDE2ZXpplg==, - } + resolution: {integrity: sha512-ZYYVc/kSMkhH9W/4dNK/sLNra3cnkfT2nJyOAIDY+C2u6w72wa0s1aXAezVtbTsnN8HID1uhXCrLwDE2ZXpplg==} dependencies: - "@types/node": 18.11.9 + '@types/node': 18.11.9 dev: true /@types/prompts/2.0.14: - resolution: - { - integrity: sha512-HZBd99fKxRWpYCErtm2/yxUZv6/PBI9J7N4TNFffl5JbrYMHBwF25DjQGTW3b3jmXq+9P6/8fCIb2ee57BFfYA==, - } + resolution: {integrity: sha512-HZBd99fKxRWpYCErtm2/yxUZv6/PBI9J7N4TNFffl5JbrYMHBwF25DjQGTW3b3jmXq+9P6/8fCIb2ee57BFfYA==} dependencies: - "@types/node": 18.11.9 + '@types/node': 18.11.9 dev: true /@types/prop-types/15.7.5: - resolution: - { - integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==, - } + resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} /@types/qs/6.9.7: - resolution: - { - integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==, - } + resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==} /@types/range-parser/1.2.4: - resolution: - { - integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==, - } + resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==} /@types/react-dom/17.0.14: - resolution: - { - integrity: sha512-H03xwEP1oXmSfl3iobtmQ/2dHF5aBHr8aUMwyGZya6OW45G+xtdzmq6HkncefiBt5JU8DVyaWl/nWZbjZCnzAQ==, - } + resolution: {integrity: sha512-H03xwEP1oXmSfl3iobtmQ/2dHF5aBHr8aUMwyGZya6OW45G+xtdzmq6HkncefiBt5JU8DVyaWl/nWZbjZCnzAQ==} dependencies: - "@types/react": 18.0.25 + '@types/react': 18.0.25 dev: true /@types/react-dom/18.0.7: - resolution: - { - integrity: sha512-HaXc+BbqAZE1RdsK3tC8SbkFy6UL2xF76lT9rQs5JkPrJg3rWA3Ou/Lhw3YJQzEDkBpmJ79nBsfnd05WrBd2QQ==, - } + resolution: {integrity: sha512-HaXc+BbqAZE1RdsK3tC8SbkFy6UL2xF76lT9rQs5JkPrJg3rWA3Ou/Lhw3YJQzEDkBpmJ79nBsfnd05WrBd2QQ==} dependencies: - "@types/react": 18.0.25 + '@types/react': 18.0.25 dev: true + /@types/react-dom/18.2.4: + resolution: {integrity: sha512-G2mHoTMTL4yoydITgOGwWdWMVd8sNgyEP85xVmMKAPUBwQWm9wBPQUmvbeF4V3WBY1P7mmL4BkjQ0SqUpf1snw==} + dependencies: + '@types/react': 18.2.6 + dev: false + /@types/react/18.0.23: - resolution: - { - integrity: sha512-R1wTULtCiJkudAN2DJGoYYySbGtOdzZyUWAACYinKdiQC8auxso4kLDUhQ7AJ2kh3F6A6z4v69U6tNY39hihVQ==, - } + resolution: {integrity: sha512-R1wTULtCiJkudAN2DJGoYYySbGtOdzZyUWAACYinKdiQC8auxso4kLDUhQ7AJ2kh3F6A6z4v69U6tNY39hihVQ==} dependencies: - "@types/prop-types": 15.7.5 - "@types/scheduler": 0.16.2 + '@types/prop-types': 15.7.5 + '@types/scheduler': 0.16.2 csstype: 3.1.0 dev: true /@types/react/18.0.25: - resolution: - { - integrity: sha512-xD6c0KDT4m7n9uD4ZHi02lzskaiqcBxf4zi+tXZY98a04wvc0hi/TcCPC2FOESZi51Nd7tlUeOJY8RofL799/g==, - } + resolution: {integrity: sha512-xD6c0KDT4m7n9uD4ZHi02lzskaiqcBxf4zi+tXZY98a04wvc0hi/TcCPC2FOESZi51Nd7tlUeOJY8RofL799/g==} + dependencies: + '@types/prop-types': 15.7.5 + '@types/scheduler': 0.16.2 + csstype: 3.1.0 + + /@types/react/18.2.6: + resolution: {integrity: sha512-wRZClXn//zxCFW+ye/D2qY65UsYP1Fpex2YXorHc8awoNamkMZSvBxwxdYVInsHOZZd2Ppq8isnSzJL5Mpf8OA==} dependencies: - "@types/prop-types": 15.7.5 - "@types/scheduler": 0.16.2 + '@types/prop-types': 15.7.5 + '@types/scheduler': 0.16.2 csstype: 3.1.0 + dev: false /@types/resolve/1.17.1: - resolution: - { - integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==, - } + resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} dependencies: - "@types/node": 18.11.9 + '@types/node': 18.11.9 dev: true /@types/responselike/1.0.0: - resolution: - { - integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==, - } + resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} dependencies: - "@types/node": 18.11.9 + '@types/node': 20.1.1 dev: false /@types/rimraf/3.0.2: - resolution: - { - integrity: sha512-F3OznnSLAUxFrCEu/L5PY8+ny8DtcFRjx7fZZ9bycvXRi3KPTRS9HOitGZwvPg0juRhXFWIeKX58cnX5YqLohQ==, - } + resolution: {integrity: sha512-F3OznnSLAUxFrCEu/L5PY8+ny8DtcFRjx7fZZ9bycvXRi3KPTRS9HOitGZwvPg0juRhXFWIeKX58cnX5YqLohQ==} dependencies: - "@types/glob": 7.2.0 - "@types/node": 18.11.9 + '@types/glob': 7.2.0 + '@types/node': 18.11.9 dev: true /@types/scheduler/0.16.2: - resolution: - { - integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==, - } + resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} /@types/secure-password/3.1.1: - resolution: - { - integrity: sha512-8S6JYBt22MXJrc/ehq8U0jknbnCzssVFKwOqn2pLnzbZLtiotjxaCd+SRQtOcVqrn1NNiKyw6fZJagW1eBe1bQ==, - } + resolution: {integrity: sha512-8S6JYBt22MXJrc/ehq8U0jknbnCzssVFKwOqn2pLnzbZLtiotjxaCd+SRQtOcVqrn1NNiKyw6fZJagW1eBe1bQ==} dependencies: - "@types/node": 18.11.9 + '@types/node': 18.11.9 dev: false /@types/selenium-webdriver/4.0.18: - resolution: - { - integrity: sha512-gkrUo3QldGr8V9im/DjgKkX4UVd1rtflfEBuPG9hPSA1keu7A0rF8h/MQjpTMm2EPVhBCd2K8tn5nlC9Vsd5Xw==, - } + resolution: {integrity: sha512-gkrUo3QldGr8V9im/DjgKkX4UVd1rtflfEBuPG9hPSA1keu7A0rF8h/MQjpTMm2EPVhBCd2K8tn5nlC9Vsd5Xw==} dev: true /@types/semver/6.2.3: - resolution: - { - integrity: sha512-KQf+QAMWKMrtBMsB8/24w53tEsxllMj6TuA80TT/5igJalLI/zm0L3oXRbIAl4Ohfc85gyHX/jhMwsVkmhLU4A==, - } + resolution: {integrity: sha512-KQf+QAMWKMrtBMsB8/24w53tEsxllMj6TuA80TT/5igJalLI/zm0L3oXRbIAl4Ohfc85gyHX/jhMwsVkmhLU4A==} dev: false /@types/semver/7.3.13: - resolution: - { - integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==, - } + resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} /@types/serve-static/1.13.10: - resolution: - { - integrity: sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==, - } + resolution: {integrity: sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==} dependencies: - "@types/mime": 1.3.2 - "@types/node": 18.11.9 + '@types/mime': 1.3.2 + '@types/node': 18.11.9 /@types/stack-utils/2.0.1: - resolution: - { - integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==, - } + resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} /@types/test-listen/1.1.0: - resolution: - { - integrity: sha512-y6ZfbSzYHniCeY6ZAzsQjSAdJInNVoEz4Uhsb81W+RCoNYA59yoG/+XbqPqCPj2KCU3Wa6RFWSozutkGIHIsNQ==, - } + resolution: {integrity: sha512-y6ZfbSzYHniCeY6ZAzsQjSAdJInNVoEz4Uhsb81W+RCoNYA59yoG/+XbqPqCPj2KCU3Wa6RFWSozutkGIHIsNQ==} dependencies: - "@types/node": 18.11.9 + '@types/node': 18.11.9 dev: true /@types/testing-library__jest-dom/5.14.3: - resolution: - { - integrity: sha512-oKZe+Mf4ioWlMuzVBaXQ9WDnEm1+umLx0InILg+yvZVBBDmzV5KfZyLrCvadtWcx8+916jLmHafcmqqffl+iIw==, - } + resolution: {integrity: sha512-oKZe+Mf4ioWlMuzVBaXQ9WDnEm1+umLx0InILg+yvZVBBDmzV5KfZyLrCvadtWcx8+916jLmHafcmqqffl+iIw==} dependencies: - "@types/jest": 29.2.2 + '@types/jest': 29.2.2 dev: true /@types/testing-library__react-hooks/4.0.0_2zx2umvpluuhvlq44va5bta2da: - resolution: - { - integrity: sha512-UzZUXthQtVjDruR2YA+hqg9ux5AfmZ8Kaw+QDungax+T7wb/5NC4x7YOpIqRx7oY3KksGQ69bzNE/xwzb5NslQ==, - } + resolution: {integrity: sha512-UzZUXthQtVjDruR2YA+hqg9ux5AfmZ8Kaw+QDungax+T7wb/5NC4x7YOpIqRx7oY3KksGQ69bzNE/xwzb5NslQ==} deprecated: This is a stub types definition. @testing-library/react-hooks provides its own type definitions, so you do not need this installed. dependencies: - "@testing-library/react-hooks": 8.0.1_2zx2umvpluuhvlq44va5bta2da + '@testing-library/react-hooks': 8.0.1_2zx2umvpluuhvlq44va5bta2da transitivePeerDependencies: - - "@types/react" + - '@types/react' - react - react-dom - react-test-renderer dev: true /@types/tough-cookie/4.0.2: - resolution: - { - integrity: sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==, - } + resolution: {integrity: sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==} /@types/use-sync-external-store/0.0.3: - resolution: - { - integrity: sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==, - } + resolution: {integrity: sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==} dev: false /@types/vinyl/2.0.6: - resolution: - { - integrity: sha512-ayJ0iOCDNHnKpKTgBG6Q6JOnHTj9zFta+3j2b8Ejza0e4cvRyMn0ZoLEmbPrTHe5YYRlDYPvPWVdV4cTaRyH7g==, - } + resolution: {integrity: sha512-ayJ0iOCDNHnKpKTgBG6Q6JOnHTj9zFta+3j2b8Ejza0e4cvRyMn0ZoLEmbPrTHe5YYRlDYPvPWVdV4cTaRyH7g==} dependencies: - "@types/expect": 1.20.4 - "@types/node": 18.11.9 + '@types/expect': 1.20.4 + '@types/node': 18.11.9 dev: true /@types/watchpack/1.1.1: - resolution: - { - integrity: sha512-3hDTwERUO/BZKlQ0x9bazD6EsF9nf2yJ1HL6ukimd+r6Pw5Zgf/9EzOZ2wdck6gBSx8f0Zm/HTihedojQuIrIw==, - } + resolution: {integrity: sha512-3hDTwERUO/BZKlQ0x9bazD6EsF9nf2yJ1HL6ukimd+r6Pw5Zgf/9EzOZ2wdck6gBSx8f0Zm/HTihedojQuIrIw==} dependencies: - "@types/chokidar": 2.1.3 - "@types/graceful-fs": 4.1.5 - "@types/node": 18.11.9 + '@types/chokidar': 2.1.3 + '@types/graceful-fs': 4.1.5 + '@types/node': 18.11.9 dev: true /@types/yargs-parser/21.0.0: - resolution: - { - integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==, - } + resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} /@types/yargs/16.0.4: - resolution: - { - integrity: sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==, - } + resolution: {integrity: sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==} dependencies: - "@types/yargs-parser": 21.0.0 + '@types/yargs-parser': 21.0.0 dev: true /@types/yargs/17.0.13: - resolution: - { - integrity: sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==, - } + resolution: {integrity: sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==} dependencies: - "@types/yargs-parser": 21.0.0 + '@types/yargs-parser': 21.0.0 /@types/yauzl/2.10.0: - resolution: - { - integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==, - } + resolution: {integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==} requiresBuild: true dependencies: - "@types/node": 18.11.9 + '@types/node': 18.11.9 dev: true optional: true /@types/yoga-layout/1.9.2: - resolution: - { - integrity: sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==, - } + resolution: {integrity: sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==} dev: false /@typescript-eslint/eslint-plugin/5.42.1_6dla7skwulzvrxac2nj7jbunfa: - resolution: - { - integrity: sha512-LyR6x784JCiJ1j6sH5Y0K6cdExqCCm8DJUTcwG5ThNXJj/G8o5E56u5EdG4SLy+bZAwZBswC+GYn3eGdttBVCg==, - } + resolution: {integrity: sha512-LyR6x784JCiJ1j6sH5Y0K6cdExqCCm8DJUTcwG5ThNXJj/G8o5E56u5EdG4SLy+bZAwZBswC+GYn3eGdttBVCg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - "@typescript-eslint/parser": ^5.0.0 + '@typescript-eslint/parser': ^5.0.0 eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: "*" + typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - "@typescript-eslint/parser": 5.9.1_nw6v2wse7au2evadw7vu3hneg4 - "@typescript-eslint/scope-manager": 5.42.1 - "@typescript-eslint/type-utils": 5.42.1_nw6v2wse7au2evadw7vu3hneg4 - "@typescript-eslint/utils": 5.42.1_nw6v2wse7au2evadw7vu3hneg4 + '@typescript-eslint/parser': 5.9.1_nw6v2wse7au2evadw7vu3hneg4 + '@typescript-eslint/scope-manager': 5.42.1 + '@typescript-eslint/type-utils': 5.42.1_nw6v2wse7au2evadw7vu3hneg4 + '@typescript-eslint/utils': 5.42.1_nw6v2wse7au2evadw7vu3hneg4 debug: 4.3.4_supports-color@8.1.1 eslint: 8.27.0_supports-color@8.1.1 ignore: 5.2.0 @@ -7076,22 +6009,19 @@ packages: dev: true /@typescript-eslint/eslint-plugin/5.42.1_rmayb2veg2btbq6mbmnyivgasy: - resolution: - { - integrity: sha512-LyR6x784JCiJ1j6sH5Y0K6cdExqCCm8DJUTcwG5ThNXJj/G8o5E56u5EdG4SLy+bZAwZBswC+GYn3eGdttBVCg==, - } + resolution: {integrity: sha512-LyR6x784JCiJ1j6sH5Y0K6cdExqCCm8DJUTcwG5ThNXJj/G8o5E56u5EdG4SLy+bZAwZBswC+GYn3eGdttBVCg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - "@typescript-eslint/parser": ^5.0.0 + '@typescript-eslint/parser': ^5.0.0 eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: "*" + typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - "@typescript-eslint/scope-manager": 5.42.1 - "@typescript-eslint/type-utils": 5.42.1_rmayb2veg2btbq6mbmnyivgasy - "@typescript-eslint/utils": 5.42.1_rmayb2veg2btbq6mbmnyivgasy + '@typescript-eslint/scope-manager': 5.42.1 + '@typescript-eslint/type-utils': 5.42.1_rmayb2veg2btbq6mbmnyivgasy + '@typescript-eslint/utils': 5.42.1_rmayb2veg2btbq6mbmnyivgasy debug: 4.3.4 eslint: 8.27.0 ignore: 5.2.0 @@ -7105,23 +6035,20 @@ packages: dev: true /@typescript-eslint/eslint-plugin/5.42.1_z4ocgzhfuku3ho6vky337zbopm: - resolution: - { - integrity: sha512-LyR6x784JCiJ1j6sH5Y0K6cdExqCCm8DJUTcwG5ThNXJj/G8o5E56u5EdG4SLy+bZAwZBswC+GYn3eGdttBVCg==, - } + resolution: {integrity: sha512-LyR6x784JCiJ1j6sH5Y0K6cdExqCCm8DJUTcwG5ThNXJj/G8o5E56u5EdG4SLy+bZAwZBswC+GYn3eGdttBVCg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - "@typescript-eslint/parser": ^5.0.0 + '@typescript-eslint/parser': ^5.0.0 eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: "*" + typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - "@typescript-eslint/parser": 5.9.1_typescript@4.8.4 - "@typescript-eslint/scope-manager": 5.42.1 - "@typescript-eslint/type-utils": 5.42.1_typescript@4.8.4 - "@typescript-eslint/utils": 5.42.1_typescript@4.8.4 + '@typescript-eslint/parser': 5.9.1_typescript@4.8.4 + '@typescript-eslint/scope-manager': 5.42.1 + '@typescript-eslint/type-utils': 5.42.1_typescript@4.8.4 + '@typescript-eslint/utils': 5.42.1_typescript@4.8.4 debug: 4.3.4 ignore: 5.2.0 natural-compare-lite: 1.4.0 @@ -7134,37 +6061,50 @@ packages: dev: false /@typescript-eslint/experimental-utils/5.28.0_rmayb2veg2btbq6mbmnyivgasy: - resolution: - { - integrity: sha512-pPQ1Ng4qezQijXBBfYlogcOPnMs1q14l8C4fWJJ4PnFla4MA2b2oBfdkf02r1lNak2tpBVNJxvey9oWlPQWc4w==, - } + resolution: {integrity: sha512-pPQ1Ng4qezQijXBBfYlogcOPnMs1q14l8C4fWJJ4PnFla4MA2b2oBfdkf02r1lNak2tpBVNJxvey9oWlPQWc4w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - "@typescript-eslint/utils": 5.28.0_rmayb2veg2btbq6mbmnyivgasy + '@typescript-eslint/utils': 5.28.0_rmayb2veg2btbq6mbmnyivgasy eslint: 8.27.0 transitivePeerDependencies: - supports-color - typescript dev: true + /@typescript-eslint/parser/5.43.0_3qfatcekpgbllh6uk5ivyhkbxq: + resolution: {integrity: sha512-2iHUK2Lh7PwNUlhFxxLI2haSDNyXvebBO9izhjhMoDC+S3XI9qt2DGFUsiJ89m2k7gGYch2aEpYqV5F/+nwZug==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.43.0 + '@typescript-eslint/types': 5.43.0 + '@typescript-eslint/typescript-estree': 5.43.0_typescript@5.0.4 + debug: 4.3.4 + eslint: 8.40.0 + typescript: 5.0.4 + transitivePeerDependencies: + - supports-color + /@typescript-eslint/parser/5.43.0_rmayb2veg2btbq6mbmnyivgasy: - resolution: - { - integrity: sha512-2iHUK2Lh7PwNUlhFxxLI2haSDNyXvebBO9izhjhMoDC+S3XI9qt2DGFUsiJ89m2k7gGYch2aEpYqV5F/+nwZug==, - } + resolution: {integrity: sha512-2iHUK2Lh7PwNUlhFxxLI2haSDNyXvebBO9izhjhMoDC+S3XI9qt2DGFUsiJ89m2k7gGYch2aEpYqV5F/+nwZug==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: "*" + typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - "@typescript-eslint/scope-manager": 5.43.0 - "@typescript-eslint/types": 5.43.0 - "@typescript-eslint/typescript-estree": 5.43.0_typescript@4.8.4 + '@typescript-eslint/scope-manager': 5.43.0 + '@typescript-eslint/types': 5.43.0 + '@typescript-eslint/typescript-estree': 5.43.0_typescript@4.8.4 debug: 4.3.4 eslint: 8.27.0 typescript: 4.8.4 @@ -7173,21 +6113,18 @@ packages: dev: true /@typescript-eslint/parser/5.43.0_typescript@4.8.4: - resolution: - { - integrity: sha512-2iHUK2Lh7PwNUlhFxxLI2haSDNyXvebBO9izhjhMoDC+S3XI9qt2DGFUsiJ89m2k7gGYch2aEpYqV5F/+nwZug==, - } + resolution: {integrity: sha512-2iHUK2Lh7PwNUlhFxxLI2haSDNyXvebBO9izhjhMoDC+S3XI9qt2DGFUsiJ89m2k7gGYch2aEpYqV5F/+nwZug==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: "*" + typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - "@typescript-eslint/scope-manager": 5.43.0 - "@typescript-eslint/types": 5.43.0 - "@typescript-eslint/typescript-estree": 5.43.0_typescript@4.8.4 + '@typescript-eslint/scope-manager': 5.43.0 + '@typescript-eslint/types': 5.43.0 + '@typescript-eslint/typescript-estree': 5.43.0_typescript@4.8.4 debug: 4.3.4 typescript: 4.8.4 transitivePeerDependencies: @@ -7195,21 +6132,18 @@ packages: dev: false /@typescript-eslint/parser/5.43.0_wyqvi574yv7oiwfeinomdzmc3m: - resolution: - { - integrity: sha512-2iHUK2Lh7PwNUlhFxxLI2haSDNyXvebBO9izhjhMoDC+S3XI9qt2DGFUsiJ89m2k7gGYch2aEpYqV5F/+nwZug==, - } + resolution: {integrity: sha512-2iHUK2Lh7PwNUlhFxxLI2haSDNyXvebBO9izhjhMoDC+S3XI9qt2DGFUsiJ89m2k7gGYch2aEpYqV5F/+nwZug==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: "*" + typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - "@typescript-eslint/scope-manager": 5.43.0 - "@typescript-eslint/types": 5.43.0 - "@typescript-eslint/typescript-estree": 5.43.0_typescript@4.8.4 + '@typescript-eslint/scope-manager': 5.43.0 + '@typescript-eslint/types': 5.43.0 + '@typescript-eslint/typescript-estree': 5.43.0_typescript@4.8.4 debug: 4.3.4 eslint: 8.26.0 typescript: 4.8.4 @@ -7217,21 +6151,18 @@ packages: - supports-color /@typescript-eslint/parser/5.9.1_nw6v2wse7au2evadw7vu3hneg4: - resolution: - { - integrity: sha512-PLYO0AmwD6s6n0ZQB5kqPgfvh73p0+VqopQQLuNfi7Lm0EpfKyDalchpVwkE+81k5HeiRrTV/9w1aNHzjD7C4g==, - } + resolution: {integrity: sha512-PLYO0AmwD6s6n0ZQB5kqPgfvh73p0+VqopQQLuNfi7Lm0EpfKyDalchpVwkE+81k5HeiRrTV/9w1aNHzjD7C4g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: "*" + typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - "@typescript-eslint/scope-manager": 5.9.1 - "@typescript-eslint/types": 5.9.1 - "@typescript-eslint/typescript-estree": 5.9.1_rlpflyxsp53dgdidn3vadezrry + '@typescript-eslint/scope-manager': 5.9.1 + '@typescript-eslint/types': 5.9.1 + '@typescript-eslint/typescript-estree': 5.9.1_rlpflyxsp53dgdidn3vadezrry debug: 4.3.4_supports-color@8.1.1 eslint: 8.27.0_supports-color@8.1.1 typescript: 4.8.4 @@ -7240,21 +6171,18 @@ packages: dev: true /@typescript-eslint/parser/5.9.1_typescript@4.8.4: - resolution: - { - integrity: sha512-PLYO0AmwD6s6n0ZQB5kqPgfvh73p0+VqopQQLuNfi7Lm0EpfKyDalchpVwkE+81k5HeiRrTV/9w1aNHzjD7C4g==, - } + resolution: {integrity: sha512-PLYO0AmwD6s6n0ZQB5kqPgfvh73p0+VqopQQLuNfi7Lm0EpfKyDalchpVwkE+81k5HeiRrTV/9w1aNHzjD7C4g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: "*" + typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - "@typescript-eslint/scope-manager": 5.9.1 - "@typescript-eslint/types": 5.9.1 - "@typescript-eslint/typescript-estree": 5.9.1_typescript@4.8.4 + '@typescript-eslint/scope-manager': 5.9.1 + '@typescript-eslint/types': 5.9.1 + '@typescript-eslint/typescript-estree': 5.9.1_typescript@4.8.4 debug: 4.3.4 typescript: 4.8.4 transitivePeerDependencies: @@ -7262,61 +6190,46 @@ packages: dev: false /@typescript-eslint/scope-manager/5.28.0: - resolution: - { - integrity: sha512-LeBLTqF/he1Z+boRhSqnso6YrzcKMTQ8bO/YKEe+6+O/JGof9M0g3IJlIsqfrK/6K03MlFIlycbf1uQR1IjE+w==, - } + resolution: {integrity: sha512-LeBLTqF/he1Z+boRhSqnso6YrzcKMTQ8bO/YKEe+6+O/JGof9M0g3IJlIsqfrK/6K03MlFIlycbf1uQR1IjE+w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - "@typescript-eslint/types": 5.28.0 - "@typescript-eslint/visitor-keys": 5.28.0 + '@typescript-eslint/types': 5.28.0 + '@typescript-eslint/visitor-keys': 5.28.0 dev: true /@typescript-eslint/scope-manager/5.42.1: - resolution: - { - integrity: sha512-QAZY/CBP1Emx4rzxurgqj3rUinfsh/6mvuKbLNMfJMMKYLRBfweus8brgXF8f64ABkIZ3zdj2/rYYtF8eiuksQ==, - } + resolution: {integrity: sha512-QAZY/CBP1Emx4rzxurgqj3rUinfsh/6mvuKbLNMfJMMKYLRBfweus8brgXF8f64ABkIZ3zdj2/rYYtF8eiuksQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - "@typescript-eslint/types": 5.42.1 - "@typescript-eslint/visitor-keys": 5.42.1 + '@typescript-eslint/types': 5.42.1 + '@typescript-eslint/visitor-keys': 5.42.1 /@typescript-eslint/scope-manager/5.43.0: - resolution: - { - integrity: sha512-XNWnGaqAtTJsUiZaoiGIrdJYHsUOd3BZ3Qj5zKp9w6km6HsrjPk/TGZv0qMTWyWj0+1QOqpHQ2gZOLXaGA9Ekw==, - } + resolution: {integrity: sha512-XNWnGaqAtTJsUiZaoiGIrdJYHsUOd3BZ3Qj5zKp9w6km6HsrjPk/TGZv0qMTWyWj0+1QOqpHQ2gZOLXaGA9Ekw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - "@typescript-eslint/types": 5.43.0 - "@typescript-eslint/visitor-keys": 5.43.0 + '@typescript-eslint/types': 5.43.0 + '@typescript-eslint/visitor-keys': 5.43.0 /@typescript-eslint/scope-manager/5.9.1: - resolution: - { - integrity: sha512-8BwvWkho3B/UOtzRyW07ffJXPaLSUKFBjpq8aqsRvu6HdEuzCY57+ffT7QoV4QXJXWSU1+7g3wE4AlgImmQ9pQ==, - } + resolution: {integrity: sha512-8BwvWkho3B/UOtzRyW07ffJXPaLSUKFBjpq8aqsRvu6HdEuzCY57+ffT7QoV4QXJXWSU1+7g3wE4AlgImmQ9pQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - "@typescript-eslint/types": 5.9.1 - "@typescript-eslint/visitor-keys": 5.9.1 + '@typescript-eslint/types': 5.9.1 + '@typescript-eslint/visitor-keys': 5.9.1 /@typescript-eslint/type-utils/5.42.1_nw6v2wse7au2evadw7vu3hneg4: - resolution: - { - integrity: sha512-WWiMChneex5w4xPIX56SSnQQo0tEOy5ZV2dqmj8Z371LJ0E+aymWD25JQ/l4FOuuX+Q49A7pzh/CGIQflxMVXg==, - } + resolution: {integrity: sha512-WWiMChneex5w4xPIX56SSnQQo0tEOy5ZV2dqmj8Z371LJ0E+aymWD25JQ/l4FOuuX+Q49A7pzh/CGIQflxMVXg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: "*" - typescript: "*" + eslint: '*' + typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - "@typescript-eslint/typescript-estree": 5.42.1_rlpflyxsp53dgdidn3vadezrry - "@typescript-eslint/utils": 5.42.1_nw6v2wse7au2evadw7vu3hneg4 + '@typescript-eslint/typescript-estree': 5.42.1_rlpflyxsp53dgdidn3vadezrry + '@typescript-eslint/utils': 5.42.1_nw6v2wse7au2evadw7vu3hneg4 debug: 4.3.4_supports-color@8.1.1 eslint: 8.27.0_supports-color@8.1.1 tsutils: 3.21.0_typescript@4.8.4 @@ -7326,20 +6239,17 @@ packages: dev: true /@typescript-eslint/type-utils/5.42.1_rmayb2veg2btbq6mbmnyivgasy: - resolution: - { - integrity: sha512-WWiMChneex5w4xPIX56SSnQQo0tEOy5ZV2dqmj8Z371LJ0E+aymWD25JQ/l4FOuuX+Q49A7pzh/CGIQflxMVXg==, - } + resolution: {integrity: sha512-WWiMChneex5w4xPIX56SSnQQo0tEOy5ZV2dqmj8Z371LJ0E+aymWD25JQ/l4FOuuX+Q49A7pzh/CGIQflxMVXg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: "*" - typescript: "*" + eslint: '*' + typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - "@typescript-eslint/typescript-estree": 5.42.1_typescript@4.8.4 - "@typescript-eslint/utils": 5.42.1_rmayb2veg2btbq6mbmnyivgasy + '@typescript-eslint/typescript-estree': 5.42.1_typescript@4.8.4 + '@typescript-eslint/utils': 5.42.1_rmayb2veg2btbq6mbmnyivgasy debug: 4.3.4 eslint: 8.27.0 tsutils: 3.21.0_typescript@4.8.4 @@ -7349,20 +6259,17 @@ packages: dev: true /@typescript-eslint/type-utils/5.42.1_typescript@4.8.4: - resolution: - { - integrity: sha512-WWiMChneex5w4xPIX56SSnQQo0tEOy5ZV2dqmj8Z371LJ0E+aymWD25JQ/l4FOuuX+Q49A7pzh/CGIQflxMVXg==, - } + resolution: {integrity: sha512-WWiMChneex5w4xPIX56SSnQQo0tEOy5ZV2dqmj8Z371LJ0E+aymWD25JQ/l4FOuuX+Q49A7pzh/CGIQflxMVXg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: "*" - typescript: "*" + eslint: '*' + typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - "@typescript-eslint/typescript-estree": 5.42.1_typescript@4.8.4 - "@typescript-eslint/utils": 5.42.1_typescript@4.8.4 + '@typescript-eslint/typescript-estree': 5.42.1_typescript@4.8.4 + '@typescript-eslint/utils': 5.42.1_typescript@4.8.4 debug: 4.3.4 tsutils: 3.21.0_typescript@4.8.4 typescript: 4.8.4 @@ -7371,48 +6278,33 @@ packages: dev: false /@typescript-eslint/types/5.28.0: - resolution: - { - integrity: sha512-2OOm8ZTOQxqkPbf+DAo8oc16sDlVR5owgJfKheBkxBKg1vAfw2JsSofH9+16VPlN9PWtv8Wzhklkqw3k/zCVxA==, - } + resolution: {integrity: sha512-2OOm8ZTOQxqkPbf+DAo8oc16sDlVR5owgJfKheBkxBKg1vAfw2JsSofH9+16VPlN9PWtv8Wzhklkqw3k/zCVxA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true /@typescript-eslint/types/5.42.1: - resolution: - { - integrity: sha512-Qrco9dsFF5lhalz+lLFtxs3ui1/YfC6NdXu+RAGBa8uSfn01cjO7ssCsjIsUs484vny9Xm699FSKwpkCcqwWwA==, - } + resolution: {integrity: sha512-Qrco9dsFF5lhalz+lLFtxs3ui1/YfC6NdXu+RAGBa8uSfn01cjO7ssCsjIsUs484vny9Xm699FSKwpkCcqwWwA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} /@typescript-eslint/types/5.43.0: - resolution: - { - integrity: sha512-jpsbcD0x6AUvV7tyOlyvon0aUsQpF8W+7TpJntfCUWU1qaIKu2K34pMwQKSzQH8ORgUrGYY6pVIh1Pi8TNeteg==, - } + resolution: {integrity: sha512-jpsbcD0x6AUvV7tyOlyvon0aUsQpF8W+7TpJntfCUWU1qaIKu2K34pMwQKSzQH8ORgUrGYY6pVIh1Pi8TNeteg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} /@typescript-eslint/types/5.9.1: - resolution: - { - integrity: sha512-SsWegWudWpkZCwwYcKoDwuAjoZXnM1y2EbEerTHho19Hmm+bQ56QG4L4jrtCu0bI5STaRTvRTZmjprWlTw/5NQ==, - } + resolution: {integrity: sha512-SsWegWudWpkZCwwYcKoDwuAjoZXnM1y2EbEerTHho19Hmm+bQ56QG4L4jrtCu0bI5STaRTvRTZmjprWlTw/5NQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} /@typescript-eslint/typescript-estree/5.28.0_typescript@4.8.4: - resolution: - { - integrity: sha512-9GX+GfpV+F4hdTtYc6OV9ZkyYilGXPmQpm6AThInpBmKJEyRSIjORJd1G9+bknb7OTFYL+Vd4FBJAO6T78OVqA==, - } + resolution: {integrity: sha512-9GX+GfpV+F4hdTtYc6OV9ZkyYilGXPmQpm6AThInpBmKJEyRSIjORJd1G9+bknb7OTFYL+Vd4FBJAO6T78OVqA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - typescript: "*" + typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - "@typescript-eslint/types": 5.28.0 - "@typescript-eslint/visitor-keys": 5.28.0 + '@typescript-eslint/types': 5.28.0 + '@typescript-eslint/visitor-keys': 5.28.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -7424,19 +6316,16 @@ packages: dev: true /@typescript-eslint/typescript-estree/5.42.1_rlpflyxsp53dgdidn3vadezrry: - resolution: - { - integrity: sha512-qElc0bDOuO0B8wDhhW4mYVgi/LZL+igPwXtV87n69/kYC/7NG3MES0jHxJNCr4EP7kY1XVsRy8C/u3DYeTKQmw==, - } + resolution: {integrity: sha512-qElc0bDOuO0B8wDhhW4mYVgi/LZL+igPwXtV87n69/kYC/7NG3MES0jHxJNCr4EP7kY1XVsRy8C/u3DYeTKQmw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - typescript: "*" + typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - "@typescript-eslint/types": 5.42.1 - "@typescript-eslint/visitor-keys": 5.42.1 + '@typescript-eslint/types': 5.42.1 + '@typescript-eslint/visitor-keys': 5.42.1 debug: 4.3.4_supports-color@8.1.1 globby: 11.1.0 is-glob: 4.0.3 @@ -7448,19 +6337,16 @@ packages: dev: true /@typescript-eslint/typescript-estree/5.42.1_typescript@4.8.4: - resolution: - { - integrity: sha512-qElc0bDOuO0B8wDhhW4mYVgi/LZL+igPwXtV87n69/kYC/7NG3MES0jHxJNCr4EP7kY1XVsRy8C/u3DYeTKQmw==, - } + resolution: {integrity: sha512-qElc0bDOuO0B8wDhhW4mYVgi/LZL+igPwXtV87n69/kYC/7NG3MES0jHxJNCr4EP7kY1XVsRy8C/u3DYeTKQmw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - typescript: "*" + typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - "@typescript-eslint/types": 5.42.1 - "@typescript-eslint/visitor-keys": 5.42.1 + '@typescript-eslint/types': 5.42.1 + '@typescript-eslint/visitor-keys': 5.42.1 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -7471,19 +6357,16 @@ packages: - supports-color /@typescript-eslint/typescript-estree/5.43.0_typescript@4.8.4: - resolution: - { - integrity: sha512-BZ1WVe+QQ+igWal2tDbNg1j2HWUkAa+CVqdU79L4HP9izQY6CNhXfkNwd1SS4+sSZAP/EthI1uiCSY/+H0pROg==, - } + resolution: {integrity: sha512-BZ1WVe+QQ+igWal2tDbNg1j2HWUkAa+CVqdU79L4HP9izQY6CNhXfkNwd1SS4+sSZAP/EthI1uiCSY/+H0pROg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - typescript: "*" + typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - "@typescript-eslint/types": 5.43.0 - "@typescript-eslint/visitor-keys": 5.43.0 + '@typescript-eslint/types': 5.43.0 + '@typescript-eslint/visitor-keys': 5.43.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -7493,20 +6376,37 @@ packages: transitivePeerDependencies: - supports-color + /@typescript-eslint/typescript-estree/5.43.0_typescript@5.0.4: + resolution: {integrity: sha512-BZ1WVe+QQ+igWal2tDbNg1j2HWUkAa+CVqdU79L4HP9izQY6CNhXfkNwd1SS4+sSZAP/EthI1uiCSY/+H0pROg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.43.0 + '@typescript-eslint/visitor-keys': 5.43.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.3.8 + tsutils: 3.21.0_typescript@5.0.4 + typescript: 5.0.4 + transitivePeerDependencies: + - supports-color + /@typescript-eslint/typescript-estree/5.9.1_rlpflyxsp53dgdidn3vadezrry: - resolution: - { - integrity: sha512-gL1sP6A/KG0HwrahVXI9fZyeVTxEYV//6PmcOn1tD0rw8VhUWYeZeuWHwwhnewnvEMcHjhnJLOBhA9rK4vmb8A==, - } + resolution: {integrity: sha512-gL1sP6A/KG0HwrahVXI9fZyeVTxEYV//6PmcOn1tD0rw8VhUWYeZeuWHwwhnewnvEMcHjhnJLOBhA9rK4vmb8A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - typescript: "*" + typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - "@typescript-eslint/types": 5.9.1 - "@typescript-eslint/visitor-keys": 5.9.1 + '@typescript-eslint/types': 5.9.1 + '@typescript-eslint/visitor-keys': 5.9.1 debug: 4.3.3_supports-color@8.1.1 globby: 11.1.0 is-glob: 4.0.3 @@ -7518,19 +6418,16 @@ packages: dev: true /@typescript-eslint/typescript-estree/5.9.1_typescript@4.8.4: - resolution: - { - integrity: sha512-gL1sP6A/KG0HwrahVXI9fZyeVTxEYV//6PmcOn1tD0rw8VhUWYeZeuWHwwhnewnvEMcHjhnJLOBhA9rK4vmb8A==, - } + resolution: {integrity: sha512-gL1sP6A/KG0HwrahVXI9fZyeVTxEYV//6PmcOn1tD0rw8VhUWYeZeuWHwwhnewnvEMcHjhnJLOBhA9rK4vmb8A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - typescript: "*" + typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - "@typescript-eslint/types": 5.9.1 - "@typescript-eslint/visitor-keys": 5.9.1 + '@typescript-eslint/types': 5.9.1 + '@typescript-eslint/visitor-keys': 5.9.1 debug: 4.3.3 globby: 11.1.0 is-glob: 4.0.3 @@ -7542,18 +6439,15 @@ packages: dev: false /@typescript-eslint/utils/5.28.0_rmayb2veg2btbq6mbmnyivgasy: - resolution: - { - integrity: sha512-E60N5L0fjv7iPJV3UGc4EC+A3Lcj4jle9zzR0gW7vXhflO7/J29kwiTGITA2RlrmPokKiZbBy2DgaclCaEUs6g==, - } + resolution: {integrity: sha512-E60N5L0fjv7iPJV3UGc4EC+A3Lcj4jle9zzR0gW7vXhflO7/J29kwiTGITA2RlrmPokKiZbBy2DgaclCaEUs6g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - "@types/json-schema": 7.0.11 - "@typescript-eslint/scope-manager": 5.28.0 - "@typescript-eslint/types": 5.28.0 - "@typescript-eslint/typescript-estree": 5.28.0_typescript@4.8.4 + '@types/json-schema': 7.0.11 + '@typescript-eslint/scope-manager': 5.28.0 + '@typescript-eslint/types': 5.28.0 + '@typescript-eslint/typescript-estree': 5.28.0_typescript@4.8.4 eslint: 8.27.0 eslint-scope: 5.1.1 eslint-utils: 3.0.0_eslint@8.27.0 @@ -7563,19 +6457,16 @@ packages: dev: true /@typescript-eslint/utils/5.42.1_nw6v2wse7au2evadw7vu3hneg4: - resolution: - { - integrity: sha512-Gxvf12xSp3iYZd/fLqiQRD4uKZjDNR01bQ+j8zvhPjpsZ4HmvEFL/tC4amGNyxN9Rq+iqvpHLhlqx6KTxz9ZyQ==, - } + resolution: {integrity: sha512-Gxvf12xSp3iYZd/fLqiQRD4uKZjDNR01bQ+j8zvhPjpsZ4HmvEFL/tC4amGNyxN9Rq+iqvpHLhlqx6KTxz9ZyQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - "@types/json-schema": 7.0.11 - "@types/semver": 7.3.13 - "@typescript-eslint/scope-manager": 5.42.1 - "@typescript-eslint/types": 5.42.1 - "@typescript-eslint/typescript-estree": 5.42.1_rlpflyxsp53dgdidn3vadezrry + '@types/json-schema': 7.0.11 + '@types/semver': 7.3.13 + '@typescript-eslint/scope-manager': 5.42.1 + '@typescript-eslint/types': 5.42.1 + '@typescript-eslint/typescript-estree': 5.42.1_rlpflyxsp53dgdidn3vadezrry eslint: 8.27.0_supports-color@8.1.1 eslint-scope: 5.1.1 eslint-utils: 3.0.0_eslint@8.27.0 @@ -7586,19 +6477,16 @@ packages: dev: true /@typescript-eslint/utils/5.42.1_rmayb2veg2btbq6mbmnyivgasy: - resolution: - { - integrity: sha512-Gxvf12xSp3iYZd/fLqiQRD4uKZjDNR01bQ+j8zvhPjpsZ4HmvEFL/tC4amGNyxN9Rq+iqvpHLhlqx6KTxz9ZyQ==, - } + resolution: {integrity: sha512-Gxvf12xSp3iYZd/fLqiQRD4uKZjDNR01bQ+j8zvhPjpsZ4HmvEFL/tC4amGNyxN9Rq+iqvpHLhlqx6KTxz9ZyQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - "@types/json-schema": 7.0.11 - "@types/semver": 7.3.13 - "@typescript-eslint/scope-manager": 5.42.1 - "@typescript-eslint/types": 5.42.1 - "@typescript-eslint/typescript-estree": 5.42.1_typescript@4.8.4 + '@types/json-schema': 7.0.11 + '@types/semver': 7.3.13 + '@typescript-eslint/scope-manager': 5.42.1 + '@typescript-eslint/types': 5.42.1 + '@typescript-eslint/typescript-estree': 5.42.1_typescript@4.8.4 eslint: 8.27.0 eslint-scope: 5.1.1 eslint-utils: 3.0.0_eslint@8.27.0 @@ -7609,19 +6497,16 @@ packages: dev: true /@typescript-eslint/utils/5.42.1_typescript@4.8.4: - resolution: - { - integrity: sha512-Gxvf12xSp3iYZd/fLqiQRD4uKZjDNR01bQ+j8zvhPjpsZ4HmvEFL/tC4amGNyxN9Rq+iqvpHLhlqx6KTxz9ZyQ==, - } + resolution: {integrity: sha512-Gxvf12xSp3iYZd/fLqiQRD4uKZjDNR01bQ+j8zvhPjpsZ4HmvEFL/tC4amGNyxN9Rq+iqvpHLhlqx6KTxz9ZyQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - "@types/json-schema": 7.0.11 - "@types/semver": 7.3.13 - "@typescript-eslint/scope-manager": 5.42.1 - "@typescript-eslint/types": 5.42.1 - "@typescript-eslint/typescript-estree": 5.42.1_typescript@4.8.4 + '@types/json-schema': 7.0.11 + '@types/semver': 7.3.13 + '@typescript-eslint/scope-manager': 5.42.1 + '@typescript-eslint/types': 5.42.1 + '@typescript-eslint/typescript-estree': 5.42.1_typescript@4.8.4 eslint-scope: 5.1.1 eslint-utils: 3.0.0 semver: 7.3.8 @@ -7631,59 +6516,44 @@ packages: dev: false /@typescript-eslint/visitor-keys/5.28.0: - resolution: - { - integrity: sha512-BtfP1vCor8cWacovzzPFOoeW4kBQxzmhxGoOpt0v1SFvG+nJ0cWaVdJk7cky1ArTcFHHKNIxyo2LLr3oNkSuXA==, - } + resolution: {integrity: sha512-BtfP1vCor8cWacovzzPFOoeW4kBQxzmhxGoOpt0v1SFvG+nJ0cWaVdJk7cky1ArTcFHHKNIxyo2LLr3oNkSuXA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - "@typescript-eslint/types": 5.28.0 + '@typescript-eslint/types': 5.28.0 eslint-visitor-keys: 3.3.0 dev: true /@typescript-eslint/visitor-keys/5.42.1: - resolution: - { - integrity: sha512-LOQtSF4z+hejmpUvitPlc4hA7ERGoj2BVkesOcG91HCn8edLGUXbTrErmutmPbl8Bo9HjAvOO/zBKQHExXNA2A==, - } + resolution: {integrity: sha512-LOQtSF4z+hejmpUvitPlc4hA7ERGoj2BVkesOcG91HCn8edLGUXbTrErmutmPbl8Bo9HjAvOO/zBKQHExXNA2A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - "@typescript-eslint/types": 5.42.1 + '@typescript-eslint/types': 5.42.1 eslint-visitor-keys: 3.3.0 /@typescript-eslint/visitor-keys/5.43.0: - resolution: - { - integrity: sha512-icl1jNH/d18OVHLfcwdL3bWUKsBeIiKYTGxMJCoGe7xFht+E4QgzOqoWYrU8XSLJWhVw8nTacbm03v23J/hFTg==, - } + resolution: {integrity: sha512-icl1jNH/d18OVHLfcwdL3bWUKsBeIiKYTGxMJCoGe7xFht+E4QgzOqoWYrU8XSLJWhVw8nTacbm03v23J/hFTg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - "@typescript-eslint/types": 5.43.0 - eslint-visitor-keys: 3.3.0 + '@typescript-eslint/types': 5.43.0 + eslint-visitor-keys: 3.4.1 /@typescript-eslint/visitor-keys/5.9.1: - resolution: - { - integrity: sha512-Xh37pNz9e9ryW4TVdwiFzmr4hloty8cFj8GTWMXh3Z8swGwyQWeCcNgF0hm6t09iZd6eiZmIf4zHedQVP6TVtg==, - } + resolution: {integrity: sha512-Xh37pNz9e9ryW4TVdwiFzmr4hloty8cFj8GTWMXh3Z8swGwyQWeCcNgF0hm6t09iZd6eiZmIf4zHedQVP6TVtg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - "@typescript-eslint/types": 5.9.1 + '@typescript-eslint/types': 5.9.1 eslint-visitor-keys: 3.3.0 /@vitejs/plugin-react/1.3.0: - resolution: - { - integrity: sha512-H+yIupjUE4a+E4oeWUv4xUJIMR0DWBIMUG/DYgvj0J9Vu1rdHAlJ5JdbI+N1KDUD7Ee2fZ1DMPZ/NBg6mXtoCw==, - } - engines: {node: ">=12.0.0"} - dependencies: - "@babel/core": 7.18.2 - "@babel/plugin-transform-react-jsx": 7.17.12_@babel+core@7.18.2 - "@babel/plugin-transform-react-jsx-development": 7.16.7_@babel+core@7.18.2 - "@babel/plugin-transform-react-jsx-self": 7.17.12_@babel+core@7.18.2 - "@babel/plugin-transform-react-jsx-source": 7.16.7_@babel+core@7.18.2 - "@rollup/pluginutils": 4.2.1 + resolution: {integrity: sha512-H+yIupjUE4a+E4oeWUv4xUJIMR0DWBIMUG/DYgvj0J9Vu1rdHAlJ5JdbI+N1KDUD7Ee2fZ1DMPZ/NBg6mXtoCw==} + engines: {node: '>=12.0.0'} + dependencies: + '@babel/core': 7.18.2 + '@babel/plugin-transform-react-jsx': 7.17.12_@babel+core@7.18.2 + '@babel/plugin-transform-react-jsx-development': 7.16.7_@babel+core@7.18.2 + '@babel/plugin-transform-react-jsx-self': 7.17.12_@babel+core@7.18.2 + '@babel/plugin-transform-react-jsx-source': 7.16.7_@babel+core@7.18.2 + '@rollup/pluginutils': 4.2.1 react-refresh: 0.11.0 resolve: 1.22.0 transitivePeerDependencies: @@ -7691,19 +6561,16 @@ packages: dev: true /@vitejs/plugin-react/2.2.0: - resolution: - { - integrity: sha512-FFpefhvExd1toVRlokZgxgy2JtnBOdp4ZDsq7ldCWaqGSGn9UhWMAVm/1lxPL14JfNS5yGz+s9yFrQY6shoStA==, - } + resolution: {integrity: sha512-FFpefhvExd1toVRlokZgxgy2JtnBOdp4ZDsq7ldCWaqGSGn9UhWMAVm/1lxPL14JfNS5yGz+s9yFrQY6shoStA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^3.0.0 dependencies: - "@babel/core": 7.20.2 - "@babel/plugin-transform-react-jsx": 7.19.0_@babel+core@7.20.2 - "@babel/plugin-transform-react-jsx-development": 7.18.6_@babel+core@7.20.2 - "@babel/plugin-transform-react-jsx-self": 7.18.6_@babel+core@7.20.2 - "@babel/plugin-transform-react-jsx-source": 7.19.6_@babel+core@7.20.2 + '@babel/core': 7.20.2 + '@babel/plugin-transform-react-jsx': 7.19.0_@babel+core@7.20.2 + '@babel/plugin-transform-react-jsx-development': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-transform-react-jsx-self': 7.18.6_@babel+core@7.20.2 + '@babel/plugin-transform-react-jsx-source': 7.19.6_@babel+core@7.20.2 magic-string: 0.26.7 react-refresh: 0.14.0 transitivePeerDependencies: @@ -7711,122 +6578,80 @@ packages: dev: true /abab/2.0.6: - resolution: - { - integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==, - } + resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} /accepts/1.3.8: - resolution: - { - integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==, - } - engines: {node: ">= 0.6"} + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} dependencies: mime-types: 2.1.35 negotiator: 0.6.3 dev: true /acorn-globals/6.0.0: - resolution: - { - integrity: sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==, - } + resolution: {integrity: sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==} dependencies: acorn: 7.4.1 acorn-walk: 7.2.0 /acorn-globals/7.0.1: - resolution: - { - integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==, - } + resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} dependencies: acorn: 8.8.1 acorn-walk: 8.2.0 /acorn-jsx/5.3.2_acorn@8.8.1: - resolution: - { - integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, - } + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: acorn: 8.8.1 /acorn-walk/7.2.0: - resolution: - { - integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==, - } - engines: {node: ">=0.4.0"} + resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} + engines: {node: '>=0.4.0'} /acorn-walk/8.2.0: - resolution: - { - integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==, - } - engines: {node: ">=0.4.0"} + resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} + engines: {node: '>=0.4.0'} /acorn/7.4.1: - resolution: - { - integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==, - } - engines: {node: ">=0.4.0"} + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} + engines: {node: '>=0.4.0'} hasBin: true /acorn/8.7.1: - resolution: - { - integrity: sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==, - } - engines: {node: ">=0.4.0"} + resolution: {integrity: sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==} + engines: {node: '>=0.4.0'} hasBin: true /acorn/8.8.1: - resolution: - { - integrity: sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==, - } - engines: {node: ">=0.4.0"} + resolution: {integrity: sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==} + engines: {node: '>=0.4.0'} hasBin: true /address/1.2.0: - resolution: - { - integrity: sha512-tNEZYz5G/zYunxFm7sfhAxkXEuLj3K6BKwv6ZURlsF6yiUQ65z0Q2wZW9L5cPUl9ocofGvXOdFYbFHp0+6MOig==, - } - engines: {node: ">= 10.0.0"} + resolution: {integrity: sha512-tNEZYz5G/zYunxFm7sfhAxkXEuLj3K6BKwv6ZURlsF6yiUQ65z0Q2wZW9L5cPUl9ocofGvXOdFYbFHp0+6MOig==} + engines: {node: '>= 10.0.0'} dev: false /agent-base/6.0.2: - resolution: - { - integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==, - } - engines: {node: ">= 6.0.0"} + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} dependencies: - debug: 4.3.4 + debug: 4.3.3 transitivePeerDependencies: - supports-color /aggregate-error/3.1.0: - resolution: - { - integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} dependencies: clean-stack: 2.2.0 indent-string: 4.0.0 /ajv/6.12.6: - resolution: - { - integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, - } + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 @@ -7834,180 +6659,117 @@ packages: uri-js: 4.4.1 /ansi-align/3.0.1: - resolution: - { - integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==, - } + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} dependencies: string-width: 4.2.3 dev: false /ansi-colors/4.1.3: - resolution: - { - integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} dev: false /ansi-escapes/4.3.2: - resolution: - { - integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} dependencies: type-fest: 0.21.3 /ansi-regex/5.0.1: - resolution: - { - integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} /ansi-regex/6.0.1: - resolution: - { - integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} /ansi-styles/3.2.1: - resolution: - { - integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} dependencies: color-convert: 1.9.3 /ansi-styles/4.3.0: - resolution: - { - integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} dependencies: color-convert: 2.0.1 /ansi-styles/5.2.0: - resolution: - { - integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} /ansi-styles/6.1.0: - resolution: - { - integrity: sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==} + engines: {node: '>=12'} /any-promise/1.3.0: - resolution: - { - integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==, - } - dev: true + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} /anymatch/3.1.2: - resolution: - { - integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==, - } - engines: {node: ">= 8"} + resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} + engines: {node: '>= 8'} dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 /arg/4.1.3: - resolution: - { - integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==, - } + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} /arg/5.0.1: - resolution: - { - integrity: sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==, - } + resolution: {integrity: sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==} + dev: false + + /arg/5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} dev: false /argparse/1.0.10: - resolution: - { - integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==, - } + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: sprintf-js: 1.0.3 /argparse/2.0.1: - resolution: - { - integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, - } + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} /aria-query/4.2.2: - resolution: - { - integrity: sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==, - } - engines: {node: ">=6.0"} + resolution: {integrity: sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==} + engines: {node: '>=6.0'} dependencies: - "@babel/runtime": 7.18.3 - "@babel/runtime-corejs3": 7.18.3 + '@babel/runtime': 7.18.3 + '@babel/runtime-corejs3': 7.18.3 /aria-query/5.0.0: - resolution: - { - integrity: sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==, - } - engines: {node: ">=6.0"} + resolution: {integrity: sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==} + engines: {node: '>=6.0'} dev: true /arr-diff/4.0.0: - resolution: - { - integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} + engines: {node: '>=0.10.0'} dev: false /arr-flatten/1.1.0: - resolution: - { - integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} + engines: {node: '>=0.10.0'} dev: false /arr-union/3.1.0: - resolution: - { - integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} + engines: {node: '>=0.10.0'} dev: false /array-differ/3.0.0: - resolution: - { - integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} + engines: {node: '>=8'} /array-flatten/1.1.1: resolution: {integrity: sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=} dev: true /array-includes/3.1.5: - resolution: - { - integrity: sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==, - } - engines: {node: ">= 0.4"} + resolution: {integrity: sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.1.4 @@ -8016,44 +6778,29 @@ packages: is-string: 1.0.7 /array-union/1.0.2: - resolution: - { - integrity: sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==} + engines: {node: '>=0.10.0'} dependencies: array-uniq: 1.0.3 dev: false /array-union/2.1.0: - resolution: - { - integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} /array-uniq/1.0.3: - resolution: - { - integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==} + engines: {node: '>=0.10.0'} dev: false /array-unique/0.3.2: - resolution: - { - integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} + engines: {node: '>=0.10.0'} dev: false /array.prototype.flat/1.3.0: - resolution: - { - integrity: sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==, - } - engines: {node: ">= 0.4"} + resolution: {integrity: sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.1.4 @@ -8061,11 +6808,8 @@ packages: es-shim-unscopables: 1.0.0 /array.prototype.flatmap/1.3.0: - resolution: - { - integrity: sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==, - } - engines: {node: ">= 0.4"} + resolution: {integrity: sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.1.4 @@ -8073,126 +6817,91 @@ packages: es-shim-unscopables: 1.0.0 /arrify/1.0.1: - resolution: - { - integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} dev: false /arrify/2.0.1: - resolution: - { - integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} + engines: {node: '>=8'} /asap/2.0.6: - resolution: - { - integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==, - } + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} dev: true /assert-never/1.2.1: - resolution: - { - integrity: sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==, - } + resolution: {integrity: sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==} dev: true /assertion-error/1.1.0: - resolution: - { - integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==, - } + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} /assign-symbols/1.0.0: - resolution: - { - integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} + engines: {node: '>=0.10.0'} dev: false /ast-types-flow/0.0.7: - resolution: - { - integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==, - } + resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} /ast-types/0.14.2: - resolution: - { - integrity: sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==} + engines: {node: '>=4'} dependencies: tslib: 2.4.0 /astral-regex/2.0.0: - resolution: - { - integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} /async/1.5.2: - resolution: - { - integrity: sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==, - } + resolution: {integrity: sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==} dev: false /async/3.2.4: - resolution: - { - integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==, - } + resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} dev: false /asynckit/0.4.0: - resolution: - { - integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, - } + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} /at-least-node/1.0.0: - resolution: - { - integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==, - } - engines: {node: ">= 4.0.0"} + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} dev: true /atob/2.1.2: - resolution: - { - integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==, - } - engines: {node: ">= 4.5.0"} + resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} + engines: {node: '>= 4.5.0'} hasBin: true /auto-bind/4.0.0: - resolution: - { - integrity: sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==} + engines: {node: '>=8'} + dev: false + + /autoprefixer/10.4.14_postcss@8.4.23: + resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: 4.21.5 + caniuse-lite: 1.0.30001486 + fraction.js: 4.2.0 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.23 + postcss-value-parser: 4.2.0 dev: false /axe-core/4.4.2: - resolution: - { - integrity: sha512-LVAaGp/wkkgYJcjmHsoKx4juT1aQvJyPcW09MLCjVTh3V2cc6PnyempiLMNH5iMdfIX/zdbjUx2KDjMLCTdPeA==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-LVAaGp/wkkgYJcjmHsoKx4juT1aQvJyPcW09MLCjVTh3V2cc6PnyempiLMNH5iMdfIX/zdbjUx2KDjMLCTdPeA==} + engines: {node: '>=12'} /axios/0.24.0: - resolution: - { - integrity: sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==, - } + resolution: {integrity: sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==} dependencies: follow-redirects: 1.15.1 transitivePeerDependencies: @@ -8200,10 +6909,7 @@ packages: dev: true /axios/0.25.0: - resolution: - { - integrity: sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==, - } + resolution: {integrity: sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==} dependencies: follow-redirects: 1.15.1 transitivePeerDependencies: @@ -8211,42 +6917,30 @@ packages: dev: false /axobject-query/2.2.0: - resolution: - { - integrity: sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==, - } + resolution: {integrity: sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==} /b64-lite/1.4.0: - resolution: - { - integrity: sha512-aHe97M7DXt+dkpa8fHlCcm1CnskAHrJqEfMI0KN7dwqlzml/aUe1AGt6lk51HzrSfVD67xOso84sOpr+0wIe2w==, - } + resolution: {integrity: sha512-aHe97M7DXt+dkpa8fHlCcm1CnskAHrJqEfMI0KN7dwqlzml/aUe1AGt6lk51HzrSfVD67xOso84sOpr+0wIe2w==} dependencies: base-64: 0.1.0 /babel-core/7.0.0-bridge.0_@babel+core@7.18.2: - resolution: - { - integrity: sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==, - } + resolution: {integrity: sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==} peerDependencies: - "@babel/core": ^7.0.0-0 + '@babel/core': ^7.0.0-0 dependencies: - "@babel/core": 7.18.2_supports-color@8.1.1 + '@babel/core': 7.18.2_supports-color@8.1.1 dev: false /babel-jest/29.3.0_@babel+core@7.20.2: - resolution: - { - integrity: sha512-LzQWdGm6hUugVeyGpIKI/T4SVT+PgAA5WFPqBDbneK7C/PqfckNb0tc4KvcKXq/PLA1yY6wTvB8Bc/REQdUxFg==, - } + resolution: {integrity: sha512-LzQWdGm6hUugVeyGpIKI/T4SVT+PgAA5WFPqBDbneK7C/PqfckNb0tc4KvcKXq/PLA1yY6wTvB8Bc/REQdUxFg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: - "@babel/core": ^7.8.0 + '@babel/core': ^7.8.0 dependencies: - "@babel/core": 7.20.2 - "@jest/transform": 29.3.0 - "@types/babel__core": 7.1.19 + '@babel/core': 7.20.2 + '@jest/transform': 29.3.0 + '@types/babel__core': 7.1.19 babel-plugin-istanbul: 6.1.1 babel-preset-jest: 29.2.0_@babel+core@7.20.2 chalk: 4.1.2 @@ -8256,119 +6950,86 @@ packages: - supports-color /babel-plugin-dynamic-import-node/2.3.3: - resolution: - { - integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==, - } + resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} dependencies: object.assign: 4.1.2 /babel-plugin-istanbul/6.1.1: - resolution: - { - integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==, - } - engines: {node: ">=8"} - dependencies: - "@babel/helper-plugin-utils": 7.17.12 - "@istanbuljs/load-nyc-config": 1.1.0 - "@istanbuljs/schema": 0.1.3 + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} + engines: {node: '>=8'} + dependencies: + '@babel/helper-plugin-utils': 7.17.12 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 istanbul-lib-instrument: 5.2.0 test-exclude: 6.0.0 transitivePeerDependencies: - supports-color /babel-plugin-jest-hoist/29.2.0: - resolution: - { - integrity: sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA==, - } + resolution: {integrity: sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - "@babel/template": 7.18.10 - "@babel/types": 7.20.2 - "@types/babel__core": 7.1.19 - "@types/babel__traverse": 7.17.1 + '@babel/template': 7.18.10 + '@babel/types': 7.20.2 + '@types/babel__core': 7.1.19 + '@types/babel__traverse': 7.17.1 /babel-preset-current-node-syntax/1.0.1_@babel+core@7.20.2: - resolution: - { - integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==, - } - peerDependencies: - "@babel/core": ^7.0.0 - dependencies: - "@babel/core": 7.20.2 - "@babel/plugin-syntax-async-generators": 7.8.4_@babel+core@7.20.2 - "@babel/plugin-syntax-bigint": 7.8.3_@babel+core@7.20.2 - "@babel/plugin-syntax-class-properties": 7.12.13_@babel+core@7.20.2 - "@babel/plugin-syntax-import-meta": 7.10.4_@babel+core@7.20.2 - "@babel/plugin-syntax-json-strings": 7.8.3_@babel+core@7.20.2 - "@babel/plugin-syntax-logical-assignment-operators": 7.10.4_@babel+core@7.20.2 - "@babel/plugin-syntax-nullish-coalescing-operator": 7.8.3_@babel+core@7.20.2 - "@babel/plugin-syntax-numeric-separator": 7.10.4_@babel+core@7.20.2 - "@babel/plugin-syntax-object-rest-spread": 7.8.3_@babel+core@7.20.2 - "@babel/plugin-syntax-optional-catch-binding": 7.8.3_@babel+core@7.20.2 - "@babel/plugin-syntax-optional-chaining": 7.8.3_@babel+core@7.20.2 - "@babel/plugin-syntax-top-level-await": 7.14.5_@babel+core@7.20.2 + resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.20.2 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.20.2 + '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.20.2 + '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.20.2 + '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.20.2 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.20.2 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.20.2 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.20.2 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.20.2 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.20.2 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.20.2 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.2 + '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.20.2 /babel-preset-jest/29.2.0_@babel+core@7.20.2: - resolution: - { - integrity: sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA==, - } + resolution: {integrity: sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: - "@babel/core": ^7.0.0 + '@babel/core': ^7.0.0 dependencies: - "@babel/core": 7.20.2 + '@babel/core': 7.20.2 babel-plugin-jest-hoist: 29.2.0 babel-preset-current-node-syntax: 1.0.1_@babel+core@7.20.2 /babel-walk/3.0.0-canary-5: - resolution: - { - integrity: sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==, - } - engines: {node: ">= 10.0.0"} + resolution: {integrity: sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==} + engines: {node: '>= 10.0.0'} dependencies: - "@babel/types": 7.18.4 + '@babel/types': 7.18.4 dev: true /babylon/6.18.0: - resolution: - { - integrity: sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==, - } + resolution: {integrity: sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==} hasBin: true dev: true /bad-behavior/1.0.1: - resolution: - { - integrity: sha512-jWOTPr1R2zhobzDJUJNzAiJ33Uk3DzZ8UqbetUkVHuDrd4T8pUNKyU5ygreeV7XHTN61yFV3qv6GIZnBzjfWcg==, - } - engines: {node: ">=6.0.0"} + resolution: {integrity: sha512-jWOTPr1R2zhobzDJUJNzAiJ33Uk3DzZ8UqbetUkVHuDrd4T8pUNKyU5ygreeV7XHTN61yFV3qv6GIZnBzjfWcg==} + engines: {node: '>=6.0.0'} dev: false /balanced-match/1.0.2: - resolution: - { - integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, - } + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} /base-64/0.1.0: - resolution: - { - integrity: sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA==, - } + resolution: {integrity: sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA==} /base/0.11.2: - resolution: - { - integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} + engines: {node: '>=0.10.0'} dependencies: cache-base: 1.0.1 class-utils: 0.3.6 @@ -8380,34 +7041,22 @@ packages: dev: false /base64-js/1.5.1: - resolution: - { - integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==, - } + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} dev: false /better-path-resolve/1.0.0: - resolution: - { - integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} + engines: {node: '>=4'} dependencies: is-windows: 1.0.2 dev: false /binary-extensions/2.2.0: - resolution: - { - integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} /bl/4.1.0: - resolution: - { - integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==, - } + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} dependencies: buffer: 5.7.1 inherits: 2.0.4 @@ -8415,11 +7064,8 @@ packages: dev: false /body-parser/1.19.2: - resolution: - { - integrity: sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==, - } - engines: {node: ">= 0.8"} + resolution: {integrity: sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==} + engines: {node: '>= 0.8'} dependencies: bytes: 3.1.2 content-type: 1.0.4 @@ -8436,11 +7082,8 @@ packages: dev: true /body-parser/1.19.2_supports-color@8.1.1: - resolution: - { - integrity: sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==, - } - engines: {node: ">= 0.8"} + resolution: {integrity: sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==} + engines: {node: '>= 0.8'} dependencies: bytes: 3.1.2 content-type: 1.0.4 @@ -8457,18 +7100,12 @@ packages: dev: true /boolean/3.2.0: - resolution: - { - integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==, - } + resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} dev: false /boxen/4.2.0: - resolution: - { - integrity: sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==} + engines: {node: '>=8'} dependencies: ansi-align: 3.0.1 camelcase: 5.3.1 @@ -8481,11 +7118,8 @@ packages: dev: false /boxen/7.0.0: - resolution: - { - integrity: sha512-j//dBVuyacJbvW+tvZ9HuH03fZ46QcaKvvhZickZqtB271DxJ7SNRSNxrV/dZX0085m7hISRZWbzWlJvx/rHSg==, - } - engines: {node: ">=14.16"} + resolution: {integrity: sha512-j//dBVuyacJbvW+tvZ9HuH03fZ46QcaKvvhZickZqtB271DxJ7SNRSNxrV/dZX0085m7hISRZWbzWlJvx/rHSg==} + engines: {node: '>=14.16'} dependencies: ansi-align: 3.0.1 camelcase: 7.0.0 @@ -8498,29 +7132,20 @@ packages: dev: false /brace-expansion/1.1.11: - resolution: - { - integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, - } + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 /brace-expansion/2.0.1: - resolution: - { - integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==, - } + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} dependencies: balanced-match: 1.0.2 dev: false /braces/2.3.2: - resolution: - { - integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} + engines: {node: '>=0.10.0'} dependencies: arr-flatten: 1.1.0 array-unique: 0.3.2 @@ -8537,11 +7162,8 @@ packages: dev: false /braces/2.3.2_supports-color@8.1.1: - resolution: - { - integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} + engines: {node: '>=0.10.0'} dependencies: arr-flatten: 1.1.0 array-unique: 0.3.2 @@ -8558,142 +7180,105 @@ packages: dev: false /braces/3.0.2: - resolution: - { - integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} dependencies: fill-range: 7.0.1 /breakword/1.0.5: - resolution: - { - integrity: sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==, - } + resolution: {integrity: sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==} dependencies: wcwidth: 1.0.1 dev: false /browser-process-hrtime/1.0.0: - resolution: - { - integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==, - } + resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} /browserslist/4.20.3: - resolution: - { - integrity: sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==, - } + resolution: {integrity: sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001339 + caniuse-lite: 1.0.30001486 electron-to-chromium: 1.4.146 escalade: 3.1.1 node-releases: 2.0.5 picocolors: 1.0.0 /browserslist/4.21.4: - resolution: - { - integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==, - } + resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001434 + caniuse-lite: 1.0.30001486 electron-to-chromium: 1.4.284 node-releases: 2.0.6 update-browserslist-db: 1.0.10_browserslist@4.21.4 + /browserslist/4.21.5: + resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001486 + electron-to-chromium: 1.4.284 + node-releases: 2.0.10 + update-browserslist-db: 1.0.10_browserslist@4.21.5 + dev: false + /bs-logger/0.2.6: - resolution: - { - integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==, - } - engines: {node: ">= 6"} + resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} + engines: {node: '>= 6'} dependencies: fast-json-stable-stringify: 2.1.0 dev: true /bser/2.1.1: - resolution: - { - integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==, - } + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} dependencies: node-int64: 0.4.0 /buffer-crc32/0.2.13: - resolution: - { - integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==, - } + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} dev: true /buffer-equal-constant-time/1.0.1: - resolution: - { - integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==, - } + resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} dev: false /buffer-from/1.1.2: - resolution: - { - integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==, - } + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} /buffer/5.7.1: - resolution: - { - integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==, - } + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} dependencies: base64-js: 1.5.1 ieee754: 1.2.1 dev: false /builtin-modules/3.2.0: - resolution: - { - integrity: sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==} + engines: {node: '>=6'} dev: true /builtins/1.0.3: - resolution: - { - integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==, - } + resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==} dev: false /busboy/1.6.0: - resolution: - { - integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==, - } - engines: {node: ">=10.16.0"} + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} + engines: {node: '>=10.16.0'} dependencies: streamsearch: 1.1.0 /bytes/3.1.2: - resolution: - { - integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==, - } - engines: {node: ">= 0.8"} + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} dev: true /cache-base/1.0.1: - resolution: - { - integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} + engines: {node: '>=0.10.0'} dependencies: collection-visit: 1.0.0 component-emitter: 1.3.0 @@ -8707,19 +7292,13 @@ packages: dev: false /cacheable-lookup/5.0.4: - resolution: - { - integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==, - } - engines: {node: ">=10.6.0"} + resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} + engines: {node: '>=10.6.0'} dev: false /cacheable-request/6.1.0: - resolution: - { - integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==} + engines: {node: '>=8'} dependencies: clone-response: 1.0.2 get-stream: 5.2.0 @@ -8731,11 +7310,8 @@ packages: dev: false /cacheable-request/7.0.2: - resolution: - { - integrity: sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==} + engines: {node: '>=8'} dependencies: clone-response: 1.0.2 get-stream: 5.2.0 @@ -8747,34 +7323,27 @@ packages: dev: false /call-bind/1.0.2: - resolution: - { - integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==, - } + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: function-bind: 1.1.1 get-intrinsic: 1.1.1 /call-me-maybe/1.0.1: - resolution: - { - integrity: sha512-wCyFsDQkKPwwF8BDwOiWNx/9K45L/hvggQiDbve+viMNMQnWhrlYIuBk09offfwCRtCO9P6XwUttufzU11WCVw==, - } + resolution: {integrity: sha512-wCyFsDQkKPwwF8BDwOiWNx/9K45L/hvggQiDbve+viMNMQnWhrlYIuBk09offfwCRtCO9P6XwUttufzU11WCVw==} dev: false /callsites/3.1.0: - resolution: - { - integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + /camelcase-css/2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + dev: false /camelcase-keys/6.2.2: - resolution: - { - integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} dependencies: camelcase: 5.3.1 map-obj: 4.3.0 @@ -8782,45 +7351,27 @@ packages: dev: false /camelcase/5.3.1: - resolution: - { - integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} /camelcase/6.3.0: - resolution: - { - integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} /camelcase/7.0.0: - resolution: - { - integrity: sha512-JToIvOmz6nhGsUhAYScbo2d6Py5wojjNfoxoc2mEVLUdJ70gJK2gnd+ABY1Tc3sVMyK7QDPtN0T/XdlCQWITyQ==, - } - engines: {node: ">=14.16"} + resolution: {integrity: sha512-JToIvOmz6nhGsUhAYScbo2d6Py5wojjNfoxoc2mEVLUdJ70gJK2gnd+ABY1Tc3sVMyK7QDPtN0T/XdlCQWITyQ==} + engines: {node: '>=14.16'} dev: false - /caniuse-lite/1.0.30001339: - resolution: - { - integrity: sha512-Es8PiVqCe+uXdms0Gu5xP5PF2bxLR7OBp3wUzUnuO7OHzhOfCyg3hdiGWVPVxhiuniOzng+hTc1u3fEQ0TlkSQ==, - } - /caniuse-lite/1.0.30001434: - resolution: - { - integrity: sha512-aOBHrLmTQw//WFa2rcF1If9fa3ypkC1wzqqiKHgfdrXTWcU8C4gKVZT77eQAPWN1APys3+uQ0Df07rKauXGEYA==, - } + resolution: {integrity: sha512-aOBHrLmTQw//WFa2rcF1If9fa3ypkC1wzqqiKHgfdrXTWcU8C4gKVZT77eQAPWN1APys3+uQ0Df07rKauXGEYA==} + + /caniuse-lite/1.0.30001486: + resolution: {integrity: sha512-uv7/gXuHi10Whlj0pp5q/tsK/32J2QSqVRKQhs2j8VsDCjgyruAh/eEXHF822VqO9yT6iZKw3nRwZRSPBE9OQg==} /chai/4.3.6: - resolution: - { - integrity: sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==} + engines: {node: '>=4'} dependencies: assertion-error: 1.1.0 check-error: 1.0.2 @@ -8831,89 +7382,59 @@ packages: type-detect: 4.0.8 /chalk/2.4.2: - resolution: - { - integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} dependencies: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 /chalk/3.0.0: - resolution: - { - integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} + engines: {node: '>=8'} dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 /chalk/4.1.2: - resolution: - { - integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 /chalk/5.0.1: - resolution: - { - integrity: sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==, - } + resolution: {integrity: sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} /char-regex/1.0.2: - resolution: - { - integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} /character-parser/2.2.0: - resolution: - { - integrity: sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==, - } + resolution: {integrity: sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==} dependencies: is-regex: 1.1.4 dev: true /chardet/0.7.0: - resolution: - { - integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==, - } + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} dev: false /check-error/1.0.2: - resolution: - { - integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==, - } + resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} /chevrotain/9.1.0: - resolution: - { - integrity: sha512-A86/55so63HCfu0dgGg3j9u8uuuBOrSqly1OhBZxRu2x6sAKILLzfVjbGMw45kgier6lz45EzcjjWtTRgoT84Q==, - } + resolution: {integrity: sha512-A86/55so63HCfu0dgGg3j9u8uuuBOrSqly1OhBZxRu2x6sAKILLzfVjbGMw45kgier6lz45EzcjjWtTRgoT84Q==} dependencies: - "@chevrotain/types": 9.1.0 - "@chevrotain/utils": 9.1.0 + '@chevrotain/types': 9.1.0 + '@chevrotain/utils': 9.1.0 regexp-to-ast: 0.5.0 dev: false /chokidar/3.5.3: - resolution: - { - integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==, - } - engines: {node: ">= 8.10.0"} + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} dependencies: anymatch: 3.1.2 braces: 3.0.2 @@ -8926,23 +7447,17 @@ packages: fsevents: 2.3.2 /chownr/2.0.0: - resolution: - { - integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} dev: false /chromedriver/100.0.0: - resolution: - { - integrity: sha512-oLfB0IgFEGY9qYpFQO/BNSXbPw7bgfJUN5VX8Okps9W2qNT4IqKh5hDwKWtpUIQNI6K3ToWe2/J5NdpurTY02g==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-oLfB0IgFEGY9qYpFQO/BNSXbPw7bgfJUN5VX8Okps9W2qNT4IqKh5hDwKWtpUIQNI6K3ToWe2/J5NdpurTY02g==} + engines: {node: '>=10'} hasBin: true requiresBuild: true dependencies: - "@testim/chrome-version": 1.1.2 + '@testim/chrome-version': 1.1.2 axios: 0.24.0 del: 6.1.1 extract-zip: 2.0.1 @@ -8955,36 +7470,21 @@ packages: dev: true /ci-info/2.0.0: - resolution: - { - integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==, - } + resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} dev: false /ci-info/3.3.1: - resolution: - { - integrity: sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg==, - } + resolution: {integrity: sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg==} /ci-info/3.5.0: - resolution: - { - integrity: sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw==, - } + resolution: {integrity: sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw==} /cjs-module-lexer/1.2.2: - resolution: - { - integrity: sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==, - } + resolution: {integrity: sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==} /class-utils/0.3.6: - resolution: - { - integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} + engines: {node: '>=0.10.0'} dependencies: arr-union: 3.1.0 define-property: 0.2.5 @@ -8993,76 +7493,49 @@ packages: dev: false /clean-stack/2.2.0: - resolution: - { - integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} /cli-boxes/2.2.1: - resolution: - { - integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} + engines: {node: '>=6'} dev: false /cli-boxes/3.0.0: - resolution: - { - integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} + engines: {node: '>=10'} dev: false /cli-cursor/3.1.0: - resolution: - { - integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} dependencies: restore-cursor: 3.1.0 /cli-spinners/2.6.1: - resolution: - { - integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==} + engines: {node: '>=6'} dev: false /cli-truncate/2.1.0: - resolution: - { - integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} + engines: {node: '>=8'} dependencies: slice-ansi: 3.0.0 string-width: 4.2.3 /cli-truncate/3.1.0: - resolution: - { - integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==, - } + resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: slice-ansi: 5.0.0 string-width: 5.1.2 /client-only/0.0.1: - resolution: - { - integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==, - } + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} /cliui/6.0.0: - resolution: - { - integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==, - } + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 @@ -9070,30 +7543,21 @@ packages: dev: false /cliui/8.0.1: - resolution: - { - integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 /clone-buffer/1.0.0: - resolution: - { - integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==, - } - engines: {node: ">= 0.10"} + resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==} + engines: {node: '>= 0.10'} dev: false /clone-deep/4.0.1: - resolution: - { - integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} + engines: {node: '>=6'} dependencies: is-plain-object: 2.0.4 kind-of: 6.0.3 @@ -9101,42 +7565,27 @@ packages: dev: false /clone-response/1.0.2: - resolution: - { - integrity: sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==, - } + resolution: {integrity: sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==} dependencies: mimic-response: 1.0.1 dev: false /clone-stats/1.0.0: - resolution: - { - integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==, - } + resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==} dev: false /clone/1.0.4: - resolution: - { - integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==, - } - engines: {node: ">=0.8"} + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} dev: false /clone/2.1.2: - resolution: - { - integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==, - } - engines: {node: ">=0.8"} + resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} + engines: {node: '>=0.8'} dev: false /cloneable-readable/1.1.3: - resolution: - { - integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==, - } + resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==} dependencies: inherits: 2.0.4 process-nextick-args: 2.0.1 @@ -9144,222 +7593,137 @@ packages: dev: false /co/4.6.0: - resolution: - { - integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==, - } - engines: {iojs: ">= 1.0.0", node: ">= 0.12.0"} + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} /code-excerpt/3.0.0: - resolution: - { - integrity: sha512-VHNTVhd7KsLGOqfX3SyeO8RyYPMp1GJOg194VITk04WMYCv4plV68YWe6TJZxd9MhobjtpMRnVky01gqZsalaw==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-VHNTVhd7KsLGOqfX3SyeO8RyYPMp1GJOg194VITk04WMYCv4plV68YWe6TJZxd9MhobjtpMRnVky01gqZsalaw==} + engines: {node: '>=10'} dependencies: convert-to-spaces: 1.0.2 dev: false /collect-v8-coverage/1.0.1: - resolution: - { - integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==, - } + resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==} /collection-visit/1.0.0: - resolution: - { - integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} + engines: {node: '>=0.10.0'} dependencies: map-visit: 1.0.0 object-visit: 1.0.1 dev: false /color-convert/1.9.3: - resolution: - { - integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, - } + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: color-name: 1.1.3 /color-convert/2.0.1: - resolution: - { - integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, - } - engines: {node: ">=7.0.0"} + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 /color-name/1.1.3: - resolution: - { - integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, - } + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} /color-name/1.1.4: - resolution: - { - integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, - } + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} /colorette/2.0.17: - resolution: - { - integrity: sha512-hJo+3Bkn0NCHybn9Tu35fIeoOKGOk5OCC32y4Hz2It+qlCO2Q3DeQ1hRn/tDDMQKRYUEzqsl7jbF6dYKjlE60g==, - } + resolution: {integrity: sha512-hJo+3Bkn0NCHybn9Tu35fIeoOKGOk5OCC32y4Hz2It+qlCO2Q3DeQ1hRn/tDDMQKRYUEzqsl7jbF6dYKjlE60g==} /colors/1.4.0: - resolution: - { - integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==, - } - engines: {node: ">=0.1.90"} + resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} + engines: {node: '>=0.1.90'} dev: false /combined-stream/1.0.8: - resolution: - { - integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, - } - engines: {node: ">= 0.8"} + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} dependencies: delayed-stream: 1.0.0 /commander/2.20.3: - resolution: - { - integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, - } + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} /commander/4.1.1: - resolution: - { - integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==, - } - engines: {node: ">= 6"} - dev: true + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} /commander/6.2.1: - resolution: - { - integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==, - } - engines: {node: ">= 6"} + resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} + engines: {node: '>= 6'} dev: true /commander/9.4.1: - resolution: - { - integrity: sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==, - } + resolution: {integrity: sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==} engines: {node: ^12.20.0 || >=14} /commondir/1.0.1: - resolution: - { - integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==, - } + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} /component-emitter/1.3.0: - resolution: - { - integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==, - } + resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} dev: false /compress-brotli/1.3.8: - resolution: - { - integrity: sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ==, - } - engines: {node: ">= 12"} + resolution: {integrity: sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ==} + engines: {node: '>= 12'} dependencies: - "@types/json-buffer": 3.0.0 + '@types/json-buffer': 3.0.0 json-buffer: 3.0.1 dev: false /concat-map/0.0.1: - resolution: - { - integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, - } + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} /consola/2.15.3: - resolution: - { - integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==, - } + resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} dev: true /console-table-printer/2.10.0: - resolution: - { - integrity: sha512-7pTsysaJs1+R+OO4cCtJbl+Lr4piHYIhi7/V1qHbOg/uiYgq2yUINFgvXZtVHqm9qpW0+Uk190qkGcKvzdunvg==, - } + resolution: {integrity: sha512-7pTsysaJs1+R+OO4cCtJbl+Lr4piHYIhi7/V1qHbOg/uiYgq2yUINFgvXZtVHqm9qpW0+Uk190qkGcKvzdunvg==} dependencies: simple-wcswidth: 1.0.1 dev: false /constantinople/4.0.1: - resolution: - { - integrity: sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==, - } + resolution: {integrity: sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==} dependencies: - "@babel/parser": 7.18.4 - "@babel/types": 7.18.4 + '@babel/parser': 7.18.4 + '@babel/types': 7.18.4 dev: true /content-disposition/0.5.4: - resolution: - { - integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==, - } - engines: {node: ">= 0.6"} + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} dependencies: safe-buffer: 5.2.1 dev: true /content-type/1.0.4: - resolution: - { - integrity: sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==, - } - engines: {node: ">= 0.6"} + resolution: {integrity: sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==} + engines: {node: '>= 0.6'} dev: true /convert-source-map/1.8.0: - resolution: - { - integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==, - } + resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} dependencies: safe-buffer: 5.1.2 /convert-source-map/2.0.0: - resolution: - { - integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==, - } + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} /convert-to-spaces/1.0.2: - resolution: - { - integrity: sha512-cj09EBuObp9gZNQCzc7hByQyrs6jVGE+o9kSJmeUoj+GiPiJvi5LYqEH/Hmme4+MTLHM+Ejtq+FChpjjEnsPdQ==, - } - engines: {node: ">= 4"} + resolution: {integrity: sha512-cj09EBuObp9gZNQCzc7hByQyrs6jVGE+o9kSJmeUoj+GiPiJvi5LYqEH/Hmme4+MTLHM+Ejtq+FChpjjEnsPdQ==} + engines: {node: '>= 4'} dev: false /cookie-session/2.0.0_supports-color@8.1.1: - resolution: - { - integrity: sha512-hKvgoThbw00zQOleSlUr2qpvuNweoqBtxrmx0UFosx6AGi9lYtLoA+RbsvknrEX8Pr6MDbdWAb2j6SnMn+lPsg==, - } - engines: {node: ">= 0.10"} + resolution: {integrity: sha512-hKvgoThbw00zQOleSlUr2qpvuNweoqBtxrmx0UFosx6AGi9lYtLoA+RbsvknrEX8Pr6MDbdWAb2j6SnMn+lPsg==} + engines: {node: '>= 0.10'} dependencies: cookies: 0.8.0 debug: 3.2.7_supports-color@8.1.1 @@ -9374,91 +7738,58 @@ packages: dev: true /cookie/0.4.1: - resolution: - { - integrity: sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==, - } - engines: {node: ">= 0.6"} + resolution: {integrity: sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==} + engines: {node: '>= 0.6'} dev: false /cookie/0.4.2: - resolution: - { - integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==, - } - engines: {node: ">= 0.6"} + resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} + engines: {node: '>= 0.6'} dev: true /cookie/0.5.0: - resolution: - { - integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==, - } - engines: {node: ">= 0.6"} + resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} + engines: {node: '>= 0.6'} /cookies/0.8.0: - resolution: - { - integrity: sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==, - } - engines: {node: ">= 0.8"} + resolution: {integrity: sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==} + engines: {node: '>= 0.8'} dependencies: depd: 2.0.0 keygrip: 1.1.0 dev: false /copy-anything/3.0.2: - resolution: - { - integrity: sha512-CzATjGXzUQ0EvuvgOCI6A4BGOo2bcVx8B+eC2nF862iv9fopnPQwlrbACakNCHRIJbCSBj+J/9JeDf60k64MkA==, - } - engines: {node: ">=12.13"} + resolution: {integrity: sha512-CzATjGXzUQ0EvuvgOCI6A4BGOo2bcVx8B+eC2nF862iv9fopnPQwlrbACakNCHRIJbCSBj+J/9JeDf60k64MkA==} + engines: {node: '>=12.13'} dependencies: is-what: 4.1.7 dev: false /copy-descriptor/0.1.1: - resolution: - { - integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} + engines: {node: '>=0.10.0'} dev: false /core-js-compat/3.22.5: - resolution: - { - integrity: sha512-rEF75n3QtInrYICvJjrAgV03HwKiYvtKHdPtaba1KucG+cNZ4NJnH9isqt979e67KZlhpbCOTwnsvnIr+CVeOg==, - } + resolution: {integrity: sha512-rEF75n3QtInrYICvJjrAgV03HwKiYvtKHdPtaba1KucG+cNZ4NJnH9isqt979e67KZlhpbCOTwnsvnIr+CVeOg==} dependencies: browserslist: 4.21.4 semver: 7.0.0 /core-js-pure/3.23.0: - resolution: - { - integrity: sha512-ksjJc/xVTQzT2q6trPja2qWynMEaGO36rDui2SiqLPYab9TmPgT8nIVcre/yscviPCSweUdCDGKe4MsQA9w1zQ==, - } + resolution: {integrity: sha512-ksjJc/xVTQzT2q6trPja2qWynMEaGO36rDui2SiqLPYab9TmPgT8nIVcre/yscviPCSweUdCDGKe4MsQA9w1zQ==} deprecated: core-js-pure@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js-pure. requiresBuild: true /core-util-is/1.0.3: - resolution: - { - integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==, - } + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} /create-require/1.1.1: - resolution: - { - integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==, - } + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} /cross-spawn/5.1.0: - resolution: - { - integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==, - } + resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} dependencies: lru-cache: 4.1.5 shebang-command: 1.2.0 @@ -9466,11 +7797,8 @@ packages: dev: false /cross-spawn/6.0.5: - resolution: - { - integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==, - } - engines: {node: ">=4.8"} + resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} + engines: {node: '>=4.8'} dependencies: nice-try: 1.0.5 path-key: 2.0.1 @@ -9479,98 +7807,68 @@ packages: which: 1.3.1 /cross-spawn/7.0.3: - resolution: - { - integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, - } - engines: {node: ">= 8"} + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 /crypto-random-string/3.3.1: - resolution: - { - integrity: sha512-5j88ECEn6h17UePrLi6pn1JcLtAiANa3KExyr9y9Z5vo2mv56Gh3I4Aja/B9P9uyMwyxNHAHWv+nE72f30T5Dg==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-5j88ECEn6h17UePrLi6pn1JcLtAiANa3KExyr9y9Z5vo2mv56Gh3I4Aja/B9P9uyMwyxNHAHWv+nE72f30T5Dg==} + engines: {node: '>=8'} dependencies: type-fest: 0.8.1 dev: true /css.escape/1.5.1: - resolution: - { - integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==, - } + resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} dev: true /css/3.0.0: - resolution: - { - integrity: sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==, - } + resolution: {integrity: sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==} dependencies: inherits: 2.0.4 source-map: 0.6.1 source-map-resolve: 0.6.0 dev: true + /cssesc/3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + dev: false + /cssom/0.3.8: - resolution: - { - integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==, - } + resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} /cssom/0.5.0: - resolution: - { - integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==, - } + resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} /cssstyle/2.3.0: - resolution: - { - integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} + engines: {node: '>=8'} dependencies: cssom: 0.3.8 /csstype/3.1.0: - resolution: - { - integrity: sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==, - } + resolution: {integrity: sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==} /csv-generate/3.4.3: - resolution: - { - integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==, - } + resolution: {integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==} dev: false /csv-parse/4.16.3: - resolution: - { - integrity: sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==, - } + resolution: {integrity: sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==} dev: false /csv-stringify/5.6.5: - resolution: - { - integrity: sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==, - } + resolution: {integrity: sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==} dev: false /csv/5.5.3: - resolution: - { - integrity: sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==, - } - engines: {node: ">= 0.1.90"} + resolution: {integrity: sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==} + engines: {node: '>= 0.1.90'} dependencies: csv-generate: 3.4.3 csv-parse: 4.16.3 @@ -9579,43 +7877,28 @@ packages: dev: false /damerau-levenshtein/1.0.8: - resolution: - { - integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==, - } + resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} /data-uri-to-buffer/4.0.0: - resolution: - { - integrity: sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==, - } - engines: {node: ">= 12"} + resolution: {integrity: sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==} + engines: {node: '>= 12'} /data-urls/3.0.2: - resolution: - { - integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} + engines: {node: '>=12'} dependencies: abab: 2.0.6 whatwg-mimetype: 3.0.0 whatwg-url: 11.0.0 /debounce/1.2.1: - resolution: - { - integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==, - } + resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} dev: true /debug/2.6.9: - resolution: - { - integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==, - } + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: - supports-color: "*" + supports-color: '*' peerDependenciesMeta: supports-color: optional: true @@ -9623,12 +7906,9 @@ packages: ms: 2.0.0 /debug/2.6.9_supports-color@8.1.1: - resolution: - { - integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==, - } + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: - supports-color: "*" + supports-color: '*' peerDependenciesMeta: supports-color: optional: true @@ -9637,12 +7917,9 @@ packages: supports-color: 8.1.1 /debug/3.2.7: - resolution: - { - integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==, - } + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: - supports-color: "*" + supports-color: '*' peerDependenciesMeta: supports-color: optional: true @@ -9650,12 +7927,9 @@ packages: ms: 2.1.3 /debug/3.2.7_supports-color@8.1.1: - resolution: - { - integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==, - } + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: - supports-color: "*" + supports-color: '*' peerDependenciesMeta: supports-color: optional: true @@ -9665,13 +7939,10 @@ packages: dev: false /debug/4.3.1: - resolution: - { - integrity: sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==, - } - engines: {node: ">=6.0"} + resolution: {integrity: sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==} + engines: {node: '>=6.0'} peerDependencies: - supports-color: "*" + supports-color: '*' peerDependenciesMeta: supports-color: optional: true @@ -9680,13 +7951,10 @@ packages: dev: true /debug/4.3.3: - resolution: - { - integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==, - } - engines: {node: ">=6.0"} + resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==} + engines: {node: '>=6.0'} peerDependencies: - supports-color: "*" + supports-color: '*' peerDependenciesMeta: supports-color: optional: true @@ -9694,13 +7962,10 @@ packages: ms: 2.1.2 /debug/4.3.3_supports-color@8.1.1: - resolution: - { - integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==, - } - engines: {node: ">=6.0"} + resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==} + engines: {node: '>=6.0'} peerDependencies: - supports-color: "*" + supports-color: '*' peerDependenciesMeta: supports-color: optional: true @@ -9709,13 +7974,10 @@ packages: supports-color: 8.1.1 /debug/4.3.4: - resolution: - { - integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, - } - engines: {node: ">=6.0"} + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} peerDependencies: - supports-color: "*" + supports-color: '*' peerDependenciesMeta: supports-color: optional: true @@ -9723,13 +7985,10 @@ packages: ms: 2.1.2 /debug/4.3.4_supports-color@8.1.1: - resolution: - { - integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, - } - engines: {node: ">=6.0"} + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} peerDependencies: - supports-color: "*" + supports-color: '*' peerDependenciesMeta: supports-color: optional: true @@ -9738,192 +7997,122 @@ packages: supports-color: 8.1.1 /decamelize-keys/1.1.0: - resolution: - { - integrity: sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==} + engines: {node: '>=0.10.0'} dependencies: decamelize: 1.2.0 map-obj: 1.0.1 dev: false /decamelize/1.2.0: - resolution: - { - integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} dev: false /decimal.js/10.3.1: - resolution: - { - integrity: sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==, - } + resolution: {integrity: sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==} /decimal.js/10.4.2: - resolution: - { - integrity: sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA==, - } + resolution: {integrity: sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA==} /decode-uri-component/0.2.0: - resolution: - { - integrity: sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==, - } - engines: {node: ">=0.10"} + resolution: {integrity: sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==} + engines: {node: '>=0.10'} /decompress-response/3.3.0: - resolution: - { - integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==} + engines: {node: '>=4'} dependencies: mimic-response: 1.0.1 dev: false /decompress-response/6.0.0: - resolution: - { - integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} dependencies: mimic-response: 3.1.0 dev: false /dedent/0.7.0: - resolution: - { - integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==, - } + resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} /deep-eql/3.0.1: - resolution: - { - integrity: sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==, - } - engines: {node: ">=0.12"} + resolution: {integrity: sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==} + engines: {node: '>=0.12'} dependencies: type-detect: 4.0.8 /deep-extend/0.6.0: - resolution: - { - integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==, - } - engines: {node: ">=4.0.0"} + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} dev: false /deep-is/0.1.4: - resolution: - { - integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, - } + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} /deepmerge/4.2.2: - resolution: - { - integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} + engines: {node: '>=0.10.0'} /defaults/1.0.3: - resolution: - { - integrity: sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==, - } + resolution: {integrity: sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==} dependencies: clone: 1.0.4 dev: false /defer-to-connect/1.1.3: - resolution: - { - integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==, - } + resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==} dev: false /defer-to-connect/2.0.1: - resolution: - { - integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} dev: false /define-lazy-prop/2.0.0: - resolution: - { - integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==, - } - engines: {node: ">=8"} - dev: true + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} /define-properties/1.1.4: - resolution: - { - integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==, - } - engines: {node: ">= 0.4"} + resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} + engines: {node: '>= 0.4'} dependencies: has-property-descriptors: 1.0.0 object-keys: 1.1.1 /define-property/0.2.5: - resolution: - { - integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} + engines: {node: '>=0.10.0'} dependencies: is-descriptor: 0.1.6 dev: false /define-property/1.0.0: - resolution: - { - integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} + engines: {node: '>=0.10.0'} dependencies: is-descriptor: 1.0.2 dev: false /define-property/2.0.2: - resolution: - { - integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} + engines: {node: '>=0.10.0'} dependencies: is-descriptor: 1.0.2 isobject: 3.0.1 dev: false /defu/5.0.1: - resolution: - { - integrity: sha512-EPS1carKg+dkEVy3qNTqIdp2qV7mUP08nIsupfwQpz++slCVRw7qbQyWvSTig+kFPwz2XXp5/kIIkH+CwrJKkQ==, - } + resolution: {integrity: sha512-EPS1carKg+dkEVy3qNTqIdp2qV7mUP08nIsupfwQpz++slCVRw7qbQyWvSTig+kFPwz2XXp5/kIIkH+CwrJKkQ==} dev: true /defu/6.0.0: - resolution: - { - integrity: sha512-t2MZGLf1V2rV4VBZbWIaXKdX/mUcYW0n2znQZoADBkGGxYL8EWqCuCZBmJPJ/Yy9fofJkyuuSuo5GSwo0XdEgw==, - } + resolution: {integrity: sha512-t2MZGLf1V2rV4VBZbWIaXKdX/mUcYW0n2znQZoADBkGGxYL8EWqCuCZBmJPJ/Yy9fofJkyuuSuo5GSwo0XdEgw==} dev: true /del/6.1.1: - resolution: - { - integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} + engines: {node: '>=10'} dependencies: globby: 11.1.0 graceful-fs: 4.2.10 @@ -9936,78 +8125,48 @@ packages: dev: true /delay/5.0.0: - resolution: - { - integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==} + engines: {node: '>=10'} /delayed-stream/1.0.0: - resolution: - { - integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, - } - engines: {node: ">=0.4.0"} + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} /depd/1.1.2: - resolution: - { - integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==, - } - engines: {node: ">= 0.6"} + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + engines: {node: '>= 0.6'} dev: true /depd/2.0.0: - resolution: - { - integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==, - } - engines: {node: ">= 0.8"} + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} dev: false /destroy/1.0.4: - resolution: - { - integrity: sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==, - } + resolution: {integrity: sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==} dev: true /detect-file/1.0.0: - resolution: - { - integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} + engines: {node: '>=0.10.0'} dev: false /detect-indent/6.1.0: - resolution: - { - integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} dev: false /detect-newline/3.1.0: - resolution: - { - integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} /detect-node/2.1.0: - resolution: - { - integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==, - } + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} dev: false /detect-port/1.3.0_supports-color@8.1.1: - resolution: - { - integrity: sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ==, - } - engines: {node: ">= 4.2.1"} + resolution: {integrity: sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ==} + engines: {node: '>= 4.2.1'} hasBin: true dependencies: address: 1.2.0 @@ -10016,44 +8175,33 @@ packages: - supports-color dev: false + /didyoumean/1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + dev: false + /diff-sequences/29.2.0: - resolution: - { - integrity: sha512-413SY5JpYeSBZxmenGEmCVQ8mCgtFJF0w9PROdaS6z987XC2Pd2GOKqOITLtMftmyFZqgtCOb/QA7/Z3ZXfzIw==, - } + resolution: {integrity: sha512-413SY5JpYeSBZxmenGEmCVQ8mCgtFJF0w9PROdaS6z987XC2Pd2GOKqOITLtMftmyFZqgtCOb/QA7/Z3ZXfzIw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} /diff/4.0.2: - resolution: - { - integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==, - } - engines: {node: ">=0.3.1"} + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} /diff/5.0.0: - resolution: - { - integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==, - } - engines: {node: ">=0.3.1"} + resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} + engines: {node: '>=0.3.1'} dev: false /dir-glob/2.2.2: - resolution: - { - integrity: sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==} + engines: {node: '>=4'} dependencies: path-type: 3.0.0 dev: false /dir-glob/3.0.1: - resolution: - { - integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} dependencies: path-type: 4.0.0 @@ -10062,53 +8210,39 @@ packages: dev: true /display-notification/2.0.0: - resolution: - { - integrity: sha512-TdmtlAcdqy1NU+j7zlkDdMnCL878zriLaBmoD9quOoq1ySSSGv03l0hXK5CvIFZlIfFI/hizqdQuW+Num7xuhw==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-TdmtlAcdqy1NU+j7zlkDdMnCL878zriLaBmoD9quOoq1ySSSGv03l0hXK5CvIFZlIfFI/hizqdQuW+Num7xuhw==} + engines: {node: '>=4'} dependencies: escape-string-applescript: 1.0.0 run-applescript: 3.2.0 dev: true + /dlv/1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + dev: false + /doctrine/2.1.0: - resolution: - { - integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} dependencies: esutils: 2.0.3 /doctrine/3.0.0: - resolution: - { - integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==, - } - engines: {node: ">=6.0.0"} + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} dependencies: esutils: 2.0.3 /doctypes/1.1.0: - resolution: - { - integrity: sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==, - } + resolution: {integrity: sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==} dev: true /dom-accessibility-api/0.5.14: - resolution: - { - integrity: sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==, - } + resolution: {integrity: sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==} dev: true /dom-serializer/1.4.1: - resolution: - { - integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==, - } + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} dependencies: domelementtype: 2.3.0 domhandler: 4.3.1 @@ -10116,36 +8250,24 @@ packages: dev: true /domelementtype/2.3.0: - resolution: - { - integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==, - } + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} dev: true /domexception/4.0.0: - resolution: - { - integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} + engines: {node: '>=12'} dependencies: webidl-conversions: 7.0.0 /domhandler/4.3.1: - resolution: - { - integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==, - } - engines: {node: ">= 4"} + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} + engines: {node: '>= 4'} dependencies: domelementtype: 2.3.0 dev: true /domutils/2.8.0: - resolution: - { - integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==, - } + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} dependencies: dom-serializer: 1.4.1 domelementtype: 2.3.0 @@ -10153,46 +8275,28 @@ packages: dev: true /dotenv-expand/8.0.3: - resolution: - { - integrity: sha512-SErOMvge0ZUyWd5B0NXMQlDkN+8r+HhVUsxgOO7IoPDOdDRD2JjExpN6y3KnFR66jsJMwSn1pqIivhU5rcJiNg==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-SErOMvge0ZUyWd5B0NXMQlDkN+8r+HhVUsxgOO7IoPDOdDRD2JjExpN6y3KnFR66jsJMwSn1pqIivhU5rcJiNg==} + engines: {node: '>=12'} dev: false /dotenv/16.0.0: - resolution: - { - integrity: sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q==} + engines: {node: '>=12'} dev: false /duplexer/0.1.2: - resolution: - { - integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==, - } + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} dev: true /duplexer3/0.1.4: - resolution: - { - integrity: sha512-CEj8FwwNA4cVH2uFCoHUrmojhYh1vmCdOaneKJXwkeY1i9jnlslVo9dx+hQ5Hl9GnH/Bwy/IjxAyOePyPKYnzA==, - } + resolution: {integrity: sha512-CEj8FwwNA4cVH2uFCoHUrmojhYh1vmCdOaneKJXwkeY1i9jnlslVo9dx+hQ5Hl9GnH/Bwy/IjxAyOePyPKYnzA==} dev: false /eastasianwidth/0.2.0: - resolution: - { - integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==, - } + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} /ecdsa-sig-formatter/1.0.11: - resolution: - { - integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==, - } + resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} dependencies: safe-buffer: 5.2.1 dev: false @@ -10202,129 +8306,80 @@ packages: dev: true /ejs/3.1.8: - resolution: - { - integrity: sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==} + engines: {node: '>=0.10.0'} hasBin: true dependencies: jake: 10.8.5 dev: false /electron-to-chromium/1.4.146: - resolution: - { - integrity: sha512-4eWebzDLd+hYLm4csbyMU2EbBnqhwl8Oe9eF/7CBDPWcRxFmqzx4izxvHH+lofQxzieg8UbB8ZuzNTxeukzfTg==, - } + resolution: {integrity: sha512-4eWebzDLd+hYLm4csbyMU2EbBnqhwl8Oe9eF/7CBDPWcRxFmqzx4izxvHH+lofQxzieg8UbB8ZuzNTxeukzfTg==} /electron-to-chromium/1.4.284: - resolution: - { - integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==, - } + resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==} /emittery/0.13.1: - resolution: - { - integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} + engines: {node: '>=12'} /emoji-regex/8.0.0: - resolution: - { - integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, - } + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} /emoji-regex/9.2.2: - resolution: - { - integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==, - } + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} /encodeurl/1.0.2: - resolution: - { - integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==, - } - engines: {node: ">= 0.8"} + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} dev: true /encoding-japanese/2.0.0: - resolution: - { - integrity: sha512-++P0RhebUC8MJAwJOsT93dT+5oc5oPImp1HubZpAuCZ5kTLnhuuBhKHj2jJeO/Gj93idPBWmIuQ9QWMe5rX3pQ==, - } - engines: {node: ">=8.10.0"} + resolution: {integrity: sha512-++P0RhebUC8MJAwJOsT93dT+5oc5oPImp1HubZpAuCZ5kTLnhuuBhKHj2jJeO/Gj93idPBWmIuQ9QWMe5rX3pQ==} + engines: {node: '>=8.10.0'} dev: true /end-of-stream/1.4.4: - resolution: - { - integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==, - } + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} dependencies: once: 1.4.0 /enhanced-resolve/5.11.0: - resolution: - { - integrity: sha512-0Gcraf7gAJSQoPg+bTSXNhuzAYtXqLc4C011vb8S3B8XUSEkGYNBk20c68X9291VF4vvsCD8SPkr6Mza+DwU+g==, - } - engines: {node: ">=10.13.0"} + resolution: {integrity: sha512-0Gcraf7gAJSQoPg+bTSXNhuzAYtXqLc4C011vb8S3B8XUSEkGYNBk20c68X9291VF4vvsCD8SPkr6Mza+DwU+g==} + engines: {node: '>=10.13.0'} dependencies: graceful-fs: 4.2.10 tapable: 2.2.1 - dev: true /enquirer/2.3.6: - resolution: - { - integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==, - } - engines: {node: ">=8.6"} + resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} + engines: {node: '>=8.6'} dependencies: ansi-colors: 4.1.3 dev: false /entities/2.2.0: - resolution: - { - integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==, - } + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} dev: true /entities/4.4.0: - resolution: - { - integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==, - } - engines: {node: ">=0.12"} + resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==} + engines: {node: '>=0.12'} /envinfo/7.8.1: - resolution: - { - integrity: sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==} + engines: {node: '>=4'} hasBin: true dev: false /error-ex/1.3.2: - resolution: - { - integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==, - } + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: is-arrayish: 0.2.1 /es-abstract/1.20.1: - resolution: - { - integrity: sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==, - } - engines: {node: ">= 0.4"} + resolution: {integrity: sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 es-to-primitive: 1.2.1 @@ -10351,51 +8406,33 @@ packages: unbox-primitive: 1.0.2 /es-module-lexer/0.9.3: - resolution: - { - integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==, - } + resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==} dev: true /es-shim-unscopables/1.0.0: - resolution: - { - integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==, - } + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} dependencies: has: 1.0.3 /es-to-primitive/1.2.1: - resolution: - { - integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==, - } - engines: {node: ">= 0.4"} + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} dependencies: is-callable: 1.2.4 is-date-object: 1.0.5 is-symbol: 1.0.4 /es6-error/4.1.1: - resolution: - { - integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==, - } + resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} dev: false /es6-promise/4.2.8: - resolution: - { - integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==, - } + resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} dev: false /esbuild-android-64/0.14.34: - resolution: - { - integrity: sha512-XfxcfJqmMYsT/LXqrptzFxmaR3GWzXHDLdFNIhm6S00zPaQF1TBBWm+9t0RZ6LRR7iwH57DPjaOeW20vMqI4Yw==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-XfxcfJqmMYsT/LXqrptzFxmaR3GWzXHDLdFNIhm6S00zPaQF1TBBWm+9t0RZ6LRR7iwH57DPjaOeW20vMqI4Yw==} + engines: {node: '>=12'} cpu: [x64] os: [android] requiresBuild: true @@ -10403,11 +8440,8 @@ packages: optional: true /esbuild-android-64/0.14.51: - resolution: - { - integrity: sha512-6FOuKTHnC86dtrKDmdSj2CkcKF8PnqkaIXqvgydqfJmqBazCPdw+relrMlhGjkvVdiiGV70rpdnyFmA65ekBCQ==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-6FOuKTHnC86dtrKDmdSj2CkcKF8PnqkaIXqvgydqfJmqBazCPdw+relrMlhGjkvVdiiGV70rpdnyFmA65ekBCQ==} + engines: {node: '>=12'} cpu: [x64] os: [android] requiresBuild: true @@ -10415,22 +8449,16 @@ packages: optional: true /esbuild-android-64/0.15.15: - resolution: - { - integrity: sha512-F+WjjQxO+JQOva3tJWNdVjouFMLK6R6i5gjDvgUthLYJnIZJsp1HlF523k73hELY20WPyEO8xcz7aaYBVkeg5Q==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-F+WjjQxO+JQOva3tJWNdVjouFMLK6R6i5gjDvgUthLYJnIZJsp1HlF523k73hELY20WPyEO8xcz7aaYBVkeg5Q==} + engines: {node: '>=12'} cpu: [x64] os: [android] requiresBuild: true optional: true /esbuild-android-arm64/0.14.34: - resolution: - { - integrity: sha512-T02+NXTmSRL1Mc6puz+R9CB54rSPICkXKq6+tw8B6vxZFnCPzbJxgwIX4kcluz9p8nYBjF3+lSilTGWb7+Xgew==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-T02+NXTmSRL1Mc6puz+R9CB54rSPICkXKq6+tw8B6vxZFnCPzbJxgwIX4kcluz9p8nYBjF3+lSilTGWb7+Xgew==} + engines: {node: '>=12'} cpu: [arm64] os: [android] requiresBuild: true @@ -10438,11 +8466,8 @@ packages: optional: true /esbuild-android-arm64/0.14.51: - resolution: - { - integrity: sha512-vBtp//5VVkZWmYYvHsqBRCMMi1MzKuMIn5XDScmnykMTu9+TD9v0NMEDqQxvtFToeYmojdo5UCV2vzMQWJcJ4A==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-vBtp//5VVkZWmYYvHsqBRCMMi1MzKuMIn5XDScmnykMTu9+TD9v0NMEDqQxvtFToeYmojdo5UCV2vzMQWJcJ4A==} + engines: {node: '>=12'} cpu: [arm64] os: [android] requiresBuild: true @@ -10450,22 +8475,16 @@ packages: optional: true /esbuild-android-arm64/0.15.15: - resolution: - { - integrity: sha512-attlyhD6Y22jNyQ0fIIQ7mnPvDWKw7k6FKnsXlBvQE6s3z6s6cuEHcSgoirquQc7TmZgVCK5fD/2uxmRN+ZpcQ==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-attlyhD6Y22jNyQ0fIIQ7mnPvDWKw7k6FKnsXlBvQE6s3z6s6cuEHcSgoirquQc7TmZgVCK5fD/2uxmRN+ZpcQ==} + engines: {node: '>=12'} cpu: [arm64] os: [android] requiresBuild: true optional: true /esbuild-darwin-64/0.14.34: - resolution: - { - integrity: sha512-pLRip2Bh4Ng7Bf6AMgCrSp3pPe/qZyf11h5Qo2mOfJqLWzSVjxrXW+CFRJfrOVP7TCnh/gmZSM2AFdCPB72vtw==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-pLRip2Bh4Ng7Bf6AMgCrSp3pPe/qZyf11h5Qo2mOfJqLWzSVjxrXW+CFRJfrOVP7TCnh/gmZSM2AFdCPB72vtw==} + engines: {node: '>=12'} cpu: [x64] os: [darwin] requiresBuild: true @@ -10473,11 +8492,8 @@ packages: optional: true /esbuild-darwin-64/0.14.51: - resolution: - { - integrity: sha512-YFmXPIOvuagDcwCejMRtCDjgPfnDu+bNeh5FU2Ryi68ADDVlWEpbtpAbrtf/lvFTWPexbgyKgzppNgsmLPr8PA==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-YFmXPIOvuagDcwCejMRtCDjgPfnDu+bNeh5FU2Ryi68ADDVlWEpbtpAbrtf/lvFTWPexbgyKgzppNgsmLPr8PA==} + engines: {node: '>=12'} cpu: [x64] os: [darwin] requiresBuild: true @@ -10485,22 +8501,16 @@ packages: optional: true /esbuild-darwin-64/0.15.15: - resolution: - { - integrity: sha512-ohZtF8W1SHJ4JWldsPVdk8st0r9ExbAOSrBOh5L+Mq47i696GVwv1ab/KlmbUoikSTNoXEhDzVpxUR/WIO19FQ==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-ohZtF8W1SHJ4JWldsPVdk8st0r9ExbAOSrBOh5L+Mq47i696GVwv1ab/KlmbUoikSTNoXEhDzVpxUR/WIO19FQ==} + engines: {node: '>=12'} cpu: [x64] os: [darwin] requiresBuild: true optional: true /esbuild-darwin-arm64/0.14.34: - resolution: - { - integrity: sha512-vpidSJEBxx6lf1NWgXC+DCmGqesJuZ5Y8aQVVsaoO4i8tRXbXb0whChRvop/zd3nfNM4dIl5EXAky0knRX5I6w==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-vpidSJEBxx6lf1NWgXC+DCmGqesJuZ5Y8aQVVsaoO4i8tRXbXb0whChRvop/zd3nfNM4dIl5EXAky0knRX5I6w==} + engines: {node: '>=12'} cpu: [arm64] os: [darwin] requiresBuild: true @@ -10508,11 +8518,8 @@ packages: optional: true /esbuild-darwin-arm64/0.14.51: - resolution: - { - integrity: sha512-juYD0QnSKwAMfzwKdIF6YbueXzS6N7y4GXPDeDkApz/1RzlT42mvX9jgNmyOlWKN7YzQAYbcUEJmZJYQGdf2ow==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-juYD0QnSKwAMfzwKdIF6YbueXzS6N7y4GXPDeDkApz/1RzlT42mvX9jgNmyOlWKN7YzQAYbcUEJmZJYQGdf2ow==} + engines: {node: '>=12'} cpu: [arm64] os: [darwin] requiresBuild: true @@ -10520,22 +8527,16 @@ packages: optional: true /esbuild-darwin-arm64/0.15.15: - resolution: - { - integrity: sha512-P8jOZ5zshCNIuGn+9KehKs/cq5uIniC+BeCykvdVhx/rBXSxmtj3CUIKZz4sDCuESMbitK54drf/2QX9QHG5Ag==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-P8jOZ5zshCNIuGn+9KehKs/cq5uIniC+BeCykvdVhx/rBXSxmtj3CUIKZz4sDCuESMbitK54drf/2QX9QHG5Ag==} + engines: {node: '>=12'} cpu: [arm64] os: [darwin] requiresBuild: true optional: true /esbuild-freebsd-64/0.14.34: - resolution: - { - integrity: sha512-m0HBjePhe0hAQJgtMRMNV9kMgIyV4/qSnzPx42kRMQBcPhgjAq1JRu4Il26czC+9FgpMbFkUktb07f/Lwnc6CA==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-m0HBjePhe0hAQJgtMRMNV9kMgIyV4/qSnzPx42kRMQBcPhgjAq1JRu4Il26czC+9FgpMbFkUktb07f/Lwnc6CA==} + engines: {node: '>=12'} cpu: [x64] os: [freebsd] requiresBuild: true @@ -10543,11 +8544,8 @@ packages: optional: true /esbuild-freebsd-64/0.14.51: - resolution: - { - integrity: sha512-cLEI/aXjb6vo5O2Y8rvVSQ7smgLldwYY5xMxqh/dQGfWO+R1NJOFsiax3IS4Ng300SVp7Gz3czxT6d6qf2cw0g==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-cLEI/aXjb6vo5O2Y8rvVSQ7smgLldwYY5xMxqh/dQGfWO+R1NJOFsiax3IS4Ng300SVp7Gz3czxT6d6qf2cw0g==} + engines: {node: '>=12'} cpu: [x64] os: [freebsd] requiresBuild: true @@ -10555,22 +8553,16 @@ packages: optional: true /esbuild-freebsd-64/0.15.15: - resolution: - { - integrity: sha512-KkTg+AmDXz1IvA9S1gt8dE24C8Thx0X5oM0KGF322DuP+P3evwTL9YyusHAWNsh4qLsR80nvBr/EIYs29VSwuA==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-KkTg+AmDXz1IvA9S1gt8dE24C8Thx0X5oM0KGF322DuP+P3evwTL9YyusHAWNsh4qLsR80nvBr/EIYs29VSwuA==} + engines: {node: '>=12'} cpu: [x64] os: [freebsd] requiresBuild: true optional: true /esbuild-freebsd-arm64/0.14.34: - resolution: - { - integrity: sha512-cpRc2B94L1KvMPPYB4D6G39jLqpKlD3noAMY4/e86iXXXkhUYJJEtTuyNFTa9JRpWM0xCAp4mxjHjoIiLuoCLA==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-cpRc2B94L1KvMPPYB4D6G39jLqpKlD3noAMY4/e86iXXXkhUYJJEtTuyNFTa9JRpWM0xCAp4mxjHjoIiLuoCLA==} + engines: {node: '>=12'} cpu: [arm64] os: [freebsd] requiresBuild: true @@ -10578,11 +8570,8 @@ packages: optional: true /esbuild-freebsd-arm64/0.14.51: - resolution: - { - integrity: sha512-TcWVw/rCL2F+jUgRkgLa3qltd5gzKjIMGhkVybkjk6PJadYInPtgtUBp1/hG+mxyigaT7ib+od1Xb84b+L+1Mg==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-TcWVw/rCL2F+jUgRkgLa3qltd5gzKjIMGhkVybkjk6PJadYInPtgtUBp1/hG+mxyigaT7ib+od1Xb84b+L+1Mg==} + engines: {node: '>=12'} cpu: [arm64] os: [freebsd] requiresBuild: true @@ -10590,22 +8579,16 @@ packages: optional: true /esbuild-freebsd-arm64/0.15.15: - resolution: - { - integrity: sha512-FUcML0DRsuyqCMfAC+HoeAqvWxMeq0qXvclZZ/lt2kLU6XBnDA5uKTLUd379WYEyVD4KKFctqWd9tTuk8C/96g==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-FUcML0DRsuyqCMfAC+HoeAqvWxMeq0qXvclZZ/lt2kLU6XBnDA5uKTLUd379WYEyVD4KKFctqWd9tTuk8C/96g==} + engines: {node: '>=12'} cpu: [arm64] os: [freebsd] requiresBuild: true optional: true /esbuild-linux-32/0.14.34: - resolution: - { - integrity: sha512-8nQaEaoW7MH/K/RlozJa+lE1ejHIr8fuPIHhc513UebRav7HtXgQvxHQ6VZRUkWtep23M6dd7UqhwO1tMOfzQQ==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-8nQaEaoW7MH/K/RlozJa+lE1ejHIr8fuPIHhc513UebRav7HtXgQvxHQ6VZRUkWtep23M6dd7UqhwO1tMOfzQQ==} + engines: {node: '>=12'} cpu: [ia32] os: [linux] requiresBuild: true @@ -10613,11 +8596,8 @@ packages: optional: true /esbuild-linux-32/0.14.51: - resolution: - { - integrity: sha512-RFqpyC5ChyWrjx8Xj2K0EC1aN0A37H6OJfmUXIASEqJoHcntuV3j2Efr9RNmUhMfNE6yEj2VpYuDteZLGDMr0w==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-RFqpyC5ChyWrjx8Xj2K0EC1aN0A37H6OJfmUXIASEqJoHcntuV3j2Efr9RNmUhMfNE6yEj2VpYuDteZLGDMr0w==} + engines: {node: '>=12'} cpu: [ia32] os: [linux] requiresBuild: true @@ -10625,22 +8605,16 @@ packages: optional: true /esbuild-linux-32/0.15.15: - resolution: - { - integrity: sha512-q28Qn5pZgHNqug02aTkzw5sW9OklSo96b5nm17Mq0pDXrdTBcQ+M6Q9A1B+dalFeynunwh/pvfrNucjzwDXj+Q==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-q28Qn5pZgHNqug02aTkzw5sW9OklSo96b5nm17Mq0pDXrdTBcQ+M6Q9A1B+dalFeynunwh/pvfrNucjzwDXj+Q==} + engines: {node: '>=12'} cpu: [ia32] os: [linux] requiresBuild: true optional: true /esbuild-linux-64/0.14.34: - resolution: - { - integrity: sha512-Y3of4qQoLLlAgf042MlrY1P+7PnN9zWj8nVtw9XQG5hcLOZLz7IKpU35oeu7n4wvyaZHwvQqDJ93gRLqdJekcQ==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-Y3of4qQoLLlAgf042MlrY1P+7PnN9zWj8nVtw9XQG5hcLOZLz7IKpU35oeu7n4wvyaZHwvQqDJ93gRLqdJekcQ==} + engines: {node: '>=12'} cpu: [x64] os: [linux] requiresBuild: true @@ -10648,11 +8622,8 @@ packages: optional: true /esbuild-linux-64/0.14.51: - resolution: - { - integrity: sha512-dxjhrqo5i7Rq6DXwz5v+MEHVs9VNFItJmHBe1CxROWNf4miOGoQhqSG8StStbDkQ1Mtobg6ng+4fwByOhoQoeA==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-dxjhrqo5i7Rq6DXwz5v+MEHVs9VNFItJmHBe1CxROWNf4miOGoQhqSG8StStbDkQ1Mtobg6ng+4fwByOhoQoeA==} + engines: {node: '>=12'} cpu: [x64] os: [linux] requiresBuild: true @@ -10660,22 +8631,16 @@ packages: optional: true /esbuild-linux-64/0.15.15: - resolution: - { - integrity: sha512-217KPmWMirkf8liO+fj2qrPwbIbhNTGNVtvqI1TnOWJgcMjUWvd677Gq3fTzXEjilkx2yWypVnTswM2KbXgoAg==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-217KPmWMirkf8liO+fj2qrPwbIbhNTGNVtvqI1TnOWJgcMjUWvd677Gq3fTzXEjilkx2yWypVnTswM2KbXgoAg==} + engines: {node: '>=12'} cpu: [x64] os: [linux] requiresBuild: true optional: true /esbuild-linux-arm/0.14.34: - resolution: - { - integrity: sha512-9lpq1NcJqssAF7alCO6zL3gvBVVt/lKw4oetUM7OgNnRX0OWpB+ZIO9FwCrSj/dMdmgDhPLf+119zB8QxSMmAg==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-9lpq1NcJqssAF7alCO6zL3gvBVVt/lKw4oetUM7OgNnRX0OWpB+ZIO9FwCrSj/dMdmgDhPLf+119zB8QxSMmAg==} + engines: {node: '>=12'} cpu: [arm] os: [linux] requiresBuild: true @@ -10683,11 +8648,8 @@ packages: optional: true /esbuild-linux-arm/0.14.51: - resolution: - { - integrity: sha512-LsJynDxYF6Neg7ZC7748yweCDD+N8ByCv22/7IAZglIEniEkqdF4HCaa49JNDLw1UQGlYuhOB8ZT/MmcSWzcWg==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-LsJynDxYF6Neg7ZC7748yweCDD+N8ByCv22/7IAZglIEniEkqdF4HCaa49JNDLw1UQGlYuhOB8ZT/MmcSWzcWg==} + engines: {node: '>=12'} cpu: [arm] os: [linux] requiresBuild: true @@ -10695,22 +8657,16 @@ packages: optional: true /esbuild-linux-arm/0.15.15: - resolution: - { - integrity: sha512-RYVW9o2yN8yM7SB1yaWr378CwrjvGCyGybX3SdzPHpikUHkME2AP55Ma20uNwkNyY2eSYFX9D55kDrfQmQBR4w==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-RYVW9o2yN8yM7SB1yaWr378CwrjvGCyGybX3SdzPHpikUHkME2AP55Ma20uNwkNyY2eSYFX9D55kDrfQmQBR4w==} + engines: {node: '>=12'} cpu: [arm] os: [linux] requiresBuild: true optional: true /esbuild-linux-arm64/0.14.34: - resolution: - { - integrity: sha512-IlWaGtj9ir7+Nrume1DGcyzBDlK8GcnJq0ANKwcI9pVw8tqr+6GD0eqyF9SF1mR8UmAp+odrx1H5NdR2cHdFHA==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-IlWaGtj9ir7+Nrume1DGcyzBDlK8GcnJq0ANKwcI9pVw8tqr+6GD0eqyF9SF1mR8UmAp+odrx1H5NdR2cHdFHA==} + engines: {node: '>=12'} cpu: [arm64] os: [linux] requiresBuild: true @@ -10718,11 +8674,8 @@ packages: optional: true /esbuild-linux-arm64/0.14.51: - resolution: - { - integrity: sha512-D9rFxGutoqQX3xJPxqd6o+kvYKeIbM0ifW2y0bgKk5HPgQQOo2k9/2Vpto3ybGYaFPCE5qTGtqQta9PoP6ZEzw==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-D9rFxGutoqQX3xJPxqd6o+kvYKeIbM0ifW2y0bgKk5HPgQQOo2k9/2Vpto3ybGYaFPCE5qTGtqQta9PoP6ZEzw==} + engines: {node: '>=12'} cpu: [arm64] os: [linux] requiresBuild: true @@ -10730,22 +8683,16 @@ packages: optional: true /esbuild-linux-arm64/0.15.15: - resolution: - { - integrity: sha512-/ltmNFs0FivZkYsTzAsXIfLQX38lFnwJTWCJts0IbCqWZQe+jjj0vYBNbI0kmXLb3y5NljiM5USVAO1NVkdh2g==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-/ltmNFs0FivZkYsTzAsXIfLQX38lFnwJTWCJts0IbCqWZQe+jjj0vYBNbI0kmXLb3y5NljiM5USVAO1NVkdh2g==} + engines: {node: '>=12'} cpu: [arm64] os: [linux] requiresBuild: true optional: true /esbuild-linux-mips64le/0.14.34: - resolution: - { - integrity: sha512-k3or+01Rska1AjUyNjA4buEwB51eyN/xPQAoOx1CjzAQC3l8rpjUDw55kXyL63O/1MUi4ISvtNtl8gLwdyEcxw==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-k3or+01Rska1AjUyNjA4buEwB51eyN/xPQAoOx1CjzAQC3l8rpjUDw55kXyL63O/1MUi4ISvtNtl8gLwdyEcxw==} + engines: {node: '>=12'} cpu: [mips64el] os: [linux] requiresBuild: true @@ -10753,11 +8700,8 @@ packages: optional: true /esbuild-linux-mips64le/0.14.51: - resolution: - { - integrity: sha512-vS54wQjy4IinLSlb5EIlLoln8buh1yDgliP4CuEHumrPk4PvvP4kTRIG4SzMXm6t19N0rIfT4bNdAxzJLg2k6A==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-vS54wQjy4IinLSlb5EIlLoln8buh1yDgliP4CuEHumrPk4PvvP4kTRIG4SzMXm6t19N0rIfT4bNdAxzJLg2k6A==} + engines: {node: '>=12'} cpu: [mips64el] os: [linux] requiresBuild: true @@ -10765,22 +8709,16 @@ packages: optional: true /esbuild-linux-mips64le/0.15.15: - resolution: - { - integrity: sha512-PksEPb321/28GFFxtvL33yVPfnMZihxkEv5zME2zapXGp7fA1X2jYeiTUK+9tJ/EGgcNWuwvtawPxJG7Mmn86A==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-PksEPb321/28GFFxtvL33yVPfnMZihxkEv5zME2zapXGp7fA1X2jYeiTUK+9tJ/EGgcNWuwvtawPxJG7Mmn86A==} + engines: {node: '>=12'} cpu: [mips64el] os: [linux] requiresBuild: true optional: true /esbuild-linux-ppc64le/0.14.34: - resolution: - { - integrity: sha512-+qxb8M9FfM2CJaVU7GgYpJOHM1ngQOx+/VrtBjb4C8oVqaPcESCeg2anjl+HRZy8VpYc71q/iBYausPPbJ+Keg==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-+qxb8M9FfM2CJaVU7GgYpJOHM1ngQOx+/VrtBjb4C8oVqaPcESCeg2anjl+HRZy8VpYc71q/iBYausPPbJ+Keg==} + engines: {node: '>=12'} cpu: [ppc64] os: [linux] requiresBuild: true @@ -10788,11 +8726,8 @@ packages: optional: true /esbuild-linux-ppc64le/0.14.51: - resolution: - { - integrity: sha512-xcdd62Y3VfGoyphNP/aIV9LP+RzFw5M5Z7ja+zdpQHHvokJM7d0rlDRMN+iSSwvUymQkqZO+G/xjb4/75du8BQ==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-xcdd62Y3VfGoyphNP/aIV9LP+RzFw5M5Z7ja+zdpQHHvokJM7d0rlDRMN+iSSwvUymQkqZO+G/xjb4/75du8BQ==} + engines: {node: '>=12'} cpu: [ppc64] os: [linux] requiresBuild: true @@ -10800,22 +8735,16 @@ packages: optional: true /esbuild-linux-ppc64le/0.15.15: - resolution: - { - integrity: sha512-ek8gJBEIhcpGI327eAZigBOHl58QqrJrYYIZBWQCnH3UnXoeWMrMZLeeZL8BI2XMBhP+sQ6ERctD5X+ajL/AIA==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-ek8gJBEIhcpGI327eAZigBOHl58QqrJrYYIZBWQCnH3UnXoeWMrMZLeeZL8BI2XMBhP+sQ6ERctD5X+ajL/AIA==} + engines: {node: '>=12'} cpu: [ppc64] os: [linux] requiresBuild: true optional: true /esbuild-linux-riscv64/0.14.34: - resolution: - { - integrity: sha512-Y717ltBdQ5j5sZIHdy1DV9kieo0wMip0dCmVSTceowCPYSn1Cg33Kd6981+F/3b9FDMzNWldZFOBRILViENZSA==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-Y717ltBdQ5j5sZIHdy1DV9kieo0wMip0dCmVSTceowCPYSn1Cg33Kd6981+F/3b9FDMzNWldZFOBRILViENZSA==} + engines: {node: '>=12'} cpu: [riscv64] os: [linux] requiresBuild: true @@ -10823,11 +8752,8 @@ packages: optional: true /esbuild-linux-riscv64/0.14.51: - resolution: - { - integrity: sha512-syXHGak9wkAnFz0gMmRBoy44JV0rp4kVCEA36P5MCeZcxFq8+fllBC2t6sKI23w3qd8Vwo9pTADCgjTSf3L3rA==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-syXHGak9wkAnFz0gMmRBoy44JV0rp4kVCEA36P5MCeZcxFq8+fllBC2t6sKI23w3qd8Vwo9pTADCgjTSf3L3rA==} + engines: {node: '>=12'} cpu: [riscv64] os: [linux] requiresBuild: true @@ -10835,22 +8761,16 @@ packages: optional: true /esbuild-linux-riscv64/0.15.15: - resolution: - { - integrity: sha512-H5ilTZb33/GnUBrZMNJtBk7/OXzDHDXjIzoLXHSutwwsLxSNaLxzAaMoDGDd/keZoS+GDBqNVxdCkpuiRW4OSw==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-H5ilTZb33/GnUBrZMNJtBk7/OXzDHDXjIzoLXHSutwwsLxSNaLxzAaMoDGDd/keZoS+GDBqNVxdCkpuiRW4OSw==} + engines: {node: '>=12'} cpu: [riscv64] os: [linux] requiresBuild: true optional: true /esbuild-linux-s390x/0.14.34: - resolution: - { - integrity: sha512-bDDgYO4LhL4+zPs+WcBkXph+AQoPcQRTv18FzZS0WhjfH8TZx2QqlVPGhmhZ6WidrY+jKthUqO6UhGyIb4MpmA==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-bDDgYO4LhL4+zPs+WcBkXph+AQoPcQRTv18FzZS0WhjfH8TZx2QqlVPGhmhZ6WidrY+jKthUqO6UhGyIb4MpmA==} + engines: {node: '>=12'} cpu: [s390x] os: [linux] requiresBuild: true @@ -10858,11 +8778,8 @@ packages: optional: true /esbuild-linux-s390x/0.14.51: - resolution: - { - integrity: sha512-kFAJY3dv+Wq8o28K/C7xkZk/X34rgTwhknSsElIqoEo8armCOjMJ6NsMxm48KaWY2h2RUYGtQmr+RGuUPKBhyw==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-kFAJY3dv+Wq8o28K/C7xkZk/X34rgTwhknSsElIqoEo8armCOjMJ6NsMxm48KaWY2h2RUYGtQmr+RGuUPKBhyw==} + engines: {node: '>=12'} cpu: [s390x] os: [linux] requiresBuild: true @@ -10870,22 +8787,16 @@ packages: optional: true /esbuild-linux-s390x/0.15.15: - resolution: - { - integrity: sha512-jKaLUg78mua3rrtrkpv4Or2dNTJU7bgHN4bEjT4OX4GR7nLBSA9dfJezQouTxMmIW7opwEC5/iR9mpC18utnxQ==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-jKaLUg78mua3rrtrkpv4Or2dNTJU7bgHN4bEjT4OX4GR7nLBSA9dfJezQouTxMmIW7opwEC5/iR9mpC18utnxQ==} + engines: {node: '>=12'} cpu: [s390x] os: [linux] requiresBuild: true optional: true /esbuild-netbsd-64/0.14.34: - resolution: - { - integrity: sha512-cfaFGXdRt0+vHsjNPyF0POM4BVSHPSbhLPe8mppDc7GDDxjIl08mV1Zou14oDWMp/XZMjYN1kWYRSfftiD0vvQ==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-cfaFGXdRt0+vHsjNPyF0POM4BVSHPSbhLPe8mppDc7GDDxjIl08mV1Zou14oDWMp/XZMjYN1kWYRSfftiD0vvQ==} + engines: {node: '>=12'} cpu: [x64] os: [netbsd] requiresBuild: true @@ -10893,11 +8804,8 @@ packages: optional: true /esbuild-netbsd-64/0.14.51: - resolution: - { - integrity: sha512-ZZBI7qrR1FevdPBVHz/1GSk1x5GDL/iy42Zy8+neEm/HA7ma+hH/bwPEjeHXKWUDvM36CZpSL/fn1/y9/Hb+1A==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-ZZBI7qrR1FevdPBVHz/1GSk1x5GDL/iy42Zy8+neEm/HA7ma+hH/bwPEjeHXKWUDvM36CZpSL/fn1/y9/Hb+1A==} + engines: {node: '>=12'} cpu: [x64] os: [netbsd] requiresBuild: true @@ -10905,22 +8813,16 @@ packages: optional: true /esbuild-netbsd-64/0.15.15: - resolution: - { - integrity: sha512-aOvmF/UkjFuW6F36HbIlImJTTx45KUCHJndtKo+KdP8Dhq3mgLRKW9+6Ircpm8bX/RcS3zZMMmaBLkvGY06Gvw==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-aOvmF/UkjFuW6F36HbIlImJTTx45KUCHJndtKo+KdP8Dhq3mgLRKW9+6Ircpm8bX/RcS3zZMMmaBLkvGY06Gvw==} + engines: {node: '>=12'} cpu: [x64] os: [netbsd] requiresBuild: true optional: true /esbuild-openbsd-64/0.14.34: - resolution: - { - integrity: sha512-vmy9DxXVnRiI14s8GKuYBtess+EVcDALkbpTqd5jw4XITutIzyB7n4x0Tj5utAkKsgZJB22lLWGekr0ABnSLow==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-vmy9DxXVnRiI14s8GKuYBtess+EVcDALkbpTqd5jw4XITutIzyB7n4x0Tj5utAkKsgZJB22lLWGekr0ABnSLow==} + engines: {node: '>=12'} cpu: [x64] os: [openbsd] requiresBuild: true @@ -10928,11 +8830,8 @@ packages: optional: true /esbuild-openbsd-64/0.14.51: - resolution: - { - integrity: sha512-7R1/p39M+LSVQVgDVlcY1KKm6kFKjERSX1lipMG51NPcspJD1tmiZSmmBXoY5jhHIu6JL1QkFDTx94gMYK6vfA==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-7R1/p39M+LSVQVgDVlcY1KKm6kFKjERSX1lipMG51NPcspJD1tmiZSmmBXoY5jhHIu6JL1QkFDTx94gMYK6vfA==} + engines: {node: '>=12'} cpu: [x64] os: [openbsd] requiresBuild: true @@ -10940,33 +8839,24 @@ packages: optional: true /esbuild-openbsd-64/0.15.15: - resolution: - { - integrity: sha512-HFFX+WYedx1w2yJ1VyR1Dfo8zyYGQZf1cA69bLdrHzu9svj6KH6ZLK0k3A1/LFPhcEY9idSOhsB2UyU0tHPxgQ==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-HFFX+WYedx1w2yJ1VyR1Dfo8zyYGQZf1cA69bLdrHzu9svj6KH6ZLK0k3A1/LFPhcEY9idSOhsB2UyU0tHPxgQ==} + engines: {node: '>=12'} cpu: [x64] os: [openbsd] requiresBuild: true optional: true /esbuild-register/3.3.3_esbuild@0.14.34: - resolution: - { - integrity: sha512-eFHOkutgIMJY5gc8LUp/7c+LLlDqzNi9T6AwCZ2WKKl3HmT+5ef3ZRyPPxDOynInML0fgaC50yszPKfPnjC0NQ==, - } + resolution: {integrity: sha512-eFHOkutgIMJY5gc8LUp/7c+LLlDqzNi9T6AwCZ2WKKl3HmT+5ef3ZRyPPxDOynInML0fgaC50yszPKfPnjC0NQ==} peerDependencies: - esbuild: ">=0.12 <1" + esbuild: '>=0.12 <1' dependencies: esbuild: 0.14.34 dev: false /esbuild-sunos-64/0.14.34: - resolution: - { - integrity: sha512-eNPVatNET1F7tRMhii7goL/eptfxc0ALRjrj9SPFNqp0zmxrehBFD6BaP3R4LjMn6DbMO0jOAnTLFKr8NqcJAA==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-eNPVatNET1F7tRMhii7goL/eptfxc0ALRjrj9SPFNqp0zmxrehBFD6BaP3R4LjMn6DbMO0jOAnTLFKr8NqcJAA==} + engines: {node: '>=12'} cpu: [x64] os: [sunos] requiresBuild: true @@ -10974,11 +8864,8 @@ packages: optional: true /esbuild-sunos-64/0.14.51: - resolution: - { - integrity: sha512-HoHaCswHxLEYN8eBTtyO0bFEWvA3Kdb++hSQ/lLG7TyKF69TeSG0RNoBRAs45x/oCeWaTDntEZlYwAfQlhEtJA==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-HoHaCswHxLEYN8eBTtyO0bFEWvA3Kdb++hSQ/lLG7TyKF69TeSG0RNoBRAs45x/oCeWaTDntEZlYwAfQlhEtJA==} + engines: {node: '>=12'} cpu: [x64] os: [sunos] requiresBuild: true @@ -10986,22 +8873,16 @@ packages: optional: true /esbuild-sunos-64/0.15.15: - resolution: - { - integrity: sha512-jOPBudffG4HN8yJXcK9rib/ZTFoTA5pvIKbRrt3IKAGMq1EpBi4xoVoSRrq/0d4OgZLaQbmkHp8RO9eZIn5atA==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-jOPBudffG4HN8yJXcK9rib/ZTFoTA5pvIKbRrt3IKAGMq1EpBi4xoVoSRrq/0d4OgZLaQbmkHp8RO9eZIn5atA==} + engines: {node: '>=12'} cpu: [x64] os: [sunos] requiresBuild: true optional: true /esbuild-windows-32/0.14.34: - resolution: - { - integrity: sha512-EFhpXyHEcnqWYe2rAHFd8dRw8wkrd9U+9oqcyoEL84GbanAYjiiIjBZsnR8kl0sCQ5w6bLpk7vCEIA2VS32Vcg==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-EFhpXyHEcnqWYe2rAHFd8dRw8wkrd9U+9oqcyoEL84GbanAYjiiIjBZsnR8kl0sCQ5w6bLpk7vCEIA2VS32Vcg==} + engines: {node: '>=12'} cpu: [ia32] os: [win32] requiresBuild: true @@ -11009,11 +8890,8 @@ packages: optional: true /esbuild-windows-32/0.14.51: - resolution: - { - integrity: sha512-4rtwSAM35A07CBt1/X8RWieDj3ZUHQqUOaEo5ZBs69rt5WAFjP4aqCIobdqOy4FdhYw1yF8Z0xFBTyc9lgPtEg==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-4rtwSAM35A07CBt1/X8RWieDj3ZUHQqUOaEo5ZBs69rt5WAFjP4aqCIobdqOy4FdhYw1yF8Z0xFBTyc9lgPtEg==} + engines: {node: '>=12'} cpu: [ia32] os: [win32] requiresBuild: true @@ -11021,22 +8899,16 @@ packages: optional: true /esbuild-windows-32/0.15.15: - resolution: - { - integrity: sha512-MDkJ3QkjnCetKF0fKxCyYNBnOq6dmidcwstBVeMtXSgGYTy8XSwBeIE4+HuKiSsG6I/mXEb++px3IGSmTN0XiA==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-MDkJ3QkjnCetKF0fKxCyYNBnOq6dmidcwstBVeMtXSgGYTy8XSwBeIE4+HuKiSsG6I/mXEb++px3IGSmTN0XiA==} + engines: {node: '>=12'} cpu: [ia32] os: [win32] requiresBuild: true optional: true /esbuild-windows-64/0.14.34: - resolution: - { - integrity: sha512-a8fbl8Ky7PxNEjf1aJmtxdDZj32/hC7S1OcA2ckEpCJRTjiKslI9vAdPpSjrKIWhws4Galpaawy0nB7fjHYf5Q==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-a8fbl8Ky7PxNEjf1aJmtxdDZj32/hC7S1OcA2ckEpCJRTjiKslI9vAdPpSjrKIWhws4Galpaawy0nB7fjHYf5Q==} + engines: {node: '>=12'} cpu: [x64] os: [win32] requiresBuild: true @@ -11044,11 +8916,8 @@ packages: optional: true /esbuild-windows-64/0.14.51: - resolution: - { - integrity: sha512-HoN/5HGRXJpWODprGCgKbdMvrC3A2gqvzewu2eECRw2sYxOUoh2TV1tS+G7bHNapPGI79woQJGV6pFH7GH7qnA==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-HoN/5HGRXJpWODprGCgKbdMvrC3A2gqvzewu2eECRw2sYxOUoh2TV1tS+G7bHNapPGI79woQJGV6pFH7GH7qnA==} + engines: {node: '>=12'} cpu: [x64] os: [win32] requiresBuild: true @@ -11056,22 +8925,16 @@ packages: optional: true /esbuild-windows-64/0.15.15: - resolution: - { - integrity: sha512-xaAUIB2qllE888SsMU3j9nrqyLbkqqkpQyWVkfwSil6BBPgcPk3zOFitTTncEKCLTQy3XV9RuH7PDj3aJDljWA==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-xaAUIB2qllE888SsMU3j9nrqyLbkqqkpQyWVkfwSil6BBPgcPk3zOFitTTncEKCLTQy3XV9RuH7PDj3aJDljWA==} + engines: {node: '>=12'} cpu: [x64] os: [win32] requiresBuild: true optional: true /esbuild-windows-arm64/0.14.34: - resolution: - { - integrity: sha512-EYvmKbSa2B3sPnpC28UEu9jBK5atGV4BaVRE7CYGUci2Hlz4AvtV/LML+TcDMT6gBgibnN2gcltWclab3UutMg==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-EYvmKbSa2B3sPnpC28UEu9jBK5atGV4BaVRE7CYGUci2Hlz4AvtV/LML+TcDMT6gBgibnN2gcltWclab3UutMg==} + engines: {node: '>=12'} cpu: [arm64] os: [win32] requiresBuild: true @@ -11079,11 +8942,8 @@ packages: optional: true /esbuild-windows-arm64/0.14.51: - resolution: - { - integrity: sha512-JQDqPjuOH7o+BsKMSddMfmVJXrnYZxXDHsoLHc0xgmAZkOOCflRmC43q31pk79F9xuyWY45jDBPolb5ZgGOf9g==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-JQDqPjuOH7o+BsKMSddMfmVJXrnYZxXDHsoLHc0xgmAZkOOCflRmC43q31pk79F9xuyWY45jDBPolb5ZgGOf9g==} + engines: {node: '>=12'} cpu: [arm64] os: [win32] requiresBuild: true @@ -11091,22 +8951,16 @@ packages: optional: true /esbuild-windows-arm64/0.15.15: - resolution: - { - integrity: sha512-ttuoCYCIJAFx4UUKKWYnFdrVpoXa3+3WWkXVI6s09U+YjhnyM5h96ewTq/WgQj9LFSIlABQvadHSOQyAVjW5xQ==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-ttuoCYCIJAFx4UUKKWYnFdrVpoXa3+3WWkXVI6s09U+YjhnyM5h96ewTq/WgQj9LFSIlABQvadHSOQyAVjW5xQ==} + engines: {node: '>=12'} cpu: [arm64] os: [win32] requiresBuild: true optional: true /esbuild/0.14.34: - resolution: - { - integrity: sha512-QIWdPT/gFF6hCaf4m7kP0cJ+JIuFkdHibI7vVFvu3eJS1HpVmYHWDulyN5WXwbRA0SX/7ZDaJ/1DH8SdY9xOJg==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-QIWdPT/gFF6hCaf4m7kP0cJ+JIuFkdHibI7vVFvu3eJS1HpVmYHWDulyN5WXwbRA0SX/7ZDaJ/1DH8SdY9xOJg==} + engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: @@ -11133,11 +8987,8 @@ packages: dev: false /esbuild/0.14.51: - resolution: - { - integrity: sha512-+CvnDitD7Q5sT7F+FM65sWkF8wJRf+j9fPcprxYV4j+ohmzVj2W7caUqH2s5kCaCJAfcAICjSlKhDCcvDpU7nw==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-+CvnDitD7Q5sT7F+FM65sWkF8wJRf+j9fPcprxYV4j+ohmzVj2W7caUqH2s5kCaCJAfcAICjSlKhDCcvDpU7nw==} + engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: @@ -11164,16 +9015,13 @@ packages: dev: true /esbuild/0.15.15: - resolution: - { - integrity: sha512-TEw/lwK4Zzld9x3FedV6jy8onOUHqcEX3ADFk4k+gzPUwrxn8nWV62tH0udo8jOtjFodlEfc4ypsqX3e+WWO6w==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-TEw/lwK4Zzld9x3FedV6jy8onOUHqcEX3ADFk4k+gzPUwrxn8nWV62tH0udo8jOtjFodlEfc4ypsqX3e+WWO6w==} + engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - "@esbuild/android-arm": 0.15.15 - "@esbuild/linux-loong64": 0.15.15 + '@esbuild/android-arm': 0.15.15 + '@esbuild/linux-loong64': 0.15.15 esbuild-android-64: 0.15.15 esbuild-android-arm64: 0.15.15 esbuild-darwin-64: 0.15.15 @@ -11196,54 +9044,33 @@ packages: esbuild-windows-arm64: 0.15.15 /escalade/3.1.1: - resolution: - { - integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} /escape-html/1.0.3: - resolution: - { - integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==, - } + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} dev: true /escape-string-applescript/1.0.0: - resolution: - { - integrity: sha512-4/hFwoYaC6TkpDn9A3pTC52zQPArFeXuIfhUtCGYdauTzXVP9H3BDr3oO/QzQehMpLDC7srvYgfwvImPFGfvBA==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-4/hFwoYaC6TkpDn9A3pTC52zQPArFeXuIfhUtCGYdauTzXVP9H3BDr3oO/QzQehMpLDC7srvYgfwvImPFGfvBA==} + engines: {node: '>=0.10.0'} dev: true /escape-string-regexp/1.0.5: - resolution: - { - integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, - } - engines: {node: ">=0.8.0"} + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} /escape-string-regexp/2.0.0: - resolution: - { - integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} /escape-string-regexp/4.0.0: - resolution: - { - integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} /escodegen/2.0.0: - resolution: - { - integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==, - } - engines: {node: ">=6.0"} + resolution: {integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==} + engines: {node: '>=6.0'} hasBin: true dependencies: esprima: 4.0.1 @@ -11254,20 +9081,17 @@ packages: source-map: 0.6.1 /eslint-config-next/12.3.1_rmayb2veg2btbq6mbmnyivgasy: - resolution: - { - integrity: sha512-EN/xwKPU6jz1G0Qi6Bd/BqMnHLyRAL0VsaQaWA7F3KkjAgZHi4f1uL1JKGWNxdQpHTW/sdGONBd0bzxUka/DJg==, - } + resolution: {integrity: sha512-EN/xwKPU6jz1G0Qi6Bd/BqMnHLyRAL0VsaQaWA7F3KkjAgZHi4f1uL1JKGWNxdQpHTW/sdGONBd0bzxUka/DJg==} peerDependencies: eslint: ^7.23.0 || ^8.0.0 - typescript: ">=3.3.1" + typescript: '>=3.3.1' peerDependenciesMeta: typescript: optional: true dependencies: - "@next/eslint-plugin-next": 12.3.1 - "@rushstack/eslint-patch": 1.1.3 - "@typescript-eslint/parser": 5.43.0_rmayb2veg2btbq6mbmnyivgasy + '@next/eslint-plugin-next': 12.3.1 + '@rushstack/eslint-patch': 1.1.3 + '@typescript-eslint/parser': 5.43.0_rmayb2veg2btbq6mbmnyivgasy eslint: 8.27.0 eslint-import-resolver-node: 0.3.6 eslint-import-resolver-typescript: 2.7.1_dcpv4nbdr5ks2h5677xdltrk6e @@ -11282,20 +9106,17 @@ packages: dev: true /eslint-config-next/12.3.1_typescript@4.8.4: - resolution: - { - integrity: sha512-EN/xwKPU6jz1G0Qi6Bd/BqMnHLyRAL0VsaQaWA7F3KkjAgZHi4f1uL1JKGWNxdQpHTW/sdGONBd0bzxUka/DJg==, - } + resolution: {integrity: sha512-EN/xwKPU6jz1G0Qi6Bd/BqMnHLyRAL0VsaQaWA7F3KkjAgZHi4f1uL1JKGWNxdQpHTW/sdGONBd0bzxUka/DJg==} peerDependencies: eslint: ^7.23.0 || ^8.0.0 - typescript: ">=3.3.1" + typescript: '>=3.3.1' peerDependenciesMeta: typescript: optional: true dependencies: - "@next/eslint-plugin-next": 12.3.1 - "@rushstack/eslint-patch": 1.1.3 - "@typescript-eslint/parser": 5.43.0_typescript@4.8.4 + '@next/eslint-plugin-next': 12.3.1 + '@rushstack/eslint-patch': 1.1.3 + '@typescript-eslint/parser': 5.43.0_typescript@4.8.4 eslint-import-resolver-node: 0.3.6 eslint-import-resolver-typescript: 2.7.1_fkfqfehjtk7sk2efaqbgxsuasa eslint-plugin-import: 2.26.0_thmqqzpxv5mluo3coertzplf2y @@ -11309,20 +9130,17 @@ packages: dev: false /eslint-config-next/13.0.0_wyqvi574yv7oiwfeinomdzmc3m: - resolution: - { - integrity: sha512-y2nqWS2tycWySdVhb+rhp6CuDmDazGySqkzzQZf3UTyfHyC7og1m5m/AtMFwCo5mtvDqvw1BENin52kV9733lg==, - } + resolution: {integrity: sha512-y2nqWS2tycWySdVhb+rhp6CuDmDazGySqkzzQZf3UTyfHyC7og1m5m/AtMFwCo5mtvDqvw1BENin52kV9733lg==} peerDependencies: eslint: ^7.23.0 || ^8.0.0 - typescript: ">=3.3.1" + typescript: '>=3.3.1' peerDependenciesMeta: typescript: optional: true dependencies: - "@next/eslint-plugin-next": 13.0.0 - "@rushstack/eslint-patch": 1.1.3 - "@typescript-eslint/parser": 5.43.0_wyqvi574yv7oiwfeinomdzmc3m + '@next/eslint-plugin-next': 13.0.0 + '@rushstack/eslint-patch': 1.1.3 + '@typescript-eslint/parser': 5.43.0_wyqvi574yv7oiwfeinomdzmc3m eslint: 8.26.0 eslint-import-resolver-node: 0.3.6 eslint-import-resolver-typescript: 2.7.1_mynvxvmq5qtyojffiqgev4x7mm @@ -11336,21 +9154,43 @@ packages: - supports-color dev: true - /eslint-config-next/13.3.4_rmayb2veg2btbq6mbmnyivgasy: - resolution: - { - integrity: sha512-TknEcP+EdTqLvJ2zMY1KnWqcx8ZHl1C2Tjjbq3qmtWcHRU5oxe1PAsz3vrKG3NOzonSaPcB2SpCSfYqcgj6nfA==, - } + /eslint-config-next/13.4.1_3qfatcekpgbllh6uk5ivyhkbxq: + resolution: {integrity: sha512-ajuxjCkW1hvirr0EQZb3/B/bFH52Z7CT89uCtTcICFL9l30i5c8hN4p0LXvTjdOXNPV5fEDcxBgGHgXdzTj1/A==} + peerDependencies: + eslint: ^7.23.0 || ^8.0.0 + typescript: '>=3.3.1' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@next/eslint-plugin-next': 13.4.1 + '@rushstack/eslint-patch': 1.1.3 + '@typescript-eslint/parser': 5.43.0_3qfatcekpgbllh6uk5ivyhkbxq + eslint: 8.40.0 + eslint-import-resolver-node: 0.3.6 + eslint-import-resolver-typescript: 3.5.2_lw64bwrfdlvteab5a4bczvvhwa + eslint-plugin-import: 2.26.0_xd3gykel45bhvbx2nqayfpe3ue + eslint-plugin-jsx-a11y: 6.5.1_eslint@8.40.0 + eslint-plugin-react: 7.31.8_eslint@8.40.0 + eslint-plugin-react-hooks: 4.5.0_eslint@8.40.0 + typescript: 5.0.4 + transitivePeerDependencies: + - eslint-import-resolver-webpack + - supports-color + dev: false + + /eslint-config-next/13.4.2_rmayb2veg2btbq6mbmnyivgasy: + resolution: {integrity: sha512-zjLJ9B9bbeWSo5q+iHfdt8gVYyT+y2BpWDfjR6XMBtFRSMKRGjllDKxnuKBV1q2Y/QpwLM2PXHJTMRyblCmRAg==} peerDependencies: eslint: ^7.23.0 || ^8.0.0 - typescript: ">=3.3.1" + typescript: '>=3.3.1' peerDependenciesMeta: typescript: optional: true dependencies: - "@next/eslint-plugin-next": 13.3.4 - "@rushstack/eslint-patch": 1.1.3 - "@typescript-eslint/parser": 5.43.0_rmayb2veg2btbq6mbmnyivgasy + '@next/eslint-plugin-next': 13.4.2 + '@rushstack/eslint-patch': 1.1.3 + '@typescript-eslint/parser': 5.43.0_rmayb2veg2btbq6mbmnyivgasy eslint: 8.27.0 eslint-import-resolver-node: 0.3.6 eslint-import-resolver-typescript: 3.5.2_dcpv4nbdr5ks2h5677xdltrk6e @@ -11365,47 +9205,35 @@ packages: dev: true /eslint-config-prettier/8.5.0: - resolution: - { - integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==, - } + resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} hasBin: true peerDependencies: - eslint: ">=7.0.0" + eslint: '>=7.0.0' dev: false /eslint-config-prettier/8.5.0_eslint@8.27.0: - resolution: - { - integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==, - } + resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} hasBin: true peerDependencies: - eslint: ">=7.0.0" + eslint: '>=7.0.0' dependencies: eslint: 8.27.0 dev: true /eslint-import-resolver-node/0.3.6: - resolution: - { - integrity: sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==, - } + resolution: {integrity: sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==} dependencies: debug: 3.2.7 - resolve: 1.22.1 + resolve: 1.22.2 transitivePeerDependencies: - supports-color /eslint-import-resolver-typescript/2.7.1_dcpv4nbdr5ks2h5677xdltrk6e: - resolution: - { - integrity: sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==} + engines: {node: '>=4'} peerDependencies: - eslint: "*" - eslint-plugin-import: "*" + eslint: '*' + eslint-plugin-import: '*' dependencies: debug: 4.3.4 eslint: 8.27.0 @@ -11419,14 +9247,11 @@ packages: dev: true /eslint-import-resolver-typescript/2.7.1_fkfqfehjtk7sk2efaqbgxsuasa: - resolution: - { - integrity: sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==} + engines: {node: '>=4'} peerDependencies: - eslint: "*" - eslint-plugin-import: "*" + eslint: '*' + eslint-plugin-import: '*' dependencies: debug: 4.3.4 eslint-plugin-import: 2.26.0_thmqqzpxv5mluo3coertzplf2y @@ -11439,14 +9264,11 @@ packages: dev: false /eslint-import-resolver-typescript/2.7.1_mynvxvmq5qtyojffiqgev4x7mm: - resolution: - { - integrity: sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==} + engines: {node: '>=4'} peerDependencies: - eslint: "*" - eslint-plugin-import: "*" + eslint: '*' + eslint-plugin-import: '*' dependencies: debug: 4.3.4 eslint: 8.26.0 @@ -11459,14 +9281,11 @@ packages: - supports-color /eslint-import-resolver-typescript/3.5.2_dcpv4nbdr5ks2h5677xdltrk6e: - resolution: - { - integrity: sha512-zX4ebnnyXiykjhcBvKIf5TNvt8K7yX6bllTRZ14MiurKPjDpCAZujlszTdB8pcNXhZcOf+god4s9SjQa5GnytQ==, - } + resolution: {integrity: sha512-zX4ebnnyXiykjhcBvKIf5TNvt8K7yX6bllTRZ14MiurKPjDpCAZujlszTdB8pcNXhZcOf+god4s9SjQa5GnytQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - eslint: "*" - eslint-plugin-import: "*" + eslint: '*' + eslint-plugin-import: '*' dependencies: debug: 4.3.4 enhanced-resolve: 5.11.0 @@ -11481,19 +9300,35 @@ packages: - supports-color dev: true + /eslint-import-resolver-typescript/3.5.2_lw64bwrfdlvteab5a4bczvvhwa: + resolution: {integrity: sha512-zX4ebnnyXiykjhcBvKIf5TNvt8K7yX6bllTRZ14MiurKPjDpCAZujlszTdB8pcNXhZcOf+god4s9SjQa5GnytQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + dependencies: + debug: 4.3.4 + enhanced-resolve: 5.11.0 + eslint: 8.40.0 + eslint-plugin-import: 2.26.0_xd3gykel45bhvbx2nqayfpe3ue + get-tsconfig: 4.2.0 + globby: 13.1.2 + is-core-module: 2.11.0 + is-glob: 4.0.3 + synckit: 0.8.4 + transitivePeerDependencies: + - supports-color + /eslint-module-utils/2.7.3_clahhyedowhj7lywpxe6ohktxi: - resolution: - { - integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==, - } - engines: {node: ">=4"} - peerDependencies: - "@typescript-eslint/parser": "*" - eslint-import-resolver-node: "*" - eslint-import-resolver-typescript: "*" - eslint-import-resolver-webpack: "*" + resolution: {integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' peerDependenciesMeta: - "@typescript-eslint/parser": + '@typescript-eslint/parser': optional: true eslint-import-resolver-node: optional: true @@ -11502,28 +9337,24 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - "@typescript-eslint/parser": 5.43.0_rmayb2veg2btbq6mbmnyivgasy + '@typescript-eslint/parser': 5.43.0_3qfatcekpgbllh6uk5ivyhkbxq debug: 3.2.7 eslint-import-resolver-node: 0.3.6 - eslint-import-resolver-typescript: 3.5.2_dcpv4nbdr5ks2h5677xdltrk6e + eslint-import-resolver-typescript: 3.5.2_lw64bwrfdlvteab5a4bczvvhwa find-up: 2.1.0 transitivePeerDependencies: - supports-color - dev: true /eslint-module-utils/2.7.3_rmba4edv35vyqs75pdxciqmxgu: - resolution: - { - integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==, - } - engines: {node: ">=4"} - peerDependencies: - "@typescript-eslint/parser": "*" - eslint-import-resolver-node: "*" - eslint-import-resolver-typescript: "*" - eslint-import-resolver-webpack: "*" + resolution: {integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' peerDependenciesMeta: - "@typescript-eslint/parser": + '@typescript-eslint/parser': optional: true eslint-import-resolver-node: optional: true @@ -11532,7 +9363,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - "@typescript-eslint/parser": 5.43.0_wyqvi574yv7oiwfeinomdzmc3m + '@typescript-eslint/parser': 5.43.0_wyqvi574yv7oiwfeinomdzmc3m debug: 3.2.7 eslint-import-resolver-node: 0.3.6 eslint-import-resolver-typescript: 2.7.1_mynvxvmq5qtyojffiqgev4x7mm @@ -11541,19 +9372,16 @@ packages: - supports-color /eslint-plugin-import/2.26.0_bbzxof3vtngyannf3l4jlcflvy: - resolution: - { - integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} + engines: {node: '>=4'} peerDependencies: - "@typescript-eslint/parser": "*" + '@typescript-eslint/parser': '*' eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 peerDependenciesMeta: - "@typescript-eslint/parser": + '@typescript-eslint/parser': optional: true dependencies: - "@typescript-eslint/parser": 5.43.0_rmayb2veg2btbq6mbmnyivgasy + '@typescript-eslint/parser': 5.43.0_rmayb2veg2btbq6mbmnyivgasy array-includes: 3.1.5 array.prototype.flat: 1.3.0 debug: 2.6.9 @@ -11566,7 +9394,7 @@ packages: is-glob: 4.0.3 minimatch: 3.1.2 object.values: 1.1.5 - resolve: 1.22.1 + resolve: 1.22.2 tsconfig-paths: 3.14.1 transitivePeerDependencies: - eslint-import-resolver-typescript @@ -11575,19 +9403,16 @@ packages: dev: true /eslint-plugin-import/2.26.0_lcezp3og7ox4rmwnvswasffmgu: - resolution: - { - integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} + engines: {node: '>=4'} peerDependencies: - "@typescript-eslint/parser": "*" + '@typescript-eslint/parser': '*' eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 peerDependenciesMeta: - "@typescript-eslint/parser": + '@typescript-eslint/parser': optional: true dependencies: - "@typescript-eslint/parser": 5.43.0_wyqvi574yv7oiwfeinomdzmc3m + '@typescript-eslint/parser': 5.43.0_wyqvi574yv7oiwfeinomdzmc3m array-includes: 3.1.5 array.prototype.flat: 1.3.0 debug: 2.6.9 @@ -11600,7 +9425,7 @@ packages: is-glob: 4.0.3 minimatch: 3.1.2 object.values: 1.1.5 - resolve: 1.22.1 + resolve: 1.22.2 tsconfig-paths: 3.14.1 transitivePeerDependencies: - eslint-import-resolver-typescript @@ -11608,19 +9433,16 @@ packages: - supports-color /eslint-plugin-import/2.26.0_thmqqzpxv5mluo3coertzplf2y: - resolution: - { - integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} + engines: {node: '>=4'} peerDependencies: - "@typescript-eslint/parser": "*" + '@typescript-eslint/parser': '*' eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 peerDependenciesMeta: - "@typescript-eslint/parser": + '@typescript-eslint/parser': optional: true dependencies: - "@typescript-eslint/parser": 5.43.0_typescript@4.8.4 + '@typescript-eslint/parser': 5.43.0_typescript@4.8.4 array-includes: 3.1.5 array.prototype.flat: 1.3.0 debug: 2.6.9 @@ -11632,7 +9454,7 @@ packages: is-glob: 4.0.3 minimatch: 3.1.2 object.values: 1.1.5 - resolve: 1.22.1 + resolve: 1.22.2 tsconfig-paths: 3.14.1 transitivePeerDependencies: - eslint-import-resolver-typescript @@ -11641,19 +9463,16 @@ packages: dev: false /eslint-plugin-import/2.26.0_ttnp75sbivpcvanbhjbkcsh3ly: - resolution: - { - integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} + engines: {node: '>=4'} peerDependencies: - "@typescript-eslint/parser": "*" + '@typescript-eslint/parser': '*' eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 peerDependenciesMeta: - "@typescript-eslint/parser": + '@typescript-eslint/parser': optional: true dependencies: - "@typescript-eslint/parser": 5.43.0_rmayb2veg2btbq6mbmnyivgasy + '@typescript-eslint/parser': 5.43.0_rmayb2veg2btbq6mbmnyivgasy array-includes: 3.1.5 array.prototype.flat: 1.3.0 debug: 2.6.9 @@ -11666,7 +9485,7 @@ packages: is-glob: 4.0.3 minimatch: 3.1.2 object.values: 1.1.5 - resolve: 1.22.1 + resolve: 1.22.2 tsconfig-paths: 3.14.1 transitivePeerDependencies: - eslint-import-resolver-typescript @@ -11674,16 +9493,43 @@ packages: - supports-color dev: true + /eslint-plugin-import/2.26.0_xd3gykel45bhvbx2nqayfpe3ue: + resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 5.43.0_3qfatcekpgbllh6uk5ivyhkbxq + array-includes: 3.1.5 + array.prototype.flat: 1.3.0 + debug: 2.6.9 + doctrine: 2.1.0 + eslint: 8.40.0 + eslint-import-resolver-node: 0.3.6 + eslint-module-utils: 2.7.3_clahhyedowhj7lywpxe6ohktxi + has: 1.0.3 + is-core-module: 2.11.0 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.values: 1.1.5 + resolve: 1.22.2 + tsconfig-paths: 3.14.1 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + /eslint-plugin-jsx-a11y/6.5.1: - resolution: - { - integrity: sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==, - } - engines: {node: ">=4.0"} + resolution: {integrity: sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==} + engines: {node: '>=4.0'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - "@babel/runtime": 7.18.3 + '@babel/runtime': 7.18.3 aria-query: 4.2.2 array-includes: 3.1.5 ast-types-flow: 0.0.7 @@ -11698,15 +9544,12 @@ packages: dev: false /eslint-plugin-jsx-a11y/6.5.1_eslint@8.26.0: - resolution: - { - integrity: sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==, - } - engines: {node: ">=4.0"} + resolution: {integrity: sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==} + engines: {node: '>=4.0'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - "@babel/runtime": 7.18.3 + '@babel/runtime': 7.18.3 aria-query: 4.2.2 array-includes: 3.1.5 ast-types-flow: 0.0.7 @@ -11722,15 +9565,12 @@ packages: dev: true /eslint-plugin-jsx-a11y/6.5.1_eslint@8.27.0: - resolution: - { - integrity: sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==, - } - engines: {node: ">=4.0"} + resolution: {integrity: sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==} + engines: {node: '>=4.0'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - "@babel/runtime": 7.18.3 + '@babel/runtime': 7.18.3 aria-query: 4.2.2 array-includes: 3.1.5 ast-types-flow: 0.0.7 @@ -11745,22 +9585,37 @@ packages: minimatch: 3.1.2 dev: true + /eslint-plugin-jsx-a11y/6.5.1_eslint@8.40.0: + resolution: {integrity: sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + '@babel/runtime': 7.18.3 + aria-query: 4.2.2 + array-includes: 3.1.5 + ast-types-flow: 0.0.7 + axe-core: 4.4.2 + axobject-query: 2.2.0 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + eslint: 8.40.0 + has: 1.0.3 + jsx-ast-utils: 3.3.0 + language-tags: 1.0.5 + minimatch: 3.1.2 + dev: false + /eslint-plugin-react-hooks/4.5.0: - resolution: - { - integrity: sha512-8k1gRt7D7h03kd+SAAlzXkQwWK22BnK6GKZG+FJA6BAGy22CFvl8kCIXKpVux0cCxMWDQUPqSok0LKaZ0aOcCw==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-8k1gRt7D7h03kd+SAAlzXkQwWK22BnK6GKZG+FJA6BAGy22CFvl8kCIXKpVux0cCxMWDQUPqSok0LKaZ0aOcCw==} + engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dev: false /eslint-plugin-react-hooks/4.5.0_eslint@8.26.0: - resolution: - { - integrity: sha512-8k1gRt7D7h03kd+SAAlzXkQwWK22BnK6GKZG+FJA6BAGy22CFvl8kCIXKpVux0cCxMWDQUPqSok0LKaZ0aOcCw==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-8k1gRt7D7h03kd+SAAlzXkQwWK22BnK6GKZG+FJA6BAGy22CFvl8kCIXKpVux0cCxMWDQUPqSok0LKaZ0aOcCw==} + engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: @@ -11768,23 +9623,26 @@ packages: dev: true /eslint-plugin-react-hooks/4.5.0_eslint@8.27.0: - resolution: - { - integrity: sha512-8k1gRt7D7h03kd+SAAlzXkQwWK22BnK6GKZG+FJA6BAGy22CFvl8kCIXKpVux0cCxMWDQUPqSok0LKaZ0aOcCw==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-8k1gRt7D7h03kd+SAAlzXkQwWK22BnK6GKZG+FJA6BAGy22CFvl8kCIXKpVux0cCxMWDQUPqSok0LKaZ0aOcCw==} + engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: eslint: 8.27.0 dev: true + /eslint-plugin-react-hooks/4.5.0_eslint@8.40.0: + resolution: {integrity: sha512-8k1gRt7D7h03kd+SAAlzXkQwWK22BnK6GKZG+FJA6BAGy22CFvl8kCIXKpVux0cCxMWDQUPqSok0LKaZ0aOcCw==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + dependencies: + eslint: 8.40.0 + dev: false + /eslint-plugin-react/7.31.8: - resolution: - { - integrity: sha512-5lBTZmgQmARLLSYiwI71tiGVTLUuqXantZM6vlSY39OaDSV0M7+32K5DnLkmFrwTe+Ksz0ffuLUC91RUviVZfw==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-5lBTZmgQmARLLSYiwI71tiGVTLUuqXantZM6vlSY39OaDSV0M7+32K5DnLkmFrwTe+Ksz0ffuLUC91RUviVZfw==} + engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: @@ -11805,11 +9663,8 @@ packages: dev: false /eslint-plugin-react/7.31.8_eslint@8.26.0: - resolution: - { - integrity: sha512-5lBTZmgQmARLLSYiwI71tiGVTLUuqXantZM6vlSY39OaDSV0M7+32K5DnLkmFrwTe+Ksz0ffuLUC91RUviVZfw==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-5lBTZmgQmARLLSYiwI71tiGVTLUuqXantZM6vlSY39OaDSV0M7+32K5DnLkmFrwTe+Ksz0ffuLUC91RUviVZfw==} + engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: @@ -11831,11 +9686,8 @@ packages: dev: true /eslint-plugin-react/7.31.8_eslint@8.27.0: - resolution: - { - integrity: sha512-5lBTZmgQmARLLSYiwI71tiGVTLUuqXantZM6vlSY39OaDSV0M7+32K5DnLkmFrwTe+Ksz0ffuLUC91RUviVZfw==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-5lBTZmgQmARLLSYiwI71tiGVTLUuqXantZM6vlSY39OaDSV0M7+32K5DnLkmFrwTe+Ksz0ffuLUC91RUviVZfw==} + engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: @@ -11856,16 +9708,36 @@ packages: string.prototype.matchall: 4.0.7 dev: true + /eslint-plugin-react/7.31.8_eslint@8.40.0: + resolution: {integrity: sha512-5lBTZmgQmARLLSYiwI71tiGVTLUuqXantZM6vlSY39OaDSV0M7+32K5DnLkmFrwTe+Ksz0ffuLUC91RUviVZfw==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + array-includes: 3.1.5 + array.prototype.flatmap: 1.3.0 + doctrine: 2.1.0 + eslint: 8.40.0 + estraverse: 5.3.0 + jsx-ast-utils: 3.3.0 + minimatch: 3.1.2 + object.entries: 1.1.5 + object.fromentries: 2.0.5 + object.hasown: 1.1.1 + object.values: 1.1.5 + prop-types: 15.8.1 + resolve: 2.0.0-next.3 + semver: 6.3.0 + string.prototype.matchall: 4.0.7 + dev: false + /eslint-plugin-testing-library/5.0.1_rmayb2veg2btbq6mbmnyivgasy: - resolution: - { - integrity: sha512-8ZV4HbbacvOwu+adNnGpYd8E64NRcil2a11aFAbc/TZDUB/xxK2c8Z+LoeoHUbxNBGbTUdpAE4YUugxK85pcwQ==, - } - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: ">=6"} + resolution: {integrity: sha512-8ZV4HbbacvOwu+adNnGpYd8E64NRcil2a11aFAbc/TZDUB/xxK2c8Z+LoeoHUbxNBGbTUdpAE4YUugxK85pcwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6'} peerDependencies: eslint: ^7.5.0 || ^8.0.0 dependencies: - "@typescript-eslint/experimental-utils": 5.28.0_rmayb2veg2btbq6mbmnyivgasy + '@typescript-eslint/experimental-utils': 5.28.0_rmayb2veg2btbq6mbmnyivgasy eslint: 8.27.0 transitivePeerDependencies: - supports-color @@ -11873,87 +9745,74 @@ packages: dev: true /eslint-scope/5.1.1: - resolution: - { - integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==, - } - engines: {node: ">=8.0.0"} + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} dependencies: esrecurse: 4.3.0 estraverse: 4.3.0 /eslint-scope/7.1.1: - resolution: - { - integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==, - } + resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + /eslint-scope/7.2.0: + resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 /eslint-utils/3.0.0: - resolution: - { - integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==, - } + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: - eslint: ">=5" + eslint: '>=5' dependencies: eslint-visitor-keys: 2.1.0 dev: false /eslint-utils/3.0.0_eslint@8.26.0: - resolution: - { - integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==, - } + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: - eslint: ">=5" + eslint: '>=5' dependencies: eslint: 8.26.0 eslint-visitor-keys: 2.1.0 /eslint-utils/3.0.0_eslint@8.27.0: - resolution: - { - integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==, - } + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: - eslint: ">=5" + eslint: '>=5' dependencies: eslint: 8.27.0 eslint-visitor-keys: 2.1.0 /eslint-visitor-keys/2.1.0: - resolution: - { - integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} /eslint-visitor-keys/3.3.0: - resolution: - { - integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==, - } + resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + /eslint-visitor-keys/3.4.1: + resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} /eslint/8.26.0: - resolution: - { - integrity: sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg==, - } + resolution: {integrity: sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - "@eslint/eslintrc": 1.3.3 - "@humanwhocodes/config-array": 0.11.7 - "@humanwhocodes/module-importer": 1.0.1 - "@nodelib/fs.walk": 1.2.8 + '@eslint/eslintrc': 1.3.3 + '@humanwhocodes/config-array': 0.11.7 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 @@ -11993,17 +9852,14 @@ packages: - supports-color /eslint/8.27.0: - resolution: - { - integrity: sha512-0y1bfG2ho7mty+SiILVf9PfuRA49ek4Nc60Wmmu62QlobNR+CeXa4xXIJgcuwSQgZiWaPH+5BDsctpIW0PR/wQ==, - } + resolution: {integrity: sha512-0y1bfG2ho7mty+SiILVf9PfuRA49ek4Nc60Wmmu62QlobNR+CeXa4xXIJgcuwSQgZiWaPH+5BDsctpIW0PR/wQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - "@eslint/eslintrc": 1.3.3 - "@humanwhocodes/config-array": 0.11.7 - "@humanwhocodes/module-importer": 1.0.1 - "@nodelib/fs.walk": 1.2.8 + '@eslint/eslintrc': 1.3.3 + '@humanwhocodes/config-array': 0.11.7 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 @@ -12043,17 +9899,14 @@ packages: - supports-color /eslint/8.27.0_supports-color@8.1.1: - resolution: - { - integrity: sha512-0y1bfG2ho7mty+SiILVf9PfuRA49ek4Nc60Wmmu62QlobNR+CeXa4xXIJgcuwSQgZiWaPH+5BDsctpIW0PR/wQ==, - } + resolution: {integrity: sha512-0y1bfG2ho7mty+SiILVf9PfuRA49ek4Nc60Wmmu62QlobNR+CeXa4xXIJgcuwSQgZiWaPH+5BDsctpIW0PR/wQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - "@eslint/eslintrc": 1.3.3_supports-color@8.1.1 - "@humanwhocodes/config-array": 0.11.7_supports-color@8.1.1 - "@humanwhocodes/module-importer": 1.0.1 - "@nodelib/fs.walk": 1.2.8 + '@eslint/eslintrc': 1.3.3_supports-color@8.1.1 + '@humanwhocodes/config-array': 0.11.7_supports-color@8.1.1 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 @@ -12093,101 +9946,127 @@ packages: - supports-color dev: true + /eslint/8.40.0: + resolution: {integrity: sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0_eslint@8.40.0 + '@eslint-community/regexpp': 4.5.1 + '@eslint/eslintrc': 2.0.3 + '@eslint/js': 8.40.0 + '@humanwhocodes/config-array': 0.11.8 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.0 + eslint-visitor-keys: 3.4.1 + espree: 9.5.2 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.20.0 + grapheme-splitter: 1.0.4 + ignore: 5.2.0 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-sdsl: 4.1.5 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.1 + strip-ansi: 6.0.1 + strip-json-comments: 3.1.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + /espree/9.4.1: - resolution: - { - integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==, - } + resolution: {integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: acorn: 8.8.1 acorn-jsx: 5.3.2_acorn@8.8.1 eslint-visitor-keys: 3.3.0 + /espree/9.5.2: + resolution: {integrity: sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.8.1 + acorn-jsx: 5.3.2_acorn@8.8.1 + eslint-visitor-keys: 3.4.1 + /esprima/4.0.1: - resolution: - { - integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} hasBin: true /esquery/1.4.0: - resolution: - { - integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==, - } - engines: {node: ">=0.10"} + resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + + /esquery/1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} dependencies: estraverse: 5.3.0 /esrecurse/4.3.0: - resolution: - { - integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, - } - engines: {node: ">=4.0"} + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} dependencies: estraverse: 5.3.0 /estraverse/4.3.0: - resolution: - { - integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==, - } - engines: {node: ">=4.0"} + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} /estraverse/5.3.0: - resolution: - { - integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, - } - engines: {node: ">=4.0"} + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} /estree-walker/1.0.1: - resolution: - { - integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==, - } + resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} dev: true /estree-walker/2.0.2: - resolution: - { - integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==, - } + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} dev: true /esutils/2.0.3: - resolution: - { - integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} /etag/1.8.1: - resolution: - { - integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==, - } - engines: {node: ">= 0.6"} + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} dev: true /exec-sh/0.2.2: - resolution: - { - integrity: sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==, - } + resolution: {integrity: sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==} dependencies: merge: 1.2.1 dev: true /execa/0.10.0: - resolution: - { - integrity: sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==} + engines: {node: '>=4'} dependencies: cross-spawn: 6.0.5 get-stream: 3.0.0 @@ -12199,11 +10078,8 @@ packages: dev: true /execa/1.0.0: - resolution: - { - integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} + engines: {node: '>=6'} dependencies: cross-spawn: 6.0.5 get-stream: 4.1.0 @@ -12215,11 +10091,8 @@ packages: dev: false /execa/4.1.0: - resolution: - { - integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} + engines: {node: '>=10'} dependencies: cross-spawn: 7.0.3 get-stream: 5.2.0 @@ -12232,11 +10105,8 @@ packages: strip-final-newline: 2.0.0 /execa/5.1.1: - resolution: - { - integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} dependencies: cross-spawn: 7.0.3 get-stream: 6.0.1 @@ -12249,10 +10119,7 @@ packages: strip-final-newline: 2.0.0 /execa/6.1.0: - resolution: - { - integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==, - } + resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: cross-spawn: 7.0.3 @@ -12266,18 +10133,12 @@ packages: strip-final-newline: 3.0.0 /exit/0.1.2: - resolution: - { - integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==, - } - engines: {node: ">= 0.8.0"} + resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + engines: {node: '>= 0.8.0'} /expand-brackets/2.1.4: - resolution: - { - integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} + engines: {node: '>=0.10.0'} dependencies: debug: 2.6.9 define-property: 0.2.5 @@ -12291,11 +10152,8 @@ packages: dev: false /expand-brackets/2.1.4_supports-color@8.1.1: - resolution: - { - integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} + engines: {node: '>=0.10.0'} dependencies: debug: 2.6.9_supports-color@8.1.1 define-property: 0.2.5 @@ -12309,34 +10167,25 @@ packages: dev: false /expand-tilde/2.0.2: - resolution: - { - integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} + engines: {node: '>=0.10.0'} dependencies: homedir-polyfill: 1.0.3 dev: false /expect/29.3.0: - resolution: - { - integrity: sha512-bms139btnQNZh4uxCPmzbWz46YOjtEpYIZ847OfY9GCeSBEfzedHWH0CkdR20Sy+XBs8/FI2lFJPZiuH0NGv+w==, - } + resolution: {integrity: sha512-bms139btnQNZh4uxCPmzbWz46YOjtEpYIZ847OfY9GCeSBEfzedHWH0CkdR20Sy+XBs8/FI2lFJPZiuH0NGv+w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - "@jest/expect-utils": 29.2.2 + '@jest/expect-utils': 29.2.2 jest-get-type: 29.2.0 jest-matcher-utils: 29.2.2 jest-message-util: 29.2.1 jest-util: 29.2.1 /express/4.17.3: - resolution: - { - integrity: sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==, - } - engines: {node: ">= 0.10.0"} + resolution: {integrity: sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==} + engines: {node: '>= 0.10.0'} dependencies: accepts: 1.3.8 array-flatten: 1.1.1 @@ -12373,11 +10222,8 @@ packages: dev: true /express/4.17.3_supports-color@8.1.1: - resolution: - { - integrity: sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==, - } - engines: {node: ">= 0.10.0"} + resolution: {integrity: sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==} + engines: {node: '>= 0.10.0'} dependencies: accepts: 1.3.8 array-flatten: 1.1.1 @@ -12414,39 +10260,27 @@ packages: dev: true /extend-shallow/2.0.1: - resolution: - { - integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} dependencies: is-extendable: 0.1.1 dev: false /extend-shallow/3.0.2: - resolution: - { - integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} + engines: {node: '>=0.10.0'} dependencies: assign-symbols: 1.0.0 is-extendable: 1.0.1 dev: false /extendable-error/0.1.7: - resolution: - { - integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==, - } + resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} dev: false /external-editor/3.1.0: - resolution: - { - integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} dependencies: chardet: 0.7.0 iconv-lite: 0.4.24 @@ -12454,11 +10288,8 @@ packages: dev: false /extglob/2.0.4: - resolution: - { - integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} + engines: {node: '>=0.10.0'} dependencies: array-unique: 0.3.2 define-property: 1.0.0 @@ -12473,11 +10304,8 @@ packages: dev: false /extglob/2.0.4_supports-color@8.1.1: - resolution: - { - integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} + engines: {node: '>=0.10.0'} dependencies: array-unique: 0.3.2 define-property: 1.0.0 @@ -12492,37 +10320,28 @@ packages: dev: false /extract-zip/2.0.1: - resolution: - { - integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==, - } - engines: {node: ">= 10.17.0"} + resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} + engines: {node: '>= 10.17.0'} hasBin: true dependencies: debug: 4.3.3 get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: - "@types/yauzl": 2.10.0 + '@types/yauzl': 2.10.0 transitivePeerDependencies: - supports-color dev: true /fast-deep-equal/3.1.3: - resolution: - { - integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, - } + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} /fast-glob/2.2.7: - resolution: - { - integrity: sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==, - } - engines: {node: ">=4.0.0"} - dependencies: - "@mrmlnc/readdir-enhanced": 2.2.1 - "@nodelib/fs.stat": 1.1.3 + resolution: {integrity: sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==} + engines: {node: '>=4.0.0'} + dependencies: + '@mrmlnc/readdir-enhanced': 2.2.1 + '@nodelib/fs.stat': 1.1.3 glob-parent: 3.1.0 is-glob: 4.0.3 merge2: 1.4.1 @@ -12531,103 +10350,60 @@ packages: - supports-color dev: false - /fast-glob/3.2.11: - resolution: - { - integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==, - } - engines: {node: ">=8.6.0"} - dependencies: - "@nodelib/fs.stat": 2.0.5 - "@nodelib/fs.walk": 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.5 - /fast-glob/3.2.12: - resolution: - { - integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==, - } - engines: {node: ">=8.6.0"} - dependencies: - "@nodelib/fs.stat": 2.0.5 - "@nodelib/fs.walk": 1.2.8 + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.5 /fast-json-stable-stringify/2.1.0: - resolution: - { - integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, - } + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} /fast-levenshtein/2.0.6: - resolution: - { - integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, - } + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} /fastq/1.13.0: - resolution: - { - integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==, - } + resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} dependencies: reusify: 1.0.4 /fb-watchman/2.0.1: - resolution: - { - integrity: sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==, - } + resolution: {integrity: sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==} dependencies: bser: 2.1.1 /fd-slicer/1.1.0: - resolution: - { - integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==, - } + resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} dependencies: pend: 1.2.0 dev: true /fetch-blob/3.1.5: - resolution: - { - integrity: sha512-N64ZpKqoLejlrwkIAnb9iLSA3Vx/kjgzpcDhygcqJ2KKjky8nCgUQ+dzXtbrLaWZGZNmNfQTsiQ0weZ1svglHg==, - } + resolution: {integrity: sha512-N64ZpKqoLejlrwkIAnb9iLSA3Vx/kjgzpcDhygcqJ2KKjky8nCgUQ+dzXtbrLaWZGZNmNfQTsiQ0weZ1svglHg==} engines: {node: ^12.20 || >= 14.13} dependencies: node-domexception: 1.0.0 web-streams-polyfill: 3.2.1 /file-entry-cache/6.0.1: - resolution: - { - integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==, - } + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: flat-cache: 3.0.4 /filelist/1.0.4: - resolution: - { - integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==, - } + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} dependencies: minimatch: 5.1.0 dev: false /fill-range/4.0.0: - resolution: - { - integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} + engines: {node: '>=0.10.0'} dependencies: extend-shallow: 2.0.1 is-number: 3.0.0 @@ -12636,20 +10412,14 @@ packages: dev: false /fill-range/7.0.1: - resolution: - { - integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 /finalhandler/1.1.2: - resolution: - { - integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==, - } - engines: {node: ">= 0.8"} + resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} + engines: {node: '>= 0.8'} dependencies: debug: 2.6.9 encodeurl: 1.0.2 @@ -12663,11 +10433,8 @@ packages: dev: true /finalhandler/1.1.2_supports-color@8.1.1: - resolution: - { - integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==, - } - engines: {node: ">= 0.8"} + resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} + engines: {node: '>= 0.8'} dependencies: debug: 2.6.9_supports-color@8.1.1 encodeurl: 1.0.2 @@ -12681,11 +10448,8 @@ packages: dev: true /find-cache-dir/2.1.0: - resolution: - { - integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==} + engines: {node: '>=6'} dependencies: commondir: 1.0.1 make-dir: 2.1.0 @@ -12693,67 +10457,46 @@ packages: dev: false /find-index/0.1.1: - resolution: - { - integrity: sha512-uJ5vWrfBKMcE6y2Z8834dwEZj9mNGxYa3t3I53OwFeuZ8D9oc2E5zcsrkuhX6h4iYrjhiv0T3szQmxlAV9uxDg==, - } + resolution: {integrity: sha512-uJ5vWrfBKMcE6y2Z8834dwEZj9mNGxYa3t3I53OwFeuZ8D9oc2E5zcsrkuhX6h4iYrjhiv0T3szQmxlAV9uxDg==} dev: true /find-up/2.1.0: - resolution: - { - integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} + engines: {node: '>=4'} dependencies: locate-path: 2.0.0 /find-up/3.0.0: - resolution: - { - integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} + engines: {node: '>=6'} dependencies: locate-path: 3.0.0 dev: false /find-up/4.1.0: - resolution: - { - integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} dependencies: locate-path: 5.0.0 path-exists: 4.0.0 /find-up/5.0.0: - resolution: - { - integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} dependencies: locate-path: 6.0.0 path-exists: 4.0.0 /find-yarn-workspace-root2/1.2.16: - resolution: - { - integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==, - } + resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} dependencies: micromatch: 4.0.5 pkg-dir: 4.2.0 dev: false /findup-sync/5.0.0: - resolution: - { - integrity: sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==, - } - engines: {node: ">= 10.13.0"} + resolution: {integrity: sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==} + engines: {node: '>= 10.13.0'} dependencies: detect-file: 1.0.0 is-glob: 4.0.3 @@ -12762,65 +10505,44 @@ packages: dev: false /first-chunk-stream/2.0.0: - resolution: - { - integrity: sha512-X8Z+b/0L4lToKYq+lwnKqi9X/Zek0NibLpsJgVsSxpoYq7JtiCtRb5HqKVEjEw/qAb/4AKKRLOwwKHlWNpm2Eg==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-X8Z+b/0L4lToKYq+lwnKqi9X/Zek0NibLpsJgVsSxpoYq7JtiCtRb5HqKVEjEw/qAb/4AKKRLOwwKHlWNpm2Eg==} + engines: {node: '>=0.10.0'} dependencies: readable-stream: 2.3.7 dev: false /flat-cache/3.0.4: - resolution: - { - integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==, - } + resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: flatted: 3.2.7 rimraf: 3.0.2 /flatted/3.2.7: - resolution: - { - integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==, - } + resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} /flow-parser/0.179.0: - resolution: - { - integrity: sha512-M4dEgnvsGFa1lUTK05RFW+cwle8tkTHioFm6gGWdeGpDJjjhmvyaN8vLIqb8sAHI05TQxARsnUC3U2chzQP1Dw==, - } - engines: {node: ">=0.4.0"} + resolution: {integrity: sha512-M4dEgnvsGFa1lUTK05RFW+cwle8tkTHioFm6gGWdeGpDJjjhmvyaN8vLIqb8sAHI05TQxARsnUC3U2chzQP1Dw==} + engines: {node: '>=0.4.0'} dev: false /follow-redirects/1.15.1: - resolution: - { - integrity: sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==, - } - engines: {node: ">=4.0"} + resolution: {integrity: sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==} + engines: {node: '>=4.0'} peerDependencies: - debug: "*" + debug: '*' peerDependenciesMeta: debug: optional: true /for-in/1.0.2: - resolution: - { - integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} + engines: {node: '>=0.10.0'} dev: false /form-data/3.0.1: - resolution: - { - integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==, - } - engines: {node: ">= 6"} + resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} + engines: {node: '>= 6'} dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 @@ -12828,65 +10550,51 @@ packages: dev: true /form-data/4.0.0: - resolution: - { - integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==, - } - engines: {node: ">= 6"} + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.35 /formdata-polyfill/4.0.10: - resolution: - { - integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==, - } - engines: {node: ">=12.20.0"} + resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} + engines: {node: '>=12.20.0'} dependencies: fetch-blob: 3.1.5 /forwarded/0.2.0: - resolution: - { - integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==, - } - engines: {node: ">= 0.6"} + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} dev: true + /fraction.js/4.2.0: + resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} + dev: false + /fragment-cache/0.2.1: - resolution: - { - integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} + engines: {node: '>=0.10.0'} dependencies: map-cache: 0.2.2 dev: false /fresh/0.5.2: resolution: {integrity: sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=} - engines: {node: ">= 0.6"} + engines: {node: '>= 0.6'} dev: true /fs-extra/10.0.1: - resolution: - { - integrity: sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==} + engines: {node: '>=12'} dependencies: graceful-fs: 4.2.10 jsonfile: 6.1.0 universalify: 2.0.0 /fs-extra/7.0.1: - resolution: - { - integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==, - } - engines: {node: ">=6 <7 || >=8"} + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} dependencies: graceful-fs: 4.2.10 jsonfile: 4.0.0 @@ -12894,11 +10602,8 @@ packages: dev: false /fs-extra/8.1.0: - resolution: - { - integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==, - } - engines: {node: ">=6 <7 || >=8"} + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} dependencies: graceful-fs: 4.2.10 jsonfile: 4.0.0 @@ -12906,11 +10611,8 @@ packages: dev: false /fs-extra/9.1.0: - resolution: - { - integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} dependencies: at-least-node: 1.0.0 graceful-fs: 4.2.10 @@ -12919,43 +10621,28 @@ packages: dev: true /fs-minipass/2.1.0: - resolution: - { - integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==, - } - engines: {node: ">= 8"} + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} dependencies: minipass: 3.3.4 dev: false /fs.realpath/1.0.0: - resolution: - { - integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, - } + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} /fsevents/2.3.2: - resolution: - { - integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, - } + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true optional: true /function-bind/1.1.1: - resolution: - { - integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==, - } + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} /function.prototype.name/1.1.5: - resolution: - { - integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==, - } - engines: {node: ">= 0.4"} + resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.1.4 @@ -12963,130 +10650,81 @@ packages: functions-have-names: 1.2.3 /functions-have-names/1.2.3: - resolution: - { - integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==, - } + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} /gensync/1.0.0-beta.2: - resolution: - { - integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==, - } - engines: {node: ">=6.9.0"} + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} /get-caller-file/2.0.5: - resolution: - { - integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, - } + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} /get-func-name/2.0.0: - resolution: - { - integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==, - } + resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} /get-intrinsic/1.1.1: - resolution: - { - integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==, - } + resolution: {integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==} dependencies: function-bind: 1.1.1 has: 1.0.3 has-symbols: 1.0.3 /get-package-type/0.1.0: - resolution: - { - integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==, - } - engines: {node: ">=8.0.0"} + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} /get-port/5.1.1: - resolution: - { - integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} + engines: {node: '>=8'} dev: true /get-port/6.1.2: - resolution: - { - integrity: sha512-BrGGraKm2uPqurfGVj/z97/zv8dPleC6x9JBNRTrDNtCkkRF4rPwrQXFgL7+I+q8QSdU4ntLQX2D7KIxSy8nGw==, - } + resolution: {integrity: sha512-BrGGraKm2uPqurfGVj/z97/zv8dPleC6x9JBNRTrDNtCkkRF4rPwrQXFgL7+I+q8QSdU4ntLQX2D7KIxSy8nGw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true /get-stream/3.0.0: - resolution: - { - integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==} + engines: {node: '>=4'} dev: true /get-stream/4.1.0: - resolution: - { - integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} + engines: {node: '>=6'} dependencies: pump: 3.0.0 dev: false /get-stream/5.2.0: - resolution: - { - integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} dependencies: pump: 3.0.0 /get-stream/6.0.1: - resolution: - { - integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} /get-symbol-description/1.0.0: - resolution: - { - integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==, - } - engines: {node: ">= 0.4"} + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 get-intrinsic: 1.1.1 /get-tsconfig/4.2.0: - resolution: - { - integrity: sha512-X8u8fREiYOE6S8hLbq99PeykTDoLVnxvF4DjWKJmz9xy2nNRdUcV8ZN9tniJFeKyTU3qnC9lL8n4Chd6LmVKHg==, - } - dev: true + resolution: {integrity: sha512-X8u8fREiYOE6S8hLbq99PeykTDoLVnxvF4DjWKJmz9xy2nNRdUcV8ZN9tniJFeKyTU3qnC9lL8n4Chd6LmVKHg==} /get-value/2.0.6: - resolution: - { - integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} + engines: {node: '>=0.10.0'} dev: false /get-workspaces/0.6.0: - resolution: - { - integrity: sha512-EWfuENHoxNGk4xoel0jJdm/nhm8oMGQYRsTWJDqrHaj7jyebSckZI0TwQaeWX1rzqpMLULYFrdxhYJPI1l2j3w==, - } + resolution: {integrity: sha512-EWfuENHoxNGk4xoel0jJdm/nhm8oMGQYRsTWJDqrHaj7jyebSckZI0TwQaeWX1rzqpMLULYFrdxhYJPI1l2j3w==} dependencies: - "@changesets/types": 0.4.0 + '@changesets/types': 0.4.0 fs-extra: 7.0.1 globby: 9.2.0 read-yaml-file: 1.1.0 @@ -13095,59 +10733,38 @@ packages: dev: false /glob-parent/3.1.0: - resolution: - { - integrity: sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==, - } + resolution: {integrity: sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==} dependencies: is-glob: 3.1.0 path-dirname: 1.0.2 dev: false /glob-parent/5.1.2: - resolution: - { - integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, - } - engines: {node: ">= 6"} + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 /glob-parent/6.0.2: - resolution: - { - integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==, - } - engines: {node: ">=10.13.0"} + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} dependencies: is-glob: 4.0.3 /glob-regex/0.3.2: - resolution: - { - integrity: sha512-m5blUd3/OqDTWwzBBtWBPrGlAzatRywHameHeekAZyZrskYouOGdNB8T/q6JucucvJXtOuyHIn0/Yia7iDasDw==, - } + resolution: {integrity: sha512-m5blUd3/OqDTWwzBBtWBPrGlAzatRywHameHeekAZyZrskYouOGdNB8T/q6JucucvJXtOuyHIn0/Yia7iDasDw==} dev: true /glob-to-regexp/0.3.0: - resolution: - { - integrity: sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig==, - } + resolution: {integrity: sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig==} dev: false /glob-to-regexp/0.4.1: - resolution: - { - integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==, - } + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} dev: false /glob/7.1.6: - resolution: - { - integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==, - } + resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -13155,13 +10772,9 @@ packages: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 - dev: true /glob/7.1.7: - resolution: - { - integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==, - } + resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -13171,10 +10784,7 @@ packages: path-is-absolute: 1.0.1 /glob/7.2.0: - resolution: - { - integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==, - } + resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -13185,17 +10795,14 @@ packages: /glob2base/0.0.12: resolution: {integrity: sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=} - engines: {node: ">= 0.10"} + engines: {node: '>= 0.10'} dependencies: find-index: 0.1.1 dev: true /global-agent/3.0.0: - resolution: - { - integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==, - } - engines: {node: ">=10.0"} + resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==} + engines: {node: '>=10.0'} dependencies: boolean: 3.2.0 es6-error: 4.1.1 @@ -13206,11 +10813,8 @@ packages: dev: false /global-modules/1.0.0: - resolution: - { - integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} + engines: {node: '>=0.10.0'} dependencies: global-prefix: 1.0.2 is-windows: 1.0.2 @@ -13218,11 +10822,8 @@ packages: dev: false /global-prefix/1.0.2: - resolution: - { - integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} + engines: {node: '>=0.10.0'} dependencies: expand-tilde: 2.0.2 homedir-polyfill: 1.0.3 @@ -13232,44 +10833,34 @@ packages: dev: false /globals/11.12.0: - resolution: - { - integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} /globals/13.15.0: - resolution: - { - integrity: sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + + /globals/13.20.0: + resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} + engines: {node: '>=8'} dependencies: type-fest: 0.20.2 /globalthis/1.0.3: - resolution: - { - integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==, - } - engines: {node: ">= 0.4"} + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} dependencies: define-properties: 1.1.4 dev: false /globalyzer/0.1.0: - resolution: - { - integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==, - } - dev: true + resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} /globby/11.1.0: - resolution: - { - integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} dependencies: array-union: 2.1.0 dir-glob: 3.0.1 @@ -13279,26 +10870,20 @@ packages: slash: 3.0.0 /globby/13.1.2: - resolution: - { - integrity: sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==, - } + resolution: {integrity: sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: dir-glob: 3.0.1 - fast-glob: 3.2.11 + fast-glob: 3.2.12 ignore: 5.2.0 merge2: 1.4.1 slash: 4.0.0 /globby/9.2.0: - resolution: - { - integrity: sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==} + engines: {node: '>=6'} dependencies: - "@types/glob": 7.2.0 + '@types/glob': 7.2.0 array-union: 1.0.2 dir-glob: 2.2.2 fast-glob: 2.2.7 @@ -13311,23 +10896,16 @@ packages: dev: false /globrex/0.1.2: - resolution: - { - integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==, - } - dev: true + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} /got/11.8.1: - resolution: - { - integrity: sha512-9aYdZL+6nHmvJwHALLwKSUZ0hMwGaJGYv3hoPLPgnT8BoBXm1SjnZeky+91tfwJaDzun2s4RsBRy48IEYv2q2Q==, - } - engines: {node: ">=10.19.0"} - dependencies: - "@sindresorhus/is": 4.6.0 - "@szmarczak/http-timer": 4.0.6 - "@types/cacheable-request": 6.0.2 - "@types/responselike": 1.0.0 + resolution: {integrity: sha512-9aYdZL+6nHmvJwHALLwKSUZ0hMwGaJGYv3hoPLPgnT8BoBXm1SjnZeky+91tfwJaDzun2s4RsBRy48IEYv2q2Q==} + engines: {node: '>=10.19.0'} + dependencies: + '@sindresorhus/is': 4.6.0 + '@szmarczak/http-timer': 4.0.6 + '@types/cacheable-request': 6.0.2 + '@types/responselike': 1.0.0 cacheable-lookup: 5.0.4 cacheable-request: 7.0.2 decompress-response: 6.0.0 @@ -13338,16 +10916,13 @@ packages: dev: false /got/9.6.0: - resolution: - { - integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==, - } - engines: {node: ">=8.6"} - dependencies: - "@sindresorhus/is": 0.14.0 - "@szmarczak/http-timer": 1.1.2 - "@types/keyv": 3.1.4 - "@types/responselike": 1.0.0 + resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==} + engines: {node: '>=8.6'} + dependencies: + '@sindresorhus/is': 0.14.0 + '@szmarczak/http-timer': 1.1.2 + '@types/keyv': 3.1.4 + '@types/responselike': 1.0.0 cacheable-request: 6.1.0 decompress-response: 3.3.0 duplexer3: 0.1.4 @@ -13360,85 +10935,52 @@ packages: dev: false /graceful-fs/4.2.10: - resolution: - { - integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==, - } + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} /grapheme-splitter/1.0.4: - resolution: - { - integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==, - } + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} /gzip-size/6.0.0: - resolution: - { - integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} + engines: {node: '>=10'} dependencies: duplexer: 0.1.2 dev: true /hard-rejection/2.1.0: - resolution: - { - integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} dev: false /has-bigints/1.0.2: - resolution: - { - integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==, - } + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} /has-flag/3.0.0: - resolution: - { - integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} /has-flag/4.0.0: - resolution: - { - integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} /has-property-descriptors/1.0.0: - resolution: - { - integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==, - } + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} dependencies: get-intrinsic: 1.1.1 /has-symbols/1.0.3: - resolution: - { - integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==, - } - engines: {node: ">= 0.4"} + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} /has-tostringtag/1.0.0: - resolution: - { - integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==, - } - engines: {node: ">= 0.4"} + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 /has-value/0.3.1: - resolution: - { - integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} + engines: {node: '>=0.10.0'} dependencies: get-value: 2.0.6 has-values: 0.1.4 @@ -13446,11 +10988,8 @@ packages: dev: false /has-value/1.0.0: - resolution: - { - integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} + engines: {node: '>=0.10.0'} dependencies: get-value: 2.0.6 has-values: 1.0.0 @@ -13458,105 +10997,72 @@ packages: dev: false /has-values/0.1.4: - resolution: - { - integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} + engines: {node: '>=0.10.0'} dev: false /has-values/1.0.0: - resolution: - { - integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} + engines: {node: '>=0.10.0'} dependencies: is-number: 3.0.0 kind-of: 4.0.0 dev: false /has/1.0.3: - resolution: - { - integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==, - } - engines: {node: ">= 0.4.0"} + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} dependencies: function-bind: 1.1.1 /hasbin/1.2.3: resolution: {integrity: sha1-eMWSaJPIAhXCtWiuH9P8q3omlrA=} - engines: {node: ">=0.10"} + engines: {node: '>=0.10'} dependencies: async: 1.5.2 dev: false /he/1.2.0: - resolution: - { - integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==, - } + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true dev: true /hoist-non-react-statics/3.3.2: - resolution: - { - integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==, - } + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} dependencies: react-is: 16.13.1 dev: false /homedir-polyfill/1.0.3: - resolution: - { - integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} + engines: {node: '>=0.10.0'} dependencies: parse-passwd: 1.0.0 dev: false /hookable/5.1.1: - resolution: - { - integrity: sha512-7qam9XBFb+DijNBthaL1k/7lHU2TEMZkWSyuqmU3sCQze1wFm5w9AlEx30PD7a+QVAjOy6Ec2goFwe1YVyk2uA==, - } + resolution: {integrity: sha512-7qam9XBFb+DijNBthaL1k/7lHU2TEMZkWSyuqmU3sCQze1wFm5w9AlEx30PD7a+QVAjOy6Ec2goFwe1YVyk2uA==} dev: true /hosted-git-info/2.8.9: - resolution: - { - integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==, - } + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} dev: false /html-encoding-sniffer/3.0.0: - resolution: - { - integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} + engines: {node: '>=12'} dependencies: whatwg-encoding: 2.0.0 /html-escaper/2.0.2: - resolution: - { - integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==, - } + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} /html-to-text/8.2.0: - resolution: - { - integrity: sha512-CLXExYn1b++Lgri+ZyVvbUEFwzkLZppjjZOwB7X1qv2jIi8MrMEvxWX5KQ7zATAzTvcqgmtO00M2kCRMtEdOKQ==, - } - engines: {node: ">=10.23.2"} + resolution: {integrity: sha512-CLXExYn1b++Lgri+ZyVvbUEFwzkLZppjjZOwB7X1qv2jIi8MrMEvxWX5KQ7zATAzTvcqgmtO00M2kCRMtEdOKQ==} + engines: {node: '>=10.23.2'} hasBin: true dependencies: - "@selderee/plugin-htmlparser2": 0.6.0 + '@selderee/plugin-htmlparser2': 0.6.0 deepmerge: 4.2.2 he: 1.2.0 htmlparser2: 6.1.0 @@ -13565,10 +11071,7 @@ packages: dev: true /htmlparser2/6.1.0: - resolution: - { - integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==, - } + resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} dependencies: domelementtype: 2.3.0 domhandler: 4.3.1 @@ -13577,18 +11080,12 @@ packages: dev: true /http-cache-semantics/4.1.0: - resolution: - { - integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==, - } + resolution: {integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==} dev: false /http-errors/1.8.1: - resolution: - { - integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==, - } - engines: {node: ">= 0.6"} + resolution: {integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==} + engines: {node: '>= 0.6'} dependencies: depd: 1.1.2 inherits: 2.0.4 @@ -13598,42 +11095,30 @@ packages: dev: true /http-proxy-agent/5.0.0: - resolution: - { - integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==, - } - engines: {node: ">= 6"} + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} dependencies: - "@tootallnate/once": 2.0.0 + '@tootallnate/once': 2.0.0 agent-base: 6.0.2 debug: 4.3.4 transitivePeerDependencies: - supports-color /http/0.0.1-security: - resolution: - { - integrity: sha512-RnDvP10Ty9FxqOtPZuxtebw1j4L/WiqNMDtuc1YMH1XQm5TgDRaR1G9u8upL6KD1bXHSp9eSXo/ED+8Q7FAr+g==, - } + resolution: {integrity: sha512-RnDvP10Ty9FxqOtPZuxtebw1j4L/WiqNMDtuc1YMH1XQm5TgDRaR1G9u8upL6KD1bXHSp9eSXo/ED+8Q7FAr+g==} dev: false /http2-wrapper/1.0.3: - resolution: - { - integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==, - } - engines: {node: ">=10.19.0"} + resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} + engines: {node: '>=10.19.0'} dependencies: quick-lru: 5.1.1 resolve-alpn: 1.2.1 dev: false /https-proxy-agent/5.0.1: - resolution: - { - integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==, - } - engines: {node: ">= 6"} + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} dependencies: agent-base: 6.0.2 debug: 4.3.4 @@ -13641,161 +11126,101 @@ packages: - supports-color /human-id/1.0.2: - resolution: - { - integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==, - } + resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} dev: false /human-signals/1.1.1: - resolution: - { - integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==, - } - engines: {node: ">=8.12.0"} + resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} + engines: {node: '>=8.12.0'} /human-signals/2.1.0: - resolution: - { - integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==, - } - engines: {node: ">=10.17.0"} + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} /human-signals/3.0.1: - resolution: - { - integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==, - } - engines: {node: ">=12.20.0"} + resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==} + engines: {node: '>=12.20.0'} /husky/8.0.2: - resolution: - { - integrity: sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg==, - } - engines: {node: ">=14"} + resolution: {integrity: sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg==} + engines: {node: '>=14'} hasBin: true /iconv-lite/0.4.24: - resolution: - { - integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 /iconv-lite/0.6.3: - resolution: - { - integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 /ieee754/1.2.1: - resolution: - { - integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==, - } + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} dev: false /ignore/4.0.6: - resolution: - { - integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==, - } - engines: {node: ">= 4"} + resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} + engines: {node: '>= 4'} dev: false /ignore/5.2.0: - resolution: - { - integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==, - } - engines: {node: ">= 4"} + resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} + engines: {node: '>= 4'} /immediate/3.0.6: - resolution: - { - integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==, - } + resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} dev: true /import-fresh/3.3.0: - resolution: - { - integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 /import-local/3.1.0: - resolution: - { - integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} + engines: {node: '>=8'} hasBin: true dependencies: pkg-dir: 4.2.0 resolve-cwd: 3.0.0 /imurmurhash/0.1.4: - resolution: - { - integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==, - } - engines: {node: ">=0.8.19"} + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} /indent-string/4.0.0: - resolution: - { - integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} /inflight/1.0.6: - resolution: - { - integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, - } + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: once: 1.4.0 wrappy: 1.0.2 /inherits/2.0.3: - resolution: - { - integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==, - } + resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} dev: false /inherits/2.0.4: - resolution: - { - integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, - } + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} /ini/1.3.8: - resolution: - { - integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==, - } + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} dev: false /ink-spinner/4.0.3_ink@3.2.0+react@18.2.0: - resolution: - { - integrity: sha512-uJ4nbH00MM9fjTJ5xdw0zzvtXMkeGb0WV6dzSWvFv2/+ks6FIhpkt+Ge/eLdh0Ah6Vjw5pLMyNfoHQpRDRVFbQ==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-uJ4nbH00MM9fjTJ5xdw0zzvtXMkeGb0WV6dzSWvFv2/+ks6FIhpkt+Ge/eLdh0Ah6Vjw5pLMyNfoHQpRDRVFbQ==} + engines: {node: '>=10'} peerDependencies: - ink: ">=3.0.5" - react: ">=16.8.2" + ink: '>=3.0.5' + react: '>=16.8.2' dependencies: cli-spinners: 2.6.1 ink: 3.2.0_fan5qbzahqtxlm5dzefqlqx5ia @@ -13803,19 +11228,16 @@ packages: dev: false /ink/3.2.0_fan5qbzahqtxlm5dzefqlqx5ia: - resolution: - { - integrity: sha512-firNp1q3xxTzoItj/eOOSZQnYSlyrWks5llCTVX37nJ59K3eXbQ8PtzCguqo8YI19EELo5QxaKnJd4VxzhU8tg==, - } - engines: {node: ">=10"} - peerDependencies: - "@types/react": ">=16.8.0" - react: ">=16.8.0" + resolution: {integrity: sha512-firNp1q3xxTzoItj/eOOSZQnYSlyrWks5llCTVX37nJ59K3eXbQ8PtzCguqo8YI19EELo5QxaKnJd4VxzhU8tg==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '>=16.8.0' + react: '>=16.8.0' peerDependenciesMeta: - "@types/react": + '@types/react': optional: true dependencies: - "@types/react": 18.0.25 + '@types/react': 18.0.25 ansi-escapes: 4.3.2 auto-bind: 4.0.0 chalk: 4.1.2 @@ -13846,172 +11268,115 @@ packages: dev: false /internal-slot/1.0.3: - resolution: - { - integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==, - } - engines: {node: ">= 0.4"} + resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} + engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.1.1 has: 1.0.3 side-channel: 1.0.4 /ip-regex/4.3.0: - resolution: - { - integrity: sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==} + engines: {node: '>=8'} dev: true /ipaddr.js/1.9.1: - resolution: - { - integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==, - } - engines: {node: ">= 0.10"} + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} dev: true /is-accessor-descriptor/0.1.6: - resolution: - { - integrity: sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==} + engines: {node: '>=0.10.0'} dependencies: kind-of: 3.2.2 dev: false /is-accessor-descriptor/1.0.0: - resolution: - { - integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==} + engines: {node: '>=0.10.0'} dependencies: kind-of: 6.0.3 dev: false /is-arrayish/0.2.1: - resolution: - { - integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==, - } + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} /is-bigint/1.0.4: - resolution: - { - integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==, - } + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} dependencies: has-bigints: 1.0.2 /is-binary-path/2.1.0: - resolution: - { - integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} dependencies: binary-extensions: 2.2.0 /is-boolean-object/1.1.2: - resolution: - { - integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==, - } - engines: {node: ">= 0.4"} + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 has-tostringtag: 1.0.0 /is-buffer/1.1.6: - resolution: - { - integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==, - } + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} dev: false /is-builtin-module/3.1.0: - resolution: - { - integrity: sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==} + engines: {node: '>=6'} dependencies: builtin-modules: 3.2.0 dev: true /is-callable/1.2.4: - resolution: - { - integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==, - } - engines: {node: ">= 0.4"} + resolution: {integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==} + engines: {node: '>= 0.4'} /is-ci/2.0.0: - resolution: - { - integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==, - } + resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} hasBin: true dependencies: ci-info: 2.0.0 dev: false /is-ci/3.0.1: - resolution: - { - integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==, - } + resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} hasBin: true dependencies: ci-info: 3.3.1 dev: false /is-core-module/2.11.0: - resolution: - { - integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==, - } + resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} dependencies: has: 1.0.3 /is-data-descriptor/0.1.4: - resolution: - { - integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==} + engines: {node: '>=0.10.0'} dependencies: kind-of: 3.2.2 dev: false /is-data-descriptor/1.0.0: - resolution: - { - integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==} + engines: {node: '>=0.10.0'} dependencies: kind-of: 6.0.3 dev: false /is-date-object/1.0.5: - resolution: - { - integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==, - } - engines: {node: ">= 0.4"} + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 /is-descriptor/0.1.6: - resolution: - { - integrity: sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==} + engines: {node: '>=0.10.0'} dependencies: is-accessor-descriptor: 0.1.6 is-data-descriptor: 0.1.4 @@ -14019,11 +11384,8 @@ packages: dev: false /is-descriptor/1.0.2: - resolution: - { - integrity: sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==} + engines: {node: '>=0.10.0'} dependencies: is-accessor-descriptor: 1.0.0 is-data-descriptor: 1.0.0 @@ -14031,321 +11393,202 @@ packages: dev: false /is-docker/2.2.1: - resolution: - { - integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} hasBin: true - dev: true /is-expression/4.0.0: - resolution: - { - integrity: sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==, - } + resolution: {integrity: sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==} dependencies: acorn: 7.4.1 object-assign: 4.1.1 dev: true /is-extendable/0.1.1: - resolution: - { - integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} dev: false /is-extendable/1.0.1: - resolution: - { - integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} + engines: {node: '>=0.10.0'} dependencies: is-plain-object: 2.0.4 dev: false /is-extglob/2.1.1: - resolution: - { - integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} /is-fullwidth-code-point/3.0.0: - resolution: - { - integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} /is-fullwidth-code-point/4.0.0: - resolution: - { - integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} /is-generator-fn/2.1.0: - resolution: - { - integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} + engines: {node: '>=6'} /is-glob/3.1.0: - resolution: - { - integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==} + engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 dev: false /is-glob/4.0.3: - resolution: - { - integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 /is-interactive/1.0.0: - resolution: - { - integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} dev: false /is-module/1.0.0: - resolution: - { - integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==, - } + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} dev: true /is-negative-zero/2.0.2: - resolution: - { - integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==, - } - engines: {node: ">= 0.4"} + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} /is-number-object/1.0.7: - resolution: - { - integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==, - } - engines: {node: ">= 0.4"} + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 /is-number/3.0.0: - resolution: - { - integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} + engines: {node: '>=0.10.0'} dependencies: kind-of: 3.2.2 dev: false /is-number/7.0.0: - resolution: - { - integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, - } - engines: {node: ">=0.12.0"} + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} /is-path-cwd/2.2.0: - resolution: - { - integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} + engines: {node: '>=6'} dev: true /is-path-inside/3.0.3: - resolution: - { - integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} /is-plain-obj/1.1.0: - resolution: - { - integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} dev: false /is-plain-object/2.0.4: - resolution: - { - integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} dependencies: isobject: 3.0.1 dev: false /is-potential-custom-element-name/1.0.1: - resolution: - { - integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==, - } + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} /is-promise/2.2.2: - resolution: - { - integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==, - } + resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} dev: true /is-reference/1.2.1: - resolution: - { - integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==, - } + resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} dependencies: - "@types/estree": 0.0.51 + '@types/estree': 0.0.51 dev: true /is-regex/1.1.4: - resolution: - { - integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==, - } - engines: {node: ">= 0.4"} + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 has-tostringtag: 1.0.0 /is-shared-array-buffer/1.0.2: - resolution: - { - integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==, - } + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} dependencies: call-bind: 1.0.2 /is-stream/1.1.0: - resolution: - { - integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} + engines: {node: '>=0.10.0'} /is-stream/2.0.1: - resolution: - { - integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} /is-stream/3.0.0: - resolution: - { - integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==, - } + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} /is-string/1.0.7: - resolution: - { - integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==, - } - engines: {node: ">= 0.4"} + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 /is-subdir/1.2.0: - resolution: - { - integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} + engines: {node: '>=4'} dependencies: better-path-resolve: 1.0.0 dev: false /is-symbol/1.0.4: - resolution: - { - integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==, - } - engines: {node: ">= 0.4"} + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 /is-unicode-supported/0.1.0: - resolution: - { - integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} dev: false /is-url/1.2.4: - resolution: - { - integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==, - } + resolution: {integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==} dev: true /is-utf8/0.2.1: - resolution: - { - integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==, - } + resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} dev: false /is-weakref/1.0.2: - resolution: - { - integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==, - } + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: call-bind: 1.0.2 /is-what/4.1.7: - resolution: - { - integrity: sha512-DBVOQNiPKnGMxRMLIYSwERAS5MVY1B7xYiGnpgctsOFvVDz9f9PFXXxMcTOHuoqYp4NK9qFYQaIC1NRRxLMpBQ==, - } - engines: {node: ">=12.13"} + resolution: {integrity: sha512-DBVOQNiPKnGMxRMLIYSwERAS5MVY1B7xYiGnpgctsOFvVDz9f9PFXXxMcTOHuoqYp4NK9qFYQaIC1NRRxLMpBQ==} + engines: {node: '>=12.13'} dev: false /is-windows/1.0.2: - resolution: - { - integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} dev: false /is-wsl/2.2.0: - resolution: - { - integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} dependencies: is-docker: 2.2.1 - dev: true /is2/2.0.7: - resolution: - { - integrity: sha512-4vBQoURAXC6hnLFxD4VW7uc04XiwTTl/8ydYJxKvPwkWQrSjInkuM5VZVg6BGr1/natq69zDuvO9lGpLClJqvA==, - } - engines: {node: ">=v0.10.0"} + resolution: {integrity: sha512-4vBQoURAXC6hnLFxD4VW7uc04XiwTTl/8ydYJxKvPwkWQrSjInkuM5VZVg6BGr1/natq69zDuvO9lGpLClJqvA==} + engines: {node: '>=v0.10.0'} dependencies: deep-is: 0.1.4 ip-regex: 4.3.0 @@ -14353,105 +11596,72 @@ packages: dev: true /isarray/1.0.0: - resolution: - { - integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==, - } + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} /isbinaryfile/4.0.10: - resolution: - { - integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==, - } - engines: {node: ">= 8.0.0"} + resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} + engines: {node: '>= 8.0.0'} dev: false /isexe/2.0.0: - resolution: - { - integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, - } + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} /isobject/2.1.0: - resolution: - { - integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} + engines: {node: '>=0.10.0'} dependencies: isarray: 1.0.0 dev: false /isobject/3.0.1: - resolution: - { - integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} dev: false /istanbul-lib-coverage/3.2.0: - resolution: - { - integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} + engines: {node: '>=8'} /istanbul-lib-instrument/5.2.0: - resolution: - { - integrity: sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==, - } - engines: {node: ">=8"} - dependencies: - "@babel/core": 7.20.2 - "@babel/parser": 7.20.3 - "@istanbuljs/schema": 0.1.3 + resolution: {integrity: sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==} + engines: {node: '>=8'} + dependencies: + '@babel/core': 7.20.2 + '@babel/parser': 7.20.3 + '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 semver: 6.3.0 transitivePeerDependencies: - supports-color /istanbul-lib-report/3.0.0: - resolution: - { - integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==} + engines: {node: '>=8'} dependencies: istanbul-lib-coverage: 3.2.0 make-dir: 3.1.0 supports-color: 7.2.0 /istanbul-lib-source-maps/4.0.1: - resolution: - { - integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} dependencies: - debug: 4.3.4 + debug: 4.3.3 istanbul-lib-coverage: 3.2.0 source-map: 0.6.1 transitivePeerDependencies: - supports-color /istanbul-reports/3.1.4: - resolution: - { - integrity: sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==} + engines: {node: '>=8'} dependencies: html-escaper: 2.0.2 istanbul-lib-report: 3.0.0 /jake/10.8.5: - resolution: - { - integrity: sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==} + engines: {node: '>=10'} hasBin: true dependencies: async: 3.2.4 @@ -14461,27 +11671,21 @@ packages: dev: false /jest-changed-files/29.2.0: - resolution: - { - integrity: sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA==, - } + resolution: {integrity: sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: execa: 5.1.1 p-limit: 3.1.0 /jest-circus/29.3.0: - resolution: - { - integrity: sha512-xL1cmbUGBGy923KBZpZ2LRKspHlIhrltrwGaefJ677HXCPY5rTF758BtweamBype2ogcSEK/oqcp1SmYZ/ATig==, - } + resolution: {integrity: sha512-xL1cmbUGBGy923KBZpZ2LRKspHlIhrltrwGaefJ677HXCPY5rTF758BtweamBype2ogcSEK/oqcp1SmYZ/ATig==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - "@jest/environment": 29.3.0 - "@jest/expect": 29.3.0 - "@jest/test-result": 29.2.1 - "@jest/types": 29.2.1 - "@types/node": 18.11.9 + '@jest/environment': 29.3.0 + '@jest/expect': 29.3.0 + '@jest/test-result': 29.2.1 + '@jest/types': 29.2.1 + '@types/node': 18.11.9 chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 @@ -14500,10 +11704,7 @@ packages: - supports-color /jest-cli/29.3.0_odkjkoia5xunhxkdrka32ib6vi: - resolution: - { - integrity: sha512-rDb9iasZvqTkgrlwzVGemR5i20T0/XN1ug46Ch2vxTRa0zS5PHaVXQXYzYbuLFHs1xpc+XsB9xPfEkkwbnLJBg==, - } + resolution: {integrity: sha512-rDb9iasZvqTkgrlwzVGemR5i20T0/XN1ug46Ch2vxTRa0zS5PHaVXQXYzYbuLFHs1xpc+XsB9xPfEkkwbnLJBg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: @@ -14512,9 +11713,9 @@ packages: node-notifier: optional: true dependencies: - "@jest/core": 29.3.0_ts-node@10.9.1 - "@jest/test-result": 29.2.1 - "@jest/types": 29.2.1 + '@jest/core': 29.3.0_ts-node@10.9.1 + '@jest/test-result': 29.2.1 + '@jest/types': 29.2.1 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.10 @@ -14525,16 +11726,13 @@ packages: prompts: 2.4.2 yargs: 17.6.2 transitivePeerDependencies: - - "@types/node" + - '@types/node' - supports-color - ts-node dev: true /jest-cli/29.3.0_ts-node@10.9.1: - resolution: - { - integrity: sha512-rDb9iasZvqTkgrlwzVGemR5i20T0/XN1ug46Ch2vxTRa0zS5PHaVXQXYzYbuLFHs1xpc+XsB9xPfEkkwbnLJBg==, - } + resolution: {integrity: sha512-rDb9iasZvqTkgrlwzVGemR5i20T0/XN1ug46Ch2vxTRa0zS5PHaVXQXYzYbuLFHs1xpc+XsB9xPfEkkwbnLJBg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: @@ -14543,9 +11741,9 @@ packages: node-notifier: optional: true dependencies: - "@jest/core": 29.3.0_ts-node@10.9.1 - "@jest/test-result": 29.2.1 - "@jest/types": 29.2.1 + '@jest/core': 29.3.0_ts-node@10.9.1 + '@jest/test-result': 29.2.1 + '@jest/types': 29.2.1 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.10 @@ -14556,30 +11754,27 @@ packages: prompts: 2.4.2 yargs: 17.6.2 transitivePeerDependencies: - - "@types/node" + - '@types/node' - supports-color - ts-node dev: false /jest-config/29.3.0_odkjkoia5xunhxkdrka32ib6vi: - resolution: - { - integrity: sha512-sTSDs/M+//njznsytxiBxwfDnSWRb6OqiNSlO/B2iw1HUaa1YLsdWmV4AWLXss1XKzv1F0yVK+kA4XOhZ0I1qQ==, - } + resolution: {integrity: sha512-sTSDs/M+//njznsytxiBxwfDnSWRb6OqiNSlO/B2iw1HUaa1YLsdWmV4AWLXss1XKzv1F0yVK+kA4XOhZ0I1qQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: - "@types/node": "*" - ts-node: ">=9.0.0" + '@types/node': '*' + ts-node: '>=9.0.0' peerDependenciesMeta: - "@types/node": + '@types/node': optional: true ts-node: optional: true dependencies: - "@babel/core": 7.20.2 - "@jest/test-sequencer": 29.3.0 - "@jest/types": 29.2.1 - "@types/node": 18.11.9 + '@babel/core': 7.20.2 + '@jest/test-sequencer': 29.3.0 + '@jest/types': 29.2.1 + '@types/node': 18.11.9 babel-jest: 29.3.0_@babel+core@7.20.2 chalk: 4.1.2 ci-info: 3.5.0 @@ -14599,28 +11794,25 @@ packages: pretty-format: 29.2.1 slash: 3.0.0 strip-json-comments: 3.1.1 - ts-node: 10.9.1_typescript@4.8.4 + ts-node: 10.9.1_cbe7ovvae6zqfnmtgctpgpys54 transitivePeerDependencies: - supports-color /jest-config/29.3.0_ts-node@10.9.1: - resolution: - { - integrity: sha512-sTSDs/M+//njznsytxiBxwfDnSWRb6OqiNSlO/B2iw1HUaa1YLsdWmV4AWLXss1XKzv1F0yVK+kA4XOhZ0I1qQ==, - } + resolution: {integrity: sha512-sTSDs/M+//njznsytxiBxwfDnSWRb6OqiNSlO/B2iw1HUaa1YLsdWmV4AWLXss1XKzv1F0yVK+kA4XOhZ0I1qQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: - "@types/node": "*" - ts-node: ">=9.0.0" + '@types/node': '*' + ts-node: '>=9.0.0' peerDependenciesMeta: - "@types/node": + '@types/node': optional: true ts-node: optional: true dependencies: - "@babel/core": 7.20.2 - "@jest/test-sequencer": 29.3.0 - "@jest/types": 29.2.1 + '@babel/core': 7.20.2 + '@jest/test-sequencer': 29.3.0 + '@jest/types': 29.2.1 babel-jest: 29.3.0_@babel+core@7.20.2 chalk: 4.1.2 ci-info: 3.5.0 @@ -14646,10 +11838,7 @@ packages: dev: false /jest-diff/29.2.1: - resolution: - { - integrity: sha512-gfh/SMNlQmP3MOUgdzxPOd4XETDJifADpT937fN1iUGz+9DgOu2eUPHH25JDkLVcLwwqxv3GzVyK4VBUr9fjfA==, - } + resolution: {integrity: sha512-gfh/SMNlQmP3MOUgdzxPOd4XETDJifADpT937fN1iUGz+9DgOu2eUPHH25JDkLVcLwwqxv3GzVyK4VBUr9fjfA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 @@ -14658,32 +11847,23 @@ packages: pretty-format: 29.2.1 /jest-docblock/29.2.0: - resolution: - { - integrity: sha512-bkxUsxTgWQGbXV5IENmfiIuqZhJcyvF7tU4zJ/7ioTutdz4ToB5Yx6JOFBpgI+TphRY4lhOyCWGNH/QFQh5T6A==, - } + resolution: {integrity: sha512-bkxUsxTgWQGbXV5IENmfiIuqZhJcyvF7tU4zJ/7ioTutdz4ToB5Yx6JOFBpgI+TphRY4lhOyCWGNH/QFQh5T6A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: detect-newline: 3.1.0 /jest-each/29.2.1: - resolution: - { - integrity: sha512-sGP86H/CpWHMyK3qGIGFCgP6mt+o5tu9qG4+tobl0LNdgny0aitLXs9/EBacLy3Bwqy+v4uXClqJgASJWcruYw==, - } + resolution: {integrity: sha512-sGP86H/CpWHMyK3qGIGFCgP6mt+o5tu9qG4+tobl0LNdgny0aitLXs9/EBacLy3Bwqy+v4uXClqJgASJWcruYw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - "@jest/types": 29.2.1 + '@jest/types': 29.2.1 chalk: 4.1.2 jest-get-type: 29.2.0 jest-util: 29.2.1 pretty-format: 29.2.1 /jest-environment-jsdom/29.3.0: - resolution: - { - integrity: sha512-xFLbMR4OF4lntNcO9LthJdPRbI9WgfFlG73aQS6wQ54+v4oSAp8T4FKUw0add+Z+Ghu/dirRxuvc4FzzN5kRxw==, - } + resolution: {integrity: sha512-xFLbMR4OF4lntNcO9LthJdPRbI9WgfFlG73aQS6wQ54+v4oSAp8T4FKUw0add+Z+Ghu/dirRxuvc4FzzN5kRxw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: canvas: ^2.5.0 @@ -14691,11 +11871,11 @@ packages: canvas: optional: true dependencies: - "@jest/environment": 29.3.0 - "@jest/fake-timers": 29.3.0 - "@jest/types": 29.2.1 - "@types/jsdom": 20.0.1 - "@types/node": 18.11.9 + '@jest/environment': 29.3.0 + '@jest/fake-timers': 29.3.0 + '@jest/types': 29.2.1 + '@types/jsdom': 20.0.1 + '@types/node': 18.11.9 jest-mock: 29.3.0 jest-util: 29.2.1 jsdom: 20.0.3 @@ -14705,36 +11885,27 @@ packages: - utf-8-validate /jest-environment-node/29.3.0: - resolution: - { - integrity: sha512-oikVE5pyiBUMrqi7J/kFGd1zeT14+EnJulyqzopDNijLX13ygwjiOF/GVpVKSGyBrrAwSkaj/ohEQJCcjkCtOA==, - } + resolution: {integrity: sha512-oikVE5pyiBUMrqi7J/kFGd1zeT14+EnJulyqzopDNijLX13ygwjiOF/GVpVKSGyBrrAwSkaj/ohEQJCcjkCtOA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - "@jest/environment": 29.3.0 - "@jest/fake-timers": 29.3.0 - "@jest/types": 29.2.1 - "@types/node": 18.11.9 + '@jest/environment': 29.3.0 + '@jest/fake-timers': 29.3.0 + '@jest/types': 29.2.1 + '@types/node': 18.11.9 jest-mock: 29.3.0 jest-util: 29.2.1 /jest-get-type/29.2.0: - resolution: - { - integrity: sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==, - } + resolution: {integrity: sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} /jest-haste-map/29.3.0: - resolution: - { - integrity: sha512-ugdLIreycMRRg3+6AjiExECmuFI2D9PS+BmNU7eGvBt3fzVMKybb9USAZXN6kw4Q6Mn8DSK+7OFCloY2rN820Q==, - } + resolution: {integrity: sha512-ugdLIreycMRRg3+6AjiExECmuFI2D9PS+BmNU7eGvBt3fzVMKybb9USAZXN6kw4Q6Mn8DSK+7OFCloY2rN820Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - "@jest/types": 29.2.1 - "@types/graceful-fs": 4.1.5 - "@types/node": 18.11.9 + '@jest/types': 29.2.1 + '@types/graceful-fs': 4.1.5 + '@types/node': 18.11.9 anymatch: 3.1.2 fb-watchman: 2.0.1 graceful-fs: 4.2.10 @@ -14747,20 +11918,14 @@ packages: fsevents: 2.3.2 /jest-leak-detector/29.2.1: - resolution: - { - integrity: sha512-1YvSqYoiurxKOJtySc+CGVmw/e1v4yNY27BjWTVzp0aTduQeA7pdieLiW05wTYG/twlKOp2xS/pWuikQEmklug==, - } + resolution: {integrity: sha512-1YvSqYoiurxKOJtySc+CGVmw/e1v4yNY27BjWTVzp0aTduQeA7pdieLiW05wTYG/twlKOp2xS/pWuikQEmklug==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-get-type: 29.2.0 pretty-format: 29.2.1 /jest-matcher-utils/29.2.2: - resolution: - { - integrity: sha512-4DkJ1sDPT+UX2MR7Y3od6KtvRi9Im1ZGLGgdLFLm4lPexbTaCgJW5NN3IOXlQHF7NSHY/VHhflQ+WoKtD/vyCw==, - } + resolution: {integrity: sha512-4DkJ1sDPT+UX2MR7Y3od6KtvRi9Im1ZGLGgdLFLm4lPexbTaCgJW5NN3IOXlQHF7NSHY/VHhflQ+WoKtD/vyCw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 @@ -14769,15 +11934,12 @@ packages: pretty-format: 29.2.1 /jest-message-util/29.2.1: - resolution: - { - integrity: sha512-Dx5nEjw9V8C1/Yj10S/8ivA8F439VS8vTq1L7hEgwHFn9ovSKNpYW/kwNh7UglaEgXO42XxzKJB+2x0nSglFVw==, - } + resolution: {integrity: sha512-Dx5nEjw9V8C1/Yj10S/8ivA8F439VS8vTq1L7hEgwHFn9ovSKNpYW/kwNh7UglaEgXO42XxzKJB+2x0nSglFVw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - "@babel/code-frame": 7.16.7 - "@jest/types": 29.2.1 - "@types/stack-utils": 2.0.1 + '@babel/code-frame': 7.16.7 + '@jest/types': 29.2.1 + '@types/stack-utils': 2.0.1 chalk: 4.1.2 graceful-fs: 4.2.10 micromatch: 4.0.5 @@ -14786,24 +11948,18 @@ packages: stack-utils: 2.0.5 /jest-mock/29.3.0: - resolution: - { - integrity: sha512-BRKfsAaeP3pTWeog+1D0ILeJF96SzB6y3k0JDxY63kssxiUy9nDLHmNUoVkBGILjMbpHULhbzVTsb3harPXuUQ==, - } + resolution: {integrity: sha512-BRKfsAaeP3pTWeog+1D0ILeJF96SzB6y3k0JDxY63kssxiUy9nDLHmNUoVkBGILjMbpHULhbzVTsb3harPXuUQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - "@jest/types": 29.2.1 - "@types/node": 18.11.9 + '@jest/types': 29.2.1 + '@types/node': 18.11.9 jest-util: 29.2.1 /jest-pnp-resolver/1.2.2_jest-resolve@29.3.0: - resolution: - { - integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==} + engines: {node: '>=6'} peerDependencies: - jest-resolve: "*" + jest-resolve: '*' peerDependenciesMeta: jest-resolve: optional: true @@ -14811,17 +11967,11 @@ packages: jest-resolve: 29.3.0 /jest-regex-util/29.2.0: - resolution: - { - integrity: sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA==, - } + resolution: {integrity: sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} /jest-resolve-dependencies/29.3.0: - resolution: - { - integrity: sha512-ykSbDbWmIaHprOBig57AExw7i6Fj0y69M6baiAd75Ivx1UMQt4wsM6A+SNqIhycV6Zy8XV3L40Ac3HYSrDSq7w==, - } + resolution: {integrity: sha512-ykSbDbWmIaHprOBig57AExw7i6Fj0y69M6baiAd75Ivx1UMQt4wsM6A+SNqIhycV6Zy8XV3L40Ac3HYSrDSq7w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-regex-util: 29.2.0 @@ -14830,10 +11980,7 @@ packages: - supports-color /jest-resolve/29.3.0: - resolution: - { - integrity: sha512-xH6C6loDlOWEWHdCgioLDlbpmsolNdNsV/UR35ChuK217x0ttHuhyEPdh5wa6CTQ/Eq4OGW2/EZTlh0ay5aojQ==, - } + resolution: {integrity: sha512-xH6C6loDlOWEWHdCgioLDlbpmsolNdNsV/UR35ChuK217x0ttHuhyEPdh5wa6CTQ/Eq4OGW2/EZTlh0ay5aojQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 @@ -14842,23 +11989,20 @@ packages: jest-pnp-resolver: 1.2.2_jest-resolve@29.3.0 jest-util: 29.2.1 jest-validate: 29.2.2 - resolve: 1.22.1 + resolve: 1.22.2 resolve.exports: 1.1.0 slash: 3.0.0 /jest-runner/29.3.0: - resolution: - { - integrity: sha512-E/ROzAVj7gy44FvIe+Tbz0xGWG1sa8WLkhUg/hsXHewPC0Z48kqWySdfYRtXkB7RmMn4OcWE+hIBfsRAMVV+sQ==, - } + resolution: {integrity: sha512-E/ROzAVj7gy44FvIe+Tbz0xGWG1sa8WLkhUg/hsXHewPC0Z48kqWySdfYRtXkB7RmMn4OcWE+hIBfsRAMVV+sQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - "@jest/console": 29.2.1 - "@jest/environment": 29.3.0 - "@jest/test-result": 29.2.1 - "@jest/transform": 29.3.0 - "@jest/types": 29.2.1 - "@types/node": 18.11.9 + '@jest/console': 29.2.1 + '@jest/environment': 29.3.0 + '@jest/test-result': 29.2.1 + '@jest/transform': 29.3.0 + '@jest/types': 29.2.1 + '@types/node': 18.11.9 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.10 @@ -14878,20 +12022,17 @@ packages: - supports-color /jest-runtime/29.3.0: - resolution: - { - integrity: sha512-ufgX/hbpa7MLnjWRW82T5mVF73FBk3W38dGCLPXWtYZ5Zr1ZFh8QnaAtITKJt0p3kGXR8ZqlIjadSiBTk/QJ/A==, - } + resolution: {integrity: sha512-ufgX/hbpa7MLnjWRW82T5mVF73FBk3W38dGCLPXWtYZ5Zr1ZFh8QnaAtITKJt0p3kGXR8ZqlIjadSiBTk/QJ/A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - "@jest/environment": 29.3.0 - "@jest/fake-timers": 29.3.0 - "@jest/globals": 29.3.0 - "@jest/source-map": 29.2.0 - "@jest/test-result": 29.2.1 - "@jest/transform": 29.3.0 - "@jest/types": 29.2.1 - "@types/node": 18.11.9 + '@jest/environment': 29.3.0 + '@jest/fake-timers': 29.3.0 + '@jest/globals': 29.3.0 + '@jest/source-map': 29.2.0 + '@jest/test-result': 29.2.1 + '@jest/transform': 29.3.0 + '@jest/types': 29.2.1 + '@types/node': 18.11.9 chalk: 4.1.2 cjs-module-lexer: 1.2.2 collect-v8-coverage: 1.0.1 @@ -14910,23 +12051,20 @@ packages: - supports-color /jest-snapshot/29.3.0: - resolution: - { - integrity: sha512-+4mX3T8XI3ABbZFzBd/AM74mfwOb6gMpYVFNTc0Cgg2F2fGYvHii8D6jWWka99a3wyNFmni3ov8meEVTF8n13Q==, - } + resolution: {integrity: sha512-+4mX3T8XI3ABbZFzBd/AM74mfwOb6gMpYVFNTc0Cgg2F2fGYvHii8D6jWWka99a3wyNFmni3ov8meEVTF8n13Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - "@babel/core": 7.20.2 - "@babel/generator": 7.18.2 - "@babel/plugin-syntax-jsx": 7.17.12_@babel+core@7.20.2 - "@babel/plugin-syntax-typescript": 7.17.12_@babel+core@7.20.2 - "@babel/traverse": 7.18.2 - "@babel/types": 7.18.4 - "@jest/expect-utils": 29.2.2 - "@jest/transform": 29.3.0 - "@jest/types": 29.2.1 - "@types/babel__traverse": 7.17.1 - "@types/prettier": 2.6.3 + '@babel/core': 7.20.2 + '@babel/generator': 7.18.2 + '@babel/plugin-syntax-jsx': 7.17.12_@babel+core@7.20.2 + '@babel/plugin-syntax-typescript': 7.17.12_@babel+core@7.20.2 + '@babel/traverse': 7.18.2 + '@babel/types': 7.18.4 + '@jest/expect-utils': 29.2.2 + '@jest/transform': 29.3.0 + '@jest/types': 29.2.1 + '@types/babel__traverse': 7.17.1 + '@types/prettier': 2.6.3 babel-preset-current-node-syntax: 1.0.1_@babel+core@7.20.2 chalk: 4.1.2 expect: 29.3.0 @@ -14944,14 +12082,11 @@ packages: - supports-color /jest-util/27.5.1: - resolution: - { - integrity: sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==, - } + resolution: {integrity: sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - "@jest/types": 27.5.1 - "@types/node": 18.11.9 + '@jest/types': 27.5.1 + '@types/node': 18.11.9 chalk: 4.1.2 ci-info: 3.3.1 graceful-fs: 4.2.10 @@ -14959,27 +12094,21 @@ packages: dev: true /jest-util/29.2.1: - resolution: - { - integrity: sha512-P5VWDj25r7kj7kl4pN2rG/RN2c1TLfYYYZYULnS/35nFDjBai+hBeo3MDrYZS7p6IoY3YHZnt2vq4L6mKnLk0g==, - } + resolution: {integrity: sha512-P5VWDj25r7kj7kl4pN2rG/RN2c1TLfYYYZYULnS/35nFDjBai+hBeo3MDrYZS7p6IoY3YHZnt2vq4L6mKnLk0g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - "@jest/types": 29.2.1 - "@types/node": 18.11.9 + '@jest/types': 29.2.1 + '@types/node': 18.11.9 chalk: 4.1.2 ci-info: 3.5.0 graceful-fs: 4.2.10 picomatch: 2.3.1 /jest-validate/29.2.2: - resolution: - { - integrity: sha512-eJXATaKaSnOuxNfs8CLHgdABFgUrd0TtWS8QckiJ4L/QVDF4KVbZFBBOwCBZHOS0Rc5fOxqngXeGXE3nGQkpQA==, - } + resolution: {integrity: sha512-eJXATaKaSnOuxNfs8CLHgdABFgUrd0TtWS8QckiJ4L/QVDF4KVbZFBBOwCBZHOS0Rc5fOxqngXeGXE3nGQkpQA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - "@jest/types": 29.2.1 + '@jest/types': 29.2.1 camelcase: 6.3.0 chalk: 4.1.2 jest-get-type: 29.2.0 @@ -14987,15 +12116,12 @@ packages: pretty-format: 29.2.1 /jest-watcher/29.2.2: - resolution: - { - integrity: sha512-j2otfqh7mOvMgN2WlJ0n7gIx9XCMWntheYGlBK7+5g3b1Su13/UAK7pdKGyd4kDlrLwtH2QPvRv5oNIxWvsJ1w==, - } + resolution: {integrity: sha512-j2otfqh7mOvMgN2WlJ0n7gIx9XCMWntheYGlBK7+5g3b1Su13/UAK7pdKGyd4kDlrLwtH2QPvRv5oNIxWvsJ1w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - "@jest/test-result": 29.2.1 - "@jest/types": 29.2.1 - "@types/node": 18.11.9 + '@jest/test-result': 29.2.1 + '@jest/types': 29.2.1 + '@types/node': 18.11.9 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -15003,22 +12129,16 @@ packages: string-length: 4.0.2 /jest-worker/29.3.0: - resolution: - { - integrity: sha512-rP8LYClB5NCWW0p8GdQT9vRmZNrDmjypklEYZuGCIU5iNviVWCZK5MILS3rQwD0FY1u96bY7b+KoU17DdZy6Ww==, - } + resolution: {integrity: sha512-rP8LYClB5NCWW0p8GdQT9vRmZNrDmjypklEYZuGCIU5iNviVWCZK5MILS3rQwD0FY1u96bY7b+KoU17DdZy6Ww==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - "@types/node": 18.11.9 + '@types/node': 18.11.9 jest-util: 29.2.1 merge-stream: 2.0.0 supports-color: 8.1.1 /jest/29.3.0_odkjkoia5xunhxkdrka32ib6vi: - resolution: - { - integrity: sha512-lWmHtOcJSjR6FYRw+4oo7456QUe6LN73Lw6HLwOWKTPLcyQF60cMh0EoIHi67dV74SY5tw/kL+jYC+Ji43ScUg==, - } + resolution: {integrity: sha512-lWmHtOcJSjR6FYRw+4oo7456QUe6LN73Lw6HLwOWKTPLcyQF60cMh0EoIHi67dV74SY5tw/kL+jYC+Ji43ScUg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: @@ -15027,21 +12147,18 @@ packages: node-notifier: optional: true dependencies: - "@jest/core": 29.3.0_ts-node@10.9.1 - "@jest/types": 29.2.1 + '@jest/core': 29.3.0_ts-node@10.9.1 + '@jest/types': 29.2.1 import-local: 3.1.0 jest-cli: 29.3.0_odkjkoia5xunhxkdrka32ib6vi transitivePeerDependencies: - - "@types/node" + - '@types/node' - supports-color - ts-node dev: true /jest/29.3.0_ts-node@10.9.1: - resolution: - { - integrity: sha512-lWmHtOcJSjR6FYRw+4oo7456QUe6LN73Lw6HLwOWKTPLcyQF60cMh0EoIHi67dV74SY5tw/kL+jYC+Ji43ScUg==, - } + resolution: {integrity: sha512-lWmHtOcJSjR6FYRw+4oo7456QUe6LN73Lw6HLwOWKTPLcyQF60cMh0EoIHi67dV74SY5tw/kL+jYC+Ji43ScUg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: @@ -15050,107 +12167,82 @@ packages: node-notifier: optional: true dependencies: - "@jest/core": 29.3.0_ts-node@10.9.1 - "@jest/types": 29.2.1 + '@jest/core': 29.3.0_ts-node@10.9.1 + '@jest/types': 29.2.1 import-local: 3.1.0 jest-cli: 29.3.0_ts-node@10.9.1 transitivePeerDependencies: - - "@types/node" + - '@types/node' - supports-color - ts-node dev: false /jiti/1.14.0: - resolution: - { - integrity: sha512-4IwstlaKQc9vCTC+qUXLM1hajy2ImiL9KnLvVYiaHOtS/v3wRjhLlGl121AmgDgx/O43uKmxownJghS5XMya2A==, - } + resolution: {integrity: sha512-4IwstlaKQc9vCTC+qUXLM1hajy2ImiL9KnLvVYiaHOtS/v3wRjhLlGl121AmgDgx/O43uKmxownJghS5XMya2A==} hasBin: true dev: true + /jiti/1.18.2: + resolution: {integrity: sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==} + hasBin: true + dev: false + /joi/17.6.0: - resolution: - { - integrity: sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==, - } + resolution: {integrity: sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==} dependencies: - "@hapi/hoek": 9.3.0 - "@hapi/topo": 5.1.0 - "@sideway/address": 4.1.4 - "@sideway/formula": 3.0.0 - "@sideway/pinpoint": 2.0.0 + '@hapi/hoek': 9.3.0 + '@hapi/topo': 5.1.0 + '@sideway/address': 4.1.4 + '@sideway/formula': 3.0.0 + '@sideway/pinpoint': 2.0.0 dev: false /jose/4.11.2: - resolution: - { - integrity: sha512-njj0VL2TsIxCtgzhO+9RRobBvws4oYyCM8TpvoUQwl/MbIM3NFJRR9+e6x0sS5xXaP1t6OCBkaBME98OV9zU5A==, - } + resolution: {integrity: sha512-njj0VL2TsIxCtgzhO+9RRobBvws4oYyCM8TpvoUQwl/MbIM3NFJRR9+e6x0sS5xXaP1t6OCBkaBME98OV9zU5A==} /joycon/3.1.1: - resolution: - { - integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} dev: true /js-sdsl/4.1.5: - resolution: - { - integrity: sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==, - } + resolution: {integrity: sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==} /js-stringify/1.0.2: - resolution: - { - integrity: sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==, - } + resolution: {integrity: sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==} dev: true /js-tokens/4.0.0: - resolution: - { - integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, - } + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} /js-yaml/3.14.1: - resolution: - { - integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==, - } + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true dependencies: argparse: 1.0.10 esprima: 4.0.1 /js-yaml/4.1.0: - resolution: - { - integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, - } + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true dependencies: argparse: 2.0.1 /jscodeshift/0.13.0: - resolution: - { - integrity: sha512-FNHLuwh7TeI0F4EzNVIRwUSxSqsGWM5nTv596FK4NfBnEEKFpIcyFeG559DMFGHSTIYA5AY4Fqh2cBrJx0EAwg==, - } + resolution: {integrity: sha512-FNHLuwh7TeI0F4EzNVIRwUSxSqsGWM5nTv596FK4NfBnEEKFpIcyFeG559DMFGHSTIYA5AY4Fqh2cBrJx0EAwg==} hasBin: true peerDependencies: - "@babel/preset-env": ^7.1.6 - dependencies: - "@babel/core": 7.18.2 - "@babel/parser": 7.18.4 - "@babel/plugin-proposal-class-properties": 7.17.12_@babel+core@7.18.2 - "@babel/plugin-proposal-nullish-coalescing-operator": 7.17.12_@babel+core@7.18.2 - "@babel/plugin-proposal-optional-chaining": 7.17.12_@babel+core@7.18.2 - "@babel/plugin-transform-modules-commonjs": 7.18.2_@babel+core@7.18.2 - "@babel/preset-flow": 7.17.12_@babel+core@7.18.2 - "@babel/preset-typescript": 7.17.12_@babel+core@7.18.2 - "@babel/register": 7.17.7_@babel+core@7.18.2 + '@babel/preset-env': ^7.1.6 + dependencies: + '@babel/core': 7.18.2 + '@babel/parser': 7.18.4 + '@babel/plugin-proposal-class-properties': 7.17.12_@babel+core@7.18.2 + '@babel/plugin-proposal-nullish-coalescing-operator': 7.17.12_@babel+core@7.18.2 + '@babel/plugin-proposal-optional-chaining': 7.17.12_@babel+core@7.18.2 + '@babel/plugin-transform-modules-commonjs': 7.18.2_@babel+core@7.18.2 + '@babel/preset-flow': 7.17.12_@babel+core@7.18.2 + '@babel/preset-typescript': 7.17.12_@babel+core@7.18.2 + '@babel/register': 7.17.7_@babel+core@7.18.2 babel-core: 7.0.0-bridge.0_@babel+core@7.18.2 colors: 1.4.0 flow-parser: 0.179.0 @@ -15166,24 +12258,21 @@ packages: dev: false /jscodeshift/0.13.0_@babel+preset-env@7.12.10: - resolution: - { - integrity: sha512-FNHLuwh7TeI0F4EzNVIRwUSxSqsGWM5nTv596FK4NfBnEEKFpIcyFeG559DMFGHSTIYA5AY4Fqh2cBrJx0EAwg==, - } + resolution: {integrity: sha512-FNHLuwh7TeI0F4EzNVIRwUSxSqsGWM5nTv596FK4NfBnEEKFpIcyFeG559DMFGHSTIYA5AY4Fqh2cBrJx0EAwg==} hasBin: true peerDependencies: - "@babel/preset-env": ^7.1.6 - dependencies: - "@babel/core": 7.18.2 - "@babel/parser": 7.18.4 - "@babel/plugin-proposal-class-properties": 7.17.12_@babel+core@7.18.2 - "@babel/plugin-proposal-nullish-coalescing-operator": 7.17.12_@babel+core@7.18.2 - "@babel/plugin-proposal-optional-chaining": 7.17.12_@babel+core@7.18.2 - "@babel/plugin-transform-modules-commonjs": 7.18.2_@babel+core@7.18.2 - "@babel/preset-env": 7.12.10_@babel+core@7.12.10 - "@babel/preset-flow": 7.17.12_@babel+core@7.18.2 - "@babel/preset-typescript": 7.17.12_@babel+core@7.18.2 - "@babel/register": 7.17.7_@babel+core@7.18.2 + '@babel/preset-env': ^7.1.6 + dependencies: + '@babel/core': 7.18.2 + '@babel/parser': 7.18.4 + '@babel/plugin-proposal-class-properties': 7.17.12_@babel+core@7.18.2 + '@babel/plugin-proposal-nullish-coalescing-operator': 7.17.12_@babel+core@7.18.2 + '@babel/plugin-proposal-optional-chaining': 7.17.12_@babel+core@7.18.2 + '@babel/plugin-transform-modules-commonjs': 7.18.2_@babel+core@7.18.2 + '@babel/preset-env': 7.12.10_@babel+core@7.12.10 + '@babel/preset-flow': 7.17.12_@babel+core@7.18.2 + '@babel/preset-typescript': 7.17.12_@babel+core@7.18.2 + '@babel/register': 7.17.7_@babel+core@7.18.2 babel-core: 7.0.0-bridge.0_@babel+core@7.18.2 colors: 1.4.0 flow-parser: 0.179.0 @@ -15199,24 +12288,21 @@ packages: dev: false /jscodeshift/0.13.0_slgjdbbopna4ebnpdn2nkn3v2a: - resolution: - { - integrity: sha512-FNHLuwh7TeI0F4EzNVIRwUSxSqsGWM5nTv596FK4NfBnEEKFpIcyFeG559DMFGHSTIYA5AY4Fqh2cBrJx0EAwg==, - } + resolution: {integrity: sha512-FNHLuwh7TeI0F4EzNVIRwUSxSqsGWM5nTv596FK4NfBnEEKFpIcyFeG559DMFGHSTIYA5AY4Fqh2cBrJx0EAwg==} hasBin: true peerDependencies: - "@babel/preset-env": ^7.1.6 - dependencies: - "@babel/core": 7.18.2_supports-color@8.1.1 - "@babel/parser": 7.18.4 - "@babel/plugin-proposal-class-properties": 7.17.12_aiglbhfglusiuujjiuminyg6ui - "@babel/plugin-proposal-nullish-coalescing-operator": 7.17.12_@babel+core@7.18.2 - "@babel/plugin-proposal-optional-chaining": 7.17.12_@babel+core@7.18.2 - "@babel/plugin-transform-modules-commonjs": 7.18.2_aiglbhfglusiuujjiuminyg6ui - "@babel/preset-env": 7.12.10_ps3yxa7qdojvlda5ukda3zlwie - "@babel/preset-flow": 7.17.12_@babel+core@7.18.2 - "@babel/preset-typescript": 7.17.12_aiglbhfglusiuujjiuminyg6ui - "@babel/register": 7.17.7_@babel+core@7.18.2 + '@babel/preset-env': ^7.1.6 + dependencies: + '@babel/core': 7.18.2_supports-color@8.1.1 + '@babel/parser': 7.18.4 + '@babel/plugin-proposal-class-properties': 7.17.12_aiglbhfglusiuujjiuminyg6ui + '@babel/plugin-proposal-nullish-coalescing-operator': 7.17.12_@babel+core@7.18.2 + '@babel/plugin-proposal-optional-chaining': 7.17.12_@babel+core@7.18.2 + '@babel/plugin-transform-modules-commonjs': 7.18.2_aiglbhfglusiuujjiuminyg6ui + '@babel/preset-env': 7.12.10_ps3yxa7qdojvlda5ukda3zlwie + '@babel/preset-flow': 7.17.12_@babel+core@7.18.2 + '@babel/preset-typescript': 7.17.12_aiglbhfglusiuujjiuminyg6ui + '@babel/register': 7.17.7_@babel+core@7.18.2 babel-core: 7.0.0-bridge.0_@babel+core@7.18.2 colors: 1.4.0 flow-parser: 0.179.0 @@ -15232,23 +12318,20 @@ packages: dev: false /jscodeshift/0.13.0_supports-color@8.1.1: - resolution: - { - integrity: sha512-FNHLuwh7TeI0F4EzNVIRwUSxSqsGWM5nTv596FK4NfBnEEKFpIcyFeG559DMFGHSTIYA5AY4Fqh2cBrJx0EAwg==, - } + resolution: {integrity: sha512-FNHLuwh7TeI0F4EzNVIRwUSxSqsGWM5nTv596FK4NfBnEEKFpIcyFeG559DMFGHSTIYA5AY4Fqh2cBrJx0EAwg==} hasBin: true peerDependencies: - "@babel/preset-env": ^7.1.6 - dependencies: - "@babel/core": 7.18.2_supports-color@8.1.1 - "@babel/parser": 7.18.4 - "@babel/plugin-proposal-class-properties": 7.17.12_aiglbhfglusiuujjiuminyg6ui - "@babel/plugin-proposal-nullish-coalescing-operator": 7.17.12_@babel+core@7.18.2 - "@babel/plugin-proposal-optional-chaining": 7.17.12_@babel+core@7.18.2 - "@babel/plugin-transform-modules-commonjs": 7.18.2_aiglbhfglusiuujjiuminyg6ui - "@babel/preset-flow": 7.17.12_@babel+core@7.18.2 - "@babel/preset-typescript": 7.17.12_aiglbhfglusiuujjiuminyg6ui - "@babel/register": 7.17.7_@babel+core@7.18.2 + '@babel/preset-env': ^7.1.6 + dependencies: + '@babel/core': 7.18.2_supports-color@8.1.1 + '@babel/parser': 7.18.4 + '@babel/plugin-proposal-class-properties': 7.17.12_aiglbhfglusiuujjiuminyg6ui + '@babel/plugin-proposal-nullish-coalescing-operator': 7.17.12_@babel+core@7.18.2 + '@babel/plugin-proposal-optional-chaining': 7.17.12_@babel+core@7.18.2 + '@babel/plugin-transform-modules-commonjs': 7.18.2_aiglbhfglusiuujjiuminyg6ui + '@babel/preset-flow': 7.17.12_@babel+core@7.18.2 + '@babel/preset-typescript': 7.17.12_aiglbhfglusiuujjiuminyg6ui + '@babel/register': 7.17.7_@babel+core@7.18.2 babel-core: 7.0.0-bridge.0_@babel+core@7.18.2 colors: 1.4.0 flow-parser: 0.179.0 @@ -15264,11 +12347,8 @@ packages: dev: false /jsdom/19.0.0: - resolution: - { - integrity: sha512-RYAyjCbxy/vri/CfnjUWJQQtZ3LKlLnDqj+9XLNnJPgEGeirZs3hllKR20re8LUZ6o1b1X4Jat+Qd26zmP41+A==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-RYAyjCbxy/vri/CfnjUWJQQtZ3LKlLnDqj+9XLNnJPgEGeirZs3hllKR20re8LUZ6o1b1X4Jat+Qd26zmP41+A==} + engines: {node: '>=12'} peerDependencies: canvas: ^2.5.0 peerDependenciesMeta: @@ -15308,11 +12388,8 @@ packages: - utf-8-validate /jsdom/20.0.3: - resolution: - { - integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==, - } - engines: {node: ">=14"} + resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} + engines: {node: '>=14'} peerDependencies: canvas: ^2.5.0 peerDependenciesMeta: @@ -15351,108 +12428,66 @@ packages: - utf-8-validate /jsesc/0.5.0: - resolution: - { - integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==, - } + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} hasBin: true /jsesc/2.5.2: - resolution: - { - integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} hasBin: true /json-buffer/3.0.0: - resolution: - { - integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==, - } + resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==} dev: false /json-buffer/3.0.1: - resolution: - { - integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==, - } + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} dev: false /json-parse-even-better-errors/2.3.1: - resolution: - { - integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, - } + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} /json-schema-traverse/0.4.1: - resolution: - { - integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, - } + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} /json-stable-stringify-without-jsonify/1.0.1: - resolution: - { - integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==, - } + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} /json-stringify-safe/5.0.1: - resolution: - { - integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==, - } + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} dev: false /json5/1.0.1: - resolution: - { - integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==, - } + resolution: {integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==} hasBin: true dependencies: minimist: 1.2.6 /json5/2.2.1: - resolution: - { - integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==} + engines: {node: '>=6'} hasBin: true /jsonc-parser/3.0.0: - resolution: - { - integrity: sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==, - } + resolution: {integrity: sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==} dev: true /jsonfile/4.0.0: - resolution: - { - integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==, - } + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} optionalDependencies: graceful-fs: 4.2.10 dev: false /jsonfile/6.1.0: - resolution: - { - integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==, - } + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: universalify: 2.0.0 optionalDependencies: graceful-fs: 4.2.10 /jsonwebtoken/9.0.0: - resolution: - { - integrity: sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==, - } - engines: {node: ">=12", npm: ">=6"} + resolution: {integrity: sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==} + engines: {node: '>=12', npm: '>=6'} dependencies: jws: 3.2.2 lodash: 4.17.21 @@ -15468,20 +12503,14 @@ packages: dev: true /jsx-ast-utils/3.3.0: - resolution: - { - integrity: sha512-XzO9luP6L0xkxwhIJMTJQpZo/eeN60K08jHdexfD569AGxeNug6UketeHXEhROoM8aR7EcUoOQmIhcJQjcuq8Q==, - } - engines: {node: ">=4.0"} + resolution: {integrity: sha512-XzO9luP6L0xkxwhIJMTJQpZo/eeN60K08jHdexfD569AGxeNug6UketeHXEhROoM8aR7EcUoOQmIhcJQjcuq8Q==} + engines: {node: '>=4.0'} dependencies: array-includes: 3.1.5 object.assign: 4.1.2 /jszip/3.10.0: - resolution: - { - integrity: sha512-LDfVtOLtOxb9RXkYOwPyNBTQDL4eUbqahtoY6x07GiDJHwSYvn8sHHIw8wINImV3MqbMNve2gSuM1DDqEKk09Q==, - } + resolution: {integrity: sha512-LDfVtOLtOxb9RXkYOwPyNBTQDL4eUbqahtoY6x07GiDJHwSYvn8sHHIw8wINImV3MqbMNve2gSuM1DDqEKk09Q==} dependencies: lie: 3.3.0 pako: 1.0.11 @@ -15490,10 +12519,7 @@ packages: dev: true /jwa/1.4.1: - resolution: - { - integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==, - } + resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} dependencies: buffer-equal-constant-time: 1.0.1 ecdsa-sig-formatter: 1.0.11 @@ -15501,140 +12527,92 @@ packages: dev: false /jws/3.2.2: - resolution: - { - integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==, - } + resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} dependencies: jwa: 1.4.1 safe-buffer: 5.2.1 dev: false /keygrip/1.1.0: - resolution: - { - integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==, - } - engines: {node: ">= 0.6"} + resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==} + engines: {node: '>= 0.6'} dependencies: tsscmp: 1.0.6 dev: false /keyv/3.1.0: - resolution: - { - integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==, - } + resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==} dependencies: json-buffer: 3.0.0 dev: false /keyv/4.3.0: - resolution: - { - integrity: sha512-C30Un9+63J0CsR7Wka5quXKqYZsT6dcRQ2aOwGcSc3RiQ4HGWpTAHlCA+puNfw2jA/s11EsxA1nCXgZRuRKMQQ==, - } + resolution: {integrity: sha512-C30Un9+63J0CsR7Wka5quXKqYZsT6dcRQ2aOwGcSc3RiQ4HGWpTAHlCA+puNfw2jA/s11EsxA1nCXgZRuRKMQQ==} dependencies: compress-brotli: 1.3.8 json-buffer: 3.0.1 dev: false /kind-of/3.2.2: - resolution: - { - integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} + engines: {node: '>=0.10.0'} dependencies: is-buffer: 1.1.6 dev: false /kind-of/4.0.0: - resolution: - { - integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} + engines: {node: '>=0.10.0'} dependencies: is-buffer: 1.1.6 dev: false /kind-of/5.1.0: - resolution: - { - integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==} + engines: {node: '>=0.10.0'} dev: false /kind-of/6.0.3: - resolution: - { - integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} dev: false /kleur/3.0.3: - resolution: - { - integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} /language-subtag-registry/0.3.21: - resolution: - { - integrity: sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==, - } + resolution: {integrity: sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==} /language-tags/1.0.5: - resolution: - { - integrity: sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==, - } + resolution: {integrity: sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==} dependencies: language-subtag-registry: 0.3.21 /leven/3.1.0: - resolution: - { - integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} /levn/0.3.0: - resolution: - { - integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==, - } - engines: {node: ">= 0.8.0"} + resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} + engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.1.2 type-check: 0.3.2 /levn/0.4.1: - resolution: - { - integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==, - } - engines: {node: ">= 0.8.0"} + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 /libbase64/1.2.1: - resolution: - { - integrity: sha512-l+nePcPbIG1fNlqMzrh68MLkX/gTxk/+vdvAb388Ssi7UuUN31MI44w4Yf33mM3Cm4xDfw48mdf3rkdHszLNew==, - } + resolution: {integrity: sha512-l+nePcPbIG1fNlqMzrh68MLkX/gTxk/+vdvAb388Ssi7UuUN31MI44w4Yf33mM3Cm4xDfw48mdf3rkdHszLNew==} dev: true /libmime/5.1.0: - resolution: - { - integrity: sha512-xOqorG21Va+3CjpFOfFTU7SWohHH2uIX9ZY4Byz6J+lvpfvc486tOAT/G9GfbrKtJ9O7NCX9o0aC2lxqbnZ9EA==, - } + resolution: {integrity: sha512-xOqorG21Va+3CjpFOfFTU7SWohHH2uIX9ZY4Byz6J+lvpfvc486tOAT/G9GfbrKtJ9O7NCX9o0aC2lxqbnZ9EA==} dependencies: encoding-japanese: 2.0.0 iconv-lite: 0.6.3 @@ -15647,41 +12625,31 @@ packages: dev: true /lie/3.3.0: - resolution: - { - integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==, - } + resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} dependencies: immediate: 3.0.6 dev: true /lilconfig/2.0.5: - resolution: - { - integrity: sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==} + engines: {node: '>=10'} + + /lilconfig/2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + dev: false /lines-and-columns/1.2.4: - resolution: - { - integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, - } + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} /linkify-it/4.0.0: - resolution: - { - integrity: sha512-QAxkXyzT/TXgwGyY4rTgC95Ex6/lZ5/lYTV9nug6eJt93BCBQGOE47D/g2+/m5J1MrVLr2ot97OXkBZ9bBpR4A==, - } + resolution: {integrity: sha512-QAxkXyzT/TXgwGyY4rTgC95Ex6/lZ5/lYTV9nug6eJt93BCBQGOE47D/g2+/m5J1MrVLr2ot97OXkBZ9bBpR4A==} dependencies: uc.micro: 1.0.6 dev: true /lint-staged/13.0.3: - resolution: - { - integrity: sha512-9hmrwSCFroTSYLjflGI8Uk+GWAwMB4OlpU4bMJEAT5d/llQwtYKoim4bLOyLCuWFAhWEupE0vkIFqtw/WIsPug==, - } + resolution: {integrity: sha512-9hmrwSCFroTSYLjflGI8Uk+GWAwMB4OlpU4bMJEAT5d/llQwtYKoim4bLOyLCuWFAhWEupE0vkIFqtw/WIsPug==} engines: {node: ^14.13.1 || >=16.0.0} hasBin: true dependencies: @@ -15703,13 +12671,10 @@ packages: - supports-color /listr2/4.0.5: - resolution: - { - integrity: sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==} + engines: {node: '>=12'} peerDependencies: - enquirer: ">= 2.3.0 < 3" + enquirer: '>= 2.3.0 < 3' peerDependenciesMeta: enquirer: optional: true @@ -15724,11 +12689,8 @@ packages: wrap-ansi: 7.0.0 /load-yaml-file/0.2.0: - resolution: - { - integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} + engines: {node: '>=6'} dependencies: graceful-fs: 4.2.10 js-yaml: 3.14.1 @@ -15737,94 +12699,61 @@ packages: dev: false /local-pkg/0.4.2: - resolution: - { - integrity: sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==, - } - engines: {node: ">=14"} + resolution: {integrity: sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==} + engines: {node: '>=14'} /locate-path/2.0.0: - resolution: - { - integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} + engines: {node: '>=4'} dependencies: p-locate: 2.0.0 path-exists: 3.0.0 /locate-path/3.0.0: - resolution: - { - integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} + engines: {node: '>=6'} dependencies: p-locate: 3.0.0 path-exists: 3.0.0 dev: false /locate-path/5.0.0: - resolution: - { - integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} dependencies: p-locate: 4.1.0 /locate-path/6.0.0: - resolution: - { - integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} dependencies: p-locate: 5.0.0 /lodash.memoize/4.1.2: - resolution: - { - integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==, - } + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} dev: true /lodash.merge/4.6.2: - resolution: - { - integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==, - } + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} /lodash.startcase/4.4.0: - resolution: - { - integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==, - } + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} dev: false /lodash/4.17.21: - resolution: - { - integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, - } + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} /log-symbols/4.1.0: - resolution: - { - integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} dependencies: chalk: 4.1.2 is-unicode-supported: 0.1.0 dev: false /log-update/4.0.0: - resolution: - { - integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} + engines: {node: '>=10'} dependencies: ansi-escapes: 4.3.2 cli-cursor: 3.1.0 @@ -15832,117 +12761,78 @@ packages: wrap-ansi: 6.2.0 /loose-envify/1.4.0: - resolution: - { - integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==, - } + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true dependencies: js-tokens: 4.0.0 /loupe/2.3.4: - resolution: - { - integrity: sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==, - } + resolution: {integrity: sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==} dependencies: get-func-name: 2.0.0 /lowdb/3.0.0: - resolution: - { - integrity: sha512-9KZRulmIcU8fZuWiaM0d5e2/nPnrFyXkeXVpqT+MJS+vgbgOf1EbtvgQmba8HwUFgDl1oeZR6XqEJnkJmQdKmg==, - } + resolution: {integrity: sha512-9KZRulmIcU8fZuWiaM0d5e2/nPnrFyXkeXVpqT+MJS+vgbgOf1EbtvgQmba8HwUFgDl1oeZR6XqEJnkJmQdKmg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: steno: 2.1.0 dev: false /lowercase-keys/1.0.1: - resolution: - { - integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} + engines: {node: '>=0.10.0'} dev: false /lowercase-keys/2.0.0: - resolution: - { - integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} + engines: {node: '>=8'} dev: false /lru-cache/4.1.5: - resolution: - { - integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==, - } + resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} dependencies: pseudomap: 1.0.2 yallist: 2.1.2 dev: false /lru-cache/6.0.0: - resolution: - { - integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} dependencies: yallist: 4.0.0 /lz-string/1.4.4: - resolution: - { - integrity: sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==, - } + resolution: {integrity: sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==} hasBin: true dev: true /macos-release/3.1.0: - resolution: - { - integrity: sha512-/M/R0gCDgM+Cv1IuBG1XGdfTFnMEG6PZeT+KGWHO/OG+imqmaD9CH5vHBTycEM3+Kc4uG2Il+tFAuUWLqQOeUA==, - } + resolution: {integrity: sha512-/M/R0gCDgM+Cv1IuBG1XGdfTFnMEG6PZeT+KGWHO/OG+imqmaD9CH5vHBTycEM3+Kc4uG2Il+tFAuUWLqQOeUA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: false /magic-string/0.25.9: - resolution: - { - integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==, - } + resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} dependencies: sourcemap-codec: 1.4.8 dev: true /magic-string/0.26.2: - resolution: - { - integrity: sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==} + engines: {node: '>=12'} dependencies: sourcemap-codec: 1.4.8 dev: true /magic-string/0.26.7: - resolution: - { - integrity: sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==} + engines: {node: '>=12'} dependencies: sourcemap-codec: 1.4.8 dev: true /mailparser/3.5.0: - resolution: - { - integrity: sha512-mdr2DFgz8LKC0/Q6io6znA0HVnzaPFT0a4TTnLeZ7mWHlkfnm227Wxlq7mHh7AgeP32h7gOUpXvyhSfJJIEeyg==, - } + resolution: {integrity: sha512-mdr2DFgz8LKC0/Q6io6znA0HVnzaPFT0a4TTnLeZ7mWHlkfnm227Wxlq7mHh7AgeP32h7gOUpXvyhSfJJIEeyg==} dependencies: encoding-japanese: 2.0.0 he: 1.2.0 @@ -15956,10 +12846,7 @@ packages: dev: true /mailsplit/5.3.2: - resolution: - { - integrity: sha512-coES12hhKqagkuBTJoqERX+y9bXNpxbxw3Esd07auuwKYmcagouVlgucyIVRp48fnswMKxcUtLoFn/L1a75ynQ==, - } + resolution: {integrity: sha512-coES12hhKqagkuBTJoqERX+y9bXNpxbxw3Esd07auuwKYmcagouVlgucyIVRp48fnswMKxcUtLoFn/L1a75ynQ==} dependencies: libbase64: 1.2.1 libmime: 5.1.0 @@ -15967,104 +12854,71 @@ packages: dev: true /make-dir/2.1.0: - resolution: - { - integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} + engines: {node: '>=6'} dependencies: pify: 4.0.1 semver: 5.7.1 dev: false /make-dir/3.1.0: - resolution: - { - integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} dependencies: semver: 6.3.0 /make-error/1.3.6: - resolution: - { - integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==, - } + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} /makeerror/1.0.12: - resolution: - { - integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==, - } + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} dependencies: tmpl: 1.0.5 /map-age-cleaner/0.1.3: - resolution: - { - integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} + engines: {node: '>=6'} dependencies: p-defer: 1.0.0 dev: false /map-cache/0.2.2: - resolution: - { - integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} + engines: {node: '>=0.10.0'} dev: false /map-obj/1.0.1: - resolution: - { - integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} dev: false /map-obj/4.3.0: - resolution: - { - integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} dev: false /map-visit/1.0.0: - resolution: - { - integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} + engines: {node: '>=0.10.0'} dependencies: object-visit: 1.0.1 dev: false /matcher/3.0.0: - resolution: - { - integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} + engines: {node: '>=10'} dependencies: escape-string-regexp: 4.0.0 dev: false /media-typer/0.3.0: resolution: {integrity: sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=} - engines: {node: ">= 0.6"} + engines: {node: '>= 0.6'} dev: true /mem-fs-editor/8.0.0: - resolution: - { - integrity: sha512-0+6Zp44EmPpF01MZOlY0kt7JTndjdvALo4jA7Kk9GPCuqGzGnBmWtcE44Cwzj1aru57IN5/LKIWd1lIvaT6sKw==, - } - engines: {node: ">=12.10.0"} + resolution: {integrity: sha512-0+6Zp44EmPpF01MZOlY0kt7JTndjdvALo4jA7Kk9GPCuqGzGnBmWtcE44Cwzj1aru57IN5/LKIWd1lIvaT6sKw==} + engines: {node: '>=12.10.0'} dependencies: commondir: 1.0.1 deep-extend: 0.6.0 @@ -16078,10 +12932,7 @@ packages: dev: false /mem-fs/1.2.0: - resolution: - { - integrity: sha512-b8g0jWKdl8pM0LqAPdK9i8ERL7nYrzmJfRhxMiWH2uYdfYnb7uXnmwVb0ZGe7xyEl4lj+nLIU3yf4zPUT+XsVQ==, - } + resolution: {integrity: sha512-b8g0jWKdl8pM0LqAPdK9i8ERL7nYrzmJfRhxMiWH2uYdfYnb7uXnmwVb0ZGe7xyEl4lj+nLIU3yf4zPUT+XsVQ==} dependencies: through2: 3.0.2 vinyl: 2.2.1 @@ -16089,11 +12940,8 @@ packages: dev: false /mem/4.3.0: - resolution: - { - integrity: sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==} + engines: {node: '>=6'} dependencies: map-age-cleaner: 0.1.3 mimic-fn: 2.1.0 @@ -16101,13 +12949,10 @@ packages: dev: false /meow/6.1.1: - resolution: - { - integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==} + engines: {node: '>=8'} dependencies: - "@types/minimist": 1.2.2 + '@types/minimist': 1.2.2 camelcase-keys: 6.2.2 decamelize-keys: 1.1.0 hard-rejection: 2.1.0 @@ -16125,39 +12970,24 @@ packages: dev: true /merge-stream/2.0.0: - resolution: - { - integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, - } + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} /merge/1.2.1: - resolution: - { - integrity: sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==, - } + resolution: {integrity: sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==} dev: true /merge2/1.4.1: - resolution: - { - integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, - } - engines: {node: ">= 8"} + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} /methods/1.1.2: - resolution: - { - integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==, - } - engines: {node: ">= 0.6"} + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} dev: true /micromatch/3.1.10: - resolution: - { - integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} + engines: {node: '>=0.10.0'} dependencies: arr-diff: 4.0.0 array-unique: 0.3.2 @@ -16177,11 +13007,8 @@ packages: dev: false /micromatch/3.1.10_supports-color@8.1.1: - resolution: - { - integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} + engines: {node: '>=0.10.0'} dependencies: arr-diff: 4.0.0 array-unique: 0.3.2 @@ -16201,101 +13028,65 @@ packages: dev: false /micromatch/4.0.5: - resolution: - { - integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, - } - engines: {node: ">=8.6"} + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} dependencies: braces: 3.0.2 picomatch: 2.3.1 /mime-db/1.52.0: - resolution: - { - integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, - } - engines: {node: ">= 0.6"} + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} /mime-types/2.1.35: - resolution: - { - integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, - } - engines: {node: ">= 0.6"} + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 /mime/1.6.0: - resolution: - { - integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} hasBin: true dev: true /mimic-fn/2.1.0: - resolution: - { - integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} /mimic-fn/4.0.0: - resolution: - { - integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} /mimic-response/1.0.1: - resolution: - { - integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} + engines: {node: '>=4'} dev: false /mimic-response/3.1.0: - resolution: - { - integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} dev: false /min-indent/1.0.1: - resolution: - { - integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} /minimatch/3.1.2: - resolution: - { - integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, - } + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 /minimatch/5.1.0: - resolution: - { - integrity: sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==} + engines: {node: '>=10'} dependencies: brace-expansion: 2.0.1 dev: false /minimist-options/4.1.0: - resolution: - { - integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==, - } - engines: {node: ">= 6"} + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} dependencies: arrify: 1.0.1 is-plain-obj: 1.1.0 @@ -16303,67 +13094,46 @@ packages: dev: false /minimist/1.2.6: - resolution: - { - integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==, - } + resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} /minipass/3.3.4: - resolution: - { - integrity: sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==} + engines: {node: '>=8'} dependencies: yallist: 4.0.0 dev: false /minizlib/2.1.2: - resolution: - { - integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==, - } - engines: {node: ">= 8"} + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} dependencies: minipass: 3.3.4 yallist: 4.0.0 dev: false /mixin-deep/1.3.2: - resolution: - { - integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} + engines: {node: '>=0.10.0'} dependencies: for-in: 1.0.2 is-extendable: 1.0.1 dev: false /mixme/0.5.4: - resolution: - { - integrity: sha512-3KYa4m4Vlqx98GPdOHghxSdNtTvcP8E0kkaJ5Dlh+h2DRzF7zpuVVcA8B0QpKd11YJeP9QQ7ASkKzOeu195Wzw==, - } - engines: {node: ">= 8.0.0"} + resolution: {integrity: sha512-3KYa4m4Vlqx98GPdOHghxSdNtTvcP8E0kkaJ5Dlh+h2DRzF7zpuVVcA8B0QpKd11YJeP9QQ7ASkKzOeu195Wzw==} + engines: {node: '>= 8.0.0'} dev: false /mkdirp/1.0.4: - resolution: - { - integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} hasBin: true /mkdist/0.3.13_typescript@4.8.4: - resolution: - { - integrity: sha512-+eCPpkr8l2X630y5PIlkts2tzYEsb+aGIgXdrQv9ZGtWE2bLlD6kVIFfI6FJwFpjjw4dPPyorxQc6Uhm/oXlvg==, - } + resolution: {integrity: sha512-+eCPpkr8l2X630y5PIlkts2tzYEsb+aGIgXdrQv9ZGtWE2bLlD6kVIFfI6FJwFpjjw4dPPyorxQc6Uhm/oXlvg==} hasBin: true peerDependencies: - typescript: ">=4.7.4" + typescript: '>=4.7.4' peerDependenciesMeta: typescript: optional: true @@ -16379,83 +13149,53 @@ packages: dev: true /mlly/0.4.3: - resolution: - { - integrity: sha512-xezyv7hnfFPuiDS3AiJuWs0OxlvooS++3L2lURvmh/1n7UG4O2Ehz9UkwWgg3wyLEPKGVfJLlr2DjjTCl9UJTg==, - } + resolution: {integrity: sha512-xezyv7hnfFPuiDS3AiJuWs0OxlvooS++3L2lURvmh/1n7UG4O2Ehz9UkwWgg3wyLEPKGVfJLlr2DjjTCl9UJTg==} dev: true /mlly/0.5.5: - resolution: - { - integrity: sha512-2R4JT/SxRDPexomw4rmHYY/gWAGmL9Kkq1OR76Ua6w+P340a1aBDTWzKo2kAlxzrG82OdXs5VB9Lmcmyit0Obg==, - } + resolution: {integrity: sha512-2R4JT/SxRDPexomw4rmHYY/gWAGmL9Kkq1OR76Ua6w+P340a1aBDTWzKo2kAlxzrG82OdXs5VB9Lmcmyit0Obg==} dependencies: pathe: 0.3.2 pkg-types: 0.3.3 dev: true /moo/0.5.1: - resolution: - { - integrity: sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w==, - } + resolution: {integrity: sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w==} dev: true /mri/1.2.0: - resolution: - { - integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} /mrmime/1.0.1: - resolution: - { - integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} + engines: {node: '>=10'} dev: true /ms/2.0.0: - resolution: - { - integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==, - } + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} /ms/2.1.2: - resolution: - { - integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, - } + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} /ms/2.1.3: - resolution: - { - integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, - } + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} /multimatch/4.0.0: - resolution: - { - integrity: sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==} + engines: {node: '>=8'} dependencies: - "@types/minimatch": 3.0.5 + '@types/minimatch': 3.0.5 array-differ: 3.0.0 array-union: 2.1.0 arrify: 2.0.1 minimatch: 3.1.2 /multimatch/5.0.0: - resolution: - { - integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} + engines: {node: '>=10'} dependencies: - "@types/minimatch": 3.0.5 + '@types/minimatch': 3.0.5 array-differ: 3.0.0 array-union: 2.1.0 arrify: 2.0.1 @@ -16463,45 +13203,29 @@ packages: dev: false /mz/2.7.0: - resolution: - { - integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==, - } + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} dependencies: any-promise: 1.3.0 object-assign: 4.1.1 thenify-all: 1.6.0 - dev: true /nanoassert/1.1.0: - resolution: - { - integrity: sha512-C40jQ3NzfkP53NsO8kEOFd79p4b9kDXQMwgiY1z8ZwrDZgUyom0AHwGegF4Dm99L+YoYhuaB0ceerUcXmqr1rQ==, - } + resolution: {integrity: sha512-C40jQ3NzfkP53NsO8kEOFd79p4b9kDXQMwgiY1z8ZwrDZgUyom0AHwGegF4Dm99L+YoYhuaB0ceerUcXmqr1rQ==} /nanoid/3.2.0: - resolution: - { - integrity: sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==, - } + resolution: {integrity: sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true dev: false - /nanoid/3.3.4: - resolution: - { - integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==, - } + /nanoid/3.3.6: + resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true /nanomatch/1.2.13: - resolution: - { - integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} + engines: {node: '>=0.10.0'} dependencies: arr-diff: 4.0.0 array-unique: 0.3.2 @@ -16519,11 +13243,8 @@ packages: dev: false /nanomatch/1.2.13_supports-color@8.1.1: - resolution: - { - integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} + engines: {node: '>=0.10.0'} dependencies: arr-diff: 4.0.0 array-unique: 0.3.2 @@ -16541,22 +13262,13 @@ packages: dev: false /natural-compare-lite/1.4.0: - resolution: - { - integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==, - } + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} /natural-compare/1.4.0: - resolution: - { - integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==, - } + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} /nearley/2.20.1: - resolution: - { - integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==, - } + resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==} hasBin: true dependencies: commander: 2.20.3 @@ -16566,25 +13278,16 @@ packages: dev: true /negotiator/0.6.3: - resolution: - { - integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==, - } - engines: {node: ">= 0.6"} + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} dev: true /neo-async/2.6.2: - resolution: - { - integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==, - } + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} dev: false /next-auth/4.18.7_yucv4tfv7v7nrkw2uguegj6e7e: - resolution: - { - integrity: sha512-kR3s1JVPMaDuSAlFxcGyv7Ec3fdE6za71r1F77IOII5zJmW2wfkIA2xj223fM0D20ip2pzFpHfk/qN4L6l5XMA==, - } + resolution: {integrity: sha512-kR3s1JVPMaDuSAlFxcGyv7Ec3fdE6za71r1F77IOII5zJmW2wfkIA2xj223fM0D20ip2pzFpHfk/qN4L6l5XMA==} engines: {node: ^12.19.0 || ^14.15.0 || ^16.13.0 || ^18.12.0} peerDependencies: next: ^12.2.5 || ^13 @@ -16595,8 +13298,8 @@ packages: nodemailer: optional: true dependencies: - "@babel/runtime": 7.18.3 - "@panva/hkdf": 1.0.2 + '@babel/runtime': 7.18.3 + '@panva/hkdf': 1.0.2 cookie: 0.5.0 jose: 4.11.2 next: 13.3.0_biqbaboplfbrettd7655fr4n2y @@ -16609,34 +13312,28 @@ packages: uuid: 8.3.2 /next-router-mock/0.9.1_next@13.3.0+react@18.2.0: - resolution: - { - integrity: sha512-GTrns944dnFNgycpinyRszOiwwk99LUJsvvX0FWRgUFHv6hOuzCns1rmTlzO+DRimYB9/XMA+87X2/dQLzjiUQ==, - } + resolution: {integrity: sha512-GTrns944dnFNgycpinyRszOiwwk99LUJsvvX0FWRgUFHv6hOuzCns1rmTlzO+DRimYB9/XMA+87X2/dQLzjiUQ==} peerDependencies: - next: ">=10.0.0" - react: ">=17.0.0" + next: '>=10.0.0' + react: '>=17.0.0' dependencies: next: 13.3.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 dev: true /next/13.3.0: - resolution: - { - integrity: sha512-OVTw8MpIPa12+DCUkPqRGPS3thlJPcwae2ZL4xti3iBff27goH024xy4q2lhlsdoYiKOi8Kz6uJoLW/GXwgfOA==, - } - engines: {node: ">=14.6.0"} + resolution: {integrity: sha512-OVTw8MpIPa12+DCUkPqRGPS3thlJPcwae2ZL4xti3iBff27goH024xy4q2lhlsdoYiKOi8Kz6uJoLW/GXwgfOA==} + engines: {node: '>=14.6.0'} hasBin: true peerDependencies: - "@opentelemetry/api": ^1.1.0 - fibers: ">= 3.1.0" + '@opentelemetry/api': ^1.1.0 + fibers: '>= 3.1.0' node-sass: ^6.0.0 || ^7.0.0 react: ^18.2.0 react-dom: ^18.2.0 sass: ^1.3.0 peerDependenciesMeta: - "@opentelemetry/api": + '@opentelemetry/api': optional: true fibers: optional: true @@ -16645,8 +13342,8 @@ packages: sass: optional: true dependencies: - "@next/env": 13.3.0 - "@swc/helpers": 0.4.14 + '@next/env': 13.3.0 + '@swc/helpers': 0.4.14 busboy: 1.6.0 caniuse-lite: 1.0.30001434 postcss: 8.4.14 @@ -16655,36 +13352,33 @@ packages: styled-jsx: 5.1.1 use-sync-external-store: 1.2.0_react@18.2.0 optionalDependencies: - "@next/swc-darwin-arm64": 13.3.0 - "@next/swc-darwin-x64": 13.3.0 - "@next/swc-linux-arm64-gnu": 13.3.0 - "@next/swc-linux-arm64-musl": 13.3.0 - "@next/swc-linux-x64-gnu": 13.3.0 - "@next/swc-linux-x64-musl": 13.3.0 - "@next/swc-win32-arm64-msvc": 13.3.0 - "@next/swc-win32-ia32-msvc": 13.3.0 - "@next/swc-win32-x64-msvc": 13.3.0 + '@next/swc-darwin-arm64': 13.3.0 + '@next/swc-darwin-x64': 13.3.0 + '@next/swc-linux-arm64-gnu': 13.3.0 + '@next/swc-linux-arm64-musl': 13.3.0 + '@next/swc-linux-x64-gnu': 13.3.0 + '@next/swc-linux-x64-musl': 13.3.0 + '@next/swc-win32-arm64-msvc': 13.3.0 + '@next/swc-win32-ia32-msvc': 13.3.0 + '@next/swc-win32-x64-msvc': 13.3.0 transitivePeerDependencies: - - "@babel/core" + - '@babel/core' - babel-plugin-macros dev: false /next/13.3.0_biqbaboplfbrettd7655fr4n2y: - resolution: - { - integrity: sha512-OVTw8MpIPa12+DCUkPqRGPS3thlJPcwae2ZL4xti3iBff27goH024xy4q2lhlsdoYiKOi8Kz6uJoLW/GXwgfOA==, - } - engines: {node: ">=14.6.0"} + resolution: {integrity: sha512-OVTw8MpIPa12+DCUkPqRGPS3thlJPcwae2ZL4xti3iBff27goH024xy4q2lhlsdoYiKOi8Kz6uJoLW/GXwgfOA==} + engines: {node: '>=14.6.0'} hasBin: true peerDependencies: - "@opentelemetry/api": ^1.1.0 - fibers: ">= 3.1.0" + '@opentelemetry/api': ^1.1.0 + fibers: '>= 3.1.0' node-sass: ^6.0.0 || ^7.0.0 react: ^18.2.0 react-dom: ^18.2.0 sass: ^1.3.0 peerDependenciesMeta: - "@opentelemetry/api": + '@opentelemetry/api': optional: true fibers: optional: true @@ -16693,8 +13387,8 @@ packages: sass: optional: true dependencies: - "@next/env": 13.3.0 - "@swc/helpers": 0.4.14 + '@next/env': 13.3.0 + '@swc/helpers': 0.4.14 busboy: 1.6.0 caniuse-lite: 1.0.30001434 postcss: 8.4.14 @@ -16702,47 +13396,80 @@ packages: react-dom: 18.2.0_react@18.2.0 styled-jsx: 5.1.1_react@18.2.0 optionalDependencies: - "@next/swc-darwin-arm64": 13.3.0 - "@next/swc-darwin-x64": 13.3.0 - "@next/swc-linux-arm64-gnu": 13.3.0 - "@next/swc-linux-arm64-musl": 13.3.0 - "@next/swc-linux-x64-gnu": 13.3.0 - "@next/swc-linux-x64-musl": 13.3.0 - "@next/swc-win32-arm64-msvc": 13.3.0 - "@next/swc-win32-ia32-msvc": 13.3.0 - "@next/swc-win32-x64-msvc": 13.3.0 + '@next/swc-darwin-arm64': 13.3.0 + '@next/swc-darwin-x64': 13.3.0 + '@next/swc-linux-arm64-gnu': 13.3.0 + '@next/swc-linux-arm64-musl': 13.3.0 + '@next/swc-linux-x64-gnu': 13.3.0 + '@next/swc-linux-x64-musl': 13.3.0 + '@next/swc-win32-arm64-msvc': 13.3.0 + '@next/swc-win32-ia32-msvc': 13.3.0 + '@next/swc-win32-x64-msvc': 13.3.0 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + + /next/13.4.1_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-JBw2kAIyhKDpjhEWvNVoFeIzNp9xNxg8wrthDOtMctfn3EpqGCmW0FSviNyGgOSOSn6zDaX48pmvbdf6X2W9xA==} + engines: {node: '>=16.8.0'} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + fibers: '>= 3.1.0' + node-sass: ^6.0.0 || ^7.0.0 + react: ^18.2.0 + react-dom: ^18.2.0 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + fibers: + optional: true + node-sass: + optional: true + sass: + optional: true + dependencies: + '@next/env': 13.4.1 + '@swc/helpers': 0.5.1 + busboy: 1.6.0 + caniuse-lite: 1.0.30001486 + postcss: 8.4.14 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + styled-jsx: 5.1.1_react@18.2.0 + zod: 3.21.4 + optionalDependencies: + '@next/swc-darwin-arm64': 13.4.1 + '@next/swc-darwin-x64': 13.4.1 + '@next/swc-linux-arm64-gnu': 13.4.1 + '@next/swc-linux-arm64-musl': 13.4.1 + '@next/swc-linux-x64-gnu': 13.4.1 + '@next/swc-linux-x64-musl': 13.4.1 + '@next/swc-win32-arm64-msvc': 13.4.1 + '@next/swc-win32-ia32-msvc': 13.4.1 + '@next/swc-win32-x64-msvc': 13.4.1 transitivePeerDependencies: - - "@babel/core" + - '@babel/core' - babel-plugin-macros + dev: false /nice-try/1.0.5: - resolution: - { - integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==, - } + resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} /node-dir/0.1.17: - resolution: - { - integrity: sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==, - } - engines: {node: ">= 0.10.5"} + resolution: {integrity: sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==} + engines: {node: '>= 0.10.5'} dependencies: minimatch: 3.1.2 dev: false /node-domexception/1.0.0: - resolution: - { - integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==, - } - engines: {node: ">=10.5.0"} + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} /node-fetch/3.2.3: - resolution: - { - integrity: sha512-AXP18u4pidSZ1xYXRDPY/8jdv3RAozIt/WLNR/MBGZAz+xjtlr90RvCnsvHQRiXyWliZF/CpytExp32UU67/SA==, - } + resolution: {integrity: sha512-AXP18u4pidSZ1xYXRDPY/8jdv3RAozIt/WLNR/MBGZAz+xjtlr90RvCnsvHQRiXyWliZF/CpytExp32UU67/SA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: data-uri-to-buffer: 4.0.0 @@ -16750,125 +13477,89 @@ packages: formdata-polyfill: 4.0.10 /node-gyp-build/4.4.0: - resolution: - { - integrity: sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==, - } + resolution: {integrity: sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==} hasBin: true /node-int64/0.4.0: - resolution: - { - integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==, - } + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + + /node-releases/2.0.10: + resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==} + dev: false /node-releases/2.0.5: - resolution: - { - integrity: sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==, - } + resolution: {integrity: sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==} /node-releases/2.0.6: - resolution: - { - integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==, - } + resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==} /nodemailer/6.7.3: - resolution: - { - integrity: sha512-KUdDsspqx89sD4UUyUKzdlUOper3hRkDVkrKh/89G+d9WKsU5ox51NWS4tB1XR5dPUdR4SP0E3molyEfOvSa3g==, - } - engines: {node: ">=6.0.0"} + resolution: {integrity: sha512-KUdDsspqx89sD4UUyUKzdlUOper3hRkDVkrKh/89G+d9WKsU5ox51NWS4tB1XR5dPUdR4SP0E3molyEfOvSa3g==} + engines: {node: '>=6.0.0'} dev: true /nodemailer/6.8.0: - resolution: - { - integrity: sha512-EjYvSmHzekz6VNkNd12aUqAco+bOkRe3Of5jVhltqKhEsjw/y0PYPJfp83+s9Wzh1dspYAkUW/YNQ350NATbSQ==, - } - engines: {node: ">=6.0.0"} + resolution: {integrity: sha512-EjYvSmHzekz6VNkNd12aUqAco+bOkRe3Of5jVhltqKhEsjw/y0PYPJfp83+s9Wzh1dspYAkUW/YNQ350NATbSQ==} + engines: {node: '>=6.0.0'} dev: true /normalize-package-data/2.5.0: - resolution: - { - integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==, - } + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: hosted-git-info: 2.8.9 - resolve: 1.22.1 + resolve: 1.22.2 semver: 5.7.1 validate-npm-package-license: 3.0.4 dev: false /normalize-path/3.0.0: - resolution: - { - integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + /normalize-range/0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + dev: false /normalize-url/4.5.1: - resolution: - { - integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==} + engines: {node: '>=8'} dev: false /normalize-url/6.1.0: - resolution: - { - integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} dev: false /npm-path/2.0.4: - resolution: - { - integrity: sha512-IFsj0R9C7ZdR5cP+ET342q77uSRdtWOlWpih5eC+lu29tIDbNEgDbzgVJ5UFvYHWhxDZ5TFkJafFioO0pPQjCw==, - } - engines: {node: ">=0.8"} + resolution: {integrity: sha512-IFsj0R9C7ZdR5cP+ET342q77uSRdtWOlWpih5eC+lu29tIDbNEgDbzgVJ5UFvYHWhxDZ5TFkJafFioO0pPQjCw==} + engines: {node: '>=0.8'} hasBin: true dependencies: which: 1.3.1 dev: false /npm-run-path/2.0.2: - resolution: - { - integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} + engines: {node: '>=4'} dependencies: path-key: 2.0.1 /npm-run-path/4.0.1: - resolution: - { - integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} dependencies: path-key: 3.1.1 /npm-run-path/5.1.0: - resolution: - { - integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==, - } + resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: path-key: 4.0.0 /npm-which/3.0.1: - resolution: - { - integrity: sha512-CM8vMpeFQ7MAPin0U3wzDhSGV0hMHNwHU0wjo402IVizPDrs45jSfSuoC+wThevY88LQti8VvaAnqYAeVy3I1A==, - } - engines: {node: ">=4.2.0"} + resolution: {integrity: sha512-CM8vMpeFQ7MAPin0U3wzDhSGV0hMHNwHU0wjo402IVizPDrs45jSfSuoC+wThevY88LQti8VvaAnqYAeVy3I1A==} + engines: {node: '>=4.2.0'} hasBin: true dependencies: commander: 2.20.3 @@ -16877,43 +13568,25 @@ packages: dev: false /nwsapi/2.2.0: - resolution: - { - integrity: sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==, - } + resolution: {integrity: sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==} /nwsapi/2.2.2: - resolution: - { - integrity: sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==, - } + resolution: {integrity: sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==} /oauth/0.10.0: - resolution: - { - integrity: sha512-1orQ9MT1vHFGQxhuy7E/0gECD3fd2fCC+PIX+/jgmU/gI3EpRocXtmtvxCO5x3WZ443FLTLFWNDjl5MPJf9u+Q==, - } + resolution: {integrity: sha512-1orQ9MT1vHFGQxhuy7E/0gECD3fd2fCC+PIX+/jgmU/gI3EpRocXtmtvxCO5x3WZ443FLTLFWNDjl5MPJf9u+Q==} dev: false /oauth/0.9.15: - resolution: - { - integrity: sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA==, - } + resolution: {integrity: sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA==} /object-assign/4.1.1: - resolution: - { - integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} /object-copy/0.1.0: - resolution: - { - integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} + engines: {node: '>=0.10.0'} dependencies: copy-descriptor: 0.1.1 define-property: 0.2.5 @@ -16921,41 +13594,31 @@ packages: dev: false /object-hash/2.2.0: - resolution: - { - integrity: sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==, - } - engines: {node: ">= 6"} + resolution: {integrity: sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==} + engines: {node: '>= 6'} + + /object-hash/3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + dev: false /object-inspect/1.12.2: - resolution: - { - integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==, - } + resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} /object-keys/1.1.1: - resolution: - { - integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==, - } - engines: {node: ">= 0.4"} + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} /object-visit/1.0.1: - resolution: - { - integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} + engines: {node: '>=0.10.0'} dependencies: isobject: 3.0.1 dev: false /object.assign/4.1.2: - resolution: - { - integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==, - } - engines: {node: ">= 0.4"} + resolution: {integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.1.4 @@ -16963,113 +13626,77 @@ packages: object-keys: 1.1.1 /object.entries/1.1.5: - resolution: - { - integrity: sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==, - } - engines: {node: ">= 0.4"} + resolution: {integrity: sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.1.4 es-abstract: 1.20.1 /object.fromentries/2.0.5: - resolution: - { - integrity: sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==, - } - engines: {node: ">= 0.4"} + resolution: {integrity: sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.1.4 es-abstract: 1.20.1 /object.hasown/1.1.1: - resolution: - { - integrity: sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==, - } + resolution: {integrity: sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==} dependencies: define-properties: 1.1.4 es-abstract: 1.20.1 /object.pick/1.3.0: - resolution: - { - integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} + engines: {node: '>=0.10.0'} dependencies: isobject: 3.0.1 dev: false /object.values/1.1.5: - resolution: - { - integrity: sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==, - } - engines: {node: ">= 0.4"} + resolution: {integrity: sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.1.4 es-abstract: 1.20.1 /oidc-token-hash/5.0.1: - resolution: - { - integrity: sha512-EvoOtz6FIEBzE+9q253HsLCVRiK/0doEJ2HCvvqMQb3dHZrP3WlJKYtJ55CRTw4jmYomzH4wkPuCj/I3ZvpKxQ==, - } + resolution: {integrity: sha512-EvoOtz6FIEBzE+9q253HsLCVRiK/0doEJ2HCvvqMQb3dHZrP3WlJKYtJ55CRTw4jmYomzH4wkPuCj/I3ZvpKxQ==} engines: {node: ^10.13.0 || >=12.0.0} /on-finished/2.3.0: - resolution: - { - integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==, - } - engines: {node: ">= 0.8"} + resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} + engines: {node: '>= 0.8'} dependencies: ee-first: 1.1.1 dev: true /on-headers/1.0.2: - resolution: - { - integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==, - } - engines: {node: ">= 0.8"} + resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + engines: {node: '>= 0.8'} dev: false /once/1.4.0: - resolution: - { - integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, - } + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 /onetime/5.1.2: - resolution: - { - integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} dependencies: mimic-fn: 2.1.0 /onetime/6.0.0: - resolution: - { - integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} dependencies: mimic-fn: 4.0.0 /only-allow/1.1.0: - resolution: - { - integrity: sha512-HYiuMpRuy0d0DjoQZwhwO1Ueal0NXJ2I4mNxLv3aGw/1naRcAAzVC953WNpcbjlo+ak3WsoKDjHvoMd2cSZLpw==, - } + resolution: {integrity: sha512-HYiuMpRuy0d0DjoQZwhwO1Ueal0NXJ2I4mNxLv3aGw/1naRcAAzVC953WNpcbjlo+ak3WsoKDjHvoMd2cSZLpw==} hasBin: true dependencies: boxen: 4.2.0 @@ -17077,41 +13704,28 @@ packages: dev: false /open/7.4.2: - resolution: - { - integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} + engines: {node: '>=8'} dependencies: is-docker: 2.2.1 is-wsl: 2.2.0 dev: true /open/8.4.0: - resolution: - { - integrity: sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==} + engines: {node: '>=12'} dependencies: define-lazy-prop: 2.0.0 is-docker: 2.2.1 is-wsl: 2.2.0 - dev: true /opener/1.5.2: - resolution: - { - integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==, - } + resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} hasBin: true dev: true /openid-client/5.2.1: - resolution: - { - integrity: sha512-KPxqWnxobG/70Cxqyvd43RWfCfHedFnCdHSBpw5f7WnTnuBAeBnvot/BIo+brrcTr0wyAYUlL/qejQSGwWtdIg==, - } + resolution: {integrity: sha512-KPxqWnxobG/70Cxqyvd43RWfCfHedFnCdHSBpw5f7WnTnuBAeBnvot/BIo+brrcTr0wyAYUlL/qejQSGwWtdIg==} dependencies: jose: 4.11.2 lru-cache: 6.0.0 @@ -17119,11 +13733,8 @@ packages: oidc-token-hash: 5.0.1 /optionator/0.8.3: - resolution: - { - integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==, - } - engines: {node: ">= 0.8.0"} + resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} + engines: {node: '>= 0.8.0'} dependencies: deep-is: 0.1.4 fast-levenshtein: 2.0.6 @@ -17133,11 +13744,8 @@ packages: word-wrap: 1.2.3 /optionator/0.9.1: - resolution: - { - integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==, - } - engines: {node: ">= 0.8.0"} + resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} + engines: {node: '>= 0.8.0'} dependencies: deep-is: 0.1.4 fast-levenshtein: 2.0.6 @@ -17147,11 +13755,8 @@ packages: word-wrap: 1.2.3 /ora/5.3.0: - resolution: - { - integrity: sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==} + engines: {node: '>=10'} dependencies: bl: 4.1.0 chalk: 4.1.2 @@ -17164,10 +13769,7 @@ packages: dev: false /os-name/5.0.1: - resolution: - { - integrity: sha512-0EQpaHUHq7olp2/YFUr+0vZi9tMpDTblHGz+Ch5RntKxiRXOAY0JOz1UlxhSjMSksHvkm13eD6elJj3M8Ht/kw==, - } + resolution: {integrity: sha512-0EQpaHUHq7olp2/YFUr+0vZi9tMpDTblHGz+Ch5RntKxiRXOAY0JOz1UlxhSjMSksHvkm13eD6elJj3M8Ht/kw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: macos-release: 3.1.0 @@ -17175,198 +13777,129 @@ packages: dev: false /os-tmpdir/1.0.2: - resolution: - { - integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} dev: false /outdent/0.5.0: - resolution: - { - integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==, - } + resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} dev: false /p-cancelable/1.1.0: - resolution: - { - integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==} + engines: {node: '>=6'} dev: false /p-cancelable/2.1.1: - resolution: - { - integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} + engines: {node: '>=8'} dev: false /p-defer/1.0.0: - resolution: - { - integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} + engines: {node: '>=4'} dev: false /p-event/4.2.0: - resolution: - { - integrity: sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==} + engines: {node: '>=8'} dependencies: p-timeout: 3.2.0 /p-filter/2.1.0: - resolution: - { - integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} + engines: {node: '>=8'} dependencies: p-map: 2.1.0 dev: false /p-finally/1.0.0: - resolution: - { - integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} /p-is-promise/2.1.0: - resolution: - { - integrity: sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==} + engines: {node: '>=6'} dev: false /p-limit/1.3.0: - resolution: - { - integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} + engines: {node: '>=4'} dependencies: p-try: 1.0.0 /p-limit/2.3.0: - resolution: - { - integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} dependencies: p-try: 2.2.0 /p-limit/3.1.0: - resolution: - { - integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} dependencies: yocto-queue: 0.1.0 /p-locate/2.0.0: - resolution: - { - integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} + engines: {node: '>=4'} dependencies: p-limit: 1.3.0 /p-locate/3.0.0: - resolution: - { - integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} + engines: {node: '>=6'} dependencies: p-limit: 2.3.0 dev: false /p-locate/4.1.0: - resolution: - { - integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} dependencies: p-limit: 2.3.0 /p-locate/5.0.0: - resolution: - { - integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} dependencies: p-limit: 3.1.0 /p-map/2.1.0: - resolution: - { - integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} dev: false /p-map/4.0.0: - resolution: - { - integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} dependencies: aggregate-error: 3.1.0 /p-timeout/3.2.0: - resolution: - { - integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} + engines: {node: '>=8'} dependencies: p-finally: 1.0.0 /p-try/1.0.0: - resolution: - { - integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} + engines: {node: '>=4'} /p-try/2.2.0: - resolution: - { - integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} /p-wait-for/3.2.0: - resolution: - { - integrity: sha512-wpgERjNkLrBiFmkMEjuZJEWKKDrNfHCKA1OhyN1wg1FrLkULbviEy6py1AyJUgZ72YWFbZ38FIpnqvVqAlDUwA==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-wpgERjNkLrBiFmkMEjuZJEWKKDrNfHCKA1OhyN1wg1FrLkULbviEy6py1AyJUgZ72YWFbZ38FIpnqvVqAlDUwA==} + engines: {node: '>=8'} dependencies: p-timeout: 3.2.0 dev: true /package-json/6.5.0: - resolution: - { - integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==} + engines: {node: '>=8'} dependencies: got: 9.6.0 registry-auth-token: 4.2.1 @@ -17375,109 +13908,73 @@ packages: dev: false /pako/1.0.11: - resolution: - { - integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==, - } + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} dev: true /parent-module/1.0.1: - resolution: - { - integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} dependencies: callsites: 3.1.0 /parse-github-url/1.0.2: - resolution: - { - integrity: sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==} + engines: {node: '>=0.10.0'} hasBin: true dev: false /parse-json/5.2.0: - resolution: - { - integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} dependencies: - "@babel/code-frame": 7.16.7 + '@babel/code-frame': 7.16.7 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 /parse-passwd/1.0.0: - resolution: - { - integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} + engines: {node: '>=0.10.0'} dev: false /parse5/6.0.1: - resolution: - { - integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==, - } + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} /parse5/7.1.1: - resolution: - { - integrity: sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==, - } + resolution: {integrity: sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==} dependencies: entities: 4.4.0 /parseley/0.7.0: - resolution: - { - integrity: sha512-xyOytsdDu077M3/46Am+2cGXEKM9U9QclBDv7fimY7e+BBlxh2JcBp2mgNsmkyA9uvgyTjVzDi7cP1v4hcFxbw==, - } + resolution: {integrity: sha512-xyOytsdDu077M3/46Am+2cGXEKM9U9QclBDv7fimY7e+BBlxh2JcBp2mgNsmkyA9uvgyTjVzDi7cP1v4hcFxbw==} dependencies: moo: 0.5.1 nearley: 2.20.1 dev: true /parseurl/1.3.3: - resolution: - { - integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==, - } - engines: {node: ">= 0.8"} + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} dev: true /pascalcase/0.1.1: - resolution: - { - integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} + engines: {node: '>=0.10.0'} dev: false /passport-mock-strategy/2.0.0: - resolution: - { - integrity: sha512-9YUT0sja/7n+HfQ+Jwx4XETERRh1uciRjpHhEZMcYS1FBnMrfrSlKVS42bMU06ewSFiPhXztazAE6XwiZdZQ/g==, - } - engines: {node: ">= 6"} - dependencies: - "@types/express": 4.17.13 - "@types/passport": 1.0.8 + resolution: {integrity: sha512-9YUT0sja/7n+HfQ+Jwx4XETERRh1uciRjpHhEZMcYS1FBnMrfrSlKVS42bMU06ewSFiPhXztazAE6XwiZdZQ/g==} + engines: {node: '>= 6'} + dependencies: + '@types/express': 4.17.13 + '@types/passport': 1.0.8 es6-promise: 4.2.8 passport: 0.4.1 dev: false /passport-oauth1/1.2.0: - resolution: - { - integrity: sha512-Sv2YWodC6jN12M/OXwmR4BIXeeIHjjbwYTQw4kS6tHK4zYzSEpxBgSJJnknBjICA5cj0ju3FSnG1XmHgIhYnLg==, - } - engines: {node: ">= 0.4.0"} + resolution: {integrity: sha512-Sv2YWodC6jN12M/OXwmR4BIXeeIHjjbwYTQw4kS6tHK4zYzSEpxBgSJJnknBjICA5cj0ju3FSnG1XmHgIhYnLg==} + engines: {node: '>= 0.4.0'} dependencies: oauth: 0.9.15 passport-strategy: 1.0.0 @@ -17485,38 +13982,29 @@ packages: dev: false /passport-strategy/1.0.0: - resolution: - { - integrity: sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA==, - } - engines: {node: ">= 0.4.0"} + resolution: {integrity: sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA==} + engines: {node: '>= 0.4.0'} dev: false /passport-twitter/1.0.4: resolution: {integrity: sha1-AaeZ4fdgvy3knyul+6MigvGJMtc=} - engines: {node: ">= 0.4.0"} + engines: {node: '>= 0.4.0'} dependencies: passport-oauth1: 1.2.0 xtraverse: 0.1.0 dev: false /passport/0.4.1: - resolution: - { - integrity: sha512-IxXgZZs8d7uFSt3eqNjM9NQ3g3uQCW5avD8mRNoXV99Yig50vjuaez6dQK2qC0kVWPRTujxY0dWgGfT09adjYg==, - } - engines: {node: ">= 0.4.0"} + resolution: {integrity: sha512-IxXgZZs8d7uFSt3eqNjM9NQ3g3uQCW5avD8mRNoXV99Yig50vjuaez6dQK2qC0kVWPRTujxY0dWgGfT09adjYg==} + engines: {node: '>= 0.4.0'} dependencies: passport-strategy: 1.0.0 pause: 0.0.1 dev: false /passport/0.6.0: - resolution: - { - integrity: sha512-0fe+p3ZnrWRW74fe8+SvCyf4a3Pb2/h7gFkQ8yTJpAO50gDzlfjZUZTO1k5Eg9kUct22OxHLqDZoKUWRHOh9ug==, - } - engines: {node: ">= 0.4.0"} + resolution: {integrity: sha512-0fe+p3ZnrWRW74fe8+SvCyf4a3Pb2/h7gFkQ8yTJpAO50gDzlfjZUZTO1k5Eg9kUct22OxHLqDZoKUWRHOh9ug==} + engines: {node: '>= 0.4.0'} dependencies: passport-strategy: 1.0.0 pause: 0.0.1 @@ -17524,88 +14012,55 @@ packages: dev: false /patch-console/1.0.0: - resolution: - { - integrity: sha512-nxl9nrnLQmh64iTzMfyylSlRozL7kAXIaxw1fVcLYdyhNkJCRUzirRZTikXGJsg+hc4fqpneTK6iU2H1Q8THSA==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-nxl9nrnLQmh64iTzMfyylSlRozL7kAXIaxw1fVcLYdyhNkJCRUzirRZTikXGJsg+hc4fqpneTK6iU2H1Q8THSA==} + engines: {node: '>=10'} dev: false /path-dirname/1.0.2: - resolution: - { - integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==, - } + resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==} dev: false /path-exists/3.0.0: - resolution: - { - integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} /path-exists/4.0.0: - resolution: - { - integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} /path-is-absolute/1.0.1: - resolution: - { - integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} /path-key/2.0.1: - resolution: - { - integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} + engines: {node: '>=4'} /path-key/3.1.1: - resolution: - { - integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} /path-key/4.0.0: - resolution: - { - integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} /path-parse/1.0.7: - resolution: - { - integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, - } + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} /path-to-regexp/0.1.7: resolution: {integrity: sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=} dev: true /path-type/3.0.0: - resolution: - { - integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} + engines: {node: '>=4'} dependencies: pify: 3.0.0 dev: false /path-type/4.0.0: - resolution: - { - integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} /path/0.12.7: resolution: {integrity: sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=} @@ -17615,124 +14070,76 @@ packages: dev: false /pathe/0.2.0: - resolution: - { - integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==, - } + resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==} dev: true /pathe/0.3.2: - resolution: - { - integrity: sha512-qhnmX0TOqlCvdWWTkoM83wh5J8fZ2yhbDEc9MlsnAEtEc+JCwxUKEwmd6pkY9hRe6JR1Uecbc14VcAKX2yFSTA==, - } + resolution: {integrity: sha512-qhnmX0TOqlCvdWWTkoM83wh5J8fZ2yhbDEc9MlsnAEtEc+JCwxUKEwmd6pkY9hRe6JR1Uecbc14VcAKX2yFSTA==} dev: true /pathval/1.1.1: - resolution: - { - integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==, - } + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} /pause/0.0.1: - resolution: - { - integrity: sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg==, - } + resolution: {integrity: sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg==} dev: false /pend/1.2.0: - resolution: - { - integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==, - } + resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} dev: true /picocolors/1.0.0: - resolution: - { - integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, - } + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} /picomatch/2.3.1: - resolution: - { - integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, - } - engines: {node: ">=8.6"} + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} /pidtree/0.6.0: - resolution: - { - integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==, - } - engines: {node: ">=0.10"} + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} hasBin: true /pify/2.3.0: - resolution: - { - integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} dev: false /pify/3.0.0: - resolution: - { - integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} + engines: {node: '>=4'} dev: false /pify/4.0.1: - resolution: - { - integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} dev: false /pirates/4.0.5: - resolution: - { - integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==, - } - engines: {node: ">= 6"} + resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} + engines: {node: '>= 6'} /pkg-dir/3.0.0: - resolution: - { - integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==} + engines: {node: '>=6'} dependencies: find-up: 3.0.0 dev: false /pkg-dir/4.2.0: - resolution: - { - integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} dependencies: find-up: 4.1.0 /pkg-dir/5.0.0: - resolution: - { - integrity: sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==} + engines: {node: '>=10'} dependencies: find-up: 5.0.0 /pkg-types/0.3.3: - resolution: - { - integrity: sha512-6AJcCMnjUQPQv/Wk960w0TOmjhdjbeaQJoSKWRQv9N3rgkessCu6J0Ydsog/nw1MbpnxHuPzYbfOn2KmlZO1FA==, - } + resolution: {integrity: sha512-6AJcCMnjUQPQv/Wk960w0TOmjhdjbeaQJoSKWRQv9N3rgkessCu6J0Ydsog/nw1MbpnxHuPzYbfOn2KmlZO1FA==} dependencies: jsonc-parser: 3.0.0 mlly: 0.5.5 @@ -17740,11 +14147,8 @@ packages: dev: true /playwright-chromium/1.28.0: - resolution: - { - integrity: sha512-5IUBJShMJMaK6NmRj/7KWdvVqd7J8DqLH0wVdXBs/4MfZUAvByBB35y5v6B33NjlJg3SZGX5alR8TANrcKaJNA==, - } - engines: {node: ">=14"} + resolution: {integrity: sha512-5IUBJShMJMaK6NmRj/7KWdvVqd7J8DqLH0wVdXBs/4MfZUAvByBB35y5v6B33NjlJg3SZGX5alR8TANrcKaJNA==} + engines: {node: '>=14'} hasBin: true requiresBuild: true dependencies: @@ -17752,20 +14156,14 @@ packages: dev: true /playwright-core/1.28.0: - resolution: - { - integrity: sha512-nJLknd28kPBiCNTbqpu6Wmkrh63OEqJSFw9xOfL9qxfNwody7h6/L3O2dZoWQ6Oxcm0VOHjWmGiCUGkc0X3VZA==, - } - engines: {node: ">=14"} + resolution: {integrity: sha512-nJLknd28kPBiCNTbqpu6Wmkrh63OEqJSFw9xOfL9qxfNwody7h6/L3O2dZoWQ6Oxcm0VOHjWmGiCUGkc0X3VZA==} + engines: {node: '>=14'} hasBin: true dev: true /playwright/1.28.0: - resolution: - { - integrity: sha512-kyOXGc5y1mgi+hgEcCIyE1P1+JumLrxS09nFHo5sdJNzrucxPRAGwM4A2X3u3SDOfdgJqx61yIoR6Av+5plJPg==, - } - engines: {node: ">=14"} + resolution: {integrity: sha512-kyOXGc5y1mgi+hgEcCIyE1P1+JumLrxS09nFHo5sdJNzrucxPRAGwM4A2X3u3SDOfdgJqx61yIoR6Av+5plJPg==} + engines: {node: '>=14'} hasBin: true requiresBuild: true dependencies: @@ -17773,66 +14171,106 @@ packages: dev: true /pluralize/8.0.0: - resolution: - { - integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} dev: false /posix-character-classes/0.1.1: - resolution: - { - integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} + engines: {node: '>=0.10.0'} + dev: false + + /postcss-import/15.1.0_postcss@8.4.23: + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + dependencies: + postcss: 8.4.23 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.2 + dev: false + + /postcss-js/4.0.1_postcss@8.4.23: + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.23 + dev: false + + /postcss-load-config/4.0.1_postcss@8.4.23: + resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 2.1.0 + postcss: 8.4.23 + yaml: 2.1.3 + dev: false + + /postcss-nested/6.0.1_postcss@8.4.23: + resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + dependencies: + postcss: 8.4.23 + postcss-selector-parser: 6.0.12 + dev: false + + /postcss-selector-parser/6.0.12: + resolution: {integrity: sha512-NdxGCAZdRrwVI1sy59+Wzrh+pMMHxapGnpfenDVlMEXoOcvt4pGE0JLK9YY2F5dLxcFYA/YbVQKhcGU+FtSYQg==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: false + + /postcss-value-parser/4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: false /postcss/8.4.14: - resolution: - { - integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==, - } + resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} engines: {node: ^10 || ^12 || >=14} dependencies: - nanoid: 3.3.4 + nanoid: 3.3.6 picocolors: 1.0.0 source-map-js: 1.0.2 - /postcss/8.4.19: - resolution: - { - integrity: sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==, - } + /postcss/8.4.23: + resolution: {integrity: sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==} engines: {node: ^10 || ^12 || >=14} dependencies: - nanoid: 3.3.4 + nanoid: 3.3.6 picocolors: 1.0.0 source-map-js: 1.0.2 /preact-render-to-string/5.2.6_preact@10.11.3: - resolution: - { - integrity: sha512-JyhErpYOvBV1hEPwIxc/fHWXPfnEGdRKxc8gFdAZ7XV4tlzyzG847XAyEZqoDnynP88akM4eaHcSOzNcLWFguw==, - } + resolution: {integrity: sha512-JyhErpYOvBV1hEPwIxc/fHWXPfnEGdRKxc8gFdAZ7XV4tlzyzG847XAyEZqoDnynP88akM4eaHcSOzNcLWFguw==} peerDependencies: - preact: ">=10" + preact: '>=10' dependencies: preact: 10.11.3 pretty-format: 3.8.0 /preact/10.11.3: - resolution: - { - integrity: sha512-eY93IVpod/zG3uMF22Unl8h9KkrcKIRs2EGar8hwLZZDU1lkjph303V9HZBwufh2s736U6VXuhD109LYqPoffg==, - } + resolution: {integrity: sha512-eY93IVpod/zG3uMF22Unl8h9KkrcKIRs2EGar8hwLZZDU1lkjph303V9HZBwufh2s736U6VXuhD109LYqPoffg==} /preferred-pm/3.0.3: - resolution: - { - integrity: sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==} + engines: {node: '>=10'} dependencies: find-up: 5.0.0 find-yarn-workspace-root2: 1.2.16 @@ -17841,77 +14279,50 @@ packages: dev: false /prelude-ls/1.1.2: - resolution: - { - integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==, - } - engines: {node: ">= 0.8.0"} + resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} + engines: {node: '>= 0.8.0'} /prelude-ls/1.2.1: - resolution: - { - integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==, - } - engines: {node: ">= 0.8.0"} + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} /prepend-http/2.0.0: - resolution: - { - integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==} + engines: {node: '>=4'} dev: false /prettier-plugin-prisma/4.4.0_prettier@2.7.1: - resolution: - { - integrity: sha512-631zwtvHUjcuS+i83wkxE3LqizazojWie4Pkha9GL6r1UsochNUedvxfvWPCdw6Dpyawvc5UKkmxcb9aT9+xfg==, - } - engines: {node: ">=12", npm: ">=7"} + resolution: {integrity: sha512-631zwtvHUjcuS+i83wkxE3LqizazojWie4Pkha9GL6r1UsochNUedvxfvWPCdw6Dpyawvc5UKkmxcb9aT9+xfg==} + engines: {node: '>=12', npm: '>=7'} peerDependencies: - prettier: ">=2" + prettier: '>=2' dependencies: - "@prisma/prisma-fmt-wasm": 4.4.0-66.f352a33b70356f46311da8b00d83386dd9f145d6 + '@prisma/prisma-fmt-wasm': 4.4.0-66.f352a33b70356f46311da8b00d83386dd9f145d6 prettier: 2.7.1 /prettier/1.19.1: - resolution: - { - integrity: sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==} + engines: {node: '>=4'} hasBin: true dev: false /prettier/2.7.1: - resolution: - { - integrity: sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==, - } - engines: {node: ">=10.13.0"} + resolution: {integrity: sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==} + engines: {node: '>=10.13.0'} hasBin: true /pretty-bytes/5.6.0: - resolution: - { - integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} + engines: {node: '>=6'} dev: true /pretty-bytes/6.0.0: - resolution: - { - integrity: sha512-6UqkYefdogmzqAZWzJ7laYeJnaXDy2/J+ZqiiMtS7t7OfpXWTlaeGMwX8U6EFvPV/YWWEKRkS8hKS4k60WHTOg==, - } + resolution: {integrity: sha512-6UqkYefdogmzqAZWzJ7laYeJnaXDy2/J+ZqiiMtS7t7OfpXWTlaeGMwX8U6EFvPV/YWWEKRkS8hKS4k60WHTOg==} engines: {node: ^14.13.1 || >=16.0.0} dev: true /pretty-format/27.5.1: - resolution: - { - integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==, - } + resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: ansi-regex: 5.0.1 @@ -17920,31 +14331,22 @@ packages: dev: true /pretty-format/29.2.1: - resolution: - { - integrity: sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA==, - } + resolution: {integrity: sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - "@jest/schemas": 29.0.0 + '@jest/schemas': 29.0.0 ansi-styles: 5.2.0 react-is: 18.2.0 /pretty-format/3.8.0: - resolution: - { - integrity: sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==, - } + resolution: {integrity: sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==} /pretty-quick/3.1.3_prettier@2.7.1: - resolution: - { - integrity: sha512-kOCi2FJabvuh1as9enxYmrnBC6tVMoVOenMaBqRfsvBHB0cbpYHjdQEpSglpASDFEXVwplpcGR4CLEaisYAFcA==, - } - engines: {node: ">=10.13"} + resolution: {integrity: sha512-kOCi2FJabvuh1as9enxYmrnBC6tVMoVOenMaBqRfsvBHB0cbpYHjdQEpSglpASDFEXVwplpcGR4CLEaisYAFcA==} + engines: {node: '>=10.13'} hasBin: true peerDependencies: - prettier: ">=2.0.0" + prettier: '>=2.0.0' dependencies: chalk: 3.0.0 execa: 4.1.0 @@ -17955,11 +14357,8 @@ packages: prettier: 2.7.1 /preview-email/3.0.7: - resolution: - { - integrity: sha512-WGko2NiS3d8qoGcC981sXotm7noW/dcv4Cp4wo+X95ek2WwJ4A+aDpw/MzMjMW/johihvmfrfUdUWBbh+HnxCw==, - } - engines: {node: ">=14"} + resolution: {integrity: sha512-WGko2NiS3d8qoGcC981sXotm7noW/dcv4Cp4wo+X95ek2WwJ4A+aDpw/MzMjMW/johihvmfrfUdUWBbh+HnxCw==} + engines: {node: '>=14'} dependencies: ci-info: 3.5.0 crypto-random-string: 3.3.1 @@ -17974,105 +14373,78 @@ packages: uuid: 8.3.2 dev: true + /prisma/4.14.0: + resolution: {integrity: sha512-+5dMl1uxMQb4RepndY6AwR9xi1cDcaGFICu+ws6/Nmgt93mFPNj8tYxSfTdmfg+rkNrUId9rk/Ac2vTgLe/oXA==} + engines: {node: '>=14.17'} + hasBin: true + requiresBuild: true + dependencies: + '@prisma/engines': 4.14.0 + dev: false + /prisma/4.6.1: - resolution: - { - integrity: sha512-BR4itMCuzrDV4tn3e2TF+nh1zIX/RVU0isKtKoN28ADeoJ9nYaMhiuRRkFd2TZN8+l/XfYzoRKyHzUFXLQhmBQ==, - } - engines: {node: ">=14.17"} + resolution: {integrity: sha512-BR4itMCuzrDV4tn3e2TF+nh1zIX/RVU0isKtKoN28ADeoJ9nYaMhiuRRkFd2TZN8+l/XfYzoRKyHzUFXLQhmBQ==} + engines: {node: '>=14.17'} hasBin: true requiresBuild: true dependencies: - "@prisma/engines": 4.6.1 + '@prisma/engines': 4.6.1 dev: false /process-nextick-args/2.0.1: - resolution: - { - integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==, - } + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} /process/0.11.10: - resolution: - { - integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==, - } - engines: {node: ">= 0.6.0"} + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} dev: false /progress/2.0.3: - resolution: - { - integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==, - } - engines: {node: ">=0.4.0"} + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} dev: false /promise/7.3.1: - resolution: - { - integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==, - } + resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==} dependencies: asap: 2.0.6 dev: true /prompts/2.4.2: - resolution: - { - integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==, - } - engines: {node: ">= 6"} + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} dependencies: kleur: 3.0.3 sisteransi: 1.0.5 /prop-types/15.8.1: - resolution: - { - integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==, - } + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 react-is: 16.13.1 /proxy-addr/2.0.7: - resolution: - { - integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==, - } - engines: {node: ">= 0.10"} + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} dependencies: forwarded: 0.2.0 ipaddr.js: 1.9.1 dev: true /proxy-from-env/1.1.0: - resolution: - { - integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==, - } + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} dev: true /pseudomap/1.0.2: - resolution: - { - integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==, - } + resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} dev: false /psl/1.8.0: - resolution: - { - integrity: sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==, - } + resolution: {integrity: sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==} /pug-attrs/3.0.0: - resolution: - { - integrity: sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==, - } + resolution: {integrity: sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==} dependencies: constantinople: 4.0.1 js-stringify: 1.0.2 @@ -18080,10 +14452,7 @@ packages: dev: true /pug-code-gen/3.0.2: - resolution: - { - integrity: sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==, - } + resolution: {integrity: sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==} dependencies: constantinople: 4.0.1 doctypes: 1.1.0 @@ -18096,30 +14465,21 @@ packages: dev: true /pug-error/2.0.0: - resolution: - { - integrity: sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==, - } + resolution: {integrity: sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==} dev: true /pug-filters/4.0.0: - resolution: - { - integrity: sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==, - } + resolution: {integrity: sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==} dependencies: constantinople: 4.0.1 jstransformer: 1.0.0 pug-error: 2.0.0 pug-walk: 2.0.0 - resolve: 1.22.0 + resolve: 1.22.2 dev: true /pug-lexer/5.0.1: - resolution: - { - integrity: sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==, - } + resolution: {integrity: sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==} dependencies: character-parser: 2.2.0 is-expression: 4.0.0 @@ -18127,63 +14487,42 @@ packages: dev: true /pug-linker/4.0.0: - resolution: - { - integrity: sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==, - } + resolution: {integrity: sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==} dependencies: pug-error: 2.0.0 pug-walk: 2.0.0 dev: true /pug-load/3.0.0: - resolution: - { - integrity: sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==, - } + resolution: {integrity: sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==} dependencies: object-assign: 4.1.1 pug-walk: 2.0.0 dev: true /pug-parser/6.0.0: - resolution: - { - integrity: sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==, - } + resolution: {integrity: sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==} dependencies: pug-error: 2.0.0 token-stream: 1.0.0 dev: true /pug-runtime/3.0.1: - resolution: - { - integrity: sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==, - } + resolution: {integrity: sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==} dev: true /pug-strip-comments/2.0.0: - resolution: - { - integrity: sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==, - } + resolution: {integrity: sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==} dependencies: pug-error: 2.0.0 dev: true /pug-walk/2.0.0: - resolution: - { - integrity: sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==, - } + resolution: {integrity: sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==} dev: true /pug/3.0.2: - resolution: - { - integrity: sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==, - } + resolution: {integrity: sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==} dependencies: pug-code-gen: 3.0.2 pug-filters: 4.0.0 @@ -18196,105 +14535,66 @@ packages: dev: true /pump/3.0.0: - resolution: - { - integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==, - } + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} dependencies: end-of-stream: 1.4.4 once: 1.4.0 /punycode/1.3.2: - resolution: - { - integrity: sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==, - } + resolution: {integrity: sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==} dev: false /punycode/2.1.1: - resolution: - { - integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} + engines: {node: '>=6'} /qs/6.9.7: - resolution: - { - integrity: sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==, - } - engines: {node: ">=0.6"} + resolution: {integrity: sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==} + engines: {node: '>=0.6'} dev: true /querystring/0.2.0: - resolution: - { - integrity: sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==, - } - engines: {node: ">=0.4.x"} + resolution: {integrity: sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==} + engines: {node: '>=0.4.x'} deprecated: The querystring API is considered Legacy. new code should use the URLSearchParams API instead. dev: false /querystringify/2.2.0: - resolution: - { - integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==, - } + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} /queue-microtask/1.2.3: - resolution: - { - integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, - } + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} /quick-lru/4.0.1: - resolution: - { - integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} dev: false /quick-lru/5.1.1: - resolution: - { - integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} dev: false /railroad-diagrams/1.0.0: - resolution: - { - integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==, - } + resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==} dev: true /randexp/0.4.6: - resolution: - { - integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==, - } - engines: {node: ">=0.12"} + resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==} + engines: {node: '>=0.12'} dependencies: discontinuous-range: 1.0.0 ret: 0.1.15 dev: true /range-parser/1.2.1: - resolution: - { - integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==, - } - engines: {node: ">= 0.6"} + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} dev: true /raw-body/2.4.3: - resolution: - { - integrity: sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==, - } - engines: {node: ">= 0.8"} + resolution: {integrity: sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==} + engines: {node: '>= 0.8'} dependencies: bytes: 3.1.2 http-errors: 1.8.1 @@ -18303,10 +14603,7 @@ packages: dev: true /rc/1.2.8: - resolution: - { - integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==, - } + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true dependencies: deep-extend: 0.6.0 @@ -18316,10 +14613,7 @@ packages: dev: false /react-devtools-core/4.25.0: - resolution: - { - integrity: sha512-iewRrnu0ZnmfL+jJayKphXj04CFh6i3ezVnpCtcnZbTPSQgN09XqHAzXbKbqNDl7aTg9QLNkQRP6M3DvdrinWA==, - } + resolution: {integrity: sha512-iewRrnu0ZnmfL+jJayKphXj04CFh6i3ezVnpCtcnZbTPSQgN09XqHAzXbKbqNDl7aTg9QLNkQRP6M3DvdrinWA==} dependencies: shell-quote: 1.7.3 ws: 7.5.8 @@ -18329,10 +14623,7 @@ packages: dev: false /react-dom/18.2.0_react@18.2.0: - resolution: - { - integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==, - } + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} peerDependencies: react: ^18.2.0 dependencies: @@ -18341,24 +14632,18 @@ packages: scheduler: 0.23.0 /react-error-boundary/3.1.4_react@18.2.0: - resolution: - { - integrity: sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA==, - } - engines: {node: ">=10", npm: ">=6"} + resolution: {integrity: sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA==} + engines: {node: '>=10', npm: '>=6'} peerDependencies: - react: ">=16.13.1" + react: '>=16.13.1' dependencies: - "@babel/runtime": 7.18.3 + '@babel/runtime': 7.18.3 react: 18.2.0 dev: true /react-hook-form/7.39.1_react@18.2.0: - resolution: - { - integrity: sha512-MiF9PCILN5KulhSGbnjohMiTOrB47GerDTichMNP0y2cPUu1GTRFqbunOxCE9N1499YTLMV/ne4gFzqCp1rxrQ==, - } - engines: {node: ">=12.22.0"} + resolution: {integrity: sha512-MiF9PCILN5KulhSGbnjohMiTOrB47GerDTichMNP0y2cPUu1GTRFqbunOxCE9N1499YTLMV/ne4gFzqCp1rxrQ==} + engines: {node: '>=12.22.0'} peerDependencies: react: ^16.8.0 || ^17 || ^18 dependencies: @@ -18366,30 +14651,18 @@ packages: dev: false /react-is/16.13.1: - resolution: - { - integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==, - } + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} /react-is/17.0.2: - resolution: - { - integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==, - } + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} dev: true /react-is/18.2.0: - resolution: - { - integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==, - } + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} /react-reconciler/0.26.2_react@18.2.0: - resolution: - { - integrity: sha512-nK6kgY28HwrMNwDnMui3dvm3rCFjZrcGiuwLc5COUipBK5hWHLOxMJhSnSomirqWwjPBJKV1QcbkI0VJr7Gl1Q==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-nK6kgY28HwrMNwDnMui3dvm3rCFjZrcGiuwLc5COUipBK5hWHLOxMJhSnSomirqWwjPBJKV1QcbkI0VJr7Gl1Q==} + engines: {node: '>=0.10.0'} peerDependencies: react: ^17.0.2 dependencies: @@ -18400,36 +14673,30 @@ packages: dev: false /react-refresh/0.11.0: - resolution: - { - integrity: sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==} + engines: {node: '>=0.10.0'} dev: true /react-refresh/0.14.0: - resolution: - { - integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} + engines: {node: '>=0.10.0'} dev: true /react/18.2.0: - resolution: - { - integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + engines: {node: '>=0.10.0'} dependencies: loose-envify: 1.4.0 + /read-cache/1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + dependencies: + pify: 2.3.0 + dev: false + /read-pkg-up/7.0.1: - resolution: - { - integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} dependencies: find-up: 4.1.0 read-pkg: 5.2.0 @@ -18437,24 +14704,18 @@ packages: dev: false /read-pkg/5.2.0: - resolution: - { - integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} dependencies: - "@types/normalize-package-data": 2.4.1 + '@types/normalize-package-data': 2.4.1 normalize-package-data: 2.5.0 parse-json: 5.2.0 type-fest: 0.6.0 dev: false /read-yaml-file/1.1.0: - resolution: - { - integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} + engines: {node: '>=6'} dependencies: graceful-fs: 4.2.10 js-yaml: 3.14.1 @@ -18463,10 +14724,7 @@ packages: dev: false /readable-stream/2.3.7: - resolution: - { - integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==, - } + resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==} dependencies: core-util-is: 1.0.3 inherits: 2.0.4 @@ -18477,11 +14735,8 @@ packages: util-deprecate: 1.0.2 /readable-stream/3.6.0: - resolution: - { - integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==, - } - engines: {node: ">= 6"} + resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==} + engines: {node: '>= 6'} dependencies: inherits: 2.0.4 string_decoder: 1.3.0 @@ -18489,20 +14744,14 @@ packages: dev: false /readdirp/3.6.0: - resolution: - { - integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, - } - engines: {node: ">=8.10.0"} + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 /recast/0.20.5: - resolution: - { - integrity: sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ==, - } - engines: {node: ">= 4"} + resolution: {integrity: sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ==} + engines: {node: '>= 4'} dependencies: ast-types: 0.14.2 esprima: 4.0.1 @@ -18510,12 +14759,9 @@ packages: tslib: 2.4.0 /recrawl-sync/2.2.3: - resolution: - { - integrity: sha512-vSaTR9t+cpxlskkdUFrsEpnf67kSmPk66yAGT1fZPrDudxQjoMzPgQhSMImQ0pAw5k0NPirefQfhopSjhdUtpQ==, - } + resolution: {integrity: sha512-vSaTR9t+cpxlskkdUFrsEpnf67kSmPk66yAGT1fZPrDudxQjoMzPgQhSMImQ0pAw5k0NPirefQfhopSjhdUtpQ==} dependencies: - "@cush/relative": 1.0.0 + '@cush/relative': 1.0.0 glob-regex: 0.3.2 slash: 3.0.0 sucrase: 3.29.0 @@ -18523,86 +14769,56 @@ packages: dev: true /redent/3.0.0: - resolution: - { - integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} dependencies: indent-string: 4.0.0 strip-indent: 3.0.0 /regenerate-unicode-properties/10.0.1: - resolution: - { - integrity: sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==} + engines: {node: '>=4'} dependencies: regenerate: 1.4.2 /regenerate/1.4.2: - resolution: - { - integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==, - } + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} /regenerator-runtime/0.13.9: - resolution: - { - integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==, - } + resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==} /regenerator-transform/0.15.0: - resolution: - { - integrity: sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==, - } + resolution: {integrity: sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==} dependencies: - "@babel/runtime": 7.18.3 + '@babel/runtime': 7.18.3 /regex-not/1.0.2: - resolution: - { - integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} + engines: {node: '>=0.10.0'} dependencies: extend-shallow: 3.0.2 safe-regex: 1.1.0 dev: false /regexp-to-ast/0.5.0: - resolution: - { - integrity: sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw==, - } + resolution: {integrity: sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw==} dev: false /regexp.prototype.flags/1.4.3: - resolution: - { - integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==, - } - engines: {node: ">= 0.4"} + resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.1.4 functions-have-names: 1.2.3 /regexpp/3.2.0: - resolution: - { - integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} + engines: {node: '>=8'} /regexpu-core/5.0.1: - resolution: - { - integrity: sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==} + engines: {node: '>=4'} dependencies: regenerate: 1.4.2 regenerate-unicode-properties: 10.0.1 @@ -18612,152 +14828,95 @@ packages: unicode-match-property-value-ecmascript: 2.0.0 /registry-auth-token/4.2.1: - resolution: - { - integrity: sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==, - } - engines: {node: ">=6.0.0"} + resolution: {integrity: sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==} + engines: {node: '>=6.0.0'} dependencies: rc: 1.2.8 dev: false /registry-url/5.1.0: - resolution: - { - integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==} + engines: {node: '>=8'} dependencies: rc: 1.2.8 dev: false /regjsgen/0.6.0: - resolution: - { - integrity: sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==, - } + resolution: {integrity: sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==} /regjsparser/0.8.4: - resolution: - { - integrity: sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==, - } + resolution: {integrity: sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==} hasBin: true dependencies: jsesc: 0.5.0 /remove-trailing-separator/1.1.0: - resolution: - { - integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==, - } + resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} dev: false /repeat-element/1.1.4: - resolution: - { - integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} + engines: {node: '>=0.10.0'} dev: false /repeat-string/1.6.1: - resolution: - { - integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==, - } - engines: {node: ">=0.10"} + resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} + engines: {node: '>=0.10'} dev: false /replace-ext/1.0.1: - resolution: - { - integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==, - } - engines: {node: ">= 0.10"} + resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==} + engines: {node: '>= 0.10'} dev: false /require-directory/2.1.1: - resolution: - { - integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} /require-main-filename/2.0.0: - resolution: - { - integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==, - } + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} dev: false /requires-port/1.0.0: - resolution: - { - integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==, - } + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} /resolve-alpn/1.2.1: - resolution: - { - integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==, - } + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} dev: false /resolve-cwd/3.0.0: - resolution: - { - integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} dependencies: resolve-from: 5.0.0 /resolve-dir/1.0.1: - resolution: - { - integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} + engines: {node: '>=0.10.0'} dependencies: expand-tilde: 2.0.2 global-modules: 1.0.0 dev: false /resolve-from/4.0.0: - resolution: - { - integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} /resolve-from/5.0.0: - resolution: - { - integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} /resolve-url/0.2.1: - resolution: - { - integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==, - } + resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} deprecated: https://github.com/lydell/resolve-url#deprecated dev: false /resolve.exports/1.1.0: - resolution: - { - integrity: sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==} + engines: {node: '>=10'} /resolve/1.22.0: - resolution: - { - integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==, - } + resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==} hasBin: true dependencies: is-core-module: 2.11.0 @@ -18766,10 +14925,15 @@ packages: dev: true /resolve/1.22.1: - resolution: - { - integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==, - } + resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} + hasBin: true + dependencies: + is-core-module: 2.11.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + /resolve/1.22.2: + resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} hasBin: true dependencies: is-core-module: 2.11.0 @@ -18777,87 +14941,57 @@ packages: supports-preserve-symlinks-flag: 1.0.0 /resolve/2.0.0-next.3: - resolution: - { - integrity: sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==, - } + resolution: {integrity: sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==} dependencies: is-core-module: 2.11.0 path-parse: 1.0.7 /responselike/1.0.2: - resolution: - { - integrity: sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==, - } + resolution: {integrity: sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==} dependencies: lowercase-keys: 1.0.1 dev: false /responselike/2.0.0: - resolution: - { - integrity: sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==, - } + resolution: {integrity: sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==} dependencies: lowercase-keys: 2.0.0 dev: false /restore-cursor/3.1.0: - resolution: - { - integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} dependencies: onetime: 5.1.2 signal-exit: 3.0.7 /ret/0.1.15: - resolution: - { - integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==, - } - engines: {node: ">=0.12"} + resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} + engines: {node: '>=0.12'} /reusify/1.0.4: - resolution: - { - integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, - } - engines: {iojs: ">=1.0.0", node: ">=0.10.0"} + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} /rfdc/1.3.0: - resolution: - { - integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==, - } + resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} /rimraf/2.6.3: - resolution: - { - integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==, - } + resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} hasBin: true dependencies: glob: 7.2.0 dev: false /rimraf/3.0.2: - resolution: - { - integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, - } + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} hasBin: true dependencies: glob: 7.2.0 /roarr/2.15.4: - resolution: - { - integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==, - } - engines: {node: ">=8.0"} + resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} + engines: {node: '>=8.0'} dependencies: boolean: 3.2.0 detect-node: 2.1.0 @@ -18868,11 +15002,8 @@ packages: dev: false /rollup-plugin-dts/4.2.2_rpktusa5o437llwxsnrngyem64: - resolution: - { - integrity: sha512-A3g6Rogyko/PXeKoUlkjxkP++8UDVpgA7C+Tdl77Xj4fgEaIjPSnxRmR53EzvoYy97VMVwLAOcWJudaVAuxneQ==, - } - engines: {node: ">=v12.22.11"} + resolution: {integrity: sha512-A3g6Rogyko/PXeKoUlkjxkP++8UDVpgA7C+Tdl77Xj4fgEaIjPSnxRmR53EzvoYy97VMVwLAOcWJudaVAuxneQ==} + engines: {node: '>=v12.22.11'} peerDependencies: rollup: ^2.55 typescript: ^4.1 @@ -18881,21 +15012,18 @@ packages: rollup: 2.77.2 typescript: 4.8.4 optionalDependencies: - "@babel/code-frame": 7.18.6 + '@babel/code-frame': 7.18.6 dev: true /rollup-plugin-esbuild/4.9.1_ecpsl2p7zl5puhr4xxlpah6uzm: - resolution: - { - integrity: sha512-qn/x7Wz9p3Xnva99qcb+nopH0d2VJwVnsxJTGEg+Sh2Z3tqQl33MhOwzekVo1YTKgv+yAmosjcBRJygMfGrtLw==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-qn/x7Wz9p3Xnva99qcb+nopH0d2VJwVnsxJTGEg+Sh2Z3tqQl33MhOwzekVo1YTKgv+yAmosjcBRJygMfGrtLw==} + engines: {node: '>=12'} peerDependencies: - esbuild: ">=0.10.1" + esbuild: '>=0.10.1' rollup: ^1.20.0 || ^2.0.0 dependencies: - "@rollup/pluginutils": 4.2.1 - debug: 4.3.4 + '@rollup/pluginutils': 4.2.1 + debug: 4.3.3 es-module-lexer: 0.9.3 esbuild: 0.14.51 joycon: 3.1.1 @@ -18906,17 +15034,14 @@ packages: dev: true /rollup-plugin-esbuild/4.9.1_omx4rqyluc7ex52umwalnnwm7m: - resolution: - { - integrity: sha512-qn/x7Wz9p3Xnva99qcb+nopH0d2VJwVnsxJTGEg+Sh2Z3tqQl33MhOwzekVo1YTKgv+yAmosjcBRJygMfGrtLw==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-qn/x7Wz9p3Xnva99qcb+nopH0d2VJwVnsxJTGEg+Sh2Z3tqQl33MhOwzekVo1YTKgv+yAmosjcBRJygMfGrtLw==} + engines: {node: '>=12'} peerDependencies: - esbuild: ">=0.10.1" + esbuild: '>=0.10.1' rollup: ^1.20.0 || ^2.0.0 dependencies: - "@rollup/pluginutils": 4.2.1 - debug: 4.3.4_supports-color@8.1.1 + '@rollup/pluginutils': 4.2.1 + debug: 4.3.3_supports-color@8.1.1 es-module-lexer: 0.9.3 esbuild: 0.14.51 joycon: 3.1.1 @@ -18927,146 +15052,95 @@ packages: dev: true /rollup/2.77.2: - resolution: - { - integrity: sha512-m/4YzYgLcpMQbxX3NmAqDvwLATZzxt8bIegO78FZLl+lAgKJBd1DRAOeEiZcKOIOPjxE6ewHWHNgGEalFXuz1g==, - } - engines: {node: ">=10.0.0"} + resolution: {integrity: sha512-m/4YzYgLcpMQbxX3NmAqDvwLATZzxt8bIegO78FZLl+lAgKJBd1DRAOeEiZcKOIOPjxE6ewHWHNgGEalFXuz1g==} + engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: fsevents: 2.3.2 dev: true /rollup/2.79.1: - resolution: - { - integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==, - } - engines: {node: ">=10.0.0"} + resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} + engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: fsevents: 2.3.2 /run-applescript/3.2.0: - resolution: - { - integrity: sha512-Ep0RsvAjnRcBX1p5vogbaBdAGu/8j/ewpvGqnQYunnLd9SM0vWcPJewPKNnWFggf0hF0pwIgwV5XK7qQ7UZ8Qg==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-Ep0RsvAjnRcBX1p5vogbaBdAGu/8j/ewpvGqnQYunnLd9SM0vWcPJewPKNnWFggf0hF0pwIgwV5XK7qQ7UZ8Qg==} + engines: {node: '>=4'} dependencies: execa: 0.10.0 dev: true /run-parallel/1.2.0: - resolution: - { - integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, - } + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 /rxjs/7.5.5: - resolution: - { - integrity: sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==, - } + resolution: {integrity: sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==} dependencies: tslib: 2.4.0 /safe-buffer/5.1.2: - resolution: - { - integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==, - } + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} /safe-buffer/5.2.1: - resolution: - { - integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, - } + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} /safe-regex/1.1.0: - resolution: - { - integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==, - } + resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} dependencies: ret: 0.1.15 dev: false /safer-buffer/2.1.2: - resolution: - { - integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, - } + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} /saxes/5.0.1: - resolution: - { - integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==} + engines: {node: '>=10'} dependencies: xmlchars: 2.2.0 /saxes/6.0.0: - resolution: - { - integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==, - } - engines: {node: ">=v12.22.7"} + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} dependencies: xmlchars: 2.2.0 /scheduler/0.20.2: - resolution: - { - integrity: sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==, - } + resolution: {integrity: sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==} dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 dev: false /scheduler/0.23.0: - resolution: - { - integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==, - } + resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} dependencies: loose-envify: 1.4.0 /scule/0.2.1: - resolution: - { - integrity: sha512-M9gnWtn3J0W+UhJOHmBxBTwv8mZCan5i1Himp60t6vvZcor0wr+IM0URKmIglsWJ7bRujNAVVN77fp+uZaWoKg==, - } + resolution: {integrity: sha512-M9gnWtn3J0W+UhJOHmBxBTwv8mZCan5i1Himp60t6vvZcor0wr+IM0URKmIglsWJ7bRujNAVVN77fp+uZaWoKg==} dev: true /secure-password/4.0.0: - resolution: - { - integrity: sha512-B268T/tx+hq7q85KH6gonEqK/lhrLhNtzYzqojuMtBPVFBtwiIwxqF+4yr9POsJu5cIxbJyM66eYfXZiPZUXRA==, - } + resolution: {integrity: sha512-B268T/tx+hq7q85KH6gonEqK/lhrLhNtzYzqojuMtBPVFBtwiIwxqF+4yr9POsJu5cIxbJyM66eYfXZiPZUXRA==} dependencies: nanoassert: 1.1.0 sodium-native: 3.3.0 /selderee/0.6.0: - resolution: - { - integrity: sha512-ibqWGV5aChDvfVdqNYuaJP/HnVBhlRGSRrlbttmlMpHcLuTqqbMH36QkSs9GEgj5M88JDYLI8eyP94JaQ8xRlg==, - } + resolution: {integrity: sha512-ibqWGV5aChDvfVdqNYuaJP/HnVBhlRGSRrlbttmlMpHcLuTqqbMH36QkSs9GEgj5M88JDYLI8eyP94JaQ8xRlg==} dependencies: parseley: 0.7.0 dev: true /selenium-webdriver/4.1.1: - resolution: - { - integrity: sha512-Fr9e9LC6zvD6/j7NO8M1M/NVxFX67abHcxDJoP5w2KN/Xb1SyYLjMVPGgD14U2TOiKe4XKHf42OmFw9g2JgCBQ==, - } - engines: {node: ">= 10.15.0"} + resolution: {integrity: sha512-Fr9e9LC6zvD6/j7NO8M1M/NVxFX67abHcxDJoP5w2KN/Xb1SyYLjMVPGgD14U2TOiKe4XKHf42OmFw9g2JgCBQ==} + engines: {node: '>= 10.15.0'} dependencies: jszip: 3.10.0 tmp: 0.2.1 @@ -19077,69 +15151,45 @@ packages: dev: true /sembear/0.5.2: - resolution: - { - integrity: sha512-Ij1vCAdFgWABd7zTg50Xw1/p0JgESNxuLlneEAsmBrKishA06ulTTL/SHGmNy2Zud7+rKrHTKNI6moJsn1ppAQ==, - } + resolution: {integrity: sha512-Ij1vCAdFgWABd7zTg50Xw1/p0JgESNxuLlneEAsmBrKishA06ulTTL/SHGmNy2Zud7+rKrHTKNI6moJsn1ppAQ==} dependencies: - "@types/semver": 6.2.3 + '@types/semver': 6.2.3 semver: 6.3.0 dev: false /semver-compare/1.0.0: - resolution: - { - integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==, - } + resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} dev: false /semver/5.7.1: - resolution: - { - integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==, - } + resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} hasBin: true /semver/6.3.0: - resolution: - { - integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==, - } + resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} hasBin: true /semver/7.0.0: - resolution: - { - integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==, - } + resolution: {integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==} hasBin: true /semver/7.3.7: - resolution: - { - integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==} + engines: {node: '>=10'} hasBin: true dependencies: lru-cache: 6.0.0 /semver/7.3.8: - resolution: - { - integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} + engines: {node: '>=10'} hasBin: true dependencies: lru-cache: 6.0.0 /send/0.17.2: - resolution: - { - integrity: sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==, - } - engines: {node: ">= 0.8.0"} + resolution: {integrity: sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==} + engines: {node: '>= 0.8.0'} dependencies: debug: 2.6.9 depd: 1.1.2 @@ -19159,11 +15209,8 @@ packages: dev: true /send/0.17.2_supports-color@8.1.1: - resolution: - { - integrity: sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==, - } - engines: {node: ">= 0.8.0"} + resolution: {integrity: sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==} + engines: {node: '>= 0.8.0'} dependencies: debug: 2.6.9_supports-color@8.1.1 depd: 1.1.2 @@ -19183,21 +15230,15 @@ packages: dev: true /serialize-error/7.0.1: - resolution: - { - integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} + engines: {node: '>=10'} dependencies: type-fest: 0.13.1 dev: false /serve-static/1.14.2: - resolution: - { - integrity: sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==, - } - engines: {node: ">= 0.8.0"} + resolution: {integrity: sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==} + engines: {node: '>= 0.8.0'} dependencies: encodeurl: 1.0.2 escape-html: 1.0.3 @@ -19208,11 +15249,8 @@ packages: dev: true /serve-static/1.14.2_supports-color@8.1.1: - resolution: - { - integrity: sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==, - } - engines: {node: ">= 0.8.0"} + resolution: {integrity: sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==} + engines: {node: '>= 0.8.0'} dependencies: encodeurl: 1.0.2 escape-html: 1.0.3 @@ -19223,18 +15261,12 @@ packages: dev: true /set-blocking/2.0.0: - resolution: - { - integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==, - } + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} dev: false /set-value/2.0.1: - resolution: - { - integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} + engines: {node: '>=0.10.0'} dependencies: extend-shallow: 2.0.1 is-extendable: 0.1.1 @@ -19243,167 +15275,107 @@ packages: dev: false /setimmediate/1.0.5: - resolution: - { - integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==, - } + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} dev: true /setprototypeof/1.2.0: - resolution: - { - integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==, - } + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} dev: true /shallow-clone/3.0.1: - resolution: - { - integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} + engines: {node: '>=8'} dependencies: kind-of: 6.0.3 dev: false /shebang-command/1.2.0: - resolution: - { - integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + engines: {node: '>=0.10.0'} dependencies: shebang-regex: 1.0.0 /shebang-command/2.0.0: - resolution: - { - integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 /shebang-regex/1.0.0: - resolution: - { - integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + engines: {node: '>=0.10.0'} /shebang-regex/3.0.0: - resolution: - { - integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} /shell-quote/1.7.3: - resolution: - { - integrity: sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==, - } + resolution: {integrity: sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==} /side-channel/1.0.4: - resolution: - { - integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==, - } + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: call-bind: 1.0.2 get-intrinsic: 1.1.1 object-inspect: 1.12.2 /signal-exit/3.0.7: - resolution: - { - integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, - } + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} /simple-wcswidth/1.0.1: - resolution: - { - integrity: sha512-xMO/8eNREtaROt7tJvWJqHBDTMFN4eiQ5I4JRMuilwfnFcV5W9u7RUkueNkdw0jPqGMX36iCywelS5yilTuOxg==, - } + resolution: {integrity: sha512-xMO/8eNREtaROt7tJvWJqHBDTMFN4eiQ5I4JRMuilwfnFcV5W9u7RUkueNkdw0jPqGMX36iCywelS5yilTuOxg==} dev: false /sirv/1.0.19: - resolution: - { - integrity: sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==, - } - engines: {node: ">= 10"} + resolution: {integrity: sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==} + engines: {node: '>= 10'} dependencies: - "@polka/url": 1.0.0-next.21 + '@polka/url': 1.0.0-next.21 mrmime: 1.0.1 totalist: 1.1.0 dev: true /sisteransi/1.0.5: - resolution: - { - integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==, - } + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} /slash/2.0.0: - resolution: - { - integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==} + engines: {node: '>=6'} dev: false /slash/3.0.0: - resolution: - { - integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} /slash/4.0.0: - resolution: - { - integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} /slice-ansi/3.0.0: - resolution: - { - integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} + engines: {node: '>=8'} dependencies: ansi-styles: 4.3.0 astral-regex: 2.0.0 is-fullwidth-code-point: 3.0.0 /slice-ansi/4.0.0: - resolution: - { - integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 astral-regex: 2.0.0 is-fullwidth-code-point: 3.0.0 /slice-ansi/5.0.0: - resolution: - { - integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} dependencies: ansi-styles: 6.1.0 is-fullwidth-code-point: 4.0.0 /smartwrap/1.2.5: - resolution: - { - integrity: sha512-bzWRwHwu0RnWjwU7dFy7tF68pDAx/zMSu3g7xr9Nx5J0iSImYInglwEVExyHLxXljy6PWMjkSAbwF7t2mPnRmg==, - } + resolution: {integrity: sha512-bzWRwHwu0RnWjwU7dFy7tF68pDAx/zMSu3g7xr9Nx5J0iSImYInglwEVExyHLxXljy6PWMjkSAbwF7t2mPnRmg==} deprecated: Backported compatibility to node > 6 hasBin: true dependencies: @@ -19415,11 +15387,8 @@ packages: dev: false /snapdragon-node/2.1.1: - resolution: - { - integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} + engines: {node: '>=0.10.0'} dependencies: define-property: 1.0.0 isobject: 3.0.1 @@ -19427,21 +15396,15 @@ packages: dev: false /snapdragon-util/3.0.1: - resolution: - { - integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} + engines: {node: '>=0.10.0'} dependencies: kind-of: 3.2.2 dev: false /snapdragon/0.8.2: - resolution: - { - integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} + engines: {node: '>=0.10.0'} dependencies: base: 0.11.2 debug: 2.6.9 @@ -19456,11 +15419,8 @@ packages: dev: false /snapdragon/0.8.2_supports-color@8.1.1: - resolution: - { - integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} + engines: {node: '>=0.10.0'} dependencies: base: 0.11.2 debug: 2.6.9_supports-color@8.1.1 @@ -19475,26 +15435,17 @@ packages: dev: false /sodium-native/3.3.0: - resolution: - { - integrity: sha512-rg6lCDM/qa3p07YGqaVD+ciAbUqm6SoO4xmlcfkbU5r1zIGrguXztLiEtaLYTV5U6k8KSIUFmnU3yQUSKmf6DA==, - } + resolution: {integrity: sha512-rg6lCDM/qa3p07YGqaVD+ciAbUqm6SoO4xmlcfkbU5r1zIGrguXztLiEtaLYTV5U6k8KSIUFmnU3yQUSKmf6DA==} requiresBuild: true dependencies: node-gyp-build: 4.4.0 /source-map-js/1.0.2: - resolution: - { - integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} /source-map-resolve/0.5.3: - resolution: - { - integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==, - } + resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} deprecated: See https://github.com/lydell/source-map-resolve#deprecated dependencies: atob: 2.1.2 @@ -19505,10 +15456,7 @@ packages: dev: false /source-map-resolve/0.6.0: - resolution: - { - integrity: sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==, - } + resolution: {integrity: sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==} deprecated: See https://github.com/lydell/source-map-resolve#deprecated dependencies: atob: 2.1.2 @@ -19516,217 +15464,142 @@ packages: dev: true /source-map-support/0.5.13: - resolution: - { - integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==, - } + resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} dependencies: buffer-from: 1.1.2 source-map: 0.6.1 /source-map-support/0.5.21: - resolution: - { - integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==, - } + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} dependencies: buffer-from: 1.1.2 source-map: 0.6.1 dev: false /source-map-url/0.4.1: - resolution: - { - integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==, - } + resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} deprecated: See https://github.com/lydell/source-map-url#deprecated dev: false /source-map/0.5.7: - resolution: - { - integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} /source-map/0.6.1: - resolution: - { - integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} requiresBuild: true /sourcemap-codec/1.4.8: - resolution: - { - integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==, - } + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} dev: true /spawndamnit/2.0.0: - resolution: - { - integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==, - } + resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==} dependencies: cross-spawn: 5.1.0 signal-exit: 3.0.7 dev: false /spdx-correct/3.1.1: - resolution: - { - integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==, - } + resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} dependencies: spdx-expression-parse: 3.0.1 spdx-license-ids: 3.0.11 dev: false /spdx-exceptions/2.3.0: - resolution: - { - integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==, - } + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} dev: false /spdx-expression-parse/3.0.1: - resolution: - { - integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==, - } + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: spdx-exceptions: 2.3.0 spdx-license-ids: 3.0.11 dev: false /spdx-license-ids/3.0.11: - resolution: - { - integrity: sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==, - } + resolution: {integrity: sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==} dev: false /split-string/3.1.0: - resolution: - { - integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} + engines: {node: '>=0.10.0'} dependencies: extend-shallow: 3.0.2 dev: false /sprintf-js/1.0.3: - resolution: - { - integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==, - } + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} /sprintf-js/1.1.2: - resolution: - { - integrity: sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==, - } + resolution: {integrity: sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==} dev: false /stack-utils/2.0.5: - resolution: - { - integrity: sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==} + engines: {node: '>=10'} dependencies: escape-string-regexp: 2.0.0 /static-extend/0.1.2: - resolution: - { - integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} + engines: {node: '>=0.10.0'} dependencies: define-property: 0.2.5 object-copy: 0.1.0 dev: false /statuses/1.5.0: - resolution: - { - integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==, - } - engines: {node: ">= 0.6"} + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} dev: true /steno/2.1.0: - resolution: - { - integrity: sha512-mauOsiaqTNGFkWqIfwcm3y/fq+qKKaIWf1vf3ocOuTdco9XoHCO2AGF1gFYXuZFSWuP38Q8LBHBGJv2KnJSXyA==, - } + resolution: {integrity: sha512-mauOsiaqTNGFkWqIfwcm3y/fq+qKKaIWf1vf3ocOuTdco9XoHCO2AGF1gFYXuZFSWuP38Q8LBHBGJv2KnJSXyA==} engines: {node: ^14.13.1 || >=16.0.0} dev: false /stream-transform/2.1.3: - resolution: - { - integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==, - } + resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==} dependencies: mixme: 0.5.4 dev: false /streamsearch/1.1.0: - resolution: - { - integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==, - } - engines: {node: ">=10.0.0"} + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} + engines: {node: '>=10.0.0'} /string-argv/0.3.1: - resolution: - { - integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==, - } - engines: {node: ">=0.6.19"} + resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==} + engines: {node: '>=0.6.19'} /string-length/4.0.2: - resolution: - { - integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} + engines: {node: '>=10'} dependencies: char-regex: 1.0.2 strip-ansi: 6.0.1 /string-width/4.2.3: - resolution: - { - integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 /string-width/5.1.2: - resolution: - { - integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 strip-ansi: 7.0.1 /string.prototype.matchall/4.0.7: - resolution: - { - integrity: sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==, - } + resolution: {integrity: sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==} dependencies: call-bind: 1.0.2 define-properties: 1.1.4 @@ -19738,170 +15611,113 @@ packages: side-channel: 1.0.4 /string.prototype.trimend/1.0.5: - resolution: - { - integrity: sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==, - } + resolution: {integrity: sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==} dependencies: call-bind: 1.0.2 define-properties: 1.1.4 es-abstract: 1.20.1 /string.prototype.trimstart/1.0.5: - resolution: - { - integrity: sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==, - } + resolution: {integrity: sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==} dependencies: call-bind: 1.0.2 define-properties: 1.1.4 es-abstract: 1.20.1 /string_decoder/1.1.1: - resolution: - { - integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==, - } + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} dependencies: safe-buffer: 5.1.2 /string_decoder/1.3.0: - resolution: - { - integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==, - } + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} dependencies: safe-buffer: 5.2.1 dev: false /strip-ansi/6.0.1: - resolution: - { - integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 /strip-ansi/7.0.1: - resolution: - { - integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==} + engines: {node: '>=12'} dependencies: ansi-regex: 6.0.1 /strip-bom-buf/1.0.0: - resolution: - { - integrity: sha512-1sUIL1jck0T1mhOLP2c696BIznzT525Lkub+n4jjMHjhjhoAQA6Ye659DxdlZBr0aLDMQoTxKIpnlqxgtwjsuQ==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-1sUIL1jck0T1mhOLP2c696BIznzT525Lkub+n4jjMHjhjhoAQA6Ye659DxdlZBr0aLDMQoTxKIpnlqxgtwjsuQ==} + engines: {node: '>=4'} dependencies: is-utf8: 0.2.1 dev: false /strip-bom-stream/2.0.0: - resolution: - { - integrity: sha512-yH0+mD8oahBZWnY43vxs4pSinn8SMKAdml/EOGBewoe1Y0Eitd0h2Mg3ZRiXruUW6L4P+lvZiEgbh0NgUGia1w==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-yH0+mD8oahBZWnY43vxs4pSinn8SMKAdml/EOGBewoe1Y0Eitd0h2Mg3ZRiXruUW6L4P+lvZiEgbh0NgUGia1w==} + engines: {node: '>=0.10.0'} dependencies: first-chunk-stream: 2.0.0 strip-bom: 2.0.0 dev: false /strip-bom/2.0.0: - resolution: - { - integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==} + engines: {node: '>=0.10.0'} dependencies: is-utf8: 0.2.1 dev: false /strip-bom/3.0.0: - resolution: - { - integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} /strip-bom/4.0.0: - resolution: - { - integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} /strip-eof/1.0.0: - resolution: - { - integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} + engines: {node: '>=0.10.0'} /strip-final-newline/2.0.0: - resolution: - { - integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} /strip-final-newline/3.0.0: - resolution: - { - integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} /strip-indent/3.0.0: - resolution: - { - integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} dependencies: min-indent: 1.0.1 /strip-json-comments/2.0.1: - resolution: - { - integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} dev: false /strip-json-comments/3.1.1: - resolution: - { - integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} /strip-literal/0.4.2: - resolution: - { - integrity: sha512-pv48ybn4iE1O9RLgCAN0iU4Xv7RlBTiit6DKmMiErbs9x1wH6vXBs45tWc0H5wUIF6TLTrKweqkmYF/iraQKNw==, - } + resolution: {integrity: sha512-pv48ybn4iE1O9RLgCAN0iU4Xv7RlBTiit6DKmMiErbs9x1wH6vXBs45tWc0H5wUIF6TLTrKweqkmYF/iraQKNw==} dependencies: acorn: 8.8.1 /styled-jsx/5.1.1: - resolution: - { - integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==, - } - engines: {node: ">= 12.0.0"} - peerDependencies: - "@babel/core": "*" - babel-plugin-macros: "*" - react: ">= 16.8.0 || 17.x.x || ^18.0.0-0" + resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' peerDependenciesMeta: - "@babel/core": + '@babel/core': optional: true babel-plugin-macros: optional: true @@ -19910,17 +15726,14 @@ packages: dev: false /styled-jsx/5.1.1_react@18.2.0: - resolution: - { - integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==, - } - engines: {node: ">= 12.0.0"} - peerDependencies: - "@babel/core": "*" - babel-plugin-macros: "*" - react: ">= 16.8.0 || 17.x.x || ^18.0.0-0" + resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' peerDependenciesMeta: - "@babel/core": + '@babel/core': optional: true babel-plugin-macros: optional: true @@ -19929,20 +15742,14 @@ packages: react: 18.2.0 /subarg/1.0.0: - resolution: - { - integrity: sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg==, - } + resolution: {integrity: sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg==} dependencies: minimist: 1.2.6 dev: true /sucrase/3.29.0: - resolution: - { - integrity: sha512-bZPAuGA5SdFHuzqIhTAqt9fvNEo9rESqXIG3oiKdF8K4UmkQxC4KlNL3lVyAErXp+mPvUqZ5l13qx6TrDIGf3A==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-bZPAuGA5SdFHuzqIhTAqt9fvNEo9rESqXIG3oiKdF8K4UmkQxC4KlNL3lVyAErXp+mPvUqZ5l13qx6TrDIGf3A==} + engines: {node: '>=8'} hasBin: true dependencies: commander: 4.1.1 @@ -19953,81 +15760,98 @@ packages: ts-interface-checker: 0.1.13 dev: true + /sucrase/3.32.0: + resolution: {integrity: sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==} + engines: {node: '>=8'} + hasBin: true + dependencies: + '@jridgewell/gen-mapping': 0.3.2 + commander: 4.1.1 + glob: 7.1.6 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.5 + ts-interface-checker: 0.1.13 + dev: false + /superjson/1.11.0: - resolution: - { - integrity: sha512-6PfAg1FKhqkwWvPb2uXhH4MkMttdc17eJ91+Aoz4s1XUEDZFmLfFx/xVA3wgkPxAGy5dpozgGdK6V/n20Wj9yg==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-6PfAg1FKhqkwWvPb2uXhH4MkMttdc17eJ91+Aoz4s1XUEDZFmLfFx/xVA3wgkPxAGy5dpozgGdK6V/n20Wj9yg==} + engines: {node: '>=10'} dependencies: copy-anything: 3.0.2 dev: false /supports-color/5.5.0: - resolution: - { - integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} dependencies: has-flag: 3.0.0 /supports-color/7.2.0: - resolution: - { - integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} dependencies: has-flag: 4.0.0 /supports-color/8.1.1: - resolution: - { - integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} dependencies: has-flag: 4.0.0 /supports-preserve-symlinks-flag/1.0.0: - resolution: - { - integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, - } - engines: {node: ">= 0.4"} + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} /symbol-tree/3.2.4: - resolution: - { - integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==, - } + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} /synckit/0.8.4: - resolution: - { - integrity: sha512-Dn2ZkzMdSX827QbowGbU/4yjWuvNaCoScLLoMo/yKbu+P4GBR6cRGKZH27k6a9bRzdqcyd1DE96pQtQ6uNkmyw==, - } + resolution: {integrity: sha512-Dn2ZkzMdSX827QbowGbU/4yjWuvNaCoScLLoMo/yKbu+P4GBR6cRGKZH27k6a9bRzdqcyd1DE96pQtQ6uNkmyw==} engines: {node: ^14.18.0 || >=16.0.0} dependencies: - "@pkgr/utils": 2.3.1 + '@pkgr/utils': 2.3.1 tslib: 2.4.0 - dev: true + + /tailwindcss/3.3.2: + resolution: {integrity: sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.5.3 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.2.12 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.18.2 + lilconfig: 2.1.0 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.0.0 + postcss: 8.4.23 + postcss-import: 15.1.0_postcss@8.4.23 + postcss-js: 4.0.1_postcss@8.4.23 + postcss-load-config: 4.0.1_postcss@8.4.23 + postcss-nested: 6.0.1_postcss@8.4.23 + postcss-selector-parser: 6.0.12 + postcss-value-parser: 4.2.0 + resolve: 1.22.2 + sucrase: 3.32.0 + transitivePeerDependencies: + - ts-node + dev: false /tapable/2.2.1: - resolution: - { - integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==, - } - engines: {node: ">=6"} - dev: true + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} /tar/6.1.11: - resolution: - { - integrity: sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==, - } - engines: {node: ">= 10"} + resolution: {integrity: sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==} + engines: {node: '>= 10'} dependencies: chownr: 2.0.0 fs-minipass: 2.1.0 @@ -20038,10 +15862,7 @@ packages: dev: false /tcp-port-used/1.0.2: - resolution: - { - integrity: sha512-l7ar8lLUD3XS1V2lfoJlCBaeoaWo/2xfYt81hM7VlvR4RrMVFqfmzfhLVk40hAb368uitje5gPtBRL1m/DGvLA==, - } + resolution: {integrity: sha512-l7ar8lLUD3XS1V2lfoJlCBaeoaWo/2xfYt81hM7VlvR4RrMVFqfmzfhLVk40hAb368uitje5gPtBRL1m/DGvLA==} dependencies: debug: 4.3.1 is2: 2.0.7 @@ -20050,206 +15871,131 @@ packages: dev: true /temp/0.8.4: - resolution: - { - integrity: sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==, - } - engines: {node: ">=6.0.0"} + resolution: {integrity: sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==} + engines: {node: '>=6.0.0'} dependencies: rimraf: 2.6.3 dev: false /term-size/2.2.1: - resolution: - { - integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} + engines: {node: '>=8'} dev: false /test-exclude/6.0.0: - resolution: - { - integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} dependencies: - "@istanbuljs/schema": 0.1.3 + '@istanbuljs/schema': 0.1.3 glob: 7.2.0 minimatch: 3.1.2 /test-listen/1.1.0: - resolution: - { - integrity: sha512-OyEVi981C1sb9NX1xayfgZls3p8QTDRwp06EcgxSgd1kktaENBW8dO15i8v/7Fi15j0IYQctJzk5J+hyEBId2w==, - } + resolution: {integrity: sha512-OyEVi981C1sb9NX1xayfgZls3p8QTDRwp06EcgxSgd1kktaENBW8dO15i8v/7Fi15j0IYQctJzk5J+hyEBId2w==} dev: true /text-table/0.2.0: - resolution: - { - integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==, - } + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} /thenify-all/1.6.0: - resolution: - { - integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==, - } - engines: {node: ">=0.8"} + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} dependencies: thenify: 3.3.1 - dev: true /thenify/3.3.1: - resolution: - { - integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==, - } + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} dependencies: any-promise: 1.3.0 - dev: true /through/2.3.8: - resolution: - { - integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==, - } + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} /through2/3.0.2: - resolution: - { - integrity: sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==, - } + resolution: {integrity: sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==} dependencies: inherits: 2.0.4 readable-stream: 3.6.0 dev: false /through2/4.0.2: - resolution: - { - integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==, - } + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} dependencies: readable-stream: 3.6.0 dev: false /tiny-glob/0.2.9: - resolution: - { - integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==, - } + resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} dependencies: globalyzer: 0.1.0 globrex: 0.1.2 - dev: true /tinybench/2.3.1: - resolution: - { - integrity: sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA==, - } + resolution: {integrity: sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA==} /tinypool/0.3.0: - resolution: - { - integrity: sha512-NX5KeqHOBZU6Bc0xj9Vr5Szbb1j8tUHIeD18s41aDJaPeC5QTdEhK0SpdpUrZlj2nv5cctNcSjaKNanXlfcVEQ==, - } - engines: {node: ">=14.0.0"} + resolution: {integrity: sha512-NX5KeqHOBZU6Bc0xj9Vr5Szbb1j8tUHIeD18s41aDJaPeC5QTdEhK0SpdpUrZlj2nv5cctNcSjaKNanXlfcVEQ==} + engines: {node: '>=14.0.0'} /tinyspy/1.0.2: - resolution: - { - integrity: sha512-bSGlgwLBYf7PnUsQ6WOc6SJ3pGOcd+d8AA6EUnLDDM0kWEstC1JIlSZA3UNliDXhd9ABoS7hiRBDCu+XP/sf1Q==, - } - engines: {node: ">=14.0.0"} + resolution: {integrity: sha512-bSGlgwLBYf7PnUsQ6WOc6SJ3pGOcd+d8AA6EUnLDDM0kWEstC1JIlSZA3UNliDXhd9ABoS7hiRBDCu+XP/sf1Q==} + engines: {node: '>=14.0.0'} /tlds/1.231.0: - resolution: - { - integrity: sha512-L7UQwueHSkGxZHQBXHVmXW64oi+uqNtzFt2x6Ssk7NVnpIbw16CRs4eb/jmKOZ9t2JnqZ/b3Cfvo97lnXqKrhw==, - } + resolution: {integrity: sha512-L7UQwueHSkGxZHQBXHVmXW64oi+uqNtzFt2x6Ssk7NVnpIbw16CRs4eb/jmKOZ9t2JnqZ/b3Cfvo97lnXqKrhw==} hasBin: true dev: true /tmp/0.0.33: - resolution: - { - integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==, - } - engines: {node: ">=0.6.0"} + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} dependencies: os-tmpdir: 1.0.2 dev: false /tmp/0.2.1: - resolution: - { - integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==, - } - engines: {node: ">=8.17.0"} + resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==} + engines: {node: '>=8.17.0'} dependencies: rimraf: 3.0.2 dev: true /tmpl/1.0.5: - resolution: - { - integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==, - } + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} /to-fast-properties/2.0.0: - resolution: - { - integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} /to-object-path/0.3.0: - resolution: - { - integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} + engines: {node: '>=0.10.0'} dependencies: kind-of: 3.2.2 dev: false /to-readable-stream/1.0.0: - resolution: - { - integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==} + engines: {node: '>=6'} dev: false /to-regex-range/2.1.1: - resolution: - { - integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} + engines: {node: '>=0.10.0'} dependencies: is-number: 3.0.0 repeat-string: 1.6.1 dev: false /to-regex-range/5.0.1: - resolution: - { - integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, - } - engines: {node: ">=8.0"} + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 /to-regex/3.0.2: - resolution: - { - integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} + engines: {node: '>=0.10.0'} dependencies: define-property: 2.0.2 extend-shallow: 3.0.2 @@ -20258,11 +16004,8 @@ packages: dev: false /toidentifier/1.0.1: - resolution: - { - integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==, - } - engines: {node: ">=0.6"} + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} dev: true /token-stream/1.0.0: @@ -20270,30 +16013,21 @@ packages: dev: true /totalist/1.1.0: - resolution: - { - integrity: sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==} + engines: {node: '>=6'} dev: true /tough-cookie/4.0.0: - resolution: - { - integrity: sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==} + engines: {node: '>=6'} dependencies: psl: 1.8.0 punycode: 2.1.1 universalify: 0.1.2 /tough-cookie/4.1.2: - resolution: - { - integrity: sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==} + engines: {node: '>=6'} dependencies: psl: 1.8.0 punycode: 2.1.1 @@ -20301,55 +16035,39 @@ packages: url-parse: 1.5.10 /tr46/3.0.0: - resolution: - { - integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} + engines: {node: '>=12'} dependencies: punycode: 2.1.1 /tree-kill/1.2.2: - resolution: - { - integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==, - } + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true dev: true /trim-newlines/3.0.1: - resolution: - { - integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} + engines: {node: '>=8'} dev: false /ts-interface-checker/0.1.13: - resolution: - { - integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==, - } - dev: true + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} /ts-jest/27.1.4_typescript@4.8.4: - resolution: - { - integrity: sha512-qjkZlVPWVctAezwsOD1OPzbZ+k7zA5z3oxII4dGdZo5ggX/PL7kvwTM0pXTr10fAtbiVpJaL3bWd502zAhpgSQ==, - } + resolution: {integrity: sha512-qjkZlVPWVctAezwsOD1OPzbZ+k7zA5z3oxII4dGdZo5ggX/PL7kvwTM0pXTr10fAtbiVpJaL3bWd502zAhpgSQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} hasBin: true peerDependencies: - "@babel/core": ">=7.0.0-beta.0 <8" - "@types/jest": ^27.0.0 - babel-jest: ">=27.0.0 <28" - esbuild: "*" + '@babel/core': '>=7.0.0-beta.0 <8' + '@types/jest': ^27.0.0 + babel-jest: '>=27.0.0 <28' + esbuild: '*' jest: ^27.0.0 - typescript: ">=3.8 <5.0" + typescript: '>=3.8 <5.0' peerDependenciesMeta: - "@babel/core": + '@babel/core': optional: true - "@types/jest": + '@types/jest': optional: true babel-jest: optional: true @@ -20368,28 +16086,25 @@ packages: dev: true /ts-node/10.9.1_cbe7ovvae6zqfnmtgctpgpys54: - resolution: - { - integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==, - } + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: - "@swc/core": ">=1.2.50" - "@swc/wasm": ">=1.2.50" - "@types/node": "*" - typescript: ">=2.7" + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' peerDependenciesMeta: - "@swc/core": + '@swc/core': optional: true - "@swc/wasm": + '@swc/wasm': optional: true dependencies: - "@cspotcode/source-map-support": 0.8.1 - "@tsconfig/node10": 1.0.9 - "@tsconfig/node12": 1.0.10 - "@tsconfig/node14": 1.0.2 - "@tsconfig/node16": 1.0.3 - "@types/node": 18.11.9 + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.10 + '@tsconfig/node14': 1.0.2 + '@tsconfig/node16': 1.0.3 + '@types/node': 18.11.9 acorn: 8.7.1 acorn-walk: 8.2.0 arg: 4.1.3 @@ -20399,31 +16114,27 @@ packages: typescript: 4.8.4 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - dev: false /ts-node/10.9.1_ieummqxttktzud32hpyrer46t4: - resolution: - { - integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==, - } + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: - "@swc/core": ">=1.2.50" - "@swc/wasm": ">=1.2.50" - "@types/node": "*" - typescript: ">=2.7" + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' peerDependenciesMeta: - "@swc/core": + '@swc/core': optional: true - "@swc/wasm": + '@swc/wasm': optional: true dependencies: - "@cspotcode/source-map-support": 0.8.1 - "@tsconfig/node10": 1.0.9 - "@tsconfig/node12": 1.0.10 - "@tsconfig/node14": 1.0.2 - "@tsconfig/node16": 1.0.3 - "@types/node": 18.7.13 + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.10 + '@tsconfig/node14': 1.0.2 + '@tsconfig/node16': 1.0.3 + '@types/node': 18.7.13 acorn: 8.7.1 acorn-walk: 8.2.0 arg: 4.1.3 @@ -20436,27 +16147,24 @@ packages: dev: true /ts-node/10.9.1_typescript@4.8.4: - resolution: - { - integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==, - } + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: - "@swc/core": ">=1.2.50" - "@swc/wasm": ">=1.2.50" - "@types/node": "*" - typescript: ">=2.7" + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' peerDependenciesMeta: - "@swc/core": + '@swc/core': optional: true - "@swc/wasm": + '@swc/wasm': optional: true dependencies: - "@cspotcode/source-map-support": 0.8.1 - "@tsconfig/node10": 1.0.9 - "@tsconfig/node12": 1.0.10 - "@tsconfig/node14": 1.0.2 - "@tsconfig/node16": 1.0.3 + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.10 + '@tsconfig/node14': 1.0.2 + '@tsconfig/node16': 1.0.3 acorn: 8.7.1 acorn-walk: 8.2.0 arg: 4.1.3 @@ -20466,76 +16174,62 @@ packages: typescript: 4.8.4 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 + dev: false /tsconfig-paths/3.14.1: - resolution: - { - integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==, - } + resolution: {integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==} dependencies: - "@types/json5": 0.0.29 + '@types/json5': 0.0.29 json5: 1.0.1 minimist: 1.2.6 strip-bom: 3.0.0 /tsconfig-paths/4.0.0: - resolution: - { - integrity: sha512-SLBg2GBKlR6bVtMgJJlud/o3waplKtL7skmLkExomIiaAtLGtVsoXIqP3SYdjbcH9lq/KVv7pMZeCBpLYOit6Q==, - } + resolution: {integrity: sha512-SLBg2GBKlR6bVtMgJJlud/o3waplKtL7skmLkExomIiaAtLGtVsoXIqP3SYdjbcH9lq/KVv7pMZeCBpLYOit6Q==} dependencies: json5: 2.2.1 minimist: 1.2.6 strip-bom: 3.0.0 /tslib/1.14.1: - resolution: - { - integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==, - } + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} /tslib/2.4.0: - resolution: - { - integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==, - } + resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} /tslog/3.3.4: - resolution: - { - integrity: sha512-N0HHuHE0e/o75ALfkioFObknHR5dVchUad4F0XyFf3gXJYB++DewEzwGI/uIOM216E5a43ovnRNEeQIq9qgm4Q==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-N0HHuHE0e/o75ALfkioFObknHR5dVchUad4F0XyFf3gXJYB++DewEzwGI/uIOM216E5a43ovnRNEeQIq9qgm4Q==} + engines: {node: '>=10'} dependencies: source-map-support: 0.5.21 dev: false /tsscmp/1.0.6: - resolution: - { - integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==, - } - engines: {node: ">=0.6.x"} + resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} + engines: {node: '>=0.6.x'} dev: false /tsutils/3.21.0_typescript@4.8.4: - resolution: - { - integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==, - } - engines: {node: ">= 6"} + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} peerDependencies: - typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 typescript: 4.8.4 + /tsutils/3.21.0_typescript@5.0.4: + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: 1.14.1 + typescript: 5.0.4 + /tty-table/2.8.13: - resolution: - { - integrity: sha512-eVV/+kB6fIIdx+iUImhXrO22gl7f6VmmYh0Zbu6C196fe1elcHXd7U6LcLXu0YoVPc2kNesWiukYcdK8ZmJ6aQ==, - } - engines: {node: ">=8.16.0"} + resolution: {integrity: sha512-eVV/+kB6fIIdx+iUImhXrO22gl7f6VmmYh0Zbu6C196fe1elcHXd7U6LcLXu0YoVPc2kNesWiukYcdK8ZmJ6aQ==} + engines: {node: '>=8.16.0'} hasBin: true dependencies: chalk: 3.0.0 @@ -20547,10 +16241,7 @@ packages: dev: false /turbo-android-arm64/1.4.2: - resolution: - { - integrity: sha512-h6PorJ+muKDQE3wETwrkx3NpqypAxjIFLP3b8RQaAoNvxYa1JTSC71VMtYxMbwuDk58A1KGbXLDteR4by8Lqew==, - } + resolution: {integrity: sha512-h6PorJ+muKDQE3wETwrkx3NpqypAxjIFLP3b8RQaAoNvxYa1JTSC71VMtYxMbwuDk58A1KGbXLDteR4by8Lqew==} cpu: [arm64] os: [android] requiresBuild: true @@ -20558,10 +16249,7 @@ packages: optional: true /turbo-darwin-64/1.4.2: - resolution: - { - integrity: sha512-HrXRwx+5FuKeR4r2ea2mWO5dImzxG7z987t4xZWytEWJ0gEujln1z1cjwotYU1l2pq8slJS8W3q9Qv3JRMrSkQ==, - } + resolution: {integrity: sha512-HrXRwx+5FuKeR4r2ea2mWO5dImzxG7z987t4xZWytEWJ0gEujln1z1cjwotYU1l2pq8slJS8W3q9Qv3JRMrSkQ==} cpu: [x64] os: [darwin] requiresBuild: true @@ -20569,10 +16257,7 @@ packages: optional: true /turbo-darwin-arm64/1.4.2: - resolution: - { - integrity: sha512-/qkMqq1hdbM/I0gchx08/ZZucgnQVp6gd03tHHYnyG20z8a39f38MbX7+I5aLRpa3pQzBk8RgNx0o7G1T+KvzA==, - } + resolution: {integrity: sha512-/qkMqq1hdbM/I0gchx08/ZZucgnQVp6gd03tHHYnyG20z8a39f38MbX7+I5aLRpa3pQzBk8RgNx0o7G1T+KvzA==} cpu: [arm64] os: [darwin] requiresBuild: true @@ -20580,10 +16265,7 @@ packages: optional: true /turbo-freebsd-64/1.4.2: - resolution: - { - integrity: sha512-bZcjR7GxpuE/0qz/aKg4gWDa+6eiuoV0cRnqCJ/rae14/iSmBt0MsMa+lUH5gZUFj581Dj8fQRoBeE+EOau5CA==, - } + resolution: {integrity: sha512-bZcjR7GxpuE/0qz/aKg4gWDa+6eiuoV0cRnqCJ/rae14/iSmBt0MsMa+lUH5gZUFj581Dj8fQRoBeE+EOau5CA==} cpu: [x64] os: [freebsd] requiresBuild: true @@ -20591,10 +16273,7 @@ packages: optional: true /turbo-freebsd-arm64/1.4.2: - resolution: - { - integrity: sha512-dDx++7AELGAHuaMQjzNiKjSPu/xdDelUtRjWOzJWmwXzrgJlwNgQ93p+LYEA7LBWVZ8a32fpBE/VDait0alIJw==, - } + resolution: {integrity: sha512-dDx++7AELGAHuaMQjzNiKjSPu/xdDelUtRjWOzJWmwXzrgJlwNgQ93p+LYEA7LBWVZ8a32fpBE/VDait0alIJw==} cpu: [arm64] os: [freebsd] requiresBuild: true @@ -20602,10 +16281,7 @@ packages: optional: true /turbo-linux-32/1.4.2: - resolution: - { - integrity: sha512-AAxsEYhgv6x4UXwCoiRe+iL2pd+ArsJQDMgJGsJn+Tb09ca6+i1rTgdOTgcCSyvRwbXt0LYzqXN9zp6FwG6VHQ==, - } + resolution: {integrity: sha512-AAxsEYhgv6x4UXwCoiRe+iL2pd+ArsJQDMgJGsJn+Tb09ca6+i1rTgdOTgcCSyvRwbXt0LYzqXN9zp6FwG6VHQ==} cpu: [ia32] os: [linux] requiresBuild: true @@ -20613,10 +16289,7 @@ packages: optional: true /turbo-linux-64/1.4.2: - resolution: - { - integrity: sha512-t7gGxp1ILmGwzymcf72Lw4Ca916Bi9j2C4xPnJ2CAqxMWQOJKCRvyOuUHC/uy1kFDjR2yszxMb+ZJL6P3nccfA==, - } + resolution: {integrity: sha512-t7gGxp1ILmGwzymcf72Lw4Ca916Bi9j2C4xPnJ2CAqxMWQOJKCRvyOuUHC/uy1kFDjR2yszxMb+ZJL6P3nccfA==} cpu: [x64] os: [linux] requiresBuild: true @@ -20624,10 +16297,7 @@ packages: optional: true /turbo-linux-arm/1.4.2: - resolution: - { - integrity: sha512-6Rri//bX3wPMa8D0sSie05Xuze+6jTUDt4qsKp+JoQVanUKkKmRaVDpyV4WuFfjDbC5iP4ocN20FeaXenMFxTA==, - } + resolution: {integrity: sha512-6Rri//bX3wPMa8D0sSie05Xuze+6jTUDt4qsKp+JoQVanUKkKmRaVDpyV4WuFfjDbC5iP4ocN20FeaXenMFxTA==} cpu: [arm] os: [linux] requiresBuild: true @@ -20635,10 +16305,7 @@ packages: optional: true /turbo-linux-arm64/1.4.2: - resolution: - { - integrity: sha512-V7eBFUOrIvLvjrc81UE8C+NfqBRKADyKrrbKD9hMG5beE/piZZNGoHUwuEgLgsykCSfHjn1sQCidocVztuTMAw==, - } + resolution: {integrity: sha512-V7eBFUOrIvLvjrc81UE8C+NfqBRKADyKrrbKD9hMG5beE/piZZNGoHUwuEgLgsykCSfHjn1sQCidocVztuTMAw==} cpu: [arm64] os: [linux] requiresBuild: true @@ -20646,10 +16313,7 @@ packages: optional: true /turbo-linux-mips64le/1.4.2: - resolution: - { - integrity: sha512-C0JpzpwyvhW5ChWr6S7ulUd8a+1SBLe2mLBepTWaXTh/5+sFDU/AMwPNkhpfV5o0gEtz03UPm7Y4G6dqU3UCAQ==, - } + resolution: {integrity: sha512-C0JpzpwyvhW5ChWr6S7ulUd8a+1SBLe2mLBepTWaXTh/5+sFDU/AMwPNkhpfV5o0gEtz03UPm7Y4G6dqU3UCAQ==} cpu: [mipsel] os: [linux] requiresBuild: true @@ -20657,10 +16321,7 @@ packages: optional: true /turbo-linux-ppc64le/1.4.2: - resolution: - { - integrity: sha512-ipxyQCj3NXq/2V6a4lKoNDt8CjcufICgHAvOhAUmoAxz4kIEKRvA/75xsPpt2Ih/a4fWGxsbWFK6oA+ac0l3jQ==, - } + resolution: {integrity: sha512-ipxyQCj3NXq/2V6a4lKoNDt8CjcufICgHAvOhAUmoAxz4kIEKRvA/75xsPpt2Ih/a4fWGxsbWFK6oA+ac0l3jQ==} cpu: [ppc64] os: [linux] requiresBuild: true @@ -20668,10 +16329,7 @@ packages: optional: true /turbo-windows-32/1.4.2: - resolution: - { - integrity: sha512-pCvsh8mPSw6ZFABQqeJzfercnsOwCj1LpbWTPW1QftDij6zw1OWU4jWU529Ub1f+GMBej+xm/ufJhT+8A3NhwA==, - } + resolution: {integrity: sha512-pCvsh8mPSw6ZFABQqeJzfercnsOwCj1LpbWTPW1QftDij6zw1OWU4jWU529Ub1f+GMBej+xm/ufJhT+8A3NhwA==} cpu: [ia32] os: [win32] requiresBuild: true @@ -20679,10 +16337,7 @@ packages: optional: true /turbo-windows-64/1.4.2: - resolution: - { - integrity: sha512-GnvM8uGOA6idUloDDxiEgUpIx5o5ZJL0ARL7f+6r/vfwA+qlSe/F+4hDCmT3+Xkg7/7zDZix5ViKVoTDMBP/Ig==, - } + resolution: {integrity: sha512-GnvM8uGOA6idUloDDxiEgUpIx5o5ZJL0ARL7f+6r/vfwA+qlSe/F+4hDCmT3+Xkg7/7zDZix5ViKVoTDMBP/Ig==} cpu: [x64] os: [win32] requiresBuild: true @@ -20690,10 +16345,7 @@ packages: optional: true /turbo-windows-arm64/1.4.2: - resolution: - { - integrity: sha512-2mCPiDnMLY924+M07mMo464cjOr0EITuIkK67IBm3EeEwSlunOmQk+LRc/Jq/Zx6Zuzp5XPZ2fZVvmmSFfogpQ==, - } + resolution: {integrity: sha512-2mCPiDnMLY924+M07mMo464cjOr0EITuIkK67IBm3EeEwSlunOmQk+LRc/Jq/Zx6Zuzp5XPZ2fZVvmmSFfogpQ==} cpu: [arm64] os: [win32] requiresBuild: true @@ -20701,10 +16353,7 @@ packages: optional: true /turbo/1.4.2: - resolution: - { - integrity: sha512-ry1vUs5oHCIM+Sef8HED2XsbL28YAeclCrOtDp9zbZZMUX1r5s01COqOJjFJZfDiv2zSlUge9IIQXprM8BfrtA==, - } + resolution: {integrity: sha512-ry1vUs5oHCIM+Sef8HED2XsbL28YAeclCrOtDp9zbZZMUX1r5s01COqOJjFJZfDiv2zSlUge9IIQXprM8BfrtA==} hasBin: true requiresBuild: true optionalDependencies: @@ -20725,114 +16374,77 @@ packages: dev: false /type-check/0.3.2: - resolution: - { - integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==, - } - engines: {node: ">= 0.8.0"} + resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} + engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.1.2 /type-check/0.4.0: - resolution: - { - integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==, - } - engines: {node: ">= 0.8.0"} + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 /type-detect/4.0.8: - resolution: - { - integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} /type-fest/0.12.0: - resolution: - { - integrity: sha512-53RyidyjvkGpnWPMF9bQgFtWp+Sl8O2Rp13VavmJgfAP9WWG6q6TkrKU8iyJdnwnfgHI6k2hTlgqH4aSdjoTbg==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-53RyidyjvkGpnWPMF9bQgFtWp+Sl8O2Rp13VavmJgfAP9WWG6q6TkrKU8iyJdnwnfgHI6k2hTlgqH4aSdjoTbg==} + engines: {node: '>=10'} dev: false /type-fest/0.13.1: - resolution: - { - integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + engines: {node: '>=10'} dev: false /type-fest/0.20.2: - resolution: - { - integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} /type-fest/0.21.3: - resolution: - { - integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} /type-fest/0.6.0: - resolution: - { - integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} dev: false /type-fest/0.8.1: - resolution: - { - integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} /type-fest/2.16.0: - resolution: - { - integrity: sha512-qpaThT2HQkFb83gMOrdKVsfCN7LKxP26Yq+smPzY1FqoHRjqmjqHXA7n5Gkxi8efirtbeEUxzfEdePthQWCuHw==, - } - engines: {node: ">=12.20"} + resolution: {integrity: sha512-qpaThT2HQkFb83gMOrdKVsfCN7LKxP26Yq+smPzY1FqoHRjqmjqHXA7n5Gkxi8efirtbeEUxzfEdePthQWCuHw==} + engines: {node: '>=12.20'} dev: false /type-is/1.6.18: - resolution: - { - integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==, - } - engines: {node: ">= 0.6"} + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} dependencies: media-typer: 0.3.0 mime-types: 2.1.35 dev: true /typescript/4.8.4: - resolution: - { - integrity: sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==, - } - engines: {node: ">=4.2.0"} + resolution: {integrity: sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==} + engines: {node: '>=4.2.0'} + hasBin: true + + /typescript/5.0.4: + resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} + engines: {node: '>=12.20'} hasBin: true /uc.micro/1.0.6: - resolution: - { - integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==, - } + resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} dev: true /unbox-primitive/1.0.2: - resolution: - { - integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==, - } + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: call-bind: 1.0.2 has-bigints: 1.0.2 @@ -20840,18 +16452,15 @@ packages: which-boxed-primitive: 1.0.2 /unbuild/0.6.9_supports-color@8.1.1: - resolution: - { - integrity: sha512-IALhVj6cLWAxFqX5qcuR932Y3OKFgWcZXPeQ0qU1YAuBucWzpY171GHMi+rXot3C4V7JwD0khGmjvu41E980mQ==, - } + resolution: {integrity: sha512-IALhVj6cLWAxFqX5qcuR932Y3OKFgWcZXPeQ0qU1YAuBucWzpY171GHMi+rXot3C4V7JwD0khGmjvu41E980mQ==} hasBin: true dependencies: - "@rollup/plugin-alias": 3.1.9_rollup@2.77.2 - "@rollup/plugin-commonjs": 21.1.0_rollup@2.77.2 - "@rollup/plugin-json": 4.1.0_rollup@2.77.2 - "@rollup/plugin-node-resolve": 13.3.0_rollup@2.77.2 - "@rollup/plugin-replace": 3.1.0_rollup@2.77.2 - "@rollup/pluginutils": 4.2.1 + '@rollup/plugin-alias': 3.1.9_rollup@2.77.2 + '@rollup/plugin-commonjs': 21.1.0_rollup@2.77.2 + '@rollup/plugin-json': 4.1.0_rollup@2.77.2 + '@rollup/plugin-node-resolve': 13.3.0_rollup@2.77.2 + '@rollup/plugin-replace': 3.1.0_rollup@2.77.2 + '@rollup/pluginutils': 4.2.1 chalk: 5.0.1 consola: 2.15.3 defu: 5.0.1 @@ -20878,18 +16487,15 @@ packages: dev: true /unbuild/0.7.6: - resolution: - { - integrity: sha512-W6pFPS6/ewlEV5uWbNgfo0i2LbVBsue5GKlOkCo6ozIrInOBEgq4s3HCUB5eZSw6Ty2iwF8dKM65pZX7QGZJ0g==, - } + resolution: {integrity: sha512-W6pFPS6/ewlEV5uWbNgfo0i2LbVBsue5GKlOkCo6ozIrInOBEgq4s3HCUB5eZSw6Ty2iwF8dKM65pZX7QGZJ0g==} hasBin: true dependencies: - "@rollup/plugin-alias": 3.1.9_rollup@2.77.2 - "@rollup/plugin-commonjs": 22.0.1_rollup@2.77.2 - "@rollup/plugin-json": 4.1.0_rollup@2.77.2 - "@rollup/plugin-node-resolve": 13.3.0_rollup@2.77.2 - "@rollup/plugin-replace": 4.0.0_rollup@2.77.2 - "@rollup/pluginutils": 4.2.1 + '@rollup/plugin-alias': 3.1.9_rollup@2.77.2 + '@rollup/plugin-commonjs': 22.0.1_rollup@2.77.2 + '@rollup/plugin-json': 4.1.0_rollup@2.77.2 + '@rollup/plugin-node-resolve': 13.3.0_rollup@2.77.2 + '@rollup/plugin-replace': 4.0.0_rollup@2.77.2 + '@rollup/pluginutils': 4.2.1 chalk: 5.0.1 consola: 2.15.3 defu: 6.0.0 @@ -20916,18 +16522,15 @@ packages: dev: true /unbuild/0.7.6_supports-color@8.1.1: - resolution: - { - integrity: sha512-W6pFPS6/ewlEV5uWbNgfo0i2LbVBsue5GKlOkCo6ozIrInOBEgq4s3HCUB5eZSw6Ty2iwF8dKM65pZX7QGZJ0g==, - } + resolution: {integrity: sha512-W6pFPS6/ewlEV5uWbNgfo0i2LbVBsue5GKlOkCo6ozIrInOBEgq4s3HCUB5eZSw6Ty2iwF8dKM65pZX7QGZJ0g==} hasBin: true dependencies: - "@rollup/plugin-alias": 3.1.9_rollup@2.77.2 - "@rollup/plugin-commonjs": 22.0.1_rollup@2.77.2 - "@rollup/plugin-json": 4.1.0_rollup@2.77.2 - "@rollup/plugin-node-resolve": 13.3.0_rollup@2.77.2 - "@rollup/plugin-replace": 4.0.0_rollup@2.77.2 - "@rollup/pluginutils": 4.2.1 + '@rollup/plugin-alias': 3.1.9_rollup@2.77.2 + '@rollup/plugin-commonjs': 22.0.1_rollup@2.77.2 + '@rollup/plugin-json': 4.1.0_rollup@2.77.2 + '@rollup/plugin-node-resolve': 13.3.0_rollup@2.77.2 + '@rollup/plugin-replace': 4.0.0_rollup@2.77.2 + '@rollup/pluginutils': 4.2.1 chalk: 5.0.1 consola: 2.15.3 defu: 6.0.0 @@ -20954,42 +16557,27 @@ packages: dev: true /unicode-canonical-property-names-ecmascript/2.0.0: - resolution: - { - integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + engines: {node: '>=4'} /unicode-match-property-ecmascript/2.0.0: - resolution: - { - integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} dependencies: unicode-canonical-property-names-ecmascript: 2.0.0 unicode-property-aliases-ecmascript: 2.0.0 /unicode-match-property-value-ecmascript/2.0.0: - resolution: - { - integrity: sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==} + engines: {node: '>=4'} /unicode-property-aliases-ecmascript/2.0.0: - resolution: - { - integrity: sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==} + engines: {node: '>=4'} /union-value/1.0.1: - resolution: - { - integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} + engines: {node: '>=0.10.0'} dependencies: arr-union: 3.1.0 get-value: 2.0.6 @@ -20998,124 +16586,96 @@ packages: dev: false /universalify/0.1.2: - resolution: - { - integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==, - } - engines: {node: ">= 4.0.0"} + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} /universalify/0.2.0: - resolution: - { - integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==, - } - engines: {node: ">= 4.0.0"} + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} /universalify/2.0.0: - resolution: - { - integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==, - } - engines: {node: ">= 10.0.0"} + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + engines: {node: '>= 10.0.0'} /unpipe/1.0.0: - resolution: - { - integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==, - } - engines: {node: ">= 0.8"} + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} dev: true /unset-value/1.0.0: - resolution: - { - integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} + engines: {node: '>=0.10.0'} dependencies: has-value: 0.3.1 isobject: 3.0.1 dev: false /untyped/0.3.0: - resolution: - { - integrity: sha512-n4M5/T1wWlHFmohk0EhS+yM7W/h5dOtQldOV3MVEbZY1fTy5A47UL8+d8GLW1iwmaAwNrM5ERy3qe1k0T/Yc7A==, - } + resolution: {integrity: sha512-n4M5/T1wWlHFmohk0EhS+yM7W/h5dOtQldOV3MVEbZY1fTy5A47UL8+d8GLW1iwmaAwNrM5ERy3qe1k0T/Yc7A==} dev: true /untyped/0.4.4: - resolution: - { - integrity: sha512-sY6u8RedwfLfBis0copfU/fzROieyAndqPs8Kn2PfyzTjtA88vCk81J1b5z+8/VJc+cwfGy23/AqOCpvAbkNVw==, - } - dependencies: - "@babel/core": 7.20.2 - "@babel/standalone": 7.18.9 - "@babel/types": 7.18.4 + resolution: {integrity: sha512-sY6u8RedwfLfBis0copfU/fzROieyAndqPs8Kn2PfyzTjtA88vCk81J1b5z+8/VJc+cwfGy23/AqOCpvAbkNVw==} + dependencies: + '@babel/core': 7.20.2 + '@babel/standalone': 7.18.9 + '@babel/types': 7.18.4 scule: 0.2.1 transitivePeerDependencies: - supports-color dev: true /untyped/0.4.4_supports-color@8.1.1: - resolution: - { - integrity: sha512-sY6u8RedwfLfBis0copfU/fzROieyAndqPs8Kn2PfyzTjtA88vCk81J1b5z+8/VJc+cwfGy23/AqOCpvAbkNVw==, - } - dependencies: - "@babel/core": 7.20.2_supports-color@8.1.1 - "@babel/standalone": 7.18.9 - "@babel/types": 7.18.4 + resolution: {integrity: sha512-sY6u8RedwfLfBis0copfU/fzROieyAndqPs8Kn2PfyzTjtA88vCk81J1b5z+8/VJc+cwfGy23/AqOCpvAbkNVw==} + dependencies: + '@babel/core': 7.20.2_supports-color@8.1.1 + '@babel/standalone': 7.18.9 + '@babel/types': 7.18.4 scule: 0.2.1 transitivePeerDependencies: - supports-color dev: true /update-browserslist-db/1.0.10_browserslist@4.21.4: - resolution: - { - integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==, - } + resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} hasBin: true peerDependencies: - browserslist: ">= 4.21.0" + browserslist: '>= 4.21.0' dependencies: browserslist: 4.21.4 escalade: 3.1.1 picocolors: 1.0.0 + /update-browserslist-db/1.0.10_browserslist@4.21.5: + resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.21.5 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: false + /uri-js/4.4.1: - resolution: - { - integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, - } + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.1.1 /urix/0.1.0: - resolution: - { - integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==, - } + resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} deprecated: Please see https://github.com/lydell/urix#deprecated dev: false /url-parse-lax/3.0.0: - resolution: - { - integrity: sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==} + engines: {node: '>=4'} dependencies: prepend-http: 2.0.0 dev: false /url-parse/1.5.10: - resolution: - { - integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==, - } + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} dependencies: querystringify: 2.2.0 requires-port: 1.0.0 @@ -21128,113 +16688,74 @@ packages: dev: false /use-sync-external-store/1.2.0_react@18.2.0: - resolution: - { - integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==, - } + resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: react: 18.2.0 /use/3.1.1: - resolution: - { - integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} + engines: {node: '>=0.10.0'} dev: false /username/5.1.0: - resolution: - { - integrity: sha512-PCKbdWw85JsYMvmCv5GH3kXmM66rCd9m1hBEDutPNv94b/pqCMT4NtcKyeWYvLFiE8b+ha1Jdl8XAaUdPn5QTg==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-PCKbdWw85JsYMvmCv5GH3kXmM66rCd9m1hBEDutPNv94b/pqCMT4NtcKyeWYvLFiE8b+ha1Jdl8XAaUdPn5QTg==} + engines: {node: '>=8'} dependencies: execa: 1.0.0 mem: 4.3.0 dev: false /util-deprecate/1.0.2: - resolution: - { - integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, - } + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} /util/0.10.4: - resolution: - { - integrity: sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==, - } + resolution: {integrity: sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==} dependencies: inherits: 2.0.3 dev: false /utils-merge/1.0.1: - resolution: - { - integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==, - } - engines: {node: ">= 0.4.0"} + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} /uuid/8.3.2: - resolution: - { - integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==, - } + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true /v8-compile-cache-lib/3.0.1: - resolution: - { - integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==, - } + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} /v8-to-istanbul/9.0.1: - resolution: - { - integrity: sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==, - } - engines: {node: ">=10.12.0"} - dependencies: - "@jridgewell/trace-mapping": 0.3.17 - "@types/istanbul-lib-coverage": 2.0.4 + resolution: {integrity: sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==} + engines: {node: '>=10.12.0'} + dependencies: + '@jridgewell/trace-mapping': 0.3.17 + '@types/istanbul-lib-coverage': 2.0.4 convert-source-map: 1.8.0 /validate-npm-package-license/3.0.4: - resolution: - { - integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==, - } + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} dependencies: spdx-correct: 3.1.1 spdx-expression-parse: 3.0.1 dev: false /validate-npm-package-name/3.0.0: - resolution: - { - integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==, - } + resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==} dependencies: builtins: 1.0.3 dev: false /vary/1.1.2: - resolution: - { - integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==, - } - engines: {node: ">= 0.8"} + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} dev: true /vinyl-file/3.0.0: - resolution: - { - integrity: sha512-BoJDj+ca3D9xOuPEM6RWVtWQtvEPQiQYn82LvdxhLWplfQsBzBqtgK0yhCP0s1BNTi6dH9BO+dzybvyQIacifg==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-BoJDj+ca3D9xOuPEM6RWVtWQtvEPQiQYn82LvdxhLWplfQsBzBqtgK0yhCP0s1BNTi6dH9BO+dzybvyQIacifg==} + engines: {node: '>=4'} dependencies: graceful-fs: 4.2.10 pify: 2.3.0 @@ -21244,11 +16765,8 @@ packages: dev: false /vinyl/2.2.1: - resolution: - { - integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==, - } - engines: {node: ">= 0.10"} + resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==} + engines: {node: '>= 0.10'} dependencies: clone: 2.1.2 clone-buffer: 1.0.0 @@ -21259,12 +16777,9 @@ packages: dev: false /vite-tsconfig-paths/3.6.0: - resolution: - { - integrity: sha512-UfsPYonxLqPD633X8cWcPFVuYzx/CMNHAjZTasYwX69sXpa4gNmQkR0XCjj82h7zhLGdTWagMjC1qfb9S+zv0A==, - } + resolution: {integrity: sha512-UfsPYonxLqPD633X8cWcPFVuYzx/CMNHAjZTasYwX69sXpa4gNmQkR0XCjj82h7zhLGdTWagMjC1qfb9S+zv0A==} peerDependencies: - vite: ">2.0.0-0" + vite: '>2.0.0-0' dependencies: debug: 4.3.4 globrex: 0.1.2 @@ -21275,21 +16790,18 @@ packages: dev: true /vite/3.2.4_@types+node@18.11.9: - resolution: - { - integrity: sha512-Z2X6SRAffOUYTa+sLy3NQ7nlHFU100xwanq1WDwqaiFiCe+25zdxP1TfCS5ojPV2oDDcXudHIoPnI1Z/66B7Yw==, - } + resolution: {integrity: sha512-Z2X6SRAffOUYTa+sLy3NQ7nlHFU100xwanq1WDwqaiFiCe+25zdxP1TfCS5ojPV2oDDcXudHIoPnI1Z/66B7Yw==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: - "@types/node": ">= 14" - less: "*" - sass: "*" - stylus: "*" - sugarss: "*" + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' terser: ^5.4.0 peerDependenciesMeta: - "@types/node": + '@types/node': optional: true less: optional: true @@ -21302,42 +16814,39 @@ packages: terser: optional: true dependencies: - "@types/node": 18.11.9 + '@types/node': 18.11.9 esbuild: 0.15.15 - postcss: 8.4.19 + postcss: 8.4.23 resolve: 1.22.1 rollup: 2.79.1 optionalDependencies: fsevents: 2.3.2 /vitest/0.25.3_jsdom@19.0.0: - resolution: - { - integrity: sha512-/UzHfXIKsELZhL7OaM2xFlRF8HRZgAHtPctacvNK8H4vOcbJJAMEgbWNGSAK7Y9b1NBe5SeM7VTuz2RsTHFJJA==, - } - engines: {node: ">=v14.16.0"} + resolution: {integrity: sha512-/UzHfXIKsELZhL7OaM2xFlRF8HRZgAHtPctacvNK8H4vOcbJJAMEgbWNGSAK7Y9b1NBe5SeM7VTuz2RsTHFJJA==} + engines: {node: '>=v14.16.0'} hasBin: true peerDependencies: - "@edge-runtime/vm": "*" - "@vitest/browser": "*" - "@vitest/ui": "*" - happy-dom: "*" - jsdom: "*" + '@edge-runtime/vm': '*' + '@vitest/browser': '*' + '@vitest/ui': '*' + happy-dom: '*' + jsdom: '*' peerDependenciesMeta: - "@edge-runtime/vm": + '@edge-runtime/vm': optional: true - "@vitest/browser": + '@vitest/browser': optional: true - "@vitest/ui": + '@vitest/ui': optional: true happy-dom: optional: true jsdom: optional: true dependencies: - "@types/chai": 4.3.4 - "@types/chai-subset": 1.3.3 - "@types/node": 18.11.9 + '@types/chai': 4.3.4 + '@types/chai-subset': 1.3.3 + '@types/node': 18.11.9 acorn: 8.8.1 acorn-walk: 8.2.0 chai: 4.3.6 @@ -21360,33 +16869,30 @@ packages: dev: false /vitest/0.25.3_jsdom@20.0.3: - resolution: - { - integrity: sha512-/UzHfXIKsELZhL7OaM2xFlRF8HRZgAHtPctacvNK8H4vOcbJJAMEgbWNGSAK7Y9b1NBe5SeM7VTuz2RsTHFJJA==, - } - engines: {node: ">=v14.16.0"} + resolution: {integrity: sha512-/UzHfXIKsELZhL7OaM2xFlRF8HRZgAHtPctacvNK8H4vOcbJJAMEgbWNGSAK7Y9b1NBe5SeM7VTuz2RsTHFJJA==} + engines: {node: '>=v14.16.0'} hasBin: true peerDependencies: - "@edge-runtime/vm": "*" - "@vitest/browser": "*" - "@vitest/ui": "*" - happy-dom: "*" - jsdom: "*" + '@edge-runtime/vm': '*' + '@vitest/browser': '*' + '@vitest/ui': '*' + happy-dom: '*' + jsdom: '*' peerDependenciesMeta: - "@edge-runtime/vm": + '@edge-runtime/vm': optional: true - "@vitest/browser": + '@vitest/browser': optional: true - "@vitest/ui": + '@vitest/ui': optional: true happy-dom: optional: true jsdom: optional: true dependencies: - "@types/chai": 4.3.4 - "@types/chai-subset": 1.3.3 - "@types/node": 18.11.9 + '@types/chai': 4.3.4 + '@types/chai-subset': 1.3.3 + '@types/node': 18.11.9 acorn: 8.8.1 acorn-walk: 8.2.0 chai: 4.3.6 @@ -21409,45 +16915,30 @@ packages: dev: true /void-elements/3.1.0: - resolution: - { - integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==} + engines: {node: '>=0.10.0'} dev: true /w3c-hr-time/1.0.2: - resolution: - { - integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==, - } + resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==} dependencies: browser-process-hrtime: 1.0.0 /w3c-xmlserializer/3.0.0: - resolution: - { - integrity: sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==} + engines: {node: '>=12'} dependencies: xml-name-validator: 4.0.0 /w3c-xmlserializer/4.0.0: - resolution: - { - integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==, - } - engines: {node: ">=14"} + resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} + engines: {node: '>=14'} dependencies: xml-name-validator: 4.0.0 /wait-on/6.0.1: - resolution: - { - integrity: sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw==, - } - engines: {node: ">=10.0.0"} + resolution: {integrity: sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw==} + engines: {node: '>=10.0.0'} hasBin: true dependencies: axios: 0.25.0 @@ -21460,11 +16951,8 @@ packages: dev: false /wait-port/1.0.4: - resolution: - { - integrity: sha512-w8Ftna3h6XSFWWc2JC5gZEgp64nz8bnaTp5cvzbJSZ53j+omktWTDdwXxEF0jM8YveviLgFWvNGrSvRHnkyHyw==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-w8Ftna3h6XSFWWc2JC5gZEgp64nz8bnaTp5cvzbJSZ53j+omktWTDdwXxEF0jM8YveviLgFWvNGrSvRHnkyHyw==} + engines: {node: '>=10'} hasBin: true dependencies: chalk: 4.1.2 @@ -21475,16 +16963,13 @@ packages: dev: false /walker/1.0.8: - resolution: - { - integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==, - } + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} dependencies: makeerror: 1.0.12 /watch/1.0.2: resolution: {integrity: sha1-NApxe952Vyb6CqB9ch4BR6VR3ww=} - engines: {node: ">=0.1.95"} + engines: {node: '>=0.1.95'} hasBin: true dependencies: exec-sh: 0.2.2 @@ -21492,45 +16977,30 @@ packages: dev: true /watchpack/2.1.1: - resolution: - { - integrity: sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==, - } - engines: {node: ">=10.13.0"} + resolution: {integrity: sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==} + engines: {node: '>=10.13.0'} dependencies: glob-to-regexp: 0.4.1 graceful-fs: 4.2.10 dev: false /wcwidth/1.0.1: - resolution: - { - integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==, - } + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} dependencies: defaults: 1.0.3 dev: false /web-streams-polyfill/3.2.1: - resolution: - { - integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==, - } - engines: {node: ">= 8"} + resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} + engines: {node: '>= 8'} /webidl-conversions/7.0.0: - resolution: - { - integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} /webpack-bundle-analyzer/4.3.0: - resolution: - { - integrity: sha512-J3TPm54bPARx6QG8z4cKBszahnUglcv70+N+8gUqv2I5KOFHJbzBiLx+pAp606so0X004fxM7hqRu10MLjJifA==, - } - engines: {node: ">= 10.13.0"} + resolution: {integrity: sha512-J3TPm54bPARx6QG8z4cKBszahnUglcv70+N+8gUqv2I5KOFHJbzBiLx+pAp606so0X004fxM7hqRu10MLjJifA==} + engines: {node: '>= 10.13.0'} hasBin: true dependencies: acorn: 8.7.1 @@ -21548,46 +17018,31 @@ packages: dev: true /whatwg-encoding/2.0.0: - resolution: - { - integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + engines: {node: '>=12'} dependencies: iconv-lite: 0.6.3 /whatwg-mimetype/3.0.0: - resolution: - { - integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} + engines: {node: '>=12'} /whatwg-url/10.0.0: - resolution: - { - integrity: sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==} + engines: {node: '>=12'} dependencies: tr46: 3.0.0 webidl-conversions: 7.0.0 /whatwg-url/11.0.0: - resolution: - { - integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} + engines: {node: '>=12'} dependencies: tr46: 3.0.0 webidl-conversions: 7.0.0 /which-boxed-primitive/1.0.2: - resolution: - { - integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==, - } + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: is-bigint: 1.0.4 is-boolean-object: 1.1.2 @@ -21596,128 +17051,89 @@ packages: is-symbol: 1.0.4 /which-module/2.0.0: - resolution: - { - integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==, - } + resolution: {integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==} dev: false /which-pm-runs/1.1.0: - resolution: - { - integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==, - } - engines: {node: ">=4"} + resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} + engines: {node: '>=4'} dev: false /which-pm/2.0.0: - resolution: - { - integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==, - } - engines: {node: ">=8.15"} + resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} + engines: {node: '>=8.15'} dependencies: load-yaml-file: 0.2.0 path-exists: 4.0.0 dev: false /which/1.3.1: - resolution: - { - integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==, - } + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} hasBin: true dependencies: isexe: 2.0.0 /which/2.0.2: - resolution: - { - integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, - } - engines: {node: ">= 8"} + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} hasBin: true dependencies: isexe: 2.0.0 /widest-line/3.1.0: - resolution: - { - integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} + engines: {node: '>=8'} dependencies: string-width: 4.2.3 dev: false /widest-line/4.0.1: - resolution: - { - integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} + engines: {node: '>=12'} dependencies: string-width: 5.1.2 dev: false /windows-release/5.0.1: - resolution: - { - integrity: sha512-y1xFdFvdMiDXI3xiOhMbJwt1Y7dUxidha0CWPs1NgjZIjZANTcX7+7bMqNjuezhzb8s5JGEiBAbQjQQYYy7ulw==, - } + resolution: {integrity: sha512-y1xFdFvdMiDXI3xiOhMbJwt1Y7dUxidha0CWPs1NgjZIjZANTcX7+7bMqNjuezhzb8s5JGEiBAbQjQQYYy7ulw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: execa: 5.1.1 dev: false /with/7.0.2: - resolution: - { - integrity: sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==, - } - engines: {node: ">= 10.0.0"} - dependencies: - "@babel/parser": 7.18.4 - "@babel/types": 7.18.4 + resolution: {integrity: sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==} + engines: {node: '>= 10.0.0'} + dependencies: + '@babel/parser': 7.18.4 + '@babel/types': 7.18.4 assert-never: 1.2.1 babel-walk: 3.0.0-canary-5 dev: true /word-wrap/1.2.3: - resolution: - { - integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==, - } - engines: {node: ">=0.10.0"} + resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} + engines: {node: '>=0.10.0'} /wrap-ansi/6.2.0: - resolution: - { - integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 /wrap-ansi/7.0.0: - resolution: - { - integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 /wrap-ansi/8.0.1: - resolution: - { - integrity: sha512-QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g==} + engines: {node: '>=12'} dependencies: ansi-styles: 6.1.0 string-width: 5.1.2 @@ -21725,16 +17141,10 @@ packages: dev: false /wrappy/1.0.2: - resolution: - { - integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, - } + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} /write-file-atomic/2.4.3: - resolution: - { - integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==, - } + resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==} dependencies: graceful-fs: 4.2.10 imurmurhash: 0.1.4 @@ -21742,21 +17152,15 @@ packages: dev: false /write-file-atomic/4.0.2: - resolution: - { - integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==, - } + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: imurmurhash: 0.1.4 signal-exit: 3.0.7 /ws/7.5.8: - resolution: - { - integrity: sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw==, - } - engines: {node: ">=8.3.0"} + resolution: {integrity: sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw==} + engines: {node: '>=8.3.0'} peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ^5.0.2 @@ -21767,11 +17171,8 @@ packages: optional: true /ws/8.11.0: - resolution: - { - integrity: sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==, - } - engines: {node: ">=10.0.0"} + resolution: {integrity: sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==} + engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ^5.0.2 @@ -21782,11 +17183,8 @@ packages: optional: true /ws/8.8.0: - resolution: - { - integrity: sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==, - } - engines: {node: ">=10.0.0"} + resolution: {integrity: sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==} + engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ^5.0.2 @@ -21797,103 +17195,64 @@ packages: optional: true /xml-name-validator/4.0.0: - resolution: - { - integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} /xmlchars/2.2.0: - resolution: - { - integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==, - } + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} /xmldom/0.1.31: - resolution: - { - integrity: sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==, - } - engines: {node: ">=0.1"} + resolution: {integrity: sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==} + engines: {node: '>=0.1'} deprecated: Deprecated due to CVE-2021-21366 resolved in 0.5.0 dev: false /xtraverse/0.1.0: - resolution: - { - integrity: sha512-MANQdlG2hl1nQobxz1Rv8hsS1RuBS0C1N6qTOupv+9vmfrReePdxhmB2ecYjvsp4stJ80HD7erjkoF1Hd/FK9A==, - } - engines: {node: ">= 0.4.0"} + resolution: {integrity: sha512-MANQdlG2hl1nQobxz1Rv8hsS1RuBS0C1N6qTOupv+9vmfrReePdxhmB2ecYjvsp4stJ80HD7erjkoF1Hd/FK9A==} + engines: {node: '>= 0.4.0'} dependencies: xmldom: 0.1.31 dev: false /y18n/4.0.3: - resolution: - { - integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==, - } + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} dev: false /y18n/5.0.8: - resolution: - { - integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} /yallist/2.1.2: - resolution: - { - integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==, - } + resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} dev: false /yallist/4.0.0: - resolution: - { - integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, - } + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} /yaml/2.1.3: - resolution: - { - integrity: sha512-AacA8nRULjKMX2DvWvOAdBZMOfQlypSFkjcOcu9FalllIDJ1kvlREzcdIZmidQUqqeMv7jorHjq2HlLv/+c2lg==, - } - engines: {node: ">= 14"} + resolution: {integrity: sha512-AacA8nRULjKMX2DvWvOAdBZMOfQlypSFkjcOcu9FalllIDJ1kvlREzcdIZmidQUqqeMv7jorHjq2HlLv/+c2lg==} + engines: {node: '>= 14'} /yargs-parser/18.1.3: - resolution: - { - integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} dependencies: camelcase: 5.3.1 decamelize: 1.2.0 dev: false /yargs-parser/20.2.9: - resolution: - { - integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} dev: true /yargs-parser/21.1.1: - resolution: - { - integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} /yargs/15.4.1: - resolution: - { - integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} dependencies: cliui: 6.0.0 decamelize: 1.2.0 @@ -21909,11 +17268,8 @@ packages: dev: false /yargs/17.6.2: - resolution: - { - integrity: sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==, - } - engines: {node: ">=12"} + resolution: {integrity: sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==} + engines: {node: '>=12'} dependencies: cliui: 8.0.1 escalade: 3.1.1 @@ -21924,41 +17280,30 @@ packages: yargs-parser: 21.1.1 /yauzl/2.10.0: - resolution: - { - integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==, - } + resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} dependencies: buffer-crc32: 0.2.13 fd-slicer: 1.1.0 dev: true /yn/3.1.1: - resolution: - { - integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==, - } - engines: {node: ">=6"} + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} /yocto-queue/0.1.0: - resolution: - { - integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==, - } - engines: {node: ">=10"} + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} /yoga-layout-prebuilt/1.10.0: - resolution: - { - integrity: sha512-YnOmtSbv4MTf7RGJMK0FvZ+KD8OEe/J5BNnR0GHhD8J/XcG/Qvxgszm0Un6FTHWW4uHlTgP0IztiXQnGyIR45g==, - } - engines: {node: ">=8"} + resolution: {integrity: sha512-YnOmtSbv4MTf7RGJMK0FvZ+KD8OEe/J5BNnR0GHhD8J/XcG/Qvxgszm0Un6FTHWW4uHlTgP0IztiXQnGyIR45g==} + engines: {node: '>=8'} dependencies: - "@types/yoga-layout": 1.9.2 + '@types/yoga-layout': 1.9.2 dev: false /zod/3.20.2: - resolution: - { - integrity: sha512-1MzNQdAvO+54H+EaK5YpyEy0T+Ejo/7YLHS93G3RnYWh5gaotGHwGeN/ZO687qEDU2y4CdStQYXVHIgrUl5UVQ==, - } + resolution: {integrity: sha512-1MzNQdAvO+54H+EaK5YpyEy0T+Ejo/7YLHS93G3RnYWh5gaotGHwGeN/ZO687qEDU2y4CdStQYXVHIgrUl5UVQ==} + + /zod/3.21.4: + resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} + dev: false From b323b3b9a970ca0bfcd7dc3b6df9ca4ed19d3fbc Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Mon, 15 May 2023 18:27:03 +0530 Subject: [PATCH 02/95] tanstack form first time working --- apps/next13/app/auth/components/LoginForm.tsx | 68 ++++++++----------- 1 file changed, 28 insertions(+), 40 deletions(-) diff --git a/apps/next13/app/auth/components/LoginForm.tsx b/apps/next13/app/auth/components/LoginForm.tsx index 306be88de4..ac877934a3 100644 --- a/apps/next13/app/auth/components/LoginForm.tsx +++ b/apps/next13/app/auth/components/LoginForm.tsx @@ -7,40 +7,25 @@ import {Login} from "../../auth/validations" import {useMutation} from "@blitzjs/rpc" import {startTransition, useMemo} from "react" import {useRouter} from "next/navigation" -import { - FieldApi, - FormApi, - createFormFactory, - useField, -} from "@tanstack/react-form"; +import {FieldApi, FormApi, createFormFactory, useField} from "@tanstack/react-form" +import * as z from "zod" -type Person = { - firstName: string; - lastName: string; -}; - -type Hobby = { - name: string; - description: string; - yearsOfExperience: number; -}; +type Person = z.infer const formFactory = createFormFactory({ defaultValues: { - firstName: "", - lastName: "", + email: "", + password: "", }, -}); +}) -function FieldInfo({ field }: { field: FieldApi }) { +function FieldInfo({field}: {field: FieldApi}) { return ( <> - {field.state.meta.touchedError ? ( - {field.state.meta.touchedError} - ) : null}{" "} + {field.state.meta.touchedError ? {field.state.meta.touchedError} : null}{" "} {field.state.meta.isValidating ? "Validating..." : null} - ); + ) } export const LoginForm = () => { @@ -49,9 +34,9 @@ export const LoginForm = () => { const form = formFactory.useForm({ onSubmit: async (values, formApi) => { // Do something with form data - console.log(values); + console.log(values) }, - }); + }) return (

Login

@@ -61,19 +46,22 @@ export const LoginForm = () => {
{/* A type-safe and pre-bound field component*/} - !value - ? "A first name is required" - : value.length < 3 - ? "First name must be at least 3 characters" - : undefined - } - onChangeAsync={async (value) => { - await new Promise((resolve) => setTimeout(resolve, 1000)); - return ( - value.includes("error") && 'No "error" allowed in first name' - ); + name="email" + validate={(value) => { + if (!value) { + return "Email is required" + } + const result = Login.partial({ + email: true, + }).safeParse({ + email: value, + }) + console.log(result) + if (result.success) { + return null + } else { + return JSON.parse(result.error.message)[0].message + } }} children={(field) => { // Avoid hasty abstractions. Render props are great! @@ -82,7 +70,7 @@ export const LoginForm = () => { - ); + ) }} />
From 690eec269a5d9e7fa599128636fac12a33fe7da9 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Tue, 16 May 2023 15:33:12 +0530 Subject: [PATCH 03/95] complete app template --- .../app/(auth)/components/LoginForm.tsx | 126 ++++++++++++++++++ .../app/(auth)/components/SignupForm.tsx | 126 ++++++++++++++++++ apps/next13/app/{auth => (auth)}/layout.tsx | 0 .../app/{auth => (auth)}/login/page.tsx | 0 .../mutations/changePassword.ts | 0 .../mutations/forgotPassword.test.ts | 0 .../mutations/forgotPassword.ts | 0 .../app/{auth => (auth)}/mutations/login.ts | 0 .../app/{auth => (auth)}/mutations/logout.ts | 0 .../mutations/resetPassword.test.ts | 0 .../mutations/resetPassword.ts | 0 .../app/{auth => (auth)}/mutations/signup.ts | 0 .../app/{auth => (auth)}/signup/page.tsx | 0 .../app/{auth => (auth)}/validations.ts | 0 apps/next13/app/(home)/@auth/error.tsx | 24 ---- apps/next13/app/(home)/@auth/page.tsx | 17 --- apps/next13/app/(home)/@starter/page.tsx | 15 --- apps/next13/app/auth/components/LoginForm.tsx | 95 ------------- .../next13/app/auth/components/SignupForm.tsx | 51 ------- apps/next13/app/core/components/Form.tsx | 83 ------------ .../app/core/components/LabeledTextField.tsx | 63 --------- .../@auth => core}/components/Logout.tsx | 8 +- apps/next13/app/core/validators/zod.ts | 18 +++ .../next13/app/{(home)/@auth => }/loading.tsx | 0 .../app/{(home)/layout.tsx => page.tsx} | 41 ++++-- .../app/{(home) => styles}/Home.module.css | 0 26 files changed, 303 insertions(+), 364 deletions(-) create mode 100644 apps/next13/app/(auth)/components/LoginForm.tsx create mode 100644 apps/next13/app/(auth)/components/SignupForm.tsx rename apps/next13/app/{auth => (auth)}/layout.tsx (100%) rename apps/next13/app/{auth => (auth)}/login/page.tsx (100%) rename apps/next13/app/{auth => (auth)}/mutations/changePassword.ts (100%) rename apps/next13/app/{auth => (auth)}/mutations/forgotPassword.test.ts (100%) rename apps/next13/app/{auth => (auth)}/mutations/forgotPassword.ts (100%) rename apps/next13/app/{auth => (auth)}/mutations/login.ts (100%) rename apps/next13/app/{auth => (auth)}/mutations/logout.ts (100%) rename apps/next13/app/{auth => (auth)}/mutations/resetPassword.test.ts (100%) rename apps/next13/app/{auth => (auth)}/mutations/resetPassword.ts (100%) rename apps/next13/app/{auth => (auth)}/mutations/signup.ts (100%) rename apps/next13/app/{auth => (auth)}/signup/page.tsx (100%) rename apps/next13/app/{auth => (auth)}/validations.ts (100%) delete mode 100644 apps/next13/app/(home)/@auth/error.tsx delete mode 100644 apps/next13/app/(home)/@auth/page.tsx delete mode 100644 apps/next13/app/(home)/@starter/page.tsx delete mode 100644 apps/next13/app/auth/components/LoginForm.tsx delete mode 100644 apps/next13/app/auth/components/SignupForm.tsx delete mode 100644 apps/next13/app/core/components/Form.tsx delete mode 100644 apps/next13/app/core/components/LabeledTextField.tsx rename apps/next13/app/{(home)/@auth => core}/components/Logout.tsx (59%) create mode 100644 apps/next13/app/core/validators/zod.ts rename apps/next13/app/{(home)/@auth => }/loading.tsx (100%) rename apps/next13/app/{(home)/layout.tsx => page.tsx} (88%) rename apps/next13/app/{(home) => styles}/Home.module.css (100%) diff --git a/apps/next13/app/(auth)/components/LoginForm.tsx b/apps/next13/app/(auth)/components/LoginForm.tsx new file mode 100644 index 0000000000..707219ff89 --- /dev/null +++ b/apps/next13/app/(auth)/components/LoginForm.tsx @@ -0,0 +1,126 @@ +import Link from "next/link" +import login from "../mutations/login" +import {Login} from "../validations" +import {useMutation} from "@blitzjs/rpc" +import {startTransition} from "react" +import {useRouter} from "next/navigation" +import {FieldApi, createFormFactory} from "@tanstack/react-form" +import * as z from "zod" +import {AuthenticationError} from "blitz" +import { zodValidate } from "@/app/core/validators/zod" + +type TLogin = z.infer + +const formFactory = createFormFactory({ + defaultValues: { + email: "", + password: "", + }, +}) + +function FieldInfo({field}: {field: FieldApi}) { + return ( + <> + {field.state.meta.touchedError ? {field.state.meta.touchedError} : null}{" "} + {field.state.meta.isValidating ? "Validating..." : null} + + ) +} + +export const LoginForm = () => { + const [loginMutation] = useMutation(login) + const router = useRouter() + const form = formFactory.useForm({ + onSubmit: async (values, formApi) => { + try { + await loginMutation(values) + startTransition(() => { + // Refresh the current route and fetch new data from the server without + // losing client-side browser or React state. + router.refresh() + }) + } catch (error: any) { + if ( + error instanceof AuthenticationError || + error.toString().includes("AuthenticationError") + ) { + return (formApi.state.fieldMeta.password.touchedError = + "Invalid email or password. Please try again.") + } + if (error.code === "P2002" && error.meta?.target?.includes("email")) { + // Error "P2002" comes from Prisma (https://www.prisma.io/docs/reference/api-reference/error-reference#p2002) + return (formApi.state.fieldMeta.email.touchedError = + "This email is already being used. Please try again.") + } else { + return (formApi.state.fieldMeta.password.touchedError = error.toString()) + } + } + }, + }) + return ( +
+

Login

+ + +
+
+ {/* A type-safe and pre-bound field component*/} + { + return zodValidate(Login, "email")(value) + }} + children={(field) => { + // Avoid hasty abstractions. Render props are great! + return ( + <> + + + + + ) + }} + /> + { + return zodValidate(Login, "password")(value) + }} + children={(field) => { + // Avoid hasty abstractions. Render props are great! + return ( + <> + + + + + ) + }} + /> +
+ [state.canSubmit, state.isSubmitting]} + children={([canSubmit, isSubmitting]) => ( + + )} + /> + +
+ +
+ Or Sign Up +
+
+ ) +} + +export default LoginForm diff --git a/apps/next13/app/(auth)/components/SignupForm.tsx b/apps/next13/app/(auth)/components/SignupForm.tsx new file mode 100644 index 0000000000..44107d94a9 --- /dev/null +++ b/apps/next13/app/(auth)/components/SignupForm.tsx @@ -0,0 +1,126 @@ +import Link from "next/link" +import {Signup} from "../validations" +import {useMutation} from "@blitzjs/rpc" +import {startTransition} from "react" +import {useRouter} from "next/navigation" +import {FieldApi, createFormFactory} from "@tanstack/react-form" +import * as z from "zod" +import {AuthenticationError} from "blitz" +import { zodValidate } from "@/app/core/validators/zod" +import signup from "../mutations/signup" + +type TSignup = z.infer + +const formFactory = createFormFactory({ + defaultValues: { + email: "", + password: "", + }, +}) + +function FieldInfo({field}: {field: FieldApi}) { + return ( + <> + {field.state.meta.touchedError ? {field.state.meta.touchedError} : null}{" "} + {field.state.meta.isValidating ? "Validating..." : null} + + ) +} + +export const SignupForm = () => { + const [signupMutation] = useMutation(signup) + const router = useRouter() + const form = formFactory.useForm({ + onSubmit: async (values, formApi) => { + try { + await signupMutation(values) + startTransition(() => { + // Refresh the current route and fetch new data from the server without + // losing client-side browser or React state. + router.refresh() + }) + } catch (error: any) { + if ( + error instanceof AuthenticationError || + error.toString().includes("AuthenticationError") + ) { + return (formApi.state.fieldMeta.password.touchedError = + "Invalid email or password. Please try again.") + } + if (error.code === "P2002" && error.meta?.target?.includes("email")) { + // Error "P2002" comes from Prisma (https://www.prisma.io/docs/reference/api-reference/error-reference#p2002) + return (formApi.state.fieldMeta.email.touchedError = + "This email is already being used. Please try again.") + } else { + return (formApi.state.fieldMeta.password.touchedError = error.toString()) + } + } + }, + }) + return ( +
+

Signup

+ + +
+
+ {/* A type-safe and pre-bound field component*/} + { + return zodValidate(Signup, "email")(value) + }} + children={(field) => { + // Avoid hasty abstractions. Render props are great! + return ( + <> + + + + + ) + }} + /> + { + return zodValidate(Signup, "password")(value) + }} + children={(field) => { + // Avoid hasty abstractions. Render props are great! + return ( + <> + + + + + ) + }} + /> +
+ [state.canSubmit, state.isSubmitting]} + children={([canSubmit, isSubmitting]) => ( + + )} + /> + +
+ +
+ Or Sign Up +
+
+ ) +} + +export default SignupForm diff --git a/apps/next13/app/auth/layout.tsx b/apps/next13/app/(auth)/layout.tsx similarity index 100% rename from apps/next13/app/auth/layout.tsx rename to apps/next13/app/(auth)/layout.tsx diff --git a/apps/next13/app/auth/login/page.tsx b/apps/next13/app/(auth)/login/page.tsx similarity index 100% rename from apps/next13/app/auth/login/page.tsx rename to apps/next13/app/(auth)/login/page.tsx diff --git a/apps/next13/app/auth/mutations/changePassword.ts b/apps/next13/app/(auth)/mutations/changePassword.ts similarity index 100% rename from apps/next13/app/auth/mutations/changePassword.ts rename to apps/next13/app/(auth)/mutations/changePassword.ts diff --git a/apps/next13/app/auth/mutations/forgotPassword.test.ts b/apps/next13/app/(auth)/mutations/forgotPassword.test.ts similarity index 100% rename from apps/next13/app/auth/mutations/forgotPassword.test.ts rename to apps/next13/app/(auth)/mutations/forgotPassword.test.ts diff --git a/apps/next13/app/auth/mutations/forgotPassword.ts b/apps/next13/app/(auth)/mutations/forgotPassword.ts similarity index 100% rename from apps/next13/app/auth/mutations/forgotPassword.ts rename to apps/next13/app/(auth)/mutations/forgotPassword.ts diff --git a/apps/next13/app/auth/mutations/login.ts b/apps/next13/app/(auth)/mutations/login.ts similarity index 100% rename from apps/next13/app/auth/mutations/login.ts rename to apps/next13/app/(auth)/mutations/login.ts diff --git a/apps/next13/app/auth/mutations/logout.ts b/apps/next13/app/(auth)/mutations/logout.ts similarity index 100% rename from apps/next13/app/auth/mutations/logout.ts rename to apps/next13/app/(auth)/mutations/logout.ts diff --git a/apps/next13/app/auth/mutations/resetPassword.test.ts b/apps/next13/app/(auth)/mutations/resetPassword.test.ts similarity index 100% rename from apps/next13/app/auth/mutations/resetPassword.test.ts rename to apps/next13/app/(auth)/mutations/resetPassword.test.ts diff --git a/apps/next13/app/auth/mutations/resetPassword.ts b/apps/next13/app/(auth)/mutations/resetPassword.ts similarity index 100% rename from apps/next13/app/auth/mutations/resetPassword.ts rename to apps/next13/app/(auth)/mutations/resetPassword.ts diff --git a/apps/next13/app/auth/mutations/signup.ts b/apps/next13/app/(auth)/mutations/signup.ts similarity index 100% rename from apps/next13/app/auth/mutations/signup.ts rename to apps/next13/app/(auth)/mutations/signup.ts diff --git a/apps/next13/app/auth/signup/page.tsx b/apps/next13/app/(auth)/signup/page.tsx similarity index 100% rename from apps/next13/app/auth/signup/page.tsx rename to apps/next13/app/(auth)/signup/page.tsx diff --git a/apps/next13/app/auth/validations.ts b/apps/next13/app/(auth)/validations.ts similarity index 100% rename from apps/next13/app/auth/validations.ts rename to apps/next13/app/(auth)/validations.ts diff --git a/apps/next13/app/(home)/@auth/error.tsx b/apps/next13/app/(home)/@auth/error.tsx deleted file mode 100644 index 2c6571bf17..0000000000 --- a/apps/next13/app/(home)/@auth/error.tsx +++ /dev/null @@ -1,24 +0,0 @@ -"use client" // Error components must be Client components - -import React, {useEffect} from "react" - -export default function Error({error, reset}: {error: Error; reset: () => void}) { - useEffect(() => { - // Log the error to an error reporting service - console.error(error) - }, [error]) - - return ( -
-

Something went wrong!

- -
- ) -} diff --git a/apps/next13/app/(home)/@auth/page.tsx b/apps/next13/app/(home)/@auth/page.tsx deleted file mode 100644 index cfabe1405c..0000000000 --- a/apps/next13/app/(home)/@auth/page.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import getCurrentUser from "@/app/users/queries/getCurrentUser" -import {invoke} from "@/app/blitz-server" -import LogoutButton from "./components/Logout" - -export default async function AuthenticatedHomePage() { - const currentUser = await invoke(getCurrentUser, null) - return ( - <> - -
- User id: {currentUser!.id} -
- User role: {currentUser!.role} -
- - ) -} diff --git a/apps/next13/app/(home)/@starter/page.tsx b/apps/next13/app/(home)/@starter/page.tsx deleted file mode 100644 index e09f936bdd..0000000000 --- a/apps/next13/app/(home)/@starter/page.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import Link from "next/link" -import styles from "../Home.module.css" - -export default async function StarterHomePage() { - return ( - <> - - Sign Up - - - Login - - - ) -} diff --git a/apps/next13/app/auth/components/LoginForm.tsx b/apps/next13/app/auth/components/LoginForm.tsx deleted file mode 100644 index ac877934a3..0000000000 --- a/apps/next13/app/auth/components/LoginForm.tsx +++ /dev/null @@ -1,95 +0,0 @@ -import {AuthenticationError, PromiseReturnType} from "blitz" -import Link from "next/link" -import {LabeledTextField} from "../../core/components/LabeledTextField" -import {Form, FORM_ERROR} from "../../core/components/Form" -import login from "../../auth/mutations/login" -import {Login} from "../../auth/validations" -import {useMutation} from "@blitzjs/rpc" -import {startTransition, useMemo} from "react" -import {useRouter} from "next/navigation" -import {FieldApi, FormApi, createFormFactory, useField} from "@tanstack/react-form" -import * as z from "zod" - -type Person = z.infer - -const formFactory = createFormFactory({ - defaultValues: { - email: "", - password: "", - }, -}) - -function FieldInfo({field}: {field: FieldApi}) { - return ( - <> - {field.state.meta.touchedError ? {field.state.meta.touchedError} : null}{" "} - {field.state.meta.isValidating ? "Validating..." : null} - - ) -} - -export const LoginForm = () => { - const [loginMutation] = useMutation(login) - const router = useRouter() - const form = formFactory.useForm({ - onSubmit: async (values, formApi) => { - // Do something with form data - console.log(values) - }, - }) - return ( -
-

Login

- - -
-
- {/* A type-safe and pre-bound field component*/} - { - if (!value) { - return "Email is required" - } - const result = Login.partial({ - email: true, - }).safeParse({ - email: value, - }) - console.log(result) - if (result.success) { - return null - } else { - return JSON.parse(result.error.message)[0].message - } - }} - children={(field) => { - // Avoid hasty abstractions. Render props are great! - return ( - <> - - - - ) - }} - /> -
- [state.canSubmit, state.isSubmitting]} - children={([canSubmit, isSubmitting]) => ( - - )} - /> - -
- -
- Or Sign Up -
-
- ) -} - -export default LoginForm diff --git a/apps/next13/app/auth/components/SignupForm.tsx b/apps/next13/app/auth/components/SignupForm.tsx deleted file mode 100644 index 6a0703f48e..0000000000 --- a/apps/next13/app/auth/components/SignupForm.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import {LabeledTextField} from "../../core/components/LabeledTextField" -import {Form, FORM_ERROR} from "../../core/components/Form" -import signup from "../../auth/mutations/signup" -import {Signup} from "../../auth/validations" -import {useMutation} from "@blitzjs/rpc" -import {startTransition} from "react" -import {useRouter} from "next/navigation" - -type SignupFormProps = { - onSuccess?: () => void -} - -export const SignupForm = (props: SignupFormProps) => { - const [signupMutation] = useMutation(signup) - const router = useRouter() - - return ( -
-

Create an Account

- -
{ - try { - await signupMutation(values) - props.onSuccess?.() - startTransition(() => { - // Refresh the current route and fetch new data from the server without - // losing client-side browser or React state. - router.refresh() - }) - } catch (error: any) { - if (error.code === "P2002" && error.meta?.target?.includes("email")) { - // Error "P2002" comes from Prisma (https://www.prisma.io/docs/reference/api-reference/error-reference#p2002) - return {email: "This email is already being used"} - } else { - return {[FORM_ERROR]: error.toString()} - } - } - }} - > - - - -
- ) -} - -export default SignupForm diff --git a/apps/next13/app/core/components/Form.tsx b/apps/next13/app/core/components/Form.tsx deleted file mode 100644 index 049a6536cb..0000000000 --- a/apps/next13/app/core/components/Form.tsx +++ /dev/null @@ -1,83 +0,0 @@ -import {useState, ReactNode, PropsWithoutRef} from "react" -import {FormProvider, useForm, UseFormProps} from "react-hook-form" -import {zodResolver} from "@hookform/resolvers/zod" -import {z} from "zod" - -export interface FormProps> - extends Omit, "onSubmit"> { - /** All your form fields */ - children?: ReactNode - /** Text to display in the submit button */ - submitText?: string - schema?: S - onSubmit: (values: z.infer) => Promise - initialValues?: UseFormProps>["defaultValues"] -} - -interface OnSubmitResult { - FORM_ERROR?: string - [prop: string]: any -} - -export const FORM_ERROR = "FORM_ERROR" - -export function Form>({ - children, - submitText, - schema, - initialValues, - onSubmit, - ...props -}: FormProps) { - const ctx = useForm>({ - mode: "onBlur", - resolver: schema ? zodResolver(schema) : undefined, - defaultValues: initialValues, - }) - const [formError, setFormError] = useState(null) - - return ( - -
{ - const result = (await onSubmit(values)) || {} - for (const [key, value] of Object.entries(result)) { - if (key === FORM_ERROR) { - setFormError(value) - } else { - ctx.setError(key as any, { - type: "submit", - message: value, - }) - } - } - })} - className="form" - {...props} - > - {/* Form fields supplied as children are rendered here */} - {children} - - {formError && ( -
- {formError} -
- )} - - {submitText && ( - - )} - - -
-
- ) -} - -export default Form diff --git a/apps/next13/app/core/components/LabeledTextField.tsx b/apps/next13/app/core/components/LabeledTextField.tsx deleted file mode 100644 index 69b6697205..0000000000 --- a/apps/next13/app/core/components/LabeledTextField.tsx +++ /dev/null @@ -1,63 +0,0 @@ -import {forwardRef, PropsWithoutRef, ComponentPropsWithoutRef} from "react" -import {useFormContext} from "react-hook-form" -import {ErrorMessage} from "@hookform/error-message" - -export interface LabeledTextFieldProps extends PropsWithoutRef { - /** Field name. */ - name: string - /** Field label. */ - label: string - /** Field type. Doesn't include radio buttons and checkboxes */ - type?: "text" | "password" | "email" | "number" - outerProps?: PropsWithoutRef - labelProps?: ComponentPropsWithoutRef<"label"> -} - -export const LabeledTextField = forwardRef( - ({label, outerProps, labelProps, name, ...props}, ref) => { - const { - register, - formState: {isSubmitting, errors}, - } = useFormContext() - - return ( -
- - - ( -
- {message} -
- )} - errors={errors} - name={name} - /> - - -
- ) - }, -) - -LabeledTextField.displayName = "LabeledTextField" - -export default LabeledTextField diff --git a/apps/next13/app/(home)/@auth/components/Logout.tsx b/apps/next13/app/core/components/Logout.tsx similarity index 59% rename from apps/next13/app/(home)/@auth/components/Logout.tsx rename to apps/next13/app/core/components/Logout.tsx index 93c96c4e2b..e286b9a06d 100644 --- a/apps/next13/app/(home)/@auth/components/Logout.tsx +++ b/apps/next13/app/core/components/Logout.tsx @@ -1,18 +1,20 @@ "use client" -import styles from "../../Home.module.css" -import logout from "@/app/auth/mutations/logout" +import styles from "@/app/styles/Home.module.css" +import logout from "@/app/(auth)/mutations/logout" import {useRouter} from "next/navigation" +import { useMutation } from "@blitzjs/rpc" export default function LogoutButton() { const router = useRouter() + const [logoutMutation] = useMutation(logout) return ( <> + )} + /> + + + +
+ Or Sign Up +
+
+ ) +} + +export default LoginForm diff --git a/packages/generator/templates/app/app/(auth)/components/SignupForm.tsx b/packages/generator/templates/app/app/(auth)/components/SignupForm.tsx new file mode 100644 index 0000000000..44107d94a9 --- /dev/null +++ b/packages/generator/templates/app/app/(auth)/components/SignupForm.tsx @@ -0,0 +1,126 @@ +import Link from "next/link" +import {Signup} from "../validations" +import {useMutation} from "@blitzjs/rpc" +import {startTransition} from "react" +import {useRouter} from "next/navigation" +import {FieldApi, createFormFactory} from "@tanstack/react-form" +import * as z from "zod" +import {AuthenticationError} from "blitz" +import { zodValidate } from "@/app/core/validators/zod" +import signup from "../mutations/signup" + +type TSignup = z.infer + +const formFactory = createFormFactory({ + defaultValues: { + email: "", + password: "", + }, +}) + +function FieldInfo({field}: {field: FieldApi}) { + return ( + <> + {field.state.meta.touchedError ? {field.state.meta.touchedError} : null}{" "} + {field.state.meta.isValidating ? "Validating..." : null} + + ) +} + +export const SignupForm = () => { + const [signupMutation] = useMutation(signup) + const router = useRouter() + const form = formFactory.useForm({ + onSubmit: async (values, formApi) => { + try { + await signupMutation(values) + startTransition(() => { + // Refresh the current route and fetch new data from the server without + // losing client-side browser or React state. + router.refresh() + }) + } catch (error: any) { + if ( + error instanceof AuthenticationError || + error.toString().includes("AuthenticationError") + ) { + return (formApi.state.fieldMeta.password.touchedError = + "Invalid email or password. Please try again.") + } + if (error.code === "P2002" && error.meta?.target?.includes("email")) { + // Error "P2002" comes from Prisma (https://www.prisma.io/docs/reference/api-reference/error-reference#p2002) + return (formApi.state.fieldMeta.email.touchedError = + "This email is already being used. Please try again.") + } else { + return (formApi.state.fieldMeta.password.touchedError = error.toString()) + } + } + }, + }) + return ( +
+

Signup

+ + +
+
+ {/* A type-safe and pre-bound field component*/} + { + return zodValidate(Signup, "email")(value) + }} + children={(field) => { + // Avoid hasty abstractions. Render props are great! + return ( + <> + + + + + ) + }} + /> + { + return zodValidate(Signup, "password")(value) + }} + children={(field) => { + // Avoid hasty abstractions. Render props are great! + return ( + <> + + + + + ) + }} + /> +
+ [state.canSubmit, state.isSubmitting]} + children={([canSubmit, isSubmitting]) => ( + + )} + /> + +
+ +
+ Or Sign Up +
+
+ ) +} + +export default SignupForm diff --git a/packages/generator/templates/app/app/(auth)/layout.tsx b/packages/generator/templates/app/app/(auth)/layout.tsx new file mode 100644 index 0000000000..79b8cd1cc8 --- /dev/null +++ b/packages/generator/templates/app/app/(auth)/layout.tsx @@ -0,0 +1,8 @@ +import {useAuthenticatedBlitzContext} from "@blitzjs/auth" + +export default async function AuthLayout({children}: {children: React.ReactNode}) { + await useAuthenticatedBlitzContext({ + redirectAuthenticatedTo: "/", + }) + return <>{children} +} diff --git a/packages/generator/templates/app/app/(auth)/login/page.tsx b/packages/generator/templates/app/app/(auth)/login/page.tsx new file mode 100644 index 0000000000..7c98e22b77 --- /dev/null +++ b/packages/generator/templates/app/app/(auth)/login/page.tsx @@ -0,0 +1,9 @@ +"use client" + +import {LoginForm} from "../components/LoginForm" + +const LoginPage = () => { + return {}} /> +} + +export default LoginPage diff --git a/packages/generator/templates/app/app/(auth)/mutations/changePassword.ts b/packages/generator/templates/app/app/(auth)/mutations/changePassword.ts new file mode 100644 index 0000000000..41203ce137 --- /dev/null +++ b/packages/generator/templates/app/app/(auth)/mutations/changePassword.ts @@ -0,0 +1,26 @@ +import {NotFoundError} from "blitz" +import db from "@/db" +// import {authenticateUser} from "./login" +import {ChangePassword} from "../validations" +import {resolver} from "@blitzjs/rpc" +// import {SecurePassword} from "@blitzjs/auth" + +export default resolver.pipe( + //@ts-ignore + resolver.zod(ChangePassword), + resolver.authorize(), + async ({currentPassword, newPassword}, ctx) => { + const user = await db.user.findFirst({where: {id: ctx.session.userId}}) + if (!user) throw new NotFoundError() + + // await authenticateUser(user.email, currentPassword) + + // const hashedPassword = await SecurePassword.hash(newPassword.trim()) + await db.user.update({ + where: {id: user.id}, + data: {hashedPassword: newPassword}, + }) + + return true + }, +) diff --git a/packages/generator/templates/app/app/(auth)/mutations/forgotPassword.test.ts b/packages/generator/templates/app/app/(auth)/mutations/forgotPassword.test.ts new file mode 100644 index 0000000000..c5678da0e2 --- /dev/null +++ b/packages/generator/templates/app/app/(auth)/mutations/forgotPassword.test.ts @@ -0,0 +1,64 @@ +import {vi, describe, it, beforeEach} from "vitest" +import db from "@/db" +import {hash256} from "@blitzjs/auth" +import forgotPassword from "./forgotPassword" +import previewEmail from "preview-email" +import {Ctx} from "@blitzjs/next" + +beforeEach(async () => { + await db.$reset() +}) + +const generatedToken = "plain-token" +vi.mock("@blitzjs/auth", async () => { + const auth = await vi.importActual>("@blitzjs/auth")! + return { + ...auth, + generateToken: () => generatedToken, + } +}) + +vi.mock("preview-email", () => ({default: vi.fn()})) + +describe("forgotPassword mutation", () => { + it("does not throw error if user doesn't exist", async () => { + await expect(forgotPassword({email: "no-user@email.com"}, {} as Ctx)).resolves.not.toThrow() + }) + + it("works correctly", async () => { + // Create test user + const user = await db.user.create({ + data: { + email: "user@example.com", + tokens: { + // Create old token to ensure it's deleted + create: { + type: "RESET_PASSWORD", + hashedToken: "token", + expiresAt: new Date(), + sentTo: "user@example.com", + }, + }, + }, + include: {tokens: true}, + }) + + // Invoke the mutation + await forgotPassword({email: user.email}, {} as Ctx) + + const tokens = await db.token.findMany({where: {userId: user.id}}) + const token = tokens[0] + if (!user.tokens[0]) throw new Error("Missing user token") + if (!token) throw new Error("Missing token") + + // delete's existing tokens + expect(tokens.length).toBe(1) + + expect(token.id).not.toBe(user.tokens[0].id) + expect(token.type).toBe("RESET_PASSWORD") + expect(token.sentTo).toBe(user.email) + expect(token.hashedToken).toBe(hash256(generatedToken)) + expect(token.expiresAt > new Date()).toBe(true) + expect(previewEmail).toBeCalled() + }) +}) diff --git a/packages/generator/templates/app/app/(auth)/mutations/forgotPassword.ts b/packages/generator/templates/app/app/(auth)/mutations/forgotPassword.ts new file mode 100644 index 0000000000..672c76713e --- /dev/null +++ b/packages/generator/templates/app/app/(auth)/mutations/forgotPassword.ts @@ -0,0 +1,43 @@ +import {generateToken, hash256} from "@blitzjs/auth" +import {resolver} from "@blitzjs/rpc" +import db from "@/db" +import { forgotPasswordMailer } from "@/mailers/forgotPasswordMailer" +import {ForgotPassword} from "../validations" + +const RESET_PASSWORD_TOKEN_EXPIRATION_IN_HOURS = 4 + +export default resolver.pipe(resolver.zod(ForgotPassword), async ({ email }) => { + // 1. Get the user + const user = await db.user.findFirst({ where: { email: email.toLowerCase() } }) + + // 2. Generate the token and expiration date. + const token = generateToken() + const hashedToken = hash256(token) + const expiresAt = new Date() + expiresAt.setHours(expiresAt.getHours() + RESET_PASSWORD_TOKEN_EXPIRATION_IN_HOURS) + + // 3. If user with this email was found + if (user) { + // 4. Delete any existing password reset tokens + await db.token.deleteMany({ where: { type: "RESET_PASSWORD", userId: user.id } }) + // 5. Save this new token in the database. + await db.token.create({ + data: { + user: { connect: { id: user.id } }, + type: "RESET_PASSWORD", + expiresAt, + hashedToken, + sentTo: user.email, + }, + }) + // 6. Send the email + await forgotPasswordMailer({ to: user.email, token }).send() + } else { + // 7. If no user found wait the same time so attackers can't tell the difference + await new Promise((resolve) => setTimeout(resolve, 750)) + } + + // 8. Return the same result whether a password reset email was sent or not + return +}) + diff --git a/packages/generator/templates/app/app/(auth)/mutations/login.ts b/packages/generator/templates/app/app/(auth)/mutations/login.ts new file mode 100644 index 0000000000..4811af875a --- /dev/null +++ b/packages/generator/templates/app/app/(auth)/mutations/login.ts @@ -0,0 +1,29 @@ +import {resolver} from "@blitzjs/rpc" +import {AuthenticationError} from "blitz" +import db from "@/db" +import {Login} from "../validations" +import { SecurePassword } from "@blitzjs/auth/secure-password" + +export const authenticateUser = async (rawEmail: string, rawPassword: string) => { + const {email, password} = Login.parse({email: rawEmail, password: rawPassword}) + const user = await db.user.findFirst({where: {email}}) + if (!user) throw new AuthenticationError() + + const result = await SecurePassword.verify(user.hashedPassword, password) + + if (result === SecurePassword.VALID_NEEDS_REHASH) { + // Upgrade hashed password with a more secure hash + const improvedHash = await SecurePassword.hash(password) + await db.user.update({where: {id: user.id}, data: {hashedPassword: improvedHash}}) + } + + const {hashedPassword, ...rest} = user + return rest +} + +export default resolver.pipe(resolver.zod(Login), async ({email, password}, ctx) => { + const user = await authenticateUser(email, password) + await ctx.session.$create({userId: user.id, role: user.role}) + console.log("user", user) + return user +}) diff --git a/packages/generator/templates/app/app/(auth)/mutations/logout.ts b/packages/generator/templates/app/app/(auth)/mutations/logout.ts new file mode 100644 index 0000000000..ca7e6de856 --- /dev/null +++ b/packages/generator/templates/app/app/(auth)/mutations/logout.ts @@ -0,0 +1,5 @@ +import {Ctx} from "blitz" + +export default async function logout(_: any, ctx: Ctx) { + return await ctx.session.$revoke() +} diff --git a/packages/generator/templates/app/app/(auth)/mutations/resetPassword.test.ts b/packages/generator/templates/app/app/(auth)/mutations/resetPassword.test.ts new file mode 100644 index 0000000000..7ffa6c35ce --- /dev/null +++ b/packages/generator/templates/app/app/(auth)/mutations/resetPassword.test.ts @@ -0,0 +1,84 @@ +import {vi, describe, it, beforeEach, expect} from "vitest" +import resetPassword from "./resetPassword" +import db from "@/db" +import {hash256} from "@blitzjs/auth" +import {SecurePassword} from "@blitzjs/auth/secure-password" + +beforeEach(async () => { + await db.$reset() +}) + +const mockCtx: any = { + session: { + $create: vi.fn(), + }, +} + +describe("resetPassword mutation", () => { + it("works correctly", async () => { + expect(true).toBe(true) + + // Create test user + const goodToken = "randomPasswordResetToken" + const expiredToken = "expiredRandomPasswordResetToken" + const future = new Date() + future.setHours(future.getHours() + 4) + const past = new Date() + past.setHours(past.getHours() - 4) + + const user = await db.user.create({ + data: { + email: "user@example.com", + tokens: { + // Create old token to ensure it's deleted + create: [ + { + type: "RESET_PASSWORD", + hashedToken: hash256(expiredToken), + expiresAt: past, + sentTo: "user@example.com", + }, + { + type: "RESET_PASSWORD", + hashedToken: hash256(goodToken), + expiresAt: future, + sentTo: "user@example.com", + }, + ], + }, + }, + include: {tokens: true}, + }) + + const newPassword = "newPassword" + + // Non-existent token + await expect( + resetPassword({token: "no-token", password: "", passwordConfirmation: ""}, mockCtx), + ).rejects.toThrowError() + + // Expired token + await expect( + resetPassword( + {token: expiredToken, password: newPassword, passwordConfirmation: newPassword}, + mockCtx, + ), + ).rejects.toThrowError() + + // Good token + await resetPassword( + {token: goodToken, password: newPassword, passwordConfirmation: newPassword}, + mockCtx, + ) + + // Delete's the token + const numberOfTokens = await db.token.count({where: {userId: user.id}}) + expect(numberOfTokens).toBe(0) + + // Updates user's password + const updatedUser = await db.user.findFirst({where: {id: user.id}}) + expect(await SecurePassword.verify(updatedUser!.hashedPassword, newPassword)).toBe( + SecurePassword.VALID, + ) + }) +}) diff --git a/packages/generator/templates/app/src/auth/mutations/resetPassword.ts b/packages/generator/templates/app/app/(auth)/mutations/resetPassword.ts similarity index 100% rename from packages/generator/templates/app/src/auth/mutations/resetPassword.ts rename to packages/generator/templates/app/app/(auth)/mutations/resetPassword.ts diff --git a/packages/generator/templates/app/app/(auth)/mutations/signup.ts b/packages/generator/templates/app/app/(auth)/mutations/signup.ts new file mode 100644 index 0000000000..fe042ba76b --- /dev/null +++ b/packages/generator/templates/app/app/(auth)/mutations/signup.ts @@ -0,0 +1,18 @@ +import db from "@/db" +import {SecurePassword} from "@blitzjs/auth/secure-password" + +export default async function signup(input: {password: string; email: string}, ctx: any) { + const blitzContext = ctx + const hashedPassword = await SecurePassword.hash((input.password as string) || "test-password") + const email = (input.email as string) || "test" + Math.random() + "@test.com" + const user = await db.user.create({ + data: {email, hashedPassword}, + }) + + await blitzContext.session.$create({ + userId: user.id, + role: "user", + }) + + return {userId: blitzContext.session.userId, ...user, email: input.email} +} diff --git a/packages/generator/templates/app/app/(auth)/signup/page.tsx b/packages/generator/templates/app/app/(auth)/signup/page.tsx new file mode 100644 index 0000000000..c1b62ba3c8 --- /dev/null +++ b/packages/generator/templates/app/app/(auth)/signup/page.tsx @@ -0,0 +1,11 @@ +"use client" + +import {useRouter} from "next/navigation" +import SignupForm from "../components/SignupForm" + +const SignUp = () => { + const router = useRouter() + return router.push("/")} /> +} + +export default SignUp diff --git a/packages/generator/templates/app/app/(auth)/validations.ts b/packages/generator/templates/app/app/(auth)/validations.ts new file mode 100644 index 0000000000..f13218b685 --- /dev/null +++ b/packages/generator/templates/app/app/(auth)/validations.ts @@ -0,0 +1,42 @@ +import {z} from "zod" + +export const email = z + .string() + .email() + .transform((str) => str.toLowerCase().trim()) + +export const password = z + .string() + .min(10) + .max(100) + .transform((str) => str.trim()) + +export const Signup = z.object({ + email, + password, +}) + +export const Login = z.object({ + email, + password: z.string(), +}) + +export const ForgotPassword = z.object({ + email, +}) + +export const ResetPassword = z + .object({ + password: password, + passwordConfirmation: password, + token: z.string(), + }) + .refine((data) => data.password === data.passwordConfirmation, { + message: "Passwords don't match", + path: ["passwordConfirmation"], // set the path of the error + }) + +export const ChangePassword = z.object({ + currentPassword: z.string(), + newPassword: password, +}) diff --git a/packages/generator/templates/app/app/blitz-client.ts b/packages/generator/templates/app/app/blitz-client.ts new file mode 100644 index 0000000000..6dcdfb637e --- /dev/null +++ b/packages/generator/templates/app/app/blitz-client.ts @@ -0,0 +1,13 @@ +"use client" +import {AuthClientPlugin} from "@blitzjs/auth" +import {setupBlitzClient} from "@blitzjs/next" +import {BlitzRpcPlugin} from "@blitzjs/rpc" + +export const {withBlitz, useSession, queryClient, BlitzProvider} = setupBlitzClient({ + plugins: [ + AuthClientPlugin({ + cookiePrefix: "web-cookie-prefix", + }), + BlitzRpcPlugin({}), + ], +}) diff --git a/packages/generator/templates/app/app/blitz-server.ts b/packages/generator/templates/app/app/blitz-server.ts new file mode 100644 index 0000000000..e10b78d21b --- /dev/null +++ b/packages/generator/templates/app/app/blitz-server.ts @@ -0,0 +1,25 @@ +import type {BlitzCliConfig} from "blitz" +import {setupBlitzServer} from "@blitzjs/next" +import {AuthServerPlugin, PrismaStorage} from "@blitzjs/auth" +import db from "../db" +import {simpleRolesIsAuthorized} from "@blitzjs/auth" +import {BlitzLogger} from "blitz" +import {RpcServerPlugin} from "@blitzjs/rpc" + +const {api, getBlitzContext, useAuthenticatedBlitzContext, invoke} = setupBlitzServer({ + plugins: [ + AuthServerPlugin({ + cookiePrefix: "web-cookie-prefix", + storage: PrismaStorage(db), + isAuthorized: simpleRolesIsAuthorized, + }), + RpcServerPlugin({}), + ], + logger: BlitzLogger({}), +}) + +export {api, getBlitzContext, useAuthenticatedBlitzContext, invoke} + +export const cliConfig: BlitzCliConfig = { + customTemplates: "src/templates", +} diff --git a/packages/generator/templates/app/app/core/components/Logout.tsx b/packages/generator/templates/app/app/core/components/Logout.tsx new file mode 100644 index 0000000000..e286b9a06d --- /dev/null +++ b/packages/generator/templates/app/app/core/components/Logout.tsx @@ -0,0 +1,26 @@ +"use client" + +import styles from "@/app/styles/Home.module.css" +import logout from "@/app/(auth)/mutations/logout" +import {useRouter} from "next/navigation" +import { useMutation } from "@blitzjs/rpc" + +export default function LogoutButton() { + const router = useRouter() + const [logoutMutation] = useMutation(logout) + return ( + <> + + + ) +} \ No newline at end of file diff --git a/packages/generator/templates/app/app/core/validators/zod.ts b/packages/generator/templates/app/app/core/validators/zod.ts new file mode 100644 index 0000000000..623df9b212 --- /dev/null +++ b/packages/generator/templates/app/app/core/validators/zod.ts @@ -0,0 +1,18 @@ +import * as z from "zod" + +export function zodValidate, U = keyof T>(schema: T, field: U) { + return (value: string): string => { + const result = schema + .pick({ + [field as string]: true, + }) + .safeParse({ + [field as string]: value, + }) + if (result.success) { + return "" + } else { + return JSON.parse(result.error.message)[0].message + } + } +} diff --git a/packages/generator/templates/app/app/error.tsx b/packages/generator/templates/app/app/error.tsx new file mode 100644 index 0000000000..2c6571bf17 --- /dev/null +++ b/packages/generator/templates/app/app/error.tsx @@ -0,0 +1,24 @@ +"use client" // Error components must be Client components + +import React, {useEffect} from "react" + +export default function Error({error, reset}: {error: Error; reset: () => void}) { + useEffect(() => { + // Log the error to an error reporting service + console.error(error) + }, [error]) + + return ( +
+

Something went wrong!

+ +
+ ) +} diff --git a/packages/generator/templates/app/app/layout.tsx b/packages/generator/templates/app/app/layout.tsx new file mode 100644 index 0000000000..1b88cdda55 --- /dev/null +++ b/packages/generator/templates/app/app/layout.tsx @@ -0,0 +1,23 @@ +import "@/app/styles/globals.css" +import {BlitzProvider} from "./blitz-client" +import {Inter} from "next/font/google" + +const inter = Inter({subsets: ["latin"]}) + +export const metadata = { + title: "New Blitz App", + description: "Generated by blitz new ", +} + +export default function RootLayout({children}: {children: React.ReactNode}) { + return ( + + + + <>{children} + + + + ) +} + diff --git a/packages/generator/templates/app/app/loading.tsx b/packages/generator/templates/app/app/loading.tsx new file mode 100644 index 0000000000..2fafa2a60a --- /dev/null +++ b/packages/generator/templates/app/app/loading.tsx @@ -0,0 +1,4 @@ +export default function Loading() { + // Or a custom loading skeleton component + return "Loading..." +} diff --git a/packages/generator/templates/app/app/page.tsx b/packages/generator/templates/app/app/page.tsx new file mode 100644 index 0000000000..2df6534509 --- /dev/null +++ b/packages/generator/templates/app/app/page.tsx @@ -0,0 +1,166 @@ +import Link from "next/link" +import {invoke} from "./blitz-server" +import LogoutButton from "./core/components/Logout" +import styles from "./styles/Home.module.css" +import getCurrentUser from "./users/queries/getCurrentUser" + +export default async function Home() { + const currentUser = await invoke(getCurrentUser, null) + return ( + <> +
+
+
+

+ Congrats! Your app is ready, including user sign-up and log-in. +

+
+ +
+
+
+
+ + + + + +
+ +

Your database & authentication is ready. Try it by signing up.

+ + {/* Auth */} + +
+ {currentUser ? ( + <> + +
+ User id: {currentUser.id} +
+ User role: {currentUser.role} +
+ + ) : ( + <> + + Sign Up + + + Login + + + )} +
+
+ +
+ {/* Instructions */} +
+

+ Add a new model by running the following in your terminal: +

+ +
+
+ 1 +
+                      blitz generate all project
+                    
+
+ +
+ 2 +
+                      Ctrl + c
+                    
+
+ +
+ 3 +
+                      blitz dev
+                    
+
+ +
+ 4 +
+                      
+                        Go to{" "}
+                        {/* @ts-ignore: TODO remove after scaffolding */}
+                        
+                          /projects
+                        
+                      
+                    
+
+
+
+ {/* Links */} + +
+
+
+ + +
+ + ) +} diff --git a/packages/generator/templates/app/app/styles/Home.module.css b/packages/generator/templates/app/app/styles/Home.module.css new file mode 100644 index 0000000000..3453d1ee11 --- /dev/null +++ b/packages/generator/templates/app/app/styles/Home.module.css @@ -0,0 +1,303 @@ +.container { + display: flex; + flex-direction: column; + height: 100vh; +} + +.main { + flex: 1; + padding: 0rem 1rem; + display: flex; + flex-direction: column; +} + +.wrapper { + display: flex; + flex-direction: column; + gap: 2rem; +} + +.frost { + background: rgba(255, 255, 255, 0.2); + border-radius: 16px; + box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1); + backdrop-filter: blur(5px); + -webkit-backdrop-filter: blur(5px); + border: 1px solid rgba(255, 255, 255, 0.31); +} + +.header { + display: flex; + flex-direction: column; + padding: 4rem 0rem 2rem 0rem; + text-align: center; + gap: 2rem; +} + +.header h1 { + max-width: 620px; + align-self: center; +} + +.body { + composes: frost; + border-radius: var(--border-radius); + display: flex; + padding: 1rem; + width: 100%; + flex-direction: row; + align-self: center; + max-width: var(--screen-width); +} + +.instructions { + display: inline-flex; + flex-direction: column; + padding: 1rem; + width: 100%; +} + +.globe { + position: fixed; + width: 350vmin; + height: 75vmin; + left: 20%; + top: 50%; + transform: translate(-50%, calc(-50% + 40px)); + z-index: -1; + border-radius: 100%; + background-image: radial-gradient( + 95.63% 95.63% at 95.92% 0%, + rgba(255, 255, 255, 0.62) 0%, + #8155ff38 60.42%, + #002fff5c 169% + ); + filter: blur(8vmin); +} + +.footer { + display: flex; + padding: 2rem 0; + justify-content: center; + align-items: center; +} + +.footer span { + margin-right: 0.2rem; +} + +.code { + display: flex; + align-items: center; + gap: 0.5rem; +} + +.code span { + background: rgba(124, 58, 237, 50%); + border-radius: 50rem; + font-size: 14px; + font-weight: 500; + padding: 17px; + width: 20px; + height: 20px; + display: flex; + align-items: center; + justify-content: center; + color: rgb(57, 33, 97); +} + +.code pre { + background: rgba(124, 58, 237, 12%); + border-radius: 4px; + padding: 0.7em 1.4em; + text-align: center; +} + +.code code { + font-size: 0.86em; + font-weight: bold; + color: rgb(124, 58, 237); + font-family: Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, + Bitstream Vera Sans Mono, Courier New, monospace; +} + +.toastContainer { + border: 1px solid #edff; + padding: 0 1rem; + background: #eeff; + color: #62af; + text-align: center; +} + +.toastContainer strong { + color: rgb(124, 58, 237); +} + +.textLink { + color: rgb(124, 58, 237); + background: linear-gradient(to right, rgba(231, 216, 246, 1), rgba(231, 216, 246, 1)), + linear-gradient(to right, rgba(99, 1, 235, 1), rgba(124, 58, 237, 1), rgba(231, 216, 246, 1)); + background-size: 100% 1px, 0 1px; + background-position: 100% 100%, 0 100%; + background-repeat: no-repeat; + transition: background-size 400ms; +} + +.textLink:hover, +.textLink:focus, +.textLink:active { + background-size: 0 1px, 100% 1px; +} + +.arrowIcon { + box-sizing: border-box; + display: block; + width: 8px; + height: 8px; + border-top: 2px solid; + transform: scale(var(--ggs, 1)); + border-right: 2px solid; + position: absolute; + right: 6px; + top: 6px; + color: #b1a5c4; +} + +.arrowIcon::after { + content: ""; + display: block; + box-sizing: border-box; + position: absolute; + width: 8px; + height: 2px; + background: currentColor; + transform: rotate(-45deg); + top: 2px; + right: -1px; +} + +.buttonContainer { + display: flex; + flex-direction: row; + gap: 1rem; + justify-content: center; + align-items: center; + flex: 1; +} + +.button { + background: linear-gradient(to top, rgb(124, 58, 237), rgb(117, 81, 236)); + border: 1px solid rgb(231, 216, 246); + color: white; + text-shadow: rgba(0, 0, 0, 0.25) 0px 3px 8px; + padding: 0 24px; + height: 48px; + width: 200px; + max-width: 300px; + position: relative; + display: inline-flex; + justify-content: center; + align-items: center; + flex-shrink: 0; + user-select: none; + white-space: nowrap; + border-radius: 0.75rem; + border-bottom-left-radius: 0px; + font-size: 15px; + transition: all 0.3s ease 0s; + cursor: pointer; +} + +.button:hover { + color: white; + text-shadow: rgb(0 0 0 / 56%) 0px 3px 12px; + box-shadow: rgb(80 63 205 / 50%) 0px 1px 40px; +} + +.loginButton { + composes: button; + background: rgb(248 250 252); + border: 1px solid rgb(231, 216, 246); + color: rgb(30 41 59); + text-shadow: none; +} + +.loginButton:hover { + color: rgb(30 41 59); + text-shadow: none; +} + +.card:hover .arrowIcon { + color: #7450ec; +} + +.linkGrid { + display: flex; + flex-direction: column; + flex-wrap: wrap; + gap: 1rem; +} + +.card { + composes: frost; + padding: 1rem 0rem; + text-align: center; + color: inherit; + text-decoration: none; + border-radius: 10px; + border-bottom-left-radius: 0px; + transition: color 0.15s ease, border-color 0.15s ease; + max-width: 200px; + min-width: 200px; + display: flex; + flex-direction: row; + justify-content: center; +} + +.card:hover, +.card:focus, +.card:active { + color: #7450ec; + border-color: #7450ec; +} + +.card h2 { + margin: 0 0 1rem 0; + font-size: 1.5rem; +} + +.card p { + margin: 0; + font-size: 1.25rem; + line-height: 1.5; +} + +.logo { + flex: 1; + padding: 1rem 2rem; +} + +.logo svg { + height: 100%; + width: 200px; + fill: #7450ec; +} + +/* MOBILE */ +@media (max-width: 800px) { + .linkGrid { + width: 100%; + } + + .card { + max-width: 100%; + } + + .body { + flex-wrap: wrap; + } + + .buttonContainer { + flex-wrap: wrap; + } +} diff --git a/packages/generator/templates/app/app/styles/globals.css b/packages/generator/templates/app/app/styles/globals.css new file mode 100644 index 0000000000..2764411401 --- /dev/null +++ b/packages/generator/templates/app/app/styles/globals.css @@ -0,0 +1,25 @@ +:root { + --border-radius: 0.75rem; + --screen-width: 90vmin; +} + +html, +body { + padding: 0; + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, + Fira Sans, Droid Sans, Helvetica Neue, sans-serif; +} + +a { + color: inherit; + text-decoration: none; +} + +i { + font-size: 0.8rem; +} + +* { + box-sizing: border-box; +} diff --git a/packages/generator/templates/app/app/users/hooks/useCurrentUser.ts b/packages/generator/templates/app/app/users/hooks/useCurrentUser.ts new file mode 100644 index 0000000000..4a0b15a931 --- /dev/null +++ b/packages/generator/templates/app/app/users/hooks/useCurrentUser.ts @@ -0,0 +1,7 @@ +import {useQuery} from "@blitzjs/rpc" +import getCurrentUser from "../queries/getCurrentUser" + +export const useCurrentUser = () => { + const [user] = useQuery(getCurrentUser, null) + return user +} diff --git a/packages/generator/templates/app/app/users/queries/getCurrentUser.ts b/packages/generator/templates/app/app/users/queries/getCurrentUser.ts new file mode 100644 index 0000000000..8ff9ced4e5 --- /dev/null +++ b/packages/generator/templates/app/app/users/queries/getCurrentUser.ts @@ -0,0 +1,17 @@ +import {Ctx} from "blitz" +import db from "../../../db" +import { Role } from "@/types" + +export default async function getCurrentUser(input: null, ctx: Ctx) { + if (!ctx.session.userId) return null + const user = await db.user.findFirst({ + where: {id: ctx.session.userId}, + select: {id: true, name: true, email: true, role: true}, + }) + + return user +} + +export const config = { + httpMethod: "GET", +} diff --git a/packages/generator/templates/app/db/dev.db b/packages/generator/templates/app/db/dev.db new file mode 100644 index 0000000000000000000000000000000000000000..0f593f8aac206379c4418562cde54fb8d899af7d GIT binary patch literal 32768 zcmeI)-*4JR8~|`TX+lF6(LF?&6lt^klAtD)ZOji>TU!DqBLzdiPD-T7I_z`eVFSe` zBklS?D^-2if3v6k3Ht}OX@9|_J@j#V+}Suk2;Ed^Yo%!46F=;;?|XNjyCWiin|l@8 z$Bfk*xX5Qx)NP8UsfP?hQPd-Hze(+po$JFvq ziSL&;Kl=67gZOV`7ZM1700@8p2!H?xfWZGz0LNmh{2D#JWp_KrmPg@#|%4rI?L3Q^L%!LodjZ&+T!ABa)o{t)}ncMpko)= zPEbRz7kg{?>GLL`gFF&9EX^igezFi-U0b7H#eCFuaMYgYX)y|_=C>>IMWdLFI71R^ zn=I*vD(}b*MyaWcqE#wPy-}{_8!hIM++y;YS}Q9gNL5zU%}F6V>e~bC<$abZ5)ZXp zm7^n3PZ?EyOkzdx&X0M=*o>N`_By!BhUZ0xQP;N%%|>bVNPpONY@>*LG*zHKuuqVW zXYz*xr+m?^N%%rdX{wDp>FT+GJ~>gh2tUh|Y7M!(qlA6lV51mGrXiQ)hO89iCc}p6 z%tm0A3`V#pS7b69nsUTOvb1^t!W8n&LcS=+ll2>mt9S0ut#DwxCk}a=qkH(t5O)oH zWp`m}pspO;=pq+yl9I{s`h0A4WrcphhcSaT1@{|MrO%rBFUB~iaEf~}+5TZ<>&WxI z=?#c{F#7T2%R`#1DxQ9&hb`5~czG_;UHfQ&e6qg0*_^rQUd*1rUY@tX1iq5Od3SmG zUYUc&F*Z8h&}FB~y=}T$cGnIjtd7Vuzeram{CRKm30QRE+X6bhBkyvgOQ%LlV9;|M zQehhzoy)aesnYY&z@KT?`AR%rc4U5*@>)e@jNxE_yT0z*E+&QD{@IG__Z^!A@_gL) zbfY)yhCMxdInb0QSrBq@HXs*I7UmXL4|tjiU&^A%iiUnK+}CFZPUmOy=E#we*pg5tCE;vJz&X_BCHnQJKYsU>zzHcX&8Im@CoNd_8%V~v|OXJ|Mj70?u=y3)lN)-*VK-4 z(suR-Eq;4PbL5oT;cHmk8zFVuQMtp0!S&1geCcU(FaNITi{SnLT;g{s@dtT;1Ogxc z0w4eaAOHd&00JNY0w4eaAaLCU;&bzBOVKqzV)XpVQgHE#$>;x7Dp9@e-Glan00@8p z2!H?xfB*=900@8p2!Ox`5*TxIoLV41?XTuPUZP+BQ2G4lo+>JuUdUAYN_Eh#?PBiW z$;fSGJzOas+b7Dsp6`i54!5N&&ZTlz%FLQpT9DejD4~?dnLLtmVoor)9JvgDB}x+J zQ-)=tc823EQ9x!|=r$YK)4ihu%`>ugw(oX3aOC%^xHLnYpPAS0*-1V8`;KmY_l00ck)1V8`;KmY_l;C&0+o?l;@`mF+7 o|L=X1Lwpbb0T2KI5C8!X009sH0T2KI5O{wA!S(;%<+}%e0W*kZ=l}o! literal 0 HcmV?d00001 diff --git a/packages/generator/templates/app/db/migrations/20230515094145_/migration.sql b/packages/generator/templates/app/db/migrations/20230515094145_/migration.sql new file mode 100644 index 0000000000..bfe497a036 --- /dev/null +++ b/packages/generator/templates/app/db/migrations/20230515094145_/migration.sql @@ -0,0 +1,26 @@ +-- CreateTable +CREATE TABLE "User" ( + "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + "name" TEXT, + "email" TEXT NOT NULL, + "hashedPassword" TEXT +); + +-- CreateTable +CREATE TABLE "Session" ( + "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + "expiresAt" DATETIME, + "handle" TEXT NOT NULL, + "hashedSessionToken" TEXT, + "antiCSRFToken" TEXT, + "publicData" TEXT, + "privateData" TEXT, + "userId" INTEGER, + CONSTRAINT "Session_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE SET NULL ON UPDATE CASCADE +); + +-- CreateIndex +CREATE UNIQUE INDEX "User_email_key" ON "User"("email"); + +-- CreateIndex +CREATE UNIQUE INDEX "Session_handle_key" ON "Session"("handle"); diff --git a/packages/generator/templates/app/db/migrations/20230515094805_/migration.sql b/packages/generator/templates/app/db/migrations/20230515094805_/migration.sql new file mode 100644 index 0000000000..c676c0b119 --- /dev/null +++ b/packages/generator/templates/app/db/migrations/20230515094805_/migration.sql @@ -0,0 +1,57 @@ +/* + Warnings: + + - Added the required column `updatedAt` to the `Session` table without a default value. This is not possible if the table is not empty. + - Added the required column `updatedAt` to the `User` table without a default value. This is not possible if the table is not empty. + +*/ +-- CreateTable +CREATE TABLE "Token" ( + "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" DATETIME NOT NULL, + "hashedToken" TEXT NOT NULL, + "type" TEXT NOT NULL, + "expiresAt" DATETIME NOT NULL, + "sentTo" TEXT NOT NULL, + "userId" INTEGER NOT NULL, + CONSTRAINT "Token_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE RESTRICT ON UPDATE CASCADE +); + +-- RedefineTables +PRAGMA foreign_keys=OFF; +CREATE TABLE "new_Session" ( + "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" DATETIME NOT NULL, + "expiresAt" DATETIME, + "handle" TEXT NOT NULL, + "hashedSessionToken" TEXT, + "antiCSRFToken" TEXT, + "publicData" TEXT, + "privateData" TEXT, + "userId" INTEGER, + CONSTRAINT "Session_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE SET NULL ON UPDATE CASCADE +); +INSERT INTO "new_Session" ("antiCSRFToken", "expiresAt", "handle", "hashedSessionToken", "id", "privateData", "publicData", "userId") SELECT "antiCSRFToken", "expiresAt", "handle", "hashedSessionToken", "id", "privateData", "publicData", "userId" FROM "Session"; +DROP TABLE "Session"; +ALTER TABLE "new_Session" RENAME TO "Session"; +CREATE UNIQUE INDEX "Session_handle_key" ON "Session"("handle"); +CREATE TABLE "new_User" ( + "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" DATETIME NOT NULL, + "name" TEXT, + "email" TEXT NOT NULL, + "hashedPassword" TEXT, + "role" TEXT NOT NULL DEFAULT 'USER' +); +INSERT INTO "new_User" ("email", "hashedPassword", "id", "name") SELECT "email", "hashedPassword", "id", "name" FROM "User"; +DROP TABLE "User"; +ALTER TABLE "new_User" RENAME TO "User"; +CREATE UNIQUE INDEX "User_email_key" ON "User"("email"); +PRAGMA foreign_key_check; +PRAGMA foreign_keys=ON; + +-- CreateIndex +CREATE UNIQUE INDEX "Token_hashedToken_type_key" ON "Token"("hashedToken", "type"); diff --git a/packages/generator/templates/app/db/migrations/migration_lock.toml b/packages/generator/templates/app/db/migrations/migration_lock.toml new file mode 100644 index 0000000000..e5e5c4705a --- /dev/null +++ b/packages/generator/templates/app/db/migrations/migration_lock.toml @@ -0,0 +1,3 @@ +# Please do not edit this file manually +# It should be added in your version-control system (i.e. Git) +provider = "sqlite" \ No newline at end of file diff --git a/packages/generator/templates/app/db/schema.prisma b/packages/generator/templates/app/db/schema.prisma index 5f71671e39..83cd1b80f6 100644 --- a/packages/generator/templates/app/db/schema.prisma +++ b/packages/generator/templates/app/db/schema.prisma @@ -3,7 +3,7 @@ datasource db { provider = "sqlite" - url = env("DATABASE_URL") + url = "file:./db.sqlite" } generator client { diff --git a/packages/generator/templates/app/next-env.d.ts b/packages/generator/templates/app/next-env.d.ts index 9bc3dd46b9..fd36f9494e 100644 --- a/packages/generator/templates/app/next-env.d.ts +++ b/packages/generator/templates/app/next-env.d.ts @@ -1,6 +1,6 @@ /// -/// /// +/// // NOTE: This file should not be edited // see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/packages/generator/templates/app/next.config.js b/packages/generator/templates/app/next.config.js index 27abafa703..4e73ad708c 100644 --- a/packages/generator/templates/app/next.config.js +++ b/packages/generator/templates/app/next.config.js @@ -1,9 +1,10 @@ -// @ts-check const {withBlitz} = require("@blitzjs/next") -/** - * @type {import('@blitzjs/next').BlitzConfig} - **/ -const config = {} +/** @type {import('next').NextConfig} */ +const nextConfig = { + experimental: { + typedRoutes: true, + }, +} -module.exports = withBlitz(config) +module.exports = withBlitz(nextConfig) diff --git a/packages/generator/templates/app/package.json b/packages/generator/templates/app/package.json new file mode 100644 index 0000000000..4a9b08b3cd --- /dev/null +++ b/packages/generator/templates/app/package.json @@ -0,0 +1,42 @@ +{ + "name": "blitz-app-starter", + "version": "0.1.1-beta.3", + "private": true, + "prisma": { + "schema": "db/schema.prisma" + }, + "scripts": { + "blitz:dev": "next dev", + "blitz:build": "next build", + "blitz:start": "next start", + "lint": "next lint" + }, + "dependencies": { + "@blitzjs/auth": "workspace:*", + "@blitzjs/config": "workspace:*", + "@blitzjs/next": "workspace:*", + "@blitzjs/rpc": "workspace:*", + "@hookform/error-message": "2.0.0", + "@hookform/resolvers": "2.9.10", + "@prisma/client": "^4.14.0", + "@tanstack/react-form": "0.0.10", + "@tanstack/react-query": "4.0.10", + "blitz": "workspace:*", + "flatted": "3.2.7", + "next": "13.4.1", + "prisma": "^4.14.0", + "react": "18.2.0", + "react-dom": "18.2.0", + "react-hook-form": "7.39.1", + "superjson": "1.11.0", + "zod": "3.20.2" + }, + "devDependencies": { + "@types/node": "18.11.7", + "@types/react": "18.0.23", + "@types/react-dom": "18.0.7", + "eslint": "8.26.0", + "eslint-config-next": "13.0.0", + "typescript": "4.8.4" + } +} diff --git a/packages/generator/templates/app/pages/api/rpc/[[...blitz]].ts b/packages/generator/templates/app/pages/api/rpc/[[...blitz]].ts new file mode 100644 index 0000000000..a031e77375 --- /dev/null +++ b/packages/generator/templates/app/pages/api/rpc/[[...blitz]].ts @@ -0,0 +1,4 @@ +import {rpcHandler} from "@blitzjs/rpc" +import {api} from "@/app/blitz-server" + +export default api(rpcHandler({onError: console.log})) diff --git a/packages/generator/templates/app/public/favicon.ico b/packages/generator/templates/app/public/favicon.ico old mode 100755 new mode 100644 index c7bd1c095d82464715009a27231f07d3936d367b..718d6fea4835ec2d246af9800eddb7ffb276240c GIT binary patch literal 25931 zcmeHv30#a{`}aL_*G&7qml|y<+KVaDM2m#dVr!KsA!#An?kSQM(q<_dDNCpjEux83 zLb9Z^XxbDl(w>%i@8hT6>)&Gu{h#Oeyszu?xtw#Zb1mO{pgX9699l+Qppw7jXaYf~-84xW z)w4x8?=youko|}Vr~(D$UXIbiXABHh`p1?nn8Po~fxRJv}|0e(BPs|G`(TT%kKVJAdg5*Z|x0leQq0 zkdUBvb#>9F()jo|T~kx@OM8$9wzs~t2l;K=woNssA3l6|sx2r3+kdfVW@e^8e*E}v zA1y5{bRi+3Z`uD3{F7LgFJDdvm;nJilkzDku>BwXH(8ItVCXk*-lSJnR?-2UN%hJ){&rlvg`CDTj z)Bzo!3v7Ou#83zEDEFcKt(f1E0~=rqeEbTnMvWR#{+9pg%7G8y>u1OVRUSoox-ovF z2Ydma(;=YuBY(eI|04{hXzZD6_f(v~H;C~y5=DhAC{MMS>2fm~1H_t2$56pc$NH8( z5bH|<)71dV-_oCHIrzrT`2s-5w_+2CM0$95I6X8p^r!gHp+j_gd;9O<1~CEQQGS8) zS9Qh3#p&JM-G8rHekNmKVewU;pJRcTAog68KYo^dRo}(M>36U4Us zfgYWSiHZL3;lpWT=zNAW>Dh#mB!_@Lg%$ms8N-;aPqMn+C2HqZgz&9~Eu z4|Kp<`$q)Uw1R?y(~S>ePdonHxpV1#eSP1B;Ogo+-Pk}6#0GsZZ5!||ev2MGdh}_m z{DeR7?0-1^zVs&`AV6Vt;r3`I`OI_wgs*w=eO%_#7Kepl{B@xiyCANc(l zzIyd4y|c6PXWq9-|KM8(zIk8LPk(>a)zyFWjhT!$HJ$qX1vo@d25W<fvZQ2zUz5WRc(UnFMKHwe1| zWmlB1qdbiA(C0jmnV<}GfbKtmcu^2*P^O?MBLZKt|As~ge8&AAO~2K@zbXelK|4T<{|y4`raF{=72kC2Kn(L4YyenWgrPiv z@^mr$t{#X5VuIMeL!7Ab6_kG$&#&5p*Z{+?5U|TZ`B!7llpVmp@skYz&n^8QfPJzL z0G6K_OJM9x+Wu2gfN45phANGt{7=C>i34CV{Xqlx(fWpeAoj^N0Biu`w+MVcCUyU* zDZuzO0>4Z6fbu^T_arWW5n!E45vX8N=bxTVeFoep_G#VmNlQzAI_KTIc{6>c+04vr zx@W}zE5JNSU>!THJ{J=cqjz+4{L4A{Ob9$ZJ*S1?Ggg3klFp!+Y1@K+pK1DqI|_gq z5ZDXVpge8-cs!o|;K73#YXZ3AShj50wBvuq3NTOZ`M&qtjj#GOFfgExjg8Gn8>Vq5 z`85n+9|!iLCZF5$HJ$Iu($dm?8~-ofu}tEc+-pyke=3!im#6pk_Wo8IA|fJwD&~~F zc16osQ)EBo58U7XDuMexaPRjU@h8tXe%S{fA0NH3vGJFhuyyO!Uyl2^&EOpX{9As0 zWj+P>{@}jxH)8|r;2HdupP!vie{sJ28b&bo!8`D^x}TE$%zXNb^X1p@0PJ86`dZyj z%ce7*{^oo+6%&~I!8hQy-vQ7E)0t0ybH4l%KltWOo~8cO`T=157JqL(oq_rC%ea&4 z2NcTJe-HgFjNg-gZ$6!Y`SMHrlj}Etf7?r!zQTPPSv}{so2e>Fjs1{gzk~LGeesX%r(Lh6rbhSo_n)@@G-FTQy93;l#E)hgP@d_SGvyCp0~o(Y;Ee8{ zdVUDbHm5`2taPUOY^MAGOw*>=s7=Gst=D+p+2yON!0%Hk` zz5mAhyT4lS*T3LS^WSxUy86q&GnoHxzQ6vm8)VS}_zuqG?+3td68_x;etQAdu@sc6 zQJ&5|4(I?~3d-QOAODHpZ=hlSg(lBZ!JZWCtHHSj`0Wh93-Uk)_S%zsJ~aD>{`A0~ z9{AG(e|q3g5B%wYKRxiL2Y$8(4w6bzchKuloQW#e&S3n+P- z8!ds-%f;TJ1>)v)##>gd{PdS2Oc3VaR`fr=`O8QIO(6(N!A?pr5C#6fc~Ge@N%Vvu zaoAX2&(a6eWy_q&UwOhU)|P3J0Qc%OdhzW=F4D|pt0E4osw;%<%Dn58hAWD^XnZD= z>9~H(3bmLtxpF?a7su6J7M*x1By7YSUbxGi)Ot0P77`}P3{)&5Un{KD?`-e?r21!4vTTnN(4Y6Lin?UkSM z`MXCTC1@4A4~mvz%Rh2&EwY))LeoT=*`tMoqcEXI>TZU9WTP#l?uFv+@Dn~b(>xh2 z;>B?;Tz2SR&KVb>vGiBSB`@U7VIWFSo=LDSb9F{GF^DbmWAfpms8Sx9OX4CnBJca3 zlj9(x!dIjN?OG1X4l*imJNvRCk}F%!?SOfiOq5y^mZW)jFL@a|r-@d#f7 z2gmU8L3IZq0ynIws=}~m^#@&C%J6QFo~Mo4V`>v7MI-_!EBMMtb%_M&kvAaN)@ZVw z+`toz&WG#HkWDjnZE!6nk{e-oFdL^$YnbOCN}JC&{$#$O27@|Tn-skXr)2ml2~O!5 zX+gYoxhoc7qoU?C^3~&!U?kRFtnSEecWuH0B0OvLodgUAi}8p1 zrO6RSXHH}DMc$&|?D004DiOVMHV8kXCP@7NKB zgaZq^^O<7PoKEp72kby@W0Z!Y*Ay{&vfg#C&gG@YVR9g?FEocMUi1gSN$+V+ayF45{a zuDZDTN}mS|;BO%gEf}pjBfN2-gIrU#G5~cucA;dokXW89%>AyXJJI z9X4UlIWA|ZYHgbI z5?oFk@A=Ik7lrEQPDH!H+b`7_Y~aDb_qa=B2^Y&Ow41cU=4WDd40dp5(QS-WMN-=Y z9g;6_-JdNU;|6cPwf$ak*aJIcwL@1n$#l~zi{c{EW?T;DaW*E8DYq?Umtz{nJ&w-M zEMyTDrC&9K$d|kZe2#ws6)L=7K+{ zQw{XnV6UC$6-rW0emqm8wJoeZK)wJIcV?dST}Z;G0Arq{dVDu0&4kd%N!3F1*;*pW zR&qUiFzK=@44#QGw7k1`3t_d8&*kBV->O##t|tonFc2YWrL7_eqg+=+k;!F-`^b8> z#KWCE8%u4k@EprxqiV$VmmtiWxDLgnGu$Vs<8rppV5EajBXL4nyyZM$SWVm!wnCj-B!Wjqj5-5dNXukI2$$|Bu3Lrw}z65Lc=1G z^-#WuQOj$hwNGG?*CM_TO8Bg-1+qc>J7k5c51U8g?ZU5n?HYor;~JIjoWH-G>AoUP ztrWWLbRNqIjW#RT*WqZgPJXU7C)VaW5}MiijYbABmzoru6EmQ*N8cVK7a3|aOB#O& zBl8JY2WKfmj;h#Q!pN%9o@VNLv{OUL?rixHwOZuvX7{IJ{(EdPpuVFoQqIOa7giLVkBOKL@^smUA!tZ1CKRK}#SSM)iQHk)*R~?M!qkCruaS!#oIL1c z?J;U~&FfH#*98^G?i}pA{ z9Jg36t4=%6mhY(quYq*vSxptes9qy|7xSlH?G=S@>u>Ebe;|LVhs~@+06N<4CViBk zUiY$thvX;>Tby6z9Y1edAMQaiH zm^r3v#$Q#2T=X>bsY#D%s!bhs^M9PMAcHbCc0FMHV{u-dwlL;a1eJ63v5U*?Q_8JO zT#50!RD619#j_Uf))0ooADz~*9&lN!bBDRUgE>Vud-i5ck%vT=r^yD*^?Mp@Q^v+V zG#-?gKlr}Eeqifb{|So?HM&g91P8|av8hQoCmQXkd?7wIJwb z_^v8bbg`SAn{I*4bH$u(RZ6*xUhuA~hc=8czK8SHEKTzSxgbwi~9(OqJB&gwb^l4+m`k*Q;_?>Y-APi1{k zAHQ)P)G)f|AyjSgcCFps)Fh6Bca*Xznq36!pV6Az&m{O8$wGFD? zY&O*3*J0;_EqM#jh6^gMQKpXV?#1?>$ml1xvh8nSN>-?H=V;nJIwB07YX$e6vLxH( zqYwQ>qxwR(i4f)DLd)-$P>T-no_c!LsN@)8`e;W@)-Hj0>nJ-}Kla4-ZdPJzI&Mce zv)V_j;(3ERN3_@I$N<^|4Lf`B;8n+bX@bHbcZTopEmDI*Jfl)-pFDvo6svPRoo@(x z);_{lY<;);XzT`dBFpRmGrr}z5u1=pC^S-{ce6iXQlLGcItwJ^mZx{m$&DA_oEZ)B{_bYPq-HA zcH8WGoBG(aBU_j)vEy+_71T34@4dmSg!|M8Vf92Zj6WH7Q7t#OHQqWgFE3ARt+%!T z?oLovLVlnf?2c7pTc)~cc^($_8nyKwsN`RA-23ed3sdj(ys%pjjM+9JrctL;dy8a( z@en&CQmnV(()bu|Y%G1-4a(6x{aLytn$T-;(&{QIJB9vMox11U-1HpD@d(QkaJdEb zG{)+6Dos_L+O3NpWo^=gR?evp|CqEG?L&Ut#D*KLaRFOgOEK(Kq1@!EGcTfo+%A&I z=dLbB+d$u{sh?u)xP{PF8L%;YPPW53+@{>5W=Jt#wQpN;0_HYdw1{ksf_XhO4#2F= zyPx6Lx2<92L-;L5PD`zn6zwIH`Jk($?Qw({erA$^bC;q33hv!d!>%wRhj# zal^hk+WGNg;rJtb-EB(?czvOM=H7dl=vblBwAv>}%1@{}mnpUznfq1cE^sgsL0*4I zJ##!*B?=vI_OEVis5o+_IwMIRrpQyT_Sq~ZU%oY7c5JMIADzpD!Upz9h@iWg_>>~j zOLS;wp^i$-E?4<_cp?RiS%Rd?i;f*mOz=~(&3lo<=@(nR!_Rqiprh@weZlL!t#NCc zO!QTcInq|%#>OVgobj{~ixEUec`E25zJ~*DofsQdzIa@5^nOXj2T;8O`l--(QyU^$t?TGY^7#&FQ+2SS3B#qK*k3`ye?8jUYSajE5iBbJls75CCc(m3dk{t?- zopcER9{Z?TC)mk~gpi^kbbu>b-+a{m#8-y2^p$ka4n60w;Sc2}HMf<8JUvhCL0B&Btk)T`ctE$*qNW8L$`7!r^9T+>=<=2qaq-;ll2{`{Rg zc5a0ZUI$oG&j-qVOuKa=*v4aY#IsoM+1|c4Z)<}lEDvy;5huB@1RJPquU2U*U-;gu z=En2m+qjBzR#DEJDO`WU)hdd{Vj%^0V*KoyZ|5lzV87&g_j~NCjwv0uQVqXOb*QrQ zy|Qn`hxx(58c70$E;L(X0uZZ72M1!6oeg)(cdKO ze0gDaTz+ohR-#d)NbAH4x{I(21yjwvBQfmpLu$)|m{XolbgF!pmsqJ#D}(ylp6uC> z{bqtcI#hT#HW=wl7>p!38sKsJ`r8}lt-q%Keqy%u(xk=yiIJiUw6|5IvkS+#?JTBl z8H5(Q?l#wzazujH!8o>1xtn8#_w+397*_cy8!pQGP%K(Ga3pAjsaTbbXJlQF_+m+-UpUUent@xM zg%jqLUExj~o^vQ3Gl*>wh=_gOr2*|U64_iXb+-111aH}$TjeajM+I20xw(((>fej-@CIz4S1pi$(#}P7`4({6QS2CaQS4NPENDp>sAqD z$bH4KGzXGffkJ7R>V>)>tC)uax{UsN*dbeNC*v}#8Y#OWYwL4t$ePR?VTyIs!wea+ z5Urmc)X|^`MG~*dS6pGSbU+gPJoq*^a=_>$n4|P^w$sMBBy@f*Z^Jg6?n5?oId6f{ z$LW4M|4m502z0t7g<#Bx%X;9<=)smFolV&(V^(7Cv2-sxbxopQ!)*#ZRhTBpx1)Fc zNm1T%bONzv6@#|dz(w02AH8OXe>kQ#1FMCzO}2J_mST)+ExmBr9cva-@?;wnmWMOk z{3_~EX_xadgJGv&H@zK_8{(x84`}+c?oSBX*Ge3VdfTt&F}yCpFP?CpW+BE^cWY0^ zb&uBN!Ja3UzYHK-CTyA5=L zEMW{l3Usky#ly=7px648W31UNV@K)&Ub&zP1c7%)`{);I4b0Q<)B}3;NMG2JH=X$U zfIW4)4n9ZM`-yRj67I)YSLDK)qfUJ_ij}a#aZN~9EXrh8eZY2&=uY%2N0UFF7<~%M zsB8=erOWZ>Ct_#^tHZ|*q`H;A)5;ycw*IcmVxi8_0Xk}aJA^ath+E;xg!x+As(M#0=)3!NJR6H&9+zd#iP(m0PIW8$ z1Y^VX`>jm`W!=WpF*{ioM?C9`yOR>@0q=u7o>BP-eSHqCgMDj!2anwH?s%i2p+Q7D zzszIf5XJpE)IG4;d_(La-xenmF(tgAxK`Y4sQ}BSJEPs6N_U2vI{8=0C_F?@7<(G; zo$~G=8p+076G;`}>{MQ>t>7cm=zGtfbdDXm6||jUU|?X?CaE?(<6bKDYKeHlz}DA8 zXT={X=yp_R;HfJ9h%?eWvQ!dRgz&Su*JfNt!Wu>|XfU&68iRikRrHRW|ZxzRR^`eIGt zIeiDgVS>IeExKVRWW8-=A=yA`}`)ZkWBrZD`hpWIxBGkh&f#ijr449~m`j6{4jiJ*C!oVA8ZC?$1RM#K(_b zL9TW)kN*Y4%^-qPpMP7d4)o?Nk#>aoYHT(*g)qmRUb?**F@pnNiy6Fv9rEiUqD(^O zzyS?nBrX63BTRYduaG(0VVG2yJRe%o&rVrLjbxTaAFTd8s;<<@Qs>u(<193R8>}2_ zuwp{7;H2a*X7_jryzriZXMg?bTuegABb^87@SsKkr2)0Gyiax8KQWstw^v#ix45EVrcEhr>!NMhprl$InQMzjSFH54x5k9qHc`@9uKQzvL4ihcq{^B zPrVR=o_ic%Y>6&rMN)hTZsI7I<3&`#(nl+3y3ys9A~&^=4?PL&nd8)`OfG#n zwAMN$1&>K++c{^|7<4P=2y(B{jJsQ0a#U;HTo4ZmWZYvI{+s;Td{Yzem%0*k#)vjpB zia;J&>}ICate44SFYY3vEelqStQWFihx%^vQ@Do(sOy7yR2@WNv7Y9I^yL=nZr3mb zXKV5t@=?-Sk|b{XMhA7ZGB@2hqsx}4xwCW!in#C zI@}scZlr3-NFJ@NFaJlhyfcw{k^vvtGl`N9xSo**rDW4S}i zM9{fMPWo%4wYDG~BZ18BD+}h|GQKc-g^{++3MY>}W_uq7jGHx{mwE9fZiPCoxN$+7 zrODGGJrOkcPQUB(FD5aoS4g~7#6NR^ma7-!>mHuJfY5kTe6PpNNKC9GGRiu^L31uG z$7v`*JknQHsYB!Tm_W{a32TM099djW%5e+j0Ve_ct}IM>XLF1Ap+YvcrLV=|CKo6S zb+9Nl3_YdKP6%Cxy@6TxZ>;4&nTneadr z_ES90ydCev)LV!dN=#(*f}|ZORFdvkYBni^aLbUk>BajeWIOcmHP#8S)*2U~QKI%S zyrLmtPqb&TphJ;>yAxri#;{uyk`JJqODDw%(Z=2`1uc}br^V%>j!gS)D*q*f_-qf8&D;W1dJgQMlaH5er zN2U<%Smb7==vE}dDI8K7cKz!vs^73o9f>2sgiTzWcwY|BMYHH5%Vn7#kiw&eItCqa zIkR2~Q}>X=Ar8W|^Ms41Fm8o6IB2_j60eOeBB1Br!boW7JnoeX6Gs)?7rW0^5psc- zjS16yb>dFn>KPOF;imD}e!enuIniFzv}n$m2#gCCv4jM#ArwlzZ$7@9&XkFxZ4n!V zj3dyiwW4Ki2QG{@i>yuZXQizw_OkZI^-3otXC{!(lUpJF33gI60ak;Uqitp74|B6I zgg{b=Iz}WkhCGj1M=hu4#Aw173YxIVbISaoc z-nLZC*6Tgivd5V`K%GxhBsp@SUU60-rfc$=wb>zdJzXS&-5(NRRodFk;Kxk!S(O(a0e7oY=E( zAyS;Ow?6Q&XA+cnkCb{28_1N8H#?J!*$MmIwLq^*T_9-z^&UE@A(z9oGYtFy6EZef LrJugUA?W`A8`#=m literal 4286 zcmeH~KS~2Z6vk(@SOP*c5;6EE0Sj&P2x@69%oQxO^Z>~fJc5W|W9I?ViLD0^Eo_89 z3Xy;z&+p6dVBO4wb+emF<(JV}XTF*D?YuV{6XCnnGW;}m%f_r3WA*^L%rRj9_zTZ= z4jitdfKMx{#>y?Y0E-38n0*Q>F*Gm1CwK&n?1N|gODhY|I|1)Nz!x|J<;TEE1f5;* z1V(`RZ08dLD>Z0cgKt1>rTiHD_FQ$f)flYL=&pbGr01%eYcwU)OUeOdk@i|EfKLE^`)hSJAZ~#+-WRQ@wQi z@A-5G|NfMB3jdu?V^7an|9M9#+H>Z(L(l`Nmu}0c{~9SP>(J)?n)^&^ms9^$o2|Qt z@c)bS9jLtepVW72Xh1(11NEG_s94X_+D@N$v1AO&_1wP(jY0XI`}G-vb8rJ@zVnGx zMMhv4iwwx3NFTgLB3-nkgML%Ri{BhGG)FQpZD5)t)!CN5nH=ARMz@K6as-Vw5cvVi C{Q%?u diff --git a/packages/generator/templates/app/public/vercel.svg b/packages/generator/templates/app/public/vercel.svg new file mode 100644 index 0000000000..fbf0e25a65 --- /dev/null +++ b/packages/generator/templates/app/public/vercel.svg @@ -0,0 +1,4 @@ + + + \ No newline at end of file diff --git a/packages/generator/templates/app/tsconfig.json b/packages/generator/templates/app/tsconfig.json index 471cee2633..e06a4454ab 100644 --- a/packages/generator/templates/app/tsconfig.json +++ b/packages/generator/templates/app/tsconfig.json @@ -2,14 +2,11 @@ "compilerOptions": { "target": "es5", "lib": ["dom", "dom.iterable", "esnext"], - "baseUrl": ".", "allowJs": true, "skipLibCheck": true, - "strict": false, - "strictNullChecks": true, + "strict": true, "forceConsistentCasingInFileNames": true, "noEmit": true, - "noUncheckedIndexedAccess": true, "esModuleInterop": true, "module": "esnext", "moduleResolution": "node", @@ -17,8 +14,15 @@ "isolatedModules": true, "jsx": "preserve", "incremental": true, - "tsBuildInfoFile": ".tsbuildinfo" + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./*"] + } }, - "exclude": ["node_modules", "**/*.e2e.ts", "cypress"], - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "types"] + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] } diff --git a/packages/generator/templates/app/types.ts b/packages/generator/templates/app/types.ts index bead91f252..452fe3411f 100644 --- a/packages/generator/templates/app/types.ts +++ b/packages/generator/templates/app/types.ts @@ -1,5 +1,5 @@ import { SimpleRolesIsAuthorized } from "@blitzjs/auth" -import { User } from "db" +import { User } from "@/db" export type Role = "ADMIN" | "USER" @@ -9,6 +9,7 @@ declare module "@blitzjs/auth" { PublicData: { userId: User["id"] role: Role + views?: number } } } diff --git a/packages/generator/templates/pages/.editorconfig b/packages/generator/templates/pages/.editorconfig new file mode 100644 index 0000000000..09d7a33a4f --- /dev/null +++ b/packages/generator/templates/pages/.editorconfig @@ -0,0 +1,11 @@ +# https://EditorConfig.org + +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 2 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true diff --git a/packages/generator/templates/pages/.env b/packages/generator/templates/pages/.env new file mode 100644 index 0000000000..5cd1aca530 --- /dev/null +++ b/packages/generator/templates/pages/.env @@ -0,0 +1,3 @@ +# This env file should be checked into source control +# This is the place for default values for all environments +# Values in `.env.local` and `.env.production` will override these values diff --git a/packages/generator/templates/pages/.env.local b/packages/generator/templates/pages/.env.local new file mode 100644 index 0000000000..d0679b2cf3 --- /dev/null +++ b/packages/generator/templates/pages/.env.local @@ -0,0 +1,8 @@ +# This env file should NOT be checked into source control +# This is the place for values that changed for every developer + +# SQLite is ready to go out of the box, but you can switch to Postgres +# by first changing the provider from "sqlite" to "postgres" in the Prisma +# schema file and by second swapping the DATABASE_URL below. +DATABASE_URL="file:./db.sqlite" +# DATABASE_URL=postgresql://__username__@localhost:5432/__name__ \ No newline at end of file diff --git a/packages/generator/templates/pages/.env.test b/packages/generator/templates/pages/.env.test new file mode 100644 index 0000000000..6e6b4d4c01 --- /dev/null +++ b/packages/generator/templates/pages/.env.test @@ -0,0 +1,5 @@ +# SQLite is ready to go out of the box, but you can switch to Postgres +# by first changing the provider from "sqlite" to "postgres" in the Prisma +# schema file and by second swapping the DATABASE_URL below. +DATABASE_URL="file:./db_test.sqlite" +# DATABASE_URL=postgresql://__username__@localhost:5432/__name___test \ No newline at end of file diff --git a/packages/generator/templates/app/.eslintrc.js b/packages/generator/templates/pages/.eslintrc.js similarity index 100% rename from packages/generator/templates/app/.eslintrc.js rename to packages/generator/templates/pages/.eslintrc.js diff --git a/packages/generator/templates/pages/.husky/pre-commit b/packages/generator/templates/pages/.husky/pre-commit new file mode 100755 index 0000000000..35d6918785 --- /dev/null +++ b/packages/generator/templates/pages/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +npx pretty-quick --staged diff --git a/packages/generator/templates/pages/.prettierignore b/packages/generator/templates/pages/.prettierignore new file mode 100644 index 0000000000..89ef2512f7 --- /dev/null +++ b/packages/generator/templates/pages/.prettierignore @@ -0,0 +1,10 @@ +.gitkeep +.env* +*.ico +*.lock +db/migrations +.next +.yarn +.pnp.* +node_modules +README.md diff --git a/packages/generator/templates/pages/.vscode/extensions.json b/packages/generator/templates/pages/.vscode/extensions.json new file mode 100644 index 0000000000..e9ff7b6ac5 --- /dev/null +++ b/packages/generator/templates/pages/.vscode/extensions.json @@ -0,0 +1,12 @@ +{ + "recommendations": [ + "dbaeumer.vscode-eslint", + "editorconfig.editorconfig", + "esbenp.prettier-vscode", + "mikestead.dotenv", + "mgmcdermott.vscode-language-babel", + "orta.vscode-jest", + "prisma.prisma" + ], + "unwantedRecommendations": [] +} diff --git a/packages/generator/templates/pages/.vscode/launch.json b/packages/generator/templates/pages/.vscode/launch.json new file mode 100644 index 0000000000..8d4c10351e --- /dev/null +++ b/packages/generator/templates/pages/.vscode/launch.json @@ -0,0 +1,28 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Blitz: debug server-side", + "type": "node-terminal", + "request": "launch", + "command": "npm run dev" + }, + { + "name": "Blitz: debug client-side", + "type": "chrome", + "request": "launch", + "url": "http://localhost:3000" + }, + { + "name": "Blitz: debug full stack", + "type": "node-terminal", + "request": "launch", + "command": "npm run dev", + "serverReadyAction": { + "pattern": "started server on .+, url: (https?://.+)", + "uriFormat": "%s", + "action": "debugWithChrome" + } + } + ] +} diff --git a/packages/generator/templates/pages/.vscode/settings.json b/packages/generator/templates/pages/.vscode/settings.json new file mode 100644 index 0000000000..506e5b7550 --- /dev/null +++ b/packages/generator/templates/pages/.vscode/settings.json @@ -0,0 +1,8 @@ +{ + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.formatOnSave": true, + "editor.codeActionsOnSave": { + "source.fixAll.eslint": true + }, + "jest.autoRun": "off" +} diff --git a/packages/generator/templates/pages/README.md b/packages/generator/templates/pages/README.md new file mode 100644 index 0000000000..f9f2dad932 --- /dev/null +++ b/packages/generator/templates/pages/README.md @@ -0,0 +1,173 @@ +[![Blitz.js](https://raw.githubusercontent.com/blitz-js/art/master/github-cover-photo.png)](https://blitzjs.com) + +This is a [Blitz.js](https://github.com/blitz-js/blitz) app. + +# ****name**** + +## Getting Started + +Run your app in the development mode. + +``` +blitz dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +## Environment Variables + +Ensure the `.env.local` file has required environment variables: + +``` +DATABASE_URL=postgresql://@localhost:5432/__name__ +``` + +Ensure the `.env.test.local` file has required environment variables: + +``` +DATABASE_URL=postgresql://@localhost:5432/__name___test +``` + +## Tests + +Runs your tests using Jest. + +``` +yarn test +``` + +Blitz comes with a test setup using [Vitest](https://vitest.dev/) and [react-testing-library](https://testing-library.com/). + +## Commands + +Blitz comes with a powerful CLI that is designed to make development easy and fast. You can install it with `npm i -g blitz` + +``` + blitz [COMMAND] + + dev Start a development server + build Create a production build + start Start a production server + export Export your Blitz app as a static application + prisma Run prisma commands + generate Generate new files for your Blitz project + console Run the Blitz console REPL + install Install a recipe + help Display help for blitz + test Run project tests +``` + +You can read more about it on the [CLI Overview](https://blitzjs.com/docs/cli-overview) documentation. + +## What's included? + +Here is the starting structure of your app. + +``` +__name__ +├── src/ +│ ├── api/ +│ ├── auth/ +│ │ ├── components/ +│ │ │ ├── LoginForm.tsx +│ │ │ └── SignupForm.tsx +│ │ ├── mutations/ +│ │ │ ├── changePassword.ts +│ │ │ ├── forgotPassword.test.ts +│ │ │ ├── forgotPassword.ts +│ │ │ ├── login.ts +│ │ │ ├── logout.ts +│ │ │ ├── resetPassword.test.ts +│ │ │ ├── resetPassword.ts +│ │ │ └── signup.ts +│ │ ├── pages/ +│ │ │ ├── forgot-password.tsx +│ │ │ ├── login.tsx +│ │ │ ├── reset-password.tsx +│ │ │ └── signup.tsx +│ │ └── validations.ts +│ ├── core/ +│ │ ├── components/ +│ │ │ ├── Form.tsx +│ │ │ └── LabeledTextField.tsx +│ │ └── layouts/ +│ │ └── Layout.tsx +│ ├── pages/ +│ │ ├── _app.tsx +│ │ ├── _document.tsx +│ │ ├── 404.tsx +│ │ ├── index.test.tsx +│ │ └── index.tsx +│ └── users/ +│ ├── hooks/ +│ │ └── useCurrentUser.ts +│ └── queries/ +│ └── getCurrentUser.ts +├── db/ +│ ├── migrations/ +│ ├── index.ts +│ ├── schema.prisma +│ └── seeds.ts +├── integrations/ +├── mailers/ +│ └── forgotPasswordMailer.ts +├── public/ +│ ├── favicon.ico +│ └── logo.png +├── test/ +│ ├── setup.ts +│ └── utils.tsx +├── .eslintrc.js +├── babel.config.js +├── blitz.config.ts +├── vitest.config.ts +├── package.json +├── README.md +├── tsconfig.json +└── types.ts +``` + +These files are: + +- The `src/` folder is a container for most of your project. This is where you’ll put any pages or API routes. + +- `db/` is where your database configuration goes. If you’re writing models or checking migrations, this is where to go. + +- `public/` is a folder where you will put any static assets. If you have images, files, or videos which you want to use in your app, this is where to put them. + +- `integrations/` is a folder to put all third-party integrations like with Stripe, Sentry, etc. + +- `test/` is a folder where you can put test utilities and integration tests. + +- `package.json` contains information about your dependencies and devDependencies. If you’re using a tool like `npm` or `yarn`, you won’t have to worry about this much. + +- `tsconfig.json` is our recommended setup for TypeScript. + +- `.babel.config.js`, `.eslintrc.js`, `.env`, etc. ("dotfiles") are configuration files for various bits of JavaScript tooling. + +- `blitz.config.ts` is for advanced custom configuration of Blitz. [Here you can learn how to use it](https://blitzjs.com/docs/blitz-config). + +- `vitest.config.ts` contains config for Vitest tests. You can [customize it if needed](https://vitejs.dev/config/). + +You can read more about it in the [File Structure](https://blitzjs.com/docs/file-structure) section of the documentation. + +### Tools included + +Blitz comes with a set of tools that corrects and formats your code, facilitating its future maintenance. You can modify their options and even uninstall them. + +- **ESLint**: It lints your code: searches for bad practices and tell you about it. You can customize it via the `.eslintrc.js`, and you can install (or even write) plugins to have it the way you like it. It already comes with the [`blitz`](https://github.com/blitz-js/blitz/tree/canary/packages/eslint-config) config, but you can remove it safely. [Learn More](https://blitzjs.com/docs/eslint-config). +- **Husky**: It adds [githooks](https://git-scm.com/docs/githooks), little pieces of code that get executed when certain Git events are triggerd. For example, `pre-commit` is triggered just before a commit is created. You can see the current hooks inside `.husky/`. If are having problems commiting and pushing, check out ther [troubleshooting](https://typicode.github.io/husky/#/?id=troubleshoot) guide. [Learn More](https://blitzjs.com/docs/husky-config). +- **Prettier**: It formats your code to look the same everywhere. You can configure it via the `.prettierrc` file. The `.prettierignore` contains the files that should be ignored by Prettier; useful when you have large files or when you want to keep a custom formatting. [Learn More](https://blitzjs.com/docs/prettier-config). + +## Learn more + +Read the [Blitz.js Documentation](https://blitzjs.com/docs/getting-started) to learn more. + +The Blitz community is warm, safe, diverse, inclusive, and fun! Feel free to reach out to us in any of our communication channels. + +- [Website](https://blitzjs.com) +- [Discord](https://blitzjs.com/discord) +- [Report an issue](https://github.com/blitz-js/blitz/issues/new/choose) +- [Forum discussions](https://github.com/blitz-js/blitz/discussions) +- [How to Contribute](https://blitzjs.com/docs/contributing) +- [Sponsor or donate](https://github.com/blitz-js/blitz#sponsors-and-donations) diff --git a/packages/generator/templates/app/_forms/finalform/Form.tsx b/packages/generator/templates/pages/_forms/finalform/Form.tsx similarity index 100% rename from packages/generator/templates/app/_forms/finalform/Form.tsx rename to packages/generator/templates/pages/_forms/finalform/Form.tsx diff --git a/packages/generator/templates/app/_forms/finalform/LabelSelectField.tsx b/packages/generator/templates/pages/_forms/finalform/LabelSelectField.tsx similarity index 100% rename from packages/generator/templates/app/_forms/finalform/LabelSelectField.tsx rename to packages/generator/templates/pages/_forms/finalform/LabelSelectField.tsx diff --git a/packages/generator/templates/app/_forms/finalform/LabeledTextField.tsx b/packages/generator/templates/pages/_forms/finalform/LabeledTextField.tsx similarity index 100% rename from packages/generator/templates/app/_forms/finalform/LabeledTextField.tsx rename to packages/generator/templates/pages/_forms/finalform/LabeledTextField.tsx diff --git a/packages/generator/templates/app/_forms/formik/Form.tsx b/packages/generator/templates/pages/_forms/formik/Form.tsx similarity index 100% rename from packages/generator/templates/app/_forms/formik/Form.tsx rename to packages/generator/templates/pages/_forms/formik/Form.tsx diff --git a/packages/generator/templates/app/_forms/formik/LabelSelectField.tsx b/packages/generator/templates/pages/_forms/formik/LabelSelectField.tsx similarity index 100% rename from packages/generator/templates/app/_forms/formik/LabelSelectField.tsx rename to packages/generator/templates/pages/_forms/formik/LabelSelectField.tsx diff --git a/packages/generator/templates/app/_forms/formik/LabeledTextField.tsx b/packages/generator/templates/pages/_forms/formik/LabeledTextField.tsx similarity index 100% rename from packages/generator/templates/app/_forms/formik/LabeledTextField.tsx rename to packages/generator/templates/pages/_forms/formik/LabeledTextField.tsx diff --git a/packages/generator/templates/app/_forms/hookform/Form.tsx b/packages/generator/templates/pages/_forms/hookform/Form.tsx similarity index 100% rename from packages/generator/templates/app/_forms/hookform/Form.tsx rename to packages/generator/templates/pages/_forms/hookform/Form.tsx diff --git a/packages/generator/templates/app/_forms/hookform/LabelSelectField.tsx b/packages/generator/templates/pages/_forms/hookform/LabelSelectField.tsx similarity index 100% rename from packages/generator/templates/app/_forms/hookform/LabelSelectField.tsx rename to packages/generator/templates/pages/_forms/hookform/LabelSelectField.tsx diff --git a/packages/generator/templates/app/_forms/hookform/LabeledTextField.tsx b/packages/generator/templates/pages/_forms/hookform/LabeledTextField.tsx similarity index 100% rename from packages/generator/templates/app/_forms/hookform/LabeledTextField.tsx rename to packages/generator/templates/pages/_forms/hookform/LabeledTextField.tsx diff --git a/packages/generator/templates/pages/db/index.ts b/packages/generator/templates/pages/db/index.ts new file mode 100644 index 0000000000..4d7a5a6350 --- /dev/null +++ b/packages/generator/templates/pages/db/index.ts @@ -0,0 +1,8 @@ +import { enhancePrisma } from "blitz" +import { PrismaClient } from "@prisma/client" + +const EnhancedPrisma = enhancePrisma(PrismaClient) + +export * from "@prisma/client" +const db = new EnhancedPrisma() +export default db diff --git a/packages/generator/templates/app/db/migrations/.keep b/packages/generator/templates/pages/db/migrations/.keep similarity index 100% rename from packages/generator/templates/app/db/migrations/.keep rename to packages/generator/templates/pages/db/migrations/.keep diff --git a/packages/generator/templates/pages/db/schema.prisma b/packages/generator/templates/pages/db/schema.prisma new file mode 100644 index 0000000000..5f71671e39 --- /dev/null +++ b/packages/generator/templates/pages/db/schema.prisma @@ -0,0 +1,65 @@ +// This is your Prisma schema file, +// learn more about it in the docs: https://pris.ly/d/prisma-schema + +datasource db { + provider = "sqlite" + url = env("DATABASE_URL") +} + +generator client { + provider = "prisma-client-js" +} + +// -------------------------------------- + +model User { + id Int @id @default(autoincrement()) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + name String? + email String @unique + hashedPassword String? + role String @default("USER") + + tokens Token[] + sessions Session[] +} + +model Session { + id Int @id @default(autoincrement()) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + expiresAt DateTime? + handle String @unique + hashedSessionToken String? + antiCSRFToken String? + publicData String? + privateData String? + + user User? @relation(fields: [userId], references: [id]) + userId Int? +} + +model Token { + id Int @id @default(autoincrement()) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + hashedToken String + type String + // See note below about TokenType enum + // type TokenType + expiresAt DateTime + sentTo String + + user User @relation(fields: [userId], references: [id]) + userId Int + + @@unique([hashedToken, type]) +} + +// NOTE: It's highly recommended to use an enum for the token type +// but enums only work in Postgres. +// See: https://blitzjs.com/docs/database-overview#switch-to-postgre-sql +// enum TokenType { +// RESET_PASSWORD +// } diff --git a/packages/generator/templates/app/db/seeds.ts b/packages/generator/templates/pages/db/seeds.ts similarity index 100% rename from packages/generator/templates/app/db/seeds.ts rename to packages/generator/templates/pages/db/seeds.ts diff --git a/packages/generator/templates/app/gitignore b/packages/generator/templates/pages/gitignore similarity index 100% rename from packages/generator/templates/app/gitignore rename to packages/generator/templates/pages/gitignore diff --git a/packages/generator/templates/pages/integrations/.keep b/packages/generator/templates/pages/integrations/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/generator/templates/app/jsconfig.json b/packages/generator/templates/pages/jsconfig.json similarity index 100% rename from packages/generator/templates/app/jsconfig.json rename to packages/generator/templates/pages/jsconfig.json diff --git a/packages/generator/templates/pages/mailers/.keep b/packages/generator/templates/pages/mailers/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/generator/templates/pages/mailers/forgotPasswordMailer.ts b/packages/generator/templates/pages/mailers/forgotPasswordMailer.ts new file mode 100644 index 0000000000..baace45b9a --- /dev/null +++ b/packages/generator/templates/pages/mailers/forgotPasswordMailer.ts @@ -0,0 +1,45 @@ +/* TODO - You need to add a mailer integration in `integrations/` and import here. + * + * The integration file can be very simple. Instantiate the email client + * and then export it. That way you can import here and anywhere else + * and use it straight away. + */ + +type ResetPasswordMailer = { + to: string + token: string +} + +export function forgotPasswordMailer({ to, token }: ResetPasswordMailer) { + // In production, set APP_ORIGIN to your production server origin + const origin = process.env.APP_ORIGIN || process.env.BLITZ_DEV_SERVER_ORIGIN + const resetUrl = `${origin}/auth/reset-password?token=${token}` + + const msg = { + from: "TODO@example.com", + to, + subject: "Your Password Reset Instructions", + html: ` +

Reset Your Password

+

NOTE: You must set up a production email integration in mailers/forgotPasswordMailer.ts

+ + + Click here to set a new password + + `, + } + + return { + async send() { + if (process.env.NODE_ENV === "production") { + // TODO - send the production email, like this: + // await postmark.sendEmail(msg) + throw new Error("No production email implementation in mailers/forgotPasswordMailer") + } else { + // Preview email in the browser + const previewEmail = (await import("preview-email")).default + await previewEmail(msg) + } + }, + } +} diff --git a/packages/generator/templates/pages/next-env.d.ts b/packages/generator/templates/pages/next-env.d.ts new file mode 100644 index 0000000000..9bc3dd46b9 --- /dev/null +++ b/packages/generator/templates/pages/next-env.d.ts @@ -0,0 +1,6 @@ +/// +/// +/// + +// NOTE: This file should not be edited +// see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/packages/generator/templates/pages/next.config.js b/packages/generator/templates/pages/next.config.js new file mode 100644 index 0000000000..27abafa703 --- /dev/null +++ b/packages/generator/templates/pages/next.config.js @@ -0,0 +1,9 @@ +// @ts-check +const {withBlitz} = require("@blitzjs/next") + +/** + * @type {import('@blitzjs/next').BlitzConfig} + **/ +const config = {} + +module.exports = withBlitz(config) diff --git a/packages/generator/templates/app/npmrc b/packages/generator/templates/pages/npmrc similarity index 100% rename from packages/generator/templates/app/npmrc rename to packages/generator/templates/pages/npmrc diff --git a/packages/generator/templates/app/package.js.json b/packages/generator/templates/pages/package.js.json similarity index 100% rename from packages/generator/templates/app/package.js.json rename to packages/generator/templates/pages/package.js.json diff --git a/packages/generator/templates/app/package.ts.json b/packages/generator/templates/pages/package.ts.json similarity index 100% rename from packages/generator/templates/app/package.ts.json rename to packages/generator/templates/pages/package.ts.json diff --git a/packages/generator/templates/pages/public/favicon.ico b/packages/generator/templates/pages/public/favicon.ico new file mode 100755 index 0000000000000000000000000000000000000000..c7bd1c095d82464715009a27231f07d3936d367b GIT binary patch literal 4286 zcmeH~KS~2Z6vk(@SOP*c5;6EE0Sj&P2x@69%oQxO^Z>~fJc5W|W9I?ViLD0^Eo_89 z3Xy;z&+p6dVBO4wb+emF<(JV}XTF*D?YuV{6XCnnGW;}m%f_r3WA*^L%rRj9_zTZ= z4jitdfKMx{#>y?Y0E-38n0*Q>F*Gm1CwK&n?1N|gODhY|I|1)Nz!x|J<;TEE1f5;* z1V(`RZ08dLD>Z0cgKt1>rTiHD_FQ$f)flYL=&pbGr01%eYcwU)OUeOdk@i|EfKLE^`)hSJAZ~#+-WRQ@wQi z@A-5G|NfMB3jdu?V^7an|9M9#+H>Z(L(l`Nmu}0c{~9SP>(J)?n)^&^ms9^$o2|Qt z@c)bS9jLtepVW72Xh1(11NEG_s94X_+D@N$v1AO&_1wP(jY0XI`}G-vb8rJ@zVnGx zMMhv4iwwx3NFTgLB3-nkgML%Ri{BhGG)FQpZD5)t)!CN5nH=ARMz@K6as-Vw5cvVi C{Q%?u literal 0 HcmV?d00001 diff --git a/packages/generator/templates/app/public/logo.png b/packages/generator/templates/pages/public/logo.png similarity index 100% rename from packages/generator/templates/app/public/logo.png rename to packages/generator/templates/pages/public/logo.png diff --git a/packages/generator/templates/app/src/auth/components/LoginForm.tsx b/packages/generator/templates/pages/src/auth/components/LoginForm.tsx similarity index 100% rename from packages/generator/templates/app/src/auth/components/LoginForm.tsx rename to packages/generator/templates/pages/src/auth/components/LoginForm.tsx diff --git a/packages/generator/templates/app/src/auth/components/SignupForm.tsx b/packages/generator/templates/pages/src/auth/components/SignupForm.tsx similarity index 100% rename from packages/generator/templates/app/src/auth/components/SignupForm.tsx rename to packages/generator/templates/pages/src/auth/components/SignupForm.tsx diff --git a/packages/generator/templates/app/src/auth/mutations/changePassword.ts b/packages/generator/templates/pages/src/auth/mutations/changePassword.ts similarity index 100% rename from packages/generator/templates/app/src/auth/mutations/changePassword.ts rename to packages/generator/templates/pages/src/auth/mutations/changePassword.ts diff --git a/packages/generator/templates/app/src/auth/mutations/forgotPassword.test.ts b/packages/generator/templates/pages/src/auth/mutations/forgotPassword.test.ts similarity index 100% rename from packages/generator/templates/app/src/auth/mutations/forgotPassword.test.ts rename to packages/generator/templates/pages/src/auth/mutations/forgotPassword.test.ts diff --git a/packages/generator/templates/app/src/auth/mutations/forgotPassword.ts b/packages/generator/templates/pages/src/auth/mutations/forgotPassword.ts similarity index 100% rename from packages/generator/templates/app/src/auth/mutations/forgotPassword.ts rename to packages/generator/templates/pages/src/auth/mutations/forgotPassword.ts diff --git a/packages/generator/templates/app/src/auth/mutations/login.ts b/packages/generator/templates/pages/src/auth/mutations/login.ts similarity index 100% rename from packages/generator/templates/app/src/auth/mutations/login.ts rename to packages/generator/templates/pages/src/auth/mutations/login.ts diff --git a/packages/generator/templates/app/src/auth/mutations/logout.ts b/packages/generator/templates/pages/src/auth/mutations/logout.ts similarity index 100% rename from packages/generator/templates/app/src/auth/mutations/logout.ts rename to packages/generator/templates/pages/src/auth/mutations/logout.ts diff --git a/packages/generator/templates/app/src/auth/mutations/resetPassword.test.ts b/packages/generator/templates/pages/src/auth/mutations/resetPassword.test.ts similarity index 100% rename from packages/generator/templates/app/src/auth/mutations/resetPassword.test.ts rename to packages/generator/templates/pages/src/auth/mutations/resetPassword.test.ts diff --git a/packages/generator/templates/pages/src/auth/mutations/resetPassword.ts b/packages/generator/templates/pages/src/auth/mutations/resetPassword.ts new file mode 100644 index 0000000000..23f602fb75 --- /dev/null +++ b/packages/generator/templates/pages/src/auth/mutations/resetPassword.ts @@ -0,0 +1,49 @@ +import { hash256 } from "@blitzjs/auth" +import { SecurePassword } from "@blitzjs/auth/secure-password" +import { resolver } from "@blitzjs/rpc" +import db from "db" +import { ResetPassword } from "../schemas" +import login from "./login" + +export class ResetPasswordError extends Error { + name = "ResetPasswordError" + message = "Reset password link is invalid or it has expired." +} + +export default resolver.pipe(resolver.zod(ResetPassword), async ({ password, token }, ctx) => { + // 1. Try to find this token in the database + const hashedToken = hash256(token) + const possibleToken = await db.token.findFirst({ + where: { hashedToken, type: "RESET_PASSWORD" }, + include: { user: true }, + }) + + // 2. If token not found, error + if (!possibleToken) { + throw new ResetPasswordError() + } + const savedToken = possibleToken + + // 3. Delete token so it can't be used again + await db.token.delete({ where: { id: savedToken.id } }) + + // 4. If token has expired, error + if (savedToken.expiresAt < new Date()) { + throw new ResetPasswordError() + } + + // 5. Since token is valid, now we can update the user's password + const hashedPassword = await SecurePassword.hash(password.trim()) + const user = await db.user.update({ + where: { id: savedToken.userId }, + data: { hashedPassword }, + }) + + // 6. Revoke all existing login sessions for this user + await db.session.deleteMany({ where: { userId: user.id } }) + + // 7. Now log the user in with the new credentials + await login({ email: user.email, password }, ctx) + + return true +}) diff --git a/packages/generator/templates/app/src/auth/mutations/signup.ts b/packages/generator/templates/pages/src/auth/mutations/signup.ts similarity index 100% rename from packages/generator/templates/app/src/auth/mutations/signup.ts rename to packages/generator/templates/pages/src/auth/mutations/signup.ts diff --git a/packages/generator/templates/app/src/auth/schemas.ts b/packages/generator/templates/pages/src/auth/schemas.ts similarity index 100% rename from packages/generator/templates/app/src/auth/schemas.ts rename to packages/generator/templates/pages/src/auth/schemas.ts diff --git a/packages/generator/templates/app/src/blitz-client.ts b/packages/generator/templates/pages/src/blitz-client.ts similarity index 100% rename from packages/generator/templates/app/src/blitz-client.ts rename to packages/generator/templates/pages/src/blitz-client.ts diff --git a/packages/generator/templates/app/src/blitz-server.ts b/packages/generator/templates/pages/src/blitz-server.ts similarity index 100% rename from packages/generator/templates/app/src/blitz-server.ts rename to packages/generator/templates/pages/src/blitz-server.ts diff --git a/packages/generator/templates/app/src/core/layouts/Layout.tsx b/packages/generator/templates/pages/src/core/layouts/Layout.tsx similarity index 100% rename from packages/generator/templates/app/src/core/layouts/Layout.tsx rename to packages/generator/templates/pages/src/core/layouts/Layout.tsx diff --git a/packages/generator/templates/app/src/pages/404.tsx b/packages/generator/templates/pages/src/pages/404.tsx similarity index 100% rename from packages/generator/templates/app/src/pages/404.tsx rename to packages/generator/templates/pages/src/pages/404.tsx diff --git a/packages/generator/templates/app/src/pages/_app.tsx b/packages/generator/templates/pages/src/pages/_app.tsx similarity index 100% rename from packages/generator/templates/app/src/pages/_app.tsx rename to packages/generator/templates/pages/src/pages/_app.tsx diff --git a/packages/generator/templates/app/src/pages/_document.tsx b/packages/generator/templates/pages/src/pages/_document.tsx similarity index 100% rename from packages/generator/templates/app/src/pages/_document.tsx rename to packages/generator/templates/pages/src/pages/_document.tsx diff --git a/packages/generator/templates/app/src/pages/api/rpc/blitzrpcroute.ts b/packages/generator/templates/pages/src/pages/api/rpc/blitzrpcroute.ts similarity index 100% rename from packages/generator/templates/app/src/pages/api/rpc/blitzrpcroute.ts rename to packages/generator/templates/pages/src/pages/api/rpc/blitzrpcroute.ts diff --git a/packages/generator/templates/app/src/pages/auth/forgot-password.tsx b/packages/generator/templates/pages/src/pages/auth/forgot-password.tsx similarity index 100% rename from packages/generator/templates/app/src/pages/auth/forgot-password.tsx rename to packages/generator/templates/pages/src/pages/auth/forgot-password.tsx diff --git a/packages/generator/templates/app/src/pages/auth/login.tsx b/packages/generator/templates/pages/src/pages/auth/login.tsx similarity index 100% rename from packages/generator/templates/app/src/pages/auth/login.tsx rename to packages/generator/templates/pages/src/pages/auth/login.tsx diff --git a/packages/generator/templates/app/src/pages/auth/reset-password.tsx b/packages/generator/templates/pages/src/pages/auth/reset-password.tsx similarity index 100% rename from packages/generator/templates/app/src/pages/auth/reset-password.tsx rename to packages/generator/templates/pages/src/pages/auth/reset-password.tsx diff --git a/packages/generator/templates/app/src/pages/auth/signup.tsx b/packages/generator/templates/pages/src/pages/auth/signup.tsx similarity index 100% rename from packages/generator/templates/app/src/pages/auth/signup.tsx rename to packages/generator/templates/pages/src/pages/auth/signup.tsx diff --git a/packages/generator/templates/app/src/pages/index.tsx b/packages/generator/templates/pages/src/pages/index.tsx similarity index 100% rename from packages/generator/templates/app/src/pages/index.tsx rename to packages/generator/templates/pages/src/pages/index.tsx diff --git a/packages/generator/templates/app/src/styles/Home.module.css b/packages/generator/templates/pages/src/styles/Home.module.css similarity index 100% rename from packages/generator/templates/app/src/styles/Home.module.css rename to packages/generator/templates/pages/src/styles/Home.module.css diff --git a/packages/generator/templates/app/src/styles/globals.css b/packages/generator/templates/pages/src/styles/globals.css similarity index 100% rename from packages/generator/templates/app/src/styles/globals.css rename to packages/generator/templates/pages/src/styles/globals.css diff --git a/packages/generator/templates/app/src/users/hooks/useCurrentUser.ts b/packages/generator/templates/pages/src/users/hooks/useCurrentUser.ts similarity index 100% rename from packages/generator/templates/app/src/users/hooks/useCurrentUser.ts rename to packages/generator/templates/pages/src/users/hooks/useCurrentUser.ts diff --git a/packages/generator/templates/app/src/users/queries/getCurrentUser.ts b/packages/generator/templates/pages/src/users/queries/getCurrentUser.ts similarity index 100% rename from packages/generator/templates/app/src/users/queries/getCurrentUser.ts rename to packages/generator/templates/pages/src/users/queries/getCurrentUser.ts diff --git a/packages/generator/templates/app/test/index.test.tsx b/packages/generator/templates/pages/test/index.test.tsx similarity index 100% rename from packages/generator/templates/app/test/index.test.tsx rename to packages/generator/templates/pages/test/index.test.tsx diff --git a/packages/generator/templates/app/test/setup.ts b/packages/generator/templates/pages/test/setup.ts similarity index 100% rename from packages/generator/templates/app/test/setup.ts rename to packages/generator/templates/pages/test/setup.ts diff --git a/packages/generator/templates/app/test/utils.tsx b/packages/generator/templates/pages/test/utils.tsx similarity index 100% rename from packages/generator/templates/app/test/utils.tsx rename to packages/generator/templates/pages/test/utils.tsx diff --git a/packages/generator/templates/pages/tsconfig.json b/packages/generator/templates/pages/tsconfig.json new file mode 100644 index 0000000000..471cee2633 --- /dev/null +++ b/packages/generator/templates/pages/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "baseUrl": ".", + "allowJs": true, + "skipLibCheck": true, + "strict": false, + "strictNullChecks": true, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "noUncheckedIndexedAccess": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "tsBuildInfoFile": ".tsbuildinfo" + }, + "exclude": ["node_modules", "**/*.e2e.ts", "cypress"], + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "types"] +} diff --git a/packages/generator/templates/pages/types.ts b/packages/generator/templates/pages/types.ts new file mode 100644 index 0000000000..bead91f252 --- /dev/null +++ b/packages/generator/templates/pages/types.ts @@ -0,0 +1,14 @@ +import { SimpleRolesIsAuthorized } from "@blitzjs/auth" +import { User } from "db" + +export type Role = "ADMIN" | "USER" + +declare module "@blitzjs/auth" { + export interface Session { + isAuthorized: SimpleRolesIsAuthorized + PublicData: { + userId: User["id"] + role: Role + } + } +} diff --git a/packages/generator/templates/app/vitest.config.js b/packages/generator/templates/pages/vitest.config.js similarity index 100% rename from packages/generator/templates/app/vitest.config.js rename to packages/generator/templates/pages/vitest.config.js diff --git a/packages/generator/templates/app/vitest.config.ts b/packages/generator/templates/pages/vitest.config.ts similarity index 100% rename from packages/generator/templates/app/vitest.config.ts rename to packages/generator/templates/pages/vitest.config.ts From 000c6be79a0e3bef8c0ceb36a032b779a828071c Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Tue, 16 May 2023 15:49:09 +0530 Subject: [PATCH 05/95] add app router as recomended --- packages/blitz/src/cli/commands/new.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/blitz/src/cli/commands/new.ts b/packages/blitz/src/cli/commands/new.ts index ca40fbbd3a..c88bdc0c50 100644 --- a/packages/blitz/src/cli/commands/new.ts +++ b/packages/blitz/src/cli/commands/new.ts @@ -31,9 +31,12 @@ const installCommandMap: Record = { npm: "npm install", } -type TTemplate = "full" | "minimal" +type TTemplate = "app" | "pages" | "minimal" const templates: {[key in TTemplate]: AppGeneratorOptions["template"]} = { - full: { + app: { + path: "app", + }, + pages: { path: "pages", }, minimal: { @@ -76,7 +79,7 @@ let projectName: string = "" let projectPath: string = "" let projectLanguage: string | TLanguage = "" let projectFormLib: AppGeneratorOptions["form"] = "finalform" -let projectTemplate: AppGeneratorOptions["template"] = templates.full +let projectTemplate: AppGeneratorOptions["template"] = templates.app let projectPkgManger: TPkgManager = PREFERABLE_PKG_MANAGER let shouldInstallDeps: boolean = true @@ -149,7 +152,8 @@ const determineTemplate = async () => { (args["--template"] && !Object.keys(templates).includes(args["--template"].toLowerCase())) ) { const choices: Array<{value: keyof typeof templates; title: string}> = [ - {value: "full", title: "Full - includes DB and auth (Recommended)"}, + {value: "app", title: "App Router: Full Includes DB and auth (Recommended)"}, + {value: "pages", title: "Pages Router: Full - includes DB and auth"}, {value: "minimal", title: "Minimal — no DB, no auth"}, ] From f3d53e1189b6e1136480385e9c00b62448240158 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Fri, 22 Sep 2023 12:37:38 +0530 Subject: [PATCH 06/95] upgrade to next 13.5.2 and update location of internal function --- apps/next13/package.json | 2 +- apps/toolkit-app-passportjs/package.json | 2 +- apps/toolkit-app/package.json | 2 +- apps/web/package.json | 2 +- integration-tests/auth-with-rpc/package.json | 2 +- integration-tests/auth/package.json | 2 +- .../get-initial-props/package.json | 2 +- integration-tests/middleware/package.json | 2 +- .../next-13-app-dir/package.json | 2 +- integration-tests/no-suspense/package.json | 2 +- integration-tests/qm/package.json | 2 +- .../react-query-utils/package.json | 2 +- integration-tests/rpc-path-root/package.json | 2 +- integration-tests/rpc/package.json | 2 +- integration-tests/trailing-slash/package.json | 2 +- package.json | 2 +- packages/blitz-auth/package.json | 2 +- packages/blitz-next/package.json | 2 +- packages/blitz-next/src/index-server.ts | 2 +- packages/blitz-rpc/package.json | 2 +- pnpm-lock.yaml | 1247 +++-------------- 21 files changed, 208 insertions(+), 1079 deletions(-) diff --git a/apps/next13/package.json b/apps/next13/package.json index e77040f92f..f5a93cbbe8 100644 --- a/apps/next13/package.json +++ b/apps/next13/package.json @@ -19,7 +19,7 @@ "@tanstack/react-query": "4.0.10", "blitz": "2.0.0-beta.33", "flatted": "3.2.7", - "next": "13.3.0", + "next": "13.5.2", "prisma": "^4.5.0", "react": "18.2.0", "react-dom": "18.2.0", diff --git a/apps/toolkit-app-passportjs/package.json b/apps/toolkit-app-passportjs/package.json index 5b26b5ece1..19bb426645 100644 --- a/apps/toolkit-app-passportjs/package.json +++ b/apps/toolkit-app-passportjs/package.json @@ -31,7 +31,7 @@ "@hookform/resolvers": "2.9.10", "@prisma/client": "4.6.1", "blitz": "2.0.0-beta.33", - "next": "13.3.0", + "next": "13.5.2", "openid-client": "5.2.1", "prisma": "4.6.1", "react": "18.2.0", diff --git a/apps/toolkit-app/package.json b/apps/toolkit-app/package.json index 7363b9b07e..53273823a1 100644 --- a/apps/toolkit-app/package.json +++ b/apps/toolkit-app/package.json @@ -32,7 +32,7 @@ "@hookform/resolvers": "2.9.10", "@prisma/client": "4.6.1", "blitz": "2.0.0-beta.33", - "next": "13.3.0", + "next": "13.5.2", "next-auth": "4.18.7", "prisma": "4.6.1", "react": "18.2.0", diff --git a/apps/web/package.json b/apps/web/package.json index 7da85e47b0..10eb86015b 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -26,7 +26,7 @@ "blitz": "2.0.0-beta.33", "jest": "29.3.0", "jest-environment-jsdom": "29.3.0", - "next": "13.3.0", + "next": "13.5.2", "passport-mock-strategy": "2.0.0", "passport-twitter": "1.0.4", "prisma": "4.6.1", diff --git a/integration-tests/auth-with-rpc/package.json b/integration-tests/auth-with-rpc/package.json index 1a2c420a62..5cb41d2ec9 100644 --- a/integration-tests/auth-with-rpc/package.json +++ b/integration-tests/auth-with-rpc/package.json @@ -26,7 +26,7 @@ "@prisma/client": "4.6.1", "blitz": "2.0.0-beta.33", "delay": "5.0.0", - "next": "13.3.0", + "next": "13.5.2", "prisma": "4.6.1", "react": "18.2.0", "react-dom": "18.2.0", diff --git a/integration-tests/auth/package.json b/integration-tests/auth/package.json index a4dc14a2db..07ed07cb20 100644 --- a/integration-tests/auth/package.json +++ b/integration-tests/auth/package.json @@ -23,7 +23,7 @@ "@prisma/client": "4.6.1", "blitz": "2.0.0-beta.33", "lowdb": "3.0.0", - "next": "13.3.0", + "next": "13.5.2", "prisma": "4.6.1", "react": "18.2.0", "react-dom": "18.2.0", diff --git a/integration-tests/get-initial-props/package.json b/integration-tests/get-initial-props/package.json index 927d9b36ca..61ea7c92f2 100644 --- a/integration-tests/get-initial-props/package.json +++ b/integration-tests/get-initial-props/package.json @@ -22,7 +22,7 @@ "@prisma/client": "4.6.1", "blitz": "2.0.0-beta.33", "lowdb": "3.0.0", - "next": "13.3.0", + "next": "13.5.2", "prisma": "4.6.1", "react": "18.2.0", "react-dom": "18.2.0" diff --git a/integration-tests/middleware/package.json b/integration-tests/middleware/package.json index 9cfa2f8a12..70cd3e37a5 100644 --- a/integration-tests/middleware/package.json +++ b/integration-tests/middleware/package.json @@ -15,7 +15,7 @@ "@blitzjs/next": "2.0.0-beta.33", "@blitzjs/rpc": "2.0.0-beta.33", "blitz": "2.0.0-beta.33", - "next": "13.3.0", + "next": "13.5.2", "react": "18.2.0", "react-dom": "18.2.0" }, diff --git a/integration-tests/next-13-app-dir/package.json b/integration-tests/next-13-app-dir/package.json index 8592bc6d78..0f076ca3ec 100644 --- a/integration-tests/next-13-app-dir/package.json +++ b/integration-tests/next-13-app-dir/package.json @@ -24,7 +24,7 @@ "@prisma/client": "4.6.1", "blitz": "2.0.0-beta.33", "lowdb": "3.0.0", - "next": "13.3.0", + "next": "13.5.2", "prisma": "4.6.1", "react": "18.2.0", "react-dom": "18.2.0", diff --git a/integration-tests/no-suspense/package.json b/integration-tests/no-suspense/package.json index 2ffd6501b9..e35dc06743 100644 --- a/integration-tests/no-suspense/package.json +++ b/integration-tests/no-suspense/package.json @@ -22,7 +22,7 @@ "@prisma/client": "4.6.1", "blitz": "2.0.0-beta.33", "lowdb": "3.0.0", - "next": "13.3.0", + "next": "13.5.2", "prisma": "4.6.1", "react": "18.2.0", "react-dom": "18.2.0" diff --git a/integration-tests/qm/package.json b/integration-tests/qm/package.json index 95bee44d9b..8360a3f527 100644 --- a/integration-tests/qm/package.json +++ b/integration-tests/qm/package.json @@ -15,7 +15,7 @@ "@prisma/client": "4.6.1", "@tanstack/react-query": "4.0.10", "blitz": "2.0.0-beta.33", - "next": "13.3.0", + "next": "13.5.2", "prisma": "4.6.1", "react": "18.2.0", "react-dom": "18.2.0" diff --git a/integration-tests/react-query-utils/package.json b/integration-tests/react-query-utils/package.json index 47ca13eebc..0df9923b60 100644 --- a/integration-tests/react-query-utils/package.json +++ b/integration-tests/react-query-utils/package.json @@ -21,7 +21,7 @@ "@prisma/client": "4.6.1", "blitz": "2.0.0-beta.33", "lowdb": "3.0.0", - "next": "13.3.0", + "next": "13.5.2", "prisma": "4.6.1", "react": "18.2.0", "react-dom": "18.2.0" diff --git a/integration-tests/rpc-path-root/package.json b/integration-tests/rpc-path-root/package.json index 8054ee4fe9..b761fdaab0 100644 --- a/integration-tests/rpc-path-root/package.json +++ b/integration-tests/rpc-path-root/package.json @@ -11,7 +11,7 @@ "@blitzjs/next": "2.0.0-beta.33", "@blitzjs/rpc": "2.0.0-beta.33", "blitz": "2.0.0-beta.33", - "next": "13.3.0", + "next": "13.5.2", "react": "18.2.0", "react-dom": "18.2.0" }, diff --git a/integration-tests/rpc/package.json b/integration-tests/rpc/package.json index 38ebaa7336..289b84c64d 100644 --- a/integration-tests/rpc/package.json +++ b/integration-tests/rpc/package.json @@ -11,7 +11,7 @@ "@blitzjs/next": "2.0.0-beta.33", "@blitzjs/rpc": "2.0.0-beta.33", "blitz": "2.0.0-beta.33", - "next": "13.3.0", + "next": "13.5.2", "react": "18.2.0", "react-dom": "18.2.0" }, diff --git a/integration-tests/trailing-slash/package.json b/integration-tests/trailing-slash/package.json index 783ab077d0..33d037a3f3 100644 --- a/integration-tests/trailing-slash/package.json +++ b/integration-tests/trailing-slash/package.json @@ -22,7 +22,7 @@ "@prisma/client": "4.6.1", "blitz": "2.0.0-beta.33", "lowdb": "3.0.0", - "next": "13.3.0", + "next": "13.5.2", "prisma": "4.6.1", "react": "18.2.0", "react-dom": "18.2.0" diff --git a/package.json b/package.json index 54f3fa07f8..f33169914d 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "husky": "8.0.2", "jsdom": "^19.0.0", "lint-staged": "13.0.3", - "next": "13.3.0", + "next": "13.5.2", "only-allow": "1.1.0", "prettier": "^2.7.1", "prettier-plugin-prisma": "4.4.0", diff --git a/packages/blitz-auth/package.json b/packages/blitz-auth/package.json index 91d47fa7c4..e4d70c1a4a 100644 --- a/packages/blitz-auth/package.json +++ b/packages/blitz-auth/package.json @@ -76,7 +76,7 @@ "@types/react": "18.0.25", "@types/react-dom": "17.0.14", "blitz": "2.0.0-beta.33", - "next": "13.3.0", + "next": "13.5.2", "next-auth": "4.18.7", "react": "18.2.0", "react-dom": "18.2.0", diff --git a/packages/blitz-next/package.json b/packages/blitz-next/package.json index 82a9a93869..1f43a7f0c7 100644 --- a/packages/blitz-next/package.json +++ b/packages/blitz-next/package.json @@ -58,7 +58,7 @@ "blitz": "2.0.0-beta.33", "cross-spawn": "7.0.3", "find-up": "4.1.0", - "next": "13.3.0", + "next": "13.5.2", "next-router-mock": "0.9.1", "react": "18.2.0", "react-dom": "18.2.0", diff --git a/packages/blitz-next/src/index-server.ts b/packages/blitz-next/src/index-server.ts index 1a840f8a5c..cd99eda343 100644 --- a/packages/blitz-next/src/index-server.ts +++ b/packages/blitz-next/src/index-server.ts @@ -37,7 +37,7 @@ import {IncomingMessage, ServerResponse} from "http" import {withSuperJsonProps} from "./superjson" import {ParsedUrlQuery} from "querystring" import {PreviewData} from "next/types" -import {resolveHref} from "next/dist/shared/lib/router/utils/resolve-href" +import {resolveHref} from "next/dist/client/resolve-href" export * from "./index-browser" diff --git a/packages/blitz-rpc/package.json b/packages/blitz-rpc/package.json index bcd18f171b..3000d2840f 100644 --- a/packages/blitz-rpc/package.json +++ b/packages/blitz-rpc/package.json @@ -49,7 +49,7 @@ "@types/react": "18.0.25", "@types/react-dom": "17.0.14", "blitz": "2.0.0-beta.33", - "next": "13.3.0", + "next": "13.5.2", "react": "18.2.0", "react-dom": "18.2.0", "typescript": "^4.8.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6c2d0f1cf3..f20e308129 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,8 +26,8 @@ importers: specifier: 13.0.3 version: 13.0.3 next: - specifier: 13.3.0 - version: 13.3.0(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) + specifier: 13.5.2 + version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) only-allow: specifier: 1.1.0 version: 1.1.0 @@ -83,8 +83,8 @@ importers: specifier: 3.2.7 version: 3.2.7 next: - specifier: 13.3.0 - version: 13.3.0(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) + specifier: 13.5.2 + version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) prisma: specifier: ^4.5.0 version: 4.6.1 @@ -150,11 +150,11 @@ importers: specifier: 2.0.0-beta.33 version: link:../../packages/blitz next: - specifier: 13.3.0 - version: 13.3.0(@babel/core@7.20.2)(react-dom@18.2.0)(react@18.2.0) + specifier: 13.5.2 + version: 13.5.2(@babel/core@7.20.2)(react-dom@18.2.0)(react@18.2.0) next-auth: specifier: 4.18.7 - version: 4.18.7(next@13.3.0)(react-dom@18.2.0)(react@18.2.0) + version: 4.18.7(next@13.5.2)(react-dom@18.2.0)(react@18.2.0) prisma: specifier: 4.6.1 version: 4.6.1 @@ -268,8 +268,8 @@ importers: specifier: 2.0.0-beta.33 version: link:../../packages/blitz next: - specifier: 13.3.0 - version: 13.3.0(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) + specifier: 13.5.2 + version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) openid-client: specifier: 5.2.1 version: 5.2.1 @@ -386,8 +386,8 @@ importers: specifier: 29.3.0 version: 29.3.0 next: - specifier: 13.3.0 - version: 13.3.0(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) + specifier: 13.5.2 + version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) passport-mock-strategy: specifier: 2.0.0 version: 2.0.0 @@ -441,8 +441,8 @@ importers: specifier: 3.0.0 version: 3.0.0 next: - specifier: 13.3.0 - version: 13.3.0(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) + specifier: 13.5.2 + version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) prisma: specifier: 4.6.1 version: 4.6.1 @@ -532,8 +532,8 @@ importers: specifier: 5.0.0 version: 5.0.0 next: - specifier: 13.3.0 - version: 13.3.0(@babel/core@7.20.2)(react-dom@18.2.0)(react@18.2.0) + specifier: 13.5.2 + version: 13.5.2(@babel/core@7.20.2)(react-dom@18.2.0)(react@18.2.0) prisma: specifier: 4.6.1 version: 4.6.1 @@ -644,8 +644,8 @@ importers: specifier: 3.0.0 version: 3.0.0 next: - specifier: 13.3.0 - version: 13.3.0(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) + specifier: 13.5.2 + version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) prisma: specifier: 4.6.1 version: 4.6.1 @@ -708,8 +708,8 @@ importers: specifier: 2.0.0-beta.33 version: link:../../packages/blitz next: - specifier: 13.3.0 - version: 13.3.0(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) + specifier: 13.5.2 + version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) react: specifier: 18.2.0 version: 18.2.0 @@ -772,8 +772,8 @@ importers: specifier: 3.0.0 version: 3.0.0 next: - specifier: 13.3.0 - version: 13.3.0(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) + specifier: 13.5.2 + version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) prisma: specifier: 4.6.1 version: 4.6.1 @@ -854,8 +854,8 @@ importers: specifier: 3.0.0 version: 3.0.0 next: - specifier: 13.3.0 - version: 13.3.0(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) + specifier: 13.5.2 + version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) prisma: specifier: 4.6.1 version: 4.6.1 @@ -927,8 +927,8 @@ importers: specifier: 2.0.0-beta.33 version: link:../../packages/blitz next: - specifier: 13.3.0 - version: 13.3.0(@babel/core@7.18.2)(react-dom@18.2.0)(react@18.2.0) + specifier: 13.5.2 + version: 13.5.2(@babel/core@7.18.2)(react-dom@18.2.0)(react@18.2.0) prisma: specifier: 4.6.1 version: 4.6.1 @@ -985,8 +985,8 @@ importers: specifier: 3.0.0 version: 3.0.0 next: - specifier: 13.3.0 - version: 13.3.0(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) + specifier: 13.5.2 + version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) prisma: specifier: 4.6.1 version: 4.6.1 @@ -1049,8 +1049,8 @@ importers: specifier: 2.0.0-beta.33 version: link:../../packages/blitz next: - specifier: 13.3.0 - version: 13.3.0(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) + specifier: 13.5.2 + version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) react: specifier: 18.2.0 version: 18.2.0 @@ -1098,8 +1098,8 @@ importers: specifier: 2.0.0-beta.33 version: link:../../packages/blitz next: - specifier: 13.3.0 - version: 13.3.0(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) + specifier: 13.5.2 + version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) react: specifier: 18.2.0 version: 18.2.0 @@ -1153,8 +1153,8 @@ importers: specifier: 3.0.0 version: 3.0.0 next: - specifier: 13.3.0 - version: 13.3.0(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) + specifier: 13.5.2 + version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) prisma: specifier: 4.6.1 version: 4.6.1 @@ -1606,11 +1606,11 @@ importers: specifier: 2.0.0-beta.33 version: link:../blitz next: - specifier: 13.3.0 - version: 13.3.0(@babel/core@7.20.2)(react-dom@18.2.0)(react@18.2.0) + specifier: 13.5.2 + version: 13.5.2(@babel/core@7.20.2)(react-dom@18.2.0)(react@18.2.0) next-auth: specifier: 4.18.7 - version: 4.18.7(next@13.3.0)(react-dom@18.2.0)(react@18.2.0) + version: 4.18.7(next@13.5.2)(react-dom@18.2.0)(react@18.2.0) react: specifier: 18.2.0 version: 18.2.0 @@ -1697,11 +1697,11 @@ importers: specifier: 4.1.0 version: 4.1.0 next: - specifier: 13.3.0 - version: 13.3.0(@babel/core@7.20.2)(react-dom@18.2.0)(react@18.2.0) + specifier: 13.5.2 + version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) next-router-mock: specifier: 0.9.1 - version: 0.9.1(next@13.3.0)(react@18.2.0) + version: 0.9.1(next@13.5.2)(react@18.2.0) react: specifier: 18.2.0 version: 18.2.0 @@ -1713,7 +1713,7 @@ importers: version: 5.0.0 ts-jest: specifier: 27.1.4 - version: 27.1.4(@babel/core@7.20.2)(esbuild@0.14.51)(jest@27.5.1)(typescript@4.8.4) + version: 27.1.4(@babel/core@7.12.10)(esbuild@0.14.51)(jest@27.5.1)(typescript@4.8.4) tslog: specifier: 4.9.0 version: 4.9.0 @@ -1776,8 +1776,8 @@ importers: specifier: 2.0.0-beta.33 version: link:../blitz next: - specifier: 13.3.0 - version: 13.3.0(@babel/core@7.20.2)(react-dom@18.2.0)(react@18.2.0) + specifier: 13.5.2 + version: 13.5.2(@babel/core@7.20.2)(react-dom@18.2.0)(react@18.2.0) react: specifier: 18.2.0 version: 18.2.0 @@ -1837,7 +1837,7 @@ importers: version: 10.0.1 jscodeshift: specifier: 0.13.0 - version: 0.13.0(@babel/preset-env@7.12.10) + version: 0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1) prompts: specifier: 2.4.2 version: 2.4.2 @@ -2072,7 +2072,7 @@ importers: version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 - version: 0.13.0(@babel/preset-env@7.12.10) + version: 0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1) devDependencies: "@types/jscodeshift": specifier: 0.11.2 @@ -2085,7 +2085,7 @@ importers: version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 - version: 0.13.0(@babel/preset-env@7.12.10) + version: 0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1) devDependencies: "@types/jscodeshift": specifier: 0.11.2 @@ -2098,7 +2098,7 @@ importers: version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 - version: 0.13.0(@babel/preset-env@7.12.10) + version: 0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1) devDependencies: "@types/jscodeshift": specifier: 0.11.2 @@ -2114,7 +2114,7 @@ importers: version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 - version: 0.13.0(@babel/preset-env@7.12.10) + version: 0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1) devDependencies: "@types/jscodeshift": specifier: 0.11.2 @@ -2130,7 +2130,7 @@ importers: version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 - version: 0.13.0(@babel/preset-env@7.12.10) + version: 0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1) devDependencies: "@types/jscodeshift": specifier: 0.11.2 @@ -2155,7 +2155,7 @@ importers: version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 - version: 0.13.0(@babel/preset-env@7.12.10) + version: 0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1) devDependencies: "@types/jscodeshift": specifier: 0.11.2 @@ -2168,7 +2168,7 @@ importers: version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 - version: 0.13.0(@babel/preset-env@7.12.10) + version: 0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1) uuid: specifier: ^8.3.1 version: 8.3.2 @@ -2184,7 +2184,7 @@ importers: version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 - version: 0.13.0(@babel/preset-env@7.12.10) + version: 0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1) devDependencies: "@types/jscodeshift": specifier: 0.11.2 @@ -2197,7 +2197,7 @@ importers: version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 - version: 0.13.0(@babel/preset-env@7.12.10) + version: 0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1) devDependencies: "@types/jscodeshift": specifier: 0.11.2 @@ -2210,7 +2210,7 @@ importers: version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 - version: 0.13.0(@babel/preset-env@7.12.10) + version: 0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1) devDependencies: "@types/jscodeshift": specifier: 0.11.2 @@ -2238,7 +2238,7 @@ importers: version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 - version: 0.13.0(@babel/preset-env@7.12.10) + version: 0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1) devDependencies: "@types/jscodeshift": specifier: 0.11.2 @@ -2260,7 +2260,7 @@ importers: version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 - version: 0.13.0(@babel/preset-env@7.12.10) + version: 0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1) uuid: specifier: ^8.3.1 version: 8.3.2 @@ -2276,7 +2276,7 @@ importers: version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 - version: 0.13.0(@babel/preset-env@7.12.10) + version: 0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1) devDependencies: "@types/jscodeshift": specifier: 0.11.2 @@ -2289,7 +2289,7 @@ importers: version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 - version: 0.13.0(@babel/preset-env@7.12.10) + version: 0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1) devDependencies: "@types/jscodeshift": specifier: 0.11.2 @@ -2305,7 +2305,7 @@ importers: version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 - version: 0.13.0(@babel/preset-env@7.12.10) + version: 0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1) devDependencies: "@types/jscodeshift": specifier: 0.11.2 @@ -2318,7 +2318,7 @@ importers: version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 - version: 0.13.0(@babel/preset-env@7.12.10) + version: 0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1) devDependencies: "@types/jscodeshift": specifier: 0.11.2 @@ -2334,7 +2334,7 @@ importers: version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 - version: 0.13.0(@babel/preset-env@7.12.10) + version: 0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1) devDependencies: "@types/jscodeshift": specifier: 0.11.2 @@ -2583,27 +2583,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/helper-create-class-features-plugin@7.17.12(@babel/core@7.18.2)(supports-color@8.1.1): - resolution: - { - integrity: sha512-sZoOeUTkFJMyhqCei2+Z+wtH/BehW8NVKQt7IRUQlRiOARuXymJYfN/FCcI8CvVbR0XVyDM6eLFOlR7YtiXnew==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-annotate-as-pure": 7.16.7 - "@babel/helper-environment-visitor": 7.18.2 - "@babel/helper-function-name": 7.17.9 - "@babel/helper-member-expression-to-functions": 7.17.7 - "@babel/helper-optimise-call-expression": 7.16.7 - "@babel/helper-replace-supers": 7.18.2(supports-color@8.1.1) - "@babel/helper-split-export-declaration": 7.16.7 - transitivePeerDependencies: - - supports-color - dev: false - /@babel/helper-create-class-features-plugin@7.18.0(@babel/core@7.12.10)(supports-color@8.1.1): resolution: { @@ -2658,20 +2637,6 @@ packages: "@babel/helper-annotate-as-pure": 7.16.7 regexpu-core: 5.0.1 - /@babel/helper-create-regexp-features-plugin@7.17.12(@babel/core@7.18.2): - resolution: - { - integrity: sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-annotate-as-pure": 7.16.7 - regexpu-core: 5.0.1 - dev: false - /@babel/helper-environment-visitor@7.18.2: resolution: { @@ -3028,23 +2993,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/plugin-proposal-async-generator-functions@7.17.12(@babel/core@7.18.2)(supports-color@8.1.1): - resolution: - { - integrity: sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - "@babel/helper-remap-async-to-generator": 7.16.8(supports-color@8.1.1) - "@babel/plugin-syntax-async-generators": 7.8.4(@babel/core@7.18.2) - transitivePeerDependencies: - - supports-color - dev: false - /@babel/plugin-proposal-class-properties@7.17.12(@babel/core@7.12.10)(supports-color@8.1.1): resolution: { @@ -3089,20 +3037,6 @@ packages: "@babel/helper-plugin-utils": 7.17.12 "@babel/plugin-syntax-dynamic-import": 7.8.3(@babel/core@7.12.10) - /@babel/plugin-proposal-dynamic-import@7.16.7(@babel/core@7.18.2): - resolution: - { - integrity: sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - "@babel/plugin-syntax-dynamic-import": 7.8.3(@babel/core@7.18.2) - dev: false - /@babel/plugin-proposal-export-namespace-from@7.17.12(@babel/core@7.12.10): resolution: { @@ -3116,20 +3050,6 @@ packages: "@babel/helper-plugin-utils": 7.17.12 "@babel/plugin-syntax-export-namespace-from": 7.8.3(@babel/core@7.12.10) - /@babel/plugin-proposal-export-namespace-from@7.17.12(@babel/core@7.18.2): - resolution: - { - integrity: sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - "@babel/plugin-syntax-export-namespace-from": 7.8.3(@babel/core@7.18.2) - dev: false - /@babel/plugin-proposal-json-strings@7.17.12(@babel/core@7.12.10): resolution: { @@ -3143,20 +3063,6 @@ packages: "@babel/helper-plugin-utils": 7.17.12 "@babel/plugin-syntax-json-strings": 7.8.3(@babel/core@7.12.10) - /@babel/plugin-proposal-json-strings@7.17.12(@babel/core@7.18.2): - resolution: - { - integrity: sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - "@babel/plugin-syntax-json-strings": 7.8.3(@babel/core@7.18.2) - dev: false - /@babel/plugin-proposal-logical-assignment-operators@7.17.12(@babel/core@7.12.10): resolution: { @@ -3170,20 +3076,6 @@ packages: "@babel/helper-plugin-utils": 7.17.12 "@babel/plugin-syntax-logical-assignment-operators": 7.10.4(@babel/core@7.12.10) - /@babel/plugin-proposal-logical-assignment-operators@7.17.12(@babel/core@7.18.2): - resolution: - { - integrity: sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - "@babel/plugin-syntax-logical-assignment-operators": 7.10.4(@babel/core@7.18.2) - dev: false - /@babel/plugin-proposal-nullish-coalescing-operator@7.17.12(@babel/core@7.12.10): resolution: { @@ -3224,20 +3116,6 @@ packages: "@babel/helper-plugin-utils": 7.17.12 "@babel/plugin-syntax-numeric-separator": 7.10.4(@babel/core@7.12.10) - /@babel/plugin-proposal-numeric-separator@7.16.7(@babel/core@7.18.2): - resolution: - { - integrity: sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - "@babel/plugin-syntax-numeric-separator": 7.10.4(@babel/core@7.18.2) - dev: false - /@babel/plugin-proposal-object-rest-spread@7.18.0(@babel/core@7.12.10): resolution: { @@ -3254,23 +3132,6 @@ packages: "@babel/plugin-syntax-object-rest-spread": 7.8.3(@babel/core@7.12.10) "@babel/plugin-transform-parameters": 7.17.12(@babel/core@7.12.10) - /@babel/plugin-proposal-object-rest-spread@7.18.0(@babel/core@7.18.2): - resolution: - { - integrity: sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/compat-data": 7.17.10 - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-compilation-targets": 7.18.2(@babel/core@7.18.2) - "@babel/helper-plugin-utils": 7.17.12 - "@babel/plugin-syntax-object-rest-spread": 7.8.3(@babel/core@7.18.2) - "@babel/plugin-transform-parameters": 7.17.12(@babel/core@7.18.2) - dev: false - /@babel/plugin-proposal-optional-catch-binding@7.16.7(@babel/core@7.12.10): resolution: { @@ -3284,20 +3145,6 @@ packages: "@babel/helper-plugin-utils": 7.17.12 "@babel/plugin-syntax-optional-catch-binding": 7.8.3(@babel/core@7.12.10) - /@babel/plugin-proposal-optional-catch-binding@7.16.7(@babel/core@7.18.2): - resolution: - { - integrity: sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - "@babel/plugin-syntax-optional-catch-binding": 7.8.3(@babel/core@7.18.2) - dev: false - /@babel/plugin-proposal-optional-chaining@7.17.12(@babel/core@7.12.10): resolution: { @@ -3342,22 +3189,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/plugin-proposal-private-methods@7.17.12(@babel/core@7.18.2)(supports-color@8.1.1): - resolution: - { - integrity: sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-create-class-features-plugin": 7.17.12(@babel/core@7.18.2)(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - transitivePeerDependencies: - - supports-color - dev: false - /@babel/plugin-proposal-unicode-property-regex@7.17.12(@babel/core@7.12.10): resolution: { @@ -3371,20 +3202,6 @@ packages: "@babel/helper-create-regexp-features-plugin": 7.17.12(@babel/core@7.12.10) "@babel/helper-plugin-utils": 7.17.12 - /@babel/plugin-proposal-unicode-property-regex@7.17.12(@babel/core@7.18.2): - resolution: - { - integrity: sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A==, - } - engines: {node: ">=4"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-create-regexp-features-plugin": 7.17.12(@babel/core@7.18.2) - "@babel/helper-plugin-utils": 7.17.12 - dev: false - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.12.10): resolution: { @@ -3396,18 +3213,6 @@ packages: "@babel/core": 7.12.10(supports-color@8.1.1) "@babel/helper-plugin-utils": 7.17.12 - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.18.2): - resolution: - { - integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==, - } - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - dev: false - /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.12.10): resolution: { @@ -3430,18 +3235,6 @@ packages: "@babel/core": 7.12.10(supports-color@8.1.1) "@babel/helper-plugin-utils": 7.17.12 - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.18.2): - resolution: - { - integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==, - } - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - dev: false - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.12.10): resolution: { @@ -3453,18 +3246,6 @@ packages: "@babel/core": 7.12.10(supports-color@8.1.1) "@babel/helper-plugin-utils": 7.17.12 - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.18.2): - resolution: - { - integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==, - } - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - dev: false - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.12.10): resolution: { @@ -3476,18 +3257,6 @@ packages: "@babel/core": 7.12.10(supports-color@8.1.1) "@babel/helper-plugin-utils": 7.17.12 - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.18.2): - resolution: - { - integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==, - } - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - dev: false - /@babel/plugin-syntax-flow@7.17.12(@babel/core@7.18.2): resolution: { @@ -3523,18 +3292,6 @@ packages: "@babel/core": 7.12.10(supports-color@8.1.1) "@babel/helper-plugin-utils": 7.17.12 - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.18.2): - resolution: - { - integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==, - } - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - dev: false - /@babel/plugin-syntax-jsx@7.17.12(@babel/core@7.12.10): resolution: { @@ -3584,18 +3341,6 @@ packages: "@babel/core": 7.12.10(supports-color@8.1.1) "@babel/helper-plugin-utils": 7.17.12 - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.18.2): - resolution: - { - integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==, - } - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - dev: false - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.12.10): resolution: { @@ -3630,22 +3375,21 @@ packages: "@babel/core": 7.12.10(supports-color@8.1.1) "@babel/helper-plugin-utils": 7.17.12 - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.18.2): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.12.10): resolution: { - integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==, + integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==, } peerDependencies: "@babel/core": ^7.0.0-0 dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) + "@babel/core": 7.12.10(supports-color@8.1.1) "@babel/helper-plugin-utils": 7.17.12 - dev: false - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.12.10): + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.12.10): resolution: { - integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==, + integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==, } peerDependencies: "@babel/core": ^7.0.0-0 @@ -3653,42 +3397,7 @@ packages: "@babel/core": 7.12.10(supports-color@8.1.1) "@babel/helper-plugin-utils": 7.17.12 - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.18.2): - resolution: - { - integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==, - } - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - dev: false - - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.12.10): - resolution: - { - integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==, - } - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.12.10(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.18.2): - resolution: - { - integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==, - } - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - dev: false - - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.12.10): + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.12.10): resolution: { integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==, @@ -3723,19 +3432,6 @@ packages: "@babel/core": 7.12.10(supports-color@8.1.1) "@babel/helper-plugin-utils": 7.17.12 - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.18.2): - resolution: - { - integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - dev: false - /@babel/plugin-syntax-typescript@7.17.12(@babel/core@7.12.10): resolution: { @@ -3773,19 +3469,6 @@ packages: "@babel/core": 7.12.10(supports-color@8.1.1) "@babel/helper-plugin-utils": 7.17.12 - /@babel/plugin-transform-arrow-functions@7.17.12(@babel/core@7.18.2): - resolution: - { - integrity: sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - dev: false - /@babel/plugin-transform-async-to-generator@7.17.12(@babel/core@7.12.10)(supports-color@8.1.1): resolution: { @@ -3802,23 +3485,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/plugin-transform-async-to-generator@7.17.12(@babel/core@7.18.2)(supports-color@8.1.1): - resolution: - { - integrity: sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-module-imports": 7.16.7 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/helper-remap-async-to-generator": 7.16.8(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - dev: false - /@babel/plugin-transform-block-scoped-functions@7.16.7(@babel/core@7.12.10): resolution: { @@ -3831,19 +3497,6 @@ packages: "@babel/core": 7.12.10(supports-color@8.1.1) "@babel/helper-plugin-utils": 7.17.12 - /@babel/plugin-transform-block-scoped-functions@7.16.7(@babel/core@7.18.2): - resolution: - { - integrity: sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - dev: false - /@babel/plugin-transform-block-scoping@7.18.4(@babel/core@7.12.10): resolution: { @@ -3856,19 +3509,6 @@ packages: "@babel/core": 7.12.10(supports-color@8.1.1) "@babel/helper-plugin-utils": 7.17.12 - /@babel/plugin-transform-block-scoping@7.18.4(@babel/core@7.18.2): - resolution: - { - integrity: sha512-+Hq10ye+jlvLEogSOtq4mKvtk7qwcUQ1f0Mrueai866C82f844Yom2cttfJdMdqRLTxWpsbfbkIkOIfovyUQXw==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - dev: false - /@babel/plugin-transform-classes@7.18.4(@babel/core@7.12.10)(supports-color@8.1.1): resolution: { @@ -3890,28 +3530,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/plugin-transform-classes@7.18.4(@babel/core@7.18.2)(supports-color@8.1.1): - resolution: - { - integrity: sha512-e42NSG2mlKWgxKUAD9EJJSkZxR67+wZqzNxLSpc51T8tRU5SLFHsPmgYR5yr7sdgX4u+iHA1C5VafJ6AyImV3A==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-annotate-as-pure": 7.16.7 - "@babel/helper-environment-visitor": 7.18.2 - "@babel/helper-function-name": 7.17.9 - "@babel/helper-optimise-call-expression": 7.16.7 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/helper-replace-supers": 7.18.2(supports-color@8.1.1) - "@babel/helper-split-export-declaration": 7.16.7 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: false - /@babel/plugin-transform-computed-properties@7.17.12(@babel/core@7.12.10): resolution: { @@ -3924,19 +3542,6 @@ packages: "@babel/core": 7.12.10(supports-color@8.1.1) "@babel/helper-plugin-utils": 7.17.12 - /@babel/plugin-transform-computed-properties@7.17.12(@babel/core@7.18.2): - resolution: - { - integrity: sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - dev: false - /@babel/plugin-transform-destructuring@7.18.0(@babel/core@7.12.10): resolution: { @@ -3949,19 +3554,6 @@ packages: "@babel/core": 7.12.10(supports-color@8.1.1) "@babel/helper-plugin-utils": 7.17.12 - /@babel/plugin-transform-destructuring@7.18.0(@babel/core@7.18.2): - resolution: - { - integrity: sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - dev: false - /@babel/plugin-transform-dotall-regex@7.16.7(@babel/core@7.12.10): resolution: { @@ -3975,20 +3567,6 @@ packages: "@babel/helper-create-regexp-features-plugin": 7.17.12(@babel/core@7.12.10) "@babel/helper-plugin-utils": 7.17.12 - /@babel/plugin-transform-dotall-regex@7.16.7(@babel/core@7.18.2): - resolution: - { - integrity: sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-create-regexp-features-plugin": 7.17.12(@babel/core@7.18.2) - "@babel/helper-plugin-utils": 7.17.12 - dev: false - /@babel/plugin-transform-duplicate-keys@7.17.12(@babel/core@7.12.10): resolution: { @@ -4001,19 +3579,6 @@ packages: "@babel/core": 7.12.10(supports-color@8.1.1) "@babel/helper-plugin-utils": 7.17.12 - /@babel/plugin-transform-duplicate-keys@7.17.12(@babel/core@7.18.2): - resolution: - { - integrity: sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - dev: false - /@babel/plugin-transform-exponentiation-operator@7.16.7(@babel/core@7.12.10): resolution: { @@ -4027,20 +3592,6 @@ packages: "@babel/helper-builder-binary-assignment-operator-visitor": 7.16.7 "@babel/helper-plugin-utils": 7.17.12 - /@babel/plugin-transform-exponentiation-operator@7.16.7(@babel/core@7.18.2): - resolution: - { - integrity: sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-builder-binary-assignment-operator-visitor": 7.16.7 - "@babel/helper-plugin-utils": 7.17.12 - dev: false - /@babel/plugin-transform-flow-strip-types@7.17.12(@babel/core@7.18.2): resolution: { @@ -4067,19 +3618,6 @@ packages: "@babel/core": 7.12.10(supports-color@8.1.1) "@babel/helper-plugin-utils": 7.17.12 - /@babel/plugin-transform-for-of@7.18.1(@babel/core@7.18.2): - resolution: - { - integrity: sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - dev: false - /@babel/plugin-transform-function-name@7.16.7(@babel/core@7.12.10): resolution: { @@ -4094,21 +3632,6 @@ packages: "@babel/helper-function-name": 7.17.9 "@babel/helper-plugin-utils": 7.17.12 - /@babel/plugin-transform-function-name@7.16.7(@babel/core@7.18.2): - resolution: - { - integrity: sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-compilation-targets": 7.18.2(@babel/core@7.18.2) - "@babel/helper-function-name": 7.17.9 - "@babel/helper-plugin-utils": 7.17.12 - dev: false - /@babel/plugin-transform-literals@7.17.12(@babel/core@7.12.10): resolution: { @@ -4121,19 +3644,6 @@ packages: "@babel/core": 7.12.10(supports-color@8.1.1) "@babel/helper-plugin-utils": 7.17.12 - /@babel/plugin-transform-literals@7.17.12(@babel/core@7.18.2): - resolution: - { - integrity: sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - dev: false - /@babel/plugin-transform-member-expression-literals@7.16.7(@babel/core@7.12.10): resolution: { @@ -4146,19 +3656,6 @@ packages: "@babel/core": 7.12.10(supports-color@8.1.1) "@babel/helper-plugin-utils": 7.17.12 - /@babel/plugin-transform-member-expression-literals@7.16.7(@babel/core@7.18.2): - resolution: - { - integrity: sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - dev: false - /@babel/plugin-transform-modules-amd@7.18.0(@babel/core@7.12.10)(supports-color@8.1.1): resolution: { @@ -4175,23 +3672,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/plugin-transform-modules-amd@7.18.0(@babel/core@7.18.2)(supports-color@8.1.1): - resolution: - { - integrity: sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-module-transforms": 7.18.0(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - babel-plugin-dynamic-import-node: 2.3.3 - transitivePeerDependencies: - - supports-color - dev: false - /@babel/plugin-transform-modules-commonjs@7.18.2(@babel/core@7.12.10)(supports-color@8.1.1): resolution: { @@ -4227,161 +3707,56 @@ packages: - supports-color dev: false - /@babel/plugin-transform-modules-systemjs@7.18.4(@babel/core@7.12.10)(supports-color@8.1.1): - resolution: - { - integrity: sha512-lH2UaQaHVOAeYrUUuZ8i38o76J/FnO8vu21OE+tD1MyP9lxdZoSfz+pDbWkq46GogUrdrMz3tiz/FYGB+bVThg==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.12.10(supports-color@8.1.1) - "@babel/helper-hoist-variables": 7.16.7 - "@babel/helper-module-transforms": 7.18.0(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - "@babel/helper-validator-identifier": 7.16.7 - babel-plugin-dynamic-import-node: 2.3.3 - transitivePeerDependencies: - - supports-color - - /@babel/plugin-transform-modules-systemjs@7.18.4(@babel/core@7.18.2)(supports-color@8.1.1): - resolution: - { - integrity: sha512-lH2UaQaHVOAeYrUUuZ8i38o76J/FnO8vu21OE+tD1MyP9lxdZoSfz+pDbWkq46GogUrdrMz3tiz/FYGB+bVThg==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-hoist-variables": 7.16.7 - "@babel/helper-module-transforms": 7.18.0(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - "@babel/helper-validator-identifier": 7.16.7 - babel-plugin-dynamic-import-node: 2.3.3 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-transform-modules-umd@7.18.0(@babel/core@7.12.10)(supports-color@8.1.1): - resolution: - { - integrity: sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.12.10(supports-color@8.1.1) - "@babel/helper-module-transforms": 7.18.0(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - transitivePeerDependencies: - - supports-color - - /@babel/plugin-transform-modules-umd@7.18.0(@babel/core@7.18.2)(supports-color@8.1.1): - resolution: - { - integrity: sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-module-transforms": 7.18.0(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-transform-named-capturing-groups-regex@7.17.12(@babel/core@7.12.10): - resolution: - { - integrity: sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0 - dependencies: - "@babel/core": 7.12.10(supports-color@8.1.1) - "@babel/helper-create-regexp-features-plugin": 7.17.12(@babel/core@7.12.10) - "@babel/helper-plugin-utils": 7.17.12 - - /@babel/plugin-transform-named-capturing-groups-regex@7.17.12(@babel/core@7.18.2): - resolution: - { - integrity: sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-create-regexp-features-plugin": 7.17.12(@babel/core@7.18.2) - "@babel/helper-plugin-utils": 7.17.12 - dev: false - - /@babel/plugin-transform-new-target@7.17.12(@babel/core@7.12.10): - resolution: - { - integrity: sha512-CaOtzk2fDYisbjAD4Sd1MTKGVIpRtx9bWLyj24Y/k6p4s4gQ3CqDGJauFJxt8M/LEx003d0i3klVqnN73qvK3w==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.12.10(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - - /@babel/plugin-transform-new-target@7.17.12(@babel/core@7.18.2): + /@babel/plugin-transform-modules-systemjs@7.18.4(@babel/core@7.12.10)(supports-color@8.1.1): resolution: { - integrity: sha512-CaOtzk2fDYisbjAD4Sd1MTKGVIpRtx9bWLyj24Y/k6p4s4gQ3CqDGJauFJxt8M/LEx003d0i3klVqnN73qvK3w==, + integrity: sha512-lH2UaQaHVOAeYrUUuZ8i38o76J/FnO8vu21OE+tD1MyP9lxdZoSfz+pDbWkq46GogUrdrMz3tiz/FYGB+bVThg==, } engines: {node: ">=6.9.0"} peerDependencies: "@babel/core": ^7.0.0-0 dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) + "@babel/core": 7.12.10(supports-color@8.1.1) + "@babel/helper-hoist-variables": 7.16.7 + "@babel/helper-module-transforms": 7.18.0(supports-color@8.1.1) "@babel/helper-plugin-utils": 7.17.12 - dev: false + "@babel/helper-validator-identifier": 7.16.7 + babel-plugin-dynamic-import-node: 2.3.3 + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-object-super@7.16.7(@babel/core@7.12.10)(supports-color@8.1.1): + /@babel/plugin-transform-modules-umd@7.18.0(@babel/core@7.12.10)(supports-color@8.1.1): resolution: { - integrity: sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==, + integrity: sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==, } engines: {node: ">=6.9.0"} peerDependencies: "@babel/core": ^7.0.0-0 dependencies: "@babel/core": 7.12.10(supports-color@8.1.1) + "@babel/helper-module-transforms": 7.18.0(supports-color@8.1.1) "@babel/helper-plugin-utils": 7.17.12 - "@babel/helper-replace-supers": 7.18.2(supports-color@8.1.1) transitivePeerDependencies: - supports-color - /@babel/plugin-transform-object-super@7.16.7(@babel/core@7.18.2)(supports-color@8.1.1): + /@babel/plugin-transform-named-capturing-groups-regex@7.17.12(@babel/core@7.12.10): resolution: { - integrity: sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==, + integrity: sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==, } engines: {node: ">=6.9.0"} peerDependencies: - "@babel/core": ^7.0.0-0 + "@babel/core": ^7.0.0 dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) + "@babel/core": 7.12.10(supports-color@8.1.1) + "@babel/helper-create-regexp-features-plugin": 7.17.12(@babel/core@7.12.10) "@babel/helper-plugin-utils": 7.17.12 - "@babel/helper-replace-supers": 7.18.2(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - dev: false - /@babel/plugin-transform-parameters@7.17.12(@babel/core@7.12.10): + /@babel/plugin-transform-new-target@7.17.12(@babel/core@7.12.10): resolution: { - integrity: sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==, + integrity: sha512-CaOtzk2fDYisbjAD4Sd1MTKGVIpRtx9bWLyj24Y/k6p4s4gQ3CqDGJauFJxt8M/LEx003d0i3klVqnN73qvK3w==, } engines: {node: ">=6.9.0"} peerDependencies: @@ -4390,23 +3765,25 @@ packages: "@babel/core": 7.12.10(supports-color@8.1.1) "@babel/helper-plugin-utils": 7.17.12 - /@babel/plugin-transform-parameters@7.17.12(@babel/core@7.18.2): + /@babel/plugin-transform-object-super@7.16.7(@babel/core@7.12.10)(supports-color@8.1.1): resolution: { - integrity: sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==, + integrity: sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==, } engines: {node: ">=6.9.0"} peerDependencies: "@babel/core": ^7.0.0-0 dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) + "@babel/core": 7.12.10(supports-color@8.1.1) "@babel/helper-plugin-utils": 7.17.12 - dev: false + "@babel/helper-replace-supers": 7.18.2(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-property-literals@7.16.7(@babel/core@7.12.10): + /@babel/plugin-transform-parameters@7.17.12(@babel/core@7.12.10): resolution: { - integrity: sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==, + integrity: sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==, } engines: {node: ">=6.9.0"} peerDependencies: @@ -4415,7 +3792,7 @@ packages: "@babel/core": 7.12.10(supports-color@8.1.1) "@babel/helper-plugin-utils": 7.17.12 - /@babel/plugin-transform-property-literals@7.16.7(@babel/core@7.18.2): + /@babel/plugin-transform-property-literals@7.16.7(@babel/core@7.12.10): resolution: { integrity: sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==, @@ -4424,9 +3801,8 @@ packages: peerDependencies: "@babel/core": ^7.0.0-0 dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) + "@babel/core": 7.12.10(supports-color@8.1.1) "@babel/helper-plugin-utils": 7.17.12 - dev: false /@babel/plugin-transform-react-jsx-development@7.16.7(@babel/core@7.18.2): resolution: @@ -4553,20 +3929,6 @@ packages: "@babel/helper-plugin-utils": 7.17.12 regenerator-transform: 0.15.0 - /@babel/plugin-transform-regenerator@7.18.0(@babel/core@7.18.2): - resolution: - { - integrity: sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - regenerator-transform: 0.15.0 - dev: false - /@babel/plugin-transform-reserved-words@7.17.12(@babel/core@7.12.10): resolution: { @@ -4579,19 +3941,6 @@ packages: "@babel/core": 7.12.10(supports-color@8.1.1) "@babel/helper-plugin-utils": 7.17.12 - /@babel/plugin-transform-reserved-words@7.17.12(@babel/core@7.18.2): - resolution: - { - integrity: sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - dev: false - /@babel/plugin-transform-shorthand-properties@7.16.7(@babel/core@7.12.10): resolution: { @@ -4604,19 +3953,6 @@ packages: "@babel/core": 7.12.10(supports-color@8.1.1) "@babel/helper-plugin-utils": 7.17.12 - /@babel/plugin-transform-shorthand-properties@7.16.7(@babel/core@7.18.2): - resolution: - { - integrity: sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - dev: false - /@babel/plugin-transform-spread@7.17.12(@babel/core@7.12.10): resolution: { @@ -4630,20 +3966,6 @@ packages: "@babel/helper-plugin-utils": 7.17.12 "@babel/helper-skip-transparent-expression-wrappers": 7.16.0 - /@babel/plugin-transform-spread@7.17.12(@babel/core@7.18.2): - resolution: - { - integrity: sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - "@babel/helper-skip-transparent-expression-wrappers": 7.16.0 - dev: false - /@babel/plugin-transform-sticky-regex@7.16.7(@babel/core@7.12.10): resolution: { @@ -4656,19 +3978,6 @@ packages: "@babel/core": 7.12.10(supports-color@8.1.1) "@babel/helper-plugin-utils": 7.17.12 - /@babel/plugin-transform-sticky-regex@7.16.7(@babel/core@7.18.2): - resolution: - { - integrity: sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - dev: false - /@babel/plugin-transform-template-literals@7.18.2(@babel/core@7.12.10): resolution: { @@ -4681,19 +3990,6 @@ packages: "@babel/core": 7.12.10(supports-color@8.1.1) "@babel/helper-plugin-utils": 7.17.12 - /@babel/plugin-transform-template-literals@7.18.2(@babel/core@7.18.2): - resolution: - { - integrity: sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - dev: false - /@babel/plugin-transform-typeof-symbol@7.17.12(@babel/core@7.12.10): resolution: { @@ -4706,19 +4002,6 @@ packages: "@babel/core": 7.12.10(supports-color@8.1.1) "@babel/helper-plugin-utils": 7.17.12 - /@babel/plugin-transform-typeof-symbol@7.17.12(@babel/core@7.18.2): - resolution: - { - integrity: sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - dev: false - /@babel/plugin-transform-typescript@7.12.1(@babel/core@7.12.10)(supports-color@8.1.1): resolution: { @@ -4764,19 +4047,6 @@ packages: "@babel/core": 7.12.10(supports-color@8.1.1) "@babel/helper-plugin-utils": 7.17.12 - /@babel/plugin-transform-unicode-escapes@7.16.7(@babel/core@7.18.2): - resolution: - { - integrity: sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - dev: false - /@babel/plugin-transform-unicode-regex@7.16.7(@babel/core@7.12.10): resolution: { @@ -4790,20 +4060,6 @@ packages: "@babel/helper-create-regexp-features-plugin": 7.17.12(@babel/core@7.12.10) "@babel/helper-plugin-utils": 7.17.12 - /@babel/plugin-transform-unicode-regex@7.16.7(@babel/core@7.18.2): - resolution: - { - integrity: sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==, - } - engines: {node: ">=6.9.0"} - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-create-regexp-features-plugin": 7.17.12(@babel/core@7.18.2) - "@babel/helper-plugin-utils": 7.17.12 - dev: false - /@babel/preset-env@7.12.10(@babel/core@7.12.10)(supports-color@8.1.1): resolution: { @@ -4882,85 +4138,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/preset-env@7.12.10(@babel/core@7.18.2)(supports-color@8.1.1): - resolution: - { - integrity: sha512-Gz9hnBT/tGeTE2DBNDkD7BiWRELZt+8lSysHuDwmYXUIvtwZl0zI+D6mZgXZX0u8YBlLS4tmai9ONNY9tjRgRA==, - } - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/compat-data": 7.17.10 - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-compilation-targets": 7.18.2(@babel/core@7.18.2) - "@babel/helper-module-imports": 7.16.7 - "@babel/helper-plugin-utils": 7.17.12 - "@babel/helper-validator-option": 7.16.7 - "@babel/plugin-proposal-async-generator-functions": 7.17.12(@babel/core@7.18.2)(supports-color@8.1.1) - "@babel/plugin-proposal-class-properties": 7.17.12(@babel/core@7.18.2)(supports-color@8.1.1) - "@babel/plugin-proposal-dynamic-import": 7.16.7(@babel/core@7.18.2) - "@babel/plugin-proposal-export-namespace-from": 7.17.12(@babel/core@7.18.2) - "@babel/plugin-proposal-json-strings": 7.17.12(@babel/core@7.18.2) - "@babel/plugin-proposal-logical-assignment-operators": 7.17.12(@babel/core@7.18.2) - "@babel/plugin-proposal-nullish-coalescing-operator": 7.17.12(@babel/core@7.18.2) - "@babel/plugin-proposal-numeric-separator": 7.16.7(@babel/core@7.18.2) - "@babel/plugin-proposal-object-rest-spread": 7.18.0(@babel/core@7.18.2) - "@babel/plugin-proposal-optional-catch-binding": 7.16.7(@babel/core@7.18.2) - "@babel/plugin-proposal-optional-chaining": 7.17.12(@babel/core@7.18.2) - "@babel/plugin-proposal-private-methods": 7.17.12(@babel/core@7.18.2)(supports-color@8.1.1) - "@babel/plugin-proposal-unicode-property-regex": 7.17.12(@babel/core@7.18.2) - "@babel/plugin-syntax-async-generators": 7.8.4(@babel/core@7.18.2) - "@babel/plugin-syntax-class-properties": 7.12.13(@babel/core@7.18.2) - "@babel/plugin-syntax-dynamic-import": 7.8.3(@babel/core@7.18.2) - "@babel/plugin-syntax-export-namespace-from": 7.8.3(@babel/core@7.18.2) - "@babel/plugin-syntax-json-strings": 7.8.3(@babel/core@7.18.2) - "@babel/plugin-syntax-logical-assignment-operators": 7.10.4(@babel/core@7.18.2) - "@babel/plugin-syntax-nullish-coalescing-operator": 7.8.3(@babel/core@7.18.2) - "@babel/plugin-syntax-numeric-separator": 7.10.4(@babel/core@7.18.2) - "@babel/plugin-syntax-object-rest-spread": 7.8.3(@babel/core@7.18.2) - "@babel/plugin-syntax-optional-catch-binding": 7.8.3(@babel/core@7.18.2) - "@babel/plugin-syntax-optional-chaining": 7.8.3(@babel/core@7.18.2) - "@babel/plugin-syntax-top-level-await": 7.14.5(@babel/core@7.18.2) - "@babel/plugin-transform-arrow-functions": 7.17.12(@babel/core@7.18.2) - "@babel/plugin-transform-async-to-generator": 7.17.12(@babel/core@7.18.2)(supports-color@8.1.1) - "@babel/plugin-transform-block-scoped-functions": 7.16.7(@babel/core@7.18.2) - "@babel/plugin-transform-block-scoping": 7.18.4(@babel/core@7.18.2) - "@babel/plugin-transform-classes": 7.18.4(@babel/core@7.18.2)(supports-color@8.1.1) - "@babel/plugin-transform-computed-properties": 7.17.12(@babel/core@7.18.2) - "@babel/plugin-transform-destructuring": 7.18.0(@babel/core@7.18.2) - "@babel/plugin-transform-dotall-regex": 7.16.7(@babel/core@7.18.2) - "@babel/plugin-transform-duplicate-keys": 7.17.12(@babel/core@7.18.2) - "@babel/plugin-transform-exponentiation-operator": 7.16.7(@babel/core@7.18.2) - "@babel/plugin-transform-for-of": 7.18.1(@babel/core@7.18.2) - "@babel/plugin-transform-function-name": 7.16.7(@babel/core@7.18.2) - "@babel/plugin-transform-literals": 7.17.12(@babel/core@7.18.2) - "@babel/plugin-transform-member-expression-literals": 7.16.7(@babel/core@7.18.2) - "@babel/plugin-transform-modules-amd": 7.18.0(@babel/core@7.18.2)(supports-color@8.1.1) - "@babel/plugin-transform-modules-commonjs": 7.18.2(@babel/core@7.18.2)(supports-color@8.1.1) - "@babel/plugin-transform-modules-systemjs": 7.18.4(@babel/core@7.18.2)(supports-color@8.1.1) - "@babel/plugin-transform-modules-umd": 7.18.0(@babel/core@7.18.2)(supports-color@8.1.1) - "@babel/plugin-transform-named-capturing-groups-regex": 7.17.12(@babel/core@7.18.2) - "@babel/plugin-transform-new-target": 7.17.12(@babel/core@7.18.2) - "@babel/plugin-transform-object-super": 7.16.7(@babel/core@7.18.2)(supports-color@8.1.1) - "@babel/plugin-transform-parameters": 7.17.12(@babel/core@7.18.2) - "@babel/plugin-transform-property-literals": 7.16.7(@babel/core@7.18.2) - "@babel/plugin-transform-regenerator": 7.18.0(@babel/core@7.18.2) - "@babel/plugin-transform-reserved-words": 7.17.12(@babel/core@7.18.2) - "@babel/plugin-transform-shorthand-properties": 7.16.7(@babel/core@7.18.2) - "@babel/plugin-transform-spread": 7.17.12(@babel/core@7.18.2) - "@babel/plugin-transform-sticky-regex": 7.16.7(@babel/core@7.18.2) - "@babel/plugin-transform-template-literals": 7.18.2(@babel/core@7.18.2) - "@babel/plugin-transform-typeof-symbol": 7.17.12(@babel/core@7.18.2) - "@babel/plugin-transform-unicode-escapes": 7.16.7(@babel/core@7.18.2) - "@babel/plugin-transform-unicode-regex": 7.16.7(@babel/core@7.18.2) - "@babel/preset-modules": 0.1.5(@babel/core@7.18.2) - "@babel/types": 7.17.12 - core-js-compat: 3.22.5 - semver: 5.7.1 - transitivePeerDependencies: - - supports-color - dev: false - /@babel/preset-flow@7.17.12(@babel/core@7.18.2): resolution: { @@ -4991,22 +4168,6 @@ packages: "@babel/types": 7.18.4 esutils: 2.0.3 - /@babel/preset-modules@0.1.5(@babel/core@7.18.2): - resolution: - { - integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==, - } - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 - "@babel/plugin-proposal-unicode-property-regex": 7.17.12(@babel/core@7.18.2) - "@babel/plugin-transform-dotall-regex": 7.16.7(@babel/core@7.18.2) - "@babel/types": 7.18.4 - esutils: 2.0.3 - dev: false - /@babel/preset-typescript@7.17.12(@babel/core@7.18.2)(supports-color@8.1.1): resolution: { @@ -6230,10 +5391,10 @@ packages: - utf-8-validate dev: true - /@next/env@13.3.0: + /@next/env@13.5.2: resolution: { - integrity: sha512-AjppRV4uG3No7L1plinoTQETH+j2F10TEnrMfzbTUYwze5sBUPveeeBAPZPm8OkJZ1epq9OyYKhZrvbD6/9HCQ==, + integrity: sha512-dUseBIQVax+XtdJPzhwww4GetTjlkRSsXeQnisIJWBaHsnxYcN2RGzsPHi58D6qnkATjnhuAtQTJmR1hKYQQPg==, } /@next/eslint-plugin-next@12.3.1: @@ -6262,10 +5423,10 @@ packages: glob: 7.1.7 dev: true - /@next/swc-darwin-arm64@13.3.0: + /@next/swc-darwin-arm64@13.5.2: resolution: { - integrity: sha512-DmIQCNq6JtccLPPBzf0dgh2vzMWt5wjxbP71pCi5EWpWYE3MsP6FcRXi4MlAmFNDQOfcFXR2r7kBeG1LpZUh1w==, + integrity: sha512-7eAyunAWq6yFwdSQliWMmGhObPpHTesiKxMw4DWVxhm5yLotBj8FCR4PXGkpRP2tf8QhaWuVba+/fyAYggqfQg==, } engines: {node: ">= 10"} cpu: [arm64] @@ -6273,10 +5434,10 @@ packages: requiresBuild: true optional: true - /@next/swc-darwin-x64@13.3.0: + /@next/swc-darwin-x64@13.5.2: resolution: { - integrity: sha512-oQoqFa88OGgwnYlnAGHVct618FRI/749se0N3S8t9Bzdv5CRbscnO0RcX901+YnNK4Q6yeiizfgO3b7kogtsZg==, + integrity: sha512-WxXYWE7zF1ch8rrNh5xbIWzhMVas6Vbw+9BCSyZvu7gZC5EEiyZNJsafsC89qlaSA7BnmsDXVWQmc+s1feSYbQ==, } engines: {node: ">= 10"} cpu: [x64] @@ -6284,10 +5445,10 @@ packages: requiresBuild: true optional: true - /@next/swc-linux-arm64-gnu@13.3.0: + /@next/swc-linux-arm64-gnu@13.5.2: resolution: { - integrity: sha512-Wzz2p/WqAJUqTVoLo6H18WMeAXo3i+9DkPDae4oQG8LMloJ3if4NEZTnOnTUlro6cq+S/W4pTGa97nWTrOjbGw==, + integrity: sha512-URSwhRYrbj/4MSBjLlefPTK3/tvg95TTm6mRaiZWBB6Za3hpHKi8vSdnCMw5D2aP6k0sQQIEG6Pzcfwm+C5vrg==, } engines: {node: ">= 10"} cpu: [arm64] @@ -6295,10 +5456,10 @@ packages: requiresBuild: true optional: true - /@next/swc-linux-arm64-musl@13.3.0: + /@next/swc-linux-arm64-musl@13.5.2: resolution: { - integrity: sha512-xPVrIQOQo9WXJYgmoTlMnAD/HlR/1e1ZIWGbwIzEirXBVBqMARUulBEIKdC19zuvoJ477qZJgBDCKtKEykCpyQ==, + integrity: sha512-HefiwAdIygFyNmyVsQeiJp+j8vPKpIRYDlmTlF9/tLdcd3qEL/UEBswa1M7cvO8nHcr27ZTKXz5m7dkd56/Esg==, } engines: {node: ">= 10"} cpu: [arm64] @@ -6306,10 +5467,10 @@ packages: requiresBuild: true optional: true - /@next/swc-linux-x64-gnu@13.3.0: + /@next/swc-linux-x64-gnu@13.5.2: resolution: { - integrity: sha512-jOFlpGuPD7W2tuXVJP4wt9a3cpNxWAPcloq5EfMJRiXsBBOjLVFZA7boXYxEBzSVgUiVVr1V9T0HFM7pULJ1qA==, + integrity: sha512-htGVVroW0tdHgMYwKWkxWvVoG2RlAdDXRO1RQxYDvOBQsaV0nZsgKkw0EJJJ3urTYnwKskn/MXm305cOgRxD2w==, } engines: {node: ">= 10"} cpu: [x64] @@ -6317,10 +5478,10 @@ packages: requiresBuild: true optional: true - /@next/swc-linux-x64-musl@13.3.0: + /@next/swc-linux-x64-musl@13.5.2: resolution: { - integrity: sha512-2OwKlzaBgmuet9XYHc3KwsEilzb04F540rlRXkAcjMHL7eCxB7uZIGtsVvKOnQLvC/elrUegwSw1+5f7WmfyOw==, + integrity: sha512-UBD333GxbHVGi7VDJPPDD1bKnx30gn2clifNJbla7vo5nmBV+x5adyARg05RiT9amIpda6yzAEEUu+s774ldkw==, } engines: {node: ">= 10"} cpu: [x64] @@ -6328,10 +5489,10 @@ packages: requiresBuild: true optional: true - /@next/swc-win32-arm64-msvc@13.3.0: + /@next/swc-win32-arm64-msvc@13.5.2: resolution: { - integrity: sha512-OeHiA6YEvndxT46g+rzFK/MQTfftKxJmzslERMu9LDdC6Kez0bdrgEYed5eXFK2Z1viKZJCGRlhd06rBusyztA==, + integrity: sha512-Em9ApaSFIQnWXRT3K6iFnr9uBXymixLc65Xw4eNt7glgH0eiXpg+QhjmgI2BFyc7k4ZIjglfukt9saNpEyolWA==, } engines: {node: ">= 10"} cpu: [arm64] @@ -6339,10 +5500,10 @@ packages: requiresBuild: true optional: true - /@next/swc-win32-ia32-msvc@13.3.0: + /@next/swc-win32-ia32-msvc@13.5.2: resolution: { - integrity: sha512-4aB7K9mcVK1lYEzpOpqWrXHEZympU3oK65fnNcY1Qc4HLJFLJj8AViuqQd4jjjPNuV4sl8jAwTz3gN5VNGWB7w==, + integrity: sha512-TBACBvvNYU+87X0yklSuAseqdpua8m/P79P0SG1fWUvWDDA14jASIg7kr86AuY5qix47nZLEJ5WWS0L20jAUNw==, } engines: {node: ">= 10"} cpu: [ia32] @@ -6350,10 +5511,10 @@ packages: requiresBuild: true optional: true - /@next/swc-win32-x64-msvc@13.3.0: + /@next/swc-win32-x64-msvc@13.5.2: resolution: { - integrity: sha512-Reer6rkLLcoOvB0dd66+Y7WrWVFH7sEEkF/4bJCIfsSKnTStTYaHtwIJAwbqnt9I392Tqvku0KkoqZOryWV9LQ==, + integrity: sha512-LfTHt+hTL8w7F9hnB3H4nRasCzLD/fP+h4/GUVBTxrkMJOnh/7OZ0XbYDKO/uuWwryJS9kZjhxcruBiYwc5UDw==, } engines: {node: ">= 10"} cpu: [x64] @@ -6872,10 +6033,10 @@ packages: "@swc/core-win32-x64-msvc": 1.3.7 dev: false - /@swc/helpers@0.4.14: + /@swc/helpers@0.5.2: resolution: { - integrity: sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==, + integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==, } dependencies: tslib: 2.4.0 @@ -13524,7 +12685,6 @@ packages: { integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==, } - dev: false /glob2base@0.0.12: resolution: {integrity: sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=} @@ -15983,39 +15143,6 @@ packages: dependencies: argparse: 2.0.1 - /jscodeshift@0.13.0(@babel/preset-env@7.12.10): - resolution: - { - integrity: sha512-FNHLuwh7TeI0F4EzNVIRwUSxSqsGWM5nTv596FK4NfBnEEKFpIcyFeG559DMFGHSTIYA5AY4Fqh2cBrJx0EAwg==, - } - hasBin: true - peerDependencies: - "@babel/preset-env": ^7.1.6 - dependencies: - "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/parser": 7.18.4 - "@babel/plugin-proposal-class-properties": 7.17.12(@babel/core@7.18.2)(supports-color@8.1.1) - "@babel/plugin-proposal-nullish-coalescing-operator": 7.17.12(@babel/core@7.18.2) - "@babel/plugin-proposal-optional-chaining": 7.17.12(@babel/core@7.18.2) - "@babel/plugin-transform-modules-commonjs": 7.18.2(@babel/core@7.18.2)(supports-color@8.1.1) - "@babel/preset-env": 7.12.10(@babel/core@7.12.10)(supports-color@8.1.1) - "@babel/preset-flow": 7.17.12(@babel/core@7.18.2) - "@babel/preset-typescript": 7.17.12(@babel/core@7.18.2)(supports-color@8.1.1) - "@babel/register": 7.17.7(@babel/core@7.18.2) - babel-core: 7.0.0-bridge.0(@babel/core@7.18.2) - colors: 1.4.0 - flow-parser: 0.179.0 - graceful-fs: 4.2.10 - micromatch: 3.1.10(supports-color@8.1.1) - neo-async: 2.6.2 - node-dir: 0.1.17 - recast: 0.20.5 - temp: 0.8.4 - write-file-atomic: 2.4.3 - transitivePeerDependencies: - - supports-color - dev: false - /jscodeshift@0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1): resolution: { @@ -16031,7 +15158,7 @@ packages: "@babel/plugin-proposal-nullish-coalescing-operator": 7.17.12(@babel/core@7.18.2) "@babel/plugin-proposal-optional-chaining": 7.17.12(@babel/core@7.18.2) "@babel/plugin-transform-modules-commonjs": 7.18.2(@babel/core@7.18.2)(supports-color@8.1.1) - "@babel/preset-env": 7.12.10(@babel/core@7.18.2)(supports-color@8.1.1) + "@babel/preset-env": 7.12.10(@babel/core@7.12.10)(supports-color@8.1.1) "@babel/preset-flow": 7.17.12(@babel/core@7.18.2) "@babel/preset-typescript": 7.17.12(@babel/core@7.18.2)(supports-color@8.1.1) "@babel/register": 7.17.7(@babel/core@7.18.2) @@ -17365,7 +16492,7 @@ packages: } dev: false - /next-auth@4.18.7(next@13.3.0)(react-dom@18.2.0)(react@18.2.0): + /next-auth@4.18.7(next@13.5.2)(react-dom@18.2.0)(react@18.2.0): resolution: { integrity: sha512-kR3s1JVPMaDuSAlFxcGyv7Ec3fdE6za71r1F77IOII5zJmW2wfkIA2xj223fM0D20ip2pzFpHfk/qN4L6l5XMA==, @@ -17384,7 +16511,7 @@ packages: "@panva/hkdf": 1.0.2 cookie: 0.5.0 jose: 4.11.2 - next: 13.3.0(@babel/core@7.20.2)(react-dom@18.2.0)(react@18.2.0) + next: 13.5.2(@babel/core@7.20.2)(react-dom@18.2.0)(react@18.2.0) oauth: 0.9.15 openid-client: 5.2.1 preact: 10.11.3 @@ -17393,7 +16520,7 @@ packages: react-dom: 18.2.0(react@18.2.0) uuid: 8.3.2 - /next-router-mock@0.9.1(next@13.3.0)(react@18.2.0): + /next-router-mock@0.9.1(next@13.5.2)(react@18.2.0): resolution: { integrity: sha512-GTrns944dnFNgycpinyRszOiwwk99LUJsvvX0FWRgUFHv6hOuzCns1rmTlzO+DRimYB9/XMA+87X2/dQLzjiUQ==, @@ -17402,146 +16529,133 @@ packages: next: ">=10.0.0" react: ">=17.0.0" dependencies: - next: 13.3.0(@babel/core@7.20.2)(react-dom@18.2.0)(react@18.2.0) + next: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 dev: true - /next@13.3.0(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0): + /next@13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0): resolution: { - integrity: sha512-OVTw8MpIPa12+DCUkPqRGPS3thlJPcwae2ZL4xti3iBff27goH024xy4q2lhlsdoYiKOi8Kz6uJoLW/GXwgfOA==, + integrity: sha512-vog4UhUaMYAzeqfiAAmgB/QWLW7p01/sg+2vn6bqc/CxHFYizMzLv6gjxKzl31EVFkfl/F+GbxlKizlkTE9RdA==, } - engines: {node: ">=14.6.0"} + engines: {node: ">=16.14.0"} hasBin: true peerDependencies: "@opentelemetry/api": ^1.1.0 - fibers: ">= 3.1.0" - node-sass: ^6.0.0 || ^7.0.0 react: ^18.2.0 react-dom: ^18.2.0 sass: ^1.3.0 peerDependenciesMeta: "@opentelemetry/api": optional: true - fibers: - optional: true - node-sass: - optional: true sass: optional: true dependencies: - "@next/env": 13.3.0 - "@swc/helpers": 0.4.14 + "@next/env": 13.5.2 + "@swc/helpers": 0.5.2 busboy: 1.6.0 caniuse-lite: 1.0.30001434 postcss: 8.4.14 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) styled-jsx: 5.1.1(@babel/core@7.12.10)(react@18.2.0) + watchpack: 2.4.0 + zod: 3.21.4 optionalDependencies: - "@next/swc-darwin-arm64": 13.3.0 - "@next/swc-darwin-x64": 13.3.0 - "@next/swc-linux-arm64-gnu": 13.3.0 - "@next/swc-linux-arm64-musl": 13.3.0 - "@next/swc-linux-x64-gnu": 13.3.0 - "@next/swc-linux-x64-musl": 13.3.0 - "@next/swc-win32-arm64-msvc": 13.3.0 - "@next/swc-win32-ia32-msvc": 13.3.0 - "@next/swc-win32-x64-msvc": 13.3.0 + "@next/swc-darwin-arm64": 13.5.2 + "@next/swc-darwin-x64": 13.5.2 + "@next/swc-linux-arm64-gnu": 13.5.2 + "@next/swc-linux-arm64-musl": 13.5.2 + "@next/swc-linux-x64-gnu": 13.5.2 + "@next/swc-linux-x64-musl": 13.5.2 + "@next/swc-win32-arm64-msvc": 13.5.2 + "@next/swc-win32-ia32-msvc": 13.5.2 + "@next/swc-win32-x64-msvc": 13.5.2 transitivePeerDependencies: - "@babel/core" - babel-plugin-macros - dev: false - /next@13.3.0(@babel/core@7.18.2)(react-dom@18.2.0)(react@18.2.0): + /next@13.5.2(@babel/core@7.18.2)(react-dom@18.2.0)(react@18.2.0): resolution: { - integrity: sha512-OVTw8MpIPa12+DCUkPqRGPS3thlJPcwae2ZL4xti3iBff27goH024xy4q2lhlsdoYiKOi8Kz6uJoLW/GXwgfOA==, + integrity: sha512-vog4UhUaMYAzeqfiAAmgB/QWLW7p01/sg+2vn6bqc/CxHFYizMzLv6gjxKzl31EVFkfl/F+GbxlKizlkTE9RdA==, } - engines: {node: ">=14.6.0"} + engines: {node: ">=16.14.0"} hasBin: true peerDependencies: "@opentelemetry/api": ^1.1.0 - fibers: ">= 3.1.0" - node-sass: ^6.0.0 || ^7.0.0 react: ^18.2.0 react-dom: ^18.2.0 sass: ^1.3.0 peerDependenciesMeta: "@opentelemetry/api": optional: true - fibers: - optional: true - node-sass: - optional: true sass: optional: true dependencies: - "@next/env": 13.3.0 - "@swc/helpers": 0.4.14 + "@next/env": 13.5.2 + "@swc/helpers": 0.5.2 busboy: 1.6.0 caniuse-lite: 1.0.30001434 postcss: 8.4.14 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) styled-jsx: 5.1.1(@babel/core@7.18.2)(react@18.2.0) + watchpack: 2.4.0 + zod: 3.21.4 optionalDependencies: - "@next/swc-darwin-arm64": 13.3.0 - "@next/swc-darwin-x64": 13.3.0 - "@next/swc-linux-arm64-gnu": 13.3.0 - "@next/swc-linux-arm64-musl": 13.3.0 - "@next/swc-linux-x64-gnu": 13.3.0 - "@next/swc-linux-x64-musl": 13.3.0 - "@next/swc-win32-arm64-msvc": 13.3.0 - "@next/swc-win32-ia32-msvc": 13.3.0 - "@next/swc-win32-x64-msvc": 13.3.0 + "@next/swc-darwin-arm64": 13.5.2 + "@next/swc-darwin-x64": 13.5.2 + "@next/swc-linux-arm64-gnu": 13.5.2 + "@next/swc-linux-arm64-musl": 13.5.2 + "@next/swc-linux-x64-gnu": 13.5.2 + "@next/swc-linux-x64-musl": 13.5.2 + "@next/swc-win32-arm64-msvc": 13.5.2 + "@next/swc-win32-ia32-msvc": 13.5.2 + "@next/swc-win32-x64-msvc": 13.5.2 transitivePeerDependencies: - "@babel/core" - babel-plugin-macros dev: false - /next@13.3.0(@babel/core@7.20.2)(react-dom@18.2.0)(react@18.2.0): + /next@13.5.2(@babel/core@7.20.2)(react-dom@18.2.0)(react@18.2.0): resolution: { - integrity: sha512-OVTw8MpIPa12+DCUkPqRGPS3thlJPcwae2ZL4xti3iBff27goH024xy4q2lhlsdoYiKOi8Kz6uJoLW/GXwgfOA==, + integrity: sha512-vog4UhUaMYAzeqfiAAmgB/QWLW7p01/sg+2vn6bqc/CxHFYizMzLv6gjxKzl31EVFkfl/F+GbxlKizlkTE9RdA==, } - engines: {node: ">=14.6.0"} + engines: {node: ">=16.14.0"} hasBin: true peerDependencies: "@opentelemetry/api": ^1.1.0 - fibers: ">= 3.1.0" - node-sass: ^6.0.0 || ^7.0.0 react: ^18.2.0 react-dom: ^18.2.0 sass: ^1.3.0 peerDependenciesMeta: "@opentelemetry/api": optional: true - fibers: - optional: true - node-sass: - optional: true sass: optional: true dependencies: - "@next/env": 13.3.0 - "@swc/helpers": 0.4.14 + "@next/env": 13.5.2 + "@swc/helpers": 0.5.2 busboy: 1.6.0 caniuse-lite: 1.0.30001434 postcss: 8.4.14 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) styled-jsx: 5.1.1(@babel/core@7.20.2)(react@18.2.0) + watchpack: 2.4.0 + zod: 3.21.4 optionalDependencies: - "@next/swc-darwin-arm64": 13.3.0 - "@next/swc-darwin-x64": 13.3.0 - "@next/swc-linux-arm64-gnu": 13.3.0 - "@next/swc-linux-arm64-musl": 13.3.0 - "@next/swc-linux-x64-gnu": 13.3.0 - "@next/swc-linux-x64-musl": 13.3.0 - "@next/swc-win32-arm64-msvc": 13.3.0 - "@next/swc-win32-ia32-msvc": 13.3.0 - "@next/swc-win32-x64-msvc": 13.3.0 + "@next/swc-darwin-arm64": 13.5.2 + "@next/swc-darwin-x64": 13.5.2 + "@next/swc-linux-arm64-gnu": 13.5.2 + "@next/swc-linux-arm64-musl": 13.5.2 + "@next/swc-linux-x64-gnu": 13.5.2 + "@next/swc-linux-x64-musl": 13.5.2 + "@next/swc-win32-arm64-msvc": 13.5.2 + "@next/swc-win32-ia32-msvc": 13.5.2 + "@next/swc-win32-x64-msvc": 13.5.2 transitivePeerDependencies: - "@babel/core" - babel-plugin-macros @@ -20667,7 +19781,6 @@ packages: "@babel/core": 7.12.10(supports-color@8.1.1) client-only: 0.0.1 react: 18.2.0 - dev: false /styled-jsx@5.1.1(@babel/core@7.18.2)(react@18.2.0): resolution: @@ -21150,7 +20263,7 @@ packages: } dev: true - /ts-jest@27.1.4(@babel/core@7.20.2)(esbuild@0.14.51)(jest@27.5.1)(typescript@4.8.4): + /ts-jest@27.1.4(@babel/core@7.12.10)(esbuild@0.14.51)(jest@27.5.1)(typescript@4.8.4): resolution: { integrity: sha512-qjkZlVPWVctAezwsOD1OPzbZ+k7zA5z3oxII4dGdZo5ggX/PL7kvwTM0pXTr10fAtbiVpJaL3bWd502zAhpgSQ==, @@ -21174,7 +20287,7 @@ packages: esbuild: optional: true dependencies: - "@babel/core": 7.20.2(supports-color@8.1.1) + "@babel/core": 7.12.10(supports-color@8.1.1) bs-logger: 0.2.6 esbuild: 0.14.51 fast-json-stable-stringify: 2.1.0 @@ -22171,6 +21284,16 @@ packages: graceful-fs: 4.2.10 dev: false + /watchpack@2.4.0: + resolution: + { + integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==, + } + engines: {node: ">=10.13.0"} + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.10 + /wcwidth@1.0.1: resolution: { @@ -22710,3 +21833,9 @@ packages: { integrity: sha512-1MzNQdAvO+54H+EaK5YpyEy0T+Ejo/7YLHS93G3RnYWh5gaotGHwGeN/ZO687qEDU2y4CdStQYXVHIgrUl5UVQ==, } + + /zod@3.21.4: + resolution: + { + integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==, + } From afccc80529cc702442dec39229e292ff304af0ad Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Fri, 22 Sep 2023 12:40:49 +0530 Subject: [PATCH 07/95] Create lucky-teachers-sleep.md --- .changeset/lucky-teachers-sleep.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .changeset/lucky-teachers-sleep.md diff --git a/.changeset/lucky-teachers-sleep.md b/.changeset/lucky-teachers-sleep.md new file mode 100644 index 0000000000..15e1b0d2c7 --- /dev/null +++ b/.changeset/lucky-teachers-sleep.md @@ -0,0 +1,8 @@ +--- +"@blitzjs/auth": patch +"@blitzjs/next": patch +"@blitzjs/rpc": patch +"blitz": patch +--- + +Fix `Error: Cannot find module 'next/dist/shared/lib/router/utils/resolve-href'` by updating the location of next.js internal function. From 0db3e6f4791b8f6f530df0affbf37dededacec08 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Sun, 1 Oct 2023 17:42:24 +0530 Subject: [PATCH 08/95] fix bootupMarkers --- integration-tests/utils/next-test-utils.ts | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/integration-tests/utils/next-test-utils.ts b/integration-tests/utils/next-test-utils.ts index a0cab243b6..65f864c5ea 100644 --- a/integration-tests/utils/next-test-utils.ts +++ b/integration-tests/utils/next-test-utils.ts @@ -242,8 +242,8 @@ export function runBlitzCommandDev(argv, stdOut, opts: RunNextCommandDevOptions function handleStdout(data) { const message = data.toString() const bootupMarkers = { - dev: /compiled .*successfully/i, - start: /started server/i, + dev: /Ready/i, + start: /Ready/i, } if ( (opts.bootupMarker && opts.bootupMarker.test(message)) || @@ -417,9 +417,10 @@ export function runNextCommandDev(argv, stdOut, opts: RunNextCommandDevOptions = function handleStdout(data) { const message = data.toString() + console.log(message) const bootupMarkers = { - dev: /compiled .*successfully/i, - start: /started server/i, + dev: /Next.js/i, + start: /Next.js/i, } if ( (opts.bootupMarker && opts.bootupMarker.test(message)) || @@ -435,9 +436,9 @@ export function runNextCommandDev(argv, stdOut, opts: RunNextCommandDevOptions = opts.onStdout(message) } - if (opts.stdout !== false) { - process.stdout.write(message) - } + // if (opts.stdout !== false) { + process.stdout.write(message) + // } } function handleStderr(data) { From 9cb4412fb1c6b7f8ad4711056b73cc46221aff52 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Sun, 1 Oct 2023 17:50:33 +0530 Subject: [PATCH 09/95] fix issues with qm integration test --- integration-tests/qm/test/use-query.test.tsx | 2 +- integration-tests/utils/blitz-test-utils.tsx | 8 +++++-- integration-tests/utils/package.json | 1 + pnpm-lock.yaml | 25 +++++++++++--------- 4 files changed, 22 insertions(+), 14 deletions(-) diff --git a/integration-tests/qm/test/use-query.test.tsx b/integration-tests/qm/test/use-query.test.tsx index 36d9fba28d..1260268d63 100644 --- a/integration-tests/qm/test/use-query.test.tsx +++ b/integration-tests/qm/test/use-query.test.tsx @@ -4,7 +4,7 @@ import {useQuery, useInfiniteQuery, BlitzRpcPlugin, QueryClientProvider} from "@ import React from "react" import delay from "delay" import {buildMutationRpc, buildQueryRpc, mockRouter, render} from "../../utils/blitz-test-utils" -import {RouterContext} from "next/dist/shared/lib/router-context" +import {RouterContext} from "@blitzjs/next" beforeAll(() => { globalThis.__BLITZ_SESSION_COOKIE_PREFIX = "qm-test-cookie-prefix" diff --git a/integration-tests/utils/blitz-test-utils.tsx b/integration-tests/utils/blitz-test-utils.tsx index f831e99ce2..58562f9326 100644 --- a/integration-tests/utils/blitz-test-utils.tsx +++ b/integration-tests/utils/blitz-test-utils.tsx @@ -3,7 +3,7 @@ import {vi} from "vitest" import {QueryClient} from "@tanstack/react-query" import {BlitzRpcPlugin, QueryClientProvider} from "@blitzjs/rpc" import {NextRouter} from "next/router" -import {RouterContext} from "next/dist/shared/lib/router-context" +import {RouterContext} from "@blitzjs/next" import {render as defaultRender} from "@testing-library/react" export const mockRouter: NextRouter = { @@ -27,6 +27,7 @@ export const mockRouter: NextRouter = { emit: vi.fn(), }, isFallback: false, + forward: vi.fn(), } type DefaultParams = Parameters @@ -74,7 +75,10 @@ const BlitzWrapper = ({plugins, children}) => { ) } -export function render(ui: RenderUI, {wrapper, router, ...options}: RenderOptions = {}) { +export function render( + ui: RenderUI, + {wrapper, router, ...options}: RenderOptions = {}, +): ReturnType { if (!wrapper) { wrapper = ({children}) => { return {children} diff --git a/integration-tests/utils/package.json b/integration-tests/utils/package.json index fedc75239d..07e58b0376 100644 --- a/integration-tests/utils/package.json +++ b/integration-tests/utils/package.json @@ -4,6 +4,7 @@ "private": true, "devDependencies": { "@blitzjs/config": "workspace: *", + "@blitzjs/next": "workspace:2.0.0-beta.33", "@blitzjs/rpc": "workspace: *", "@tanstack/react-query": "4.13.0", "@testing-library/react": "13.4.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f20e308129..d873aa997f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -27,7 +27,7 @@ importers: version: 13.0.3 next: specifier: 13.5.2 - version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) + version: 13.5.2(@babel/core@7.18.2)(react-dom@18.2.0)(react@18.2.0) only-allow: specifier: 1.1.0 version: 1.1.0 @@ -84,7 +84,7 @@ importers: version: 3.2.7 next: specifier: 13.5.2 - version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) + version: 13.5.2(@babel/core@7.18.2)(react-dom@18.2.0)(react@18.2.0) prisma: specifier: ^4.5.0 version: 4.6.1 @@ -442,7 +442,7 @@ importers: version: 3.0.0 next: specifier: 13.5.2 - version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) + version: 13.5.2(@babel/core@7.18.2)(react-dom@18.2.0)(react@18.2.0) prisma: specifier: 4.6.1 version: 4.6.1 @@ -645,7 +645,7 @@ importers: version: 3.0.0 next: specifier: 13.5.2 - version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) + version: 13.5.2(@babel/core@7.18.2)(react-dom@18.2.0)(react@18.2.0) prisma: specifier: 4.6.1 version: 4.6.1 @@ -709,7 +709,7 @@ importers: version: link:../../packages/blitz next: specifier: 13.5.2 - version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) + version: 13.5.2(@babel/core@7.18.2)(react-dom@18.2.0)(react@18.2.0) react: specifier: 18.2.0 version: 18.2.0 @@ -773,7 +773,7 @@ importers: version: 3.0.0 next: specifier: 13.5.2 - version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) + version: 13.5.2(@babel/core@7.18.2)(react-dom@18.2.0)(react@18.2.0) prisma: specifier: 4.6.1 version: 4.6.1 @@ -855,7 +855,7 @@ importers: version: 3.0.0 next: specifier: 13.5.2 - version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) + version: 13.5.2(@babel/core@7.18.2)(react-dom@18.2.0)(react@18.2.0) prisma: specifier: 4.6.1 version: 4.6.1 @@ -986,7 +986,7 @@ importers: version: 3.0.0 next: specifier: 13.5.2 - version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) + version: 13.5.2(@babel/core@7.18.2)(react-dom@18.2.0)(react@18.2.0) prisma: specifier: 4.6.1 version: 4.6.1 @@ -1050,7 +1050,7 @@ importers: version: link:../../packages/blitz next: specifier: 13.5.2 - version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) + version: 13.5.2(@babel/core@7.18.2)(react-dom@18.2.0)(react@18.2.0) react: specifier: 18.2.0 version: 18.2.0 @@ -1099,7 +1099,7 @@ importers: version: link:../../packages/blitz next: specifier: 13.5.2 - version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) + version: 13.5.2(@babel/core@7.18.2)(react-dom@18.2.0)(react@18.2.0) react: specifier: 18.2.0 version: 18.2.0 @@ -1154,7 +1154,7 @@ importers: version: 3.0.0 next: specifier: 13.5.2 - version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) + version: 13.5.2(@babel/core@7.18.2)(react-dom@18.2.0)(react@18.2.0) prisma: specifier: 4.6.1 version: 4.6.1 @@ -1207,6 +1207,9 @@ importers: "@blitzjs/config": specifier: "workspace: *" version: link:../../packages/config + "@blitzjs/next": + specifier: workspace:2.0.0-beta.33 + version: link:../../packages/blitz-next "@blitzjs/rpc": specifier: "workspace: *" version: link:../../packages/blitz-rpc From afc6e21d68064143cf1f8a6e0ceae6830b68ac4c Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Sun, 1 Oct 2023 17:51:54 +0530 Subject: [PATCH 10/95] Update integration-tests/utils/next-test-utils.ts --- integration-tests/utils/next-test-utils.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/integration-tests/utils/next-test-utils.ts b/integration-tests/utils/next-test-utils.ts index 65f864c5ea..dec45f03a8 100644 --- a/integration-tests/utils/next-test-utils.ts +++ b/integration-tests/utils/next-test-utils.ts @@ -436,9 +436,9 @@ export function runNextCommandDev(argv, stdOut, opts: RunNextCommandDevOptions = opts.onStdout(message) } - // if (opts.stdout !== false) { - process.stdout.write(message) - // } + if (opts.stdout !== false) { + process.stdout.write(message) + } } function handleStderr(data) { From daf443e4257c79cd295131954023157bb2d02040 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Sun, 1 Oct 2023 17:53:13 +0530 Subject: [PATCH 11/95] next.js generated stuff --- integration-tests/middleware/next-env.d.ts | 1 + integration-tests/middleware/tsconfig.json | 10 ++++++++-- integration-tests/react-query-utils/next-env.d.ts | 1 + integration-tests/react-query-utils/tsconfig.json | 10 ++++++++-- 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/integration-tests/middleware/next-env.d.ts b/integration-tests/middleware/next-env.d.ts index 4f11a03dc6..fd36f9494e 100644 --- a/integration-tests/middleware/next-env.d.ts +++ b/integration-tests/middleware/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/integration-tests/middleware/tsconfig.json b/integration-tests/middleware/tsconfig.json index f391da135f..e39f5a770e 100644 --- a/integration-tests/middleware/tsconfig.json +++ b/integration-tests/middleware/tsconfig.json @@ -1,10 +1,16 @@ { "extends": "@blitzjs/config/tsconfig.nextjs.json", - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "types"], + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "types", ".next/types/**/*.ts"], "compilerOptions": { "paths": { "react": ["./node_modules/@types/react"] - } + }, + "plugins": [ + { + "name": "next" + } + ], + "strictNullChecks": true }, "exclude": ["node_modules"], "baseUrl": "." diff --git a/integration-tests/react-query-utils/next-env.d.ts b/integration-tests/react-query-utils/next-env.d.ts index 4f11a03dc6..fd36f9494e 100644 --- a/integration-tests/react-query-utils/next-env.d.ts +++ b/integration-tests/react-query-utils/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/integration-tests/react-query-utils/tsconfig.json b/integration-tests/react-query-utils/tsconfig.json index f391da135f..e39f5a770e 100644 --- a/integration-tests/react-query-utils/tsconfig.json +++ b/integration-tests/react-query-utils/tsconfig.json @@ -1,10 +1,16 @@ { "extends": "@blitzjs/config/tsconfig.nextjs.json", - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "types"], + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "types", ".next/types/**/*.ts"], "compilerOptions": { "paths": { "react": ["./node_modules/@types/react"] - } + }, + "plugins": [ + { + "name": "next" + } + ], + "strictNullChecks": true }, "exclude": ["node_modules"], "baseUrl": "." From c51e6bc65e3031c1f8d65e5e6bc71f22bbdd0d1b Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Sun, 1 Oct 2023 18:06:18 +0530 Subject: [PATCH 12/95] Update .changeset/lucky-teachers-sleep.md --- .changeset/lucky-teachers-sleep.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.changeset/lucky-teachers-sleep.md b/.changeset/lucky-teachers-sleep.md index 15e1b0d2c7..685a7c073c 100644 --- a/.changeset/lucky-teachers-sleep.md +++ b/.changeset/lucky-teachers-sleep.md @@ -1,8 +1,10 @@ --- "@blitzjs/auth": patch -"@blitzjs/next": patch +"@blitzjs/next": major "@blitzjs/rpc": patch "blitz": patch --- +⚠️ Breaking Change: +Next.js version 13.5 or above is now required to use `@blitzjs/next` Fix `Error: Cannot find module 'next/dist/shared/lib/router/utils/resolve-href'` by updating the location of next.js internal function. From 3226b2e3bac79928a7eb690fba7c6c76505f9dcd Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Sun, 1 Oct 2023 18:11:38 +0530 Subject: [PATCH 13/95] remove unnecessary next lints to the integration-tests --- integration-tests/auth-with-rpc/package.json | 1 - integration-tests/auth/package.json | 1 - integration-tests/get-initial-props/next-env.d.ts | 1 + integration-tests/get-initial-props/package.json | 1 - integration-tests/get-initial-props/tsconfig.json | 10 ++++++++-- integration-tests/middleware/package.json | 1 - integration-tests/next-13-app-dir/package.json | 1 - integration-tests/no-suspense/next-env.d.ts | 1 + integration-tests/no-suspense/package.json | 1 - integration-tests/no-suspense/tsconfig.json | 10 ++++++++-- integration-tests/react-query-utils/package.json | 1 - integration-tests/trailing-slash/next-env.d.ts | 1 + integration-tests/trailing-slash/package.json | 1 - integration-tests/trailing-slash/tsconfig.json | 10 ++++++++-- 14 files changed, 27 insertions(+), 14 deletions(-) diff --git a/integration-tests/auth-with-rpc/package.json b/integration-tests/auth-with-rpc/package.json index 5cb41d2ec9..9c7b0c7fb0 100644 --- a/integration-tests/auth-with-rpc/package.json +++ b/integration-tests/auth-with-rpc/package.json @@ -11,7 +11,6 @@ "test": "vitest run", "test-watch": "vitest", "start": "blitz start", - "lint": "next lint", "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf .next", "prisma:start": "blitz prisma migrate deploy", "prisma:studio": "prisma studio" diff --git a/integration-tests/auth/package.json b/integration-tests/auth/package.json index 07ed07cb20..682a5fc6f8 100644 --- a/integration-tests/auth/package.json +++ b/integration-tests/auth/package.json @@ -11,7 +11,6 @@ "test": "vitest run", "test-watch": "vitest", "start": "blitz start", - "lint": "next lint", "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf .next", "prisma:start": "blitz prisma migrate deploy", "prisma:studio": "prisma studio" diff --git a/integration-tests/get-initial-props/next-env.d.ts b/integration-tests/get-initial-props/next-env.d.ts index 4f11a03dc6..fd36f9494e 100644 --- a/integration-tests/get-initial-props/next-env.d.ts +++ b/integration-tests/get-initial-props/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/integration-tests/get-initial-props/package.json b/integration-tests/get-initial-props/package.json index 61ea7c92f2..72bb9f0626 100644 --- a/integration-tests/get-initial-props/package.json +++ b/integration-tests/get-initial-props/package.json @@ -7,7 +7,6 @@ "test": "vitest run", "test-watch": "vitest", "start": "next start", - "lint": "next lint", "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf .next", "prisma:start": "prisma generate && prisma migrate deploy", "prisma:studio": "prisma studio" diff --git a/integration-tests/get-initial-props/tsconfig.json b/integration-tests/get-initial-props/tsconfig.json index f391da135f..e39f5a770e 100644 --- a/integration-tests/get-initial-props/tsconfig.json +++ b/integration-tests/get-initial-props/tsconfig.json @@ -1,10 +1,16 @@ { "extends": "@blitzjs/config/tsconfig.nextjs.json", - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "types"], + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "types", ".next/types/**/*.ts"], "compilerOptions": { "paths": { "react": ["./node_modules/@types/react"] - } + }, + "plugins": [ + { + "name": "next" + } + ], + "strictNullChecks": true }, "exclude": ["node_modules"], "baseUrl": "." diff --git a/integration-tests/middleware/package.json b/integration-tests/middleware/package.json index 70cd3e37a5..769bcae82e 100644 --- a/integration-tests/middleware/package.json +++ b/integration-tests/middleware/package.json @@ -7,7 +7,6 @@ "test": "vitest run", "test-watch": "vitest", "start": "next start", - "lint": "next lint", "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf .next" }, "dependencies": { diff --git a/integration-tests/next-13-app-dir/package.json b/integration-tests/next-13-app-dir/package.json index 0f076ca3ec..212520aa46 100644 --- a/integration-tests/next-13-app-dir/package.json +++ b/integration-tests/next-13-app-dir/package.json @@ -11,7 +11,6 @@ "test": "vitest run", "test-watch": "vitest", "start": "blitz start", - "lint": "next lint", "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf .next", "prisma:start": "blitz prisma migrate deploy", "prisma:studio": "prisma studio" diff --git a/integration-tests/no-suspense/next-env.d.ts b/integration-tests/no-suspense/next-env.d.ts index 4f11a03dc6..fd36f9494e 100644 --- a/integration-tests/no-suspense/next-env.d.ts +++ b/integration-tests/no-suspense/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/integration-tests/no-suspense/package.json b/integration-tests/no-suspense/package.json index e35dc06743..b9ac525c67 100644 --- a/integration-tests/no-suspense/package.json +++ b/integration-tests/no-suspense/package.json @@ -10,7 +10,6 @@ "test": "vitest run", "test-watch": "vitest", "start": "next start", - "lint": "next lint", "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf .next", "prisma:start": "prisma generate && prisma migrate deploy", "prisma:studio": "prisma studio" diff --git a/integration-tests/no-suspense/tsconfig.json b/integration-tests/no-suspense/tsconfig.json index f391da135f..e39f5a770e 100644 --- a/integration-tests/no-suspense/tsconfig.json +++ b/integration-tests/no-suspense/tsconfig.json @@ -1,10 +1,16 @@ { "extends": "@blitzjs/config/tsconfig.nextjs.json", - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "types"], + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "types", ".next/types/**/*.ts"], "compilerOptions": { "paths": { "react": ["./node_modules/@types/react"] - } + }, + "plugins": [ + { + "name": "next" + } + ], + "strictNullChecks": true }, "exclude": ["node_modules"], "baseUrl": "." diff --git a/integration-tests/react-query-utils/package.json b/integration-tests/react-query-utils/package.json index 0df9923b60..66a2f8abf1 100644 --- a/integration-tests/react-query-utils/package.json +++ b/integration-tests/react-query-utils/package.json @@ -7,7 +7,6 @@ "test": "vitest run", "test-watch": "vitest", "start": "next start", - "lint": "next lint", "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf .next", "prisma:start": "prisma generate && prisma migrate deploy", "prisma:studio": "prisma studio" diff --git a/integration-tests/trailing-slash/next-env.d.ts b/integration-tests/trailing-slash/next-env.d.ts index 4f11a03dc6..fd36f9494e 100644 --- a/integration-tests/trailing-slash/next-env.d.ts +++ b/integration-tests/trailing-slash/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/integration-tests/trailing-slash/package.json b/integration-tests/trailing-slash/package.json index 33d037a3f3..c4e48f681d 100644 --- a/integration-tests/trailing-slash/package.json +++ b/integration-tests/trailing-slash/package.json @@ -7,7 +7,6 @@ "test": "vitest run", "test-watch": "vitest", "start": "next start", - "lint": "next lint", "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf .next", "prisma:start": "prisma generate && prisma migrate deploy", "prisma:studio": "prisma studio" diff --git a/integration-tests/trailing-slash/tsconfig.json b/integration-tests/trailing-slash/tsconfig.json index f391da135f..e39f5a770e 100644 --- a/integration-tests/trailing-slash/tsconfig.json +++ b/integration-tests/trailing-slash/tsconfig.json @@ -1,10 +1,16 @@ { "extends": "@blitzjs/config/tsconfig.nextjs.json", - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "types"], + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "types", ".next/types/**/*.ts"], "compilerOptions": { "paths": { "react": ["./node_modules/@types/react"] - } + }, + "plugins": [ + { + "name": "next" + } + ], + "strictNullChecks": true }, "exclude": ["node_modules"], "baseUrl": "." From 260deac50f2248802dbb6d5f2f20d1ae8715bae5 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Sun, 1 Oct 2023 18:21:44 +0530 Subject: [PATCH 14/95] Update main.yml --- .github/workflows/main.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 8089ed2006..ab8c820fde 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -23,7 +23,7 @@ jobs: - name: Setup node uses: actions/setup-node@v2 with: - node-version: 16 + node-version: 18 cache: "pnpm" - name: Install dependencies run: pnpm install --frozen-lockfile @@ -44,7 +44,7 @@ jobs: - name: Setup node uses: actions/setup-node@v2 with: - node-version: 16 + node-version: 18 cache: "pnpm" - run: pnpm install --frozen-lockfile - name: Build @@ -62,7 +62,7 @@ jobs: - windows-latest fail-fast: false env: - NODE_VERSION: 16 + NODE_VERSION: 18 steps: - name: Checkout uses: actions/checkout@v3 @@ -75,7 +75,7 @@ jobs: - name: Setup node@16 uses: actions/setup-node@v2 with: - node-version: 16 + node-version: 18 cache: "pnpm" - name: Install dependencies From 9ed7d4abf102e10ffe56d84d58efefa9bb94f43d Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Sun, 1 Oct 2023 18:23:38 +0530 Subject: [PATCH 15/95] Revert "remove unnecessary next lints to the integration-tests" This reverts commit 3226b2e3bac79928a7eb690fba7c6c76505f9dcd. --- integration-tests/auth-with-rpc/package.json | 1 + integration-tests/auth/package.json | 1 + integration-tests/get-initial-props/next-env.d.ts | 1 - integration-tests/get-initial-props/package.json | 1 + integration-tests/get-initial-props/tsconfig.json | 10 ++-------- integration-tests/middleware/package.json | 1 + integration-tests/next-13-app-dir/package.json | 1 + integration-tests/no-suspense/next-env.d.ts | 1 - integration-tests/no-suspense/package.json | 1 + integration-tests/no-suspense/tsconfig.json | 10 ++-------- integration-tests/react-query-utils/package.json | 1 + integration-tests/trailing-slash/next-env.d.ts | 1 - integration-tests/trailing-slash/package.json | 1 + integration-tests/trailing-slash/tsconfig.json | 10 ++-------- 14 files changed, 14 insertions(+), 27 deletions(-) diff --git a/integration-tests/auth-with-rpc/package.json b/integration-tests/auth-with-rpc/package.json index 9c7b0c7fb0..5cb41d2ec9 100644 --- a/integration-tests/auth-with-rpc/package.json +++ b/integration-tests/auth-with-rpc/package.json @@ -11,6 +11,7 @@ "test": "vitest run", "test-watch": "vitest", "start": "blitz start", + "lint": "next lint", "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf .next", "prisma:start": "blitz prisma migrate deploy", "prisma:studio": "prisma studio" diff --git a/integration-tests/auth/package.json b/integration-tests/auth/package.json index 682a5fc6f8..07ed07cb20 100644 --- a/integration-tests/auth/package.json +++ b/integration-tests/auth/package.json @@ -11,6 +11,7 @@ "test": "vitest run", "test-watch": "vitest", "start": "blitz start", + "lint": "next lint", "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf .next", "prisma:start": "blitz prisma migrate deploy", "prisma:studio": "prisma studio" diff --git a/integration-tests/get-initial-props/next-env.d.ts b/integration-tests/get-initial-props/next-env.d.ts index fd36f9494e..4f11a03dc6 100644 --- a/integration-tests/get-initial-props/next-env.d.ts +++ b/integration-tests/get-initial-props/next-env.d.ts @@ -1,6 +1,5 @@ /// /// -/// // NOTE: This file should not be edited // see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/integration-tests/get-initial-props/package.json b/integration-tests/get-initial-props/package.json index 72bb9f0626..61ea7c92f2 100644 --- a/integration-tests/get-initial-props/package.json +++ b/integration-tests/get-initial-props/package.json @@ -7,6 +7,7 @@ "test": "vitest run", "test-watch": "vitest", "start": "next start", + "lint": "next lint", "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf .next", "prisma:start": "prisma generate && prisma migrate deploy", "prisma:studio": "prisma studio" diff --git a/integration-tests/get-initial-props/tsconfig.json b/integration-tests/get-initial-props/tsconfig.json index e39f5a770e..f391da135f 100644 --- a/integration-tests/get-initial-props/tsconfig.json +++ b/integration-tests/get-initial-props/tsconfig.json @@ -1,16 +1,10 @@ { "extends": "@blitzjs/config/tsconfig.nextjs.json", - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "types", ".next/types/**/*.ts"], + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "types"], "compilerOptions": { "paths": { "react": ["./node_modules/@types/react"] - }, - "plugins": [ - { - "name": "next" - } - ], - "strictNullChecks": true + } }, "exclude": ["node_modules"], "baseUrl": "." diff --git a/integration-tests/middleware/package.json b/integration-tests/middleware/package.json index 769bcae82e..70cd3e37a5 100644 --- a/integration-tests/middleware/package.json +++ b/integration-tests/middleware/package.json @@ -7,6 +7,7 @@ "test": "vitest run", "test-watch": "vitest", "start": "next start", + "lint": "next lint", "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf .next" }, "dependencies": { diff --git a/integration-tests/next-13-app-dir/package.json b/integration-tests/next-13-app-dir/package.json index 212520aa46..0f076ca3ec 100644 --- a/integration-tests/next-13-app-dir/package.json +++ b/integration-tests/next-13-app-dir/package.json @@ -11,6 +11,7 @@ "test": "vitest run", "test-watch": "vitest", "start": "blitz start", + "lint": "next lint", "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf .next", "prisma:start": "blitz prisma migrate deploy", "prisma:studio": "prisma studio" diff --git a/integration-tests/no-suspense/next-env.d.ts b/integration-tests/no-suspense/next-env.d.ts index fd36f9494e..4f11a03dc6 100644 --- a/integration-tests/no-suspense/next-env.d.ts +++ b/integration-tests/no-suspense/next-env.d.ts @@ -1,6 +1,5 @@ /// /// -/// // NOTE: This file should not be edited // see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/integration-tests/no-suspense/package.json b/integration-tests/no-suspense/package.json index b9ac525c67..e35dc06743 100644 --- a/integration-tests/no-suspense/package.json +++ b/integration-tests/no-suspense/package.json @@ -10,6 +10,7 @@ "test": "vitest run", "test-watch": "vitest", "start": "next start", + "lint": "next lint", "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf .next", "prisma:start": "prisma generate && prisma migrate deploy", "prisma:studio": "prisma studio" diff --git a/integration-tests/no-suspense/tsconfig.json b/integration-tests/no-suspense/tsconfig.json index e39f5a770e..f391da135f 100644 --- a/integration-tests/no-suspense/tsconfig.json +++ b/integration-tests/no-suspense/tsconfig.json @@ -1,16 +1,10 @@ { "extends": "@blitzjs/config/tsconfig.nextjs.json", - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "types", ".next/types/**/*.ts"], + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "types"], "compilerOptions": { "paths": { "react": ["./node_modules/@types/react"] - }, - "plugins": [ - { - "name": "next" - } - ], - "strictNullChecks": true + } }, "exclude": ["node_modules"], "baseUrl": "." diff --git a/integration-tests/react-query-utils/package.json b/integration-tests/react-query-utils/package.json index 66a2f8abf1..0df9923b60 100644 --- a/integration-tests/react-query-utils/package.json +++ b/integration-tests/react-query-utils/package.json @@ -7,6 +7,7 @@ "test": "vitest run", "test-watch": "vitest", "start": "next start", + "lint": "next lint", "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf .next", "prisma:start": "prisma generate && prisma migrate deploy", "prisma:studio": "prisma studio" diff --git a/integration-tests/trailing-slash/next-env.d.ts b/integration-tests/trailing-slash/next-env.d.ts index fd36f9494e..4f11a03dc6 100644 --- a/integration-tests/trailing-slash/next-env.d.ts +++ b/integration-tests/trailing-slash/next-env.d.ts @@ -1,6 +1,5 @@ /// /// -/// // NOTE: This file should not be edited // see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/integration-tests/trailing-slash/package.json b/integration-tests/trailing-slash/package.json index c4e48f681d..33d037a3f3 100644 --- a/integration-tests/trailing-slash/package.json +++ b/integration-tests/trailing-slash/package.json @@ -7,6 +7,7 @@ "test": "vitest run", "test-watch": "vitest", "start": "next start", + "lint": "next lint", "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf .next", "prisma:start": "prisma generate && prisma migrate deploy", "prisma:studio": "prisma studio" diff --git a/integration-tests/trailing-slash/tsconfig.json b/integration-tests/trailing-slash/tsconfig.json index e39f5a770e..f391da135f 100644 --- a/integration-tests/trailing-slash/tsconfig.json +++ b/integration-tests/trailing-slash/tsconfig.json @@ -1,16 +1,10 @@ { "extends": "@blitzjs/config/tsconfig.nextjs.json", - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "types", ".next/types/**/*.ts"], + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "types"], "compilerOptions": { "paths": { "react": ["./node_modules/@types/react"] - }, - "plugins": [ - { - "name": "next" - } - ], - "strictNullChecks": true + } }, "exclude": ["node_modules"], "baseUrl": "." From db1d020fea4b7cfa8de8c6119505dc3078d7c30b Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Mon, 2 Oct 2023 06:37:42 +0530 Subject: [PATCH 16/95] fix starter with tanstack form --- apps/next13/app/(auth)/layout.tsx | 2 +- apps/next13/app/(auth)/login/page.tsx | 2 +- .../app/(auth)/mutations/changePassword.ts | 14 +- apps/next13/app/(auth)/signup/page.tsx | 5 +- apps/next13/app/blitz-client.ts | 2 +- apps/next13/app/core/components/Logout.tsx | 6 +- apps/next13/package.json | 2 +- apps/next13/public/blitz.svg | 5 + apps/next13/public/vercel.svg | 4 - apps/next13/tsconfig.json | 1 + pnpm-lock.yaml | 168 +++++------------- 11 files changed, 61 insertions(+), 150 deletions(-) create mode 100644 apps/next13/public/blitz.svg delete mode 100644 apps/next13/public/vercel.svg diff --git a/apps/next13/app/(auth)/layout.tsx b/apps/next13/app/(auth)/layout.tsx index 79b8cd1cc8..4b7d5e5bb5 100644 --- a/apps/next13/app/(auth)/layout.tsx +++ b/apps/next13/app/(auth)/layout.tsx @@ -1,4 +1,4 @@ -import {useAuthenticatedBlitzContext} from "@blitzjs/auth" +import {useAuthenticatedBlitzContext} from "app/blitz-server" export default async function AuthLayout({children}: {children: React.ReactNode}) { await useAuthenticatedBlitzContext({ diff --git a/apps/next13/app/(auth)/login/page.tsx b/apps/next13/app/(auth)/login/page.tsx index 7c98e22b77..8b1d729fb4 100644 --- a/apps/next13/app/(auth)/login/page.tsx +++ b/apps/next13/app/(auth)/login/page.tsx @@ -3,7 +3,7 @@ import {LoginForm} from "../components/LoginForm" const LoginPage = () => { - return {}} /> + return } export default LoginPage diff --git a/apps/next13/app/(auth)/mutations/changePassword.ts b/apps/next13/app/(auth)/mutations/changePassword.ts index 41203ce137..a18921372f 100644 --- a/apps/next13/app/(auth)/mutations/changePassword.ts +++ b/apps/next13/app/(auth)/mutations/changePassword.ts @@ -1,26 +1,22 @@ import {NotFoundError} from "blitz" import db from "@/db" -// import {authenticateUser} from "./login" +import {authenticateUser} from "./login" import {ChangePassword} from "../validations" import {resolver} from "@blitzjs/rpc" -// import {SecurePassword} from "@blitzjs/auth" +import {SecurePassword} from "@blitzjs/auth/secure-password" export default resolver.pipe( - //@ts-ignore resolver.zod(ChangePassword), resolver.authorize(), async ({currentPassword, newPassword}, ctx) => { const user = await db.user.findFirst({where: {id: ctx.session.userId}}) if (!user) throw new NotFoundError() - - // await authenticateUser(user.email, currentPassword) - - // const hashedPassword = await SecurePassword.hash(newPassword.trim()) + await authenticateUser(user.email, currentPassword) + const hashedPassword = await SecurePassword.hash(newPassword.trim()) await db.user.update({ where: {id: user.id}, - data: {hashedPassword: newPassword}, + data: {hashedPassword: hashedPassword}, }) - return true }, ) diff --git a/apps/next13/app/(auth)/signup/page.tsx b/apps/next13/app/(auth)/signup/page.tsx index c1b62ba3c8..c53a5a84f2 100644 --- a/apps/next13/app/(auth)/signup/page.tsx +++ b/apps/next13/app/(auth)/signup/page.tsx @@ -1,11 +1,8 @@ "use client" - -import {useRouter} from "next/navigation" import SignupForm from "../components/SignupForm" const SignUp = () => { - const router = useRouter() - return router.push("/")} /> + return } export default SignUp diff --git a/apps/next13/app/blitz-client.ts b/apps/next13/app/blitz-client.ts index 6dcdfb637e..cb9b84c117 100644 --- a/apps/next13/app/blitz-client.ts +++ b/apps/next13/app/blitz-client.ts @@ -3,7 +3,7 @@ import {AuthClientPlugin} from "@blitzjs/auth" import {setupBlitzClient} from "@blitzjs/next" import {BlitzRpcPlugin} from "@blitzjs/rpc" -export const {withBlitz, useSession, queryClient, BlitzProvider} = setupBlitzClient({ +export const {withBlitz, useSession, BlitzProvider} = setupBlitzClient({ plugins: [ AuthClientPlugin({ cookiePrefix: "web-cookie-prefix", diff --git a/apps/next13/app/core/components/Logout.tsx b/apps/next13/app/core/components/Logout.tsx index e286b9a06d..3b2ec30242 100644 --- a/apps/next13/app/core/components/Logout.tsx +++ b/apps/next13/app/core/components/Logout.tsx @@ -1,9 +1,8 @@ "use client" - import styles from "@/app/styles/Home.module.css" import logout from "@/app/(auth)/mutations/logout" import {useRouter} from "next/navigation" -import { useMutation } from "@blitzjs/rpc" +import {useMutation} from "@blitzjs/rpc" export default function LogoutButton() { const router = useRouter() @@ -13,7 +12,6 @@ export default function LogoutButton() { ) -} \ No newline at end of file +} diff --git a/apps/next13/package.json b/apps/next13/package.json index 9de140eb3b..b6ae58a99d 100644 --- a/apps/next13/package.json +++ b/apps/next13/package.json @@ -3,7 +3,7 @@ "version": "0.1.1-beta.9", "private": true, "prisma": { - "schema": "db/schema.prisma" + "schema": "./db/schema.prisma" }, "scripts": { "blitz:dev": "next dev", diff --git a/apps/next13/public/blitz.svg b/apps/next13/public/blitz.svg new file mode 100644 index 0000000000..ba3c1cba6e --- /dev/null +++ b/apps/next13/public/blitz.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/apps/next13/public/vercel.svg b/apps/next13/public/vercel.svg deleted file mode 100644 index fbf0e25a65..0000000000 --- a/apps/next13/public/vercel.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - \ No newline at end of file diff --git a/apps/next13/tsconfig.json b/apps/next13/tsconfig.json index e06a4454ab..edca01f40b 100644 --- a/apps/next13/tsconfig.json +++ b/apps/next13/tsconfig.json @@ -1,5 +1,6 @@ { "compilerOptions": { + "baseUrl": ".", "target": "es5", "lib": ["dom", "dom.iterable", "esnext"], "allowJs": true, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 07ec50c9b4..561529e30e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -27,7 +27,7 @@ importers: version: 13.0.3 next: specifier: 13.5.2 - version: 13.5.2(@babel/core@7.18.2)(react-dom@18.2.0)(react@18.2.0) + version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) only-allow: specifier: 1.1.0 version: 1.1.0 @@ -72,7 +72,7 @@ importers: version: 2.9.10(react-hook-form@7.39.1) "@prisma/client": specifier: ^4.14.0 - version: 4.14.0(prisma@4.14.0) + version: 4.14.0(prisma@4.6.1) "@tanstack/react-form": specifier: 0.0.10 version: 0.0.10(react-dom@18.2.0)(react@18.2.0) @@ -87,10 +87,10 @@ importers: version: 3.2.7 next: specifier: 13.5.2 - version: 13.5.2(@babel/core@7.18.2)(react-dom@18.2.0)(react@18.2.0) + version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) prisma: - specifier: ^4.14.0 - version: 4.14.0 + specifier: ^4.5.0 + version: 4.6.1 react: specifier: 18.2.0 version: 18.2.0 @@ -445,7 +445,7 @@ importers: version: 3.0.0 next: specifier: 13.5.2 - version: 13.5.2(@babel/core@7.18.2)(react-dom@18.2.0)(react@18.2.0) + version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) prisma: specifier: 4.6.1 version: 4.6.1 @@ -648,7 +648,7 @@ importers: version: 3.0.0 next: specifier: 13.5.2 - version: 13.5.2(@babel/core@7.18.2)(react-dom@18.2.0)(react@18.2.0) + version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) prisma: specifier: 4.6.1 version: 4.6.1 @@ -712,7 +712,7 @@ importers: version: link:../../packages/blitz next: specifier: 13.5.2 - version: 13.5.2(@babel/core@7.18.2)(react-dom@18.2.0)(react@18.2.0) + version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) react: specifier: 18.2.0 version: 18.2.0 @@ -776,7 +776,7 @@ importers: version: 3.0.0 next: specifier: 13.5.2 - version: 13.5.2(@babel/core@7.18.2)(react-dom@18.2.0)(react@18.2.0) + version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) prisma: specifier: 4.6.1 version: 4.6.1 @@ -858,7 +858,7 @@ importers: version: 3.0.0 next: specifier: 13.5.2 - version: 13.5.2(@babel/core@7.18.2)(react-dom@18.2.0)(react@18.2.0) + version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) prisma: specifier: 4.6.1 version: 4.6.1 @@ -989,7 +989,7 @@ importers: version: 3.0.0 next: specifier: 13.5.2 - version: 13.5.2(@babel/core@7.18.2)(react-dom@18.2.0)(react@18.2.0) + version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) prisma: specifier: 4.6.1 version: 4.6.1 @@ -1053,7 +1053,7 @@ importers: version: link:../../packages/blitz next: specifier: 13.5.2 - version: 13.5.2(@babel/core@7.18.2)(react-dom@18.2.0)(react@18.2.0) + version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) react: specifier: 18.2.0 version: 18.2.0 @@ -1102,7 +1102,7 @@ importers: version: link:../../packages/blitz next: specifier: 13.5.2 - version: 13.5.2(@babel/core@7.18.2)(react-dom@18.2.0)(react@18.2.0) + version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) react: specifier: 18.2.0 version: 18.2.0 @@ -1157,7 +1157,7 @@ importers: version: 3.0.0 next: specifier: 13.5.2 - version: 13.5.2(@babel/core@7.18.2)(react-dom@18.2.0)(react@18.2.0) + version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) prisma: specifier: 4.6.1 version: 4.6.1 @@ -2480,7 +2480,7 @@ packages: } engines: {node: ">=6.9.0"} dependencies: - "@babel/types": 7.18.4 + "@babel/types": 7.20.2 "@jridgewell/gen-mapping": 0.3.1 jsesc: 2.5.2 @@ -2791,7 +2791,6 @@ packages: integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==, } engines: {node: ">=6.9.0"} - dev: true /@babel/helper-remap-async-to-generator@7.16.8(supports-color@8.1.1): resolution: @@ -2911,7 +2910,7 @@ packages: "@babel/helper-function-name": 7.17.9 "@babel/template": 7.16.7 "@babel/traverse": 7.18.2(supports-color@8.1.1) - "@babel/types": 7.18.4 + "@babel/types": 7.20.2 transitivePeerDependencies: - supports-color @@ -3228,7 +3227,7 @@ packages: "@babel/core": ^7.0.0-0 dependencies: "@babel/core": 7.12.10(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 + "@babel/helper-plugin-utils": 7.20.2 /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.12.10): resolution: @@ -3273,7 +3272,7 @@ packages: "@babel/core": ^7.0.0-0 dependencies: "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 + "@babel/helper-plugin-utils": 7.20.2 dev: false /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.12.10): @@ -3285,7 +3284,7 @@ packages: "@babel/core": ^7.0.0-0 dependencies: "@babel/core": 7.12.10(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.17.12 + "@babel/helper-plugin-utils": 7.20.2 /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.12.10): resolution: @@ -4137,7 +4136,7 @@ packages: "@babel/plugin-transform-typeof-symbol": 7.17.12(@babel/core@7.12.10) "@babel/plugin-transform-unicode-escapes": 7.16.7(@babel/core@7.12.10) "@babel/plugin-transform-unicode-regex": 7.16.7(@babel/core@7.12.10) - "@babel/preset-modules": 0.1.5(@babel/core@7.12.10) + "@babel/preset-modules": 0.1.6(@babel/core@7.12.10) "@babel/types": 7.17.12 core-js-compat: 3.22.5 semver: 5.7.1 @@ -4159,6 +4158,21 @@ packages: "@babel/plugin-transform-flow-strip-types": 7.17.12(@babel/core@7.18.2) dev: false + /@babel/preset-modules@0.1.6(@babel/core@7.12.10): + resolution: + { + integrity: sha512-ID2yj6K/4lKfhuU3+EX4UvNbIt7eACFbHmNUjzA+ep+B5971CknnA/9DEWKbRokfbbtblxxxXFJJrH47UEAMVg==, + } + peerDependencies: + "@babel/core": ^7.0.0-0 || ^8.0.0-0 <8.0.0 + dependencies: + "@babel/core": 7.12.10(supports-color@8.1.1) + "@babel/helper-plugin-utils": 7.20.2 + "@babel/plugin-proposal-unicode-property-regex": 7.17.12(@babel/core@7.12.10) + "@babel/plugin-transform-dotall-regex": 7.16.7(@babel/core@7.12.10) + "@babel/types": 7.12.10 + esutils: 2.0.3 + /@babel/preset-typescript@7.17.12(@babel/core@7.18.2)(supports-color@8.1.1): resolution: { @@ -4229,7 +4243,7 @@ packages: dependencies: "@babel/code-frame": 7.16.7 "@babel/parser": 7.18.4 - "@babel/types": 7.18.4 + "@babel/types": 7.20.2 /@babel/template@7.18.10: resolution: @@ -5388,13 +5402,6 @@ packages: integrity: sha512-dUseBIQVax+XtdJPzhwww4GetTjlkRSsXeQnisIJWBaHsnxYcN2RGzsPHi58D6qnkATjnhuAtQTJmR1hKYQQPg==, } - /@next/env@13.4.1: - resolution: - { - integrity: sha512-eD6WCBMFjLFooLM19SIhSkWBHtaFrZFfg2Cxnyl3vS3DAdFRfnx5TY2RxlkuKXdIRCC0ySbtK9JXXt8qLCqzZg==, - } - dev: false - /@next/eslint-plugin-next@12.3.1: resolution: { @@ -5520,18 +5527,6 @@ packages: requiresBuild: true optional: true - /@next/swc-win32-x64-msvc@13.4.1: - resolution: - { - integrity: sha512-n8V5ImLQZibKTu10UUdI3nIeTLkliEXe628qxqW9v8My3BAH2a7H0SaCqkV2OgqFnn8sG1wxKYw9/SNJ632kSA==, - } - engines: {node: ">= 10"} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false - optional: true - /@nodelib/fs.scandir@2.1.5: resolution: { @@ -5594,7 +5589,7 @@ packages: } dev: true - /@prisma/client@4.14.0(prisma@4.14.0): + /@prisma/client@4.14.0(prisma@4.6.1): resolution: { integrity: sha512-MK/XaA2sFdfaOa7I9MjNKz6dxeIEdeZlnpNRoF2w3JuRLlFJLkpp6cD3yaqw2nUUhbrn3Iqe3ZpVV+VuGGil7Q==, @@ -5608,7 +5603,7 @@ packages: optional: true dependencies: "@prisma/engines-version": 4.14.0-67.d9a4c5988f480fa576d43970d5a23641aa77bc9c - prisma: 4.14.0 + prisma: 4.6.1 dev: false /@prisma/client@4.6.1(prisma@4.6.1): @@ -5642,14 +5637,6 @@ packages: } dev: false - /@prisma/engines@4.14.0: - resolution: - { - integrity: sha512-PDNlhP/1vyTgmNyiucGqGCdXIp7HIkkvKO50si3y3PcceeHvqtiKPaH1iJdz63jCWMVMbj2MElSxXPOeBvEVIQ==, - } - requiresBuild: true - dev: false - /@prisma/engines@4.6.1: resolution: { @@ -6083,15 +6070,6 @@ packages: dependencies: tslib: 2.4.0 - /@swc/helpers@0.5.1: - resolution: - { - integrity: sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==, - } - dependencies: - tslib: 2.4.0 - dev: false - /@swc/wasm@1.2.122: resolution: { @@ -8253,7 +8231,7 @@ packages: } engines: {node: ">=8"} dependencies: - "@babel/helper-plugin-utils": 7.17.12 + "@babel/helper-plugin-utils": 7.20.2 "@istanbuljs/load-nyc-config": 1.1.0 "@istanbuljs/schema": 0.1.3 istanbul-lib-instrument: 5.2.0(supports-color@8.1.1) @@ -8282,7 +8260,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: "@babel/template": 7.18.10 - "@babel/types": 7.20.2 + "@babel/types": 7.12.10 "@types/babel__core": 7.1.19 "@types/babel__traverse": 7.17.1 @@ -8342,7 +8320,7 @@ packages: } engines: {node: ">= 10.0.0"} dependencies: - "@babel/types": 7.18.4 + "@babel/types": 7.12.10 dev: true /babylon@6.18.0: @@ -9290,7 +9268,7 @@ packages: } dependencies: "@babel/parser": 7.18.4 - "@babel/types": 7.18.4 + "@babel/types": 7.12.10 dev: true /content-disposition@0.5.4: @@ -16765,54 +16743,6 @@ packages: - "@babel/core" - babel-plugin-macros - /next@13.4.1(react-dom@18.2.0)(react@18.2.0): - resolution: - { - integrity: sha512-JBw2kAIyhKDpjhEWvNVoFeIzNp9xNxg8wrthDOtMctfn3EpqGCmW0FSviNyGgOSOSn6zDaX48pmvbdf6X2W9xA==, - } - engines: {node: ">=16.8.0"} - hasBin: true - peerDependencies: - "@opentelemetry/api": ^1.1.0 - fibers: ">= 3.1.0" - node-sass: ^6.0.0 || ^7.0.0 - react: ^18.2.0 - react-dom: ^18.2.0 - sass: ^1.3.0 - peerDependenciesMeta: - "@opentelemetry/api": - optional: true - fibers: - optional: true - node-sass: - optional: true - sass: - optional: true - dependencies: - "@next/env": 13.4.1 - "@swc/helpers": 0.5.1 - busboy: 1.6.0 - caniuse-lite: 1.0.30001434 - postcss: 8.4.14 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - styled-jsx: 5.1.1(@babel/core@7.12.10)(react@18.2.0) - zod: 3.21.4 - optionalDependencies: - "@next/swc-darwin-arm64": 13.4.1 - "@next/swc-darwin-x64": 13.4.1 - "@next/swc-linux-arm64-gnu": 13.4.1 - "@next/swc-linux-arm64-musl": 13.4.1 - "@next/swc-linux-x64-gnu": 13.4.1 - "@next/swc-linux-x64-musl": 13.4.1 - "@next/swc-win32-arm64-msvc": 13.4.1 - "@next/swc-win32-ia32-msvc": 13.4.1 - "@next/swc-win32-x64-msvc": 13.4.1 - transitivePeerDependencies: - - "@babel/core" - - babel-plugin-macros - dev: false - /nice-try@1.0.5: resolution: { @@ -18071,18 +18001,6 @@ packages: uuid: 8.3.2 dev: true - /prisma@4.14.0: - resolution: - { - integrity: sha512-+5dMl1uxMQb4RepndY6AwR9xi1cDcaGFICu+ws6/Nmgt93mFPNj8tYxSfTdmfg+rkNrUId9rk/Ac2vTgLe/oXA==, - } - engines: {node: ">=14.17"} - hasBin: true - requiresBuild: true - dependencies: - "@prisma/engines": 4.14.0 - dev: false - /prisma@4.6.1: resolution: { @@ -21679,7 +21597,7 @@ packages: engines: {node: ">= 10.0.0"} dependencies: "@babel/parser": 7.18.4 - "@babel/types": 7.18.4 + "@babel/types": 7.12.10 assert-never: 1.2.1 babel-walk: 3.0.0-canary-5 dev: true From c746ede3cb382b8275bc791a22b6a0befb27890c Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Mon, 2 Oct 2023 07:12:42 +0530 Subject: [PATCH 17/95] make changes to the generator --- packages/blitz/src/cli/commands/new.ts | 2 +- .../generator/src/generators/app-generator.ts | 7 + .../templates/app/_forms/finalform/Form.tsx | 59 ++++++++ .../app/_forms/finalform/LabelSelectField.tsx | 60 +++++++++ .../app/_forms/finalform/LabeledTextField.tsx | 66 +++++++++ .../templates/app/_forms/formik/Form.tsx | 77 +++++++++++ .../app/_forms/formik/LabelSelectField.tsx | 68 ++++++++++ .../app/_forms/formik/LabeledTextField.tsx | 55 ++++++++ .../templates/app/_forms/hookform/Form.tsx | 83 ++++++++++++ .../app/_forms/hookform/LabelSelectField.tsx | 58 ++++++++ .../app/_forms/hookform/LabeledTextField.tsx | 61 +++++++++ .../app/app/(auth)/components/LoginForm.tsx | 126 ------------------ .../app/app/(auth)/components/SignupForm.tsx | 126 ------------------ .../app/app/auth/components/LoginForm.tsx | 59 ++++++++ .../app/app/auth/components/SignupForm.tsx | 42 ++++++ .../app/app/{(auth) => auth}/layout.tsx | 0 .../app/app/{(auth) => auth}/login/page.tsx | 0 .../mutations/changePassword.ts | 0 .../mutations/forgotPassword.test.ts | 0 .../mutations/forgotPassword.ts | 0 .../app/{(auth) => auth}/mutations/login.ts | 0 .../app/{(auth) => auth}/mutations/logout.ts | 0 .../mutations/resetPassword.test.ts | 0 .../mutations/resetPassword.ts | 0 .../app/{(auth) => auth}/mutations/signup.ts | 0 .../app/app/{(auth) => auth}/signup/page.tsx | 0 .../app/app/{(auth) => auth}/validations.ts | 0 .../templates/app/app/blitz-server.ts | 8 +- .../app/app/core/components/Logout.tsx | 2 +- .../templates/app/app/core/validators/zod.ts | 18 --- .../app/pages/api/rpc/[[...blitz]].ts | 4 - .../app/src/pages/api/rpc/blitzrpcroute.ts | 4 + .../generator/templates/app/tsconfig.json | 1 + 33 files changed, 703 insertions(+), 283 deletions(-) create mode 100644 packages/generator/templates/app/_forms/finalform/Form.tsx create mode 100644 packages/generator/templates/app/_forms/finalform/LabelSelectField.tsx create mode 100644 packages/generator/templates/app/_forms/finalform/LabeledTextField.tsx create mode 100644 packages/generator/templates/app/_forms/formik/Form.tsx create mode 100644 packages/generator/templates/app/_forms/formik/LabelSelectField.tsx create mode 100644 packages/generator/templates/app/_forms/formik/LabeledTextField.tsx create mode 100644 packages/generator/templates/app/_forms/hookform/Form.tsx create mode 100644 packages/generator/templates/app/_forms/hookform/LabelSelectField.tsx create mode 100644 packages/generator/templates/app/_forms/hookform/LabeledTextField.tsx delete mode 100644 packages/generator/templates/app/app/(auth)/components/LoginForm.tsx delete mode 100644 packages/generator/templates/app/app/(auth)/components/SignupForm.tsx create mode 100644 packages/generator/templates/app/app/auth/components/LoginForm.tsx create mode 100644 packages/generator/templates/app/app/auth/components/SignupForm.tsx rename packages/generator/templates/app/app/{(auth) => auth}/layout.tsx (100%) rename packages/generator/templates/app/app/{(auth) => auth}/login/page.tsx (100%) rename packages/generator/templates/app/app/{(auth) => auth}/mutations/changePassword.ts (100%) rename packages/generator/templates/app/app/{(auth) => auth}/mutations/forgotPassword.test.ts (100%) rename packages/generator/templates/app/app/{(auth) => auth}/mutations/forgotPassword.ts (100%) rename packages/generator/templates/app/app/{(auth) => auth}/mutations/login.ts (100%) rename packages/generator/templates/app/app/{(auth) => auth}/mutations/logout.ts (100%) rename packages/generator/templates/app/app/{(auth) => auth}/mutations/resetPassword.test.ts (100%) rename packages/generator/templates/app/app/{(auth) => auth}/mutations/resetPassword.ts (100%) rename packages/generator/templates/app/app/{(auth) => auth}/mutations/signup.ts (100%) rename packages/generator/templates/app/app/{(auth) => auth}/signup/page.tsx (100%) rename packages/generator/templates/app/app/{(auth) => auth}/validations.ts (100%) delete mode 100644 packages/generator/templates/app/app/core/validators/zod.ts delete mode 100644 packages/generator/templates/app/pages/api/rpc/[[...blitz]].ts create mode 100644 packages/generator/templates/app/src/pages/api/rpc/blitzrpcroute.ts diff --git a/packages/blitz/src/cli/commands/new.ts b/packages/blitz/src/cli/commands/new.ts index 4bafdd3a5a..2cae0f511b 100644 --- a/packages/blitz/src/cli/commands/new.ts +++ b/packages/blitz/src/cli/commands/new.ts @@ -78,7 +78,7 @@ let projectName: string = "" let projectPath: string = "" let projectLanguage: string | TLanguage = language.typescript let projectFormLib: AppGeneratorOptions["form"] = "formik" -let projectTemplate: AppGeneratorOptions["template"] = templates.full +let projectTemplate: AppGeneratorOptions["template"] = templates.app let projectPkgManger: TPkgManager = PREFERABLE_PKG_MANAGER let shouldInstallDeps: boolean = true diff --git a/packages/generator/src/generators/app-generator.ts b/packages/generator/src/generators/app-generator.ts index 6910b6859d..c4b7a321e0 100644 --- a/packages/generator/src/generators/app-generator.ts +++ b/packages/generator/src/generators/app-generator.ts @@ -75,6 +75,13 @@ export class AppGenerator extends Generator { ) } + if (this.options.template.path === "app") { + const authDirectory = `app/auth` + if (this.fs.exists(authDirectory)) { + this.fs.move(this.destinationPath(authDirectory), this.destinationPath(`app/(auth)`)) + } + } + if (!this.options.template.skipForms) { this.updateForms() } diff --git a/packages/generator/templates/app/_forms/finalform/Form.tsx b/packages/generator/templates/app/_forms/finalform/Form.tsx new file mode 100644 index 0000000000..eb45dc3b9f --- /dev/null +++ b/packages/generator/templates/app/_forms/finalform/Form.tsx @@ -0,0 +1,59 @@ +import { ReactNode, PropsWithoutRef } from "react" +import { Form as FinalForm, FormProps as FinalFormProps } from "react-final-form" +import { z } from "zod" +import { validateZodSchema } from "blitz" +export { FORM_ERROR } from "final-form" + +export interface FormProps> + extends Omit, "onSubmit"> { + /** All your form fields */ + children?: ReactNode + /** Text to display in the submit button */ + submitText?: string + schema?: S + onSubmit: FinalFormProps>["onSubmit"] + initialValues?: FinalFormProps>["initialValues"] +} + +export function Form>({ + children, + submitText, + schema, + initialValues, + onSubmit, + ...props +}: FormProps) { + return ( + ( +
+ {/* Form fields supplied as children are rendered here */} + {children} + + {submitError && ( +
+ {submitError} +
+ )} + + {submitText && ( + + )} + + +
+ )} + /> + ) +} + +export default Form diff --git a/packages/generator/templates/app/_forms/finalform/LabelSelectField.tsx b/packages/generator/templates/app/_forms/finalform/LabelSelectField.tsx new file mode 100644 index 0000000000..3bf2ceea42 --- /dev/null +++ b/packages/generator/templates/app/_forms/finalform/LabelSelectField.tsx @@ -0,0 +1,60 @@ +import { forwardRef, PropsWithoutRef } from "react" +import { useField } from "react-final-form" + +export interface LabeledSelectFieldProps extends PropsWithoutRef { + /** Field name. */ + name: string + /** Field label. */ + label: string + type?: "number" | "string" + options: any + outerProps?: PropsWithoutRef +} + +export const LabeledSelectField = forwardRef( + ({ name, label, outerProps, options, type="number", ...props }, ref) => { + const { + input, + meta: { touched, error, submitError, submitting }, + } = useField(name, { + parse: type === "number" ? Number : undefined, + }) + + const normalizedError = Array.isArray(error) ? error.join(", ") : error || submitError + + return ( +
+ + + {touched && normalizedError && ( +
+ {normalizedError} +
+ )} + + +
+ ) + } +) + +export default LabeledSelectField diff --git a/packages/generator/templates/app/_forms/finalform/LabeledTextField.tsx b/packages/generator/templates/app/_forms/finalform/LabeledTextField.tsx new file mode 100644 index 0000000000..7dc98b89c9 --- /dev/null +++ b/packages/generator/templates/app/_forms/finalform/LabeledTextField.tsx @@ -0,0 +1,66 @@ +import { forwardRef, ComponentPropsWithoutRef, PropsWithoutRef } from "react" +import { useField, UseFieldConfig } from "react-final-form" + +export interface LabeledTextFieldProps extends PropsWithoutRef { + /** Field name. */ + name: string + /** Field label. */ + label: string + /** Field type. Doesn't include radio buttons and checkboxes */ + type?: "text" | "password" | "email" | "number" + outerProps?: PropsWithoutRef + labelProps?: ComponentPropsWithoutRef<"label"> + fieldProps?: UseFieldConfig +} + +export const LabeledTextField = forwardRef( + ({ name, label, outerProps, fieldProps, labelProps, ...props }, ref) => { + const { + input, + meta: { touched, error, submitError, submitting }, + } = useField(name, { + parse: + props.type === "number" + ? (Number as any) + : // Converting `""` to `null` ensures empty values will be set to null in the DB + (v) => (v === "" ? null : v), + ...fieldProps, + }) + + const normalizedError = Array.isArray(error) ? error.join(", ") : error || submitError + + return ( +
+ + + {touched && normalizedError && ( +
+ {normalizedError} +
+ )} + + +
+ ) + } +) + +export default LabeledTextField diff --git a/packages/generator/templates/app/_forms/formik/Form.tsx b/packages/generator/templates/app/_forms/formik/Form.tsx new file mode 100644 index 0000000000..cc69db1c3b --- /dev/null +++ b/packages/generator/templates/app/_forms/formik/Form.tsx @@ -0,0 +1,77 @@ +import { useState, ReactNode, PropsWithoutRef } from "react" +import { Formik, FormikProps } from "formik" +import { validateZodSchema } from "blitz" +import { z } from "zod" + +export interface FormProps> + extends Omit, "onSubmit"> { + /** All your form fields */ + children?: ReactNode + /** Text to display in the submit button */ + submitText?: string + schema?: S + onSubmit: (values: z.infer) => Promise + initialValues?: FormikProps>["initialValues"] +} + +interface OnSubmitResult { + FORM_ERROR?: string + [prop: string]: any +} + +export const FORM_ERROR = "FORM_ERROR" + +export function Form>({ + children, + submitText, + schema, + initialValues, + onSubmit, + ...props +}: FormProps) { + const [formError, setFormError] = useState(null) + return ( + { + const { FORM_ERROR, ...otherErrors } = (await onSubmit(values)) || {} + + if (FORM_ERROR) { + setFormError(FORM_ERROR) + } + + if (Object.keys(otherErrors).length > 0) { + setErrors(otherErrors) + } + }} + > + {({ handleSubmit, isSubmitting }) => ( +
+ {/* Form fields supplied as children are rendered here */} + {children} + + {formError && ( +
+ {formError} +
+ )} + + {submitText && ( + + )} + + +
+ )} +
+ ) +} + +export default Form diff --git a/packages/generator/templates/app/_forms/formik/LabelSelectField.tsx b/packages/generator/templates/app/_forms/formik/LabelSelectField.tsx new file mode 100644 index 0000000000..dc670de76f --- /dev/null +++ b/packages/generator/templates/app/_forms/formik/LabelSelectField.tsx @@ -0,0 +1,68 @@ +import { forwardRef, PropsWithoutRef } from "react"; +import { useFormikContext, ErrorMessage, Field } from "formik"; + +export interface LabeledSelectFieldProps + extends PropsWithoutRef { + /** Field name. */ + name: string; + /** Field label. */ + label: string; + /** Field options. */ + options: any; + outerProps?: PropsWithoutRef; +} + +export const LabeledSelectField = forwardRef< + HTMLSelectElement, + LabeledSelectFieldProps +>(({ name, label, outerProps, options, ...props }, ref) => { + const { isSubmitting } = useFormikContext(); + return ( +
+ + + + {(msg) => ( +
+ {msg} +
+ )} +
+
+ ); +}); + +export default LabeledSelectField; diff --git a/packages/generator/templates/app/_forms/formik/LabeledTextField.tsx b/packages/generator/templates/app/_forms/formik/LabeledTextField.tsx new file mode 100644 index 0000000000..b43dce98b9 --- /dev/null +++ b/packages/generator/templates/app/_forms/formik/LabeledTextField.tsx @@ -0,0 +1,55 @@ +import { forwardRef, PropsWithoutRef } from "react" +import { useField, useFormikContext, ErrorMessage } from "formik" + +export interface LabeledTextFieldProps extends PropsWithoutRef { + /** Field name. */ + name: string + /** Field label. */ + label: string + /** Field type. Doesn't include radio buttons and checkboxes */ + type?: "text" | "password" | "email" | "number" + outerProps?: PropsWithoutRef +} + +export const LabeledTextField = forwardRef( + ({ name, label, outerProps, ...props }, ref) => { + const [input] = useField(name) + const { isSubmitting } = useFormikContext() + + return ( +
+ + + + {(msg) => ( +
+ {msg} +
+ )} +
+ + +
+ ) + } +) + +export default LabeledTextField diff --git a/packages/generator/templates/app/_forms/hookform/Form.tsx b/packages/generator/templates/app/_forms/hookform/Form.tsx new file mode 100644 index 0000000000..773c27072e --- /dev/null +++ b/packages/generator/templates/app/_forms/hookform/Form.tsx @@ -0,0 +1,83 @@ +import { useState, ReactNode, PropsWithoutRef } from "react" +import { FormProvider, useForm, UseFormProps } from "react-hook-form" +import { zodResolver } from "@hookform/resolvers/zod" +import { z } from "zod" + +export interface FormProps> + extends Omit, "onSubmit"> { + /** All your form fields */ + children?: ReactNode + /** Text to display in the submit button */ + submitText?: string + schema?: S + onSubmit: (values: z.infer) => Promise + initialValues?: UseFormProps>["defaultValues"] +} + +interface OnSubmitResult { + FORM_ERROR?: string + [prop: string]: any +} + +export const FORM_ERROR = "FORM_ERROR" + +export function Form>({ + children, + submitText, + schema, + initialValues, + onSubmit, + ...props +}: FormProps) { + const ctx = useForm>({ + mode: "onBlur", + resolver: schema ? zodResolver(schema) : undefined, + defaultValues: initialValues, + }) + const [formError, setFormError] = useState(null) + + return ( + +
{ + const result = (await onSubmit(values)) || {} + for (const [key, value] of Object.entries(result)) { + if (key === FORM_ERROR) { + setFormError(value) + } else { + ctx.setError(key as any, { + type: "submit", + message: value, + }) + } + } + })} + className="form" + {...props} + > + {/* Form fields supplied as children are rendered here */} + {children} + + {formError && ( +
+ {formError} +
+ )} + + {submitText && ( + + )} + + +
+
+ ) +} + +export default Form diff --git a/packages/generator/templates/app/_forms/hookform/LabelSelectField.tsx b/packages/generator/templates/app/_forms/hookform/LabelSelectField.tsx new file mode 100644 index 0000000000..a78d8c2927 --- /dev/null +++ b/packages/generator/templates/app/_forms/hookform/LabelSelectField.tsx @@ -0,0 +1,58 @@ +import { ComponentPropsWithoutRef, forwardRef, PropsWithoutRef } from "react" +import { useFormContext } from "react-hook-form" +import { ErrorMessage } from "@hookform/error-message" + +export interface LabeledSelectFieldProps extends PropsWithoutRef { + /** Field name. */ + name: string + /** Field label. */ + label: string + /** Field type. Doesn't include radio buttons and checkboxes */ + options: any[] + outerProps?: PropsWithoutRef + labelProps?: ComponentPropsWithoutRef<"label"> +} + +export const LabeledSelectField = forwardRef( + ({ label, outerProps, labelProps, name, options, ...props }, ref) => { + const { + register, + formState: { isSubmitting, errors }, + } = useFormContext() + return ( +
+ + ( +
+ {message} +
+ )} + errors={errors} + name={name} + /> + +
+ ) + } +) diff --git a/packages/generator/templates/app/_forms/hookform/LabeledTextField.tsx b/packages/generator/templates/app/_forms/hookform/LabeledTextField.tsx new file mode 100644 index 0000000000..999c9aaf36 --- /dev/null +++ b/packages/generator/templates/app/_forms/hookform/LabeledTextField.tsx @@ -0,0 +1,61 @@ +import { forwardRef, PropsWithoutRef, ComponentPropsWithoutRef } from "react" +import { useFormContext } from "react-hook-form" +import { ErrorMessage } from "@hookform/error-message" + +export interface LabeledTextFieldProps extends PropsWithoutRef { + /** Field name. */ + name: string + /** Field label. */ + label: string + /** Field type. Doesn't include radio buttons and checkboxes */ + type?: "text" | "password" | "email" | "number" + outerProps?: PropsWithoutRef + labelProps?: ComponentPropsWithoutRef<"label"> +} + +export const LabeledTextField = forwardRef( + ({ label, outerProps, labelProps, name, ...props }, ref) => { + const { + register, + formState: { isSubmitting, errors }, + } = useFormContext() + + return ( +
+ + + ( +
+ {message} +
+ )} + errors={errors} + name={name} + /> + + +
+ ) + } +) + +export default LabeledTextField diff --git a/packages/generator/templates/app/app/(auth)/components/LoginForm.tsx b/packages/generator/templates/app/app/(auth)/components/LoginForm.tsx deleted file mode 100644 index 707219ff89..0000000000 --- a/packages/generator/templates/app/app/(auth)/components/LoginForm.tsx +++ /dev/null @@ -1,126 +0,0 @@ -import Link from "next/link" -import login from "../mutations/login" -import {Login} from "../validations" -import {useMutation} from "@blitzjs/rpc" -import {startTransition} from "react" -import {useRouter} from "next/navigation" -import {FieldApi, createFormFactory} from "@tanstack/react-form" -import * as z from "zod" -import {AuthenticationError} from "blitz" -import { zodValidate } from "@/app/core/validators/zod" - -type TLogin = z.infer - -const formFactory = createFormFactory({ - defaultValues: { - email: "", - password: "", - }, -}) - -function FieldInfo({field}: {field: FieldApi}) { - return ( - <> - {field.state.meta.touchedError ? {field.state.meta.touchedError} : null}{" "} - {field.state.meta.isValidating ? "Validating..." : null} - - ) -} - -export const LoginForm = () => { - const [loginMutation] = useMutation(login) - const router = useRouter() - const form = formFactory.useForm({ - onSubmit: async (values, formApi) => { - try { - await loginMutation(values) - startTransition(() => { - // Refresh the current route and fetch new data from the server without - // losing client-side browser or React state. - router.refresh() - }) - } catch (error: any) { - if ( - error instanceof AuthenticationError || - error.toString().includes("AuthenticationError") - ) { - return (formApi.state.fieldMeta.password.touchedError = - "Invalid email or password. Please try again.") - } - if (error.code === "P2002" && error.meta?.target?.includes("email")) { - // Error "P2002" comes from Prisma (https://www.prisma.io/docs/reference/api-reference/error-reference#p2002) - return (formApi.state.fieldMeta.email.touchedError = - "This email is already being used. Please try again.") - } else { - return (formApi.state.fieldMeta.password.touchedError = error.toString()) - } - } - }, - }) - return ( -
-

Login

- - -
-
- {/* A type-safe and pre-bound field component*/} - { - return zodValidate(Login, "email")(value) - }} - children={(field) => { - // Avoid hasty abstractions. Render props are great! - return ( - <> - - - - - ) - }} - /> - { - return zodValidate(Login, "password")(value) - }} - children={(field) => { - // Avoid hasty abstractions. Render props are great! - return ( - <> - - - - - ) - }} - /> -
- [state.canSubmit, state.isSubmitting]} - children={([canSubmit, isSubmitting]) => ( - - )} - /> - -
- -
- Or Sign Up -
-
- ) -} - -export default LoginForm diff --git a/packages/generator/templates/app/app/(auth)/components/SignupForm.tsx b/packages/generator/templates/app/app/(auth)/components/SignupForm.tsx deleted file mode 100644 index 44107d94a9..0000000000 --- a/packages/generator/templates/app/app/(auth)/components/SignupForm.tsx +++ /dev/null @@ -1,126 +0,0 @@ -import Link from "next/link" -import {Signup} from "../validations" -import {useMutation} from "@blitzjs/rpc" -import {startTransition} from "react" -import {useRouter} from "next/navigation" -import {FieldApi, createFormFactory} from "@tanstack/react-form" -import * as z from "zod" -import {AuthenticationError} from "blitz" -import { zodValidate } from "@/app/core/validators/zod" -import signup from "../mutations/signup" - -type TSignup = z.infer - -const formFactory = createFormFactory({ - defaultValues: { - email: "", - password: "", - }, -}) - -function FieldInfo({field}: {field: FieldApi}) { - return ( - <> - {field.state.meta.touchedError ? {field.state.meta.touchedError} : null}{" "} - {field.state.meta.isValidating ? "Validating..." : null} - - ) -} - -export const SignupForm = () => { - const [signupMutation] = useMutation(signup) - const router = useRouter() - const form = formFactory.useForm({ - onSubmit: async (values, formApi) => { - try { - await signupMutation(values) - startTransition(() => { - // Refresh the current route and fetch new data from the server without - // losing client-side browser or React state. - router.refresh() - }) - } catch (error: any) { - if ( - error instanceof AuthenticationError || - error.toString().includes("AuthenticationError") - ) { - return (formApi.state.fieldMeta.password.touchedError = - "Invalid email or password. Please try again.") - } - if (error.code === "P2002" && error.meta?.target?.includes("email")) { - // Error "P2002" comes from Prisma (https://www.prisma.io/docs/reference/api-reference/error-reference#p2002) - return (formApi.state.fieldMeta.email.touchedError = - "This email is already being used. Please try again.") - } else { - return (formApi.state.fieldMeta.password.touchedError = error.toString()) - } - } - }, - }) - return ( -
-

Signup

- - -
-
- {/* A type-safe and pre-bound field component*/} - { - return zodValidate(Signup, "email")(value) - }} - children={(field) => { - // Avoid hasty abstractions. Render props are great! - return ( - <> - - - - - ) - }} - /> - { - return zodValidate(Signup, "password")(value) - }} - children={(field) => { - // Avoid hasty abstractions. Render props are great! - return ( - <> - - - - - ) - }} - /> -
- [state.canSubmit, state.isSubmitting]} - children={([canSubmit, isSubmitting]) => ( - - )} - /> - -
- -
- Or Sign Up -
-
- ) -} - -export default SignupForm diff --git a/packages/generator/templates/app/app/auth/components/LoginForm.tsx b/packages/generator/templates/app/app/auth/components/LoginForm.tsx new file mode 100644 index 0000000000..d131a27014 --- /dev/null +++ b/packages/generator/templates/app/app/auth/components/LoginForm.tsx @@ -0,0 +1,59 @@ +import { AuthenticationError, PromiseReturnType } from "blitz" +import Link from "next/link" +import { LabeledTextField } from "app/core/components/LabeledTextField" +import { Form, FORM_ERROR } from "app/core/components/Form" +import login from "@/app/auth/mutations/login" +import { Login } from "@/app/auth/validations" +import { useMutation } from "@blitzjs/rpc" +import { Routes } from "@blitzjs/next" + +type LoginFormProps = { + onSuccess?: (user: PromiseReturnType) => void +} + +export const LoginForm = (props: LoginFormProps) => { + const [loginMutation] = useMutation(login) + return ( +
+

Login

+ +
{ + try { + const user = await loginMutation(values) + props.onSuccess?.(user) + } catch (error: any) { + if (error instanceof AuthenticationError) { + return { [FORM_ERROR]: "Sorry, those credentials are invalid" } + } else { + return { + [FORM_ERROR]: + "Sorry, we had an unexpected error. Please try again. - " + error.toString(), + } + } + } + }} + > + + +
+ + Forgot your password? + +
+ + +
+ Or{" "} + + Sign Up + +
+
+ ) +} + +export default LoginForm diff --git a/packages/generator/templates/app/app/auth/components/SignupForm.tsx b/packages/generator/templates/app/app/auth/components/SignupForm.tsx new file mode 100644 index 0000000000..f7acb54ef3 --- /dev/null +++ b/packages/generator/templates/app/app/auth/components/SignupForm.tsx @@ -0,0 +1,42 @@ +import { LabeledTextField } from "app/core/components/LabeledTextField" +import { Form, FORM_ERROR } from "app/core/components/Form" +import signup from "@/app/auth/mutations/signup" +import { Signup } from "@/app/auth/validations" +import { useMutation } from "@blitzjs/rpc" + +type SignupFormProps = { + onSuccess?: () => void +} + +export const SignupForm = (props: SignupFormProps) => { + const [signupMutation] = useMutation(signup) + return ( +
+

Create an Account

+ +
{ + try { + await signupMutation(values) + props.onSuccess?.() + } catch (error: any) { + if (error.code === "P2002" && error.meta?.target?.includes("email")) { + // This error comes from Prisma + return { email: "This email is already being used" } + } else { + return { [FORM_ERROR]: error.toString() } + } + } + }} + > + + + +
+ ) +} + +export default SignupForm diff --git a/packages/generator/templates/app/app/(auth)/layout.tsx b/packages/generator/templates/app/app/auth/layout.tsx similarity index 100% rename from packages/generator/templates/app/app/(auth)/layout.tsx rename to packages/generator/templates/app/app/auth/layout.tsx diff --git a/packages/generator/templates/app/app/(auth)/login/page.tsx b/packages/generator/templates/app/app/auth/login/page.tsx similarity index 100% rename from packages/generator/templates/app/app/(auth)/login/page.tsx rename to packages/generator/templates/app/app/auth/login/page.tsx diff --git a/packages/generator/templates/app/app/(auth)/mutations/changePassword.ts b/packages/generator/templates/app/app/auth/mutations/changePassword.ts similarity index 100% rename from packages/generator/templates/app/app/(auth)/mutations/changePassword.ts rename to packages/generator/templates/app/app/auth/mutations/changePassword.ts diff --git a/packages/generator/templates/app/app/(auth)/mutations/forgotPassword.test.ts b/packages/generator/templates/app/app/auth/mutations/forgotPassword.test.ts similarity index 100% rename from packages/generator/templates/app/app/(auth)/mutations/forgotPassword.test.ts rename to packages/generator/templates/app/app/auth/mutations/forgotPassword.test.ts diff --git a/packages/generator/templates/app/app/(auth)/mutations/forgotPassword.ts b/packages/generator/templates/app/app/auth/mutations/forgotPassword.ts similarity index 100% rename from packages/generator/templates/app/app/(auth)/mutations/forgotPassword.ts rename to packages/generator/templates/app/app/auth/mutations/forgotPassword.ts diff --git a/packages/generator/templates/app/app/(auth)/mutations/login.ts b/packages/generator/templates/app/app/auth/mutations/login.ts similarity index 100% rename from packages/generator/templates/app/app/(auth)/mutations/login.ts rename to packages/generator/templates/app/app/auth/mutations/login.ts diff --git a/packages/generator/templates/app/app/(auth)/mutations/logout.ts b/packages/generator/templates/app/app/auth/mutations/logout.ts similarity index 100% rename from packages/generator/templates/app/app/(auth)/mutations/logout.ts rename to packages/generator/templates/app/app/auth/mutations/logout.ts diff --git a/packages/generator/templates/app/app/(auth)/mutations/resetPassword.test.ts b/packages/generator/templates/app/app/auth/mutations/resetPassword.test.ts similarity index 100% rename from packages/generator/templates/app/app/(auth)/mutations/resetPassword.test.ts rename to packages/generator/templates/app/app/auth/mutations/resetPassword.test.ts diff --git a/packages/generator/templates/app/app/(auth)/mutations/resetPassword.ts b/packages/generator/templates/app/app/auth/mutations/resetPassword.ts similarity index 100% rename from packages/generator/templates/app/app/(auth)/mutations/resetPassword.ts rename to packages/generator/templates/app/app/auth/mutations/resetPassword.ts diff --git a/packages/generator/templates/app/app/(auth)/mutations/signup.ts b/packages/generator/templates/app/app/auth/mutations/signup.ts similarity index 100% rename from packages/generator/templates/app/app/(auth)/mutations/signup.ts rename to packages/generator/templates/app/app/auth/mutations/signup.ts diff --git a/packages/generator/templates/app/app/(auth)/signup/page.tsx b/packages/generator/templates/app/app/auth/signup/page.tsx similarity index 100% rename from packages/generator/templates/app/app/(auth)/signup/page.tsx rename to packages/generator/templates/app/app/auth/signup/page.tsx diff --git a/packages/generator/templates/app/app/(auth)/validations.ts b/packages/generator/templates/app/app/auth/validations.ts similarity index 100% rename from packages/generator/templates/app/app/(auth)/validations.ts rename to packages/generator/templates/app/app/auth/validations.ts diff --git a/packages/generator/templates/app/app/blitz-server.ts b/packages/generator/templates/app/app/blitz-server.ts index e10b78d21b..2357947dc2 100644 --- a/packages/generator/templates/app/app/blitz-server.ts +++ b/packages/generator/templates/app/app/blitz-server.ts @@ -1,8 +1,6 @@ -import type {BlitzCliConfig} from "blitz" import {setupBlitzServer} from "@blitzjs/next" -import {AuthServerPlugin, PrismaStorage} from "@blitzjs/auth" +import {AuthServerPlugin, PrismaStorage,simpleRolesIsAuthorized} from "@blitzjs/auth" import db from "../db" -import {simpleRolesIsAuthorized} from "@blitzjs/auth" import {BlitzLogger} from "blitz" import {RpcServerPlugin} from "@blitzjs/rpc" @@ -19,7 +17,3 @@ const {api, getBlitzContext, useAuthenticatedBlitzContext, invoke} = setupBlitzS }) export {api, getBlitzContext, useAuthenticatedBlitzContext, invoke} - -export const cliConfig: BlitzCliConfig = { - customTemplates: "src/templates", -} diff --git a/packages/generator/templates/app/app/core/components/Logout.tsx b/packages/generator/templates/app/app/core/components/Logout.tsx index e286b9a06d..4f995f37d7 100644 --- a/packages/generator/templates/app/app/core/components/Logout.tsx +++ b/packages/generator/templates/app/app/core/components/Logout.tsx @@ -1,7 +1,7 @@ "use client" import styles from "@/app/styles/Home.module.css" -import logout from "@/app/(auth)/mutations/logout" +import logout from "@/app/auth/mutations/logout" import {useRouter} from "next/navigation" import { useMutation } from "@blitzjs/rpc" diff --git a/packages/generator/templates/app/app/core/validators/zod.ts b/packages/generator/templates/app/app/core/validators/zod.ts deleted file mode 100644 index 623df9b212..0000000000 --- a/packages/generator/templates/app/app/core/validators/zod.ts +++ /dev/null @@ -1,18 +0,0 @@ -import * as z from "zod" - -export function zodValidate, U = keyof T>(schema: T, field: U) { - return (value: string): string => { - const result = schema - .pick({ - [field as string]: true, - }) - .safeParse({ - [field as string]: value, - }) - if (result.success) { - return "" - } else { - return JSON.parse(result.error.message)[0].message - } - } -} diff --git a/packages/generator/templates/app/pages/api/rpc/[[...blitz]].ts b/packages/generator/templates/app/pages/api/rpc/[[...blitz]].ts deleted file mode 100644 index a031e77375..0000000000 --- a/packages/generator/templates/app/pages/api/rpc/[[...blitz]].ts +++ /dev/null @@ -1,4 +0,0 @@ -import {rpcHandler} from "@blitzjs/rpc" -import {api} from "@/app/blitz-server" - -export default api(rpcHandler({onError: console.log})) diff --git a/packages/generator/templates/app/src/pages/api/rpc/blitzrpcroute.ts b/packages/generator/templates/app/src/pages/api/rpc/blitzrpcroute.ts new file mode 100644 index 0000000000..c6096b0115 --- /dev/null +++ b/packages/generator/templates/app/src/pages/api/rpc/blitzrpcroute.ts @@ -0,0 +1,4 @@ +import { rpcHandler } from "@blitzjs/rpc" +import { api } from "src/blitz-server" + +export default api(rpcHandler({ onError: console.log })) diff --git a/packages/generator/templates/app/tsconfig.json b/packages/generator/templates/app/tsconfig.json index e06a4454ab..5e4db4603c 100644 --- a/packages/generator/templates/app/tsconfig.json +++ b/packages/generator/templates/app/tsconfig.json @@ -1,6 +1,7 @@ { "compilerOptions": { "target": "es5", + "baseUrl": ".", "lib": ["dom", "dom.iterable", "esnext"], "allowJs": true, "skipLibCheck": true, From 4b1248091da16ddd40d6b7efef9a7cd43339c72f Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Mon, 2 Oct 2023 20:46:29 +0530 Subject: [PATCH 18/95] mske final changes --- .../generator/src/generators/app-generator.ts | 32 ++++++++++++------- .../templates/app/{.gitignore => gitignore} | 1 + packages/generator/templates/app/npmrc | 11 +++++++ .../app/{package.json => package.ts.json} | 0 4 files changed, 32 insertions(+), 12 deletions(-) rename packages/generator/templates/app/{.gitignore => gitignore} (96%) create mode 100644 packages/generator/templates/app/npmrc rename packages/generator/templates/app/{package.json => package.ts.json} (100%) diff --git a/packages/generator/src/generators/app-generator.ts b/packages/generator/src/generators/app-generator.ts index c4b7a321e0..5cf9afe43c 100644 --- a/packages/generator/src/generators/app-generator.ts +++ b/packages/generator/src/generators/app-generator.ts @@ -76,10 +76,7 @@ export class AppGenerator extends Generator { } if (this.options.template.path === "app") { - const authDirectory = `app/auth` - if (this.fs.exists(authDirectory)) { - this.fs.move(this.destinationPath(authDirectory), this.destinationPath(`app/(auth)`)) - } + this.destinationPath("app/auth"), this.destinationPath("app/(auth)") } if (!this.options.template.skipForms) { @@ -304,14 +301,25 @@ export class AppGenerator extends Generator { pkg.dependencies["formik"] = "2.x" break } - this.fs.move( - this.destinationPath(`_forms/${type}/Form.${ext}`), - this.destinationPath(`src/core/components/Form.${ext}`), - ) - this.fs.move( - this.destinationPath(`_forms/${type}/LabeledTextField.${ext}`), - this.destinationPath(`src/core/components/LabeledTextField.${ext}`), - ) + if (this.options.template.path === "pages") { + this.fs.move( + this.destinationPath(`_forms/${type}/Form.${ext}`), + this.destinationPath(`src/core/components/Form.${ext}`), + ) + this.fs.move( + this.destinationPath(`_forms/${type}/LabeledTextField.${ext}`), + this.destinationPath(`src/core/components/LabeledTextField.${ext}`), + ) + } else { + this.fs.move( + this.destinationPath(`_forms/${type}/Form.${ext}`), + this.destinationPath(`app/core/components/Form.${ext}`), + ) + this.fs.move( + this.destinationPath(`_forms/${type}/LabeledTextField.${ext}`), + this.destinationPath(`app/core/components/LabeledTextField.${ext}`), + ) + } this.fs.writeJSON(this.destinationPath("package.json"), pkg) this.fs.delete(this.destinationPath("_forms")) diff --git a/packages/generator/templates/app/.gitignore b/packages/generator/templates/app/gitignore similarity index 96% rename from packages/generator/templates/app/.gitignore rename to packages/generator/templates/app/gitignore index 4f360c89d2..62ea4c4ff3 100644 --- a/packages/generator/templates/app/.gitignore +++ b/packages/generator/templates/app/gitignore @@ -1,3 +1,4 @@ +# dependencies # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. # dependencies diff --git a/packages/generator/templates/app/npmrc b/packages/generator/templates/app/npmrc new file mode 100644 index 0000000000..c786194329 --- /dev/null +++ b/packages/generator/templates/app/npmrc @@ -0,0 +1,11 @@ +save-exact=true +legacy-peer-deps=true +strict-peer-dependencies=false +side-effects-cache=false + +public-hoist-pattern[]=@tanstack/react-query +public-hoist-pattern[]=next +public-hoist-pattern[]=secure-password +public-hoist-pattern[]=*jest* +public-hoist-pattern[]=@testing-library/* +# Needed for Blitz to work properly. Don't remove the lines above. diff --git a/packages/generator/templates/app/package.json b/packages/generator/templates/app/package.ts.json similarity index 100% rename from packages/generator/templates/app/package.json rename to packages/generator/templates/app/package.ts.json From a456429fc07e9f6af42f03c4f65dba5427a9a04c Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Tue, 3 Oct 2023 17:28:42 +0530 Subject: [PATCH 19/95] pnpm lock fix --- pnpm-lock.yaml | 220 ++++++++++++++++++++++++------------------------- 1 file changed, 110 insertions(+), 110 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 561529e30e..febeebcafd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -53,16 +53,16 @@ importers: apps/next13: dependencies: "@blitzjs/auth": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-auth "@blitzjs/config": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/config "@blitzjs/next": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-rpc "@hookform/error-message": specifier: 2.0.0 @@ -80,7 +80,7 @@ importers: specifier: 4.0.10 version: 4.0.10(react-dom@18.2.0)(react@18.2.0) blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz flatted: specifier: 3.2.7 @@ -129,16 +129,16 @@ importers: apps/toolkit-app: dependencies: "@blitzjs/auth": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-auth "@blitzjs/config": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/config "@blitzjs/next": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-rpc "@hookform/error-message": specifier: 2.0.0 @@ -150,7 +150,7 @@ importers: specifier: 4.6.1 version: 4.6.1(prisma@4.6.1) blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz next: specifier: 13.5.2 @@ -247,16 +247,16 @@ importers: apps/toolkit-app-passportjs: dependencies: "@blitzjs/auth": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-auth "@blitzjs/config": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/config "@blitzjs/next": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-rpc "@hookform/error-message": specifier: 2.0.0 @@ -268,7 +268,7 @@ importers: specifier: 4.6.1 version: 4.6.1(prisma@4.6.1) blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz next: specifier: 13.5.2 @@ -359,16 +359,16 @@ importers: apps/web: dependencies: "@blitzjs/auth": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-auth "@blitzjs/config": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/config "@blitzjs/next": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-rpc "@prisma/client": specifier: 4.6.1 @@ -380,7 +380,7 @@ importers: specifier: 1.0.37 version: 1.0.37 blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz jest: specifier: 29.3.0 @@ -426,19 +426,19 @@ importers: integration-tests/auth: dependencies: "@blitzjs/auth": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-auth "@blitzjs/config": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/config "@blitzjs/next": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-next "@prisma/client": specifier: 4.6.1 version: 4.6.1(prisma@4.6.1) blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz lowdb: specifier: 3.0.0 @@ -508,16 +508,16 @@ importers: integration-tests/auth-with-rpc: dependencies: "@blitzjs/auth": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-auth "@blitzjs/config": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/config "@blitzjs/next": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-rpc "@hookform/error-message": specifier: 2.0.0 @@ -529,7 +529,7 @@ importers: specifier: 4.6.1 version: 4.6.1(prisma@4.6.1) blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz delay: specifier: 5.0.0 @@ -629,19 +629,19 @@ importers: integration-tests/get-initial-props: dependencies: "@blitzjs/auth": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-auth "@blitzjs/next": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-rpc "@prisma/client": specifier: 4.6.1 version: 4.6.1(prisma@4.6.1) blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz lowdb: specifier: 3.0.0 @@ -660,7 +660,7 @@ importers: version: 18.2.0(react@18.2.0) devDependencies: "@blitzjs/config": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/config "@next/bundle-analyzer": specifier: 12.0.8 @@ -699,16 +699,16 @@ importers: integration-tests/middleware: dependencies: "@blitzjs/config": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/config "@blitzjs/next": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-rpc blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz next: specifier: 13.5.2 @@ -754,22 +754,22 @@ importers: integration-tests/next-13-app-dir: dependencies: "@blitzjs/auth": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-auth "@blitzjs/config": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/config "@blitzjs/next": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-rpc "@prisma/client": specifier: 4.6.1 version: 4.6.1(prisma@4.6.1) blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz lowdb: specifier: 3.0.0 @@ -839,19 +839,19 @@ importers: integration-tests/no-suspense: dependencies: "@blitzjs/auth": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-auth "@blitzjs/next": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-rpc "@prisma/client": specifier: 4.6.1 version: 4.6.1(prisma@4.6.1) blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz lowdb: specifier: 3.0.0 @@ -870,7 +870,7 @@ importers: version: 18.2.0(react@18.2.0) devDependencies: "@blitzjs/config": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/config "@next/bundle-analyzer": specifier: 12.0.8 @@ -909,16 +909,16 @@ importers: integration-tests/qm: dependencies: "@blitzjs/auth": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-auth "@blitzjs/config": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/config "@blitzjs/next": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-rpc "@prisma/client": specifier: 4.6.1 @@ -927,7 +927,7 @@ importers: specifier: 4.0.10 version: 4.0.10(react-dom@18.2.0)(react@18.2.0) blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz next: specifier: 13.5.2 @@ -973,16 +973,16 @@ importers: integration-tests/react-query-utils: dependencies: "@blitzjs/next": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-rpc "@prisma/client": specifier: 4.6.1 version: 4.6.1(prisma@4.6.1) blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz lowdb: specifier: 3.0.0 @@ -1001,7 +1001,7 @@ importers: version: 18.2.0(react@18.2.0) devDependencies: "@blitzjs/config": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/config "@next/bundle-analyzer": specifier: 12.0.8 @@ -1040,16 +1040,16 @@ importers: integration-tests/rpc: dependencies: "@blitzjs/config": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/config "@blitzjs/next": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-rpc blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz next: specifier: 13.5.2 @@ -1089,16 +1089,16 @@ importers: integration-tests/rpc-path-root: dependencies: "@blitzjs/config": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/config "@blitzjs/next": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-rpc blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz next: specifier: 13.5.2 @@ -1138,19 +1138,19 @@ importers: integration-tests/trailing-slash: dependencies: "@blitzjs/auth": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-auth "@blitzjs/next": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz-rpc "@prisma/client": specifier: 4.6.1 version: 4.6.1(prisma@4.6.1) blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz lowdb: specifier: 3.0.0 @@ -1169,7 +1169,7 @@ importers: version: 18.2.0(react@18.2.0) devDependencies: "@blitzjs/config": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/config "@next/bundle-analyzer": specifier: 12.0.8 @@ -1208,13 +1208,13 @@ importers: integration-tests/utils: devDependencies: "@blitzjs/config": - specifier: "workspace: *" + specifier: workspace:2.0.0-beta.34 version: link:../../packages/config "@blitzjs/next": - specifier: workspace:2.0.0-beta.33 + specifier: workspace:2.0.0-beta.34 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: "workspace: *" + specifier: workspace:2.0.0-beta.34 version: link:../../packages/blitz-rpc "@tanstack/react-query": specifier: 4.13.0 @@ -1295,7 +1295,7 @@ importers: packages/blitz: dependencies: "@blitzjs/generator": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../generator "@mrleebo/prisma-ast": specifier: 0.2.6 @@ -1440,7 +1440,7 @@ importers: version: 2.1.1 devDependencies: "@blitzjs/config": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../config "@types/cookie": specifier: 0.4.1 @@ -1585,7 +1585,7 @@ importers: version: 0.11.0 devDependencies: "@blitzjs/config": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../config "@testing-library/react": specifier: 13.4.0 @@ -1609,7 +1609,7 @@ importers: specifier: 17.0.14 version: 17.0.14 blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../blitz next: specifier: 13.5.2 @@ -1639,7 +1639,7 @@ importers: packages/blitz-next: dependencies: "@blitzjs/rpc": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../blitz-rpc "@types/hoist-non-react-statics": specifier: 3.3.1 @@ -1661,7 +1661,7 @@ importers: version: 8.1.1 devDependencies: "@blitzjs/config": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../config "@testing-library/dom": specifier: 8.13.0 @@ -1694,7 +1694,7 @@ importers: specifier: 4.0.0 version: 4.0.0(@types/react@18.0.25)(react-dom@18.2.0)(react@18.2.0) blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../blitz cross-spawn: specifier: 7.0.3 @@ -1761,10 +1761,10 @@ importers: version: 8.1.1 devDependencies: "@blitzjs/auth": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../blitz-auth "@blitzjs/config": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../config "@tanstack/query-core": specifier: 4.24.4 @@ -1779,7 +1779,7 @@ importers: specifier: 17.0.14 version: 17.0.14 blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../blitz next: specifier: 13.5.2 @@ -1818,13 +1818,13 @@ importers: specifier: 7.17.12 version: 7.17.12(@babel/core@7.12.10) "@blitzjs/generator": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../generator arg: specifier: 5.0.1 version: 5.0.1 blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../blitz chalk: specifier: ^4.1.0 @@ -1852,7 +1852,7 @@ importers: specifier: 7.12.10 version: 7.12.10(@babel/core@7.12.10)(supports-color@8.1.1) "@blitzjs/config": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../config "@types/jscodeshift": specifier: 0.11.2 @@ -1974,7 +1974,7 @@ importers: version: 3.20.2 devDependencies: "@blitzjs/config": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../config "@juanm04/cpx": specifier: 2.0.1 @@ -2050,7 +2050,7 @@ importers: version: 5.9.1(eslint@8.27.0)(supports-color@8.1.1)(typescript@4.8.4) devDependencies: "@blitzjs/config": - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../config "@types/react": specifier: 18.0.25 @@ -2074,7 +2074,7 @@ importers: recipes/base-web: dependencies: blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2087,7 +2087,7 @@ importers: recipes/bulma: dependencies: blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2100,7 +2100,7 @@ importers: recipes/bumbag-ui: dependencies: blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2116,7 +2116,7 @@ importers: recipes/chakra-ui: dependencies: blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2132,7 +2132,7 @@ importers: recipes/emotion: dependencies: blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2145,19 +2145,19 @@ importers: recipes/gh-action-yarn-mariadb: dependencies: blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz recipes/gh-action-yarn-postgres: dependencies: blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz recipes/ghost: dependencies: blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2170,7 +2170,7 @@ importers: recipes/graphql-apollo-server: dependencies: blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2186,7 +2186,7 @@ importers: recipes/logrocket: dependencies: blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2199,7 +2199,7 @@ importers: recipes/material-ui: dependencies: blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2212,7 +2212,7 @@ importers: recipes/next-ui: dependencies: blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2228,19 +2228,19 @@ importers: recipes/passenger: dependencies: blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz recipes/quirrel: dependencies: blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz recipes/reflexjs: dependencies: blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2256,13 +2256,13 @@ importers: recipes/render: dependencies: blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz recipes/secureheaders: dependencies: blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2278,7 +2278,7 @@ importers: recipes/stitches: dependencies: blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2291,7 +2291,7 @@ importers: recipes/styled-components: dependencies: blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2307,7 +2307,7 @@ importers: recipes/tailwind: dependencies: blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2320,7 +2320,7 @@ importers: recipes/theme-ui: dependencies: blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2336,7 +2336,7 @@ importers: recipes/vanilla-extract: dependencies: blitz: - specifier: 2.0.0-beta.33 + specifier: 2.0.0-beta.34 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 From 82e5f340e48ef7a2755f0f1142e0e28ec5bf611d Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Tue, 3 Oct 2023 18:22:37 +0530 Subject: [PATCH 20/95] more changes --- apps/toolkit-app/test/index.test.tsx | 32 ------ apps/toolkit-app/test/setup.ts | 3 - apps/toolkit-app/test/utils.tsx | 106 ------------------ .../generator/src/generators/app-generator.ts | 5 +- .../app/app/auth/components/LoginForm.tsx | 4 +- .../app/app/auth/components/SignupForm.tsx | 4 +- .../templates/app/app/auth/layout.tsx | 2 +- .../app/app/auth/mutations/changePassword.ts | 15 +-- .../app/auth/mutations/forgotPassword.test.ts | 2 +- .../app/app/auth/mutations/forgotPassword.ts | 2 +- .../templates/app/app/auth/mutations/login.ts | 2 +- .../app/auth/mutations/resetPassword.test.ts | 2 +- .../app/app/auth/mutations/resetPassword.ts | 2 +- .../app/app/auth/mutations/signup.ts | 2 +- .../templates/app/app/blitz-server.ts | 2 +- .../app/app/core/components/Logout.tsx | 10 +- .../generator/templates/app/app/layout.tsx | 2 +- packages/generator/templates/app/app/page.tsx | 4 +- .../app/app/users/queries/getCurrentUser.ts | 9 +- .../migrations/20230515094145_/migration.sql | 26 ----- .../migrations/20230515094805_/migration.sql | 57 ---------- .../app/db/migrations/migration_lock.toml | 3 - .../generator/templates/app/next.config.js | 6 +- .../generator/templates/app/package.ts.json | 20 ++-- .../app/src/pages/api/rpc/blitzrpcroute.ts | 2 +- 25 files changed, 38 insertions(+), 286 deletions(-) delete mode 100644 apps/toolkit-app/test/index.test.tsx delete mode 100644 apps/toolkit-app/test/setup.ts delete mode 100644 apps/toolkit-app/test/utils.tsx delete mode 100644 packages/generator/templates/app/db/migrations/20230515094145_/migration.sql delete mode 100644 packages/generator/templates/app/db/migrations/20230515094805_/migration.sql delete mode 100644 packages/generator/templates/app/db/migrations/migration_lock.toml diff --git a/apps/toolkit-app/test/index.test.tsx b/apps/toolkit-app/test/index.test.tsx deleted file mode 100644 index 4bc5951588..0000000000 --- a/apps/toolkit-app/test/index.test.tsx +++ /dev/null @@ -1,32 +0,0 @@ -/** - * @vitest-environment jsdom - */ - -import { expect, vi, test } from "vitest" -import { render } from "test/utils" - -import Home from "../src/pages/index" - -vi.mock("public/logo.png", () => ({ - default: { src: "/logo.png" }, -})) - -test.skip("renders blitz documentation link", () => { - // This is an example of how to ensure a specific item is in the document - // But it's disabled by default (by test.skip) so the test doesn't fail - // when you remove the default content from the page - - // This is an example on how to mock api hooks when testing - vi.mock("src/users/hooks/useCurrentUser", () => ({ - useCurrentUser: () => ({ - id: 1, - name: "User", - email: "user@email.com", - role: "user", - }), - })) - - const { getByText } = render() - const linkElement = getByText(/Blitz Docs/i) - expect(linkElement).toBeInTheDocument() -}) diff --git a/apps/toolkit-app/test/setup.ts b/apps/toolkit-app/test/setup.ts deleted file mode 100644 index 2335fec51e..0000000000 --- a/apps/toolkit-app/test/setup.ts +++ /dev/null @@ -1,3 +0,0 @@ -import "@testing-library/jest-dom" - -export {} diff --git a/apps/toolkit-app/test/utils.tsx b/apps/toolkit-app/test/utils.tsx deleted file mode 100644 index 44103da7c0..0000000000 --- a/apps/toolkit-app/test/utils.tsx +++ /dev/null @@ -1,106 +0,0 @@ -import { vi } from "vitest" -import { render as defaultRender } from "@testing-library/react" -import { renderHook as defaultRenderHook } from "@testing-library/react-hooks" -import { NextRouter } from "next/router" -import { BlitzProvider, RouterContext } from "@blitzjs/next" -import { QueryClient } from "@blitzjs/rpc" - -export * from "@testing-library/react" - -// -------------------------------------------------------------------------------- -// This file customizes the render() and renderHook() test functions provided -// by React testing library. It adds a router context wrapper with a mocked router. -// -// You should always import `render` and `renderHook` from this file -// -// This is the place to add any other context providers you need while testing. -// -------------------------------------------------------------------------------- - -// -------------------------------------------------- -// render() -// -------------------------------------------------- -// Override the default test render with our own -// -// You can override the router mock like this: -// -// const { baseElement } = render(, { -// router: { pathname: '/my-custom-pathname' }, -// }); -// -------------------------------------------------- - -const queryClient = new QueryClient() -export function render( - ui: RenderUI, - { wrapper, router, dehydratedState, ...options }: RenderOptions = {} -) { - if (!wrapper) { - // Add a default context wrapper if one isn't supplied from the test - wrapper = ({ children }: { children: React.ReactNode }) => ( - - - {children} - - - ) - } - return defaultRender(ui, { wrapper, ...options }) -} - -// -------------------------------------------------- -// renderHook() -// -------------------------------------------------- -// Override the default test renderHook with our own -// -// You can override the router mock like this: -// -// const result = renderHook(() => myHook(), { -// router: { pathname: '/my-custom-pathname' }, -// }); -// -------------------------------------------------- -export function renderHook( - hook: RenderHook, - { wrapper, router, dehydratedState, ...options }: RenderOptions = {} -) { - if (!wrapper) { - // Add a default context wrapper if one isn't supplied from the test - wrapper = ({ children }: { children: React.ReactNode }) => ( - - - {children} - - - ) - } - return defaultRenderHook(hook, { wrapper, ...options }) -} - -export const mockRouter: NextRouter = { - basePath: "", - pathname: "/", - route: "/", - asPath: "/", - query: {}, - isReady: true, - isLocaleDomain: false, - forward: vi.fn(), - prefetch: vi.fn(), - isPreview: false, - push: vi.fn(), - replace: vi.fn(), - reload: vi.fn(), - back: vi.fn(), - beforePopState: vi.fn(), - events: { - on: vi.fn(), - off: vi.fn(), - emit: vi.fn(), - }, - isFallback: false, -} - -type DefaultParams = Parameters -type RenderUI = DefaultParams[0] -type RenderOptions = DefaultParams[1] & { router?: Partial; dehydratedState?: unknown } - -type DefaultHookParams = Parameters -type RenderHook = DefaultHookParams[0] diff --git a/packages/generator/src/generators/app-generator.ts b/packages/generator/src/generators/app-generator.ts index 5cf9afe43c..8c726a502b 100644 --- a/packages/generator/src/generators/app-generator.ts +++ b/packages/generator/src/generators/app-generator.ts @@ -7,6 +7,7 @@ import {Generator, GeneratorOptions, SourceRootType} from "../generator" import {baseLogger, log} from "../utils/log" import {fetchLatestVersionsFor} from "../utils/fetch-latest-version-for" import {getBlitzDependencyVersion} from "../utils/get-blitz-dependency-version" +import fs from "fs-extra" function assert(condition: any, message: string): asserts condition { if (!condition) throw new Error(message) @@ -75,10 +76,6 @@ export class AppGenerator extends Generator { ) } - if (this.options.template.path === "app") { - this.destinationPath("app/auth"), this.destinationPath("app/(auth)") - } - if (!this.options.template.skipForms) { this.updateForms() } diff --git a/packages/generator/templates/app/app/auth/components/LoginForm.tsx b/packages/generator/templates/app/app/auth/components/LoginForm.tsx index d131a27014..1e939ba60e 100644 --- a/packages/generator/templates/app/app/auth/components/LoginForm.tsx +++ b/packages/generator/templates/app/app/auth/components/LoginForm.tsx @@ -2,8 +2,8 @@ import { AuthenticationError, PromiseReturnType } from "blitz" import Link from "next/link" import { LabeledTextField } from "app/core/components/LabeledTextField" import { Form, FORM_ERROR } from "app/core/components/Form" -import login from "@/app/auth/mutations/login" -import { Login } from "@/app/auth/validations" +import login from "app/auth/mutations/login" +import { Login } from "app/auth/validations" import { useMutation } from "@blitzjs/rpc" import { Routes } from "@blitzjs/next" diff --git a/packages/generator/templates/app/app/auth/components/SignupForm.tsx b/packages/generator/templates/app/app/auth/components/SignupForm.tsx index f7acb54ef3..d7ff2fc0b1 100644 --- a/packages/generator/templates/app/app/auth/components/SignupForm.tsx +++ b/packages/generator/templates/app/app/auth/components/SignupForm.tsx @@ -1,7 +1,7 @@ import { LabeledTextField } from "app/core/components/LabeledTextField" import { Form, FORM_ERROR } from "app/core/components/Form" -import signup from "@/app/auth/mutations/signup" -import { Signup } from "@/app/auth/validations" +import signup from "app/auth/mutations/signup" +import { Signup } from "app/auth/validations" import { useMutation } from "@blitzjs/rpc" type SignupFormProps = { diff --git a/packages/generator/templates/app/app/auth/layout.tsx b/packages/generator/templates/app/app/auth/layout.tsx index 79b8cd1cc8..4b7d5e5bb5 100644 --- a/packages/generator/templates/app/app/auth/layout.tsx +++ b/packages/generator/templates/app/app/auth/layout.tsx @@ -1,4 +1,4 @@ -import {useAuthenticatedBlitzContext} from "@blitzjs/auth" +import {useAuthenticatedBlitzContext} from "app/blitz-server" export default async function AuthLayout({children}: {children: React.ReactNode}) { await useAuthenticatedBlitzContext({ diff --git a/packages/generator/templates/app/app/auth/mutations/changePassword.ts b/packages/generator/templates/app/app/auth/mutations/changePassword.ts index 41203ce137..9bd27ddb50 100644 --- a/packages/generator/templates/app/app/auth/mutations/changePassword.ts +++ b/packages/generator/templates/app/app/auth/mutations/changePassword.ts @@ -1,24 +1,21 @@ import {NotFoundError} from "blitz" -import db from "@/db" -// import {authenticateUser} from "./login" +import db from "db" +import {authenticateUser} from "./login" import {ChangePassword} from "../validations" import {resolver} from "@blitzjs/rpc" -// import {SecurePassword} from "@blitzjs/auth" +import {SecurePassword} from "@blitzjs/auth/secure-password" export default resolver.pipe( - //@ts-ignore resolver.zod(ChangePassword), resolver.authorize(), async ({currentPassword, newPassword}, ctx) => { const user = await db.user.findFirst({where: {id: ctx.session.userId}}) if (!user) throw new NotFoundError() - - // await authenticateUser(user.email, currentPassword) - - // const hashedPassword = await SecurePassword.hash(newPassword.trim()) + await authenticateUser(user.email, currentPassword) + const hashedPassword = await SecurePassword.hash(newPassword.trim()) await db.user.update({ where: {id: user.id}, - data: {hashedPassword: newPassword}, + data: {hashedPassword}, }) return true diff --git a/packages/generator/templates/app/app/auth/mutations/forgotPassword.test.ts b/packages/generator/templates/app/app/auth/mutations/forgotPassword.test.ts index c5678da0e2..a30de6f1fb 100644 --- a/packages/generator/templates/app/app/auth/mutations/forgotPassword.test.ts +++ b/packages/generator/templates/app/app/auth/mutations/forgotPassword.test.ts @@ -1,5 +1,5 @@ import {vi, describe, it, beforeEach} from "vitest" -import db from "@/db" +import db from "db" import {hash256} from "@blitzjs/auth" import forgotPassword from "./forgotPassword" import previewEmail from "preview-email" diff --git a/packages/generator/templates/app/app/auth/mutations/forgotPassword.ts b/packages/generator/templates/app/app/auth/mutations/forgotPassword.ts index 672c76713e..ea90497c1c 100644 --- a/packages/generator/templates/app/app/auth/mutations/forgotPassword.ts +++ b/packages/generator/templates/app/app/auth/mutations/forgotPassword.ts @@ -1,6 +1,6 @@ import {generateToken, hash256} from "@blitzjs/auth" import {resolver} from "@blitzjs/rpc" -import db from "@/db" +import db from "db" import { forgotPasswordMailer } from "@/mailers/forgotPasswordMailer" import {ForgotPassword} from "../validations" diff --git a/packages/generator/templates/app/app/auth/mutations/login.ts b/packages/generator/templates/app/app/auth/mutations/login.ts index 4811af875a..678f673cd2 100644 --- a/packages/generator/templates/app/app/auth/mutations/login.ts +++ b/packages/generator/templates/app/app/auth/mutations/login.ts @@ -1,6 +1,6 @@ import {resolver} from "@blitzjs/rpc" import {AuthenticationError} from "blitz" -import db from "@/db" +import db from "db" import {Login} from "../validations" import { SecurePassword } from "@blitzjs/auth/secure-password" diff --git a/packages/generator/templates/app/app/auth/mutations/resetPassword.test.ts b/packages/generator/templates/app/app/auth/mutations/resetPassword.test.ts index 7ffa6c35ce..f931d3a7c5 100644 --- a/packages/generator/templates/app/app/auth/mutations/resetPassword.test.ts +++ b/packages/generator/templates/app/app/auth/mutations/resetPassword.test.ts @@ -1,6 +1,6 @@ import {vi, describe, it, beforeEach, expect} from "vitest" import resetPassword from "./resetPassword" -import db from "@/db" +import db from "db" import {hash256} from "@blitzjs/auth" import {SecurePassword} from "@blitzjs/auth/secure-password" diff --git a/packages/generator/templates/app/app/auth/mutations/resetPassword.ts b/packages/generator/templates/app/app/auth/mutations/resetPassword.ts index 23f602fb75..882620d521 100644 --- a/packages/generator/templates/app/app/auth/mutations/resetPassword.ts +++ b/packages/generator/templates/app/app/auth/mutations/resetPassword.ts @@ -2,7 +2,7 @@ import { hash256 } from "@blitzjs/auth" import { SecurePassword } from "@blitzjs/auth/secure-password" import { resolver } from "@blitzjs/rpc" import db from "db" -import { ResetPassword } from "../schemas" +import { ResetPassword } from "../validations" import login from "./login" export class ResetPasswordError extends Error { diff --git a/packages/generator/templates/app/app/auth/mutations/signup.ts b/packages/generator/templates/app/app/auth/mutations/signup.ts index fe042ba76b..4f3aed9622 100644 --- a/packages/generator/templates/app/app/auth/mutations/signup.ts +++ b/packages/generator/templates/app/app/auth/mutations/signup.ts @@ -1,4 +1,4 @@ -import db from "@/db" +import db from "db" import {SecurePassword} from "@blitzjs/auth/secure-password" export default async function signup(input: {password: string; email: string}, ctx: any) { diff --git a/packages/generator/templates/app/app/blitz-server.ts b/packages/generator/templates/app/app/blitz-server.ts index 2357947dc2..09a1ab6912 100644 --- a/packages/generator/templates/app/app/blitz-server.ts +++ b/packages/generator/templates/app/app/blitz-server.ts @@ -1,6 +1,6 @@ import {setupBlitzServer} from "@blitzjs/next" import {AuthServerPlugin, PrismaStorage,simpleRolesIsAuthorized} from "@blitzjs/auth" -import db from "../db" +import db from "db" import {BlitzLogger} from "blitz" import {RpcServerPlugin} from "@blitzjs/rpc" diff --git a/packages/generator/templates/app/app/core/components/Logout.tsx b/packages/generator/templates/app/app/core/components/Logout.tsx index 4f995f37d7..8bdf9f331f 100644 --- a/packages/generator/templates/app/app/core/components/Logout.tsx +++ b/packages/generator/templates/app/app/core/components/Logout.tsx @@ -1,7 +1,7 @@ "use client" -import styles from "@/app/styles/Home.module.css" -import logout from "@/app/auth/mutations/logout" +import styles from "app/styles/Home.module.css" +import logout from "app/auth/mutations/logout" import {useRouter} from "next/navigation" import { useMutation } from "@blitzjs/rpc" @@ -13,10 +13,8 @@ export default function LogoutButton() { +
+ ) +} + +const Authenticate: BlitzPage = () => { + return ( +
+ + + +
+ ) +} + +Authenticate.authenticate = {role: "USER", redirectTo: "/noauth-query"} + +export default Authenticate diff --git a/integration-tests/auth-with-rpc/src/pages/page-dot-authenticate-role-redirect.tsx b/integration-tests/auth-with-rpc/src/pages/page-dot-authenticate-role-redirect.tsx new file mode 100644 index 0000000000..59f64fc5e4 --- /dev/null +++ b/integration-tests/auth-with-rpc/src/pages/page-dot-authenticate-role-redirect.tsx @@ -0,0 +1,37 @@ +import {useMutation, useQuery} from "@blitzjs/rpc" +import {BlitzPage} from "@blitzjs/next" +import logout from "../mutations/logout" +import getAuthenticatedBasic from "../queries/getAuthenticatedBasic" +import {Suspense} from "react" + +function Content() { + const [result] = useQuery(getAuthenticatedBasic, undefined) + const [logoutMutation] = useMutation(logout) + return ( +
+
{result}
+ +
+ ) +} + +const Authenticate: BlitzPage = () => { + return ( +
+ + + +
+ ) +} + +Authenticate.authenticate = {role: "ADMIN", redirectTo: "/noauth-query"} + +export default Authenticate diff --git a/integration-tests/auth-with-rpc/test/index.test.ts b/integration-tests/auth-with-rpc/test/index.test.ts index 576dcd7751..3462315038 100644 --- a/integration-tests/auth-with-rpc/test/index.test.ts +++ b/integration-tests/auth-with-rpc/test/index.test.ts @@ -113,7 +113,7 @@ const runTests = () => { if (browser) await browser.close() }) - it("Page.authenticate = {role} should work ", async () => { + it("Page.authenticate = {role} should throw authentication error ", async () => { let browser = await webdriver(appPort, "/login") await waitFor(200) await browser.elementByCss("#login").click() @@ -145,12 +145,26 @@ const runTests = () => { if (browser) await browser.close() }) - it("Layout.authenticate = {redirect} should work ", async () => { + it("Page.authenticate = {role: 'custom', redirect: 'url'} should work ", async () => { let browser = await webdriver(appPort, "/login") await waitFor(200) await browser.elementByCss("#login").click() await waitFor(200) - await browser.eval(`window.location = "/layout-authenticate-redirect"`) + await browser.eval(`window.location = "/page-dot-authenticate-role-redirect"`) + await browser.waitForElementByCss("#content") + expect(await browser.url()).toMatch(/\/noauth-query/) + if (browser) await browser.close() + }) + + it("Page.authenticate = {role: 'custom', redirect: 'url'} should stay ", async () => { + let browser = await webdriver(appPort, "/page-dot-authenticate-role-redirect-stay") + await browser.waitForElementByCss("#content") + expect(await browser.url()).toMatch(/\/page-dot-authenticate-role-redirect-stay/) + if (browser) await browser.close() + }) + + it("Layout.authenticate = {redirect} should work ", async () => { + let browser = await webdriver(appPort, "/layout-authenticate-redirect") await browser.waitForElementByCss("#content") let text = await browser.elementByCss("#content").text() expect(text).toMatch(/authenticated-basic-result/) From 7d0d8147993df9be14c07bc77aee35c9450beeef Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Sun, 15 Oct 2023 00:14:22 +0530 Subject: [PATCH 30/95] Create moody-pandas-do.md --- .changeset/moody-pandas-do.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .changeset/moody-pandas-do.md diff --git a/.changeset/moody-pandas-do.md b/.changeset/moody-pandas-do.md new file mode 100644 index 0000000000..4a16f7448d --- /dev/null +++ b/.changeset/moody-pandas-do.md @@ -0,0 +1,8 @@ +--- +"next-blitz-auth": patch +"@blitzjs/auth": patch +"@blitzjs/rpc": patch +"blitz": patch +--- + +Refactor `invoke` From 86c2458acab75c11b1633ff98e9c1cb115ce7549 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Sun, 15 Oct 2023 00:20:17 +0530 Subject: [PATCH 31/95] Apply suggestions from code review --- .changeset/moody-pandas-do.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.changeset/moody-pandas-do.md b/.changeset/moody-pandas-do.md index 4a16f7448d..70754966a8 100644 --- a/.changeset/moody-pandas-do.md +++ b/.changeset/moody-pandas-do.md @@ -1,8 +1,9 @@ --- -"next-blitz-auth": patch "@blitzjs/auth": patch "@blitzjs/rpc": patch "blitz": patch --- -Refactor `invoke` +- Introduce Blitz RPC's logging system to the `invoke` function which is the recommended way to call resolvers in nextjs `app` directory's react server components. + +- This refactor also removes the re-introduced dependency between `blitz-auth` and `blitz-rpc`, allowing independent usage of `blitz-rpc` From 695a38b898d557f4e7774b17da36ffe530e9720c Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Sun, 15 Oct 2023 14:44:15 +0530 Subject: [PATCH 32/95] move app -> `src/app` --- .../generator/src/generators/app-generator.ts | 32 ++++++++----------- .../app/auth/components/LoginForm.tsx | 8 ++--- .../app/auth/components/LogoutButton.tsx} | 7 ++-- .../app/auth/components/SignupForm.tsx | 8 ++--- .../app/{ => src}/app/auth/layout.tsx | 0 .../app/{ => src}/app/auth/login/page.tsx | 0 .../app/auth/mutations/changePassword.ts | 0 .../app/auth/mutations/forgotPassword.test.ts | 0 .../app/auth/mutations/forgotPassword.ts | 2 +- .../app/{ => src}/app/auth/mutations/login.ts | 0 .../{ => src}/app/auth/mutations/logout.ts | 0 .../app/auth/mutations/resetPassword.test.ts | 0 .../app/auth/mutations/resetPassword.ts | 0 .../{ => src}/app/auth/mutations/signup.ts | 0 .../app/{ => src}/app/auth/signup/page.tsx | 0 .../app/{ => src}/app/auth/validations.ts | 0 .../app/{ => src}/app/blitz-client.ts | 2 +- .../app/{ => src}/app/blitz-server.ts | 0 .../templates/app/{ => src}/app/error.tsx | 1 - .../templates/app/{ => src}/app/layout.tsx | 0 .../templates/app/{ => src}/app/loading.tsx | 0 .../templates/app/{ => src}/app/page.tsx | 2 +- .../app/{ => src}/app/styles/Home.module.css | 0 .../app/{ => src}/app/styles/globals.css | 0 .../app/users/hooks/useCurrentUser.ts | 0 .../app/users/queries/getCurrentUser.ts | 0 26 files changed, 27 insertions(+), 35 deletions(-) rename packages/generator/templates/app/{ => src}/app/auth/components/LoginForm.tsx (88%) rename packages/generator/templates/app/{app/core/components/Logout.tsx => src/app/auth/components/LogoutButton.tsx} (75%) rename packages/generator/templates/app/{ => src}/app/auth/components/SignupForm.tsx (83%) rename packages/generator/templates/app/{ => src}/app/auth/layout.tsx (100%) rename packages/generator/templates/app/{ => src}/app/auth/login/page.tsx (100%) rename packages/generator/templates/app/{ => src}/app/auth/mutations/changePassword.ts (100%) rename packages/generator/templates/app/{ => src}/app/auth/mutations/forgotPassword.test.ts (100%) rename packages/generator/templates/app/{ => src}/app/auth/mutations/forgotPassword.ts (95%) rename packages/generator/templates/app/{ => src}/app/auth/mutations/login.ts (100%) rename packages/generator/templates/app/{ => src}/app/auth/mutations/logout.ts (100%) rename packages/generator/templates/app/{ => src}/app/auth/mutations/resetPassword.test.ts (100%) rename packages/generator/templates/app/{ => src}/app/auth/mutations/resetPassword.ts (100%) rename packages/generator/templates/app/{ => src}/app/auth/mutations/signup.ts (100%) rename packages/generator/templates/app/{ => src}/app/auth/signup/page.tsx (100%) rename packages/generator/templates/app/{ => src}/app/auth/validations.ts (100%) rename packages/generator/templates/app/{ => src}/app/blitz-client.ts (75%) rename packages/generator/templates/app/{ => src}/app/blitz-server.ts (100%) rename packages/generator/templates/app/{ => src}/app/error.tsx (99%) rename packages/generator/templates/app/{ => src}/app/layout.tsx (100%) rename packages/generator/templates/app/{ => src}/app/loading.tsx (100%) rename packages/generator/templates/app/{ => src}/app/page.tsx (99%) rename packages/generator/templates/app/{ => src}/app/styles/Home.module.css (100%) rename packages/generator/templates/app/{ => src}/app/styles/globals.css (100%) rename packages/generator/templates/app/{ => src}/app/users/hooks/useCurrentUser.ts (100%) rename packages/generator/templates/app/{ => src}/app/users/queries/getCurrentUser.ts (100%) diff --git a/packages/generator/src/generators/app-generator.ts b/packages/generator/src/generators/app-generator.ts index 8c726a502b..a8ace4e426 100644 --- a/packages/generator/src/generators/app-generator.ts +++ b/packages/generator/src/generators/app-generator.ts @@ -76,6 +76,11 @@ export class AppGenerator extends Generator { ) } + if (this.options.template.path === "app") { + this.fs.move(this.destinationPath(`src/app/auth`), this.destinationPath(`src/app/(auth)`)) + this.fs.delete(this.destinationPath(`src/app`)) + } + if (!this.options.template.skipForms) { this.updateForms() } @@ -298,25 +303,14 @@ export class AppGenerator extends Generator { pkg.dependencies["formik"] = "2.x" break } - if (this.options.template.path === "pages") { - this.fs.move( - this.destinationPath(`_forms/${type}/Form.${ext}`), - this.destinationPath(`src/core/components/Form.${ext}`), - ) - this.fs.move( - this.destinationPath(`_forms/${type}/LabeledTextField.${ext}`), - this.destinationPath(`src/core/components/LabeledTextField.${ext}`), - ) - } else { - this.fs.move( - this.destinationPath(`_forms/${type}/Form.${ext}`), - this.destinationPath(`app/core/components/Form.${ext}`), - ) - this.fs.move( - this.destinationPath(`_forms/${type}/LabeledTextField.${ext}`), - this.destinationPath(`app/core/components/LabeledTextField.${ext}`), - ) - } + this.fs.move( + this.destinationPath(`_forms/${type}/Form.${ext}`), + this.destinationPath(`src/core/components/Form.${ext}`), + ) + this.fs.move( + this.destinationPath(`_forms/${type}/LabeledTextField.${ext}`), + this.destinationPath(`src/core/components/LabeledTextField.${ext}`), + ) this.fs.writeJSON(this.destinationPath("package.json"), pkg) this.fs.delete(this.destinationPath("_forms")) diff --git a/packages/generator/templates/app/app/auth/components/LoginForm.tsx b/packages/generator/templates/app/src/app/auth/components/LoginForm.tsx similarity index 88% rename from packages/generator/templates/app/app/auth/components/LoginForm.tsx rename to packages/generator/templates/app/src/app/auth/components/LoginForm.tsx index 1e939ba60e..6b5fd64712 100644 --- a/packages/generator/templates/app/app/auth/components/LoginForm.tsx +++ b/packages/generator/templates/app/src/app/auth/components/LoginForm.tsx @@ -1,9 +1,9 @@ import { AuthenticationError, PromiseReturnType } from "blitz" import Link from "next/link" -import { LabeledTextField } from "app/core/components/LabeledTextField" -import { Form, FORM_ERROR } from "app/core/components/Form" -import login from "app/auth/mutations/login" -import { Login } from "app/auth/validations" +import { LabeledTextField } from "src/core/components/LabeledTextField" +import { Form, FORM_ERROR } from "src/core/components/Form" +import login from "../mutations/login" +import { Login } from "../validations" import { useMutation } from "@blitzjs/rpc" import { Routes } from "@blitzjs/next" diff --git a/packages/generator/templates/app/app/core/components/Logout.tsx b/packages/generator/templates/app/src/app/auth/components/LogoutButton.tsx similarity index 75% rename from packages/generator/templates/app/app/core/components/Logout.tsx rename to packages/generator/templates/app/src/app/auth/components/LogoutButton.tsx index 8bdf9f331f..9b503109b2 100644 --- a/packages/generator/templates/app/app/core/components/Logout.tsx +++ b/packages/generator/templates/app/src/app/auth/components/LogoutButton.tsx @@ -1,11 +1,10 @@ "use client" - import styles from "app/styles/Home.module.css" -import logout from "app/auth/mutations/logout" +import logout from "../mutations/logout" import {useRouter} from "next/navigation" -import { useMutation } from "@blitzjs/rpc" +import {useMutation} from "@blitzjs/rpc" -export default function LogoutButton() { +export function LogoutButton() { const router = useRouter() const [logoutMutation] = useMutation(logout) return ( diff --git a/packages/generator/templates/app/app/auth/components/SignupForm.tsx b/packages/generator/templates/app/src/app/auth/components/SignupForm.tsx similarity index 83% rename from packages/generator/templates/app/app/auth/components/SignupForm.tsx rename to packages/generator/templates/app/src/app/auth/components/SignupForm.tsx index d7ff2fc0b1..7f592f3dab 100644 --- a/packages/generator/templates/app/app/auth/components/SignupForm.tsx +++ b/packages/generator/templates/app/src/app/auth/components/SignupForm.tsx @@ -1,7 +1,7 @@ -import { LabeledTextField } from "app/core/components/LabeledTextField" -import { Form, FORM_ERROR } from "app/core/components/Form" -import signup from "app/auth/mutations/signup" -import { Signup } from "app/auth/validations" +import { LabeledTextField } from "src/core/components/LabeledTextField" +import { Form, FORM_ERROR } from "src/core/components/Form" +import signup from "../mutations/signup" +import { Signup } from "../validations" import { useMutation } from "@blitzjs/rpc" type SignupFormProps = { diff --git a/packages/generator/templates/app/app/auth/layout.tsx b/packages/generator/templates/app/src/app/auth/layout.tsx similarity index 100% rename from packages/generator/templates/app/app/auth/layout.tsx rename to packages/generator/templates/app/src/app/auth/layout.tsx diff --git a/packages/generator/templates/app/app/auth/login/page.tsx b/packages/generator/templates/app/src/app/auth/login/page.tsx similarity index 100% rename from packages/generator/templates/app/app/auth/login/page.tsx rename to packages/generator/templates/app/src/app/auth/login/page.tsx diff --git a/packages/generator/templates/app/app/auth/mutations/changePassword.ts b/packages/generator/templates/app/src/app/auth/mutations/changePassword.ts similarity index 100% rename from packages/generator/templates/app/app/auth/mutations/changePassword.ts rename to packages/generator/templates/app/src/app/auth/mutations/changePassword.ts diff --git a/packages/generator/templates/app/app/auth/mutations/forgotPassword.test.ts b/packages/generator/templates/app/src/app/auth/mutations/forgotPassword.test.ts similarity index 100% rename from packages/generator/templates/app/app/auth/mutations/forgotPassword.test.ts rename to packages/generator/templates/app/src/app/auth/mutations/forgotPassword.test.ts diff --git a/packages/generator/templates/app/app/auth/mutations/forgotPassword.ts b/packages/generator/templates/app/src/app/auth/mutations/forgotPassword.ts similarity index 95% rename from packages/generator/templates/app/app/auth/mutations/forgotPassword.ts rename to packages/generator/templates/app/src/app/auth/mutations/forgotPassword.ts index ea90497c1c..f6903552ce 100644 --- a/packages/generator/templates/app/app/auth/mutations/forgotPassword.ts +++ b/packages/generator/templates/app/src/app/auth/mutations/forgotPassword.ts @@ -1,7 +1,7 @@ import {generateToken, hash256} from "@blitzjs/auth" import {resolver} from "@blitzjs/rpc" import db from "db" -import { forgotPasswordMailer } from "@/mailers/forgotPasswordMailer" +import { forgotPasswordMailer } from "mailers/forgotPasswordMailer" import {ForgotPassword} from "../validations" const RESET_PASSWORD_TOKEN_EXPIRATION_IN_HOURS = 4 diff --git a/packages/generator/templates/app/app/auth/mutations/login.ts b/packages/generator/templates/app/src/app/auth/mutations/login.ts similarity index 100% rename from packages/generator/templates/app/app/auth/mutations/login.ts rename to packages/generator/templates/app/src/app/auth/mutations/login.ts diff --git a/packages/generator/templates/app/app/auth/mutations/logout.ts b/packages/generator/templates/app/src/app/auth/mutations/logout.ts similarity index 100% rename from packages/generator/templates/app/app/auth/mutations/logout.ts rename to packages/generator/templates/app/src/app/auth/mutations/logout.ts diff --git a/packages/generator/templates/app/app/auth/mutations/resetPassword.test.ts b/packages/generator/templates/app/src/app/auth/mutations/resetPassword.test.ts similarity index 100% rename from packages/generator/templates/app/app/auth/mutations/resetPassword.test.ts rename to packages/generator/templates/app/src/app/auth/mutations/resetPassword.test.ts diff --git a/packages/generator/templates/app/app/auth/mutations/resetPassword.ts b/packages/generator/templates/app/src/app/auth/mutations/resetPassword.ts similarity index 100% rename from packages/generator/templates/app/app/auth/mutations/resetPassword.ts rename to packages/generator/templates/app/src/app/auth/mutations/resetPassword.ts diff --git a/packages/generator/templates/app/app/auth/mutations/signup.ts b/packages/generator/templates/app/src/app/auth/mutations/signup.ts similarity index 100% rename from packages/generator/templates/app/app/auth/mutations/signup.ts rename to packages/generator/templates/app/src/app/auth/mutations/signup.ts diff --git a/packages/generator/templates/app/app/auth/signup/page.tsx b/packages/generator/templates/app/src/app/auth/signup/page.tsx similarity index 100% rename from packages/generator/templates/app/app/auth/signup/page.tsx rename to packages/generator/templates/app/src/app/auth/signup/page.tsx diff --git a/packages/generator/templates/app/app/auth/validations.ts b/packages/generator/templates/app/src/app/auth/validations.ts similarity index 100% rename from packages/generator/templates/app/app/auth/validations.ts rename to packages/generator/templates/app/src/app/auth/validations.ts diff --git a/packages/generator/templates/app/app/blitz-client.ts b/packages/generator/templates/app/src/app/blitz-client.ts similarity index 75% rename from packages/generator/templates/app/app/blitz-client.ts rename to packages/generator/templates/app/src/app/blitz-client.ts index 6dcdfb637e..01ce04cf6e 100644 --- a/packages/generator/templates/app/app/blitz-client.ts +++ b/packages/generator/templates/app/src/app/blitz-client.ts @@ -3,7 +3,7 @@ import {AuthClientPlugin} from "@blitzjs/auth" import {setupBlitzClient} from "@blitzjs/next" import {BlitzRpcPlugin} from "@blitzjs/rpc" -export const {withBlitz, useSession, queryClient, BlitzProvider} = setupBlitzClient({ +export const {withBlitz, BlitzProvider} = setupBlitzClient({ plugins: [ AuthClientPlugin({ cookiePrefix: "web-cookie-prefix", diff --git a/packages/generator/templates/app/app/blitz-server.ts b/packages/generator/templates/app/src/app/blitz-server.ts similarity index 100% rename from packages/generator/templates/app/app/blitz-server.ts rename to packages/generator/templates/app/src/app/blitz-server.ts diff --git a/packages/generator/templates/app/app/error.tsx b/packages/generator/templates/app/src/app/error.tsx similarity index 99% rename from packages/generator/templates/app/app/error.tsx rename to packages/generator/templates/app/src/app/error.tsx index 2c6571bf17..eb07f5a17f 100644 --- a/packages/generator/templates/app/app/error.tsx +++ b/packages/generator/templates/app/src/app/error.tsx @@ -1,5 +1,4 @@ "use client" // Error components must be Client components - import React, {useEffect} from "react" export default function Error({error, reset}: {error: Error; reset: () => void}) { diff --git a/packages/generator/templates/app/app/layout.tsx b/packages/generator/templates/app/src/app/layout.tsx similarity index 100% rename from packages/generator/templates/app/app/layout.tsx rename to packages/generator/templates/app/src/app/layout.tsx diff --git a/packages/generator/templates/app/app/loading.tsx b/packages/generator/templates/app/src/app/loading.tsx similarity index 100% rename from packages/generator/templates/app/app/loading.tsx rename to packages/generator/templates/app/src/app/loading.tsx diff --git a/packages/generator/templates/app/app/page.tsx b/packages/generator/templates/app/src/app/page.tsx similarity index 99% rename from packages/generator/templates/app/app/page.tsx rename to packages/generator/templates/app/src/app/page.tsx index 44d19e3808..fa73aad637 100644 --- a/packages/generator/templates/app/app/page.tsx +++ b/packages/generator/templates/app/src/app/page.tsx @@ -1,6 +1,6 @@ import Link from "next/link" import {invoke} from "./blitz-server" -import LogoutButton from "./core/components/Logout" +import {LogoutButton} from "./auth/components/LogoutButton" import styles from "./styles/Home.module.css" import getCurrentUser from "./users/queries/getCurrentUser" diff --git a/packages/generator/templates/app/app/styles/Home.module.css b/packages/generator/templates/app/src/app/styles/Home.module.css similarity index 100% rename from packages/generator/templates/app/app/styles/Home.module.css rename to packages/generator/templates/app/src/app/styles/Home.module.css diff --git a/packages/generator/templates/app/app/styles/globals.css b/packages/generator/templates/app/src/app/styles/globals.css similarity index 100% rename from packages/generator/templates/app/app/styles/globals.css rename to packages/generator/templates/app/src/app/styles/globals.css diff --git a/packages/generator/templates/app/app/users/hooks/useCurrentUser.ts b/packages/generator/templates/app/src/app/users/hooks/useCurrentUser.ts similarity index 100% rename from packages/generator/templates/app/app/users/hooks/useCurrentUser.ts rename to packages/generator/templates/app/src/app/users/hooks/useCurrentUser.ts diff --git a/packages/generator/templates/app/app/users/queries/getCurrentUser.ts b/packages/generator/templates/app/src/app/users/queries/getCurrentUser.ts similarity index 100% rename from packages/generator/templates/app/app/users/queries/getCurrentUser.ts rename to packages/generator/templates/app/src/app/users/queries/getCurrentUser.ts From 442bf07708f67f64cc01272a3463c1cbdadcc5df Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Sun, 15 Oct 2023 14:55:48 +0530 Subject: [PATCH 33/95] move from auth -> (auth) directory structure --- .../generator/src/generators/app-generator.ts | 25 +++++++++++++++++-- .../src/app/auth/components/LogoutButton.tsx | 2 +- .../generator/templates/app/src/app/page.tsx | 4 +-- 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/packages/generator/src/generators/app-generator.ts b/packages/generator/src/generators/app-generator.ts index a8ace4e426..5d37922b1c 100644 --- a/packages/generator/src/generators/app-generator.ts +++ b/packages/generator/src/generators/app-generator.ts @@ -77,8 +77,29 @@ export class AppGenerator extends Generator { } if (this.options.template.path === "app") { - this.fs.move(this.destinationPath(`src/app/auth`), this.destinationPath(`src/app/(auth)`)) - this.fs.delete(this.destinationPath(`src/app`)) + const pathsToMove = [ + "src/app/auth/components/LoginForm.tsx", + "src/app/auth/components/LogoutButton.tsx", + "src/app/auth/components/SignupForm.tsx", + "src/app/auth/mutations/login.ts", + "src/app/auth/mutations/logout.ts", + "src/app/auth/mutations/signup.ts", + "src/app/auth/mutations/forgotPassword.ts", + "src/app/auth/mutations/resetPassword.ts", + "src/app/auth/mutations/forgotPassword.test.ts", + "src/app/auth/mutations/resetPassword.test.ts", + "src/app/auth/mutations/changePassword.ts", + "src/app/auth/login/page.tsx", + "src/app/auth/signup/page.tsx", + "src/app/auth/layout.tsx", + "src/app/auth/validations.ts", + ] + for (const path of pathsToMove) { + this.fs.move( + this.destinationPath(path), + this.destinationPath(path.replace("auth/", "(auth)/")), + ) + } } if (!this.options.template.skipForms) { diff --git a/packages/generator/templates/app/src/app/auth/components/LogoutButton.tsx b/packages/generator/templates/app/src/app/auth/components/LogoutButton.tsx index 9b503109b2..909b2d7f30 100644 --- a/packages/generator/templates/app/src/app/auth/components/LogoutButton.tsx +++ b/packages/generator/templates/app/src/app/auth/components/LogoutButton.tsx @@ -13,7 +13,7 @@ export function LogoutButton() { className={styles.button} onClick={async () => { await logoutMutation() - router.refresh() + router.push("/") }} > Logout diff --git a/packages/generator/templates/app/src/app/page.tsx b/packages/generator/templates/app/src/app/page.tsx index fa73aad637..f6999b7e20 100644 --- a/packages/generator/templates/app/src/app/page.tsx +++ b/packages/generator/templates/app/src/app/page.tsx @@ -43,10 +43,10 @@ export default async function Home() { ) : ( <> - + Sign Up - + Login From c39df0ba3fc622b7688303f400cb526f68ac4154 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Sun, 15 Oct 2023 14:59:28 +0530 Subject: [PATCH 34/95] review 1 fixes --- packages/generator/templates/app/package.ts.json | 1 - .../generator/templates/app/src/pages/api/rpc/blitzrpcroute.ts | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/generator/templates/app/package.ts.json b/packages/generator/templates/app/package.ts.json index 18fb0f7802..28b84de96f 100644 --- a/packages/generator/templates/app/package.ts.json +++ b/packages/generator/templates/app/package.ts.json @@ -13,7 +13,6 @@ }, "dependencies": { "@blitzjs/auth": "latest", - "@blitzjs/config": "latest", "@blitzjs/next": "latest", "@blitzjs/rpc": "latest", "@prisma/client": "^4.14.0", diff --git a/packages/generator/templates/app/src/pages/api/rpc/blitzrpcroute.ts b/packages/generator/templates/app/src/pages/api/rpc/blitzrpcroute.ts index 9cb71c6519..9ee9aad43c 100644 --- a/packages/generator/templates/app/src/pages/api/rpc/blitzrpcroute.ts +++ b/packages/generator/templates/app/src/pages/api/rpc/blitzrpcroute.ts @@ -1,4 +1,4 @@ import { rpcHandler } from "@blitzjs/rpc" -import { api } from "app/blitz-server" +import { api } from "src/app/blitz-server" export default api(rpcHandler({ onError: console.log })) From 9416f4acb847ec5d086502feed878ab261f656b0 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Sun, 15 Oct 2023 15:01:55 +0530 Subject: [PATCH 35/95] missing change from auth -> (auth) change --- packages/generator/templates/app/src/app/page.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/generator/templates/app/src/app/page.tsx b/packages/generator/templates/app/src/app/page.tsx index f6999b7e20..7ea907b0d7 100644 --- a/packages/generator/templates/app/src/app/page.tsx +++ b/packages/generator/templates/app/src/app/page.tsx @@ -1,6 +1,6 @@ import Link from "next/link" import {invoke} from "./blitz-server" -import {LogoutButton} from "./auth/components/LogoutButton" +import {LogoutButton} from "./(auth)/components/LogoutButton" import styles from "./styles/Home.module.css" import getCurrentUser from "./users/queries/getCurrentUser" From 038fc8d034e5dbce793185bbc2e8732221bc9a19 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Sun, 15 Oct 2023 15:52:18 +0530 Subject: [PATCH 36/95] review 2: more fixes and match old behaviour --- apps/playground | 1 + .../src/pages/auth/reset-password.tsx | 1 - .../blitz-auth/src/server/auth-sessions.ts | 2 +- packages/blitz-rpc/src/server/plugin.ts | 4 + .../generator/templates/app/next.config.js | 6 +- .../generator/templates/app/package.ts.json | 11 +- .../app/src/app/auth/components/LoginForm.tsx | 26 +- .../src/app/auth/components/LogoutButton.tsx | 4 +- .../app/src/app/auth/forgot-password/page.tsx | 46 + .../templates/app/src/app/auth/layout.tsx | 2 +- .../templates/app/src/app/auth/login/page.tsx | 20 +- .../src/app/auth/mutations/forgotPassword.ts | 76 +- .../src/app/auth/mutations/resetPassword.ts | 25 +- .../app/src/app/auth/reset-password/page.tsx | 64 + .../templates/app/src/app/auth/validations.ts | 2 +- .../templates/app/src/app/layout.tsx | 2 +- pnpm-lock.yaml | 1683 +++++++++++++++-- 17 files changed, 1725 insertions(+), 250 deletions(-) create mode 160000 apps/playground create mode 100644 packages/generator/templates/app/src/app/auth/forgot-password/page.tsx create mode 100644 packages/generator/templates/app/src/app/auth/reset-password/page.tsx diff --git a/apps/playground b/apps/playground new file mode 160000 index 0000000000..e2941b67ea --- /dev/null +++ b/apps/playground @@ -0,0 +1 @@ +Subproject commit e2941b67ea222d36050333648edc0e6f354a4bf7 diff --git a/apps/toolkit-app/src/pages/auth/reset-password.tsx b/apps/toolkit-app/src/pages/auth/reset-password.tsx index 0a8ac72cbf..1e246da713 100644 --- a/apps/toolkit-app/src/pages/auth/reset-password.tsx +++ b/apps/toolkit-app/src/pages/auth/reset-password.tsx @@ -1,4 +1,3 @@ -import { useEffect, useState } from "react" import Layout from "src/core/layouts/Layout" import { LabeledTextField } from "src/core/components/LabeledTextField" import { Form, FORM_ERROR } from "src/core/components/Form" diff --git a/packages/blitz-auth/src/server/auth-sessions.ts b/packages/blitz-auth/src/server/auth-sessions.ts index 3d2a06985f..2b621fe1f7 100644 --- a/packages/blitz-auth/src/server/auth-sessions.ts +++ b/packages/blitz-auth/src/server/auth-sessions.ts @@ -221,7 +221,7 @@ export async function useAuthenticatedBlitzContext({ redirectAuthenticatedTo?: string | RouteUrlObject | ((ctx: Ctx) => string | RouteUrlObject) role?: string | string[] }): Promise { - const log = baseLogger().getSubLogger({name: "useAuthenticatedBlitzContext"}) + const log = baseLogger().getSubLogger({name: "blitz-auth"}) const customChalk = new chalk.Instance({ level: log.settings.type === "json" ? 0 : chalk.level, }) diff --git a/packages/blitz-rpc/src/server/plugin.ts b/packages/blitz-rpc/src/server/plugin.ts index 85286449b3..8bb3d5a1f5 100644 --- a/packages/blitz-rpc/src/server/plugin.ts +++ b/packages/blitz-rpc/src/server/plugin.ts @@ -5,6 +5,7 @@ import { createServerPlugin, } from "blitz" import {invoke} from "./invoke" +import {RpcLogger} from "../rpc-logger" export type RpcLoggerOptions = { /** @@ -47,6 +48,9 @@ export const RpcServerPlugin = createServerPlugin((options: RpcPluginOptions) => } catch (error) { if (options.onInvokeError) { options.onInvokeError(error) + } else { + const rpcLogger = new RpcLogger((queryFn as any)._resolverName, options.logging) + rpcLogger.error(error) } throw error } diff --git a/packages/generator/templates/app/next.config.js b/packages/generator/templates/app/next.config.js index da290dd029..4e73ad708c 100644 --- a/packages/generator/templates/app/next.config.js +++ b/packages/generator/templates/app/next.config.js @@ -1,6 +1,10 @@ const {withBlitz} = require("@blitzjs/next") /** @type {import('next').NextConfig} */ -const nextConfig = {} +const nextConfig = { + experimental: { + typedRoutes: true, + }, +} module.exports = withBlitz(nextConfig) diff --git a/packages/generator/templates/app/package.ts.json b/packages/generator/templates/app/package.ts.json index 28b84de96f..cb0cf36f8c 100644 --- a/packages/generator/templates/app/package.ts.json +++ b/packages/generator/templates/app/package.ts.json @@ -12,11 +12,11 @@ "lint": "next lint" }, "dependencies": { - "@blitzjs/auth": "latest", - "@blitzjs/next": "latest", - "@blitzjs/rpc": "latest", + "@blitzjs/auth": "2.0.0-beta.34", + "@blitzjs/next": "2.0.0-beta.34", + "@blitzjs/rpc": "2.0.0-beta.34", "@prisma/client": "^4.14.0", - "blitz": "latest", + "blitz": "2.0.0-beta.34", "flatted": "3.2.7", "next": "13.4.1", "prisma": "^4.14.0", @@ -24,7 +24,8 @@ "react-dom": "18.2.0", "react-hook-form": "7.39.1", "superjson": "1.11.0", - "zod": "3.20.2" + "zod": "3.20.2", + "formik": "2.4.5" }, "devDependencies": { "@types/node": "18.11.7", diff --git a/packages/generator/templates/app/src/app/auth/components/LoginForm.tsx b/packages/generator/templates/app/src/app/auth/components/LoginForm.tsx index 6b5fd64712..24774083f5 100644 --- a/packages/generator/templates/app/src/app/auth/components/LoginForm.tsx +++ b/packages/generator/templates/app/src/app/auth/components/LoginForm.tsx @@ -1,11 +1,10 @@ -import { AuthenticationError, PromiseReturnType } from "blitz" +import {AuthenticationError, PromiseReturnType} from "blitz" import Link from "next/link" -import { LabeledTextField } from "src/core/components/LabeledTextField" -import { Form, FORM_ERROR } from "src/core/components/Form" +import {LabeledTextField} from "src/core/components/LabeledTextField" +import {Form, FORM_ERROR} from "src/core/components/Form" import login from "../mutations/login" -import { Login } from "../validations" -import { useMutation } from "@blitzjs/rpc" -import { Routes } from "@blitzjs/next" +import {Login} from "../validations" +import {useMutation} from "@blitzjs/rpc" type LoginFormProps = { onSuccess?: (user: PromiseReturnType) => void @@ -20,14 +19,14 @@ export const LoginForm = (props: LoginFormProps) => {
{ try { const user = await loginMutation(values) props.onSuccess?.(user) } catch (error: any) { if (error instanceof AuthenticationError) { - return { [FORM_ERROR]: "Sorry, those credentials are invalid" } + return {[FORM_ERROR]: "Sorry, those credentials are invalid"} } else { return { [FORM_ERROR]: @@ -40,17 +39,12 @@ export const LoginForm = (props: LoginFormProps) => {
- - Forgot your password? - + Forgot your password?
-
- Or{" "} - - Sign Up - +
+ Or Sign Up
) diff --git a/packages/generator/templates/app/src/app/auth/components/LogoutButton.tsx b/packages/generator/templates/app/src/app/auth/components/LogoutButton.tsx index 909b2d7f30..dc45ae6c97 100644 --- a/packages/generator/templates/app/src/app/auth/components/LogoutButton.tsx +++ b/packages/generator/templates/app/src/app/auth/components/LogoutButton.tsx @@ -1,5 +1,5 @@ "use client" -import styles from "app/styles/Home.module.css" +import styles from "../../styles/Home.module.css" import logout from "../mutations/logout" import {useRouter} from "next/navigation" import {useMutation} from "@blitzjs/rpc" @@ -13,7 +13,7 @@ export function LogoutButton() { className={styles.button} onClick={async () => { await logoutMutation() - router.push("/") + router.refresh() }} > Logout diff --git a/packages/generator/templates/app/src/app/auth/forgot-password/page.tsx b/packages/generator/templates/app/src/app/auth/forgot-password/page.tsx new file mode 100644 index 0000000000..68e3f478bd --- /dev/null +++ b/packages/generator/templates/app/src/app/auth/forgot-password/page.tsx @@ -0,0 +1,46 @@ +"use client" +import {LabeledTextField} from "src/core/components/LabeledTextField" +import {Form, FORM_ERROR} from "src/core/components/Form" +import {ForgotPassword} from "../validations" +import forgotPassword from "../mutations/forgotPassword" +import {useMutation} from "@blitzjs/rpc" +import {BlitzPage} from "@blitzjs/next" + +const ForgotPasswordPage: BlitzPage = () => { + const [forgotPasswordMutation, {isSuccess}] = useMutation(forgotPassword) + return ( + <> +

Forgot your password?

+ <> + {isSuccess ? ( +
+

Request Submitted

+

+ If your email is in our system, you will receive instructions to reset your password + shortly. +

+
+ ) : ( +
{ + try { + await forgotPasswordMutation(values) + } catch (error: any) { + return { + [FORM_ERROR]: "Sorry, we had an unexpected error. Please try again.", + } + } + }} + > + + + )} + + + ) +} + +export default ForgotPasswordPage diff --git a/packages/generator/templates/app/src/app/auth/layout.tsx b/packages/generator/templates/app/src/app/auth/layout.tsx index 4b7d5e5bb5..06495d499e 100644 --- a/packages/generator/templates/app/src/app/auth/layout.tsx +++ b/packages/generator/templates/app/src/app/auth/layout.tsx @@ -1,4 +1,4 @@ -import {useAuthenticatedBlitzContext} from "app/blitz-server" +import {useAuthenticatedBlitzContext} from "../blitz-server" export default async function AuthLayout({children}: {children: React.ReactNode}) { await useAuthenticatedBlitzContext({ diff --git a/packages/generator/templates/app/src/app/auth/login/page.tsx b/packages/generator/templates/app/src/app/auth/login/page.tsx index 7c98e22b77..d202f1facc 100644 --- a/packages/generator/templates/app/src/app/auth/login/page.tsx +++ b/packages/generator/templates/app/src/app/auth/login/page.tsx @@ -1,9 +1,25 @@ "use client" - +import {useRouter} from "next/navigation" import {LoginForm} from "../components/LoginForm" +import {useSearchParams} from "next/navigation" +import { Route } from "next" const LoginPage = () => { - return {}} /> + const router = useRouter() + const next = useSearchParams()?.get("next") + return ( + { + // refetch data for server components + router.refresh() + if (next) { + router.push(next as Route) + } else { + router.push("/") + } + }} + /> + ) } export default LoginPage diff --git a/packages/generator/templates/app/src/app/auth/mutations/forgotPassword.ts b/packages/generator/templates/app/src/app/auth/mutations/forgotPassword.ts index f6903552ce..5005e42fe4 100644 --- a/packages/generator/templates/app/src/app/auth/mutations/forgotPassword.ts +++ b/packages/generator/templates/app/src/app/auth/mutations/forgotPassword.ts @@ -1,43 +1,45 @@ -import {generateToken, hash256} from "@blitzjs/auth" -import {resolver} from "@blitzjs/rpc" -import db from "db" -import { forgotPasswordMailer } from "mailers/forgotPasswordMailer" -import {ForgotPassword} from "../validations" +/* TODO - You need to add a mailer integration in `integrations/` and import here. + * + * The integration file can be very simple. Instantiate the email client + * and then export it. That way you can import here and anywhere else + * and use it straight away. + */ -const RESET_PASSWORD_TOKEN_EXPIRATION_IN_HOURS = 4 +type ResetPasswordMailer = { + to: string + token: string +} -export default resolver.pipe(resolver.zod(ForgotPassword), async ({ email }) => { - // 1. Get the user - const user = await db.user.findFirst({ where: { email: email.toLowerCase() } }) +export function forgotPasswordMailer({ to, token }: ResetPasswordMailer) { + // In production, set APP_ORIGIN to your production server origin + const origin = process.env.APP_ORIGIN || process.env.BLITZ_DEV_SERVER_ORIGIN + const resetUrl = `${origin}/reset-password?token=${token}` - // 2. Generate the token and expiration date. - const token = generateToken() - const hashedToken = hash256(token) - const expiresAt = new Date() - expiresAt.setHours(expiresAt.getHours() + RESET_PASSWORD_TOKEN_EXPIRATION_IN_HOURS) + const msg = { + from: "TODO@example.com", + to, + subject: "Your Password Reset Instructions", + html: ` +

Reset Your Password

+

NOTE: You must set up a production email integration in mailers/forgotPasswordMailer.ts

- // 3. If user with this email was found - if (user) { - // 4. Delete any existing password reset tokens - await db.token.deleteMany({ where: { type: "RESET_PASSWORD", userId: user.id } }) - // 5. Save this new token in the database. - await db.token.create({ - data: { - user: { connect: { id: user.id } }, - type: "RESET_PASSWORD", - expiresAt, - hashedToken, - sentTo: user.email, - }, - }) - // 6. Send the email - await forgotPasswordMailer({ to: user.email, token }).send() - } else { - // 7. If no user found wait the same time so attackers can't tell the difference - await new Promise((resolve) => setTimeout(resolve, 750)) + + Click here to set a new password + + `, } - // 8. Return the same result whether a password reset email was sent or not - return -}) - + return { + async send() { + if (process.env.NODE_ENV === "production") { + // TODO - send the production email, like this: + // await postmark.sendEmail(msg) + throw new Error("No production email implementation in mailers/forgotPasswordMailer") + } else { + // Preview email in the browser + const previewEmail = (await import("preview-email")).default + await previewEmail(msg) + } + }, + } +} diff --git a/packages/generator/templates/app/src/app/auth/mutations/resetPassword.ts b/packages/generator/templates/app/src/app/auth/mutations/resetPassword.ts index 882620d521..efbdb471b3 100644 --- a/packages/generator/templates/app/src/app/auth/mutations/resetPassword.ts +++ b/packages/generator/templates/app/src/app/auth/mutations/resetPassword.ts @@ -1,8 +1,8 @@ -import { hash256 } from "@blitzjs/auth" -import { SecurePassword } from "@blitzjs/auth/secure-password" -import { resolver } from "@blitzjs/rpc" +import {hash256} from "@blitzjs/auth" +import {SecurePassword} from "@blitzjs/auth/secure-password" +import {resolver} from "@blitzjs/rpc" import db from "db" -import { ResetPassword } from "../validations" +import {ResetPassword} from "../validations" import login from "./login" export class ResetPasswordError extends Error { @@ -10,12 +10,13 @@ export class ResetPasswordError extends Error { message = "Reset password link is invalid or it has expired." } -export default resolver.pipe(resolver.zod(ResetPassword), async ({ password, token }, ctx) => { +export default resolver.pipe(resolver.zod(ResetPassword), async ({password, token}, ctx) => { + if (!token) throw new ResetPasswordError("Token is required") // 1. Try to find this token in the database const hashedToken = hash256(token) const possibleToken = await db.token.findFirst({ - where: { hashedToken, type: "RESET_PASSWORD" }, - include: { user: true }, + where: {hashedToken, type: "RESET_PASSWORD"}, + include: {user: true}, }) // 2. If token not found, error @@ -25,7 +26,7 @@ export default resolver.pipe(resolver.zod(ResetPassword), async ({ password, tok const savedToken = possibleToken // 3. Delete token so it can't be used again - await db.token.delete({ where: { id: savedToken.id } }) + await db.token.delete({where: {id: savedToken.id}}) // 4. If token has expired, error if (savedToken.expiresAt < new Date()) { @@ -35,15 +36,15 @@ export default resolver.pipe(resolver.zod(ResetPassword), async ({ password, tok // 5. Since token is valid, now we can update the user's password const hashedPassword = await SecurePassword.hash(password.trim()) const user = await db.user.update({ - where: { id: savedToken.userId }, - data: { hashedPassword }, + where: {id: savedToken.userId}, + data: {hashedPassword}, }) // 6. Revoke all existing login sessions for this user - await db.session.deleteMany({ where: { userId: user.id } }) + await db.session.deleteMany({where: {userId: user.id}}) // 7. Now log the user in with the new credentials - await login({ email: user.email, password }, ctx) + await login({email: user.email, password}, ctx) return true }) diff --git a/packages/generator/templates/app/src/app/auth/reset-password/page.tsx b/packages/generator/templates/app/src/app/auth/reset-password/page.tsx new file mode 100644 index 0000000000..d70fd058c0 --- /dev/null +++ b/packages/generator/templates/app/src/app/auth/reset-password/page.tsx @@ -0,0 +1,64 @@ +"use client" +import {LabeledTextField} from "src/core/components/LabeledTextField" +import {Form, FORM_ERROR} from "src/core/components/Form" +import {ResetPassword} from "../validations" +import resetPassword from "../mutations/resetPassword" +import {BlitzPage} from "@blitzjs/next" +import {useMutation} from "@blitzjs/rpc" +import Link from "next/link" +import {useSearchParams} from "next/navigation" + +const ResetPasswordPage: BlitzPage = () => { + const searchParams = useSearchParams() + const token = searchParams?.get("token")?.toString() + const [resetPasswordMutation, {isSuccess}] = useMutation(resetPassword) + + return ( +
+

Set a New Password

+ + {isSuccess ? ( +
+

Password Reset Successfully

+

+ Go to the homepage +

+
+ ) : ( +
{ + try { + await resetPasswordMutation({...values, token}) + } catch (error: any) { + if (error.name === "ResetPasswordError") { + return { + [FORM_ERROR]: error.message, + } + } else { + return { + [FORM_ERROR]: "Sorry, we had an unexpected error. Please try again.", + } + } + } + }} + > + + + + )} +
+ ) +} + +export default ResetPasswordPage diff --git a/packages/generator/templates/app/src/app/auth/validations.ts b/packages/generator/templates/app/src/app/auth/validations.ts index f13218b685..b3cb58eae8 100644 --- a/packages/generator/templates/app/src/app/auth/validations.ts +++ b/packages/generator/templates/app/src/app/auth/validations.ts @@ -29,7 +29,7 @@ export const ResetPassword = z .object({ password: password, passwordConfirmation: password, - token: z.string(), + token: z.string().optional(), }) .refine((data) => data.password === data.passwordConfirmation, { message: "Passwords don't match", diff --git a/packages/generator/templates/app/src/app/layout.tsx b/packages/generator/templates/app/src/app/layout.tsx index a021b16970..40cc298f77 100644 --- a/packages/generator/templates/app/src/app/layout.tsx +++ b/packages/generator/templates/app/src/app/layout.tsx @@ -1,4 +1,4 @@ -import "app/styles/globals.css" +import "./styles/globals.css" import {BlitzProvider} from "./blitz-client" import {Inter} from "next/font/google" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1a3292528c..1d33af389f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -50,47 +50,35 @@ importers: specifier: 6.0.1 version: 6.0.1 - apps/next13: + apps/playground: dependencies: "@blitzjs/auth": specifier: 2.0.0-beta.34 version: link:../../packages/blitz-auth - "@blitzjs/config": - specifier: 2.0.0-beta.34 - version: link:../../packages/config "@blitzjs/next": specifier: 2.0.0-beta.34 version: link:../../packages/blitz-next "@blitzjs/rpc": specifier: 2.0.0-beta.34 version: link:../../packages/blitz-rpc - "@hookform/error-message": - specifier: 2.0.0 - version: 2.0.0(react-dom@18.2.0)(react-hook-form@7.39.1)(react@18.2.0) - "@hookform/resolvers": - specifier: 2.9.10 - version: 2.9.10(react-hook-form@7.39.1) "@prisma/client": specifier: ^4.14.0 - version: 4.14.0(prisma@4.6.1) - "@tanstack/react-form": - specifier: 0.0.10 - version: 0.0.10(react-dom@18.2.0)(react@18.2.0) - "@tanstack/react-query": - specifier: 4.0.10 - version: 4.0.10(react-dom@18.2.0)(react@18.2.0) + version: 4.14.0(prisma@4.14.0) blitz: specifier: 2.0.0-beta.34 version: link:../../packages/blitz flatted: specifier: 3.2.7 version: 3.2.7 + formik: + specifier: 2.4.5 + version: 2.4.5(react@18.2.0) next: specifier: 13.5.2 version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) prisma: - specifier: ^4.5.0 - version: 4.6.1 + specifier: ^4.14.0 + version: 4.14.0 react: specifier: 18.2.0 version: 18.2.0 @@ -110,6 +98,9 @@ importers: "@types/node": specifier: 18.11.7 version: 18.11.7 + "@types/preview-email": + specifier: 2.0.1 + version: 2.0.1 "@types/react": specifier: 18.0.23 version: 18.0.23 @@ -122,6 +113,9 @@ importers: eslint-config-next: specifier: 13.0.0 version: 13.0.0(eslint@8.26.0)(typescript@4.8.4) + preview-email: + specifier: 3.0.7 + version: 3.0.7 typescript: specifier: 4.8.4 version: 4.8.4 @@ -959,7 +953,7 @@ importers: version: 8.27.0(supports-color@8.1.1) eslint-config-next: specifier: latest - version: 13.4.19(eslint@8.27.0)(typescript@4.8.4) + version: 13.5.4(eslint@8.27.0)(typescript@4.8.4) eslint-plugin-testing-library: specifier: 5.0.1 version: 5.0.1(eslint@8.27.0)(typescript@4.8.4) @@ -1807,10 +1801,10 @@ importers: dependencies: "@babel/core": specifier: 7.12.10 - version: 7.12.10(supports-color@8.1.1) + version: 7.12.10 "@babel/plugin-proposal-class-properties": specifier: 7.17.12 - version: 7.17.12(@babel/core@7.12.10)(supports-color@8.1.1) + version: 7.17.12(@babel/core@7.12.10) "@babel/plugin-syntax-jsx": specifier: 7.17.12 version: 7.17.12(@babel/core@7.12.10) @@ -1843,14 +1837,14 @@ importers: version: 10.0.1 jscodeshift: specifier: 0.13.0 - version: 0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1) + version: 0.13.0(@babel/preset-env@7.12.10) prompts: specifier: 2.4.2 version: 2.4.2 devDependencies: "@babel/preset-env": specifier: 7.12.10 - version: 7.12.10(@babel/core@7.12.10)(supports-color@8.1.1) + version: 7.12.10(@babel/core@7.12.10) "@blitzjs/config": specifier: 2.0.0-beta.34 version: link:../config @@ -2078,7 +2072,7 @@ importers: version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 - version: 0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1) + version: 0.13.0(@babel/preset-env@7.12.10) devDependencies: "@types/jscodeshift": specifier: 0.11.2 @@ -2091,7 +2085,7 @@ importers: version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 - version: 0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1) + version: 0.13.0(@babel/preset-env@7.12.10) devDependencies: "@types/jscodeshift": specifier: 0.11.2 @@ -2104,7 +2098,7 @@ importers: version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 - version: 0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1) + version: 0.13.0(@babel/preset-env@7.12.10) devDependencies: "@types/jscodeshift": specifier: 0.11.2 @@ -2120,7 +2114,7 @@ importers: version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 - version: 0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1) + version: 0.13.0(@babel/preset-env@7.12.10) devDependencies: "@types/jscodeshift": specifier: 0.11.2 @@ -2136,7 +2130,7 @@ importers: version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 - version: 0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1) + version: 0.13.0(@babel/preset-env@7.12.10) devDependencies: "@types/jscodeshift": specifier: 0.11.2 @@ -2161,7 +2155,7 @@ importers: version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 - version: 0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1) + version: 0.13.0(@babel/preset-env@7.12.10) devDependencies: "@types/jscodeshift": specifier: 0.11.2 @@ -2174,7 +2168,7 @@ importers: version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 - version: 0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1) + version: 0.13.0(@babel/preset-env@7.12.10) uuid: specifier: ^8.3.1 version: 8.3.2 @@ -2190,7 +2184,7 @@ importers: version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 - version: 0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1) + version: 0.13.0(@babel/preset-env@7.12.10) devDependencies: "@types/jscodeshift": specifier: 0.11.2 @@ -2203,7 +2197,7 @@ importers: version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 - version: 0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1) + version: 0.13.0(@babel/preset-env@7.12.10) devDependencies: "@types/jscodeshift": specifier: 0.11.2 @@ -2216,7 +2210,7 @@ importers: version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 - version: 0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1) + version: 0.13.0(@babel/preset-env@7.12.10) devDependencies: "@types/jscodeshift": specifier: 0.11.2 @@ -2244,7 +2238,7 @@ importers: version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 - version: 0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1) + version: 0.13.0(@babel/preset-env@7.12.10) devDependencies: "@types/jscodeshift": specifier: 0.11.2 @@ -2266,7 +2260,7 @@ importers: version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 - version: 0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1) + version: 0.13.0(@babel/preset-env@7.12.10) uuid: specifier: ^8.3.1 version: 8.3.2 @@ -2282,7 +2276,7 @@ importers: version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 - version: 0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1) + version: 0.13.0(@babel/preset-env@7.12.10) devDependencies: "@types/jscodeshift": specifier: 0.11.2 @@ -2295,7 +2289,7 @@ importers: version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 - version: 0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1) + version: 0.13.0(@babel/preset-env@7.12.10) devDependencies: "@types/jscodeshift": specifier: 0.11.2 @@ -2311,7 +2305,7 @@ importers: version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 - version: 0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1) + version: 0.13.0(@babel/preset-env@7.12.10) devDependencies: "@types/jscodeshift": specifier: 0.11.2 @@ -2324,7 +2318,7 @@ importers: version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 - version: 0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1) + version: 0.13.0(@babel/preset-env@7.12.10) devDependencies: "@types/jscodeshift": specifier: 0.11.2 @@ -2340,7 +2334,7 @@ importers: version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 - version: 0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1) + version: 0.13.0(@babel/preset-env@7.12.10) devDependencies: "@types/jscodeshift": specifier: 0.11.2 @@ -2398,7 +2392,7 @@ packages: } engines: {node: ">=6.9.0"} - /@babel/core@7.12.10(supports-color@8.1.1): + /@babel/core@7.12.10: resolution: { integrity: sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w==, @@ -2423,6 +2417,31 @@ packages: transitivePeerDependencies: - supports-color + /@babel/core@7.12.10(supports-color@8.1.1): + resolution: + { + integrity: sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w==, + } + engines: {node: ">=6.9.0"} + dependencies: + "@babel/code-frame": 7.16.7 + "@babel/generator": 7.18.2 + "@babel/helper-module-transforms": 7.18.0(supports-color@8.1.1) + "@babel/helpers": 7.18.2(supports-color@8.1.1) + "@babel/parser": 7.18.4 + "@babel/template": 7.16.7 + "@babel/traverse": 7.18.2(supports-color@8.1.1) + "@babel/types": 7.18.4 + convert-source-map: 1.8.0 + debug: 4.3.3(supports-color@8.1.1) + gensync: 1.0.0-beta.2 + json5: 2.2.1 + lodash: 4.17.21 + semver: 5.7.1 + source-map: 0.5.7 + transitivePeerDependencies: + - supports-color + /@babel/core@7.18.2(supports-color@8.1.1): resolution: { @@ -2569,6 +2588,26 @@ packages: browserslist: 4.21.4 semver: 6.3.0 + /@babel/helper-create-class-features-plugin@7.17.12(@babel/core@7.12.10): + resolution: + { + integrity: sha512-sZoOeUTkFJMyhqCei2+Z+wtH/BehW8NVKQt7IRUQlRiOARuXymJYfN/FCcI8CvVbR0XVyDM6eLFOlR7YtiXnew==, + } + engines: {node: ">=6.9.0"} + peerDependencies: + "@babel/core": ^7.0.0 + dependencies: + "@babel/core": 7.12.10 + "@babel/helper-annotate-as-pure": 7.16.7 + "@babel/helper-environment-visitor": 7.18.2 + "@babel/helper-function-name": 7.17.9 + "@babel/helper-member-expression-to-functions": 7.17.7 + "@babel/helper-optimise-call-expression": 7.16.7 + "@babel/helper-replace-supers": 7.18.2(supports-color@8.1.1) + "@babel/helper-split-export-declaration": 7.16.7 + transitivePeerDependencies: + - supports-color + /@babel/helper-create-class-features-plugin@7.17.12(@babel/core@7.12.10)(supports-color@8.1.1): resolution: { @@ -2588,6 +2627,27 @@ packages: "@babel/helper-split-export-declaration": 7.16.7 transitivePeerDependencies: - supports-color + dev: false + + /@babel/helper-create-class-features-plugin@7.18.0(@babel/core@7.12.10): + resolution: + { + integrity: sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==, + } + engines: {node: ">=6.9.0"} + peerDependencies: + "@babel/core": ^7.0.0 + dependencies: + "@babel/core": 7.12.10 + "@babel/helper-annotate-as-pure": 7.16.7 + "@babel/helper-environment-visitor": 7.18.2 + "@babel/helper-function-name": 7.17.9 + "@babel/helper-member-expression-to-functions": 7.17.7 + "@babel/helper-optimise-call-expression": 7.16.7 + "@babel/helper-replace-supers": 7.18.2(supports-color@8.1.1) + "@babel/helper-split-export-declaration": 7.16.7 + transitivePeerDependencies: + - supports-color /@babel/helper-create-class-features-plugin@7.18.0(@babel/core@7.12.10)(supports-color@8.1.1): resolution: @@ -2608,6 +2668,7 @@ packages: "@babel/helper-split-export-declaration": 7.16.7 transitivePeerDependencies: - supports-color + dev: false /@babel/helper-create-class-features-plugin@7.18.0(@babel/core@7.18.2)(supports-color@8.1.1): resolution: @@ -2982,6 +3043,22 @@ packages: dependencies: "@babel/types": 7.20.2 + /@babel/plugin-proposal-async-generator-functions@7.17.12(@babel/core@7.12.10): + resolution: + { + integrity: sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ==, + } + engines: {node: ">=6.9.0"} + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.12.10 + "@babel/helper-plugin-utils": 7.17.12 + "@babel/helper-remap-async-to-generator": 7.16.8(supports-color@8.1.1) + "@babel/plugin-syntax-async-generators": 7.8.4(@babel/core@7.12.10) + transitivePeerDependencies: + - supports-color + /@babel/plugin-proposal-async-generator-functions@7.17.12(@babel/core@7.12.10)(supports-color@8.1.1): resolution: { @@ -2997,6 +3074,22 @@ packages: "@babel/plugin-syntax-async-generators": 7.8.4(@babel/core@7.12.10) transitivePeerDependencies: - supports-color + dev: false + + /@babel/plugin-proposal-class-properties@7.17.12(@babel/core@7.12.10): + resolution: + { + integrity: sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==, + } + engines: {node: ">=6.9.0"} + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.12.10 + "@babel/helper-create-class-features-plugin": 7.18.0(@babel/core@7.12.10) + "@babel/helper-plugin-utils": 7.17.12 + transitivePeerDependencies: + - supports-color /@babel/plugin-proposal-class-properties@7.17.12(@babel/core@7.12.10)(supports-color@8.1.1): resolution: @@ -3012,6 +3105,7 @@ packages: "@babel/helper-plugin-utils": 7.17.12 transitivePeerDependencies: - supports-color + dev: false /@babel/plugin-proposal-class-properties@7.17.12(@babel/core@7.18.2)(supports-color@8.1.1): resolution: @@ -3179,6 +3273,21 @@ packages: "@babel/plugin-syntax-optional-chaining": 7.8.3(@babel/core@7.18.2) dev: false + /@babel/plugin-proposal-private-methods@7.17.12(@babel/core@7.12.10): + resolution: + { + integrity: sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==, + } + engines: {node: ">=6.9.0"} + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.12.10 + "@babel/helper-create-class-features-plugin": 7.17.12(@babel/core@7.12.10) + "@babel/helper-plugin-utils": 7.17.12 + transitivePeerDependencies: + - supports-color + /@babel/plugin-proposal-private-methods@7.17.12(@babel/core@7.12.10)(supports-color@8.1.1): resolution: { @@ -3193,6 +3302,7 @@ packages: "@babel/helper-plugin-utils": 7.17.12 transitivePeerDependencies: - supports-color + dev: false /@babel/plugin-proposal-unicode-property-regex@7.17.12(@babel/core@7.12.10): resolution: @@ -3226,7 +3336,7 @@ packages: peerDependencies: "@babel/core": ^7.0.0-0 dependencies: - "@babel/core": 7.12.10(supports-color@8.1.1) + "@babel/core": 7.12.10 "@babel/helper-plugin-utils": 7.20.2 /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.12.10): @@ -3283,7 +3393,7 @@ packages: peerDependencies: "@babel/core": ^7.0.0-0 dependencies: - "@babel/core": 7.12.10(supports-color@8.1.1) + "@babel/core": 7.12.10 "@babel/helper-plugin-utils": 7.20.2 /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.12.10): @@ -3306,7 +3416,7 @@ packages: peerDependencies: "@babel/core": ^7.0.0-0 dependencies: - "@babel/core": 7.12.10(supports-color@8.1.1) + "@babel/core": 7.12.10 "@babel/helper-plugin-utils": 7.17.12 /@babel/plugin-syntax-jsx@7.17.12(@babel/core@7.18.2): @@ -3446,7 +3556,7 @@ packages: peerDependencies: "@babel/core": ^7.0.0-0 dependencies: - "@babel/core": 7.12.10(supports-color@8.1.1) + "@babel/core": 7.12.10 "@babel/helper-plugin-utils": 7.17.12 /@babel/plugin-syntax-typescript@7.17.12(@babel/core@7.18.2): @@ -3474,6 +3584,22 @@ packages: "@babel/core": 7.12.10(supports-color@8.1.1) "@babel/helper-plugin-utils": 7.17.12 + /@babel/plugin-transform-async-to-generator@7.17.12(@babel/core@7.12.10): + resolution: + { + integrity: sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ==, + } + engines: {node: ">=6.9.0"} + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.12.10 + "@babel/helper-module-imports": 7.16.7 + "@babel/helper-plugin-utils": 7.17.12 + "@babel/helper-remap-async-to-generator": 7.16.8(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + /@babel/plugin-transform-async-to-generator@7.17.12(@babel/core@7.12.10)(supports-color@8.1.1): resolution: { @@ -3489,6 +3615,7 @@ packages: "@babel/helper-remap-async-to-generator": 7.16.8(supports-color@8.1.1) transitivePeerDependencies: - supports-color + dev: false /@babel/plugin-transform-block-scoped-functions@7.16.7(@babel/core@7.12.10): resolution: @@ -3514,6 +3641,27 @@ packages: "@babel/core": 7.12.10(supports-color@8.1.1) "@babel/helper-plugin-utils": 7.17.12 + /@babel/plugin-transform-classes@7.18.4(@babel/core@7.12.10): + resolution: + { + integrity: sha512-e42NSG2mlKWgxKUAD9EJJSkZxR67+wZqzNxLSpc51T8tRU5SLFHsPmgYR5yr7sdgX4u+iHA1C5VafJ6AyImV3A==, + } + engines: {node: ">=6.9.0"} + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.12.10 + "@babel/helper-annotate-as-pure": 7.16.7 + "@babel/helper-environment-visitor": 7.18.2 + "@babel/helper-function-name": 7.17.9 + "@babel/helper-optimise-call-expression": 7.16.7 + "@babel/helper-plugin-utils": 7.17.12 + "@babel/helper-replace-supers": 7.18.2(supports-color@8.1.1) + "@babel/helper-split-export-declaration": 7.16.7 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + /@babel/plugin-transform-classes@7.18.4(@babel/core@7.12.10)(supports-color@8.1.1): resolution: { @@ -3534,6 +3682,7 @@ packages: globals: 11.12.0 transitivePeerDependencies: - supports-color + dev: false /@babel/plugin-transform-computed-properties@7.17.12(@babel/core@7.12.10): resolution: @@ -3661,6 +3810,22 @@ packages: "@babel/core": 7.12.10(supports-color@8.1.1) "@babel/helper-plugin-utils": 7.17.12 + /@babel/plugin-transform-modules-amd@7.18.0(@babel/core@7.12.10): + resolution: + { + integrity: sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==, + } + engines: {node: ">=6.9.0"} + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.12.10 + "@babel/helper-module-transforms": 7.18.0(supports-color@8.1.1) + "@babel/helper-plugin-utils": 7.17.12 + babel-plugin-dynamic-import-node: 2.3.3 + transitivePeerDependencies: + - supports-color + /@babel/plugin-transform-modules-amd@7.18.0(@babel/core@7.12.10)(supports-color@8.1.1): resolution: { @@ -3676,6 +3841,24 @@ packages: babel-plugin-dynamic-import-node: 2.3.3 transitivePeerDependencies: - supports-color + dev: false + + /@babel/plugin-transform-modules-commonjs@7.18.2(@babel/core@7.12.10): + resolution: + { + integrity: sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==, + } + engines: {node: ">=6.9.0"} + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.12.10 + "@babel/helper-module-transforms": 7.18.0(supports-color@8.1.1) + "@babel/helper-plugin-utils": 7.17.12 + "@babel/helper-simple-access": 7.18.2 + babel-plugin-dynamic-import-node: 2.3.3 + transitivePeerDependencies: + - supports-color /@babel/plugin-transform-modules-commonjs@7.18.2(@babel/core@7.12.10)(supports-color@8.1.1): resolution: @@ -3693,6 +3876,7 @@ packages: babel-plugin-dynamic-import-node: 2.3.3 transitivePeerDependencies: - supports-color + dev: false /@babel/plugin-transform-modules-commonjs@7.18.2(@babel/core@7.18.2)(supports-color@8.1.1): resolution: @@ -3712,6 +3896,24 @@ packages: - supports-color dev: false + /@babel/plugin-transform-modules-systemjs@7.18.4(@babel/core@7.12.10): + resolution: + { + integrity: sha512-lH2UaQaHVOAeYrUUuZ8i38o76J/FnO8vu21OE+tD1MyP9lxdZoSfz+pDbWkq46GogUrdrMz3tiz/FYGB+bVThg==, + } + engines: {node: ">=6.9.0"} + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.12.10 + "@babel/helper-hoist-variables": 7.16.7 + "@babel/helper-module-transforms": 7.18.0(supports-color@8.1.1) + "@babel/helper-plugin-utils": 7.17.12 + "@babel/helper-validator-identifier": 7.16.7 + babel-plugin-dynamic-import-node: 2.3.3 + transitivePeerDependencies: + - supports-color + /@babel/plugin-transform-modules-systemjs@7.18.4(@babel/core@7.12.10)(supports-color@8.1.1): resolution: { @@ -3729,6 +3931,22 @@ packages: babel-plugin-dynamic-import-node: 2.3.3 transitivePeerDependencies: - supports-color + dev: false + + /@babel/plugin-transform-modules-umd@7.18.0(@babel/core@7.12.10): + resolution: + { + integrity: sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==, + } + engines: {node: ">=6.9.0"} + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.12.10 + "@babel/helper-module-transforms": 7.18.0(supports-color@8.1.1) + "@babel/helper-plugin-utils": 7.17.12 + transitivePeerDependencies: + - supports-color /@babel/plugin-transform-modules-umd@7.18.0(@babel/core@7.12.10)(supports-color@8.1.1): resolution: @@ -3744,6 +3962,7 @@ packages: "@babel/helper-plugin-utils": 7.17.12 transitivePeerDependencies: - supports-color + dev: false /@babel/plugin-transform-named-capturing-groups-regex@7.17.12(@babel/core@7.12.10): resolution: @@ -3770,7 +3989,7 @@ packages: "@babel/core": 7.12.10(supports-color@8.1.1) "@babel/helper-plugin-utils": 7.17.12 - /@babel/plugin-transform-object-super@7.16.7(@babel/core@7.12.10)(supports-color@8.1.1): + /@babel/plugin-transform-object-super@7.16.7(@babel/core@7.12.10): resolution: { integrity: sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==, @@ -3779,16 +3998,16 @@ packages: peerDependencies: "@babel/core": ^7.0.0-0 dependencies: - "@babel/core": 7.12.10(supports-color@8.1.1) + "@babel/core": 7.12.10 "@babel/helper-plugin-utils": 7.17.12 "@babel/helper-replace-supers": 7.18.2(supports-color@8.1.1) transitivePeerDependencies: - supports-color - /@babel/plugin-transform-parameters@7.17.12(@babel/core@7.12.10): + /@babel/plugin-transform-object-super@7.16.7(@babel/core@7.12.10)(supports-color@8.1.1): resolution: { - integrity: sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==, + integrity: sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==, } engines: {node: ">=6.9.0"} peerDependencies: @@ -3796,8 +4015,24 @@ packages: dependencies: "@babel/core": 7.12.10(supports-color@8.1.1) "@babel/helper-plugin-utils": 7.17.12 - - /@babel/plugin-transform-property-literals@7.16.7(@babel/core@7.12.10): + "@babel/helper-replace-supers": 7.18.2(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/plugin-transform-parameters@7.17.12(@babel/core@7.12.10): + resolution: + { + integrity: sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==, + } + engines: {node: ">=6.9.0"} + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.12.10(supports-color@8.1.1) + "@babel/helper-plugin-utils": 7.17.12 + + /@babel/plugin-transform-property-literals@7.16.7(@babel/core@7.12.10): resolution: { integrity: sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==, @@ -4065,6 +4300,84 @@ packages: "@babel/helper-create-regexp-features-plugin": 7.17.12(@babel/core@7.12.10) "@babel/helper-plugin-utils": 7.17.12 + /@babel/preset-env@7.12.10(@babel/core@7.12.10): + resolution: + { + integrity: sha512-Gz9hnBT/tGeTE2DBNDkD7BiWRELZt+8lSysHuDwmYXUIvtwZl0zI+D6mZgXZX0u8YBlLS4tmai9ONNY9tjRgRA==, + } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/compat-data": 7.17.10 + "@babel/core": 7.12.10 + "@babel/helper-compilation-targets": 7.18.2(@babel/core@7.12.10) + "@babel/helper-module-imports": 7.16.7 + "@babel/helper-plugin-utils": 7.17.12 + "@babel/helper-validator-option": 7.16.7 + "@babel/plugin-proposal-async-generator-functions": 7.17.12(@babel/core@7.12.10) + "@babel/plugin-proposal-class-properties": 7.17.12(@babel/core@7.12.10) + "@babel/plugin-proposal-dynamic-import": 7.16.7(@babel/core@7.12.10) + "@babel/plugin-proposal-export-namespace-from": 7.17.12(@babel/core@7.12.10) + "@babel/plugin-proposal-json-strings": 7.17.12(@babel/core@7.12.10) + "@babel/plugin-proposal-logical-assignment-operators": 7.17.12(@babel/core@7.12.10) + "@babel/plugin-proposal-nullish-coalescing-operator": 7.17.12(@babel/core@7.12.10) + "@babel/plugin-proposal-numeric-separator": 7.16.7(@babel/core@7.12.10) + "@babel/plugin-proposal-object-rest-spread": 7.18.0(@babel/core@7.12.10) + "@babel/plugin-proposal-optional-catch-binding": 7.16.7(@babel/core@7.12.10) + "@babel/plugin-proposal-optional-chaining": 7.17.12(@babel/core@7.12.10) + "@babel/plugin-proposal-private-methods": 7.17.12(@babel/core@7.12.10) + "@babel/plugin-proposal-unicode-property-regex": 7.17.12(@babel/core@7.12.10) + "@babel/plugin-syntax-async-generators": 7.8.4(@babel/core@7.12.10) + "@babel/plugin-syntax-class-properties": 7.12.13(@babel/core@7.12.10) + "@babel/plugin-syntax-dynamic-import": 7.8.3(@babel/core@7.12.10) + "@babel/plugin-syntax-export-namespace-from": 7.8.3(@babel/core@7.12.10) + "@babel/plugin-syntax-json-strings": 7.8.3(@babel/core@7.12.10) + "@babel/plugin-syntax-logical-assignment-operators": 7.10.4(@babel/core@7.12.10) + "@babel/plugin-syntax-nullish-coalescing-operator": 7.8.3(@babel/core@7.12.10) + "@babel/plugin-syntax-numeric-separator": 7.10.4(@babel/core@7.12.10) + "@babel/plugin-syntax-object-rest-spread": 7.8.3(@babel/core@7.12.10) + "@babel/plugin-syntax-optional-catch-binding": 7.8.3(@babel/core@7.12.10) + "@babel/plugin-syntax-optional-chaining": 7.8.3(@babel/core@7.12.10) + "@babel/plugin-syntax-top-level-await": 7.14.5(@babel/core@7.12.10) + "@babel/plugin-transform-arrow-functions": 7.17.12(@babel/core@7.12.10) + "@babel/plugin-transform-async-to-generator": 7.17.12(@babel/core@7.12.10) + "@babel/plugin-transform-block-scoped-functions": 7.16.7(@babel/core@7.12.10) + "@babel/plugin-transform-block-scoping": 7.18.4(@babel/core@7.12.10) + "@babel/plugin-transform-classes": 7.18.4(@babel/core@7.12.10) + "@babel/plugin-transform-computed-properties": 7.17.12(@babel/core@7.12.10) + "@babel/plugin-transform-destructuring": 7.18.0(@babel/core@7.12.10) + "@babel/plugin-transform-dotall-regex": 7.16.7(@babel/core@7.12.10) + "@babel/plugin-transform-duplicate-keys": 7.17.12(@babel/core@7.12.10) + "@babel/plugin-transform-exponentiation-operator": 7.16.7(@babel/core@7.12.10) + "@babel/plugin-transform-for-of": 7.18.1(@babel/core@7.12.10) + "@babel/plugin-transform-function-name": 7.16.7(@babel/core@7.12.10) + "@babel/plugin-transform-literals": 7.17.12(@babel/core@7.12.10) + "@babel/plugin-transform-member-expression-literals": 7.16.7(@babel/core@7.12.10) + "@babel/plugin-transform-modules-amd": 7.18.0(@babel/core@7.12.10) + "@babel/plugin-transform-modules-commonjs": 7.18.2(@babel/core@7.12.10) + "@babel/plugin-transform-modules-systemjs": 7.18.4(@babel/core@7.12.10) + "@babel/plugin-transform-modules-umd": 7.18.0(@babel/core@7.12.10) + "@babel/plugin-transform-named-capturing-groups-regex": 7.17.12(@babel/core@7.12.10) + "@babel/plugin-transform-new-target": 7.17.12(@babel/core@7.12.10) + "@babel/plugin-transform-object-super": 7.16.7(@babel/core@7.12.10) + "@babel/plugin-transform-parameters": 7.17.12(@babel/core@7.12.10) + "@babel/plugin-transform-property-literals": 7.16.7(@babel/core@7.12.10) + "@babel/plugin-transform-regenerator": 7.18.0(@babel/core@7.12.10) + "@babel/plugin-transform-reserved-words": 7.17.12(@babel/core@7.12.10) + "@babel/plugin-transform-shorthand-properties": 7.16.7(@babel/core@7.12.10) + "@babel/plugin-transform-spread": 7.17.12(@babel/core@7.12.10) + "@babel/plugin-transform-sticky-regex": 7.16.7(@babel/core@7.12.10) + "@babel/plugin-transform-template-literals": 7.18.2(@babel/core@7.12.10) + "@babel/plugin-transform-typeof-symbol": 7.17.12(@babel/core@7.12.10) + "@babel/plugin-transform-unicode-escapes": 7.16.7(@babel/core@7.12.10) + "@babel/plugin-transform-unicode-regex": 7.16.7(@babel/core@7.12.10) + "@babel/preset-modules": 0.1.6(@babel/core@7.12.10) + "@babel/types": 7.17.12 + core-js-compat: 3.22.5 + semver: 5.7.1 + transitivePeerDependencies: + - supports-color + /@babel/preset-env@7.12.10(@babel/core@7.12.10)(supports-color@8.1.1): resolution: { @@ -4142,6 +4455,7 @@ packages: semver: 5.7.1 transitivePeerDependencies: - supports-color + dev: false /@babel/preset-flow@7.17.12(@babel/core@7.18.2): resolution: @@ -4226,6 +4540,16 @@ packages: dependencies: regenerator-runtime: 0.13.9 + /@babel/runtime@7.23.2: + resolution: + { + integrity: sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==, + } + engines: {node: ">=6.9.0"} + dependencies: + regenerator-runtime: 0.14.0 + dev: true + /@babel/standalone@7.18.9: resolution: { @@ -5056,7 +5380,7 @@ packages: glob: 7.2.0 graceful-fs: 4.2.10 istanbul-lib-coverage: 3.2.0 - istanbul-lib-instrument: 5.2.0(supports-color@8.1.1) + istanbul-lib-instrument: 5.2.0 istanbul-lib-report: 3.0.0 istanbul-lib-source-maps: 4.0.1(supports-color@8.1.1) istanbul-reports: 3.1.4 @@ -5187,10 +5511,10 @@ packages: } engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - "@babel/core": 7.12.10(supports-color@8.1.1) + "@babel/core": 7.12.10 "@jest/types": 29.2.1 "@jridgewell/trace-mapping": 0.3.17 - babel-plugin-istanbul: 6.1.1(supports-color@8.1.1) + babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 convert-source-map: 2.0.0 fast-json-stable-stringify: 2.1.0 @@ -5419,10 +5743,10 @@ packages: glob: 7.1.7 dev: true - /@next/eslint-plugin-next@13.4.19: + /@next/eslint-plugin-next@13.5.4: resolution: { - integrity: sha512-N/O+zGb6wZQdwu6atMZHbR7T9Np5SUFUjZqCbj0sXm+MwQO35M8TazVB4otm87GkXYs2l6OPwARd3/PUWhZBVQ==, + integrity: sha512-vI94U+D7RNgX6XypSyjeFrOzxGlZyxOplU0dVE5norIfZGn/LDjJYPHdvdsR5vN1eRtl6PDAsOHmycFEOljK5A==, } dependencies: glob: 7.1.7 @@ -5581,6 +5905,7 @@ packages: picocolors: 1.0.0 tiny-glob: 0.2.9 tslib: 2.4.0 + dev: true /@polka/url@1.0.0-next.21: resolution: @@ -5589,7 +5914,7 @@ packages: } dev: true - /@prisma/client@4.14.0(prisma@4.6.1): + /@prisma/client@4.14.0(prisma@4.14.0): resolution: { integrity: sha512-MK/XaA2sFdfaOa7I9MjNKz6dxeIEdeZlnpNRoF2w3JuRLlFJLkpp6cD3yaqw2nUUhbrn3Iqe3ZpVV+VuGGil7Q==, @@ -5603,7 +5928,7 @@ packages: optional: true dependencies: "@prisma/engines-version": 4.14.0-67.d9a4c5988f480fa576d43970d5a23641aa77bc9c - prisma: 4.6.1 + prisma: 4.14.0 dev: false /@prisma/client@4.6.1(prisma@4.6.1): @@ -5637,6 +5962,14 @@ packages: } dev: false + /@prisma/engines@4.14.0: + resolution: + { + integrity: sha512-PDNlhP/1vyTgmNyiucGqGCdXIp7HIkkvKO50si3y3PcceeHvqtiKPaH1iJdz63jCWMVMbj2MElSxXPOeBvEVIQ==, + } + requiresBuild: true + dev: false + /@prisma/engines@4.6.1: resolution: { @@ -5679,7 +6012,7 @@ packages: glob: 7.2.0 is-reference: 1.2.1 magic-string: 0.25.9 - resolve: 1.22.1 + resolve: 1.22.8 rollup: 2.77.2 dev: true @@ -5698,7 +6031,7 @@ packages: glob: 7.2.0 is-reference: 1.2.1 magic-string: 0.25.9 - resolve: 1.22.1 + resolve: 1.22.8 rollup: 2.77.2 dev: true @@ -5728,7 +6061,7 @@ packages: deepmerge: 4.2.2 is-builtin-module: 3.1.0 is-module: 1.0.0 - resolve: 1.22.1 + resolve: 1.22.8 rollup: 2.77.2 dev: true @@ -5790,6 +6123,13 @@ packages: integrity: sha512-WiBSI6JBIhC6LRIsB2Kwh8DsGTlbBU+mLRxJmAe3LjHTdkDpwIbEOZgoXBbZilk/vlfjK8i6nKRAvIRn1XaIMw==, } + /@rushstack/eslint-patch@1.5.1: + resolution: + { + integrity: sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA==, + } + dev: true + /@selderee/plugin-htmlparser2@0.6.0: resolution: { @@ -6108,15 +6448,6 @@ packages: defer-to-connect: 2.0.1 dev: false - /@tanstack/form-core@0.0.9: - resolution: - { - integrity: sha512-r6iPdnOA0YpT+XsbYAmCX6y7RyYa4kNAmD/MlMxLoQkyLl6TTJg5W6H6JDD7t6EuN20AoNPdVU1zofCS81p5dw==, - } - dependencies: - "@tanstack/store": 0.0.1-beta.84 - dev: false - /@tanstack/query-core@4.13.0: resolution: { @@ -6130,27 +6461,6 @@ packages: integrity: sha512-9dqjv9eeB6VHN7lD3cLo16ZAjfjCsdXetSAD5+VyKqLUvcKTL0CklGQRJu+bWzdrS69R6Ea4UZo8obHYZnG6aA==, } - /@tanstack/react-form@0.0.10(react-dom@18.2.0)(react@18.2.0): - resolution: - { - integrity: sha512-X7GZRSK3OLs42wGkJ/ahHVKMgdeBZZn6OEiHhbB57wWBV7I4JgCndrFp8vXtLQDz5+Pz03qTo0qD8X1nFV9agA==, - } - peerDependencies: - react: ^17.0.0 || ^18.0.0 - react-dom: ^17.0.0 || ^18.0.0 - react-native: "*" - peerDependenciesMeta: - react-dom: - optional: true - react-native: - optional: true - dependencies: - "@tanstack/form-core": 0.0.9 - "@tanstack/react-store": 0.0.1-beta.84(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@tanstack/react-query@4.0.10(react-dom@18.2.0)(react@18.2.0): resolution: { @@ -6215,30 +6525,6 @@ packages: use-sync-external-store: 1.2.0(react@18.2.0) dev: false - /@tanstack/react-store@0.0.1-beta.84(react-dom@18.2.0)(react@18.2.0): - resolution: - { - integrity: sha512-NHCt8pPjcwENwMPnaXdu1ZdvpE/u6JJdZwl/5aKxX9gW4XtLvpNEXHq1KyuOMk2ZfWInW2cuDsDsK5+iZARhrg==, - } - engines: {node: ">=12"} - peerDependencies: - react: ">=16" - react-dom: ">=16" - dependencies: - "@tanstack/store": 0.0.1-beta.84 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - use-sync-external-store: 1.2.0(react@18.2.0) - dev: false - - /@tanstack/store@0.0.1-beta.84: - resolution: - { - integrity: sha512-sqE4U8b/bNxXLrm5uoDET7glaZvThn0FPNperVNZV+XXwkJUFcc+/KH7n1MwCi7Y/76FeMpKWLRmEx9KhZbq3A==, - } - engines: {node: ">=12"} - dev: false - /@testim/chrome-version@1.1.2: resolution: { @@ -7334,7 +7620,7 @@ packages: "@typescript-eslint/scope-manager": 5.9.1 "@typescript-eslint/types": 5.9.1 "@typescript-eslint/typescript-estree": 5.9.1(supports-color@8.1.1)(typescript@4.8.4) - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.3(supports-color@8.1.1) eslint: 8.27.0(supports-color@8.1.1) typescript: 4.8.4 transitivePeerDependencies: @@ -7906,6 +8192,15 @@ packages: engines: {node: ">=6.0"} dev: true + /aria-query@5.3.0: + resolution: + { + integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==, + } + dependencies: + dequal: 2.0.3 + dev: true + /arr-diff@4.0.0: resolution: { @@ -7930,6 +8225,16 @@ packages: engines: {node: ">=0.10.0"} dev: false + /array-buffer-byte-length@1.0.0: + resolution: + { + integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==, + } + dependencies: + call-bind: 1.0.2 + is-array-buffer: 3.0.2 + dev: true + /array-differ@3.0.0: resolution: { @@ -7954,6 +8259,20 @@ packages: get-intrinsic: 1.1.1 is-string: 1.0.7 + /array-includes@3.1.7: + resolution: + { + integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==, + } + engines: {node: ">= 0.4"} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + is-string: 1.0.7 + dev: true + /array-union@1.0.2: resolution: { @@ -7987,6 +8306,20 @@ packages: engines: {node: ">=0.10.0"} dev: false + /array.prototype.findlastindex@1.2.3: + resolution: + { + integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==, + } + engines: {node: ">= 0.4"} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + es-shim-unscopables: 1.0.0 + get-intrinsic: 1.2.1 + dev: true + /array.prototype.flat@1.3.0: resolution: { @@ -7999,6 +8332,19 @@ packages: es-abstract: 1.20.1 es-shim-unscopables: 1.0.0 + /array.prototype.flat@1.3.2: + resolution: + { + integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==, + } + engines: {node: ">= 0.4"} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + es-shim-unscopables: 1.0.0 + dev: true + /array.prototype.flatmap@1.3.0: resolution: { @@ -8011,6 +8357,48 @@ packages: es-abstract: 1.20.1 es-shim-unscopables: 1.0.0 + /array.prototype.flatmap@1.3.2: + resolution: + { + integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==, + } + engines: {node: ">= 0.4"} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + es-shim-unscopables: 1.0.0 + dev: true + + /array.prototype.tosorted@1.1.2: + resolution: + { + integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==, + } + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + es-shim-unscopables: 1.0.0 + get-intrinsic: 1.2.1 + dev: true + + /arraybuffer.prototype.slice@1.0.2: + resolution: + { + integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==, + } + engines: {node: ">= 0.4"} + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + is-array-buffer: 3.0.2 + is-shared-array-buffer: 1.0.2 + dev: true + /arrify@1.0.1: resolution: { @@ -8090,6 +8478,15 @@ packages: } dev: false + /asynciterator.prototype@1.0.0: + resolution: + { + integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==, + } + dependencies: + has-symbols: 1.0.3 + dev: true + /asynckit@0.4.0: resolution: { @@ -8120,6 +8517,14 @@ packages: engines: {node: ">=8"} dev: false + /available-typed-arrays@1.0.5: + resolution: + { + integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==, + } + engines: {node: ">= 0.4"} + dev: true + /axe-core@4.4.2: resolution: { @@ -8127,6 +8532,14 @@ packages: } engines: {node: ">=12"} + /axe-core@4.8.2: + resolution: + { + integrity: sha512-/dlp0fxyM3R8YW7MFzaHWXrf4zzbr0vaYb23VBFCl83R7nWNPg/yaQw2Dc8jzCMmDVLhSdzH8MjrsuIUuvX+6g==, + } + engines: {node: ">=4"} + dev: true + /axios@0.24.0: resolution: { @@ -8155,6 +8568,15 @@ packages: integrity: sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==, } + /axobject-query@3.2.1: + resolution: + { + integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==, + } + dependencies: + dequal: 2.0.3 + dev: true + /b64-lite@1.4.0: resolution: { @@ -8205,10 +8627,10 @@ packages: peerDependencies: "@babel/core": ^7.8.0 dependencies: - "@babel/core": 7.12.10(supports-color@8.1.1) + "@babel/core": 7.12.10 "@jest/transform": 29.3.0 "@types/babel__core": 7.1.19 - babel-plugin-istanbul: 6.1.1(supports-color@8.1.1) + babel-plugin-istanbul: 6.1.1 babel-preset-jest: 29.2.0(@babel/core@7.12.10) chalk: 4.1.2 graceful-fs: 4.2.10 @@ -8224,6 +8646,21 @@ packages: dependencies: object.assign: 4.1.2 + /babel-plugin-istanbul@6.1.1: + resolution: + { + integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==, + } + engines: {node: ">=8"} + dependencies: + "@babel/helper-plugin-utils": 7.20.2 + "@istanbuljs/load-nyc-config": 1.1.0 + "@istanbuljs/schema": 0.1.3 + istanbul-lib-instrument: 5.2.0 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color + /babel-plugin-istanbul@6.1.1(supports-color@8.1.1): resolution: { @@ -8238,6 +8675,7 @@ packages: test-exclude: 6.0.0 transitivePeerDependencies: - supports-color + dev: true /babel-plugin-jest-hoist@27.5.1: resolution: @@ -8309,7 +8747,7 @@ packages: peerDependencies: "@babel/core": ^7.0.0 dependencies: - "@babel/core": 7.12.10(supports-color@8.1.1) + "@babel/core": 7.12.10 babel-plugin-jest-hoist: 29.2.0 babel-preset-current-node-syntax: 1.0.1(@babel/core@7.12.10) @@ -8535,7 +8973,7 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001339 + caniuse-lite: 1.0.30001434 electron-to-chromium: 1.4.146 escalade: 3.1.1 node-releases: 2.0.5 @@ -8749,12 +9187,6 @@ packages: engines: {node: ">=14.16"} dev: false - /caniuse-lite@1.0.30001339: - resolution: - { - integrity: sha512-Es8PiVqCe+uXdms0Gu5xP5PF2bxLR7OBp3wUzUnuO7OHzhOfCyg3hdiGWVPVxhiuniOzng+hTc1u3fEQ0TlkSQ==, - } - /caniuse-lite@1.0.30001434: resolution: { @@ -9745,6 +10177,14 @@ packages: integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, } + /deepmerge@2.2.1: + resolution: + { + integrity: sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==, + } + engines: {node: ">=0.10.0"} + dev: false + /deepmerge@4.2.2: resolution: { @@ -9776,12 +10216,25 @@ packages: engines: {node: ">=10"} dev: false + /define-data-property@1.1.1: + resolution: + { + integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==, + } + engines: {node: ">= 0.4"} + dependencies: + get-intrinsic: 1.2.1 + gopd: 1.0.1 + has-property-descriptors: 1.0.0 + dev: true + /define-lazy-prop@2.0.0: resolution: { integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==, } engines: {node: ">=8"} + dev: true /define-properties@1.1.4: resolution: @@ -9793,6 +10246,18 @@ packages: has-property-descriptors: 1.0.0 object-keys: 1.1.1 + /define-properties@1.2.1: + resolution: + { + integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==, + } + engines: {node: ">= 0.4"} + dependencies: + define-data-property: 1.1.1 + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: true + /define-property@0.2.5: resolution: { @@ -9885,6 +10350,14 @@ packages: engines: {node: ">= 0.8"} dev: false + /dequal@2.0.3: + resolution: + { + integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==, + } + engines: {node: ">=6"} + dev: true + /destroy@1.0.4: resolution: { @@ -10222,6 +10695,7 @@ packages: dependencies: graceful-fs: 4.2.10 tapable: 2.2.1 + dev: true /enquirer@2.3.6: resolution: @@ -10295,6 +10769,76 @@ packages: string.prototype.trimstart: 1.0.5 unbox-primitive: 1.0.2 + /es-abstract@1.22.2: + resolution: + { + integrity: sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==, + } + engines: {node: ">= 0.4"} + dependencies: + array-buffer-byte-length: 1.0.0 + arraybuffer.prototype.slice: 1.0.2 + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + es-set-tostringtag: 2.0.1 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.1 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has: 1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + is-array-buffer: 3.0.2 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.12 + is-weakref: 1.0.2 + object-inspect: 1.13.0 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.1 + safe-array-concat: 1.0.1 + safe-regex-test: 1.0.0 + string.prototype.trim: 1.2.8 + string.prototype.trimend: 1.0.7 + string.prototype.trimstart: 1.0.7 + typed-array-buffer: 1.0.0 + typed-array-byte-length: 1.0.0 + typed-array-byte-offset: 1.0.0 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.11 + dev: true + + /es-iterator-helpers@1.0.15: + resolution: + { + integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==, + } + dependencies: + asynciterator.prototype: 1.0.0 + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + es-set-tostringtag: 2.0.1 + function-bind: 1.1.1 + get-intrinsic: 1.2.1 + globalthis: 1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + iterator.prototype: 1.1.2 + safe-array-concat: 1.0.1 + dev: true + /es-module-lexer@0.9.3: resolution: { @@ -10302,6 +10846,18 @@ packages: } dev: true + /es-set-tostringtag@2.0.1: + resolution: + { + integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==, + } + engines: {node: ">= 0.4"} + dependencies: + get-intrinsic: 1.2.1 + has: 1.0.3 + has-tostringtag: 1.0.0 + dev: true + /es-shim-unscopables@1.0.0: resolution: { @@ -11253,10 +11809,10 @@ packages: - supports-color dev: true - /eslint-config-next@13.4.19(eslint@8.27.0)(typescript@4.8.4): + /eslint-config-next@13.5.4(eslint@8.27.0)(typescript@4.8.4): resolution: { - integrity: sha512-WE8367sqMnjhWHvR5OivmfwENRQ1ixfNE9hZwQqNCsd+iM3KnuMc1V8Pt6ytgjxjf23D+xbesADv9x3xaKfT3g==, + integrity: sha512-FzQGIj4UEszRX7fcRSJK6L1LrDiVZvDFW320VVntVKh3BSU8Fb9kpaoxQx0cdFgf3MQXdeSbrCXJ/5Z/NndDkQ==, } peerDependencies: eslint: ^7.23.0 || ^8.0.0 @@ -11265,15 +11821,15 @@ packages: typescript: optional: true dependencies: - "@next/eslint-plugin-next": 13.4.19 - "@rushstack/eslint-patch": 1.1.3 + "@next/eslint-plugin-next": 13.5.4 + "@rushstack/eslint-patch": 1.5.1 "@typescript-eslint/parser": 5.9.1(eslint@8.27.0)(supports-color@8.1.1)(typescript@4.8.4) eslint: 8.27.0(supports-color@8.1.1) - eslint-import-resolver-node: 0.3.6 - eslint-import-resolver-typescript: 3.5.2(eslint-plugin-import@2.26.0)(eslint@8.27.0) - eslint-plugin-import: 2.26.0(@typescript-eslint/parser@5.9.1)(eslint-import-resolver-typescript@3.5.2)(eslint@8.27.0) - eslint-plugin-jsx-a11y: 6.5.1(eslint@8.27.0) - eslint-plugin-react: 7.31.8(eslint@8.27.0) + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.5.2(eslint-plugin-import@2.28.1)(eslint@8.27.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.9.1)(eslint-import-resolver-typescript@3.5.2)(eslint@8.27.0) + eslint-plugin-jsx-a11y: 6.7.1(eslint@8.27.0) + eslint-plugin-react: 7.33.2(eslint@8.27.0) eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@8.27.0) typescript: 4.8.4 transitivePeerDependencies: @@ -11303,6 +11859,19 @@ packages: transitivePeerDependencies: - supports-color + /eslint-import-resolver-node@0.3.9: + resolution: + { + integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==, + } + dependencies: + debug: 3.2.7(supports-color@8.1.1) + is-core-module: 2.13.0 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + dev: true + /eslint-import-resolver-typescript@2.7.1(eslint-plugin-import@2.26.0)(eslint@8.26.0): resolution: { @@ -11344,7 +11913,7 @@ packages: transitivePeerDependencies: - supports-color - /eslint-import-resolver-typescript@3.5.2(eslint-plugin-import@2.26.0)(eslint@8.27.0): + /eslint-import-resolver-typescript@3.5.2(eslint-plugin-import@2.28.1)(eslint@8.27.0): resolution: { integrity: sha512-zX4ebnnyXiykjhcBvKIf5TNvt8K7yX6bllTRZ14MiurKPjDpCAZujlszTdB8pcNXhZcOf+god4s9SjQa5GnytQ==, @@ -11357,16 +11926,47 @@ packages: debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.11.0 eslint: 8.27.0(supports-color@8.1.1) - eslint-plugin-import: 2.26.0(@typescript-eslint/parser@5.9.1)(eslint-import-resolver-typescript@3.5.2)(eslint@8.27.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.9.1)(eslint-import-resolver-typescript@3.5.2)(eslint@8.27.0) get-tsconfig: 4.2.0 globby: 13.1.2 - is-core-module: 2.11.0 + is-core-module: 2.13.0 is-glob: 4.0.3 synckit: 0.8.4 transitivePeerDependencies: - supports-color + dev: true + + /eslint-module-utils@2.7.3(@typescript-eslint/parser@5.43.0)(eslint-import-resolver-node@0.3.6)(eslint-import-resolver-typescript@2.7.1): + resolution: + { + integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==, + } + engines: {node: ">=4"} + peerDependencies: + "@typescript-eslint/parser": "*" + eslint-import-resolver-node: "*" + eslint-import-resolver-typescript: "*" + eslint-import-resolver-webpack: "*" + peerDependenciesMeta: + "@typescript-eslint/parser": + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + "@typescript-eslint/parser": 5.43.0(eslint@8.27.0)(typescript@4.8.4) + debug: 3.2.7(supports-color@8.1.1) + eslint-import-resolver-node: 0.3.6 + eslint-import-resolver-typescript: 2.7.1(eslint-plugin-import@2.26.0)(eslint@8.27.0) + find-up: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: true - /eslint-module-utils@2.7.3(@typescript-eslint/parser@5.9.1)(eslint-import-resolver-node@0.3.6)(eslint-import-resolver-typescript@3.5.2): + /eslint-module-utils@2.7.3(@typescript-eslint/parser@5.9.1)(eslint-import-resolver-node@0.3.6): resolution: { integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==, @@ -11390,11 +11990,43 @@ packages: "@typescript-eslint/parser": 5.9.1(eslint@8.27.0)(supports-color@8.1.1)(typescript@4.8.4) debug: 3.2.7(supports-color@8.1.1) eslint-import-resolver-node: 0.3.6 - eslint-import-resolver-typescript: 3.5.2(eslint-plugin-import@2.26.0)(eslint@8.27.0) find-up: 2.1.0 transitivePeerDependencies: - supports-color + /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.9.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.5.2)(eslint@8.27.0): + resolution: + { + integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==, + } + engines: {node: ">=4"} + peerDependencies: + "@typescript-eslint/parser": "*" + eslint: "*" + eslint-import-resolver-node: "*" + eslint-import-resolver-typescript: "*" + eslint-import-resolver-webpack: "*" + peerDependenciesMeta: + "@typescript-eslint/parser": + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + "@typescript-eslint/parser": 5.9.1(eslint@8.27.0)(supports-color@8.1.1)(typescript@4.8.4) + debug: 3.2.7(supports-color@8.1.1) + eslint: 8.27.0(supports-color@8.1.1) + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.5.2(eslint-plugin-import@2.28.1)(eslint@8.27.0) + transitivePeerDependencies: + - supports-color + dev: true + /eslint-plugin-import@2.26.0(@typescript-eslint/parser@5.43.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.26.0): resolution: { @@ -11415,7 +12047,7 @@ packages: doctrine: 2.1.0 eslint: 8.26.0 eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.3(@typescript-eslint/parser@5.9.1)(eslint-import-resolver-node@0.3.6)(eslint-import-resolver-typescript@3.5.2) + eslint-module-utils: 2.7.3(@typescript-eslint/parser@5.43.0)(eslint-import-resolver-node@0.3.6)(eslint-import-resolver-typescript@2.7.1) has: 1.0.3 is-core-module: 2.11.0 is-glob: 4.0.3 @@ -11429,7 +12061,7 @@ packages: - supports-color dev: true - /eslint-plugin-import@2.26.0(@typescript-eslint/parser@5.9.1)(eslint-import-resolver-typescript@3.5.2)(eslint@8.27.0): + /eslint-plugin-import@2.26.0(@typescript-eslint/parser@5.9.1)(eslint@8.27.0): resolution: { integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==, @@ -11449,7 +12081,7 @@ packages: doctrine: 2.1.0 eslint: 8.27.0(supports-color@8.1.1) eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.3(@typescript-eslint/parser@5.9.1)(eslint-import-resolver-node@0.3.6)(eslint-import-resolver-typescript@3.5.2) + eslint-module-utils: 2.7.3(@typescript-eslint/parser@5.9.1)(eslint-import-resolver-node@0.3.6) has: 1.0.3 is-core-module: 2.11.0 is-glob: 4.0.3 @@ -11462,10 +12094,10 @@ packages: - eslint-import-resolver-webpack - supports-color - /eslint-plugin-import@2.26.0(@typescript-eslint/parser@5.9.1)(eslint@8.27.0): + /eslint-plugin-import@2.28.1(@typescript-eslint/parser@5.9.1)(eslint-import-resolver-typescript@3.5.2)(eslint@8.27.0): resolution: { - integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==, + integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==, } engines: {node: ">=4"} peerDependencies: @@ -11476,24 +12108,29 @@ packages: optional: true dependencies: "@typescript-eslint/parser": 5.9.1(eslint@8.27.0)(supports-color@8.1.1)(typescript@4.8.4) - array-includes: 3.1.5 - array.prototype.flat: 1.3.0 - debug: 2.6.9(supports-color@8.1.1) + array-includes: 3.1.7 + array.prototype.findlastindex: 1.2.3 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 + debug: 3.2.7(supports-color@8.1.1) doctrine: 2.1.0 eslint: 8.27.0(supports-color@8.1.1) - eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.3(@typescript-eslint/parser@5.9.1)(eslint-import-resolver-node@0.3.6)(eslint-import-resolver-typescript@3.5.2) + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.9.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.5.2)(eslint@8.27.0) has: 1.0.3 - is-core-module: 2.11.0 + is-core-module: 2.13.0 is-glob: 4.0.3 minimatch: 3.1.2 - object.values: 1.1.5 - resolve: 1.22.1 - tsconfig-paths: 3.14.1 + object.fromentries: 2.0.7 + object.groupby: 1.0.1 + object.values: 1.1.7 + semver: 6.3.1 + tsconfig-paths: 3.14.2 transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color + dev: true /eslint-plugin-jsx-a11y@6.5.1(eslint@8.26.0): resolution: @@ -11542,6 +12179,34 @@ packages: language-tags: 1.0.5 minimatch: 3.1.2 + /eslint-plugin-jsx-a11y@6.7.1(eslint@8.27.0): + resolution: + { + integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==, + } + engines: {node: ">=4.0"} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + "@babel/runtime": 7.23.2 + aria-query: 5.3.0 + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 + ast-types-flow: 0.0.7 + axe-core: 4.8.2 + axobject-query: 3.2.1 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + eslint: 8.27.0(supports-color@8.1.1) + has: 1.0.3 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.5 + minimatch: 3.1.2 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + semver: 6.3.1 + dev: true + /eslint-plugin-react-hooks@4.5.0(eslint@8.26.0): resolution: { @@ -11628,6 +12293,34 @@ packages: semver: 6.3.0 string.prototype.matchall: 4.0.7 + /eslint-plugin-react@7.33.2(eslint@8.27.0): + resolution: + { + integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==, + } + engines: {node: ">=4"} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 + array.prototype.tosorted: 1.1.2 + doctrine: 2.1.0 + es-iterator-helpers: 1.0.15 + eslint: 8.27.0(supports-color@8.1.1) + estraverse: 5.3.0 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + object.hasown: 1.1.3 + object.values: 1.1.7 + prop-types: 15.8.1 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.10 + dev: true + /eslint-plugin-testing-library@5.0.1(eslint@8.27.0)(typescript@4.8.4): resolution: { @@ -11718,7 +12411,7 @@ packages: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.3(supports-color@8.1.1) doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 @@ -12435,6 +13128,15 @@ packages: debug: optional: true + /for-each@0.3.3: + resolution: + { + integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==, + } + dependencies: + is-callable: 1.2.7 + dev: true + /for-in@1.0.2: resolution: { @@ -12475,6 +13177,25 @@ packages: dependencies: fetch-blob: 3.1.5 + /formik@2.4.5(react@18.2.0): + resolution: + { + integrity: sha512-Gxlht0TD3vVdzMDHwkiNZqJ7Mvg77xQNfmBRrNtvzcHZs72TJppSTDKHpImCMJZwcWPBJ8jSQQ95GJzXFf1nAQ==, + } + peerDependencies: + react: ">=16.8.0" + dependencies: + "@types/hoist-non-react-statics": 3.3.1 + deepmerge: 2.2.1 + hoist-non-react-statics: 3.3.2 + lodash: 4.17.21 + lodash-es: 4.17.21 + react: 18.2.0 + react-fast-compare: 2.0.4 + tiny-warning: 1.0.3 + tslib: 2.4.0 + dev: false + /forwarded@0.2.0: resolution: { @@ -12590,6 +13311,19 @@ packages: es-abstract: 1.20.1 functions-have-names: 1.2.3 + /function.prototype.name@1.1.6: + resolution: + { + integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==, + } + engines: {node: ">= 0.4"} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + functions-have-names: 1.2.3 + dev: true + /functions-have-names@1.2.3: resolution: { @@ -12626,6 +13360,18 @@ packages: has: 1.0.3 has-symbols: 1.0.3 + /get-intrinsic@1.2.1: + resolution: + { + integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==, + } + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-proto: 1.0.1 + has-symbols: 1.0.3 + dev: true + /get-package-type@0.1.0: resolution: { @@ -12698,6 +13444,7 @@ packages: { integrity: sha512-X8u8fREiYOE6S8hLbq99PeykTDoLVnxvF4DjWKJmz9xy2nNRdUcV8ZN9tniJFeKyTU3qnC9lL8n4Chd6LmVKHg==, } + dev: true /get-value@2.0.6: resolution: @@ -12881,13 +13628,13 @@ packages: engines: {node: ">= 0.4"} dependencies: define-properties: 1.1.4 - dev: false /globalyzer@0.1.0: resolution: { integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==, } + dev: true /globby@11.1.0: resolution: @@ -12940,6 +13687,16 @@ packages: { integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==, } + dev: true + + /gopd@1.0.1: + resolution: + { + integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==, + } + dependencies: + get-intrinsic: 1.2.1 + dev: true /got@11.8.1: resolution: @@ -13041,6 +13798,14 @@ packages: dependencies: get-intrinsic: 1.1.1 + /has-proto@1.0.1: + resolution: + { + integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==, + } + engines: {node: ">= 0.4"} + dev: true + /has-symbols@1.0.3: resolution: { @@ -13504,6 +14269,18 @@ packages: has: 1.0.3 side-channel: 1.0.4 + /internal-slot@1.0.5: + resolution: + { + integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==, + } + engines: {node: ">= 0.4"} + dependencies: + get-intrinsic: 1.2.1 + has: 1.0.3 + side-channel: 1.0.4 + dev: true + /ip-regex@4.3.0: resolution: { @@ -13540,12 +14317,33 @@ packages: kind-of: 6.0.3 dev: false + /is-array-buffer@3.0.2: + resolution: + { + integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==, + } + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-typed-array: 1.1.12 + dev: true + /is-arrayish@0.2.1: resolution: { integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==, } + /is-async-function@2.0.0: + resolution: + { + integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==, + } + engines: {node: ">= 0.4"} + dependencies: + has-tostringtag: 1.0.0 + dev: true + /is-bigint@1.0.4: resolution: { @@ -13597,6 +14395,14 @@ packages: } engines: {node: ">= 0.4"} + /is-callable@1.2.7: + resolution: + { + integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==, + } + engines: {node: ">= 0.4"} + dev: true + /is-ci@2.0.0: resolution: { @@ -13625,6 +14431,14 @@ packages: dependencies: has: 1.0.3 + /is-core-module@2.13.0: + resolution: + { + integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==, + } + dependencies: + has: 1.0.3 + /is-data-descriptor@0.1.4: resolution: { @@ -13685,6 +14499,7 @@ packages: } engines: {node: ">=8"} hasBin: true + dev: true /is-expression@4.0.0: resolution: @@ -13721,6 +14536,15 @@ packages: } engines: {node: ">=0.10.0"} + /is-finalizationregistry@1.0.2: + resolution: + { + integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==, + } + dependencies: + call-bind: 1.0.2 + dev: true + /is-fullwidth-code-point@3.0.0: resolution: { @@ -13742,6 +14566,16 @@ packages: } engines: {node: ">=6"} + /is-generator-function@1.0.10: + resolution: + { + integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==, + } + engines: {node: ">= 0.4"} + dependencies: + has-tostringtag: 1.0.0 + dev: true + /is-glob@3.1.0: resolution: { @@ -13769,6 +14603,13 @@ packages: engines: {node: ">=8"} dev: false + /is-map@2.0.2: + resolution: + { + integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==, + } + dev: true + /is-module@1.0.0: resolution: { @@ -13874,6 +14715,13 @@ packages: call-bind: 1.0.2 has-tostringtag: 1.0.0 + /is-set@2.0.2: + resolution: + { + integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==, + } + dev: true + /is-shared-array-buffer@1.0.2: resolution: { @@ -13931,6 +14779,16 @@ packages: dependencies: has-symbols: 1.0.3 + /is-typed-array@1.1.12: + resolution: + { + integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==, + } + engines: {node: ">= 0.4"} + dependencies: + which-typed-array: 1.1.11 + dev: true + /is-typedarray@1.0.0: resolution: { @@ -13960,6 +14818,13 @@ packages: } dev: false + /is-weakmap@2.0.1: + resolution: + { + integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==, + } + dev: true + /is-weakref@1.0.2: resolution: { @@ -13968,6 +14833,16 @@ packages: dependencies: call-bind: 1.0.2 + /is-weakset@2.0.2: + resolution: + { + integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==, + } + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + dev: true + /is-what@4.1.7: resolution: { @@ -13992,6 +14867,7 @@ packages: engines: {node: ">=8"} dependencies: is-docker: 2.2.1 + dev: true /is2@2.0.7: resolution: @@ -14011,6 +14887,13 @@ packages: integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==, } + /isarray@2.0.5: + resolution: + { + integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==, + } + dev: true + /isbinaryfile@4.0.10: resolution: { @@ -14050,6 +14933,21 @@ packages: } engines: {node: ">=8"} + /istanbul-lib-instrument@5.2.0: + resolution: + { + integrity: sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==, + } + engines: {node: ">=8"} + dependencies: + "@babel/core": 7.12.10 + "@babel/parser": 7.20.3 + "@istanbuljs/schema": 0.1.3 + istanbul-lib-coverage: 3.2.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + /istanbul-lib-instrument@5.2.0(supports-color@8.1.1): resolution: { @@ -14061,9 +14959,10 @@ packages: "@babel/parser": 7.20.3 "@istanbuljs/schema": 0.1.3 istanbul-lib-coverage: 3.2.0 - semver: 6.3.0 + semver: 6.3.1 transitivePeerDependencies: - supports-color + dev: true /istanbul-lib-report@3.0.0: resolution: @@ -14099,6 +14998,19 @@ packages: html-escaper: 2.0.2 istanbul-lib-report: 3.0.0 + /iterator.prototype@1.1.2: + resolution: + { + integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==, + } + dependencies: + define-properties: 1.2.1 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + reflect.getprototypeof: 1.0.4 + set-function-name: 2.0.1 + dev: true + /jake@10.8.5: resolution: { @@ -14315,7 +15227,7 @@ packages: ts-node: optional: true dependencies: - "@babel/core": 7.12.10(supports-color@8.1.1) + "@babel/core": 7.12.10 "@jest/test-sequencer": 29.3.0 "@jest/types": 29.2.1 "@types/node": 18.11.9 @@ -14762,7 +15674,7 @@ packages: jest-pnp-resolver: 1.2.2(jest-resolve@27.5.1) jest-util: 27.5.1 jest-validate: 27.5.1 - resolve: 1.22.1 + resolve: 1.22.8 resolve.exports: 1.1.0 slash: 3.0.0 dev: true @@ -14780,7 +15692,7 @@ packages: jest-pnp-resolver: 1.2.2(jest-resolve@29.3.0) jest-util: 29.2.1 jest-validate: 29.2.2 - resolve: 1.22.1 + resolve: 1.22.8 resolve.exports: 1.1.0 slash: 3.0.0 @@ -14966,7 +15878,7 @@ packages: } engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - "@babel/core": 7.12.10(supports-color@8.1.1) + "@babel/core": 7.12.10 "@babel/generator": 7.18.2 "@babel/plugin-syntax-jsx": 7.17.12(@babel/core@7.12.10) "@babel/plugin-syntax-typescript": 7.17.12(@babel/core@7.12.10) @@ -15226,6 +16138,39 @@ packages: dependencies: argparse: 2.0.1 + /jscodeshift@0.13.0(@babel/preset-env@7.12.10): + resolution: + { + integrity: sha512-FNHLuwh7TeI0F4EzNVIRwUSxSqsGWM5nTv596FK4NfBnEEKFpIcyFeG559DMFGHSTIYA5AY4Fqh2cBrJx0EAwg==, + } + hasBin: true + peerDependencies: + "@babel/preset-env": ^7.1.6 + dependencies: + "@babel/core": 7.18.2(supports-color@8.1.1) + "@babel/parser": 7.18.4 + "@babel/plugin-proposal-class-properties": 7.17.12(@babel/core@7.18.2)(supports-color@8.1.1) + "@babel/plugin-proposal-nullish-coalescing-operator": 7.17.12(@babel/core@7.18.2) + "@babel/plugin-proposal-optional-chaining": 7.17.12(@babel/core@7.18.2) + "@babel/plugin-transform-modules-commonjs": 7.18.2(@babel/core@7.18.2)(supports-color@8.1.1) + "@babel/preset-env": 7.12.10(@babel/core@7.12.10) + "@babel/preset-flow": 7.17.12(@babel/core@7.18.2) + "@babel/preset-typescript": 7.17.12(@babel/core@7.18.2)(supports-color@8.1.1) + "@babel/register": 7.17.7(@babel/core@7.18.2) + babel-core: 7.0.0-bridge.0(@babel/core@7.18.2) + colors: 1.4.0 + flow-parser: 0.179.0 + graceful-fs: 4.2.10 + micromatch: 3.1.10(supports-color@8.1.1) + neo-async: 2.6.2 + node-dir: 0.1.17 + recast: 0.20.5 + temp: 0.8.4 + write-file-atomic: 2.4.3 + transitivePeerDependencies: + - supports-color + dev: false + /jscodeshift@0.13.0(@babel/preset-env@7.12.10)(supports-color@8.1.1): resolution: { @@ -15454,6 +16399,16 @@ packages: dependencies: minimist: 1.2.6 + /json5@1.0.2: + resolution: + { + integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==, + } + hasBin: true + dependencies: + minimist: 1.2.6 + dev: true + /json5@2.2.1: resolution: { @@ -15508,15 +16463,28 @@ packages: promise: 7.3.1 dev: true - /jsx-ast-utils@3.3.0: + /jsx-ast-utils@3.3.0: + resolution: + { + integrity: sha512-XzO9luP6L0xkxwhIJMTJQpZo/eeN60K08jHdexfD569AGxeNug6UketeHXEhROoM8aR7EcUoOQmIhcJQjcuq8Q==, + } + engines: {node: ">=4.0"} + dependencies: + array-includes: 3.1.5 + object.assign: 4.1.2 + + /jsx-ast-utils@3.3.5: resolution: { - integrity: sha512-XzO9luP6L0xkxwhIJMTJQpZo/eeN60K08jHdexfD569AGxeNug6UketeHXEhROoM8aR7EcUoOQmIhcJQjcuq8Q==, + integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==, } engines: {node: ">=4.0"} dependencies: - array-includes: 3.1.5 - object.assign: 4.1.2 + array-includes: 3.1.7 + array.prototype.flat: 1.3.2 + object.assign: 4.1.4 + object.values: 1.1.7 + dev: true /jszip@3.10.0: resolution: @@ -15823,6 +16791,13 @@ packages: dependencies: p-locate: 5.0.0 + /lodash-es@4.17.21: + resolution: + { + integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==, + } + dev: false + /lodash.memoize@4.1.2: resolution: { @@ -16025,7 +17000,7 @@ packages: } engines: {node: ">=8"} dependencies: - semver: 6.3.0 + semver: 6.3.1 /make-error@1.3.6: resolution: @@ -16825,7 +17800,7 @@ packages: } dependencies: hosted-git-info: 2.8.9 - resolve: 1.22.1 + resolve: 1.22.8 semver: 5.7.1 validate-npm-package-license: 3.0.4 dev: false @@ -16961,6 +17936,13 @@ packages: integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==, } + /object-inspect@1.13.0: + resolution: + { + integrity: sha512-HQ4J+ic8hKrgIt3mqk6cVOVrW2ozL4KdvHlqpBv9vDYWx9ysAgENAdvy4FoGF+KFdhR7nQTNm5J0ctAeOwn+3g==, + } + dev: true + /object-keys@1.1.1: resolution: { @@ -16990,6 +17972,19 @@ packages: has-symbols: 1.0.3 object-keys: 1.1.1 + /object.assign@4.1.4: + resolution: + { + integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==, + } + engines: {node: ">= 0.4"} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + /object.entries@1.1.5: resolution: { @@ -17001,6 +17996,18 @@ packages: define-properties: 1.1.4 es-abstract: 1.20.1 + /object.entries@1.1.7: + resolution: + { + integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==, + } + engines: {node: ">= 0.4"} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: true + /object.fromentries@2.0.5: resolution: { @@ -17012,6 +18019,30 @@ packages: define-properties: 1.1.4 es-abstract: 1.20.1 + /object.fromentries@2.0.7: + resolution: + { + integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==, + } + engines: {node: ">= 0.4"} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: true + + /object.groupby@1.0.1: + resolution: + { + integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==, + } + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + dev: true + /object.hasown@1.1.1: resolution: { @@ -17021,6 +18052,16 @@ packages: define-properties: 1.1.4 es-abstract: 1.20.1 + /object.hasown@1.1.3: + resolution: + { + integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==, + } + dependencies: + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: true + /object.pick@1.3.0: resolution: { @@ -17042,6 +18083,18 @@ packages: define-properties: 1.1.4 es-abstract: 1.20.1 + /object.values@1.1.7: + resolution: + { + integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==, + } + engines: {node: ">= 0.4"} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: true + /oidc-token-hash@5.0.1: resolution: { @@ -17125,6 +18178,7 @@ packages: define-lazy-prop: 2.0.0 is-docker: 2.2.1 is-wsl: 2.2.0 + dev: true /opener@1.5.2: resolution: @@ -18001,6 +19055,18 @@ packages: uuid: 8.3.2 dev: true + /prisma@4.14.0: + resolution: + { + integrity: sha512-+5dMl1uxMQb4RepndY6AwR9xi1cDcaGFICu+ws6/Nmgt93mFPNj8tYxSfTdmfg+rkNrUId9rk/Ac2vTgLe/oXA==, + } + engines: {node: ">=14.17"} + hasBin: true + requiresBuild: true + dependencies: + "@prisma/engines": 4.14.0 + dev: false + /prisma@4.6.1: resolution: { @@ -18139,7 +19205,7 @@ packages: jstransformer: 1.0.0 pug-error: 2.0.0 pug-walk: 2.0.0 - resolve: 1.22.1 + resolve: 1.22.8 dev: true /pug-lexer@5.0.1: @@ -18380,6 +19446,13 @@ packages: react: 18.2.0 dev: true + /react-fast-compare@2.0.4: + resolution: + { + integrity: sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==, + } + dev: false + /react-hook-form@7.39.1(react@18.2.0): resolution: { @@ -18559,6 +19632,21 @@ packages: indent-string: 4.0.0 strip-indent: 3.0.0 + /reflect.getprototypeof@1.0.4: + resolution: + { + integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==, + } + engines: {node: ">= 0.4"} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + globalthis: 1.0.3 + which-builtin-type: 1.1.3 + dev: true + /regenerate-unicode-properties@10.0.1: resolution: { @@ -18580,6 +19668,13 @@ packages: integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==, } + /regenerator-runtime@0.14.0: + resolution: + { + integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==, + } + dev: true + /regenerator-transform@0.15.0: resolution: { @@ -18617,6 +19712,18 @@ packages: define-properties: 1.1.4 functions-have-names: 1.2.3 + /regexp.prototype.flags@1.5.1: + resolution: + { + integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==, + } + engines: {node: ">= 0.4"} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + set-function-name: 2.0.1 + dev: true + /regexpp@3.2.0: resolution: { @@ -18803,14 +19910,37 @@ packages: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + /resolve@1.22.8: + resolution: + { + integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==, + } + hasBin: true + dependencies: + is-core-module: 2.13.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + /resolve@2.0.0-next.3: resolution: { integrity: sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==, } dependencies: - is-core-module: 2.11.0 + is-core-module: 2.13.0 + path-parse: 1.0.7 + + /resolve@2.0.0-next.5: + resolution: + { + integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==, + } + hasBin: true + dependencies: + is-core-module: 2.13.0 path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true /responselike@1.0.2: resolution: @@ -18979,6 +20109,19 @@ packages: dependencies: tslib: 2.4.0 + /safe-array-concat@1.0.1: + resolution: + { + integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==, + } + engines: {node: ">=0.4"} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + isarray: 2.0.5 + dev: true + /safe-buffer@5.1.2: resolution: { @@ -18991,6 +20134,17 @@ packages: integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, } + /safe-regex-test@1.0.0: + resolution: + { + integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==, + } + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-regex: 1.1.4 + dev: true + /safe-regex@1.1.0: resolution: { @@ -19113,6 +20267,13 @@ packages: } hasBin: true + /semver@6.3.1: + resolution: + { + integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==, + } + hasBin: true + /semver@7.0.0: resolution: { @@ -19196,6 +20357,18 @@ packages: } dev: false + /set-function-name@2.0.1: + resolution: + { + integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==, + } + engines: {node: ">= 0.4"} + dependencies: + define-data-property: 1.1.1 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.0 + dev: true + /set-value@2.0.1: resolution: { @@ -19677,6 +20850,23 @@ packages: emoji-regex: 9.2.2 strip-ansi: 7.0.1 + /string.prototype.matchall@4.0.10: + resolution: + { + integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==, + } + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + regexp.prototype.flags: 1.5.1 + set-function-name: 2.0.1 + side-channel: 1.0.4 + dev: true + /string.prototype.matchall@4.0.7: resolution: { @@ -19692,6 +20882,18 @@ packages: regexp.prototype.flags: 1.4.3 side-channel: 1.0.4 + /string.prototype.trim@1.2.8: + resolution: + { + integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==, + } + engines: {node: ">= 0.4"} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: true + /string.prototype.trimend@1.0.5: resolution: { @@ -19702,6 +20904,17 @@ packages: define-properties: 1.1.4 es-abstract: 1.20.1 + /string.prototype.trimend@1.0.7: + resolution: + { + integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==, + } + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: true + /string.prototype.trimstart@1.0.5: resolution: { @@ -19712,6 +20925,17 @@ packages: define-properties: 1.1.4 es-abstract: 1.20.1 + /string.prototype.trimstart@1.0.7: + resolution: + { + integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==, + } + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: true + /string_decoder@1.1.1: resolution: { @@ -20001,6 +21225,7 @@ packages: dependencies: "@pkgr/utils": 2.3.1 tslib: 2.4.0 + dev: true /tapable@2.2.1: resolution: @@ -20008,6 +21233,7 @@ packages: integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==, } engines: {node: ">=6"} + dev: true /tar@6.1.11: resolution: @@ -20148,6 +21374,14 @@ packages: dependencies: globalyzer: 0.1.0 globrex: 0.1.2 + dev: true + + /tiny-warning@1.0.3: + resolution: + { + integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==, + } + dev: false /tinybench@2.3.1: resolution: @@ -20462,6 +21696,18 @@ packages: minimist: 1.2.6 strip-bom: 3.0.0 + /tsconfig-paths@3.14.2: + resolution: + { + integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==, + } + dependencies: + "@types/json5": 0.0.29 + json5: 1.0.2 + minimist: 1.2.6 + strip-bom: 3.0.0 + dev: true + /tsconfig-paths@4.0.0: resolution: { @@ -20698,6 +21944,56 @@ packages: mime-types: 2.1.35 dev: true + /typed-array-buffer@1.0.0: + resolution: + { + integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==, + } + engines: {node: ">= 0.4"} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-length@1.0.0: + resolution: + { + integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==, + } + engines: {node: ">= 0.4"} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-offset@1.0.0: + resolution: + { + integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==, + } + engines: {node: ">= 0.4"} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-length@1.0.4: + resolution: + { + integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==, + } + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + is-typed-array: 1.1.12 + dev: true + /typedarray-to-buffer@3.1.5: resolution: { @@ -21514,6 +22810,39 @@ packages: is-string: 1.0.7 is-symbol: 1.0.4 + /which-builtin-type@1.1.3: + resolution: + { + integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==, + } + engines: {node: ">= 0.4"} + dependencies: + function.prototype.name: 1.1.6 + has-tostringtag: 1.0.0 + is-async-function: 2.0.0 + is-date-object: 1.0.5 + is-finalizationregistry: 1.0.2 + is-generator-function: 1.0.10 + is-regex: 1.1.4 + is-weakref: 1.0.2 + isarray: 2.0.5 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.1 + which-typed-array: 1.1.11 + dev: true + + /which-collection@1.0.1: + resolution: + { + integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==, + } + dependencies: + is-map: 2.0.2 + is-set: 2.0.2 + is-weakmap: 2.0.1 + is-weakset: 2.0.2 + dev: true + /which-module@2.0.0: resolution: { @@ -21540,6 +22869,20 @@ packages: path-exists: 4.0.0 dev: false + /which-typed-array@1.1.11: + resolution: + { + integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==, + } + engines: {node: ">= 0.4"} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + dev: true + /which@1.3.1: resolution: { From cd128d39bcbb4db57d29af92edd3fea8b55c794a Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Sun, 15 Oct 2023 15:55:12 +0530 Subject: [PATCH 37/95] pnpm lock fix --- pnpm-lock.yaml | 319 +++++++++++++++++++++++++------------------------ 1 file changed, 163 insertions(+), 156 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1d33af389f..1741a7824a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -50,35 +50,47 @@ importers: specifier: 6.0.1 version: 6.0.1 - apps/playground: + apps/next13: dependencies: "@blitzjs/auth": specifier: 2.0.0-beta.34 version: link:../../packages/blitz-auth + "@blitzjs/config": + specifier: 2.0.0-beta.34 + version: link:../../packages/config "@blitzjs/next": specifier: 2.0.0-beta.34 version: link:../../packages/blitz-next "@blitzjs/rpc": specifier: 2.0.0-beta.34 version: link:../../packages/blitz-rpc + "@hookform/error-message": + specifier: 2.0.0 + version: 2.0.0(react-dom@18.2.0)(react-hook-form@7.39.1)(react@18.2.0) + "@hookform/resolvers": + specifier: 2.9.10 + version: 2.9.10(react-hook-form@7.39.1) "@prisma/client": specifier: ^4.14.0 - version: 4.14.0(prisma@4.14.0) + version: 4.14.0(prisma@4.6.1) + "@tanstack/react-form": + specifier: 0.0.10 + version: 0.0.10(react-dom@18.2.0)(react@18.2.0) + "@tanstack/react-query": + specifier: 4.0.10 + version: 4.0.10(react-dom@18.2.0)(react@18.2.0) blitz: specifier: 2.0.0-beta.34 version: link:../../packages/blitz flatted: specifier: 3.2.7 version: 3.2.7 - formik: - specifier: 2.4.5 - version: 2.4.5(react@18.2.0) next: specifier: 13.5.2 version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) prisma: - specifier: ^4.14.0 - version: 4.14.0 + specifier: ^4.5.0 + version: 4.6.1 react: specifier: 18.2.0 version: 18.2.0 @@ -98,9 +110,6 @@ importers: "@types/node": specifier: 18.11.7 version: 18.11.7 - "@types/preview-email": - specifier: 2.0.1 - version: 2.0.1 "@types/react": specifier: 18.0.23 version: 18.0.23 @@ -113,9 +122,6 @@ importers: eslint-config-next: specifier: 13.0.0 version: 13.0.0(eslint@8.26.0)(typescript@4.8.4) - preview-email: - specifier: 3.0.7 - version: 3.0.7 typescript: specifier: 4.8.4 version: 4.8.4 @@ -1607,7 +1613,7 @@ importers: version: link:../blitz next: specifier: 13.5.2 - version: 13.5.2(@babel/core@7.20.2)(react-dom@18.2.0)(react@18.2.0) + version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) next-auth: specifier: 4.18.7 version: 4.18.7(next@13.5.2)(react-dom@18.2.0)(react@18.2.0) @@ -1777,7 +1783,7 @@ importers: version: link:../blitz next: specifier: 13.5.2 - version: 13.5.2(@babel/core@7.20.2)(react-dom@18.2.0)(react@18.2.0) + version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) react: specifier: 18.2.0 version: 18.2.0 @@ -5914,7 +5920,7 @@ packages: } dev: true - /@prisma/client@4.14.0(prisma@4.14.0): + /@prisma/client@4.14.0(prisma@4.6.1): resolution: { integrity: sha512-MK/XaA2sFdfaOa7I9MjNKz6dxeIEdeZlnpNRoF2w3JuRLlFJLkpp6cD3yaqw2nUUhbrn3Iqe3ZpVV+VuGGil7Q==, @@ -5928,7 +5934,7 @@ packages: optional: true dependencies: "@prisma/engines-version": 4.14.0-67.d9a4c5988f480fa576d43970d5a23641aa77bc9c - prisma: 4.14.0 + prisma: 4.6.1 dev: false /@prisma/client@4.6.1(prisma@4.6.1): @@ -5962,14 +5968,6 @@ packages: } dev: false - /@prisma/engines@4.14.0: - resolution: - { - integrity: sha512-PDNlhP/1vyTgmNyiucGqGCdXIp7HIkkvKO50si3y3PcceeHvqtiKPaH1iJdz63jCWMVMbj2MElSxXPOeBvEVIQ==, - } - requiresBuild: true - dev: false - /@prisma/engines@4.6.1: resolution: { @@ -6448,6 +6446,15 @@ packages: defer-to-connect: 2.0.1 dev: false + /@tanstack/form-core@0.0.9: + resolution: + { + integrity: sha512-r6iPdnOA0YpT+XsbYAmCX6y7RyYa4kNAmD/MlMxLoQkyLl6TTJg5W6H6JDD7t6EuN20AoNPdVU1zofCS81p5dw==, + } + dependencies: + "@tanstack/store": 0.0.1-beta.84 + dev: false + /@tanstack/query-core@4.13.0: resolution: { @@ -6461,6 +6468,27 @@ packages: integrity: sha512-9dqjv9eeB6VHN7lD3cLo16ZAjfjCsdXetSAD5+VyKqLUvcKTL0CklGQRJu+bWzdrS69R6Ea4UZo8obHYZnG6aA==, } + /@tanstack/react-form@0.0.10(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-X7GZRSK3OLs42wGkJ/ahHVKMgdeBZZn6OEiHhbB57wWBV7I4JgCndrFp8vXtLQDz5+Pz03qTo0qD8X1nFV9agA==, + } + peerDependencies: + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + react-native: "*" + peerDependenciesMeta: + react-dom: + optional: true + react-native: + optional: true + dependencies: + "@tanstack/form-core": 0.0.9 + "@tanstack/react-store": 0.0.1-beta.84(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + /@tanstack/react-query@4.0.10(react-dom@18.2.0)(react@18.2.0): resolution: { @@ -6525,6 +6553,30 @@ packages: use-sync-external-store: 1.2.0(react@18.2.0) dev: false + /@tanstack/react-store@0.0.1-beta.84(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-NHCt8pPjcwENwMPnaXdu1ZdvpE/u6JJdZwl/5aKxX9gW4XtLvpNEXHq1KyuOMk2ZfWInW2cuDsDsK5+iZARhrg==, + } + engines: {node: ">=12"} + peerDependencies: + react: ">=16" + react-dom: ">=16" + dependencies: + "@tanstack/store": 0.0.1-beta.84 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + use-sync-external-store: 1.2.0(react@18.2.0) + dev: false + + /@tanstack/store@0.0.1-beta.84: + resolution: + { + integrity: sha512-sqE4U8b/bNxXLrm5uoDET7glaZvThn0FPNperVNZV+XXwkJUFcc+/KH7n1MwCi7Y/76FeMpKWLRmEx9KhZbq3A==, + } + engines: {node: ">=12"} + dev: false + /@testim/chrome-version@1.1.2: resolution: { @@ -10177,14 +10229,6 @@ packages: integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, } - /deepmerge@2.2.1: - resolution: - { - integrity: sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==, - } - engines: {node: ">=0.10.0"} - dev: false - /deepmerge@4.2.2: resolution: { @@ -11794,14 +11838,14 @@ packages: optional: true dependencies: "@next/eslint-plugin-next": 13.0.0 - "@rushstack/eslint-patch": 1.1.3 + "@rushstack/eslint-patch": 1.5.1 "@typescript-eslint/parser": 5.43.0(eslint@8.26.0)(typescript@4.8.4) eslint: 8.26.0 - eslint-import-resolver-node: 0.3.6 - eslint-import-resolver-typescript: 2.7.1(eslint-plugin-import@2.26.0)(eslint@8.26.0) - eslint-plugin-import: 2.26.0(@typescript-eslint/parser@5.43.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.26.0) - eslint-plugin-jsx-a11y: 6.5.1(eslint@8.26.0) - eslint-plugin-react: 7.31.8(eslint@8.26.0) + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 2.7.1(eslint-plugin-import@2.28.1)(eslint@8.26.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.43.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.26.0) + eslint-plugin-jsx-a11y: 6.7.1(eslint@8.26.0) + eslint-plugin-react: 7.33.2(eslint@8.26.0) eslint-plugin-react-hooks: 4.5.0(eslint@8.26.0) typescript: 4.8.4 transitivePeerDependencies: @@ -11872,7 +11916,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript@2.7.1(eslint-plugin-import@2.26.0)(eslint@8.26.0): + /eslint-import-resolver-typescript@2.7.1(eslint-plugin-import@2.26.0)(eslint@8.27.0): resolution: { integrity: sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==, @@ -11883,17 +11927,16 @@ packages: eslint-plugin-import: "*" dependencies: debug: 4.3.4(supports-color@8.1.1) - eslint: 8.26.0 - eslint-plugin-import: 2.26.0(@typescript-eslint/parser@5.43.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.26.0) + eslint: 8.27.0(supports-color@8.1.1) + eslint-plugin-import: 2.26.0(@typescript-eslint/parser@5.9.1)(eslint@8.27.0) glob: 7.2.0 is-glob: 4.0.3 resolve: 1.22.1 tsconfig-paths: 3.14.1 transitivePeerDependencies: - supports-color - dev: true - /eslint-import-resolver-typescript@2.7.1(eslint-plugin-import@2.26.0)(eslint@8.27.0): + /eslint-import-resolver-typescript@2.7.1(eslint-plugin-import@2.28.1)(eslint@8.26.0): resolution: { integrity: sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==, @@ -11904,14 +11947,15 @@ packages: eslint-plugin-import: "*" dependencies: debug: 4.3.4(supports-color@8.1.1) - eslint: 8.27.0(supports-color@8.1.1) - eslint-plugin-import: 2.26.0(@typescript-eslint/parser@5.9.1)(eslint@8.27.0) + eslint: 8.26.0 + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.43.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.26.0) glob: 7.2.0 is-glob: 4.0.3 - resolve: 1.22.1 - tsconfig-paths: 3.14.1 + resolve: 1.22.8 + tsconfig-paths: 3.14.2 transitivePeerDependencies: - supports-color + dev: true /eslint-import-resolver-typescript@3.5.2(eslint-plugin-import@2.28.1)(eslint@8.27.0): resolution: @@ -11936,7 +11980,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.7.3(@typescript-eslint/parser@5.43.0)(eslint-import-resolver-node@0.3.6)(eslint-import-resolver-typescript@2.7.1): + /eslint-module-utils@2.7.3(@typescript-eslint/parser@5.9.1)(eslint-import-resolver-node@0.3.6): resolution: { integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==, @@ -11957,29 +12001,30 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - "@typescript-eslint/parser": 5.43.0(eslint@8.27.0)(typescript@4.8.4) + "@typescript-eslint/parser": 5.9.1(eslint@8.27.0)(supports-color@8.1.1)(typescript@4.8.4) debug: 3.2.7(supports-color@8.1.1) eslint-import-resolver-node: 0.3.6 - eslint-import-resolver-typescript: 2.7.1(eslint-plugin-import@2.26.0)(eslint@8.27.0) find-up: 2.1.0 transitivePeerDependencies: - supports-color - dev: true - /eslint-module-utils@2.7.3(@typescript-eslint/parser@5.9.1)(eslint-import-resolver-node@0.3.6): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.43.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@2.7.1)(eslint@8.26.0): resolution: { - integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==, + integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==, } engines: {node: ">=4"} peerDependencies: "@typescript-eslint/parser": "*" + eslint: "*" eslint-import-resolver-node: "*" eslint-import-resolver-typescript: "*" eslint-import-resolver-webpack: "*" peerDependenciesMeta: "@typescript-eslint/parser": optional: true + eslint: + optional: true eslint-import-resolver-node: optional: true eslint-import-resolver-typescript: @@ -11987,12 +12032,14 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - "@typescript-eslint/parser": 5.9.1(eslint@8.27.0)(supports-color@8.1.1)(typescript@4.8.4) + "@typescript-eslint/parser": 5.43.0(eslint@8.26.0)(typescript@4.8.4) debug: 3.2.7(supports-color@8.1.1) - eslint-import-resolver-node: 0.3.6 - find-up: 2.1.0 + eslint: 8.26.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 2.7.1(eslint-plugin-import@2.28.1)(eslint@8.26.0) transitivePeerDependencies: - supports-color + dev: true /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.9.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.5.2)(eslint@8.27.0): resolution: @@ -12027,7 +12074,7 @@ packages: - supports-color dev: true - /eslint-plugin-import@2.26.0(@typescript-eslint/parser@5.43.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.26.0): + /eslint-plugin-import@2.26.0(@typescript-eslint/parser@5.9.1)(eslint@8.27.0): resolution: { integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==, @@ -12040,14 +12087,14 @@ packages: "@typescript-eslint/parser": optional: true dependencies: - "@typescript-eslint/parser": 5.43.0(eslint@8.26.0)(typescript@4.8.4) + "@typescript-eslint/parser": 5.9.1(eslint@8.27.0)(supports-color@8.1.1)(typescript@4.8.4) array-includes: 3.1.5 array.prototype.flat: 1.3.0 debug: 2.6.9(supports-color@8.1.1) doctrine: 2.1.0 - eslint: 8.26.0 + eslint: 8.27.0(supports-color@8.1.1) eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.3(@typescript-eslint/parser@5.43.0)(eslint-import-resolver-node@0.3.6)(eslint-import-resolver-typescript@2.7.1) + eslint-module-utils: 2.7.3(@typescript-eslint/parser@5.9.1)(eslint-import-resolver-node@0.3.6) has: 1.0.3 is-core-module: 2.11.0 is-glob: 4.0.3 @@ -12059,12 +12106,11 @@ packages: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - dev: true - /eslint-plugin-import@2.26.0(@typescript-eslint/parser@5.9.1)(eslint@8.27.0): + /eslint-plugin-import@2.28.1(@typescript-eslint/parser@5.43.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.26.0): resolution: { - integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==, + integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==, } engines: {node: ">=4"} peerDependencies: @@ -12074,25 +12120,30 @@ packages: "@typescript-eslint/parser": optional: true dependencies: - "@typescript-eslint/parser": 5.9.1(eslint@8.27.0)(supports-color@8.1.1)(typescript@4.8.4) - array-includes: 3.1.5 - array.prototype.flat: 1.3.0 - debug: 2.6.9(supports-color@8.1.1) + "@typescript-eslint/parser": 5.43.0(eslint@8.26.0)(typescript@4.8.4) + array-includes: 3.1.7 + array.prototype.findlastindex: 1.2.3 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 + debug: 3.2.7(supports-color@8.1.1) doctrine: 2.1.0 - eslint: 8.27.0(supports-color@8.1.1) - eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.3(@typescript-eslint/parser@5.9.1)(eslint-import-resolver-node@0.3.6) + eslint: 8.26.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.43.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@2.7.1)(eslint@8.26.0) has: 1.0.3 - is-core-module: 2.11.0 + is-core-module: 2.13.0 is-glob: 4.0.3 minimatch: 3.1.2 - object.values: 1.1.5 - resolve: 1.22.1 - tsconfig-paths: 3.14.1 + object.fromentries: 2.0.7 + object.groupby: 1.0.1 + object.values: 1.1.7 + semver: 6.3.1 + tsconfig-paths: 3.14.2 transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color + dev: true /eslint-plugin-import@2.28.1(@typescript-eslint/parser@5.9.1)(eslint-import-resolver-typescript@3.5.2)(eslint@8.27.0): resolution: @@ -12132,7 +12183,7 @@ packages: - supports-color dev: true - /eslint-plugin-jsx-a11y@6.5.1(eslint@8.26.0): + /eslint-plugin-jsx-a11y@6.5.1(eslint@8.27.0): resolution: { integrity: sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==, @@ -12149,35 +12200,39 @@ packages: axobject-query: 2.2.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 8.26.0 + eslint: 8.27.0(supports-color@8.1.1) has: 1.0.3 jsx-ast-utils: 3.3.0 language-tags: 1.0.5 minimatch: 3.1.2 - dev: true - /eslint-plugin-jsx-a11y@6.5.1(eslint@8.27.0): + /eslint-plugin-jsx-a11y@6.7.1(eslint@8.26.0): resolution: { - integrity: sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==, + integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==, } engines: {node: ">=4.0"} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - "@babel/runtime": 7.18.3 - aria-query: 4.2.2 - array-includes: 3.1.5 + "@babel/runtime": 7.23.2 + aria-query: 5.3.0 + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 ast-types-flow: 0.0.7 - axe-core: 4.4.2 - axobject-query: 2.2.0 + axe-core: 4.8.2 + axobject-query: 3.2.1 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 8.27.0(supports-color@8.1.1) + eslint: 8.26.0 has: 1.0.3 - jsx-ast-utils: 3.3.0 + jsx-ast-utils: 3.3.5 language-tags: 1.0.5 minimatch: 3.1.2 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + semver: 6.3.1 + dev: true /eslint-plugin-jsx-a11y@6.7.1(eslint@8.27.0): resolution: @@ -12242,7 +12297,7 @@ packages: eslint: 8.27.0(supports-color@8.1.1) dev: true - /eslint-plugin-react@7.31.8(eslint@8.26.0): + /eslint-plugin-react@7.31.8(eslint@8.27.0): resolution: { integrity: sha512-5lBTZmgQmARLLSYiwI71tiGVTLUuqXantZM6vlSY39OaDSV0M7+32K5DnLkmFrwTe+Ksz0ffuLUC91RUviVZfw==, @@ -12254,7 +12309,7 @@ packages: array-includes: 3.1.5 array.prototype.flatmap: 1.3.0 doctrine: 2.1.0 - eslint: 8.26.0 + eslint: 8.27.0(supports-color@8.1.1) estraverse: 5.3.0 jsx-ast-utils: 3.3.0 minimatch: 3.1.2 @@ -12266,32 +12321,34 @@ packages: resolve: 2.0.0-next.3 semver: 6.3.0 string.prototype.matchall: 4.0.7 - dev: true - /eslint-plugin-react@7.31.8(eslint@8.27.0): + /eslint-plugin-react@7.33.2(eslint@8.26.0): resolution: { - integrity: sha512-5lBTZmgQmARLLSYiwI71tiGVTLUuqXantZM6vlSY39OaDSV0M7+32K5DnLkmFrwTe+Ksz0ffuLUC91RUviVZfw==, + integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==, } engines: {node: ">=4"} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - array-includes: 3.1.5 - array.prototype.flatmap: 1.3.0 + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 + array.prototype.tosorted: 1.1.2 doctrine: 2.1.0 - eslint: 8.27.0(supports-color@8.1.1) + es-iterator-helpers: 1.0.15 + eslint: 8.26.0 estraverse: 5.3.0 - jsx-ast-utils: 3.3.0 + jsx-ast-utils: 3.3.5 minimatch: 3.1.2 - object.entries: 1.1.5 - object.fromentries: 2.0.5 - object.hasown: 1.1.1 - object.values: 1.1.5 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + object.hasown: 1.1.3 + object.values: 1.1.7 prop-types: 15.8.1 - resolve: 2.0.0-next.3 - semver: 6.3.0 - string.prototype.matchall: 4.0.7 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.10 + dev: true /eslint-plugin-react@7.33.2(eslint@8.27.0): resolution: @@ -13177,25 +13234,6 @@ packages: dependencies: fetch-blob: 3.1.5 - /formik@2.4.5(react@18.2.0): - resolution: - { - integrity: sha512-Gxlht0TD3vVdzMDHwkiNZqJ7Mvg77xQNfmBRrNtvzcHZs72TJppSTDKHpImCMJZwcWPBJ8jSQQ95GJzXFf1nAQ==, - } - peerDependencies: - react: ">=16.8.0" - dependencies: - "@types/hoist-non-react-statics": 3.3.1 - deepmerge: 2.2.1 - hoist-non-react-statics: 3.3.2 - lodash: 4.17.21 - lodash-es: 4.17.21 - react: 18.2.0 - react-fast-compare: 2.0.4 - tiny-warning: 1.0.3 - tslib: 2.4.0 - dev: false - /forwarded@0.2.0: resolution: { @@ -16791,13 +16829,6 @@ packages: dependencies: p-locate: 5.0.0 - /lodash-es@4.17.21: - resolution: - { - integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==, - } - dev: false - /lodash.memoize@4.1.2: resolution: { @@ -17569,7 +17600,7 @@ packages: "@panva/hkdf": 1.0.2 cookie: 0.5.0 jose: 4.11.2 - next: 13.5.2(@babel/core@7.20.2)(react-dom@18.2.0)(react@18.2.0) + next: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) oauth: 0.9.15 openid-client: 5.2.1 preact: 10.11.3 @@ -17717,6 +17748,7 @@ packages: transitivePeerDependencies: - "@babel/core" - babel-plugin-macros + dev: false /nice-try@1.0.5: resolution: @@ -19055,18 +19087,6 @@ packages: uuid: 8.3.2 dev: true - /prisma@4.14.0: - resolution: - { - integrity: sha512-+5dMl1uxMQb4RepndY6AwR9xi1cDcaGFICu+ws6/Nmgt93mFPNj8tYxSfTdmfg+rkNrUId9rk/Ac2vTgLe/oXA==, - } - engines: {node: ">=14.17"} - hasBin: true - requiresBuild: true - dependencies: - "@prisma/engines": 4.14.0 - dev: false - /prisma@4.6.1: resolution: { @@ -19446,13 +19466,6 @@ packages: react: 18.2.0 dev: true - /react-fast-compare@2.0.4: - resolution: - { - integrity: sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==, - } - dev: false - /react-hook-form@7.39.1(react@18.2.0): resolution: { @@ -21129,6 +21142,7 @@ packages: "@babel/core": 7.20.2(supports-color@8.1.1) client-only: 0.0.1 react: 18.2.0 + dev: false /subarg@1.0.0: resolution: @@ -21376,13 +21390,6 @@ packages: globrex: 0.1.2 dev: true - /tiny-warning@1.0.3: - resolution: - { - integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==, - } - dev: false - /tinybench@2.3.1: resolution: { From 006da22c9216820d913108a5e923d7d5e0efa425 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Sun, 15 Oct 2023 15:56:51 +0530 Subject: [PATCH 38/95] add new pages to the `pathsToMove` array --- packages/generator/src/generators/app-generator.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/generator/src/generators/app-generator.ts b/packages/generator/src/generators/app-generator.ts index 5d37922b1c..eaf1f57f70 100644 --- a/packages/generator/src/generators/app-generator.ts +++ b/packages/generator/src/generators/app-generator.ts @@ -91,6 +91,8 @@ export class AppGenerator extends Generator { "src/app/auth/mutations/changePassword.ts", "src/app/auth/login/page.tsx", "src/app/auth/signup/page.tsx", + "src/app/auth/forgot-password/page.tsx", + "src/app/auth/reset-password/page.tsx", "src/app/auth/layout.tsx", "src/app/auth/validations.ts", ] From 0ef1cb0a640ee8e9f93d8b06c1b295dc6fdfbdac Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Sun, 15 Oct 2023 15:57:56 +0530 Subject: [PATCH 39/95] remove submodule --- apps/playground | 1 - 1 file changed, 1 deletion(-) delete mode 160000 apps/playground diff --git a/apps/playground b/apps/playground deleted file mode 160000 index e2941b67ea..0000000000 --- a/apps/playground +++ /dev/null @@ -1 +0,0 @@ -Subproject commit e2941b67ea222d36050333648edc0e6f354a4bf7 From df5a0662537f9bbbd13b034d02def3fdf6537952 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Sun, 15 Oct 2023 15:58:35 +0530 Subject: [PATCH 40/95] remove changelog from the template --- packages/generator/templates/app/CHANGELOG.md | 117 ------------------ 1 file changed, 117 deletions(-) delete mode 100644 packages/generator/templates/app/CHANGELOG.md diff --git a/packages/generator/templates/app/CHANGELOG.md b/packages/generator/templates/app/CHANGELOG.md deleted file mode 100644 index 4ca5652b7f..0000000000 --- a/packages/generator/templates/app/CHANGELOG.md +++ /dev/null @@ -1,117 +0,0 @@ -# next-blitz-auth - -## 0.1.1-beta.3 - -### Patch Changes - -- Updated dependencies [eda14fa8a] -- Updated dependencies [3d004dc41] -- Updated dependencies [29c2b029a] - - @blitzjs/next@2.0.0-beta.27 - - @blitzjs/rpc@2.0.0-beta.27 - - @blitzjs/auth@2.0.0-beta.27 - - blitz@2.0.0-beta.27 - - @blitzjs/config@2.0.0-beta.27 - -## 0.1.1-beta.2 - -### Patch Changes - -- Updated dependencies [e82a79be5] -- Updated dependencies [38d945a3f] - - @blitzjs/auth@2.0.0-beta.26 - - @blitzjs/next@2.0.0-beta.26 - - @blitzjs/rpc@2.0.0-beta.26 - - blitz@2.0.0-beta.26 - - @blitzjs/config@2.0.0-beta.26 - -## 0.1.1-beta.1 - -### Patch Changes - -- Updated dependencies [f84d77a42] - - @blitzjs/rpc@2.0.0-beta.25 - - @blitzjs/next@2.0.0-beta.25 - - @blitzjs/auth@2.0.0-beta.25 - - @blitzjs/config@2.0.0-beta.25 - - blitz@2.0.0-beta.25 - -## 0.1.1-beta.0 - -### Patch Changes - -- 37aeaa7fa: feature: Nextjs 13 App Directory Utility Methods - - ### 🔧 New Blitz Auth Hook `useAuthenticatedBlitzContext` - - This hook is implemented as the replacement of the [`BlitzPage` seurity auth utilities](https://blitzjs.com/docs/authorization#secure-your-pages) provided for the pages directory to work with React Server Components in the Nextjs 13 app directory - It can be used in any asynchronous server component be it in `page.ts` or in the layouts in `layout.ts` - It uses the new [`redirect` function](https://beta.nextjs.org/docs/api-reference/redirect) to provide the required authorization in server side - - #### API - - ```ts - useAuthenticatedBlitzContext({ - redirectTo, - redirectAuthenticatedTo, - role, - }: { - redirectTo?: string | RouteUrlObject - redirectAuthenticatedTo?: string | RouteUrlObject | ((ctx: Ctx) => string | RouteUrlObject) - role?: string | string[] - }): Promise - ``` - - #### Usage - - **Example Usage in React Server Component in `app` directory in Next 13** - - ```ts - import {getAppSession, useAuthenticatedBlitzContext} from "src/blitz-server" - ... - await useAuthenticatedBlitzContext({ - redirectTo: "/auth/login", - role: ["admin"], - redirectAuthenticatedTo: "/dashboard", - }) - ``` - - ### 🔧 New Blitz RPC Hook `invokeResolver` - - #### API - - ```ts - invokeResolver any, TInput = FirstParam>( - queryFn: T, - params: TInput, - ): Promise> - ``` - - #### Example Usage - - ```ts - ... - import {invokeResolver, useAuthenticatedBlitzContext} from "../src/blitz-server" - import getCurrentUser from "../src/users/queries/getCurrentUser" - - export default async function Home() { - await useAuthenticatedBlitzContext({ - redirectTo: "/auth/login", - }) - const user = await invokeResolver(getCurrentUser, null) - ... - ``` - -- Updated dependencies [cadefb88e] -- Updated dependencies [6f18cbdc9] -- Updated dependencies [acc07ce94] -- Updated dependencies [ea7561b8e] -- Updated dependencies [9529dbd6f] -- Updated dependencies [ea7561b8e] -- Updated dependencies [6e88a847f] -- Updated dependencies [37aeaa7fa] - - blitz@2.0.0-beta.24 - - @blitzjs/auth@2.0.0-beta.24 - - @blitzjs/next@2.0.0-beta.24 - - @blitzjs/rpc@2.0.0-beta.24 - - @blitzjs/config@2.0.0-beta.24 From 78c61f626d815e69d764da2b8542944496a25bd8 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Sun, 15 Oct 2023 15:59:55 +0530 Subject: [PATCH 41/95] fix name of .env --- packages/generator/templates/app/{.env copy => .env} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename packages/generator/templates/app/{.env copy => .env} (100%) diff --git a/packages/generator/templates/app/.env copy b/packages/generator/templates/app/.env similarity index 100% rename from packages/generator/templates/app/.env copy rename to packages/generator/templates/app/.env From 6be946ee3e241af43b17be62e69619d15eec8e6b Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Sun, 15 Oct 2023 16:00:48 +0530 Subject: [PATCH 42/95] match readme --- packages/generator/templates/app/README.md | 175 +++++++++++++++++++-- 1 file changed, 161 insertions(+), 14 deletions(-) diff --git a/packages/generator/templates/app/README.md b/packages/generator/templates/app/README.md index 8b59024262..f9f2dad932 100644 --- a/packages/generator/templates/app/README.md +++ b/packages/generator/templates/app/README.md @@ -1,26 +1,173 @@ -# Next.js 13 + Blitz Auth +[![Blitz.js](https://raw.githubusercontent.com/blitz-js/art/master/github-cover-photo.png)](https://blitzjs.com) -This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) + [`Blitz Auth`](https://blitzjs.com/docs/auth). +This is a [Blitz.js](https://github.com/blitz-js/blitz) app. + +# ****name**** ## Getting Started -First, run the development server: +Run your app in the development mode. -```bash -npm run dev -# or -yarn dev +``` +blitz dev ``` Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. -You can go to the `/signup` page and create a new account. +## Environment Variables + +Ensure the `.env.local` file has required environment variables: + +``` +DATABASE_URL=postgresql://@localhost:5432/__name__ +``` + +Ensure the `.env.test.local` file has required environment variables: + +``` +DATABASE_URL=postgresql://@localhost:5432/__name___test +``` + +## Tests + +Runs your tests using Jest. + +``` +yarn test +``` + +Blitz comes with a test setup using [Vitest](https://vitest.dev/) and [react-testing-library](https://testing-library.com/). + +## Commands + +Blitz comes with a powerful CLI that is designed to make development easy and fast. You can install it with `npm i -g blitz` + +``` + blitz [COMMAND] + + dev Start a development server + build Create a production build + start Start a production server + export Export your Blitz app as a static application + prisma Run prisma commands + generate Generate new files for your Blitz project + console Run the Blitz console REPL + install Install a recipe + help Display help for blitz + test Run project tests +``` + +You can read more about it on the [CLI Overview](https://blitzjs.com/docs/cli-overview) documentation. + +## What's included? + +Here is the starting structure of your app. + +``` +__name__ +├── src/ +│ ├── api/ +│ ├── auth/ +│ │ ├── components/ +│ │ │ ├── LoginForm.tsx +│ │ │ └── SignupForm.tsx +│ │ ├── mutations/ +│ │ │ ├── changePassword.ts +│ │ │ ├── forgotPassword.test.ts +│ │ │ ├── forgotPassword.ts +│ │ │ ├── login.ts +│ │ │ ├── logout.ts +│ │ │ ├── resetPassword.test.ts +│ │ │ ├── resetPassword.ts +│ │ │ └── signup.ts +│ │ ├── pages/ +│ │ │ ├── forgot-password.tsx +│ │ │ ├── login.tsx +│ │ │ ├── reset-password.tsx +│ │ │ └── signup.tsx +│ │ └── validations.ts +│ ├── core/ +│ │ ├── components/ +│ │ │ ├── Form.tsx +│ │ │ └── LabeledTextField.tsx +│ │ └── layouts/ +│ │ └── Layout.tsx +│ ├── pages/ +│ │ ├── _app.tsx +│ │ ├── _document.tsx +│ │ ├── 404.tsx +│ │ ├── index.test.tsx +│ │ └── index.tsx +│ └── users/ +│ ├── hooks/ +│ │ └── useCurrentUser.ts +│ └── queries/ +│ └── getCurrentUser.ts +├── db/ +│ ├── migrations/ +│ ├── index.ts +│ ├── schema.prisma +│ └── seeds.ts +├── integrations/ +├── mailers/ +│ └── forgotPasswordMailer.ts +├── public/ +│ ├── favicon.ico +│ └── logo.png +├── test/ +│ ├── setup.ts +│ └── utils.tsx +├── .eslintrc.js +├── babel.config.js +├── blitz.config.ts +├── vitest.config.ts +├── package.json +├── README.md +├── tsconfig.json +└── types.ts +``` + +These files are: + +- The `src/` folder is a container for most of your project. This is where you’ll put any pages or API routes. + +- `db/` is where your database configuration goes. If you’re writing models or checking migrations, this is where to go. + +- `public/` is a folder where you will put any static assets. If you have images, files, or videos which you want to use in your app, this is where to put them. + +- `integrations/` is a folder to put all third-party integrations like with Stripe, Sentry, etc. + +- `test/` is a folder where you can put test utilities and integration tests. + +- `package.json` contains information about your dependencies and devDependencies. If you’re using a tool like `npm` or `yarn`, you won’t have to worry about this much. + +- `tsconfig.json` is our recommended setup for TypeScript. + +- `.babel.config.js`, `.eslintrc.js`, `.env`, etc. ("dotfiles") are configuration files for various bits of JavaScript tooling. + +- `blitz.config.ts` is for advanced custom configuration of Blitz. [Here you can learn how to use it](https://blitzjs.com/docs/blitz-config). + +- `vitest.config.ts` contains config for Vitest tests. You can [customize it if needed](https://vitejs.dev/config/). + +You can read more about it in the [File Structure](https://blitzjs.com/docs/file-structure) section of the documentation. + +### Tools included + +Blitz comes with a set of tools that corrects and formats your code, facilitating its future maintenance. You can modify their options and even uninstall them. + +- **ESLint**: It lints your code: searches for bad practices and tell you about it. You can customize it via the `.eslintrc.js`, and you can install (or even write) plugins to have it the way you like it. It already comes with the [`blitz`](https://github.com/blitz-js/blitz/tree/canary/packages/eslint-config) config, but you can remove it safely. [Learn More](https://blitzjs.com/docs/eslint-config). +- **Husky**: It adds [githooks](https://git-scm.com/docs/githooks), little pieces of code that get executed when certain Git events are triggerd. For example, `pre-commit` is triggered just before a commit is created. You can see the current hooks inside `.husky/`. If are having problems commiting and pushing, check out ther [troubleshooting](https://typicode.github.io/husky/#/?id=troubleshoot) guide. [Learn More](https://blitzjs.com/docs/husky-config). +- **Prettier**: It formats your code to look the same everywhere. You can configure it via the `.prettierrc` file. The `.prettierignore` contains the files that should be ignored by Prettier; useful when you have large files or when you want to keep a custom formatting. [Learn More](https://blitzjs.com/docs/prettier-config). + +## Learn more -## Learn More +Read the [Blitz.js Documentation](https://blitzjs.com/docs/getting-started) to learn more. -To learn more about Next.js and Blitz.js, take a look at the following resources: +The Blitz community is warm, safe, diverse, inclusive, and fun! Feel free to reach out to us in any of our communication channels. -- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. -- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. -- [Blitz.js Documentation](https://blitzjs.com/docs/) — learn about Blitz.js. -- [Blitz Auth Documentation](https://blitzjs.com/docs/auth) — learn about Blitz Auth plugin. +- [Website](https://blitzjs.com) +- [Discord](https://blitzjs.com/discord) +- [Report an issue](https://github.com/blitz-js/blitz/issues/new/choose) +- [Forum discussions](https://github.com/blitz-js/blitz/discussions) +- [How to Contribute](https://blitzjs.com/docs/contributing) +- [Sponsor or donate](https://github.com/blitz-js/blitz#sponsors-and-donations) From 75f28682e724654aab9eedf95b1dc60d19398f98 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Sun, 15 Oct 2023 16:01:20 +0530 Subject: [PATCH 43/95] march prisma schema --- packages/generator/templates/app/db/schema.prisma | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/generator/templates/app/db/schema.prisma b/packages/generator/templates/app/db/schema.prisma index 83cd1b80f6..5f71671e39 100644 --- a/packages/generator/templates/app/db/schema.prisma +++ b/packages/generator/templates/app/db/schema.prisma @@ -3,7 +3,7 @@ datasource db { provider = "sqlite" - url = "file:./db.sqlite" + url = env("DATABASE_URL") } generator client { From 960cf5b43b0d8cca35769c3fa01e436542125fc6 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Sun, 15 Oct 2023 16:02:27 +0530 Subject: [PATCH 44/95] match package.json --- .../generator/templates/app/package.ts.json | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/packages/generator/templates/app/package.ts.json b/packages/generator/templates/app/package.ts.json index cb0cf36f8c..096e50a2e1 100644 --- a/packages/generator/templates/app/package.ts.json +++ b/packages/generator/templates/app/package.ts.json @@ -2,14 +2,25 @@ "name": "blitz-app-starter", "version": "0.1.1-beta.3", "private": true, - "prisma": { - "schema": "db/schema.prisma" - }, "scripts": { "dev": "blitz dev", "build": "blitz build", "start": "blitz start", - "lint": "next lint" + "studio": "blitz prisma studio", + "lint": "eslint --ignore-path .gitignore --ext .js,.ts,.tsx .", + "test": "vitest run --passWithNoTests", + "test:watch": "vitest", + "prepare": "husky install" + }, + "prisma": { + "schema": "db/schema.prisma" + }, + "prettier": { + "semi": false, + "printWidth": 100 + }, + "lint-staged": { + "*.{js,ts,tsx}": ["eslint --fix"] }, "dependencies": { "@blitzjs/auth": "2.0.0-beta.34", From 94730fc8bb2df90f09244b44ae455d33fde163a2 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Sun, 15 Oct 2023 16:04:02 +0530 Subject: [PATCH 45/95] match blitz-client and blitz-server files --- packages/generator/templates/app/src/app/blitz-client.ts | 8 +++++--- packages/generator/templates/app/src/app/blitz-server.ts | 3 ++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/generator/templates/app/src/app/blitz-client.ts b/packages/generator/templates/app/src/app/blitz-client.ts index 01ce04cf6e..26220d2104 100644 --- a/packages/generator/templates/app/src/app/blitz-client.ts +++ b/packages/generator/templates/app/src/app/blitz-client.ts @@ -3,11 +3,13 @@ import {AuthClientPlugin} from "@blitzjs/auth" import {setupBlitzClient} from "@blitzjs/next" import {BlitzRpcPlugin} from "@blitzjs/rpc" +export const authConfig = { + cookiePrefix: "__safeNameSlug__" +} + export const {withBlitz, BlitzProvider} = setupBlitzClient({ plugins: [ - AuthClientPlugin({ - cookiePrefix: "web-cookie-prefix", - }), + AuthClientPlugin(authConfig), BlitzRpcPlugin({}), ], }) diff --git a/packages/generator/templates/app/src/app/blitz-server.ts b/packages/generator/templates/app/src/app/blitz-server.ts index 09a1ab6912..3afe138de7 100644 --- a/packages/generator/templates/app/src/app/blitz-server.ts +++ b/packages/generator/templates/app/src/app/blitz-server.ts @@ -3,11 +3,12 @@ import {AuthServerPlugin, PrismaStorage,simpleRolesIsAuthorized} from "@blitzjs/ import db from "db" import {BlitzLogger} from "blitz" import {RpcServerPlugin} from "@blitzjs/rpc" +import { authConfig } from "./blitz-client" const {api, getBlitzContext, useAuthenticatedBlitzContext, invoke} = setupBlitzServer({ plugins: [ AuthServerPlugin({ - cookiePrefix: "web-cookie-prefix", + ...authConfig, storage: PrismaStorage(db), isAuthorized: simpleRolesIsAuthorized, }), From 90056b3fdef79ef5feb854bf3fcda4fb23400834 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Sun, 15 Oct 2023 16:05:15 +0530 Subject: [PATCH 46/95] remove vercel logo --- packages/generator/templates/app/public/vercel.svg | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 packages/generator/templates/app/public/vercel.svg diff --git a/packages/generator/templates/app/public/vercel.svg b/packages/generator/templates/app/public/vercel.svg deleted file mode 100644 index fbf0e25a65..0000000000 --- a/packages/generator/templates/app/public/vercel.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - \ No newline at end of file From c0d7f54ab15432a6f2fd146dec80e6fa36225113 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Sun, 15 Oct 2023 16:12:18 +0530 Subject: [PATCH 47/95] remove `next13` --- apps/next13/.env | 7 - apps/next13/.eslintrc.json | 3 - apps/next13/.gitignore | 38 --- apps/next13/CHANGELOG.md | 205 ------------ apps/next13/README.md | 26 -- .../app/(auth)/components/LoginForm.tsx | 126 -------- .../app/(auth)/components/SignupForm.tsx | 126 -------- apps/next13/app/(auth)/layout.tsx | 8 - apps/next13/app/(auth)/login/page.tsx | 9 - .../app/(auth)/mutations/changePassword.ts | 22 -- .../(auth)/mutations/forgotPassword.test.ts | 64 ---- .../app/(auth)/mutations/forgotPassword.ts | 40 --- apps/next13/app/(auth)/mutations/login.ts | 29 -- apps/next13/app/(auth)/mutations/logout.ts | 5 - .../(auth)/mutations/resetPassword.test.ts | 84 ----- .../app/(auth)/mutations/resetPassword.ts | 50 --- apps/next13/app/(auth)/mutations/signup.ts | 18 -- apps/next13/app/(auth)/signup/page.tsx | 8 - apps/next13/app/(auth)/validations.ts | 42 --- apps/next13/app/blitz-client.ts | 13 - apps/next13/app/blitz-server.ts | 32 -- apps/next13/app/core/components/Logout.tsx | 24 -- apps/next13/app/core/validators/zod.ts | 18 -- apps/next13/app/error.tsx | 24 -- apps/next13/app/layout.tsx | 23 -- apps/next13/app/loading.tsx | 4 - apps/next13/app/page.tsx | 166 ---------- apps/next13/app/styles/Home.module.css | 303 ------------------ apps/next13/app/styles/globals.css | 25 -- apps/next13/app/users/hooks/useCurrentUser.ts | 7 - .../app/users/queries/getCurrentUser.ts | 17 - apps/next13/db/dev.db | Bin 32768 -> 0 bytes apps/next13/db/index.ts | 8 - .../migrations/20230515094145_/migration.sql | 26 -- .../migrations/20230515094805_/migration.sql | 57 ---- apps/next13/db/migrations/migration_lock.toml | 3 - apps/next13/db/schema.prisma | 65 ---- apps/next13/integrations/.keep | 0 apps/next13/mailers/.keep | 0 apps/next13/mailers/forgotPasswordMailer.ts | 45 --- apps/next13/next.config.js | 10 - apps/next13/package.json | 42 --- apps/next13/pages/api/rpc/[[...blitz]].ts | 4 - apps/next13/public/blitz.svg | 5 - apps/next13/public/favicon.ico | Bin 25931 -> 0 bytes apps/next13/tsconfig.json | 29 -- apps/next13/types.ts | 15 - 47 files changed, 1875 deletions(-) delete mode 100644 apps/next13/.env delete mode 100644 apps/next13/.eslintrc.json delete mode 100644 apps/next13/.gitignore delete mode 100644 apps/next13/CHANGELOG.md delete mode 100644 apps/next13/README.md delete mode 100644 apps/next13/app/(auth)/components/LoginForm.tsx delete mode 100644 apps/next13/app/(auth)/components/SignupForm.tsx delete mode 100644 apps/next13/app/(auth)/layout.tsx delete mode 100644 apps/next13/app/(auth)/login/page.tsx delete mode 100644 apps/next13/app/(auth)/mutations/changePassword.ts delete mode 100644 apps/next13/app/(auth)/mutations/forgotPassword.test.ts delete mode 100644 apps/next13/app/(auth)/mutations/forgotPassword.ts delete mode 100644 apps/next13/app/(auth)/mutations/login.ts delete mode 100644 apps/next13/app/(auth)/mutations/logout.ts delete mode 100644 apps/next13/app/(auth)/mutations/resetPassword.test.ts delete mode 100644 apps/next13/app/(auth)/mutations/resetPassword.ts delete mode 100644 apps/next13/app/(auth)/mutations/signup.ts delete mode 100644 apps/next13/app/(auth)/signup/page.tsx delete mode 100644 apps/next13/app/(auth)/validations.ts delete mode 100644 apps/next13/app/blitz-client.ts delete mode 100644 apps/next13/app/blitz-server.ts delete mode 100644 apps/next13/app/core/components/Logout.tsx delete mode 100644 apps/next13/app/core/validators/zod.ts delete mode 100644 apps/next13/app/error.tsx delete mode 100644 apps/next13/app/layout.tsx delete mode 100644 apps/next13/app/loading.tsx delete mode 100644 apps/next13/app/page.tsx delete mode 100644 apps/next13/app/styles/Home.module.css delete mode 100644 apps/next13/app/styles/globals.css delete mode 100644 apps/next13/app/users/hooks/useCurrentUser.ts delete mode 100644 apps/next13/app/users/queries/getCurrentUser.ts delete mode 100644 apps/next13/db/dev.db delete mode 100644 apps/next13/db/index.ts delete mode 100644 apps/next13/db/migrations/20230515094145_/migration.sql delete mode 100644 apps/next13/db/migrations/20230515094805_/migration.sql delete mode 100644 apps/next13/db/migrations/migration_lock.toml delete mode 100644 apps/next13/db/schema.prisma delete mode 100644 apps/next13/integrations/.keep delete mode 100644 apps/next13/mailers/.keep delete mode 100644 apps/next13/mailers/forgotPasswordMailer.ts delete mode 100644 apps/next13/next.config.js delete mode 100644 apps/next13/package.json delete mode 100644 apps/next13/pages/api/rpc/[[...blitz]].ts delete mode 100644 apps/next13/public/blitz.svg delete mode 100644 apps/next13/public/favicon.ico delete mode 100644 apps/next13/tsconfig.json delete mode 100644 apps/next13/types.ts diff --git a/apps/next13/.env b/apps/next13/.env deleted file mode 100644 index c498ab59bf..0000000000 --- a/apps/next13/.env +++ /dev/null @@ -1,7 +0,0 @@ -# Environment variables declared in this file are automatically made available to Prisma. -# See the documentation for more detail: https://pris.ly/d/prisma-schema#accessing-environment-variables-from-the-schema - -# Prisma supports the native connection string format for PostgreSQL, MySQL, SQLite, SQL Server, MongoDB and CockroachDB. -# See the documentation for all the connection string options: https://pris.ly/d/connection-strings - -DATABASE_URL="file:./dev.db" \ No newline at end of file diff --git a/apps/next13/.eslintrc.json b/apps/next13/.eslintrc.json deleted file mode 100644 index bffb357a71..0000000000 --- a/apps/next13/.eslintrc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "next/core-web-vitals" -} diff --git a/apps/next13/.gitignore b/apps/next13/.gitignore deleted file mode 100644 index 4f360c89d2..0000000000 --- a/apps/next13/.gitignore +++ /dev/null @@ -1,38 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* -.pnpm-debug.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts - -.vscode diff --git a/apps/next13/CHANGELOG.md b/apps/next13/CHANGELOG.md deleted file mode 100644 index 8f5a2ec5f8..0000000000 --- a/apps/next13/CHANGELOG.md +++ /dev/null @@ -1,205 +0,0 @@ -# next-blitz-auth - -## 0.1.1-beta.10 - -### Patch Changes - -- Updated dependencies [30fd61316] -- Updated dependencies [3ddb57072] -- Updated dependencies [fe8c937d2] - - blitz@2.0.0-beta.34 - - @blitzjs/auth@2.0.0-beta.34 - - @blitzjs/next@2.0.0-beta.34 - - @blitzjs/rpc@2.0.0-beta.34 - - @blitzjs/config@2.0.0-beta.34 - -## 0.1.1-beta.9 - -### Patch Changes - -- Updated dependencies [19898a488] -- Updated dependencies [6811eab1a] -- Updated dependencies [022392c12] - - @blitzjs/rpc@2.0.0-beta.33 - - blitz@2.0.0-beta.33 - - @blitzjs/next@2.0.0-beta.33 - - @blitzjs/auth@2.0.0-beta.33 - - @blitzjs/config@2.0.0-beta.33 - -## 0.1.1-beta.8 - -### Patch Changes - -- Updated dependencies [82649f341] -- Updated dependencies [8b01175b4] - - blitz@2.0.0-beta.32 - - @blitzjs/next@2.0.0-beta.32 - - @blitzjs/auth@2.0.0-beta.32 - - @blitzjs/rpc@2.0.0-beta.32 - - @blitzjs/config@2.0.0-beta.32 - -## 0.1.1-beta.7 - -### Patch Changes - -- Updated dependencies [90f1741da] -- Updated dependencies [df3265b85] - - @blitzjs/auth@2.0.0-beta.31 - - blitz@2.0.0-beta.31 - - @blitzjs/rpc@2.0.0-beta.31 - - @blitzjs/next@2.0.0-beta.31 - - @blitzjs/config@2.0.0-beta.31 - -## 0.1.1-beta.6 - -### Patch Changes - -- Updated dependencies [c5572bec6] -- Updated dependencies [727734955] - - @blitzjs/auth@2.0.0-beta.30 - - blitz@2.0.0-beta.30 - - @blitzjs/rpc@2.0.0-beta.30 - - @blitzjs/next@2.0.0-beta.30 - - @blitzjs/config@2.0.0-beta.30 - -## 0.1.1-beta.5 - -### Patch Changes - -- Updated dependencies [b6b9a1c5a] -- Updated dependencies [61888d1a3] - - @blitzjs/auth@2.0.0-beta.29 - - blitz@2.0.0-beta.29 - - @blitzjs/rpc@2.0.0-beta.29 - - @blitzjs/next@2.0.0-beta.29 - - @blitzjs/config@2.0.0-beta.29 - -## 0.1.1-beta.4 - -### Patch Changes - -- Updated dependencies [5166e5e03] -- Updated dependencies [2533caf48] -- Updated dependencies [c7ac86b85] -- Updated dependencies [1bb3a6556] - - @blitzjs/auth@2.0.0-beta.28 - - @blitzjs/next@2.0.0-beta.28 - - @blitzjs/rpc@2.0.0-beta.28 - - blitz@2.0.0-beta.28 - - @blitzjs/config@2.0.0-beta.28 - -## 0.1.1-beta.3 - -### Patch Changes - -- Updated dependencies [eda14fa8a] -- Updated dependencies [3d004dc41] -- Updated dependencies [29c2b029a] - - @blitzjs/next@2.0.0-beta.27 - - @blitzjs/rpc@2.0.0-beta.27 - - @blitzjs/auth@2.0.0-beta.27 - - blitz@2.0.0-beta.27 - - @blitzjs/config@2.0.0-beta.27 - -## 0.1.1-beta.2 - -### Patch Changes - -- Updated dependencies [e82a79be5] -- Updated dependencies [38d945a3f] - - @blitzjs/auth@2.0.0-beta.26 - - @blitzjs/next@2.0.0-beta.26 - - @blitzjs/rpc@2.0.0-beta.26 - - blitz@2.0.0-beta.26 - - @blitzjs/config@2.0.0-beta.26 - -## 0.1.1-beta.1 - -### Patch Changes - -- Updated dependencies [f84d77a42] - - @blitzjs/rpc@2.0.0-beta.25 - - @blitzjs/next@2.0.0-beta.25 - - @blitzjs/auth@2.0.0-beta.25 - - @blitzjs/config@2.0.0-beta.25 - - blitz@2.0.0-beta.25 - -## 0.1.1-beta.0 - -### Patch Changes - -- 37aeaa7fa: feature: Nextjs 13 App Directory Utility Methods - - ### 🔧 New Blitz Auth Hook `useAuthenticatedBlitzContext` - - This hook is implemented as the replacement of the [`BlitzPage` seurity auth utilities](https://blitzjs.com/docs/authorization#secure-your-pages) provided for the pages directory to work with React Server Components in the Nextjs 13 app directory - It can be used in any asynchronous server component be it in `page.ts` or in the layouts in `layout.ts` - It uses the new [`redirect` function](https://beta.nextjs.org/docs/api-reference/redirect) to provide the required authorization in server side - - #### API - - ```ts - useAuthenticatedBlitzContext({ - redirectTo, - redirectAuthenticatedTo, - role, - }: { - redirectTo?: string | RouteUrlObject - redirectAuthenticatedTo?: string | RouteUrlObject | ((ctx: Ctx) => string | RouteUrlObject) - role?: string | string[] - }): Promise - ``` - - #### Usage - - **Example Usage in React Server Component in `app` directory in Next 13** - - ```ts - import {getAppSession, useAuthenticatedBlitzContext} from "src/blitz-server" - ... - await useAuthenticatedBlitzContext({ - redirectTo: "/auth/login", - role: ["admin"], - redirectAuthenticatedTo: "/dashboard", - }) - ``` - - ### 🔧 New Blitz RPC Hook `invokeResolver` - - #### API - - ```ts - invokeResolver any, TInput = FirstParam>( - queryFn: T, - params: TInput, - ): Promise> - ``` - - #### Example Usage - - ```ts - ... - import {invokeResolver, useAuthenticatedBlitzContext} from "../src/blitz-server" - import getCurrentUser from "../src/users/queries/getCurrentUser" - - export default async function Home() { - await useAuthenticatedBlitzContext({ - redirectTo: "/auth/login", - }) - const user = await invokeResolver(getCurrentUser, null) - ... - ``` - -- Updated dependencies [cadefb88e] -- Updated dependencies [6f18cbdc9] -- Updated dependencies [acc07ce94] -- Updated dependencies [ea7561b8e] -- Updated dependencies [9529dbd6f] -- Updated dependencies [ea7561b8e] -- Updated dependencies [6e88a847f] -- Updated dependencies [37aeaa7fa] - - blitz@2.0.0-beta.24 - - @blitzjs/auth@2.0.0-beta.24 - - @blitzjs/next@2.0.0-beta.24 - - @blitzjs/rpc@2.0.0-beta.24 - - @blitzjs/config@2.0.0-beta.24 diff --git a/apps/next13/README.md b/apps/next13/README.md deleted file mode 100644 index 8b59024262..0000000000 --- a/apps/next13/README.md +++ /dev/null @@ -1,26 +0,0 @@ -# Next.js 13 + Blitz Auth - -This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) + [`Blitz Auth`](https://blitzjs.com/docs/auth). - -## Getting Started - -First, run the development server: - -```bash -npm run dev -# or -yarn dev -``` - -Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. - -You can go to the `/signup` page and create a new account. - -## Learn More - -To learn more about Next.js and Blitz.js, take a look at the following resources: - -- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. -- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. -- [Blitz.js Documentation](https://blitzjs.com/docs/) — learn about Blitz.js. -- [Blitz Auth Documentation](https://blitzjs.com/docs/auth) — learn about Blitz Auth plugin. diff --git a/apps/next13/app/(auth)/components/LoginForm.tsx b/apps/next13/app/(auth)/components/LoginForm.tsx deleted file mode 100644 index 707219ff89..0000000000 --- a/apps/next13/app/(auth)/components/LoginForm.tsx +++ /dev/null @@ -1,126 +0,0 @@ -import Link from "next/link" -import login from "../mutations/login" -import {Login} from "../validations" -import {useMutation} from "@blitzjs/rpc" -import {startTransition} from "react" -import {useRouter} from "next/navigation" -import {FieldApi, createFormFactory} from "@tanstack/react-form" -import * as z from "zod" -import {AuthenticationError} from "blitz" -import { zodValidate } from "@/app/core/validators/zod" - -type TLogin = z.infer - -const formFactory = createFormFactory({ - defaultValues: { - email: "", - password: "", - }, -}) - -function FieldInfo({field}: {field: FieldApi}) { - return ( - <> - {field.state.meta.touchedError ? {field.state.meta.touchedError} : null}{" "} - {field.state.meta.isValidating ? "Validating..." : null} - - ) -} - -export const LoginForm = () => { - const [loginMutation] = useMutation(login) - const router = useRouter() - const form = formFactory.useForm({ - onSubmit: async (values, formApi) => { - try { - await loginMutation(values) - startTransition(() => { - // Refresh the current route and fetch new data from the server without - // losing client-side browser or React state. - router.refresh() - }) - } catch (error: any) { - if ( - error instanceof AuthenticationError || - error.toString().includes("AuthenticationError") - ) { - return (formApi.state.fieldMeta.password.touchedError = - "Invalid email or password. Please try again.") - } - if (error.code === "P2002" && error.meta?.target?.includes("email")) { - // Error "P2002" comes from Prisma (https://www.prisma.io/docs/reference/api-reference/error-reference#p2002) - return (formApi.state.fieldMeta.email.touchedError = - "This email is already being used. Please try again.") - } else { - return (formApi.state.fieldMeta.password.touchedError = error.toString()) - } - } - }, - }) - return ( -
-

Login

- - -
-
- {/* A type-safe and pre-bound field component*/} - { - return zodValidate(Login, "email")(value) - }} - children={(field) => { - // Avoid hasty abstractions. Render props are great! - return ( - <> - - - - - ) - }} - /> - { - return zodValidate(Login, "password")(value) - }} - children={(field) => { - // Avoid hasty abstractions. Render props are great! - return ( - <> - - - - - ) - }} - /> -
- [state.canSubmit, state.isSubmitting]} - children={([canSubmit, isSubmitting]) => ( - - )} - /> - -
- -
- Or Sign Up -
-
- ) -} - -export default LoginForm diff --git a/apps/next13/app/(auth)/components/SignupForm.tsx b/apps/next13/app/(auth)/components/SignupForm.tsx deleted file mode 100644 index 44107d94a9..0000000000 --- a/apps/next13/app/(auth)/components/SignupForm.tsx +++ /dev/null @@ -1,126 +0,0 @@ -import Link from "next/link" -import {Signup} from "../validations" -import {useMutation} from "@blitzjs/rpc" -import {startTransition} from "react" -import {useRouter} from "next/navigation" -import {FieldApi, createFormFactory} from "@tanstack/react-form" -import * as z from "zod" -import {AuthenticationError} from "blitz" -import { zodValidate } from "@/app/core/validators/zod" -import signup from "../mutations/signup" - -type TSignup = z.infer - -const formFactory = createFormFactory({ - defaultValues: { - email: "", - password: "", - }, -}) - -function FieldInfo({field}: {field: FieldApi}) { - return ( - <> - {field.state.meta.touchedError ? {field.state.meta.touchedError} : null}{" "} - {field.state.meta.isValidating ? "Validating..." : null} - - ) -} - -export const SignupForm = () => { - const [signupMutation] = useMutation(signup) - const router = useRouter() - const form = formFactory.useForm({ - onSubmit: async (values, formApi) => { - try { - await signupMutation(values) - startTransition(() => { - // Refresh the current route and fetch new data from the server without - // losing client-side browser or React state. - router.refresh() - }) - } catch (error: any) { - if ( - error instanceof AuthenticationError || - error.toString().includes("AuthenticationError") - ) { - return (formApi.state.fieldMeta.password.touchedError = - "Invalid email or password. Please try again.") - } - if (error.code === "P2002" && error.meta?.target?.includes("email")) { - // Error "P2002" comes from Prisma (https://www.prisma.io/docs/reference/api-reference/error-reference#p2002) - return (formApi.state.fieldMeta.email.touchedError = - "This email is already being used. Please try again.") - } else { - return (formApi.state.fieldMeta.password.touchedError = error.toString()) - } - } - }, - }) - return ( -
-

Signup

- - -
-
- {/* A type-safe and pre-bound field component*/} - { - return zodValidate(Signup, "email")(value) - }} - children={(field) => { - // Avoid hasty abstractions. Render props are great! - return ( - <> - - - - - ) - }} - /> - { - return zodValidate(Signup, "password")(value) - }} - children={(field) => { - // Avoid hasty abstractions. Render props are great! - return ( - <> - - - - - ) - }} - /> -
- [state.canSubmit, state.isSubmitting]} - children={([canSubmit, isSubmitting]) => ( - - )} - /> - -
- -
- Or Sign Up -
-
- ) -} - -export default SignupForm diff --git a/apps/next13/app/(auth)/layout.tsx b/apps/next13/app/(auth)/layout.tsx deleted file mode 100644 index 4b7d5e5bb5..0000000000 --- a/apps/next13/app/(auth)/layout.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import {useAuthenticatedBlitzContext} from "app/blitz-server" - -export default async function AuthLayout({children}: {children: React.ReactNode}) { - await useAuthenticatedBlitzContext({ - redirectAuthenticatedTo: "/", - }) - return <>{children} -} diff --git a/apps/next13/app/(auth)/login/page.tsx b/apps/next13/app/(auth)/login/page.tsx deleted file mode 100644 index 8b1d729fb4..0000000000 --- a/apps/next13/app/(auth)/login/page.tsx +++ /dev/null @@ -1,9 +0,0 @@ -"use client" - -import {LoginForm} from "../components/LoginForm" - -const LoginPage = () => { - return -} - -export default LoginPage diff --git a/apps/next13/app/(auth)/mutations/changePassword.ts b/apps/next13/app/(auth)/mutations/changePassword.ts deleted file mode 100644 index a18921372f..0000000000 --- a/apps/next13/app/(auth)/mutations/changePassword.ts +++ /dev/null @@ -1,22 +0,0 @@ -import {NotFoundError} from "blitz" -import db from "@/db" -import {authenticateUser} from "./login" -import {ChangePassword} from "../validations" -import {resolver} from "@blitzjs/rpc" -import {SecurePassword} from "@blitzjs/auth/secure-password" - -export default resolver.pipe( - resolver.zod(ChangePassword), - resolver.authorize(), - async ({currentPassword, newPassword}, ctx) => { - const user = await db.user.findFirst({where: {id: ctx.session.userId}}) - if (!user) throw new NotFoundError() - await authenticateUser(user.email, currentPassword) - const hashedPassword = await SecurePassword.hash(newPassword.trim()) - await db.user.update({ - where: {id: user.id}, - data: {hashedPassword: hashedPassword}, - }) - return true - }, -) diff --git a/apps/next13/app/(auth)/mutations/forgotPassword.test.ts b/apps/next13/app/(auth)/mutations/forgotPassword.test.ts deleted file mode 100644 index c5678da0e2..0000000000 --- a/apps/next13/app/(auth)/mutations/forgotPassword.test.ts +++ /dev/null @@ -1,64 +0,0 @@ -import {vi, describe, it, beforeEach} from "vitest" -import db from "@/db" -import {hash256} from "@blitzjs/auth" -import forgotPassword from "./forgotPassword" -import previewEmail from "preview-email" -import {Ctx} from "@blitzjs/next" - -beforeEach(async () => { - await db.$reset() -}) - -const generatedToken = "plain-token" -vi.mock("@blitzjs/auth", async () => { - const auth = await vi.importActual>("@blitzjs/auth")! - return { - ...auth, - generateToken: () => generatedToken, - } -}) - -vi.mock("preview-email", () => ({default: vi.fn()})) - -describe("forgotPassword mutation", () => { - it("does not throw error if user doesn't exist", async () => { - await expect(forgotPassword({email: "no-user@email.com"}, {} as Ctx)).resolves.not.toThrow() - }) - - it("works correctly", async () => { - // Create test user - const user = await db.user.create({ - data: { - email: "user@example.com", - tokens: { - // Create old token to ensure it's deleted - create: { - type: "RESET_PASSWORD", - hashedToken: "token", - expiresAt: new Date(), - sentTo: "user@example.com", - }, - }, - }, - include: {tokens: true}, - }) - - // Invoke the mutation - await forgotPassword({email: user.email}, {} as Ctx) - - const tokens = await db.token.findMany({where: {userId: user.id}}) - const token = tokens[0] - if (!user.tokens[0]) throw new Error("Missing user token") - if (!token) throw new Error("Missing token") - - // delete's existing tokens - expect(tokens.length).toBe(1) - - expect(token.id).not.toBe(user.tokens[0].id) - expect(token.type).toBe("RESET_PASSWORD") - expect(token.sentTo).toBe(user.email) - expect(token.hashedToken).toBe(hash256(generatedToken)) - expect(token.expiresAt > new Date()).toBe(true) - expect(previewEmail).toBeCalled() - }) -}) diff --git a/apps/next13/app/(auth)/mutations/forgotPassword.ts b/apps/next13/app/(auth)/mutations/forgotPassword.ts deleted file mode 100644 index 56249a85c4..0000000000 --- a/apps/next13/app/(auth)/mutations/forgotPassword.ts +++ /dev/null @@ -1,40 +0,0 @@ -import {generateToken, hash256} from "@blitzjs/auth" -import {resolver} from "@blitzjs/rpc" -import db from "@/db" -import {ForgotPassword} from "../validations" - -const RESET_PASSWORD_TOKEN_EXPIRATION_IN_HOURS = 4 -//@ts-ignore -export default resolver.pipe(resolver.zod(ForgotPassword), async ({email}) => { - // 1. Get the user - const user = await db.user.findFirst({where: {email: email.toLowerCase()}}) - - // 2. Generate the token and expiration date. - const token = generateToken() - const hashedToken = hash256(token) - const expiresAt = new Date() - expiresAt.setHours(expiresAt.getHours() + RESET_PASSWORD_TOKEN_EXPIRATION_IN_HOURS) - - // 3. If user with this email was found - if (user) { - // 4. Delete any existing password reset tokens - await db.token.deleteMany({where: {type: "RESET_PASSWORD", userId: user.id}}) - // 5. Save this new token in the database. - await db.token.create({ - data: { - user: {connect: {id: user.id}}, - type: "RESET_PASSWORD", - expiresAt, - hashedToken, - sentTo: user.email, - }, - }) - // 6. Send the email - } else { - // 7. If no user found wait the same time so attackers can't tell the difference - await new Promise((resolve) => setTimeout(resolve, 750)) - } - - // 8. Return the same result whether a password reset email was sent or not - return -}) diff --git a/apps/next13/app/(auth)/mutations/login.ts b/apps/next13/app/(auth)/mutations/login.ts deleted file mode 100644 index 4811af875a..0000000000 --- a/apps/next13/app/(auth)/mutations/login.ts +++ /dev/null @@ -1,29 +0,0 @@ -import {resolver} from "@blitzjs/rpc" -import {AuthenticationError} from "blitz" -import db from "@/db" -import {Login} from "../validations" -import { SecurePassword } from "@blitzjs/auth/secure-password" - -export const authenticateUser = async (rawEmail: string, rawPassword: string) => { - const {email, password} = Login.parse({email: rawEmail, password: rawPassword}) - const user = await db.user.findFirst({where: {email}}) - if (!user) throw new AuthenticationError() - - const result = await SecurePassword.verify(user.hashedPassword, password) - - if (result === SecurePassword.VALID_NEEDS_REHASH) { - // Upgrade hashed password with a more secure hash - const improvedHash = await SecurePassword.hash(password) - await db.user.update({where: {id: user.id}, data: {hashedPassword: improvedHash}}) - } - - const {hashedPassword, ...rest} = user - return rest -} - -export default resolver.pipe(resolver.zod(Login), async ({email, password}, ctx) => { - const user = await authenticateUser(email, password) - await ctx.session.$create({userId: user.id, role: user.role}) - console.log("user", user) - return user -}) diff --git a/apps/next13/app/(auth)/mutations/logout.ts b/apps/next13/app/(auth)/mutations/logout.ts deleted file mode 100644 index ca7e6de856..0000000000 --- a/apps/next13/app/(auth)/mutations/logout.ts +++ /dev/null @@ -1,5 +0,0 @@ -import {Ctx} from "blitz" - -export default async function logout(_: any, ctx: Ctx) { - return await ctx.session.$revoke() -} diff --git a/apps/next13/app/(auth)/mutations/resetPassword.test.ts b/apps/next13/app/(auth)/mutations/resetPassword.test.ts deleted file mode 100644 index 7ffa6c35ce..0000000000 --- a/apps/next13/app/(auth)/mutations/resetPassword.test.ts +++ /dev/null @@ -1,84 +0,0 @@ -import {vi, describe, it, beforeEach, expect} from "vitest" -import resetPassword from "./resetPassword" -import db from "@/db" -import {hash256} from "@blitzjs/auth" -import {SecurePassword} from "@blitzjs/auth/secure-password" - -beforeEach(async () => { - await db.$reset() -}) - -const mockCtx: any = { - session: { - $create: vi.fn(), - }, -} - -describe("resetPassword mutation", () => { - it("works correctly", async () => { - expect(true).toBe(true) - - // Create test user - const goodToken = "randomPasswordResetToken" - const expiredToken = "expiredRandomPasswordResetToken" - const future = new Date() - future.setHours(future.getHours() + 4) - const past = new Date() - past.setHours(past.getHours() - 4) - - const user = await db.user.create({ - data: { - email: "user@example.com", - tokens: { - // Create old token to ensure it's deleted - create: [ - { - type: "RESET_PASSWORD", - hashedToken: hash256(expiredToken), - expiresAt: past, - sentTo: "user@example.com", - }, - { - type: "RESET_PASSWORD", - hashedToken: hash256(goodToken), - expiresAt: future, - sentTo: "user@example.com", - }, - ], - }, - }, - include: {tokens: true}, - }) - - const newPassword = "newPassword" - - // Non-existent token - await expect( - resetPassword({token: "no-token", password: "", passwordConfirmation: ""}, mockCtx), - ).rejects.toThrowError() - - // Expired token - await expect( - resetPassword( - {token: expiredToken, password: newPassword, passwordConfirmation: newPassword}, - mockCtx, - ), - ).rejects.toThrowError() - - // Good token - await resetPassword( - {token: goodToken, password: newPassword, passwordConfirmation: newPassword}, - mockCtx, - ) - - // Delete's the token - const numberOfTokens = await db.token.count({where: {userId: user.id}}) - expect(numberOfTokens).toBe(0) - - // Updates user's password - const updatedUser = await db.user.findFirst({where: {id: user.id}}) - expect(await SecurePassword.verify(updatedUser!.hashedPassword, newPassword)).toBe( - SecurePassword.VALID, - ) - }) -}) diff --git a/apps/next13/app/(auth)/mutations/resetPassword.ts b/apps/next13/app/(auth)/mutations/resetPassword.ts deleted file mode 100644 index adcde0216a..0000000000 --- a/apps/next13/app/(auth)/mutations/resetPassword.ts +++ /dev/null @@ -1,50 +0,0 @@ -import {hash256} from "@blitzjs/auth" -import db from "@/db" -import {ResetPassword} from "../validations" -import login from "./login" - -export class ResetPasswordError extends Error { - name = "ResetPasswordError" - message = "Reset password link is invalid or it has expired." -} - -export default async function resetPassword(input: any, ctx: any) { - ResetPassword.parse(input) - // 1. Try to find this token in the database - const hashedToken = hash256(input.token) - const possibleToken = await db.token.findFirst({ - where: {hashedToken, type: "RESET_PASSWORD"}, - include: {user: true}, - }) - - // 2. If token not found, error - if (!possibleToken) { - throw new ResetPasswordError() - } - const savedToken = possibleToken - - // 3. Delete token so it can't be used again - await db.token.delete({where: {id: savedToken.id}}) - - // 4. If token has expired, error - if (savedToken.expiresAt < new Date()) { - throw new ResetPasswordError() - } - - // 5. Since token is valid, now we can update the user's password - // const hashedPassword = await SecurePassword.hash(input.password.trim()) - const user = await db.user.update({ - where: {id: savedToken.userId}, - data: { - hashedPassword: input.password, - }, - }) - - // 6. Revoke all existing login sessions for this user - await db.session.deleteMany({where: {userId: user.id}}) - - // 7. Now log the user in with the new credentials - await login({email: user.email, password: input.password}, ctx) - - return true -} diff --git a/apps/next13/app/(auth)/mutations/signup.ts b/apps/next13/app/(auth)/mutations/signup.ts deleted file mode 100644 index fe042ba76b..0000000000 --- a/apps/next13/app/(auth)/mutations/signup.ts +++ /dev/null @@ -1,18 +0,0 @@ -import db from "@/db" -import {SecurePassword} from "@blitzjs/auth/secure-password" - -export default async function signup(input: {password: string; email: string}, ctx: any) { - const blitzContext = ctx - const hashedPassword = await SecurePassword.hash((input.password as string) || "test-password") - const email = (input.email as string) || "test" + Math.random() + "@test.com" - const user = await db.user.create({ - data: {email, hashedPassword}, - }) - - await blitzContext.session.$create({ - userId: user.id, - role: "user", - }) - - return {userId: blitzContext.session.userId, ...user, email: input.email} -} diff --git a/apps/next13/app/(auth)/signup/page.tsx b/apps/next13/app/(auth)/signup/page.tsx deleted file mode 100644 index c53a5a84f2..0000000000 --- a/apps/next13/app/(auth)/signup/page.tsx +++ /dev/null @@ -1,8 +0,0 @@ -"use client" -import SignupForm from "../components/SignupForm" - -const SignUp = () => { - return -} - -export default SignUp diff --git a/apps/next13/app/(auth)/validations.ts b/apps/next13/app/(auth)/validations.ts deleted file mode 100644 index f13218b685..0000000000 --- a/apps/next13/app/(auth)/validations.ts +++ /dev/null @@ -1,42 +0,0 @@ -import {z} from "zod" - -export const email = z - .string() - .email() - .transform((str) => str.toLowerCase().trim()) - -export const password = z - .string() - .min(10) - .max(100) - .transform((str) => str.trim()) - -export const Signup = z.object({ - email, - password, -}) - -export const Login = z.object({ - email, - password: z.string(), -}) - -export const ForgotPassword = z.object({ - email, -}) - -export const ResetPassword = z - .object({ - password: password, - passwordConfirmation: password, - token: z.string(), - }) - .refine((data) => data.password === data.passwordConfirmation, { - message: "Passwords don't match", - path: ["passwordConfirmation"], // set the path of the error - }) - -export const ChangePassword = z.object({ - currentPassword: z.string(), - newPassword: password, -}) diff --git a/apps/next13/app/blitz-client.ts b/apps/next13/app/blitz-client.ts deleted file mode 100644 index cb9b84c117..0000000000 --- a/apps/next13/app/blitz-client.ts +++ /dev/null @@ -1,13 +0,0 @@ -"use client" -import {AuthClientPlugin} from "@blitzjs/auth" -import {setupBlitzClient} from "@blitzjs/next" -import {BlitzRpcPlugin} from "@blitzjs/rpc" - -export const {withBlitz, useSession, BlitzProvider} = setupBlitzClient({ - plugins: [ - AuthClientPlugin({ - cookiePrefix: "web-cookie-prefix", - }), - BlitzRpcPlugin({}), - ], -}) diff --git a/apps/next13/app/blitz-server.ts b/apps/next13/app/blitz-server.ts deleted file mode 100644 index 91668c5420..0000000000 --- a/apps/next13/app/blitz-server.ts +++ /dev/null @@ -1,32 +0,0 @@ -import type {BlitzCliConfig} from "blitz" -import {setupBlitzServer} from "@blitzjs/next" -import {AuthServerPlugin, PrismaStorage} from "@blitzjs/auth" -import db from "../db" -import {simpleRolesIsAuthorized} from "@blitzjs/auth" -import {BlitzLogger} from "blitz" -import {RpcServerPlugin} from "@blitzjs/rpc" - -const {api, getBlitzContext, useAuthenticatedBlitzContext, invoke} = setupBlitzServer({ - plugins: [ - AuthServerPlugin({ - cookiePrefix: "web-cookie-prefix", - storage: PrismaStorage(db), - isAuthorized: simpleRolesIsAuthorized, - }), - RpcServerPlugin({ - logging: { - disablelevel: "debug", - }, - onInvokeError(error) { - console.log("onInvokeError", error) - }, - }), - ], - logger: BlitzLogger({}), -}) - -export {api, getBlitzContext, useAuthenticatedBlitzContext, invoke} - -export const cliConfig: BlitzCliConfig = { - customTemplates: "src/templates", -} diff --git a/apps/next13/app/core/components/Logout.tsx b/apps/next13/app/core/components/Logout.tsx deleted file mode 100644 index 3b2ec30242..0000000000 --- a/apps/next13/app/core/components/Logout.tsx +++ /dev/null @@ -1,24 +0,0 @@ -"use client" -import styles from "@/app/styles/Home.module.css" -import logout from "@/app/(auth)/mutations/logout" -import {useRouter} from "next/navigation" -import {useMutation} from "@blitzjs/rpc" - -export default function LogoutButton() { - const router = useRouter() - const [logoutMutation] = useMutation(logout) - return ( - <> - - - ) -} diff --git a/apps/next13/app/core/validators/zod.ts b/apps/next13/app/core/validators/zod.ts deleted file mode 100644 index 623df9b212..0000000000 --- a/apps/next13/app/core/validators/zod.ts +++ /dev/null @@ -1,18 +0,0 @@ -import * as z from "zod" - -export function zodValidate, U = keyof T>(schema: T, field: U) { - return (value: string): string => { - const result = schema - .pick({ - [field as string]: true, - }) - .safeParse({ - [field as string]: value, - }) - if (result.success) { - return "" - } else { - return JSON.parse(result.error.message)[0].message - } - } -} diff --git a/apps/next13/app/error.tsx b/apps/next13/app/error.tsx deleted file mode 100644 index 2c6571bf17..0000000000 --- a/apps/next13/app/error.tsx +++ /dev/null @@ -1,24 +0,0 @@ -"use client" // Error components must be Client components - -import React, {useEffect} from "react" - -export default function Error({error, reset}: {error: Error; reset: () => void}) { - useEffect(() => { - // Log the error to an error reporting service - console.error(error) - }, [error]) - - return ( -
-

Something went wrong!

- -
- ) -} diff --git a/apps/next13/app/layout.tsx b/apps/next13/app/layout.tsx deleted file mode 100644 index 1b88cdda55..0000000000 --- a/apps/next13/app/layout.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import "@/app/styles/globals.css" -import {BlitzProvider} from "./blitz-client" -import {Inter} from "next/font/google" - -const inter = Inter({subsets: ["latin"]}) - -export const metadata = { - title: "New Blitz App", - description: "Generated by blitz new ", -} - -export default function RootLayout({children}: {children: React.ReactNode}) { - return ( - - - - <>{children} - - - - ) -} - diff --git a/apps/next13/app/loading.tsx b/apps/next13/app/loading.tsx deleted file mode 100644 index 2fafa2a60a..0000000000 --- a/apps/next13/app/loading.tsx +++ /dev/null @@ -1,4 +0,0 @@ -export default function Loading() { - // Or a custom loading skeleton component - return "Loading..." -} diff --git a/apps/next13/app/page.tsx b/apps/next13/app/page.tsx deleted file mode 100644 index 2df6534509..0000000000 --- a/apps/next13/app/page.tsx +++ /dev/null @@ -1,166 +0,0 @@ -import Link from "next/link" -import {invoke} from "./blitz-server" -import LogoutButton from "./core/components/Logout" -import styles from "./styles/Home.module.css" -import getCurrentUser from "./users/queries/getCurrentUser" - -export default async function Home() { - const currentUser = await invoke(getCurrentUser, null) - return ( - <> -
-
-
-

- Congrats! Your app is ready, including user sign-up and log-in. -

-
- -
-
-
-
- - - - - -
- -

Your database & authentication is ready. Try it by signing up.

- - {/* Auth */} - -
- {currentUser ? ( - <> - -
- User id: {currentUser.id} -
- User role: {currentUser.role} -
- - ) : ( - <> - - Sign Up - - - Login - - - )} -
-
- -
- {/* Instructions */} -
-

- Add a new model by running the following in your terminal: -

- -
-
- 1 -
-                      blitz generate all project
-                    
-
- -
- 2 -
-                      Ctrl + c
-                    
-
- -
- 3 -
-                      blitz dev
-                    
-
- -
- 4 -
-                      
-                        Go to{" "}
-                        {/* @ts-ignore: TODO remove after scaffolding */}
-                        
-                          /projects
-                        
-                      
-                    
-
-
-
- {/* Links */} - -
-
-
- - -
- - ) -} diff --git a/apps/next13/app/styles/Home.module.css b/apps/next13/app/styles/Home.module.css deleted file mode 100644 index 3453d1ee11..0000000000 --- a/apps/next13/app/styles/Home.module.css +++ /dev/null @@ -1,303 +0,0 @@ -.container { - display: flex; - flex-direction: column; - height: 100vh; -} - -.main { - flex: 1; - padding: 0rem 1rem; - display: flex; - flex-direction: column; -} - -.wrapper { - display: flex; - flex-direction: column; - gap: 2rem; -} - -.frost { - background: rgba(255, 255, 255, 0.2); - border-radius: 16px; - box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1); - backdrop-filter: blur(5px); - -webkit-backdrop-filter: blur(5px); - border: 1px solid rgba(255, 255, 255, 0.31); -} - -.header { - display: flex; - flex-direction: column; - padding: 4rem 0rem 2rem 0rem; - text-align: center; - gap: 2rem; -} - -.header h1 { - max-width: 620px; - align-self: center; -} - -.body { - composes: frost; - border-radius: var(--border-radius); - display: flex; - padding: 1rem; - width: 100%; - flex-direction: row; - align-self: center; - max-width: var(--screen-width); -} - -.instructions { - display: inline-flex; - flex-direction: column; - padding: 1rem; - width: 100%; -} - -.globe { - position: fixed; - width: 350vmin; - height: 75vmin; - left: 20%; - top: 50%; - transform: translate(-50%, calc(-50% + 40px)); - z-index: -1; - border-radius: 100%; - background-image: radial-gradient( - 95.63% 95.63% at 95.92% 0%, - rgba(255, 255, 255, 0.62) 0%, - #8155ff38 60.42%, - #002fff5c 169% - ); - filter: blur(8vmin); -} - -.footer { - display: flex; - padding: 2rem 0; - justify-content: center; - align-items: center; -} - -.footer span { - margin-right: 0.2rem; -} - -.code { - display: flex; - align-items: center; - gap: 0.5rem; -} - -.code span { - background: rgba(124, 58, 237, 50%); - border-radius: 50rem; - font-size: 14px; - font-weight: 500; - padding: 17px; - width: 20px; - height: 20px; - display: flex; - align-items: center; - justify-content: center; - color: rgb(57, 33, 97); -} - -.code pre { - background: rgba(124, 58, 237, 12%); - border-radius: 4px; - padding: 0.7em 1.4em; - text-align: center; -} - -.code code { - font-size: 0.86em; - font-weight: bold; - color: rgb(124, 58, 237); - font-family: Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, - Bitstream Vera Sans Mono, Courier New, monospace; -} - -.toastContainer { - border: 1px solid #edff; - padding: 0 1rem; - background: #eeff; - color: #62af; - text-align: center; -} - -.toastContainer strong { - color: rgb(124, 58, 237); -} - -.textLink { - color: rgb(124, 58, 237); - background: linear-gradient(to right, rgba(231, 216, 246, 1), rgba(231, 216, 246, 1)), - linear-gradient(to right, rgba(99, 1, 235, 1), rgba(124, 58, 237, 1), rgba(231, 216, 246, 1)); - background-size: 100% 1px, 0 1px; - background-position: 100% 100%, 0 100%; - background-repeat: no-repeat; - transition: background-size 400ms; -} - -.textLink:hover, -.textLink:focus, -.textLink:active { - background-size: 0 1px, 100% 1px; -} - -.arrowIcon { - box-sizing: border-box; - display: block; - width: 8px; - height: 8px; - border-top: 2px solid; - transform: scale(var(--ggs, 1)); - border-right: 2px solid; - position: absolute; - right: 6px; - top: 6px; - color: #b1a5c4; -} - -.arrowIcon::after { - content: ""; - display: block; - box-sizing: border-box; - position: absolute; - width: 8px; - height: 2px; - background: currentColor; - transform: rotate(-45deg); - top: 2px; - right: -1px; -} - -.buttonContainer { - display: flex; - flex-direction: row; - gap: 1rem; - justify-content: center; - align-items: center; - flex: 1; -} - -.button { - background: linear-gradient(to top, rgb(124, 58, 237), rgb(117, 81, 236)); - border: 1px solid rgb(231, 216, 246); - color: white; - text-shadow: rgba(0, 0, 0, 0.25) 0px 3px 8px; - padding: 0 24px; - height: 48px; - width: 200px; - max-width: 300px; - position: relative; - display: inline-flex; - justify-content: center; - align-items: center; - flex-shrink: 0; - user-select: none; - white-space: nowrap; - border-radius: 0.75rem; - border-bottom-left-radius: 0px; - font-size: 15px; - transition: all 0.3s ease 0s; - cursor: pointer; -} - -.button:hover { - color: white; - text-shadow: rgb(0 0 0 / 56%) 0px 3px 12px; - box-shadow: rgb(80 63 205 / 50%) 0px 1px 40px; -} - -.loginButton { - composes: button; - background: rgb(248 250 252); - border: 1px solid rgb(231, 216, 246); - color: rgb(30 41 59); - text-shadow: none; -} - -.loginButton:hover { - color: rgb(30 41 59); - text-shadow: none; -} - -.card:hover .arrowIcon { - color: #7450ec; -} - -.linkGrid { - display: flex; - flex-direction: column; - flex-wrap: wrap; - gap: 1rem; -} - -.card { - composes: frost; - padding: 1rem 0rem; - text-align: center; - color: inherit; - text-decoration: none; - border-radius: 10px; - border-bottom-left-radius: 0px; - transition: color 0.15s ease, border-color 0.15s ease; - max-width: 200px; - min-width: 200px; - display: flex; - flex-direction: row; - justify-content: center; -} - -.card:hover, -.card:focus, -.card:active { - color: #7450ec; - border-color: #7450ec; -} - -.card h2 { - margin: 0 0 1rem 0; - font-size: 1.5rem; -} - -.card p { - margin: 0; - font-size: 1.25rem; - line-height: 1.5; -} - -.logo { - flex: 1; - padding: 1rem 2rem; -} - -.logo svg { - height: 100%; - width: 200px; - fill: #7450ec; -} - -/* MOBILE */ -@media (max-width: 800px) { - .linkGrid { - width: 100%; - } - - .card { - max-width: 100%; - } - - .body { - flex-wrap: wrap; - } - - .buttonContainer { - flex-wrap: wrap; - } -} diff --git a/apps/next13/app/styles/globals.css b/apps/next13/app/styles/globals.css deleted file mode 100644 index 2764411401..0000000000 --- a/apps/next13/app/styles/globals.css +++ /dev/null @@ -1,25 +0,0 @@ -:root { - --border-radius: 0.75rem; - --screen-width: 90vmin; -} - -html, -body { - padding: 0; - margin: 0; - font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, - Fira Sans, Droid Sans, Helvetica Neue, sans-serif; -} - -a { - color: inherit; - text-decoration: none; -} - -i { - font-size: 0.8rem; -} - -* { - box-sizing: border-box; -} diff --git a/apps/next13/app/users/hooks/useCurrentUser.ts b/apps/next13/app/users/hooks/useCurrentUser.ts deleted file mode 100644 index 4a0b15a931..0000000000 --- a/apps/next13/app/users/hooks/useCurrentUser.ts +++ /dev/null @@ -1,7 +0,0 @@ -import {useQuery} from "@blitzjs/rpc" -import getCurrentUser from "../queries/getCurrentUser" - -export const useCurrentUser = () => { - const [user] = useQuery(getCurrentUser, null) - return user -} diff --git a/apps/next13/app/users/queries/getCurrentUser.ts b/apps/next13/app/users/queries/getCurrentUser.ts deleted file mode 100644 index 8ff9ced4e5..0000000000 --- a/apps/next13/app/users/queries/getCurrentUser.ts +++ /dev/null @@ -1,17 +0,0 @@ -import {Ctx} from "blitz" -import db from "../../../db" -import { Role } from "@/types" - -export default async function getCurrentUser(input: null, ctx: Ctx) { - if (!ctx.session.userId) return null - const user = await db.user.findFirst({ - where: {id: ctx.session.userId}, - select: {id: true, name: true, email: true, role: true}, - }) - - return user -} - -export const config = { - httpMethod: "GET", -} diff --git a/apps/next13/db/dev.db b/apps/next13/db/dev.db deleted file mode 100644 index 0f593f8aac206379c4418562cde54fb8d899af7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 zcmeI)-*4JR8~|`TX+lF6(LF?&6lt^klAtD)ZOji>TU!DqBLzdiPD-T7I_z`eVFSe` zBklS?D^-2if3v6k3Ht}OX@9|_J@j#V+}Suk2;Ed^Yo%!46F=;;?|XNjyCWiin|l@8 z$Bfk*xX5Qx)NP8UsfP?hQPd-Hze(+po$JFvq ziSL&;Kl=67gZOV`7ZM1700@8p2!H?xfWZGz0LNmh{2D#JWp_KrmPg@#|%4rI?L3Q^L%!LodjZ&+T!ABa)o{t)}ncMpko)= zPEbRz7kg{?>GLL`gFF&9EX^igezFi-U0b7H#eCFuaMYgYX)y|_=C>>IMWdLFI71R^ zn=I*vD(}b*MyaWcqE#wPy-}{_8!hIM++y;YS}Q9gNL5zU%}F6V>e~bC<$abZ5)ZXp zm7^n3PZ?EyOkzdx&X0M=*o>N`_By!BhUZ0xQP;N%%|>bVNPpONY@>*LG*zHKuuqVW zXYz*xr+m?^N%%rdX{wDp>FT+GJ~>gh2tUh|Y7M!(qlA6lV51mGrXiQ)hO89iCc}p6 z%tm0A3`V#pS7b69nsUTOvb1^t!W8n&LcS=+ll2>mt9S0ut#DwxCk}a=qkH(t5O)oH zWp`m}pspO;=pq+yl9I{s`h0A4WrcphhcSaT1@{|MrO%rBFUB~iaEf~}+5TZ<>&WxI z=?#c{F#7T2%R`#1DxQ9&hb`5~czG_;UHfQ&e6qg0*_^rQUd*1rUY@tX1iq5Od3SmG zUYUc&F*Z8h&}FB~y=}T$cGnIjtd7Vuzeram{CRKm30QRE+X6bhBkyvgOQ%LlV9;|M zQehhzoy)aesnYY&z@KT?`AR%rc4U5*@>)e@jNxE_yT0z*E+&QD{@IG__Z^!A@_gL) zbfY)yhCMxdInb0QSrBq@HXs*I7UmXL4|tjiU&^A%iiUnK+}CFZPUmOy=E#we*pg5tCE;vJz&X_BCHnQJKYsU>zzHcX&8Im@CoNd_8%V~v|OXJ|Mj70?u=y3)lN)-*VK-4 z(suR-Eq;4PbL5oT;cHmk8zFVuQMtp0!S&1geCcU(FaNITi{SnLT;g{s@dtT;1Ogxc z0w4eaAOHd&00JNY0w4eaAaLCU;&bzBOVKqzV)XpVQgHE#$>;x7Dp9@e-Glan00@8p z2!H?xfB*=900@8p2!Ox`5*TxIoLV41?XTuPUZP+BQ2G4lo+>JuUdUAYN_Eh#?PBiW z$;fSGJzOas+b7Dsp6`i54!5N&&ZTlz%FLQpT9DejD4~?dnLLtmVoor)9JvgDB}x+J zQ-)=tc823EQ9x!|=r$YK)4ihu%`>ugw(oX3aOC%^xHLnYpPAS0*-1V8`;KmY_l00ck)1V8`;KmY_l;C&0+o?l;@`mF+7 o|L=X1Lwpbb0T2KI5C8!X009sH0T2KI5O{wA!S(;%<+}%e0W*kZ=l}o! diff --git a/apps/next13/db/index.ts b/apps/next13/db/index.ts deleted file mode 100644 index 4d7a5a6350..0000000000 --- a/apps/next13/db/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { enhancePrisma } from "blitz" -import { PrismaClient } from "@prisma/client" - -const EnhancedPrisma = enhancePrisma(PrismaClient) - -export * from "@prisma/client" -const db = new EnhancedPrisma() -export default db diff --git a/apps/next13/db/migrations/20230515094145_/migration.sql b/apps/next13/db/migrations/20230515094145_/migration.sql deleted file mode 100644 index bfe497a036..0000000000 --- a/apps/next13/db/migrations/20230515094145_/migration.sql +++ /dev/null @@ -1,26 +0,0 @@ --- CreateTable -CREATE TABLE "User" ( - "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, - "name" TEXT, - "email" TEXT NOT NULL, - "hashedPassword" TEXT -); - --- CreateTable -CREATE TABLE "Session" ( - "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, - "expiresAt" DATETIME, - "handle" TEXT NOT NULL, - "hashedSessionToken" TEXT, - "antiCSRFToken" TEXT, - "publicData" TEXT, - "privateData" TEXT, - "userId" INTEGER, - CONSTRAINT "Session_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE SET NULL ON UPDATE CASCADE -); - --- CreateIndex -CREATE UNIQUE INDEX "User_email_key" ON "User"("email"); - --- CreateIndex -CREATE UNIQUE INDEX "Session_handle_key" ON "Session"("handle"); diff --git a/apps/next13/db/migrations/20230515094805_/migration.sql b/apps/next13/db/migrations/20230515094805_/migration.sql deleted file mode 100644 index c676c0b119..0000000000 --- a/apps/next13/db/migrations/20230515094805_/migration.sql +++ /dev/null @@ -1,57 +0,0 @@ -/* - Warnings: - - - Added the required column `updatedAt` to the `Session` table without a default value. This is not possible if the table is not empty. - - Added the required column `updatedAt` to the `User` table without a default value. This is not possible if the table is not empty. - -*/ --- CreateTable -CREATE TABLE "Token" ( - "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, - "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" DATETIME NOT NULL, - "hashedToken" TEXT NOT NULL, - "type" TEXT NOT NULL, - "expiresAt" DATETIME NOT NULL, - "sentTo" TEXT NOT NULL, - "userId" INTEGER NOT NULL, - CONSTRAINT "Token_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE RESTRICT ON UPDATE CASCADE -); - --- RedefineTables -PRAGMA foreign_keys=OFF; -CREATE TABLE "new_Session" ( - "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, - "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" DATETIME NOT NULL, - "expiresAt" DATETIME, - "handle" TEXT NOT NULL, - "hashedSessionToken" TEXT, - "antiCSRFToken" TEXT, - "publicData" TEXT, - "privateData" TEXT, - "userId" INTEGER, - CONSTRAINT "Session_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE SET NULL ON UPDATE CASCADE -); -INSERT INTO "new_Session" ("antiCSRFToken", "expiresAt", "handle", "hashedSessionToken", "id", "privateData", "publicData", "userId") SELECT "antiCSRFToken", "expiresAt", "handle", "hashedSessionToken", "id", "privateData", "publicData", "userId" FROM "Session"; -DROP TABLE "Session"; -ALTER TABLE "new_Session" RENAME TO "Session"; -CREATE UNIQUE INDEX "Session_handle_key" ON "Session"("handle"); -CREATE TABLE "new_User" ( - "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, - "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" DATETIME NOT NULL, - "name" TEXT, - "email" TEXT NOT NULL, - "hashedPassword" TEXT, - "role" TEXT NOT NULL DEFAULT 'USER' -); -INSERT INTO "new_User" ("email", "hashedPassword", "id", "name") SELECT "email", "hashedPassword", "id", "name" FROM "User"; -DROP TABLE "User"; -ALTER TABLE "new_User" RENAME TO "User"; -CREATE UNIQUE INDEX "User_email_key" ON "User"("email"); -PRAGMA foreign_key_check; -PRAGMA foreign_keys=ON; - --- CreateIndex -CREATE UNIQUE INDEX "Token_hashedToken_type_key" ON "Token"("hashedToken", "type"); diff --git a/apps/next13/db/migrations/migration_lock.toml b/apps/next13/db/migrations/migration_lock.toml deleted file mode 100644 index e5e5c4705a..0000000000 --- a/apps/next13/db/migrations/migration_lock.toml +++ /dev/null @@ -1,3 +0,0 @@ -# Please do not edit this file manually -# It should be added in your version-control system (i.e. Git) -provider = "sqlite" \ No newline at end of file diff --git a/apps/next13/db/schema.prisma b/apps/next13/db/schema.prisma deleted file mode 100644 index 83cd1b80f6..0000000000 --- a/apps/next13/db/schema.prisma +++ /dev/null @@ -1,65 +0,0 @@ -// This is your Prisma schema file, -// learn more about it in the docs: https://pris.ly/d/prisma-schema - -datasource db { - provider = "sqlite" - url = "file:./db.sqlite" -} - -generator client { - provider = "prisma-client-js" -} - -// -------------------------------------- - -model User { - id Int @id @default(autoincrement()) - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - name String? - email String @unique - hashedPassword String? - role String @default("USER") - - tokens Token[] - sessions Session[] -} - -model Session { - id Int @id @default(autoincrement()) - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - expiresAt DateTime? - handle String @unique - hashedSessionToken String? - antiCSRFToken String? - publicData String? - privateData String? - - user User? @relation(fields: [userId], references: [id]) - userId Int? -} - -model Token { - id Int @id @default(autoincrement()) - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - hashedToken String - type String - // See note below about TokenType enum - // type TokenType - expiresAt DateTime - sentTo String - - user User @relation(fields: [userId], references: [id]) - userId Int - - @@unique([hashedToken, type]) -} - -// NOTE: It's highly recommended to use an enum for the token type -// but enums only work in Postgres. -// See: https://blitzjs.com/docs/database-overview#switch-to-postgre-sql -// enum TokenType { -// RESET_PASSWORD -// } diff --git a/apps/next13/integrations/.keep b/apps/next13/integrations/.keep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/apps/next13/mailers/.keep b/apps/next13/mailers/.keep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/apps/next13/mailers/forgotPasswordMailer.ts b/apps/next13/mailers/forgotPasswordMailer.ts deleted file mode 100644 index baace45b9a..0000000000 --- a/apps/next13/mailers/forgotPasswordMailer.ts +++ /dev/null @@ -1,45 +0,0 @@ -/* TODO - You need to add a mailer integration in `integrations/` and import here. - * - * The integration file can be very simple. Instantiate the email client - * and then export it. That way you can import here and anywhere else - * and use it straight away. - */ - -type ResetPasswordMailer = { - to: string - token: string -} - -export function forgotPasswordMailer({ to, token }: ResetPasswordMailer) { - // In production, set APP_ORIGIN to your production server origin - const origin = process.env.APP_ORIGIN || process.env.BLITZ_DEV_SERVER_ORIGIN - const resetUrl = `${origin}/auth/reset-password?token=${token}` - - const msg = { - from: "TODO@example.com", - to, - subject: "Your Password Reset Instructions", - html: ` -

Reset Your Password

-

NOTE: You must set up a production email integration in mailers/forgotPasswordMailer.ts

- - - Click here to set a new password - - `, - } - - return { - async send() { - if (process.env.NODE_ENV === "production") { - // TODO - send the production email, like this: - // await postmark.sendEmail(msg) - throw new Error("No production email implementation in mailers/forgotPasswordMailer") - } else { - // Preview email in the browser - const previewEmail = (await import("preview-email")).default - await previewEmail(msg) - } - }, - } -} diff --git a/apps/next13/next.config.js b/apps/next13/next.config.js deleted file mode 100644 index 4e73ad708c..0000000000 --- a/apps/next13/next.config.js +++ /dev/null @@ -1,10 +0,0 @@ -const {withBlitz} = require("@blitzjs/next") - -/** @type {import('next').NextConfig} */ -const nextConfig = { - experimental: { - typedRoutes: true, - }, -} - -module.exports = withBlitz(nextConfig) diff --git a/apps/next13/package.json b/apps/next13/package.json deleted file mode 100644 index cc0d2336fd..0000000000 --- a/apps/next13/package.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "next-blitz-auth", - "version": "0.1.1-beta.10", - "private": true, - "prisma": { - "schema": "./db/schema.prisma" - }, - "scripts": { - "blitz:dev": "next dev", - "blitz:build": "next build", - "blitz:start": "next start", - "lint": "next lint" - }, - "dependencies": { - "@blitzjs/auth": "2.0.0-beta.34", - "@blitzjs/config": "2.0.0-beta.34", - "@blitzjs/next": "2.0.0-beta.34", - "@blitzjs/rpc": "2.0.0-beta.34", - "@hookform/error-message": "2.0.0", - "@hookform/resolvers": "2.9.10", - "@prisma/client": "^4.14.0", - "@tanstack/react-form": "0.0.10", - "@tanstack/react-query": "4.0.10", - "blitz": "2.0.0-beta.34", - "flatted": "3.2.7", - "next": "13.5.2", - "prisma": "^4.5.0", - "react": "18.2.0", - "react-dom": "18.2.0", - "react-hook-form": "7.39.1", - "superjson": "1.11.0", - "zod": "3.20.2" - }, - "devDependencies": { - "@types/node": "18.11.7", - "@types/react": "18.0.23", - "@types/react-dom": "18.0.7", - "eslint": "8.26.0", - "eslint-config-next": "13.0.0", - "typescript": "4.8.4" - } -} diff --git a/apps/next13/pages/api/rpc/[[...blitz]].ts b/apps/next13/pages/api/rpc/[[...blitz]].ts deleted file mode 100644 index a031e77375..0000000000 --- a/apps/next13/pages/api/rpc/[[...blitz]].ts +++ /dev/null @@ -1,4 +0,0 @@ -import {rpcHandler} from "@blitzjs/rpc" -import {api} from "@/app/blitz-server" - -export default api(rpcHandler({onError: console.log})) diff --git a/apps/next13/public/blitz.svg b/apps/next13/public/blitz.svg deleted file mode 100644 index ba3c1cba6e..0000000000 --- a/apps/next13/public/blitz.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/apps/next13/public/favicon.ico b/apps/next13/public/favicon.ico deleted file mode 100644 index 718d6fea4835ec2d246af9800eddb7ffb276240c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25931 zcmeHv30#a{`}aL_*G&7qml|y<+KVaDM2m#dVr!KsA!#An?kSQM(q<_dDNCpjEux83 zLb9Z^XxbDl(w>%i@8hT6>)&Gu{h#Oeyszu?xtw#Zb1mO{pgX9699l+Qppw7jXaYf~-84xW z)w4x8?=youko|}Vr~(D$UXIbiXABHh`p1?nn8Po~fxRJv}|0e(BPs|G`(TT%kKVJAdg5*Z|x0leQq0 zkdUBvb#>9F()jo|T~kx@OM8$9wzs~t2l;K=woNssA3l6|sx2r3+kdfVW@e^8e*E}v zA1y5{bRi+3Z`uD3{F7LgFJDdvm;nJilkzDku>BwXH(8ItVCXk*-lSJnR?-2UN%hJ){&rlvg`CDTj z)Bzo!3v7Ou#83zEDEFcKt(f1E0~=rqeEbTnMvWR#{+9pg%7G8y>u1OVRUSoox-ovF z2Ydma(;=YuBY(eI|04{hXzZD6_f(v~H;C~y5=DhAC{MMS>2fm~1H_t2$56pc$NH8( z5bH|<)71dV-_oCHIrzrT`2s-5w_+2CM0$95I6X8p^r!gHp+j_gd;9O<1~CEQQGS8) zS9Qh3#p&JM-G8rHekNmKVewU;pJRcTAog68KYo^dRo}(M>36U4Us zfgYWSiHZL3;lpWT=zNAW>Dh#mB!_@Lg%$ms8N-;aPqMn+C2HqZgz&9~Eu z4|Kp<`$q)Uw1R?y(~S>ePdonHxpV1#eSP1B;Ogo+-Pk}6#0GsZZ5!||ev2MGdh}_m z{DeR7?0-1^zVs&`AV6Vt;r3`I`OI_wgs*w=eO%_#7Kepl{B@xiyCANc(l zzIyd4y|c6PXWq9-|KM8(zIk8LPk(>a)zyFWjhT!$HJ$qX1vo@d25W<fvZQ2zUz5WRc(UnFMKHwe1| zWmlB1qdbiA(C0jmnV<}GfbKtmcu^2*P^O?MBLZKt|As~ge8&AAO~2K@zbXelK|4T<{|y4`raF{=72kC2Kn(L4YyenWgrPiv z@^mr$t{#X5VuIMeL!7Ab6_kG$&#&5p*Z{+?5U|TZ`B!7llpVmp@skYz&n^8QfPJzL z0G6K_OJM9x+Wu2gfN45phANGt{7=C>i34CV{Xqlx(fWpeAoj^N0Biu`w+MVcCUyU* zDZuzO0>4Z6fbu^T_arWW5n!E45vX8N=bxTVeFoep_G#VmNlQzAI_KTIc{6>c+04vr zx@W}zE5JNSU>!THJ{J=cqjz+4{L4A{Ob9$ZJ*S1?Ggg3klFp!+Y1@K+pK1DqI|_gq z5ZDXVpge8-cs!o|;K73#YXZ3AShj50wBvuq3NTOZ`M&qtjj#GOFfgExjg8Gn8>Vq5 z`85n+9|!iLCZF5$HJ$Iu($dm?8~-ofu}tEc+-pyke=3!im#6pk_Wo8IA|fJwD&~~F zc16osQ)EBo58U7XDuMexaPRjU@h8tXe%S{fA0NH3vGJFhuyyO!Uyl2^&EOpX{9As0 zWj+P>{@}jxH)8|r;2HdupP!vie{sJ28b&bo!8`D^x}TE$%zXNb^X1p@0PJ86`dZyj z%ce7*{^oo+6%&~I!8hQy-vQ7E)0t0ybH4l%KltWOo~8cO`T=157JqL(oq_rC%ea&4 z2NcTJe-HgFjNg-gZ$6!Y`SMHrlj}Etf7?r!zQTPPSv}{so2e>Fjs1{gzk~LGeesX%r(Lh6rbhSo_n)@@G-FTQy93;l#E)hgP@d_SGvyCp0~o(Y;Ee8{ zdVUDbHm5`2taPUOY^MAGOw*>=s7=Gst=D+p+2yON!0%Hk` zz5mAhyT4lS*T3LS^WSxUy86q&GnoHxzQ6vm8)VS}_zuqG?+3td68_x;etQAdu@sc6 zQJ&5|4(I?~3d-QOAODHpZ=hlSg(lBZ!JZWCtHHSj`0Wh93-Uk)_S%zsJ~aD>{`A0~ z9{AG(e|q3g5B%wYKRxiL2Y$8(4w6bzchKuloQW#e&S3n+P- z8!ds-%f;TJ1>)v)##>gd{PdS2Oc3VaR`fr=`O8QIO(6(N!A?pr5C#6fc~Ge@N%Vvu zaoAX2&(a6eWy_q&UwOhU)|P3J0Qc%OdhzW=F4D|pt0E4osw;%<%Dn58hAWD^XnZD= z>9~H(3bmLtxpF?a7su6J7M*x1By7YSUbxGi)Ot0P77`}P3{)&5Un{KD?`-e?r21!4vTTnN(4Y6Lin?UkSM z`MXCTC1@4A4~mvz%Rh2&EwY))LeoT=*`tMoqcEXI>TZU9WTP#l?uFv+@Dn~b(>xh2 z;>B?;Tz2SR&KVb>vGiBSB`@U7VIWFSo=LDSb9F{GF^DbmWAfpms8Sx9OX4CnBJca3 zlj9(x!dIjN?OG1X4l*imJNvRCk}F%!?SOfiOq5y^mZW)jFL@a|r-@d#f7 z2gmU8L3IZq0ynIws=}~m^#@&C%J6QFo~Mo4V`>v7MI-_!EBMMtb%_M&kvAaN)@ZVw z+`toz&WG#HkWDjnZE!6nk{e-oFdL^$YnbOCN}JC&{$#$O27@|Tn-skXr)2ml2~O!5 zX+gYoxhoc7qoU?C^3~&!U?kRFtnSEecWuH0B0OvLodgUAi}8p1 zrO6RSXHH}DMc$&|?D004DiOVMHV8kXCP@7NKB zgaZq^^O<7PoKEp72kby@W0Z!Y*Ay{&vfg#C&gG@YVR9g?FEocMUi1gSN$+V+ayF45{a zuDZDTN}mS|;BO%gEf}pjBfN2-gIrU#G5~cucA;dokXW89%>AyXJJI z9X4UlIWA|ZYHgbI z5?oFk@A=Ik7lrEQPDH!H+b`7_Y~aDb_qa=B2^Y&Ow41cU=4WDd40dp5(QS-WMN-=Y z9g;6_-JdNU;|6cPwf$ak*aJIcwL@1n$#l~zi{c{EW?T;DaW*E8DYq?Umtz{nJ&w-M zEMyTDrC&9K$d|kZe2#ws6)L=7K+{ zQw{XnV6UC$6-rW0emqm8wJoeZK)wJIcV?dST}Z;G0Arq{dVDu0&4kd%N!3F1*;*pW zR&qUiFzK=@44#QGw7k1`3t_d8&*kBV->O##t|tonFc2YWrL7_eqg+=+k;!F-`^b8> z#KWCE8%u4k@EprxqiV$VmmtiWxDLgnGu$Vs<8rppV5EajBXL4nyyZM$SWVm!wnCj-B!Wjqj5-5dNXukI2$$|Bu3Lrw}z65Lc=1G z^-#WuQOj$hwNGG?*CM_TO8Bg-1+qc>J7k5c51U8g?ZU5n?HYor;~JIjoWH-G>AoUP ztrWWLbRNqIjW#RT*WqZgPJXU7C)VaW5}MiijYbABmzoru6EmQ*N8cVK7a3|aOB#O& zBl8JY2WKfmj;h#Q!pN%9o@VNLv{OUL?rixHwOZuvX7{IJ{(EdPpuVFoQqIOa7giLVkBOKL@^smUA!tZ1CKRK}#SSM)iQHk)*R~?M!qkCruaS!#oIL1c z?J;U~&FfH#*98^G?i}pA{ z9Jg36t4=%6mhY(quYq*vSxptes9qy|7xSlH?G=S@>u>Ebe;|LVhs~@+06N<4CViBk zUiY$thvX;>Tby6z9Y1edAMQaiH zm^r3v#$Q#2T=X>bsY#D%s!bhs^M9PMAcHbCc0FMHV{u-dwlL;a1eJ63v5U*?Q_8JO zT#50!RD619#j_Uf))0ooADz~*9&lN!bBDRUgE>Vud-i5ck%vT=r^yD*^?Mp@Q^v+V zG#-?gKlr}Eeqifb{|So?HM&g91P8|av8hQoCmQXkd?7wIJwb z_^v8bbg`SAn{I*4bH$u(RZ6*xUhuA~hc=8czK8SHEKTzSxgbwi~9(OqJB&gwb^l4+m`k*Q;_?>Y-APi1{k zAHQ)P)G)f|AyjSgcCFps)Fh6Bca*Xznq36!pV6Az&m{O8$wGFD? zY&O*3*J0;_EqM#jh6^gMQKpXV?#1?>$ml1xvh8nSN>-?H=V;nJIwB07YX$e6vLxH( zqYwQ>qxwR(i4f)DLd)-$P>T-no_c!LsN@)8`e;W@)-Hj0>nJ-}Kla4-ZdPJzI&Mce zv)V_j;(3ERN3_@I$N<^|4Lf`B;8n+bX@bHbcZTopEmDI*Jfl)-pFDvo6svPRoo@(x z);_{lY<;);XzT`dBFpRmGrr}z5u1=pC^S-{ce6iXQlLGcItwJ^mZx{m$&DA_oEZ)B{_bYPq-HA zcH8WGoBG(aBU_j)vEy+_71T34@4dmSg!|M8Vf92Zj6WH7Q7t#OHQqWgFE3ARt+%!T z?oLovLVlnf?2c7pTc)~cc^($_8nyKwsN`RA-23ed3sdj(ys%pjjM+9JrctL;dy8a( z@en&CQmnV(()bu|Y%G1-4a(6x{aLytn$T-;(&{QIJB9vMox11U-1HpD@d(QkaJdEb zG{)+6Dos_L+O3NpWo^=gR?evp|CqEG?L&Ut#D*KLaRFOgOEK(Kq1@!EGcTfo+%A&I z=dLbB+d$u{sh?u)xP{PF8L%;YPPW53+@{>5W=Jt#wQpN;0_HYdw1{ksf_XhO4#2F= zyPx6Lx2<92L-;L5PD`zn6zwIH`Jk($?Qw({erA$^bC;q33hv!d!>%wRhj# zal^hk+WGNg;rJtb-EB(?czvOM=H7dl=vblBwAv>}%1@{}mnpUznfq1cE^sgsL0*4I zJ##!*B?=vI_OEVis5o+_IwMIRrpQyT_Sq~ZU%oY7c5JMIADzpD!Upz9h@iWg_>>~j zOLS;wp^i$-E?4<_cp?RiS%Rd?i;f*mOz=~(&3lo<=@(nR!_Rqiprh@weZlL!t#NCc zO!QTcInq|%#>OVgobj{~ixEUec`E25zJ~*DofsQdzIa@5^nOXj2T;8O`l--(QyU^$t?TGY^7#&FQ+2SS3B#qK*k3`ye?8jUYSajE5iBbJls75CCc(m3dk{t?- zopcER9{Z?TC)mk~gpi^kbbu>b-+a{m#8-y2^p$ka4n60w;Sc2}HMf<8JUvhCL0B&Btk)T`ctE$*qNW8L$`7!r^9T+>=<=2qaq-;ll2{`{Rg zc5a0ZUI$oG&j-qVOuKa=*v4aY#IsoM+1|c4Z)<}lEDvy;5huB@1RJPquU2U*U-;gu z=En2m+qjBzR#DEJDO`WU)hdd{Vj%^0V*KoyZ|5lzV87&g_j~NCjwv0uQVqXOb*QrQ zy|Qn`hxx(58c70$E;L(X0uZZ72M1!6oeg)(cdKO ze0gDaTz+ohR-#d)NbAH4x{I(21yjwvBQfmpLu$)|m{XolbgF!pmsqJ#D}(ylp6uC> z{bqtcI#hT#HW=wl7>p!38sKsJ`r8}lt-q%Keqy%u(xk=yiIJiUw6|5IvkS+#?JTBl z8H5(Q?l#wzazujH!8o>1xtn8#_w+397*_cy8!pQGP%K(Ga3pAjsaTbbXJlQF_+m+-UpUUent@xM zg%jqLUExj~o^vQ3Gl*>wh=_gOr2*|U64_iXb+-111aH}$TjeajM+I20xw(((>fej-@CIz4S1pi$(#}P7`4({6QS2CaQS4NPENDp>sAqD z$bH4KGzXGffkJ7R>V>)>tC)uax{UsN*dbeNC*v}#8Y#OWYwL4t$ePR?VTyIs!wea+ z5Urmc)X|^`MG~*dS6pGSbU+gPJoq*^a=_>$n4|P^w$sMBBy@f*Z^Jg6?n5?oId6f{ z$LW4M|4m502z0t7g<#Bx%X;9<=)smFolV&(V^(7Cv2-sxbxopQ!)*#ZRhTBpx1)Fc zNm1T%bONzv6@#|dz(w02AH8OXe>kQ#1FMCzO}2J_mST)+ExmBr9cva-@?;wnmWMOk z{3_~EX_xadgJGv&H@zK_8{(x84`}+c?oSBX*Ge3VdfTt&F}yCpFP?CpW+BE^cWY0^ zb&uBN!Ja3UzYHK-CTyA5=L zEMW{l3Usky#ly=7px648W31UNV@K)&Ub&zP1c7%)`{);I4b0Q<)B}3;NMG2JH=X$U zfIW4)4n9ZM`-yRj67I)YSLDK)qfUJ_ij}a#aZN~9EXrh8eZY2&=uY%2N0UFF7<~%M zsB8=erOWZ>Ct_#^tHZ|*q`H;A)5;ycw*IcmVxi8_0Xk}aJA^ath+E;xg!x+As(M#0=)3!NJR6H&9+zd#iP(m0PIW8$ z1Y^VX`>jm`W!=WpF*{ioM?C9`yOR>@0q=u7o>BP-eSHqCgMDj!2anwH?s%i2p+Q7D zzszIf5XJpE)IG4;d_(La-xenmF(tgAxK`Y4sQ}BSJEPs6N_U2vI{8=0C_F?@7<(G; zo$~G=8p+076G;`}>{MQ>t>7cm=zGtfbdDXm6||jUU|?X?CaE?(<6bKDYKeHlz}DA8 zXT={X=yp_R;HfJ9h%?eWvQ!dRgz&Su*JfNt!Wu>|XfU&68iRikRrHRW|ZxzRR^`eIGt zIeiDgVS>IeExKVRWW8-=A=yA`}`)ZkWBrZD`hpWIxBGkh&f#ijr449~m`j6{4jiJ*C!oVA8ZC?$1RM#K(_b zL9TW)kN*Y4%^-qPpMP7d4)o?Nk#>aoYHT(*g)qmRUb?**F@pnNiy6Fv9rEiUqD(^O zzyS?nBrX63BTRYduaG(0VVG2yJRe%o&rVrLjbxTaAFTd8s;<<@Qs>u(<193R8>}2_ zuwp{7;H2a*X7_jryzriZXMg?bTuegABb^87@SsKkr2)0Gyiax8KQWstw^v#ix45EVrcEhr>!NMhprl$InQMzjSFH54x5k9qHc`@9uKQzvL4ihcq{^B zPrVR=o_ic%Y>6&rMN)hTZsI7I<3&`#(nl+3y3ys9A~&^=4?PL&nd8)`OfG#n zwAMN$1&>K++c{^|7<4P=2y(B{jJsQ0a#U;HTo4ZmWZYvI{+s;Td{Yzem%0*k#)vjpB zia;J&>}ICate44SFYY3vEelqStQWFihx%^vQ@Do(sOy7yR2@WNv7Y9I^yL=nZr3mb zXKV5t@=?-Sk|b{XMhA7ZGB@2hqsx}4xwCW!in#C zI@}scZlr3-NFJ@NFaJlhyfcw{k^vvtGl`N9xSo**rDW4S}i zM9{fMPWo%4wYDG~BZ18BD+}h|GQKc-g^{++3MY>}W_uq7jGHx{mwE9fZiPCoxN$+7 zrODGGJrOkcPQUB(FD5aoS4g~7#6NR^ma7-!>mHuJfY5kTe6PpNNKC9GGRiu^L31uG z$7v`*JknQHsYB!Tm_W{a32TM099djW%5e+j0Ve_ct}IM>XLF1Ap+YvcrLV=|CKo6S zb+9Nl3_YdKP6%Cxy@6TxZ>;4&nTneadr z_ES90ydCev)LV!dN=#(*f}|ZORFdvkYBni^aLbUk>BajeWIOcmHP#8S)*2U~QKI%S zyrLmtPqb&TphJ;>yAxri#;{uyk`JJqODDw%(Z=2`1uc}br^V%>j!gS)D*q*f_-qf8&D;W1dJgQMlaH5er zN2U<%Smb7==vE}dDI8K7cKz!vs^73o9f>2sgiTzWcwY|BMYHH5%Vn7#kiw&eItCqa zIkR2~Q}>X=Ar8W|^Ms41Fm8o6IB2_j60eOeBB1Br!boW7JnoeX6Gs)?7rW0^5psc- zjS16yb>dFn>KPOF;imD}e!enuIniFzv}n$m2#gCCv4jM#ArwlzZ$7@9&XkFxZ4n!V zj3dyiwW4Ki2QG{@i>yuZXQizw_OkZI^-3otXC{!(lUpJF33gI60ak;Uqitp74|B6I zgg{b=Iz}WkhCGj1M=hu4#Aw173YxIVbISaoc z-nLZC*6Tgivd5V`K%GxhBsp@SUU60-rfc$=wb>zdJzXS&-5(NRRodFk;Kxk!S(O(a0e7oY=E( zAyS;Ow?6Q&XA+cnkCb{28_1N8H#?J!*$MmIwLq^*T_9-z^&UE@A(z9oGYtFy6EZef LrJugUA?W`A8`#=m diff --git a/apps/next13/tsconfig.json b/apps/next13/tsconfig.json deleted file mode 100644 index edca01f40b..0000000000 --- a/apps/next13/tsconfig.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "compilerOptions": { - "baseUrl": ".", - "target": "es5", - "lib": ["dom", "dom.iterable", "esnext"], - "allowJs": true, - "skipLibCheck": true, - "strict": true, - "forceConsistentCasingInFileNames": true, - "noEmit": true, - "esModuleInterop": true, - "module": "esnext", - "moduleResolution": "node", - "resolveJsonModule": true, - "isolatedModules": true, - "jsx": "preserve", - "incremental": true, - "plugins": [ - { - "name": "next" - } - ], - "paths": { - "@/*": ["./*"] - } - }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], - "exclude": ["node_modules"] -} diff --git a/apps/next13/types.ts b/apps/next13/types.ts deleted file mode 100644 index 452fe3411f..0000000000 --- a/apps/next13/types.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { SimpleRolesIsAuthorized } from "@blitzjs/auth" -import { User } from "@/db" - -export type Role = "ADMIN" | "USER" - -declare module "@blitzjs/auth" { - export interface Session { - isAuthorized: SimpleRolesIsAuthorized - PublicData: { - userId: User["id"] - role: Role - views?: number - } - } -} From cf46c090a31fe4c27507db0358bb8dc492529eb4 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Sun, 15 Oct 2023 16:25:55 +0530 Subject: [PATCH 48/95] upgrade next and add husky --- packages/generator/templates/app/package.ts.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/generator/templates/app/package.ts.json b/packages/generator/templates/app/package.ts.json index 096e50a2e1..5ff32b267b 100644 --- a/packages/generator/templates/app/package.ts.json +++ b/packages/generator/templates/app/package.ts.json @@ -29,14 +29,15 @@ "@prisma/client": "^4.14.0", "blitz": "2.0.0-beta.34", "flatted": "3.2.7", - "next": "13.4.1", + "next": "13.5.2", "prisma": "^4.14.0", "react": "18.2.0", "react-dom": "18.2.0", "react-hook-form": "7.39.1", "superjson": "1.11.0", "zod": "3.20.2", - "formik": "2.4.5" + "formik": "2.4.5", + "husky": "8.0.2" }, "devDependencies": { "@types/node": "18.11.7", From 8a0a40fd536c6159623ec5ef5e41a71fd8c740ec Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Mon, 16 Oct 2023 22:22:10 +0530 Subject: [PATCH 49/95] fix build error --- packages/generator/templates/app/src/app/blitz-client.ts | 8 +++----- packages/generator/templates/app/src/app/blitz-server.ts | 3 +-- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/packages/generator/templates/app/src/app/blitz-client.ts b/packages/generator/templates/app/src/app/blitz-client.ts index 26220d2104..6d920d3112 100644 --- a/packages/generator/templates/app/src/app/blitz-client.ts +++ b/packages/generator/templates/app/src/app/blitz-client.ts @@ -3,13 +3,11 @@ import {AuthClientPlugin} from "@blitzjs/auth" import {setupBlitzClient} from "@blitzjs/next" import {BlitzRpcPlugin} from "@blitzjs/rpc" -export const authConfig = { - cookiePrefix: "__safeNameSlug__" -} - export const {withBlitz, BlitzProvider} = setupBlitzClient({ plugins: [ - AuthClientPlugin(authConfig), + AuthClientPlugin({ + cookiePrefix: "__safeNameSlug__" + }), BlitzRpcPlugin({}), ], }) diff --git a/packages/generator/templates/app/src/app/blitz-server.ts b/packages/generator/templates/app/src/app/blitz-server.ts index 3afe138de7..2529f3c600 100644 --- a/packages/generator/templates/app/src/app/blitz-server.ts +++ b/packages/generator/templates/app/src/app/blitz-server.ts @@ -3,12 +3,11 @@ import {AuthServerPlugin, PrismaStorage,simpleRolesIsAuthorized} from "@blitzjs/ import db from "db" import {BlitzLogger} from "blitz" import {RpcServerPlugin} from "@blitzjs/rpc" -import { authConfig } from "./blitz-client" const {api, getBlitzContext, useAuthenticatedBlitzContext, invoke} = setupBlitzServer({ plugins: [ AuthServerPlugin({ - ...authConfig, + cookiePrefix: "__safeNameSlug__", storage: PrismaStorage(db), isAuthorized: simpleRolesIsAuthorized, }), From a0fdbf39b7d0c90316094d5c812ed0e1cadfa970 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Mon, 16 Oct 2023 22:22:54 +0530 Subject: [PATCH 50/95] Create poor-bikes-wait.md --- .changeset/poor-bikes-wait.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/poor-bikes-wait.md diff --git a/.changeset/poor-bikes-wait.md b/.changeset/poor-bikes-wait.md new file mode 100644 index 0000000000..382690d496 --- /dev/null +++ b/.changeset/poor-bikes-wait.md @@ -0,0 +1,5 @@ +--- +"@blitzjs/generator": patch +--- + +new blitz app starter From 67a31fadbcd360a7de3c70c4a92ace52a7a69252 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Mon, 16 Oct 2023 22:28:07 +0530 Subject: [PATCH 51/95] Revert "remove `next13`" This reverts commit c0d7f54ab15432a6f2fd146dec80e6fa36225113. --- apps/next13/.env | 7 + apps/next13/.eslintrc.json | 3 + apps/next13/.gitignore | 38 +++ apps/next13/CHANGELOG.md | 205 ++++++++++++ apps/next13/README.md | 26 ++ .../app/(auth)/components/LoginForm.tsx | 126 ++++++++ .../app/(auth)/components/SignupForm.tsx | 126 ++++++++ apps/next13/app/(auth)/layout.tsx | 8 + apps/next13/app/(auth)/login/page.tsx | 9 + .../app/(auth)/mutations/changePassword.ts | 22 ++ .../(auth)/mutations/forgotPassword.test.ts | 64 ++++ .../app/(auth)/mutations/forgotPassword.ts | 40 +++ apps/next13/app/(auth)/mutations/login.ts | 29 ++ apps/next13/app/(auth)/mutations/logout.ts | 5 + .../(auth)/mutations/resetPassword.test.ts | 84 +++++ .../app/(auth)/mutations/resetPassword.ts | 50 +++ apps/next13/app/(auth)/mutations/signup.ts | 18 ++ apps/next13/app/(auth)/signup/page.tsx | 8 + apps/next13/app/(auth)/validations.ts | 42 +++ apps/next13/app/blitz-client.ts | 13 + apps/next13/app/blitz-server.ts | 32 ++ apps/next13/app/core/components/Logout.tsx | 24 ++ apps/next13/app/core/validators/zod.ts | 18 ++ apps/next13/app/error.tsx | 24 ++ apps/next13/app/layout.tsx | 23 ++ apps/next13/app/loading.tsx | 4 + apps/next13/app/page.tsx | 166 ++++++++++ apps/next13/app/styles/Home.module.css | 303 ++++++++++++++++++ apps/next13/app/styles/globals.css | 25 ++ apps/next13/app/users/hooks/useCurrentUser.ts | 7 + .../app/users/queries/getCurrentUser.ts | 17 + apps/next13/db/dev.db | Bin 0 -> 32768 bytes apps/next13/db/index.ts | 8 + .../migrations/20230515094145_/migration.sql | 26 ++ .../migrations/20230515094805_/migration.sql | 57 ++++ apps/next13/db/migrations/migration_lock.toml | 3 + apps/next13/db/schema.prisma | 65 ++++ apps/next13/integrations/.keep | 0 apps/next13/mailers/.keep | 0 apps/next13/mailers/forgotPasswordMailer.ts | 45 +++ apps/next13/next.config.js | 10 + apps/next13/package.json | 42 +++ apps/next13/pages/api/rpc/[[...blitz]].ts | 4 + apps/next13/public/blitz.svg | 5 + apps/next13/public/favicon.ico | Bin 0 -> 25931 bytes apps/next13/tsconfig.json | 29 ++ apps/next13/types.ts | 15 + 47 files changed, 1875 insertions(+) create mode 100644 apps/next13/.env create mode 100644 apps/next13/.eslintrc.json create mode 100644 apps/next13/.gitignore create mode 100644 apps/next13/CHANGELOG.md create mode 100644 apps/next13/README.md create mode 100644 apps/next13/app/(auth)/components/LoginForm.tsx create mode 100644 apps/next13/app/(auth)/components/SignupForm.tsx create mode 100644 apps/next13/app/(auth)/layout.tsx create mode 100644 apps/next13/app/(auth)/login/page.tsx create mode 100644 apps/next13/app/(auth)/mutations/changePassword.ts create mode 100644 apps/next13/app/(auth)/mutations/forgotPassword.test.ts create mode 100644 apps/next13/app/(auth)/mutations/forgotPassword.ts create mode 100644 apps/next13/app/(auth)/mutations/login.ts create mode 100644 apps/next13/app/(auth)/mutations/logout.ts create mode 100644 apps/next13/app/(auth)/mutations/resetPassword.test.ts create mode 100644 apps/next13/app/(auth)/mutations/resetPassword.ts create mode 100644 apps/next13/app/(auth)/mutations/signup.ts create mode 100644 apps/next13/app/(auth)/signup/page.tsx create mode 100644 apps/next13/app/(auth)/validations.ts create mode 100644 apps/next13/app/blitz-client.ts create mode 100644 apps/next13/app/blitz-server.ts create mode 100644 apps/next13/app/core/components/Logout.tsx create mode 100644 apps/next13/app/core/validators/zod.ts create mode 100644 apps/next13/app/error.tsx create mode 100644 apps/next13/app/layout.tsx create mode 100644 apps/next13/app/loading.tsx create mode 100644 apps/next13/app/page.tsx create mode 100644 apps/next13/app/styles/Home.module.css create mode 100644 apps/next13/app/styles/globals.css create mode 100644 apps/next13/app/users/hooks/useCurrentUser.ts create mode 100644 apps/next13/app/users/queries/getCurrentUser.ts create mode 100644 apps/next13/db/dev.db create mode 100644 apps/next13/db/index.ts create mode 100644 apps/next13/db/migrations/20230515094145_/migration.sql create mode 100644 apps/next13/db/migrations/20230515094805_/migration.sql create mode 100644 apps/next13/db/migrations/migration_lock.toml create mode 100644 apps/next13/db/schema.prisma create mode 100644 apps/next13/integrations/.keep create mode 100644 apps/next13/mailers/.keep create mode 100644 apps/next13/mailers/forgotPasswordMailer.ts create mode 100644 apps/next13/next.config.js create mode 100644 apps/next13/package.json create mode 100644 apps/next13/pages/api/rpc/[[...blitz]].ts create mode 100644 apps/next13/public/blitz.svg create mode 100644 apps/next13/public/favicon.ico create mode 100644 apps/next13/tsconfig.json create mode 100644 apps/next13/types.ts diff --git a/apps/next13/.env b/apps/next13/.env new file mode 100644 index 0000000000..c498ab59bf --- /dev/null +++ b/apps/next13/.env @@ -0,0 +1,7 @@ +# Environment variables declared in this file are automatically made available to Prisma. +# See the documentation for more detail: https://pris.ly/d/prisma-schema#accessing-environment-variables-from-the-schema + +# Prisma supports the native connection string format for PostgreSQL, MySQL, SQLite, SQL Server, MongoDB and CockroachDB. +# See the documentation for all the connection string options: https://pris.ly/d/connection-strings + +DATABASE_URL="file:./dev.db" \ No newline at end of file diff --git a/apps/next13/.eslintrc.json b/apps/next13/.eslintrc.json new file mode 100644 index 0000000000..bffb357a71 --- /dev/null +++ b/apps/next13/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": "next/core-web-vitals" +} diff --git a/apps/next13/.gitignore b/apps/next13/.gitignore new file mode 100644 index 0000000000..4f360c89d2 --- /dev/null +++ b/apps/next13/.gitignore @@ -0,0 +1,38 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts + +.vscode diff --git a/apps/next13/CHANGELOG.md b/apps/next13/CHANGELOG.md new file mode 100644 index 0000000000..8f5a2ec5f8 --- /dev/null +++ b/apps/next13/CHANGELOG.md @@ -0,0 +1,205 @@ +# next-blitz-auth + +## 0.1.1-beta.10 + +### Patch Changes + +- Updated dependencies [30fd61316] +- Updated dependencies [3ddb57072] +- Updated dependencies [fe8c937d2] + - blitz@2.0.0-beta.34 + - @blitzjs/auth@2.0.0-beta.34 + - @blitzjs/next@2.0.0-beta.34 + - @blitzjs/rpc@2.0.0-beta.34 + - @blitzjs/config@2.0.0-beta.34 + +## 0.1.1-beta.9 + +### Patch Changes + +- Updated dependencies [19898a488] +- Updated dependencies [6811eab1a] +- Updated dependencies [022392c12] + - @blitzjs/rpc@2.0.0-beta.33 + - blitz@2.0.0-beta.33 + - @blitzjs/next@2.0.0-beta.33 + - @blitzjs/auth@2.0.0-beta.33 + - @blitzjs/config@2.0.0-beta.33 + +## 0.1.1-beta.8 + +### Patch Changes + +- Updated dependencies [82649f341] +- Updated dependencies [8b01175b4] + - blitz@2.0.0-beta.32 + - @blitzjs/next@2.0.0-beta.32 + - @blitzjs/auth@2.0.0-beta.32 + - @blitzjs/rpc@2.0.0-beta.32 + - @blitzjs/config@2.0.0-beta.32 + +## 0.1.1-beta.7 + +### Patch Changes + +- Updated dependencies [90f1741da] +- Updated dependencies [df3265b85] + - @blitzjs/auth@2.0.0-beta.31 + - blitz@2.0.0-beta.31 + - @blitzjs/rpc@2.0.0-beta.31 + - @blitzjs/next@2.0.0-beta.31 + - @blitzjs/config@2.0.0-beta.31 + +## 0.1.1-beta.6 + +### Patch Changes + +- Updated dependencies [c5572bec6] +- Updated dependencies [727734955] + - @blitzjs/auth@2.0.0-beta.30 + - blitz@2.0.0-beta.30 + - @blitzjs/rpc@2.0.0-beta.30 + - @blitzjs/next@2.0.0-beta.30 + - @blitzjs/config@2.0.0-beta.30 + +## 0.1.1-beta.5 + +### Patch Changes + +- Updated dependencies [b6b9a1c5a] +- Updated dependencies [61888d1a3] + - @blitzjs/auth@2.0.0-beta.29 + - blitz@2.0.0-beta.29 + - @blitzjs/rpc@2.0.0-beta.29 + - @blitzjs/next@2.0.0-beta.29 + - @blitzjs/config@2.0.0-beta.29 + +## 0.1.1-beta.4 + +### Patch Changes + +- Updated dependencies [5166e5e03] +- Updated dependencies [2533caf48] +- Updated dependencies [c7ac86b85] +- Updated dependencies [1bb3a6556] + - @blitzjs/auth@2.0.0-beta.28 + - @blitzjs/next@2.0.0-beta.28 + - @blitzjs/rpc@2.0.0-beta.28 + - blitz@2.0.0-beta.28 + - @blitzjs/config@2.0.0-beta.28 + +## 0.1.1-beta.3 + +### Patch Changes + +- Updated dependencies [eda14fa8a] +- Updated dependencies [3d004dc41] +- Updated dependencies [29c2b029a] + - @blitzjs/next@2.0.0-beta.27 + - @blitzjs/rpc@2.0.0-beta.27 + - @blitzjs/auth@2.0.0-beta.27 + - blitz@2.0.0-beta.27 + - @blitzjs/config@2.0.0-beta.27 + +## 0.1.1-beta.2 + +### Patch Changes + +- Updated dependencies [e82a79be5] +- Updated dependencies [38d945a3f] + - @blitzjs/auth@2.0.0-beta.26 + - @blitzjs/next@2.0.0-beta.26 + - @blitzjs/rpc@2.0.0-beta.26 + - blitz@2.0.0-beta.26 + - @blitzjs/config@2.0.0-beta.26 + +## 0.1.1-beta.1 + +### Patch Changes + +- Updated dependencies [f84d77a42] + - @blitzjs/rpc@2.0.0-beta.25 + - @blitzjs/next@2.0.0-beta.25 + - @blitzjs/auth@2.0.0-beta.25 + - @blitzjs/config@2.0.0-beta.25 + - blitz@2.0.0-beta.25 + +## 0.1.1-beta.0 + +### Patch Changes + +- 37aeaa7fa: feature: Nextjs 13 App Directory Utility Methods + + ### 🔧 New Blitz Auth Hook `useAuthenticatedBlitzContext` + + This hook is implemented as the replacement of the [`BlitzPage` seurity auth utilities](https://blitzjs.com/docs/authorization#secure-your-pages) provided for the pages directory to work with React Server Components in the Nextjs 13 app directory + It can be used in any asynchronous server component be it in `page.ts` or in the layouts in `layout.ts` + It uses the new [`redirect` function](https://beta.nextjs.org/docs/api-reference/redirect) to provide the required authorization in server side + + #### API + + ```ts + useAuthenticatedBlitzContext({ + redirectTo, + redirectAuthenticatedTo, + role, + }: { + redirectTo?: string | RouteUrlObject + redirectAuthenticatedTo?: string | RouteUrlObject | ((ctx: Ctx) => string | RouteUrlObject) + role?: string | string[] + }): Promise + ``` + + #### Usage + + **Example Usage in React Server Component in `app` directory in Next 13** + + ```ts + import {getAppSession, useAuthenticatedBlitzContext} from "src/blitz-server" + ... + await useAuthenticatedBlitzContext({ + redirectTo: "/auth/login", + role: ["admin"], + redirectAuthenticatedTo: "/dashboard", + }) + ``` + + ### 🔧 New Blitz RPC Hook `invokeResolver` + + #### API + + ```ts + invokeResolver any, TInput = FirstParam>( + queryFn: T, + params: TInput, + ): Promise> + ``` + + #### Example Usage + + ```ts + ... + import {invokeResolver, useAuthenticatedBlitzContext} from "../src/blitz-server" + import getCurrentUser from "../src/users/queries/getCurrentUser" + + export default async function Home() { + await useAuthenticatedBlitzContext({ + redirectTo: "/auth/login", + }) + const user = await invokeResolver(getCurrentUser, null) + ... + ``` + +- Updated dependencies [cadefb88e] +- Updated dependencies [6f18cbdc9] +- Updated dependencies [acc07ce94] +- Updated dependencies [ea7561b8e] +- Updated dependencies [9529dbd6f] +- Updated dependencies [ea7561b8e] +- Updated dependencies [6e88a847f] +- Updated dependencies [37aeaa7fa] + - blitz@2.0.0-beta.24 + - @blitzjs/auth@2.0.0-beta.24 + - @blitzjs/next@2.0.0-beta.24 + - @blitzjs/rpc@2.0.0-beta.24 + - @blitzjs/config@2.0.0-beta.24 diff --git a/apps/next13/README.md b/apps/next13/README.md new file mode 100644 index 0000000000..8b59024262 --- /dev/null +++ b/apps/next13/README.md @@ -0,0 +1,26 @@ +# Next.js 13 + Blitz Auth + +This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) + [`Blitz Auth`](https://blitzjs.com/docs/auth). + +## Getting Started + +First, run the development server: + +```bash +npm run dev +# or +yarn dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can go to the `/signup` page and create a new account. + +## Learn More + +To learn more about Next.js and Blitz.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. +- [Blitz.js Documentation](https://blitzjs.com/docs/) — learn about Blitz.js. +- [Blitz Auth Documentation](https://blitzjs.com/docs/auth) — learn about Blitz Auth plugin. diff --git a/apps/next13/app/(auth)/components/LoginForm.tsx b/apps/next13/app/(auth)/components/LoginForm.tsx new file mode 100644 index 0000000000..707219ff89 --- /dev/null +++ b/apps/next13/app/(auth)/components/LoginForm.tsx @@ -0,0 +1,126 @@ +import Link from "next/link" +import login from "../mutations/login" +import {Login} from "../validations" +import {useMutation} from "@blitzjs/rpc" +import {startTransition} from "react" +import {useRouter} from "next/navigation" +import {FieldApi, createFormFactory} from "@tanstack/react-form" +import * as z from "zod" +import {AuthenticationError} from "blitz" +import { zodValidate } from "@/app/core/validators/zod" + +type TLogin = z.infer + +const formFactory = createFormFactory({ + defaultValues: { + email: "", + password: "", + }, +}) + +function FieldInfo({field}: {field: FieldApi}) { + return ( + <> + {field.state.meta.touchedError ? {field.state.meta.touchedError} : null}{" "} + {field.state.meta.isValidating ? "Validating..." : null} + + ) +} + +export const LoginForm = () => { + const [loginMutation] = useMutation(login) + const router = useRouter() + const form = formFactory.useForm({ + onSubmit: async (values, formApi) => { + try { + await loginMutation(values) + startTransition(() => { + // Refresh the current route and fetch new data from the server without + // losing client-side browser or React state. + router.refresh() + }) + } catch (error: any) { + if ( + error instanceof AuthenticationError || + error.toString().includes("AuthenticationError") + ) { + return (formApi.state.fieldMeta.password.touchedError = + "Invalid email or password. Please try again.") + } + if (error.code === "P2002" && error.meta?.target?.includes("email")) { + // Error "P2002" comes from Prisma (https://www.prisma.io/docs/reference/api-reference/error-reference#p2002) + return (formApi.state.fieldMeta.email.touchedError = + "This email is already being used. Please try again.") + } else { + return (formApi.state.fieldMeta.password.touchedError = error.toString()) + } + } + }, + }) + return ( +
+

Login

+ + +
+
+ {/* A type-safe and pre-bound field component*/} + { + return zodValidate(Login, "email")(value) + }} + children={(field) => { + // Avoid hasty abstractions. Render props are great! + return ( + <> + + + + + ) + }} + /> + { + return zodValidate(Login, "password")(value) + }} + children={(field) => { + // Avoid hasty abstractions. Render props are great! + return ( + <> + + + + + ) + }} + /> +
+ [state.canSubmit, state.isSubmitting]} + children={([canSubmit, isSubmitting]) => ( + + )} + /> + +
+ +
+ Or Sign Up +
+
+ ) +} + +export default LoginForm diff --git a/apps/next13/app/(auth)/components/SignupForm.tsx b/apps/next13/app/(auth)/components/SignupForm.tsx new file mode 100644 index 0000000000..44107d94a9 --- /dev/null +++ b/apps/next13/app/(auth)/components/SignupForm.tsx @@ -0,0 +1,126 @@ +import Link from "next/link" +import {Signup} from "../validations" +import {useMutation} from "@blitzjs/rpc" +import {startTransition} from "react" +import {useRouter} from "next/navigation" +import {FieldApi, createFormFactory} from "@tanstack/react-form" +import * as z from "zod" +import {AuthenticationError} from "blitz" +import { zodValidate } from "@/app/core/validators/zod" +import signup from "../mutations/signup" + +type TSignup = z.infer + +const formFactory = createFormFactory({ + defaultValues: { + email: "", + password: "", + }, +}) + +function FieldInfo({field}: {field: FieldApi}) { + return ( + <> + {field.state.meta.touchedError ? {field.state.meta.touchedError} : null}{" "} + {field.state.meta.isValidating ? "Validating..." : null} + + ) +} + +export const SignupForm = () => { + const [signupMutation] = useMutation(signup) + const router = useRouter() + const form = formFactory.useForm({ + onSubmit: async (values, formApi) => { + try { + await signupMutation(values) + startTransition(() => { + // Refresh the current route and fetch new data from the server without + // losing client-side browser or React state. + router.refresh() + }) + } catch (error: any) { + if ( + error instanceof AuthenticationError || + error.toString().includes("AuthenticationError") + ) { + return (formApi.state.fieldMeta.password.touchedError = + "Invalid email or password. Please try again.") + } + if (error.code === "P2002" && error.meta?.target?.includes("email")) { + // Error "P2002" comes from Prisma (https://www.prisma.io/docs/reference/api-reference/error-reference#p2002) + return (formApi.state.fieldMeta.email.touchedError = + "This email is already being used. Please try again.") + } else { + return (formApi.state.fieldMeta.password.touchedError = error.toString()) + } + } + }, + }) + return ( +
+

Signup

+ + +
+
+ {/* A type-safe and pre-bound field component*/} + { + return zodValidate(Signup, "email")(value) + }} + children={(field) => { + // Avoid hasty abstractions. Render props are great! + return ( + <> + + + + + ) + }} + /> + { + return zodValidate(Signup, "password")(value) + }} + children={(field) => { + // Avoid hasty abstractions. Render props are great! + return ( + <> + + + + + ) + }} + /> +
+ [state.canSubmit, state.isSubmitting]} + children={([canSubmit, isSubmitting]) => ( + + )} + /> + +
+ +
+ Or Sign Up +
+
+ ) +} + +export default SignupForm diff --git a/apps/next13/app/(auth)/layout.tsx b/apps/next13/app/(auth)/layout.tsx new file mode 100644 index 0000000000..4b7d5e5bb5 --- /dev/null +++ b/apps/next13/app/(auth)/layout.tsx @@ -0,0 +1,8 @@ +import {useAuthenticatedBlitzContext} from "app/blitz-server" + +export default async function AuthLayout({children}: {children: React.ReactNode}) { + await useAuthenticatedBlitzContext({ + redirectAuthenticatedTo: "/", + }) + return <>{children} +} diff --git a/apps/next13/app/(auth)/login/page.tsx b/apps/next13/app/(auth)/login/page.tsx new file mode 100644 index 0000000000..8b1d729fb4 --- /dev/null +++ b/apps/next13/app/(auth)/login/page.tsx @@ -0,0 +1,9 @@ +"use client" + +import {LoginForm} from "../components/LoginForm" + +const LoginPage = () => { + return +} + +export default LoginPage diff --git a/apps/next13/app/(auth)/mutations/changePassword.ts b/apps/next13/app/(auth)/mutations/changePassword.ts new file mode 100644 index 0000000000..a18921372f --- /dev/null +++ b/apps/next13/app/(auth)/mutations/changePassword.ts @@ -0,0 +1,22 @@ +import {NotFoundError} from "blitz" +import db from "@/db" +import {authenticateUser} from "./login" +import {ChangePassword} from "../validations" +import {resolver} from "@blitzjs/rpc" +import {SecurePassword} from "@blitzjs/auth/secure-password" + +export default resolver.pipe( + resolver.zod(ChangePassword), + resolver.authorize(), + async ({currentPassword, newPassword}, ctx) => { + const user = await db.user.findFirst({where: {id: ctx.session.userId}}) + if (!user) throw new NotFoundError() + await authenticateUser(user.email, currentPassword) + const hashedPassword = await SecurePassword.hash(newPassword.trim()) + await db.user.update({ + where: {id: user.id}, + data: {hashedPassword: hashedPassword}, + }) + return true + }, +) diff --git a/apps/next13/app/(auth)/mutations/forgotPassword.test.ts b/apps/next13/app/(auth)/mutations/forgotPassword.test.ts new file mode 100644 index 0000000000..c5678da0e2 --- /dev/null +++ b/apps/next13/app/(auth)/mutations/forgotPassword.test.ts @@ -0,0 +1,64 @@ +import {vi, describe, it, beforeEach} from "vitest" +import db from "@/db" +import {hash256} from "@blitzjs/auth" +import forgotPassword from "./forgotPassword" +import previewEmail from "preview-email" +import {Ctx} from "@blitzjs/next" + +beforeEach(async () => { + await db.$reset() +}) + +const generatedToken = "plain-token" +vi.mock("@blitzjs/auth", async () => { + const auth = await vi.importActual>("@blitzjs/auth")! + return { + ...auth, + generateToken: () => generatedToken, + } +}) + +vi.mock("preview-email", () => ({default: vi.fn()})) + +describe("forgotPassword mutation", () => { + it("does not throw error if user doesn't exist", async () => { + await expect(forgotPassword({email: "no-user@email.com"}, {} as Ctx)).resolves.not.toThrow() + }) + + it("works correctly", async () => { + // Create test user + const user = await db.user.create({ + data: { + email: "user@example.com", + tokens: { + // Create old token to ensure it's deleted + create: { + type: "RESET_PASSWORD", + hashedToken: "token", + expiresAt: new Date(), + sentTo: "user@example.com", + }, + }, + }, + include: {tokens: true}, + }) + + // Invoke the mutation + await forgotPassword({email: user.email}, {} as Ctx) + + const tokens = await db.token.findMany({where: {userId: user.id}}) + const token = tokens[0] + if (!user.tokens[0]) throw new Error("Missing user token") + if (!token) throw new Error("Missing token") + + // delete's existing tokens + expect(tokens.length).toBe(1) + + expect(token.id).not.toBe(user.tokens[0].id) + expect(token.type).toBe("RESET_PASSWORD") + expect(token.sentTo).toBe(user.email) + expect(token.hashedToken).toBe(hash256(generatedToken)) + expect(token.expiresAt > new Date()).toBe(true) + expect(previewEmail).toBeCalled() + }) +}) diff --git a/apps/next13/app/(auth)/mutations/forgotPassword.ts b/apps/next13/app/(auth)/mutations/forgotPassword.ts new file mode 100644 index 0000000000..56249a85c4 --- /dev/null +++ b/apps/next13/app/(auth)/mutations/forgotPassword.ts @@ -0,0 +1,40 @@ +import {generateToken, hash256} from "@blitzjs/auth" +import {resolver} from "@blitzjs/rpc" +import db from "@/db" +import {ForgotPassword} from "../validations" + +const RESET_PASSWORD_TOKEN_EXPIRATION_IN_HOURS = 4 +//@ts-ignore +export default resolver.pipe(resolver.zod(ForgotPassword), async ({email}) => { + // 1. Get the user + const user = await db.user.findFirst({where: {email: email.toLowerCase()}}) + + // 2. Generate the token and expiration date. + const token = generateToken() + const hashedToken = hash256(token) + const expiresAt = new Date() + expiresAt.setHours(expiresAt.getHours() + RESET_PASSWORD_TOKEN_EXPIRATION_IN_HOURS) + + // 3. If user with this email was found + if (user) { + // 4. Delete any existing password reset tokens + await db.token.deleteMany({where: {type: "RESET_PASSWORD", userId: user.id}}) + // 5. Save this new token in the database. + await db.token.create({ + data: { + user: {connect: {id: user.id}}, + type: "RESET_PASSWORD", + expiresAt, + hashedToken, + sentTo: user.email, + }, + }) + // 6. Send the email + } else { + // 7. If no user found wait the same time so attackers can't tell the difference + await new Promise((resolve) => setTimeout(resolve, 750)) + } + + // 8. Return the same result whether a password reset email was sent or not + return +}) diff --git a/apps/next13/app/(auth)/mutations/login.ts b/apps/next13/app/(auth)/mutations/login.ts new file mode 100644 index 0000000000..4811af875a --- /dev/null +++ b/apps/next13/app/(auth)/mutations/login.ts @@ -0,0 +1,29 @@ +import {resolver} from "@blitzjs/rpc" +import {AuthenticationError} from "blitz" +import db from "@/db" +import {Login} from "../validations" +import { SecurePassword } from "@blitzjs/auth/secure-password" + +export const authenticateUser = async (rawEmail: string, rawPassword: string) => { + const {email, password} = Login.parse({email: rawEmail, password: rawPassword}) + const user = await db.user.findFirst({where: {email}}) + if (!user) throw new AuthenticationError() + + const result = await SecurePassword.verify(user.hashedPassword, password) + + if (result === SecurePassword.VALID_NEEDS_REHASH) { + // Upgrade hashed password with a more secure hash + const improvedHash = await SecurePassword.hash(password) + await db.user.update({where: {id: user.id}, data: {hashedPassword: improvedHash}}) + } + + const {hashedPassword, ...rest} = user + return rest +} + +export default resolver.pipe(resolver.zod(Login), async ({email, password}, ctx) => { + const user = await authenticateUser(email, password) + await ctx.session.$create({userId: user.id, role: user.role}) + console.log("user", user) + return user +}) diff --git a/apps/next13/app/(auth)/mutations/logout.ts b/apps/next13/app/(auth)/mutations/logout.ts new file mode 100644 index 0000000000..ca7e6de856 --- /dev/null +++ b/apps/next13/app/(auth)/mutations/logout.ts @@ -0,0 +1,5 @@ +import {Ctx} from "blitz" + +export default async function logout(_: any, ctx: Ctx) { + return await ctx.session.$revoke() +} diff --git a/apps/next13/app/(auth)/mutations/resetPassword.test.ts b/apps/next13/app/(auth)/mutations/resetPassword.test.ts new file mode 100644 index 0000000000..7ffa6c35ce --- /dev/null +++ b/apps/next13/app/(auth)/mutations/resetPassword.test.ts @@ -0,0 +1,84 @@ +import {vi, describe, it, beforeEach, expect} from "vitest" +import resetPassword from "./resetPassword" +import db from "@/db" +import {hash256} from "@blitzjs/auth" +import {SecurePassword} from "@blitzjs/auth/secure-password" + +beforeEach(async () => { + await db.$reset() +}) + +const mockCtx: any = { + session: { + $create: vi.fn(), + }, +} + +describe("resetPassword mutation", () => { + it("works correctly", async () => { + expect(true).toBe(true) + + // Create test user + const goodToken = "randomPasswordResetToken" + const expiredToken = "expiredRandomPasswordResetToken" + const future = new Date() + future.setHours(future.getHours() + 4) + const past = new Date() + past.setHours(past.getHours() - 4) + + const user = await db.user.create({ + data: { + email: "user@example.com", + tokens: { + // Create old token to ensure it's deleted + create: [ + { + type: "RESET_PASSWORD", + hashedToken: hash256(expiredToken), + expiresAt: past, + sentTo: "user@example.com", + }, + { + type: "RESET_PASSWORD", + hashedToken: hash256(goodToken), + expiresAt: future, + sentTo: "user@example.com", + }, + ], + }, + }, + include: {tokens: true}, + }) + + const newPassword = "newPassword" + + // Non-existent token + await expect( + resetPassword({token: "no-token", password: "", passwordConfirmation: ""}, mockCtx), + ).rejects.toThrowError() + + // Expired token + await expect( + resetPassword( + {token: expiredToken, password: newPassword, passwordConfirmation: newPassword}, + mockCtx, + ), + ).rejects.toThrowError() + + // Good token + await resetPassword( + {token: goodToken, password: newPassword, passwordConfirmation: newPassword}, + mockCtx, + ) + + // Delete's the token + const numberOfTokens = await db.token.count({where: {userId: user.id}}) + expect(numberOfTokens).toBe(0) + + // Updates user's password + const updatedUser = await db.user.findFirst({where: {id: user.id}}) + expect(await SecurePassword.verify(updatedUser!.hashedPassword, newPassword)).toBe( + SecurePassword.VALID, + ) + }) +}) diff --git a/apps/next13/app/(auth)/mutations/resetPassword.ts b/apps/next13/app/(auth)/mutations/resetPassword.ts new file mode 100644 index 0000000000..adcde0216a --- /dev/null +++ b/apps/next13/app/(auth)/mutations/resetPassword.ts @@ -0,0 +1,50 @@ +import {hash256} from "@blitzjs/auth" +import db from "@/db" +import {ResetPassword} from "../validations" +import login from "./login" + +export class ResetPasswordError extends Error { + name = "ResetPasswordError" + message = "Reset password link is invalid or it has expired." +} + +export default async function resetPassword(input: any, ctx: any) { + ResetPassword.parse(input) + // 1. Try to find this token in the database + const hashedToken = hash256(input.token) + const possibleToken = await db.token.findFirst({ + where: {hashedToken, type: "RESET_PASSWORD"}, + include: {user: true}, + }) + + // 2. If token not found, error + if (!possibleToken) { + throw new ResetPasswordError() + } + const savedToken = possibleToken + + // 3. Delete token so it can't be used again + await db.token.delete({where: {id: savedToken.id}}) + + // 4. If token has expired, error + if (savedToken.expiresAt < new Date()) { + throw new ResetPasswordError() + } + + // 5. Since token is valid, now we can update the user's password + // const hashedPassword = await SecurePassword.hash(input.password.trim()) + const user = await db.user.update({ + where: {id: savedToken.userId}, + data: { + hashedPassword: input.password, + }, + }) + + // 6. Revoke all existing login sessions for this user + await db.session.deleteMany({where: {userId: user.id}}) + + // 7. Now log the user in with the new credentials + await login({email: user.email, password: input.password}, ctx) + + return true +} diff --git a/apps/next13/app/(auth)/mutations/signup.ts b/apps/next13/app/(auth)/mutations/signup.ts new file mode 100644 index 0000000000..fe042ba76b --- /dev/null +++ b/apps/next13/app/(auth)/mutations/signup.ts @@ -0,0 +1,18 @@ +import db from "@/db" +import {SecurePassword} from "@blitzjs/auth/secure-password" + +export default async function signup(input: {password: string; email: string}, ctx: any) { + const blitzContext = ctx + const hashedPassword = await SecurePassword.hash((input.password as string) || "test-password") + const email = (input.email as string) || "test" + Math.random() + "@test.com" + const user = await db.user.create({ + data: {email, hashedPassword}, + }) + + await blitzContext.session.$create({ + userId: user.id, + role: "user", + }) + + return {userId: blitzContext.session.userId, ...user, email: input.email} +} diff --git a/apps/next13/app/(auth)/signup/page.tsx b/apps/next13/app/(auth)/signup/page.tsx new file mode 100644 index 0000000000..c53a5a84f2 --- /dev/null +++ b/apps/next13/app/(auth)/signup/page.tsx @@ -0,0 +1,8 @@ +"use client" +import SignupForm from "../components/SignupForm" + +const SignUp = () => { + return +} + +export default SignUp diff --git a/apps/next13/app/(auth)/validations.ts b/apps/next13/app/(auth)/validations.ts new file mode 100644 index 0000000000..f13218b685 --- /dev/null +++ b/apps/next13/app/(auth)/validations.ts @@ -0,0 +1,42 @@ +import {z} from "zod" + +export const email = z + .string() + .email() + .transform((str) => str.toLowerCase().trim()) + +export const password = z + .string() + .min(10) + .max(100) + .transform((str) => str.trim()) + +export const Signup = z.object({ + email, + password, +}) + +export const Login = z.object({ + email, + password: z.string(), +}) + +export const ForgotPassword = z.object({ + email, +}) + +export const ResetPassword = z + .object({ + password: password, + passwordConfirmation: password, + token: z.string(), + }) + .refine((data) => data.password === data.passwordConfirmation, { + message: "Passwords don't match", + path: ["passwordConfirmation"], // set the path of the error + }) + +export const ChangePassword = z.object({ + currentPassword: z.string(), + newPassword: password, +}) diff --git a/apps/next13/app/blitz-client.ts b/apps/next13/app/blitz-client.ts new file mode 100644 index 0000000000..cb9b84c117 --- /dev/null +++ b/apps/next13/app/blitz-client.ts @@ -0,0 +1,13 @@ +"use client" +import {AuthClientPlugin} from "@blitzjs/auth" +import {setupBlitzClient} from "@blitzjs/next" +import {BlitzRpcPlugin} from "@blitzjs/rpc" + +export const {withBlitz, useSession, BlitzProvider} = setupBlitzClient({ + plugins: [ + AuthClientPlugin({ + cookiePrefix: "web-cookie-prefix", + }), + BlitzRpcPlugin({}), + ], +}) diff --git a/apps/next13/app/blitz-server.ts b/apps/next13/app/blitz-server.ts new file mode 100644 index 0000000000..91668c5420 --- /dev/null +++ b/apps/next13/app/blitz-server.ts @@ -0,0 +1,32 @@ +import type {BlitzCliConfig} from "blitz" +import {setupBlitzServer} from "@blitzjs/next" +import {AuthServerPlugin, PrismaStorage} from "@blitzjs/auth" +import db from "../db" +import {simpleRolesIsAuthorized} from "@blitzjs/auth" +import {BlitzLogger} from "blitz" +import {RpcServerPlugin} from "@blitzjs/rpc" + +const {api, getBlitzContext, useAuthenticatedBlitzContext, invoke} = setupBlitzServer({ + plugins: [ + AuthServerPlugin({ + cookiePrefix: "web-cookie-prefix", + storage: PrismaStorage(db), + isAuthorized: simpleRolesIsAuthorized, + }), + RpcServerPlugin({ + logging: { + disablelevel: "debug", + }, + onInvokeError(error) { + console.log("onInvokeError", error) + }, + }), + ], + logger: BlitzLogger({}), +}) + +export {api, getBlitzContext, useAuthenticatedBlitzContext, invoke} + +export const cliConfig: BlitzCliConfig = { + customTemplates: "src/templates", +} diff --git a/apps/next13/app/core/components/Logout.tsx b/apps/next13/app/core/components/Logout.tsx new file mode 100644 index 0000000000..3b2ec30242 --- /dev/null +++ b/apps/next13/app/core/components/Logout.tsx @@ -0,0 +1,24 @@ +"use client" +import styles from "@/app/styles/Home.module.css" +import logout from "@/app/(auth)/mutations/logout" +import {useRouter} from "next/navigation" +import {useMutation} from "@blitzjs/rpc" + +export default function LogoutButton() { + const router = useRouter() + const [logoutMutation] = useMutation(logout) + return ( + <> + + + ) +} diff --git a/apps/next13/app/core/validators/zod.ts b/apps/next13/app/core/validators/zod.ts new file mode 100644 index 0000000000..623df9b212 --- /dev/null +++ b/apps/next13/app/core/validators/zod.ts @@ -0,0 +1,18 @@ +import * as z from "zod" + +export function zodValidate, U = keyof T>(schema: T, field: U) { + return (value: string): string => { + const result = schema + .pick({ + [field as string]: true, + }) + .safeParse({ + [field as string]: value, + }) + if (result.success) { + return "" + } else { + return JSON.parse(result.error.message)[0].message + } + } +} diff --git a/apps/next13/app/error.tsx b/apps/next13/app/error.tsx new file mode 100644 index 0000000000..2c6571bf17 --- /dev/null +++ b/apps/next13/app/error.tsx @@ -0,0 +1,24 @@ +"use client" // Error components must be Client components + +import React, {useEffect} from "react" + +export default function Error({error, reset}: {error: Error; reset: () => void}) { + useEffect(() => { + // Log the error to an error reporting service + console.error(error) + }, [error]) + + return ( +
+

Something went wrong!

+ +
+ ) +} diff --git a/apps/next13/app/layout.tsx b/apps/next13/app/layout.tsx new file mode 100644 index 0000000000..1b88cdda55 --- /dev/null +++ b/apps/next13/app/layout.tsx @@ -0,0 +1,23 @@ +import "@/app/styles/globals.css" +import {BlitzProvider} from "./blitz-client" +import {Inter} from "next/font/google" + +const inter = Inter({subsets: ["latin"]}) + +export const metadata = { + title: "New Blitz App", + description: "Generated by blitz new ", +} + +export default function RootLayout({children}: {children: React.ReactNode}) { + return ( + + + + <>{children} + + + + ) +} + diff --git a/apps/next13/app/loading.tsx b/apps/next13/app/loading.tsx new file mode 100644 index 0000000000..2fafa2a60a --- /dev/null +++ b/apps/next13/app/loading.tsx @@ -0,0 +1,4 @@ +export default function Loading() { + // Or a custom loading skeleton component + return "Loading..." +} diff --git a/apps/next13/app/page.tsx b/apps/next13/app/page.tsx new file mode 100644 index 0000000000..2df6534509 --- /dev/null +++ b/apps/next13/app/page.tsx @@ -0,0 +1,166 @@ +import Link from "next/link" +import {invoke} from "./blitz-server" +import LogoutButton from "./core/components/Logout" +import styles from "./styles/Home.module.css" +import getCurrentUser from "./users/queries/getCurrentUser" + +export default async function Home() { + const currentUser = await invoke(getCurrentUser, null) + return ( + <> +
+
+
+

+ Congrats! Your app is ready, including user sign-up and log-in. +

+
+ +
+
+
+
+ + + + + +
+ +

Your database & authentication is ready. Try it by signing up.

+ + {/* Auth */} + +
+ {currentUser ? ( + <> + +
+ User id: {currentUser.id} +
+ User role: {currentUser.role} +
+ + ) : ( + <> + + Sign Up + + + Login + + + )} +
+
+ +
+ {/* Instructions */} +
+

+ Add a new model by running the following in your terminal: +

+ +
+
+ 1 +
+                      blitz generate all project
+                    
+
+ +
+ 2 +
+                      Ctrl + c
+                    
+
+ +
+ 3 +
+                      blitz dev
+                    
+
+ +
+ 4 +
+                      
+                        Go to{" "}
+                        {/* @ts-ignore: TODO remove after scaffolding */}
+                        
+                          /projects
+                        
+                      
+                    
+
+
+
+ {/* Links */} + +
+
+
+ + +
+ + ) +} diff --git a/apps/next13/app/styles/Home.module.css b/apps/next13/app/styles/Home.module.css new file mode 100644 index 0000000000..3453d1ee11 --- /dev/null +++ b/apps/next13/app/styles/Home.module.css @@ -0,0 +1,303 @@ +.container { + display: flex; + flex-direction: column; + height: 100vh; +} + +.main { + flex: 1; + padding: 0rem 1rem; + display: flex; + flex-direction: column; +} + +.wrapper { + display: flex; + flex-direction: column; + gap: 2rem; +} + +.frost { + background: rgba(255, 255, 255, 0.2); + border-radius: 16px; + box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1); + backdrop-filter: blur(5px); + -webkit-backdrop-filter: blur(5px); + border: 1px solid rgba(255, 255, 255, 0.31); +} + +.header { + display: flex; + flex-direction: column; + padding: 4rem 0rem 2rem 0rem; + text-align: center; + gap: 2rem; +} + +.header h1 { + max-width: 620px; + align-self: center; +} + +.body { + composes: frost; + border-radius: var(--border-radius); + display: flex; + padding: 1rem; + width: 100%; + flex-direction: row; + align-self: center; + max-width: var(--screen-width); +} + +.instructions { + display: inline-flex; + flex-direction: column; + padding: 1rem; + width: 100%; +} + +.globe { + position: fixed; + width: 350vmin; + height: 75vmin; + left: 20%; + top: 50%; + transform: translate(-50%, calc(-50% + 40px)); + z-index: -1; + border-radius: 100%; + background-image: radial-gradient( + 95.63% 95.63% at 95.92% 0%, + rgba(255, 255, 255, 0.62) 0%, + #8155ff38 60.42%, + #002fff5c 169% + ); + filter: blur(8vmin); +} + +.footer { + display: flex; + padding: 2rem 0; + justify-content: center; + align-items: center; +} + +.footer span { + margin-right: 0.2rem; +} + +.code { + display: flex; + align-items: center; + gap: 0.5rem; +} + +.code span { + background: rgba(124, 58, 237, 50%); + border-radius: 50rem; + font-size: 14px; + font-weight: 500; + padding: 17px; + width: 20px; + height: 20px; + display: flex; + align-items: center; + justify-content: center; + color: rgb(57, 33, 97); +} + +.code pre { + background: rgba(124, 58, 237, 12%); + border-radius: 4px; + padding: 0.7em 1.4em; + text-align: center; +} + +.code code { + font-size: 0.86em; + font-weight: bold; + color: rgb(124, 58, 237); + font-family: Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, + Bitstream Vera Sans Mono, Courier New, monospace; +} + +.toastContainer { + border: 1px solid #edff; + padding: 0 1rem; + background: #eeff; + color: #62af; + text-align: center; +} + +.toastContainer strong { + color: rgb(124, 58, 237); +} + +.textLink { + color: rgb(124, 58, 237); + background: linear-gradient(to right, rgba(231, 216, 246, 1), rgba(231, 216, 246, 1)), + linear-gradient(to right, rgba(99, 1, 235, 1), rgba(124, 58, 237, 1), rgba(231, 216, 246, 1)); + background-size: 100% 1px, 0 1px; + background-position: 100% 100%, 0 100%; + background-repeat: no-repeat; + transition: background-size 400ms; +} + +.textLink:hover, +.textLink:focus, +.textLink:active { + background-size: 0 1px, 100% 1px; +} + +.arrowIcon { + box-sizing: border-box; + display: block; + width: 8px; + height: 8px; + border-top: 2px solid; + transform: scale(var(--ggs, 1)); + border-right: 2px solid; + position: absolute; + right: 6px; + top: 6px; + color: #b1a5c4; +} + +.arrowIcon::after { + content: ""; + display: block; + box-sizing: border-box; + position: absolute; + width: 8px; + height: 2px; + background: currentColor; + transform: rotate(-45deg); + top: 2px; + right: -1px; +} + +.buttonContainer { + display: flex; + flex-direction: row; + gap: 1rem; + justify-content: center; + align-items: center; + flex: 1; +} + +.button { + background: linear-gradient(to top, rgb(124, 58, 237), rgb(117, 81, 236)); + border: 1px solid rgb(231, 216, 246); + color: white; + text-shadow: rgba(0, 0, 0, 0.25) 0px 3px 8px; + padding: 0 24px; + height: 48px; + width: 200px; + max-width: 300px; + position: relative; + display: inline-flex; + justify-content: center; + align-items: center; + flex-shrink: 0; + user-select: none; + white-space: nowrap; + border-radius: 0.75rem; + border-bottom-left-radius: 0px; + font-size: 15px; + transition: all 0.3s ease 0s; + cursor: pointer; +} + +.button:hover { + color: white; + text-shadow: rgb(0 0 0 / 56%) 0px 3px 12px; + box-shadow: rgb(80 63 205 / 50%) 0px 1px 40px; +} + +.loginButton { + composes: button; + background: rgb(248 250 252); + border: 1px solid rgb(231, 216, 246); + color: rgb(30 41 59); + text-shadow: none; +} + +.loginButton:hover { + color: rgb(30 41 59); + text-shadow: none; +} + +.card:hover .arrowIcon { + color: #7450ec; +} + +.linkGrid { + display: flex; + flex-direction: column; + flex-wrap: wrap; + gap: 1rem; +} + +.card { + composes: frost; + padding: 1rem 0rem; + text-align: center; + color: inherit; + text-decoration: none; + border-radius: 10px; + border-bottom-left-radius: 0px; + transition: color 0.15s ease, border-color 0.15s ease; + max-width: 200px; + min-width: 200px; + display: flex; + flex-direction: row; + justify-content: center; +} + +.card:hover, +.card:focus, +.card:active { + color: #7450ec; + border-color: #7450ec; +} + +.card h2 { + margin: 0 0 1rem 0; + font-size: 1.5rem; +} + +.card p { + margin: 0; + font-size: 1.25rem; + line-height: 1.5; +} + +.logo { + flex: 1; + padding: 1rem 2rem; +} + +.logo svg { + height: 100%; + width: 200px; + fill: #7450ec; +} + +/* MOBILE */ +@media (max-width: 800px) { + .linkGrid { + width: 100%; + } + + .card { + max-width: 100%; + } + + .body { + flex-wrap: wrap; + } + + .buttonContainer { + flex-wrap: wrap; + } +} diff --git a/apps/next13/app/styles/globals.css b/apps/next13/app/styles/globals.css new file mode 100644 index 0000000000..2764411401 --- /dev/null +++ b/apps/next13/app/styles/globals.css @@ -0,0 +1,25 @@ +:root { + --border-radius: 0.75rem; + --screen-width: 90vmin; +} + +html, +body { + padding: 0; + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, + Fira Sans, Droid Sans, Helvetica Neue, sans-serif; +} + +a { + color: inherit; + text-decoration: none; +} + +i { + font-size: 0.8rem; +} + +* { + box-sizing: border-box; +} diff --git a/apps/next13/app/users/hooks/useCurrentUser.ts b/apps/next13/app/users/hooks/useCurrentUser.ts new file mode 100644 index 0000000000..4a0b15a931 --- /dev/null +++ b/apps/next13/app/users/hooks/useCurrentUser.ts @@ -0,0 +1,7 @@ +import {useQuery} from "@blitzjs/rpc" +import getCurrentUser from "../queries/getCurrentUser" + +export const useCurrentUser = () => { + const [user] = useQuery(getCurrentUser, null) + return user +} diff --git a/apps/next13/app/users/queries/getCurrentUser.ts b/apps/next13/app/users/queries/getCurrentUser.ts new file mode 100644 index 0000000000..8ff9ced4e5 --- /dev/null +++ b/apps/next13/app/users/queries/getCurrentUser.ts @@ -0,0 +1,17 @@ +import {Ctx} from "blitz" +import db from "../../../db" +import { Role } from "@/types" + +export default async function getCurrentUser(input: null, ctx: Ctx) { + if (!ctx.session.userId) return null + const user = await db.user.findFirst({ + where: {id: ctx.session.userId}, + select: {id: true, name: true, email: true, role: true}, + }) + + return user +} + +export const config = { + httpMethod: "GET", +} diff --git a/apps/next13/db/dev.db b/apps/next13/db/dev.db new file mode 100644 index 0000000000000000000000000000000000000000..0f593f8aac206379c4418562cde54fb8d899af7d GIT binary patch literal 32768 zcmeI)-*4JR8~|`TX+lF6(LF?&6lt^klAtD)ZOji>TU!DqBLzdiPD-T7I_z`eVFSe` zBklS?D^-2if3v6k3Ht}OX@9|_J@j#V+}Suk2;Ed^Yo%!46F=;;?|XNjyCWiin|l@8 z$Bfk*xX5Qx)NP8UsfP?hQPd-Hze(+po$JFvq ziSL&;Kl=67gZOV`7ZM1700@8p2!H?xfWZGz0LNmh{2D#JWp_KrmPg@#|%4rI?L3Q^L%!LodjZ&+T!ABa)o{t)}ncMpko)= zPEbRz7kg{?>GLL`gFF&9EX^igezFi-U0b7H#eCFuaMYgYX)y|_=C>>IMWdLFI71R^ zn=I*vD(}b*MyaWcqE#wPy-}{_8!hIM++y;YS}Q9gNL5zU%}F6V>e~bC<$abZ5)ZXp zm7^n3PZ?EyOkzdx&X0M=*o>N`_By!BhUZ0xQP;N%%|>bVNPpONY@>*LG*zHKuuqVW zXYz*xr+m?^N%%rdX{wDp>FT+GJ~>gh2tUh|Y7M!(qlA6lV51mGrXiQ)hO89iCc}p6 z%tm0A3`V#pS7b69nsUTOvb1^t!W8n&LcS=+ll2>mt9S0ut#DwxCk}a=qkH(t5O)oH zWp`m}pspO;=pq+yl9I{s`h0A4WrcphhcSaT1@{|MrO%rBFUB~iaEf~}+5TZ<>&WxI z=?#c{F#7T2%R`#1DxQ9&hb`5~czG_;UHfQ&e6qg0*_^rQUd*1rUY@tX1iq5Od3SmG zUYUc&F*Z8h&}FB~y=}T$cGnIjtd7Vuzeram{CRKm30QRE+X6bhBkyvgOQ%LlV9;|M zQehhzoy)aesnYY&z@KT?`AR%rc4U5*@>)e@jNxE_yT0z*E+&QD{@IG__Z^!A@_gL) zbfY)yhCMxdInb0QSrBq@HXs*I7UmXL4|tjiU&^A%iiUnK+}CFZPUmOy=E#we*pg5tCE;vJz&X_BCHnQJKYsU>zzHcX&8Im@CoNd_8%V~v|OXJ|Mj70?u=y3)lN)-*VK-4 z(suR-Eq;4PbL5oT;cHmk8zFVuQMtp0!S&1geCcU(FaNITi{SnLT;g{s@dtT;1Ogxc z0w4eaAOHd&00JNY0w4eaAaLCU;&bzBOVKqzV)XpVQgHE#$>;x7Dp9@e-Glan00@8p z2!H?xfB*=900@8p2!Ox`5*TxIoLV41?XTuPUZP+BQ2G4lo+>JuUdUAYN_Eh#?PBiW z$;fSGJzOas+b7Dsp6`i54!5N&&ZTlz%FLQpT9DejD4~?dnLLtmVoor)9JvgDB}x+J zQ-)=tc823EQ9x!|=r$YK)4ihu%`>ugw(oX3aOC%^xHLnYpPAS0*-1V8`;KmY_l00ck)1V8`;KmY_l;C&0+o?l;@`mF+7 o|L=X1Lwpbb0T2KI5C8!X009sH0T2KI5O{wA!S(;%<+}%e0W*kZ=l}o! literal 0 HcmV?d00001 diff --git a/apps/next13/db/index.ts b/apps/next13/db/index.ts new file mode 100644 index 0000000000..4d7a5a6350 --- /dev/null +++ b/apps/next13/db/index.ts @@ -0,0 +1,8 @@ +import { enhancePrisma } from "blitz" +import { PrismaClient } from "@prisma/client" + +const EnhancedPrisma = enhancePrisma(PrismaClient) + +export * from "@prisma/client" +const db = new EnhancedPrisma() +export default db diff --git a/apps/next13/db/migrations/20230515094145_/migration.sql b/apps/next13/db/migrations/20230515094145_/migration.sql new file mode 100644 index 0000000000..bfe497a036 --- /dev/null +++ b/apps/next13/db/migrations/20230515094145_/migration.sql @@ -0,0 +1,26 @@ +-- CreateTable +CREATE TABLE "User" ( + "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + "name" TEXT, + "email" TEXT NOT NULL, + "hashedPassword" TEXT +); + +-- CreateTable +CREATE TABLE "Session" ( + "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + "expiresAt" DATETIME, + "handle" TEXT NOT NULL, + "hashedSessionToken" TEXT, + "antiCSRFToken" TEXT, + "publicData" TEXT, + "privateData" TEXT, + "userId" INTEGER, + CONSTRAINT "Session_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE SET NULL ON UPDATE CASCADE +); + +-- CreateIndex +CREATE UNIQUE INDEX "User_email_key" ON "User"("email"); + +-- CreateIndex +CREATE UNIQUE INDEX "Session_handle_key" ON "Session"("handle"); diff --git a/apps/next13/db/migrations/20230515094805_/migration.sql b/apps/next13/db/migrations/20230515094805_/migration.sql new file mode 100644 index 0000000000..c676c0b119 --- /dev/null +++ b/apps/next13/db/migrations/20230515094805_/migration.sql @@ -0,0 +1,57 @@ +/* + Warnings: + + - Added the required column `updatedAt` to the `Session` table without a default value. This is not possible if the table is not empty. + - Added the required column `updatedAt` to the `User` table without a default value. This is not possible if the table is not empty. + +*/ +-- CreateTable +CREATE TABLE "Token" ( + "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" DATETIME NOT NULL, + "hashedToken" TEXT NOT NULL, + "type" TEXT NOT NULL, + "expiresAt" DATETIME NOT NULL, + "sentTo" TEXT NOT NULL, + "userId" INTEGER NOT NULL, + CONSTRAINT "Token_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE RESTRICT ON UPDATE CASCADE +); + +-- RedefineTables +PRAGMA foreign_keys=OFF; +CREATE TABLE "new_Session" ( + "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" DATETIME NOT NULL, + "expiresAt" DATETIME, + "handle" TEXT NOT NULL, + "hashedSessionToken" TEXT, + "antiCSRFToken" TEXT, + "publicData" TEXT, + "privateData" TEXT, + "userId" INTEGER, + CONSTRAINT "Session_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE SET NULL ON UPDATE CASCADE +); +INSERT INTO "new_Session" ("antiCSRFToken", "expiresAt", "handle", "hashedSessionToken", "id", "privateData", "publicData", "userId") SELECT "antiCSRFToken", "expiresAt", "handle", "hashedSessionToken", "id", "privateData", "publicData", "userId" FROM "Session"; +DROP TABLE "Session"; +ALTER TABLE "new_Session" RENAME TO "Session"; +CREATE UNIQUE INDEX "Session_handle_key" ON "Session"("handle"); +CREATE TABLE "new_User" ( + "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" DATETIME NOT NULL, + "name" TEXT, + "email" TEXT NOT NULL, + "hashedPassword" TEXT, + "role" TEXT NOT NULL DEFAULT 'USER' +); +INSERT INTO "new_User" ("email", "hashedPassword", "id", "name") SELECT "email", "hashedPassword", "id", "name" FROM "User"; +DROP TABLE "User"; +ALTER TABLE "new_User" RENAME TO "User"; +CREATE UNIQUE INDEX "User_email_key" ON "User"("email"); +PRAGMA foreign_key_check; +PRAGMA foreign_keys=ON; + +-- CreateIndex +CREATE UNIQUE INDEX "Token_hashedToken_type_key" ON "Token"("hashedToken", "type"); diff --git a/apps/next13/db/migrations/migration_lock.toml b/apps/next13/db/migrations/migration_lock.toml new file mode 100644 index 0000000000..e5e5c4705a --- /dev/null +++ b/apps/next13/db/migrations/migration_lock.toml @@ -0,0 +1,3 @@ +# Please do not edit this file manually +# It should be added in your version-control system (i.e. Git) +provider = "sqlite" \ No newline at end of file diff --git a/apps/next13/db/schema.prisma b/apps/next13/db/schema.prisma new file mode 100644 index 0000000000..83cd1b80f6 --- /dev/null +++ b/apps/next13/db/schema.prisma @@ -0,0 +1,65 @@ +// This is your Prisma schema file, +// learn more about it in the docs: https://pris.ly/d/prisma-schema + +datasource db { + provider = "sqlite" + url = "file:./db.sqlite" +} + +generator client { + provider = "prisma-client-js" +} + +// -------------------------------------- + +model User { + id Int @id @default(autoincrement()) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + name String? + email String @unique + hashedPassword String? + role String @default("USER") + + tokens Token[] + sessions Session[] +} + +model Session { + id Int @id @default(autoincrement()) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + expiresAt DateTime? + handle String @unique + hashedSessionToken String? + antiCSRFToken String? + publicData String? + privateData String? + + user User? @relation(fields: [userId], references: [id]) + userId Int? +} + +model Token { + id Int @id @default(autoincrement()) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + hashedToken String + type String + // See note below about TokenType enum + // type TokenType + expiresAt DateTime + sentTo String + + user User @relation(fields: [userId], references: [id]) + userId Int + + @@unique([hashedToken, type]) +} + +// NOTE: It's highly recommended to use an enum for the token type +// but enums only work in Postgres. +// See: https://blitzjs.com/docs/database-overview#switch-to-postgre-sql +// enum TokenType { +// RESET_PASSWORD +// } diff --git a/apps/next13/integrations/.keep b/apps/next13/integrations/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/apps/next13/mailers/.keep b/apps/next13/mailers/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/apps/next13/mailers/forgotPasswordMailer.ts b/apps/next13/mailers/forgotPasswordMailer.ts new file mode 100644 index 0000000000..baace45b9a --- /dev/null +++ b/apps/next13/mailers/forgotPasswordMailer.ts @@ -0,0 +1,45 @@ +/* TODO - You need to add a mailer integration in `integrations/` and import here. + * + * The integration file can be very simple. Instantiate the email client + * and then export it. That way you can import here and anywhere else + * and use it straight away. + */ + +type ResetPasswordMailer = { + to: string + token: string +} + +export function forgotPasswordMailer({ to, token }: ResetPasswordMailer) { + // In production, set APP_ORIGIN to your production server origin + const origin = process.env.APP_ORIGIN || process.env.BLITZ_DEV_SERVER_ORIGIN + const resetUrl = `${origin}/auth/reset-password?token=${token}` + + const msg = { + from: "TODO@example.com", + to, + subject: "Your Password Reset Instructions", + html: ` +

Reset Your Password

+

NOTE: You must set up a production email integration in mailers/forgotPasswordMailer.ts

+ + + Click here to set a new password + + `, + } + + return { + async send() { + if (process.env.NODE_ENV === "production") { + // TODO - send the production email, like this: + // await postmark.sendEmail(msg) + throw new Error("No production email implementation in mailers/forgotPasswordMailer") + } else { + // Preview email in the browser + const previewEmail = (await import("preview-email")).default + await previewEmail(msg) + } + }, + } +} diff --git a/apps/next13/next.config.js b/apps/next13/next.config.js new file mode 100644 index 0000000000..4e73ad708c --- /dev/null +++ b/apps/next13/next.config.js @@ -0,0 +1,10 @@ +const {withBlitz} = require("@blitzjs/next") + +/** @type {import('next').NextConfig} */ +const nextConfig = { + experimental: { + typedRoutes: true, + }, +} + +module.exports = withBlitz(nextConfig) diff --git a/apps/next13/package.json b/apps/next13/package.json new file mode 100644 index 0000000000..cc0d2336fd --- /dev/null +++ b/apps/next13/package.json @@ -0,0 +1,42 @@ +{ + "name": "next-blitz-auth", + "version": "0.1.1-beta.10", + "private": true, + "prisma": { + "schema": "./db/schema.prisma" + }, + "scripts": { + "blitz:dev": "next dev", + "blitz:build": "next build", + "blitz:start": "next start", + "lint": "next lint" + }, + "dependencies": { + "@blitzjs/auth": "2.0.0-beta.34", + "@blitzjs/config": "2.0.0-beta.34", + "@blitzjs/next": "2.0.0-beta.34", + "@blitzjs/rpc": "2.0.0-beta.34", + "@hookform/error-message": "2.0.0", + "@hookform/resolvers": "2.9.10", + "@prisma/client": "^4.14.0", + "@tanstack/react-form": "0.0.10", + "@tanstack/react-query": "4.0.10", + "blitz": "2.0.0-beta.34", + "flatted": "3.2.7", + "next": "13.5.2", + "prisma": "^4.5.0", + "react": "18.2.0", + "react-dom": "18.2.0", + "react-hook-form": "7.39.1", + "superjson": "1.11.0", + "zod": "3.20.2" + }, + "devDependencies": { + "@types/node": "18.11.7", + "@types/react": "18.0.23", + "@types/react-dom": "18.0.7", + "eslint": "8.26.0", + "eslint-config-next": "13.0.0", + "typescript": "4.8.4" + } +} diff --git a/apps/next13/pages/api/rpc/[[...blitz]].ts b/apps/next13/pages/api/rpc/[[...blitz]].ts new file mode 100644 index 0000000000..a031e77375 --- /dev/null +++ b/apps/next13/pages/api/rpc/[[...blitz]].ts @@ -0,0 +1,4 @@ +import {rpcHandler} from "@blitzjs/rpc" +import {api} from "@/app/blitz-server" + +export default api(rpcHandler({onError: console.log})) diff --git a/apps/next13/public/blitz.svg b/apps/next13/public/blitz.svg new file mode 100644 index 0000000000..ba3c1cba6e --- /dev/null +++ b/apps/next13/public/blitz.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/apps/next13/public/favicon.ico b/apps/next13/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..718d6fea4835ec2d246af9800eddb7ffb276240c GIT binary patch literal 25931 zcmeHv30#a{`}aL_*G&7qml|y<+KVaDM2m#dVr!KsA!#An?kSQM(q<_dDNCpjEux83 zLb9Z^XxbDl(w>%i@8hT6>)&Gu{h#Oeyszu?xtw#Zb1mO{pgX9699l+Qppw7jXaYf~-84xW z)w4x8?=youko|}Vr~(D$UXIbiXABHh`p1?nn8Po~fxRJv}|0e(BPs|G`(TT%kKVJAdg5*Z|x0leQq0 zkdUBvb#>9F()jo|T~kx@OM8$9wzs~t2l;K=woNssA3l6|sx2r3+kdfVW@e^8e*E}v zA1y5{bRi+3Z`uD3{F7LgFJDdvm;nJilkzDku>BwXH(8ItVCXk*-lSJnR?-2UN%hJ){&rlvg`CDTj z)Bzo!3v7Ou#83zEDEFcKt(f1E0~=rqeEbTnMvWR#{+9pg%7G8y>u1OVRUSoox-ovF z2Ydma(;=YuBY(eI|04{hXzZD6_f(v~H;C~y5=DhAC{MMS>2fm~1H_t2$56pc$NH8( z5bH|<)71dV-_oCHIrzrT`2s-5w_+2CM0$95I6X8p^r!gHp+j_gd;9O<1~CEQQGS8) zS9Qh3#p&JM-G8rHekNmKVewU;pJRcTAog68KYo^dRo}(M>36U4Us zfgYWSiHZL3;lpWT=zNAW>Dh#mB!_@Lg%$ms8N-;aPqMn+C2HqZgz&9~Eu z4|Kp<`$q)Uw1R?y(~S>ePdonHxpV1#eSP1B;Ogo+-Pk}6#0GsZZ5!||ev2MGdh}_m z{DeR7?0-1^zVs&`AV6Vt;r3`I`OI_wgs*w=eO%_#7Kepl{B@xiyCANc(l zzIyd4y|c6PXWq9-|KM8(zIk8LPk(>a)zyFWjhT!$HJ$qX1vo@d25W<fvZQ2zUz5WRc(UnFMKHwe1| zWmlB1qdbiA(C0jmnV<}GfbKtmcu^2*P^O?MBLZKt|As~ge8&AAO~2K@zbXelK|4T<{|y4`raF{=72kC2Kn(L4YyenWgrPiv z@^mr$t{#X5VuIMeL!7Ab6_kG$&#&5p*Z{+?5U|TZ`B!7llpVmp@skYz&n^8QfPJzL z0G6K_OJM9x+Wu2gfN45phANGt{7=C>i34CV{Xqlx(fWpeAoj^N0Biu`w+MVcCUyU* zDZuzO0>4Z6fbu^T_arWW5n!E45vX8N=bxTVeFoep_G#VmNlQzAI_KTIc{6>c+04vr zx@W}zE5JNSU>!THJ{J=cqjz+4{L4A{Ob9$ZJ*S1?Ggg3klFp!+Y1@K+pK1DqI|_gq z5ZDXVpge8-cs!o|;K73#YXZ3AShj50wBvuq3NTOZ`M&qtjj#GOFfgExjg8Gn8>Vq5 z`85n+9|!iLCZF5$HJ$Iu($dm?8~-ofu}tEc+-pyke=3!im#6pk_Wo8IA|fJwD&~~F zc16osQ)EBo58U7XDuMexaPRjU@h8tXe%S{fA0NH3vGJFhuyyO!Uyl2^&EOpX{9As0 zWj+P>{@}jxH)8|r;2HdupP!vie{sJ28b&bo!8`D^x}TE$%zXNb^X1p@0PJ86`dZyj z%ce7*{^oo+6%&~I!8hQy-vQ7E)0t0ybH4l%KltWOo~8cO`T=157JqL(oq_rC%ea&4 z2NcTJe-HgFjNg-gZ$6!Y`SMHrlj}Etf7?r!zQTPPSv}{so2e>Fjs1{gzk~LGeesX%r(Lh6rbhSo_n)@@G-FTQy93;l#E)hgP@d_SGvyCp0~o(Y;Ee8{ zdVUDbHm5`2taPUOY^MAGOw*>=s7=Gst=D+p+2yON!0%Hk` zz5mAhyT4lS*T3LS^WSxUy86q&GnoHxzQ6vm8)VS}_zuqG?+3td68_x;etQAdu@sc6 zQJ&5|4(I?~3d-QOAODHpZ=hlSg(lBZ!JZWCtHHSj`0Wh93-Uk)_S%zsJ~aD>{`A0~ z9{AG(e|q3g5B%wYKRxiL2Y$8(4w6bzchKuloQW#e&S3n+P- z8!ds-%f;TJ1>)v)##>gd{PdS2Oc3VaR`fr=`O8QIO(6(N!A?pr5C#6fc~Ge@N%Vvu zaoAX2&(a6eWy_q&UwOhU)|P3J0Qc%OdhzW=F4D|pt0E4osw;%<%Dn58hAWD^XnZD= z>9~H(3bmLtxpF?a7su6J7M*x1By7YSUbxGi)Ot0P77`}P3{)&5Un{KD?`-e?r21!4vTTnN(4Y6Lin?UkSM z`MXCTC1@4A4~mvz%Rh2&EwY))LeoT=*`tMoqcEXI>TZU9WTP#l?uFv+@Dn~b(>xh2 z;>B?;Tz2SR&KVb>vGiBSB`@U7VIWFSo=LDSb9F{GF^DbmWAfpms8Sx9OX4CnBJca3 zlj9(x!dIjN?OG1X4l*imJNvRCk}F%!?SOfiOq5y^mZW)jFL@a|r-@d#f7 z2gmU8L3IZq0ynIws=}~m^#@&C%J6QFo~Mo4V`>v7MI-_!EBMMtb%_M&kvAaN)@ZVw z+`toz&WG#HkWDjnZE!6nk{e-oFdL^$YnbOCN}JC&{$#$O27@|Tn-skXr)2ml2~O!5 zX+gYoxhoc7qoU?C^3~&!U?kRFtnSEecWuH0B0OvLodgUAi}8p1 zrO6RSXHH}DMc$&|?D004DiOVMHV8kXCP@7NKB zgaZq^^O<7PoKEp72kby@W0Z!Y*Ay{&vfg#C&gG@YVR9g?FEocMUi1gSN$+V+ayF45{a zuDZDTN}mS|;BO%gEf}pjBfN2-gIrU#G5~cucA;dokXW89%>AyXJJI z9X4UlIWA|ZYHgbI z5?oFk@A=Ik7lrEQPDH!H+b`7_Y~aDb_qa=B2^Y&Ow41cU=4WDd40dp5(QS-WMN-=Y z9g;6_-JdNU;|6cPwf$ak*aJIcwL@1n$#l~zi{c{EW?T;DaW*E8DYq?Umtz{nJ&w-M zEMyTDrC&9K$d|kZe2#ws6)L=7K+{ zQw{XnV6UC$6-rW0emqm8wJoeZK)wJIcV?dST}Z;G0Arq{dVDu0&4kd%N!3F1*;*pW zR&qUiFzK=@44#QGw7k1`3t_d8&*kBV->O##t|tonFc2YWrL7_eqg+=+k;!F-`^b8> z#KWCE8%u4k@EprxqiV$VmmtiWxDLgnGu$Vs<8rppV5EajBXL4nyyZM$SWVm!wnCj-B!Wjqj5-5dNXukI2$$|Bu3Lrw}z65Lc=1G z^-#WuQOj$hwNGG?*CM_TO8Bg-1+qc>J7k5c51U8g?ZU5n?HYor;~JIjoWH-G>AoUP ztrWWLbRNqIjW#RT*WqZgPJXU7C)VaW5}MiijYbABmzoru6EmQ*N8cVK7a3|aOB#O& zBl8JY2WKfmj;h#Q!pN%9o@VNLv{OUL?rixHwOZuvX7{IJ{(EdPpuVFoQqIOa7giLVkBOKL@^smUA!tZ1CKRK}#SSM)iQHk)*R~?M!qkCruaS!#oIL1c z?J;U~&FfH#*98^G?i}pA{ z9Jg36t4=%6mhY(quYq*vSxptes9qy|7xSlH?G=S@>u>Ebe;|LVhs~@+06N<4CViBk zUiY$thvX;>Tby6z9Y1edAMQaiH zm^r3v#$Q#2T=X>bsY#D%s!bhs^M9PMAcHbCc0FMHV{u-dwlL;a1eJ63v5U*?Q_8JO zT#50!RD619#j_Uf))0ooADz~*9&lN!bBDRUgE>Vud-i5ck%vT=r^yD*^?Mp@Q^v+V zG#-?gKlr}Eeqifb{|So?HM&g91P8|av8hQoCmQXkd?7wIJwb z_^v8bbg`SAn{I*4bH$u(RZ6*xUhuA~hc=8czK8SHEKTzSxgbwi~9(OqJB&gwb^l4+m`k*Q;_?>Y-APi1{k zAHQ)P)G)f|AyjSgcCFps)Fh6Bca*Xznq36!pV6Az&m{O8$wGFD? zY&O*3*J0;_EqM#jh6^gMQKpXV?#1?>$ml1xvh8nSN>-?H=V;nJIwB07YX$e6vLxH( zqYwQ>qxwR(i4f)DLd)-$P>T-no_c!LsN@)8`e;W@)-Hj0>nJ-}Kla4-ZdPJzI&Mce zv)V_j;(3ERN3_@I$N<^|4Lf`B;8n+bX@bHbcZTopEmDI*Jfl)-pFDvo6svPRoo@(x z);_{lY<;);XzT`dBFpRmGrr}z5u1=pC^S-{ce6iXQlLGcItwJ^mZx{m$&DA_oEZ)B{_bYPq-HA zcH8WGoBG(aBU_j)vEy+_71T34@4dmSg!|M8Vf92Zj6WH7Q7t#OHQqWgFE3ARt+%!T z?oLovLVlnf?2c7pTc)~cc^($_8nyKwsN`RA-23ed3sdj(ys%pjjM+9JrctL;dy8a( z@en&CQmnV(()bu|Y%G1-4a(6x{aLytn$T-;(&{QIJB9vMox11U-1HpD@d(QkaJdEb zG{)+6Dos_L+O3NpWo^=gR?evp|CqEG?L&Ut#D*KLaRFOgOEK(Kq1@!EGcTfo+%A&I z=dLbB+d$u{sh?u)xP{PF8L%;YPPW53+@{>5W=Jt#wQpN;0_HYdw1{ksf_XhO4#2F= zyPx6Lx2<92L-;L5PD`zn6zwIH`Jk($?Qw({erA$^bC;q33hv!d!>%wRhj# zal^hk+WGNg;rJtb-EB(?czvOM=H7dl=vblBwAv>}%1@{}mnpUznfq1cE^sgsL0*4I zJ##!*B?=vI_OEVis5o+_IwMIRrpQyT_Sq~ZU%oY7c5JMIADzpD!Upz9h@iWg_>>~j zOLS;wp^i$-E?4<_cp?RiS%Rd?i;f*mOz=~(&3lo<=@(nR!_Rqiprh@weZlL!t#NCc zO!QTcInq|%#>OVgobj{~ixEUec`E25zJ~*DofsQdzIa@5^nOXj2T;8O`l--(QyU^$t?TGY^7#&FQ+2SS3B#qK*k3`ye?8jUYSajE5iBbJls75CCc(m3dk{t?- zopcER9{Z?TC)mk~gpi^kbbu>b-+a{m#8-y2^p$ka4n60w;Sc2}HMf<8JUvhCL0B&Btk)T`ctE$*qNW8L$`7!r^9T+>=<=2qaq-;ll2{`{Rg zc5a0ZUI$oG&j-qVOuKa=*v4aY#IsoM+1|c4Z)<}lEDvy;5huB@1RJPquU2U*U-;gu z=En2m+qjBzR#DEJDO`WU)hdd{Vj%^0V*KoyZ|5lzV87&g_j~NCjwv0uQVqXOb*QrQ zy|Qn`hxx(58c70$E;L(X0uZZ72M1!6oeg)(cdKO ze0gDaTz+ohR-#d)NbAH4x{I(21yjwvBQfmpLu$)|m{XolbgF!pmsqJ#D}(ylp6uC> z{bqtcI#hT#HW=wl7>p!38sKsJ`r8}lt-q%Keqy%u(xk=yiIJiUw6|5IvkS+#?JTBl z8H5(Q?l#wzazujH!8o>1xtn8#_w+397*_cy8!pQGP%K(Ga3pAjsaTbbXJlQF_+m+-UpUUent@xM zg%jqLUExj~o^vQ3Gl*>wh=_gOr2*|U64_iXb+-111aH}$TjeajM+I20xw(((>fej-@CIz4S1pi$(#}P7`4({6QS2CaQS4NPENDp>sAqD z$bH4KGzXGffkJ7R>V>)>tC)uax{UsN*dbeNC*v}#8Y#OWYwL4t$ePR?VTyIs!wea+ z5Urmc)X|^`MG~*dS6pGSbU+gPJoq*^a=_>$n4|P^w$sMBBy@f*Z^Jg6?n5?oId6f{ z$LW4M|4m502z0t7g<#Bx%X;9<=)smFolV&(V^(7Cv2-sxbxopQ!)*#ZRhTBpx1)Fc zNm1T%bONzv6@#|dz(w02AH8OXe>kQ#1FMCzO}2J_mST)+ExmBr9cva-@?;wnmWMOk z{3_~EX_xadgJGv&H@zK_8{(x84`}+c?oSBX*Ge3VdfTt&F}yCpFP?CpW+BE^cWY0^ zb&uBN!Ja3UzYHK-CTyA5=L zEMW{l3Usky#ly=7px648W31UNV@K)&Ub&zP1c7%)`{);I4b0Q<)B}3;NMG2JH=X$U zfIW4)4n9ZM`-yRj67I)YSLDK)qfUJ_ij}a#aZN~9EXrh8eZY2&=uY%2N0UFF7<~%M zsB8=erOWZ>Ct_#^tHZ|*q`H;A)5;ycw*IcmVxi8_0Xk}aJA^ath+E;xg!x+As(M#0=)3!NJR6H&9+zd#iP(m0PIW8$ z1Y^VX`>jm`W!=WpF*{ioM?C9`yOR>@0q=u7o>BP-eSHqCgMDj!2anwH?s%i2p+Q7D zzszIf5XJpE)IG4;d_(La-xenmF(tgAxK`Y4sQ}BSJEPs6N_U2vI{8=0C_F?@7<(G; zo$~G=8p+076G;`}>{MQ>t>7cm=zGtfbdDXm6||jUU|?X?CaE?(<6bKDYKeHlz}DA8 zXT={X=yp_R;HfJ9h%?eWvQ!dRgz&Su*JfNt!Wu>|XfU&68iRikRrHRW|ZxzRR^`eIGt zIeiDgVS>IeExKVRWW8-=A=yA`}`)ZkWBrZD`hpWIxBGkh&f#ijr449~m`j6{4jiJ*C!oVA8ZC?$1RM#K(_b zL9TW)kN*Y4%^-qPpMP7d4)o?Nk#>aoYHT(*g)qmRUb?**F@pnNiy6Fv9rEiUqD(^O zzyS?nBrX63BTRYduaG(0VVG2yJRe%o&rVrLjbxTaAFTd8s;<<@Qs>u(<193R8>}2_ zuwp{7;H2a*X7_jryzriZXMg?bTuegABb^87@SsKkr2)0Gyiax8KQWstw^v#ix45EVrcEhr>!NMhprl$InQMzjSFH54x5k9qHc`@9uKQzvL4ihcq{^B zPrVR=o_ic%Y>6&rMN)hTZsI7I<3&`#(nl+3y3ys9A~&^=4?PL&nd8)`OfG#n zwAMN$1&>K++c{^|7<4P=2y(B{jJsQ0a#U;HTo4ZmWZYvI{+s;Td{Yzem%0*k#)vjpB zia;J&>}ICate44SFYY3vEelqStQWFihx%^vQ@Do(sOy7yR2@WNv7Y9I^yL=nZr3mb zXKV5t@=?-Sk|b{XMhA7ZGB@2hqsx}4xwCW!in#C zI@}scZlr3-NFJ@NFaJlhyfcw{k^vvtGl`N9xSo**rDW4S}i zM9{fMPWo%4wYDG~BZ18BD+}h|GQKc-g^{++3MY>}W_uq7jGHx{mwE9fZiPCoxN$+7 zrODGGJrOkcPQUB(FD5aoS4g~7#6NR^ma7-!>mHuJfY5kTe6PpNNKC9GGRiu^L31uG z$7v`*JknQHsYB!Tm_W{a32TM099djW%5e+j0Ve_ct}IM>XLF1Ap+YvcrLV=|CKo6S zb+9Nl3_YdKP6%Cxy@6TxZ>;4&nTneadr z_ES90ydCev)LV!dN=#(*f}|ZORFdvkYBni^aLbUk>BajeWIOcmHP#8S)*2U~QKI%S zyrLmtPqb&TphJ;>yAxri#;{uyk`JJqODDw%(Z=2`1uc}br^V%>j!gS)D*q*f_-qf8&D;W1dJgQMlaH5er zN2U<%Smb7==vE}dDI8K7cKz!vs^73o9f>2sgiTzWcwY|BMYHH5%Vn7#kiw&eItCqa zIkR2~Q}>X=Ar8W|^Ms41Fm8o6IB2_j60eOeBB1Br!boW7JnoeX6Gs)?7rW0^5psc- zjS16yb>dFn>KPOF;imD}e!enuIniFzv}n$m2#gCCv4jM#ArwlzZ$7@9&XkFxZ4n!V zj3dyiwW4Ki2QG{@i>yuZXQizw_OkZI^-3otXC{!(lUpJF33gI60ak;Uqitp74|B6I zgg{b=Iz}WkhCGj1M=hu4#Aw173YxIVbISaoc z-nLZC*6Tgivd5V`K%GxhBsp@SUU60-rfc$=wb>zdJzXS&-5(NRRodFk;Kxk!S(O(a0e7oY=E( zAyS;Ow?6Q&XA+cnkCb{28_1N8H#?J!*$MmIwLq^*T_9-z^&UE@A(z9oGYtFy6EZef LrJugUA?W`A8`#=m literal 0 HcmV?d00001 diff --git a/apps/next13/tsconfig.json b/apps/next13/tsconfig.json new file mode 100644 index 0000000000..edca01f40b --- /dev/null +++ b/apps/next13/tsconfig.json @@ -0,0 +1,29 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +} diff --git a/apps/next13/types.ts b/apps/next13/types.ts new file mode 100644 index 0000000000..452fe3411f --- /dev/null +++ b/apps/next13/types.ts @@ -0,0 +1,15 @@ +import { SimpleRolesIsAuthorized } from "@blitzjs/auth" +import { User } from "@/db" + +export type Role = "ADMIN" | "USER" + +declare module "@blitzjs/auth" { + export interface Session { + isAuthorized: SimpleRolesIsAuthorized + PublicData: { + userId: User["id"] + role: Role + views?: number + } + } +} From 72289b249f0a57832ed3534cdfd4f9ac1fbe88e1 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Mon, 16 Oct 2023 22:33:34 +0530 Subject: [PATCH 52/95] remove next13 --- apps/next13/.env | 7 - apps/next13/.eslintrc.json | 3 - apps/next13/.gitignore | 38 --- apps/next13/CHANGELOG.md | 205 ------------ apps/next13/README.md | 26 -- .../app/(auth)/components/LoginForm.tsx | 126 -------- .../app/(auth)/components/SignupForm.tsx | 126 -------- apps/next13/app/(auth)/layout.tsx | 8 - apps/next13/app/(auth)/login/page.tsx | 9 - .../app/(auth)/mutations/changePassword.ts | 22 -- .../(auth)/mutations/forgotPassword.test.ts | 64 ---- .../app/(auth)/mutations/forgotPassword.ts | 40 --- apps/next13/app/(auth)/mutations/login.ts | 29 -- apps/next13/app/(auth)/mutations/logout.ts | 5 - .../(auth)/mutations/resetPassword.test.ts | 84 ----- .../app/(auth)/mutations/resetPassword.ts | 50 --- apps/next13/app/(auth)/mutations/signup.ts | 18 -- apps/next13/app/(auth)/signup/page.tsx | 8 - apps/next13/app/(auth)/validations.ts | 42 --- apps/next13/app/blitz-client.ts | 13 - apps/next13/app/blitz-server.ts | 32 -- apps/next13/app/core/components/Logout.tsx | 24 -- apps/next13/app/core/validators/zod.ts | 18 -- apps/next13/app/error.tsx | 24 -- apps/next13/app/layout.tsx | 23 -- apps/next13/app/loading.tsx | 4 - apps/next13/app/page.tsx | 166 ---------- apps/next13/app/styles/Home.module.css | 303 ------------------ apps/next13/app/styles/globals.css | 25 -- apps/next13/app/users/hooks/useCurrentUser.ts | 7 - .../app/users/queries/getCurrentUser.ts | 17 - apps/next13/db/dev.db | Bin 32768 -> 0 bytes apps/next13/db/index.ts | 8 - .../migrations/20230515094145_/migration.sql | 26 -- .../migrations/20230515094805_/migration.sql | 57 ---- apps/next13/db/migrations/migration_lock.toml | 3 - apps/next13/db/schema.prisma | 65 ---- apps/next13/integrations/.keep | 0 apps/next13/mailers/.keep | 0 apps/next13/mailers/forgotPasswordMailer.ts | 45 --- apps/next13/next.config.js | 10 - apps/next13/package.json | 42 --- apps/next13/pages/api/rpc/[[...blitz]].ts | 4 - apps/next13/public/blitz.svg | 5 - apps/next13/public/favicon.ico | Bin 25931 -> 0 bytes apps/next13/tsconfig.json | 29 -- apps/next13/types.ts | 15 - 47 files changed, 1875 deletions(-) delete mode 100644 apps/next13/.env delete mode 100644 apps/next13/.eslintrc.json delete mode 100644 apps/next13/.gitignore delete mode 100644 apps/next13/CHANGELOG.md delete mode 100644 apps/next13/README.md delete mode 100644 apps/next13/app/(auth)/components/LoginForm.tsx delete mode 100644 apps/next13/app/(auth)/components/SignupForm.tsx delete mode 100644 apps/next13/app/(auth)/layout.tsx delete mode 100644 apps/next13/app/(auth)/login/page.tsx delete mode 100644 apps/next13/app/(auth)/mutations/changePassword.ts delete mode 100644 apps/next13/app/(auth)/mutations/forgotPassword.test.ts delete mode 100644 apps/next13/app/(auth)/mutations/forgotPassword.ts delete mode 100644 apps/next13/app/(auth)/mutations/login.ts delete mode 100644 apps/next13/app/(auth)/mutations/logout.ts delete mode 100644 apps/next13/app/(auth)/mutations/resetPassword.test.ts delete mode 100644 apps/next13/app/(auth)/mutations/resetPassword.ts delete mode 100644 apps/next13/app/(auth)/mutations/signup.ts delete mode 100644 apps/next13/app/(auth)/signup/page.tsx delete mode 100644 apps/next13/app/(auth)/validations.ts delete mode 100644 apps/next13/app/blitz-client.ts delete mode 100644 apps/next13/app/blitz-server.ts delete mode 100644 apps/next13/app/core/components/Logout.tsx delete mode 100644 apps/next13/app/core/validators/zod.ts delete mode 100644 apps/next13/app/error.tsx delete mode 100644 apps/next13/app/layout.tsx delete mode 100644 apps/next13/app/loading.tsx delete mode 100644 apps/next13/app/page.tsx delete mode 100644 apps/next13/app/styles/Home.module.css delete mode 100644 apps/next13/app/styles/globals.css delete mode 100644 apps/next13/app/users/hooks/useCurrentUser.ts delete mode 100644 apps/next13/app/users/queries/getCurrentUser.ts delete mode 100644 apps/next13/db/dev.db delete mode 100644 apps/next13/db/index.ts delete mode 100644 apps/next13/db/migrations/20230515094145_/migration.sql delete mode 100644 apps/next13/db/migrations/20230515094805_/migration.sql delete mode 100644 apps/next13/db/migrations/migration_lock.toml delete mode 100644 apps/next13/db/schema.prisma delete mode 100644 apps/next13/integrations/.keep delete mode 100644 apps/next13/mailers/.keep delete mode 100644 apps/next13/mailers/forgotPasswordMailer.ts delete mode 100644 apps/next13/next.config.js delete mode 100644 apps/next13/package.json delete mode 100644 apps/next13/pages/api/rpc/[[...blitz]].ts delete mode 100644 apps/next13/public/blitz.svg delete mode 100644 apps/next13/public/favicon.ico delete mode 100644 apps/next13/tsconfig.json delete mode 100644 apps/next13/types.ts diff --git a/apps/next13/.env b/apps/next13/.env deleted file mode 100644 index c498ab59bf..0000000000 --- a/apps/next13/.env +++ /dev/null @@ -1,7 +0,0 @@ -# Environment variables declared in this file are automatically made available to Prisma. -# See the documentation for more detail: https://pris.ly/d/prisma-schema#accessing-environment-variables-from-the-schema - -# Prisma supports the native connection string format for PostgreSQL, MySQL, SQLite, SQL Server, MongoDB and CockroachDB. -# See the documentation for all the connection string options: https://pris.ly/d/connection-strings - -DATABASE_URL="file:./dev.db" \ No newline at end of file diff --git a/apps/next13/.eslintrc.json b/apps/next13/.eslintrc.json deleted file mode 100644 index bffb357a71..0000000000 --- a/apps/next13/.eslintrc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "next/core-web-vitals" -} diff --git a/apps/next13/.gitignore b/apps/next13/.gitignore deleted file mode 100644 index 4f360c89d2..0000000000 --- a/apps/next13/.gitignore +++ /dev/null @@ -1,38 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* -.pnpm-debug.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts - -.vscode diff --git a/apps/next13/CHANGELOG.md b/apps/next13/CHANGELOG.md deleted file mode 100644 index 8f5a2ec5f8..0000000000 --- a/apps/next13/CHANGELOG.md +++ /dev/null @@ -1,205 +0,0 @@ -# next-blitz-auth - -## 0.1.1-beta.10 - -### Patch Changes - -- Updated dependencies [30fd61316] -- Updated dependencies [3ddb57072] -- Updated dependencies [fe8c937d2] - - blitz@2.0.0-beta.34 - - @blitzjs/auth@2.0.0-beta.34 - - @blitzjs/next@2.0.0-beta.34 - - @blitzjs/rpc@2.0.0-beta.34 - - @blitzjs/config@2.0.0-beta.34 - -## 0.1.1-beta.9 - -### Patch Changes - -- Updated dependencies [19898a488] -- Updated dependencies [6811eab1a] -- Updated dependencies [022392c12] - - @blitzjs/rpc@2.0.0-beta.33 - - blitz@2.0.0-beta.33 - - @blitzjs/next@2.0.0-beta.33 - - @blitzjs/auth@2.0.0-beta.33 - - @blitzjs/config@2.0.0-beta.33 - -## 0.1.1-beta.8 - -### Patch Changes - -- Updated dependencies [82649f341] -- Updated dependencies [8b01175b4] - - blitz@2.0.0-beta.32 - - @blitzjs/next@2.0.0-beta.32 - - @blitzjs/auth@2.0.0-beta.32 - - @blitzjs/rpc@2.0.0-beta.32 - - @blitzjs/config@2.0.0-beta.32 - -## 0.1.1-beta.7 - -### Patch Changes - -- Updated dependencies [90f1741da] -- Updated dependencies [df3265b85] - - @blitzjs/auth@2.0.0-beta.31 - - blitz@2.0.0-beta.31 - - @blitzjs/rpc@2.0.0-beta.31 - - @blitzjs/next@2.0.0-beta.31 - - @blitzjs/config@2.0.0-beta.31 - -## 0.1.1-beta.6 - -### Patch Changes - -- Updated dependencies [c5572bec6] -- Updated dependencies [727734955] - - @blitzjs/auth@2.0.0-beta.30 - - blitz@2.0.0-beta.30 - - @blitzjs/rpc@2.0.0-beta.30 - - @blitzjs/next@2.0.0-beta.30 - - @blitzjs/config@2.0.0-beta.30 - -## 0.1.1-beta.5 - -### Patch Changes - -- Updated dependencies [b6b9a1c5a] -- Updated dependencies [61888d1a3] - - @blitzjs/auth@2.0.0-beta.29 - - blitz@2.0.0-beta.29 - - @blitzjs/rpc@2.0.0-beta.29 - - @blitzjs/next@2.0.0-beta.29 - - @blitzjs/config@2.0.0-beta.29 - -## 0.1.1-beta.4 - -### Patch Changes - -- Updated dependencies [5166e5e03] -- Updated dependencies [2533caf48] -- Updated dependencies [c7ac86b85] -- Updated dependencies [1bb3a6556] - - @blitzjs/auth@2.0.0-beta.28 - - @blitzjs/next@2.0.0-beta.28 - - @blitzjs/rpc@2.0.0-beta.28 - - blitz@2.0.0-beta.28 - - @blitzjs/config@2.0.0-beta.28 - -## 0.1.1-beta.3 - -### Patch Changes - -- Updated dependencies [eda14fa8a] -- Updated dependencies [3d004dc41] -- Updated dependencies [29c2b029a] - - @blitzjs/next@2.0.0-beta.27 - - @blitzjs/rpc@2.0.0-beta.27 - - @blitzjs/auth@2.0.0-beta.27 - - blitz@2.0.0-beta.27 - - @blitzjs/config@2.0.0-beta.27 - -## 0.1.1-beta.2 - -### Patch Changes - -- Updated dependencies [e82a79be5] -- Updated dependencies [38d945a3f] - - @blitzjs/auth@2.0.0-beta.26 - - @blitzjs/next@2.0.0-beta.26 - - @blitzjs/rpc@2.0.0-beta.26 - - blitz@2.0.0-beta.26 - - @blitzjs/config@2.0.0-beta.26 - -## 0.1.1-beta.1 - -### Patch Changes - -- Updated dependencies [f84d77a42] - - @blitzjs/rpc@2.0.0-beta.25 - - @blitzjs/next@2.0.0-beta.25 - - @blitzjs/auth@2.0.0-beta.25 - - @blitzjs/config@2.0.0-beta.25 - - blitz@2.0.0-beta.25 - -## 0.1.1-beta.0 - -### Patch Changes - -- 37aeaa7fa: feature: Nextjs 13 App Directory Utility Methods - - ### 🔧 New Blitz Auth Hook `useAuthenticatedBlitzContext` - - This hook is implemented as the replacement of the [`BlitzPage` seurity auth utilities](https://blitzjs.com/docs/authorization#secure-your-pages) provided for the pages directory to work with React Server Components in the Nextjs 13 app directory - It can be used in any asynchronous server component be it in `page.ts` or in the layouts in `layout.ts` - It uses the new [`redirect` function](https://beta.nextjs.org/docs/api-reference/redirect) to provide the required authorization in server side - - #### API - - ```ts - useAuthenticatedBlitzContext({ - redirectTo, - redirectAuthenticatedTo, - role, - }: { - redirectTo?: string | RouteUrlObject - redirectAuthenticatedTo?: string | RouteUrlObject | ((ctx: Ctx) => string | RouteUrlObject) - role?: string | string[] - }): Promise - ``` - - #### Usage - - **Example Usage in React Server Component in `app` directory in Next 13** - - ```ts - import {getAppSession, useAuthenticatedBlitzContext} from "src/blitz-server" - ... - await useAuthenticatedBlitzContext({ - redirectTo: "/auth/login", - role: ["admin"], - redirectAuthenticatedTo: "/dashboard", - }) - ``` - - ### 🔧 New Blitz RPC Hook `invokeResolver` - - #### API - - ```ts - invokeResolver any, TInput = FirstParam>( - queryFn: T, - params: TInput, - ): Promise> - ``` - - #### Example Usage - - ```ts - ... - import {invokeResolver, useAuthenticatedBlitzContext} from "../src/blitz-server" - import getCurrentUser from "../src/users/queries/getCurrentUser" - - export default async function Home() { - await useAuthenticatedBlitzContext({ - redirectTo: "/auth/login", - }) - const user = await invokeResolver(getCurrentUser, null) - ... - ``` - -- Updated dependencies [cadefb88e] -- Updated dependencies [6f18cbdc9] -- Updated dependencies [acc07ce94] -- Updated dependencies [ea7561b8e] -- Updated dependencies [9529dbd6f] -- Updated dependencies [ea7561b8e] -- Updated dependencies [6e88a847f] -- Updated dependencies [37aeaa7fa] - - blitz@2.0.0-beta.24 - - @blitzjs/auth@2.0.0-beta.24 - - @blitzjs/next@2.0.0-beta.24 - - @blitzjs/rpc@2.0.0-beta.24 - - @blitzjs/config@2.0.0-beta.24 diff --git a/apps/next13/README.md b/apps/next13/README.md deleted file mode 100644 index 8b59024262..0000000000 --- a/apps/next13/README.md +++ /dev/null @@ -1,26 +0,0 @@ -# Next.js 13 + Blitz Auth - -This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) + [`Blitz Auth`](https://blitzjs.com/docs/auth). - -## Getting Started - -First, run the development server: - -```bash -npm run dev -# or -yarn dev -``` - -Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. - -You can go to the `/signup` page and create a new account. - -## Learn More - -To learn more about Next.js and Blitz.js, take a look at the following resources: - -- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. -- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. -- [Blitz.js Documentation](https://blitzjs.com/docs/) — learn about Blitz.js. -- [Blitz Auth Documentation](https://blitzjs.com/docs/auth) — learn about Blitz Auth plugin. diff --git a/apps/next13/app/(auth)/components/LoginForm.tsx b/apps/next13/app/(auth)/components/LoginForm.tsx deleted file mode 100644 index 707219ff89..0000000000 --- a/apps/next13/app/(auth)/components/LoginForm.tsx +++ /dev/null @@ -1,126 +0,0 @@ -import Link from "next/link" -import login from "../mutations/login" -import {Login} from "../validations" -import {useMutation} from "@blitzjs/rpc" -import {startTransition} from "react" -import {useRouter} from "next/navigation" -import {FieldApi, createFormFactory} from "@tanstack/react-form" -import * as z from "zod" -import {AuthenticationError} from "blitz" -import { zodValidate } from "@/app/core/validators/zod" - -type TLogin = z.infer - -const formFactory = createFormFactory({ - defaultValues: { - email: "", - password: "", - }, -}) - -function FieldInfo({field}: {field: FieldApi}) { - return ( - <> - {field.state.meta.touchedError ? {field.state.meta.touchedError} : null}{" "} - {field.state.meta.isValidating ? "Validating..." : null} - - ) -} - -export const LoginForm = () => { - const [loginMutation] = useMutation(login) - const router = useRouter() - const form = formFactory.useForm({ - onSubmit: async (values, formApi) => { - try { - await loginMutation(values) - startTransition(() => { - // Refresh the current route and fetch new data from the server without - // losing client-side browser or React state. - router.refresh() - }) - } catch (error: any) { - if ( - error instanceof AuthenticationError || - error.toString().includes("AuthenticationError") - ) { - return (formApi.state.fieldMeta.password.touchedError = - "Invalid email or password. Please try again.") - } - if (error.code === "P2002" && error.meta?.target?.includes("email")) { - // Error "P2002" comes from Prisma (https://www.prisma.io/docs/reference/api-reference/error-reference#p2002) - return (formApi.state.fieldMeta.email.touchedError = - "This email is already being used. Please try again.") - } else { - return (formApi.state.fieldMeta.password.touchedError = error.toString()) - } - } - }, - }) - return ( -
-

Login

- - -
-
- {/* A type-safe and pre-bound field component*/} - { - return zodValidate(Login, "email")(value) - }} - children={(field) => { - // Avoid hasty abstractions. Render props are great! - return ( - <> - - - - - ) - }} - /> - { - return zodValidate(Login, "password")(value) - }} - children={(field) => { - // Avoid hasty abstractions. Render props are great! - return ( - <> - - - - - ) - }} - /> -
- [state.canSubmit, state.isSubmitting]} - children={([canSubmit, isSubmitting]) => ( - - )} - /> - -
- -
- Or Sign Up -
-
- ) -} - -export default LoginForm diff --git a/apps/next13/app/(auth)/components/SignupForm.tsx b/apps/next13/app/(auth)/components/SignupForm.tsx deleted file mode 100644 index 44107d94a9..0000000000 --- a/apps/next13/app/(auth)/components/SignupForm.tsx +++ /dev/null @@ -1,126 +0,0 @@ -import Link from "next/link" -import {Signup} from "../validations" -import {useMutation} from "@blitzjs/rpc" -import {startTransition} from "react" -import {useRouter} from "next/navigation" -import {FieldApi, createFormFactory} from "@tanstack/react-form" -import * as z from "zod" -import {AuthenticationError} from "blitz" -import { zodValidate } from "@/app/core/validators/zod" -import signup from "../mutations/signup" - -type TSignup = z.infer - -const formFactory = createFormFactory({ - defaultValues: { - email: "", - password: "", - }, -}) - -function FieldInfo({field}: {field: FieldApi}) { - return ( - <> - {field.state.meta.touchedError ? {field.state.meta.touchedError} : null}{" "} - {field.state.meta.isValidating ? "Validating..." : null} - - ) -} - -export const SignupForm = () => { - const [signupMutation] = useMutation(signup) - const router = useRouter() - const form = formFactory.useForm({ - onSubmit: async (values, formApi) => { - try { - await signupMutation(values) - startTransition(() => { - // Refresh the current route and fetch new data from the server without - // losing client-side browser or React state. - router.refresh() - }) - } catch (error: any) { - if ( - error instanceof AuthenticationError || - error.toString().includes("AuthenticationError") - ) { - return (formApi.state.fieldMeta.password.touchedError = - "Invalid email or password. Please try again.") - } - if (error.code === "P2002" && error.meta?.target?.includes("email")) { - // Error "P2002" comes from Prisma (https://www.prisma.io/docs/reference/api-reference/error-reference#p2002) - return (formApi.state.fieldMeta.email.touchedError = - "This email is already being used. Please try again.") - } else { - return (formApi.state.fieldMeta.password.touchedError = error.toString()) - } - } - }, - }) - return ( -
-

Signup

- - -
-
- {/* A type-safe and pre-bound field component*/} - { - return zodValidate(Signup, "email")(value) - }} - children={(field) => { - // Avoid hasty abstractions. Render props are great! - return ( - <> - - - - - ) - }} - /> - { - return zodValidate(Signup, "password")(value) - }} - children={(field) => { - // Avoid hasty abstractions. Render props are great! - return ( - <> - - - - - ) - }} - /> -
- [state.canSubmit, state.isSubmitting]} - children={([canSubmit, isSubmitting]) => ( - - )} - /> - -
- -
- Or Sign Up -
-
- ) -} - -export default SignupForm diff --git a/apps/next13/app/(auth)/layout.tsx b/apps/next13/app/(auth)/layout.tsx deleted file mode 100644 index 4b7d5e5bb5..0000000000 --- a/apps/next13/app/(auth)/layout.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import {useAuthenticatedBlitzContext} from "app/blitz-server" - -export default async function AuthLayout({children}: {children: React.ReactNode}) { - await useAuthenticatedBlitzContext({ - redirectAuthenticatedTo: "/", - }) - return <>{children} -} diff --git a/apps/next13/app/(auth)/login/page.tsx b/apps/next13/app/(auth)/login/page.tsx deleted file mode 100644 index 8b1d729fb4..0000000000 --- a/apps/next13/app/(auth)/login/page.tsx +++ /dev/null @@ -1,9 +0,0 @@ -"use client" - -import {LoginForm} from "../components/LoginForm" - -const LoginPage = () => { - return -} - -export default LoginPage diff --git a/apps/next13/app/(auth)/mutations/changePassword.ts b/apps/next13/app/(auth)/mutations/changePassword.ts deleted file mode 100644 index a18921372f..0000000000 --- a/apps/next13/app/(auth)/mutations/changePassword.ts +++ /dev/null @@ -1,22 +0,0 @@ -import {NotFoundError} from "blitz" -import db from "@/db" -import {authenticateUser} from "./login" -import {ChangePassword} from "../validations" -import {resolver} from "@blitzjs/rpc" -import {SecurePassword} from "@blitzjs/auth/secure-password" - -export default resolver.pipe( - resolver.zod(ChangePassword), - resolver.authorize(), - async ({currentPassword, newPassword}, ctx) => { - const user = await db.user.findFirst({where: {id: ctx.session.userId}}) - if (!user) throw new NotFoundError() - await authenticateUser(user.email, currentPassword) - const hashedPassword = await SecurePassword.hash(newPassword.trim()) - await db.user.update({ - where: {id: user.id}, - data: {hashedPassword: hashedPassword}, - }) - return true - }, -) diff --git a/apps/next13/app/(auth)/mutations/forgotPassword.test.ts b/apps/next13/app/(auth)/mutations/forgotPassword.test.ts deleted file mode 100644 index c5678da0e2..0000000000 --- a/apps/next13/app/(auth)/mutations/forgotPassword.test.ts +++ /dev/null @@ -1,64 +0,0 @@ -import {vi, describe, it, beforeEach} from "vitest" -import db from "@/db" -import {hash256} from "@blitzjs/auth" -import forgotPassword from "./forgotPassword" -import previewEmail from "preview-email" -import {Ctx} from "@blitzjs/next" - -beforeEach(async () => { - await db.$reset() -}) - -const generatedToken = "plain-token" -vi.mock("@blitzjs/auth", async () => { - const auth = await vi.importActual>("@blitzjs/auth")! - return { - ...auth, - generateToken: () => generatedToken, - } -}) - -vi.mock("preview-email", () => ({default: vi.fn()})) - -describe("forgotPassword mutation", () => { - it("does not throw error if user doesn't exist", async () => { - await expect(forgotPassword({email: "no-user@email.com"}, {} as Ctx)).resolves.not.toThrow() - }) - - it("works correctly", async () => { - // Create test user - const user = await db.user.create({ - data: { - email: "user@example.com", - tokens: { - // Create old token to ensure it's deleted - create: { - type: "RESET_PASSWORD", - hashedToken: "token", - expiresAt: new Date(), - sentTo: "user@example.com", - }, - }, - }, - include: {tokens: true}, - }) - - // Invoke the mutation - await forgotPassword({email: user.email}, {} as Ctx) - - const tokens = await db.token.findMany({where: {userId: user.id}}) - const token = tokens[0] - if (!user.tokens[0]) throw new Error("Missing user token") - if (!token) throw new Error("Missing token") - - // delete's existing tokens - expect(tokens.length).toBe(1) - - expect(token.id).not.toBe(user.tokens[0].id) - expect(token.type).toBe("RESET_PASSWORD") - expect(token.sentTo).toBe(user.email) - expect(token.hashedToken).toBe(hash256(generatedToken)) - expect(token.expiresAt > new Date()).toBe(true) - expect(previewEmail).toBeCalled() - }) -}) diff --git a/apps/next13/app/(auth)/mutations/forgotPassword.ts b/apps/next13/app/(auth)/mutations/forgotPassword.ts deleted file mode 100644 index 56249a85c4..0000000000 --- a/apps/next13/app/(auth)/mutations/forgotPassword.ts +++ /dev/null @@ -1,40 +0,0 @@ -import {generateToken, hash256} from "@blitzjs/auth" -import {resolver} from "@blitzjs/rpc" -import db from "@/db" -import {ForgotPassword} from "../validations" - -const RESET_PASSWORD_TOKEN_EXPIRATION_IN_HOURS = 4 -//@ts-ignore -export default resolver.pipe(resolver.zod(ForgotPassword), async ({email}) => { - // 1. Get the user - const user = await db.user.findFirst({where: {email: email.toLowerCase()}}) - - // 2. Generate the token and expiration date. - const token = generateToken() - const hashedToken = hash256(token) - const expiresAt = new Date() - expiresAt.setHours(expiresAt.getHours() + RESET_PASSWORD_TOKEN_EXPIRATION_IN_HOURS) - - // 3. If user with this email was found - if (user) { - // 4. Delete any existing password reset tokens - await db.token.deleteMany({where: {type: "RESET_PASSWORD", userId: user.id}}) - // 5. Save this new token in the database. - await db.token.create({ - data: { - user: {connect: {id: user.id}}, - type: "RESET_PASSWORD", - expiresAt, - hashedToken, - sentTo: user.email, - }, - }) - // 6. Send the email - } else { - // 7. If no user found wait the same time so attackers can't tell the difference - await new Promise((resolve) => setTimeout(resolve, 750)) - } - - // 8. Return the same result whether a password reset email was sent or not - return -}) diff --git a/apps/next13/app/(auth)/mutations/login.ts b/apps/next13/app/(auth)/mutations/login.ts deleted file mode 100644 index 4811af875a..0000000000 --- a/apps/next13/app/(auth)/mutations/login.ts +++ /dev/null @@ -1,29 +0,0 @@ -import {resolver} from "@blitzjs/rpc" -import {AuthenticationError} from "blitz" -import db from "@/db" -import {Login} from "../validations" -import { SecurePassword } from "@blitzjs/auth/secure-password" - -export const authenticateUser = async (rawEmail: string, rawPassword: string) => { - const {email, password} = Login.parse({email: rawEmail, password: rawPassword}) - const user = await db.user.findFirst({where: {email}}) - if (!user) throw new AuthenticationError() - - const result = await SecurePassword.verify(user.hashedPassword, password) - - if (result === SecurePassword.VALID_NEEDS_REHASH) { - // Upgrade hashed password with a more secure hash - const improvedHash = await SecurePassword.hash(password) - await db.user.update({where: {id: user.id}, data: {hashedPassword: improvedHash}}) - } - - const {hashedPassword, ...rest} = user - return rest -} - -export default resolver.pipe(resolver.zod(Login), async ({email, password}, ctx) => { - const user = await authenticateUser(email, password) - await ctx.session.$create({userId: user.id, role: user.role}) - console.log("user", user) - return user -}) diff --git a/apps/next13/app/(auth)/mutations/logout.ts b/apps/next13/app/(auth)/mutations/logout.ts deleted file mode 100644 index ca7e6de856..0000000000 --- a/apps/next13/app/(auth)/mutations/logout.ts +++ /dev/null @@ -1,5 +0,0 @@ -import {Ctx} from "blitz" - -export default async function logout(_: any, ctx: Ctx) { - return await ctx.session.$revoke() -} diff --git a/apps/next13/app/(auth)/mutations/resetPassword.test.ts b/apps/next13/app/(auth)/mutations/resetPassword.test.ts deleted file mode 100644 index 7ffa6c35ce..0000000000 --- a/apps/next13/app/(auth)/mutations/resetPassword.test.ts +++ /dev/null @@ -1,84 +0,0 @@ -import {vi, describe, it, beforeEach, expect} from "vitest" -import resetPassword from "./resetPassword" -import db from "@/db" -import {hash256} from "@blitzjs/auth" -import {SecurePassword} from "@blitzjs/auth/secure-password" - -beforeEach(async () => { - await db.$reset() -}) - -const mockCtx: any = { - session: { - $create: vi.fn(), - }, -} - -describe("resetPassword mutation", () => { - it("works correctly", async () => { - expect(true).toBe(true) - - // Create test user - const goodToken = "randomPasswordResetToken" - const expiredToken = "expiredRandomPasswordResetToken" - const future = new Date() - future.setHours(future.getHours() + 4) - const past = new Date() - past.setHours(past.getHours() - 4) - - const user = await db.user.create({ - data: { - email: "user@example.com", - tokens: { - // Create old token to ensure it's deleted - create: [ - { - type: "RESET_PASSWORD", - hashedToken: hash256(expiredToken), - expiresAt: past, - sentTo: "user@example.com", - }, - { - type: "RESET_PASSWORD", - hashedToken: hash256(goodToken), - expiresAt: future, - sentTo: "user@example.com", - }, - ], - }, - }, - include: {tokens: true}, - }) - - const newPassword = "newPassword" - - // Non-existent token - await expect( - resetPassword({token: "no-token", password: "", passwordConfirmation: ""}, mockCtx), - ).rejects.toThrowError() - - // Expired token - await expect( - resetPassword( - {token: expiredToken, password: newPassword, passwordConfirmation: newPassword}, - mockCtx, - ), - ).rejects.toThrowError() - - // Good token - await resetPassword( - {token: goodToken, password: newPassword, passwordConfirmation: newPassword}, - mockCtx, - ) - - // Delete's the token - const numberOfTokens = await db.token.count({where: {userId: user.id}}) - expect(numberOfTokens).toBe(0) - - // Updates user's password - const updatedUser = await db.user.findFirst({where: {id: user.id}}) - expect(await SecurePassword.verify(updatedUser!.hashedPassword, newPassword)).toBe( - SecurePassword.VALID, - ) - }) -}) diff --git a/apps/next13/app/(auth)/mutations/resetPassword.ts b/apps/next13/app/(auth)/mutations/resetPassword.ts deleted file mode 100644 index adcde0216a..0000000000 --- a/apps/next13/app/(auth)/mutations/resetPassword.ts +++ /dev/null @@ -1,50 +0,0 @@ -import {hash256} from "@blitzjs/auth" -import db from "@/db" -import {ResetPassword} from "../validations" -import login from "./login" - -export class ResetPasswordError extends Error { - name = "ResetPasswordError" - message = "Reset password link is invalid or it has expired." -} - -export default async function resetPassword(input: any, ctx: any) { - ResetPassword.parse(input) - // 1. Try to find this token in the database - const hashedToken = hash256(input.token) - const possibleToken = await db.token.findFirst({ - where: {hashedToken, type: "RESET_PASSWORD"}, - include: {user: true}, - }) - - // 2. If token not found, error - if (!possibleToken) { - throw new ResetPasswordError() - } - const savedToken = possibleToken - - // 3. Delete token so it can't be used again - await db.token.delete({where: {id: savedToken.id}}) - - // 4. If token has expired, error - if (savedToken.expiresAt < new Date()) { - throw new ResetPasswordError() - } - - // 5. Since token is valid, now we can update the user's password - // const hashedPassword = await SecurePassword.hash(input.password.trim()) - const user = await db.user.update({ - where: {id: savedToken.userId}, - data: { - hashedPassword: input.password, - }, - }) - - // 6. Revoke all existing login sessions for this user - await db.session.deleteMany({where: {userId: user.id}}) - - // 7. Now log the user in with the new credentials - await login({email: user.email, password: input.password}, ctx) - - return true -} diff --git a/apps/next13/app/(auth)/mutations/signup.ts b/apps/next13/app/(auth)/mutations/signup.ts deleted file mode 100644 index fe042ba76b..0000000000 --- a/apps/next13/app/(auth)/mutations/signup.ts +++ /dev/null @@ -1,18 +0,0 @@ -import db from "@/db" -import {SecurePassword} from "@blitzjs/auth/secure-password" - -export default async function signup(input: {password: string; email: string}, ctx: any) { - const blitzContext = ctx - const hashedPassword = await SecurePassword.hash((input.password as string) || "test-password") - const email = (input.email as string) || "test" + Math.random() + "@test.com" - const user = await db.user.create({ - data: {email, hashedPassword}, - }) - - await blitzContext.session.$create({ - userId: user.id, - role: "user", - }) - - return {userId: blitzContext.session.userId, ...user, email: input.email} -} diff --git a/apps/next13/app/(auth)/signup/page.tsx b/apps/next13/app/(auth)/signup/page.tsx deleted file mode 100644 index c53a5a84f2..0000000000 --- a/apps/next13/app/(auth)/signup/page.tsx +++ /dev/null @@ -1,8 +0,0 @@ -"use client" -import SignupForm from "../components/SignupForm" - -const SignUp = () => { - return -} - -export default SignUp diff --git a/apps/next13/app/(auth)/validations.ts b/apps/next13/app/(auth)/validations.ts deleted file mode 100644 index f13218b685..0000000000 --- a/apps/next13/app/(auth)/validations.ts +++ /dev/null @@ -1,42 +0,0 @@ -import {z} from "zod" - -export const email = z - .string() - .email() - .transform((str) => str.toLowerCase().trim()) - -export const password = z - .string() - .min(10) - .max(100) - .transform((str) => str.trim()) - -export const Signup = z.object({ - email, - password, -}) - -export const Login = z.object({ - email, - password: z.string(), -}) - -export const ForgotPassword = z.object({ - email, -}) - -export const ResetPassword = z - .object({ - password: password, - passwordConfirmation: password, - token: z.string(), - }) - .refine((data) => data.password === data.passwordConfirmation, { - message: "Passwords don't match", - path: ["passwordConfirmation"], // set the path of the error - }) - -export const ChangePassword = z.object({ - currentPassword: z.string(), - newPassword: password, -}) diff --git a/apps/next13/app/blitz-client.ts b/apps/next13/app/blitz-client.ts deleted file mode 100644 index cb9b84c117..0000000000 --- a/apps/next13/app/blitz-client.ts +++ /dev/null @@ -1,13 +0,0 @@ -"use client" -import {AuthClientPlugin} from "@blitzjs/auth" -import {setupBlitzClient} from "@blitzjs/next" -import {BlitzRpcPlugin} from "@blitzjs/rpc" - -export const {withBlitz, useSession, BlitzProvider} = setupBlitzClient({ - plugins: [ - AuthClientPlugin({ - cookiePrefix: "web-cookie-prefix", - }), - BlitzRpcPlugin({}), - ], -}) diff --git a/apps/next13/app/blitz-server.ts b/apps/next13/app/blitz-server.ts deleted file mode 100644 index 91668c5420..0000000000 --- a/apps/next13/app/blitz-server.ts +++ /dev/null @@ -1,32 +0,0 @@ -import type {BlitzCliConfig} from "blitz" -import {setupBlitzServer} from "@blitzjs/next" -import {AuthServerPlugin, PrismaStorage} from "@blitzjs/auth" -import db from "../db" -import {simpleRolesIsAuthorized} from "@blitzjs/auth" -import {BlitzLogger} from "blitz" -import {RpcServerPlugin} from "@blitzjs/rpc" - -const {api, getBlitzContext, useAuthenticatedBlitzContext, invoke} = setupBlitzServer({ - plugins: [ - AuthServerPlugin({ - cookiePrefix: "web-cookie-prefix", - storage: PrismaStorage(db), - isAuthorized: simpleRolesIsAuthorized, - }), - RpcServerPlugin({ - logging: { - disablelevel: "debug", - }, - onInvokeError(error) { - console.log("onInvokeError", error) - }, - }), - ], - logger: BlitzLogger({}), -}) - -export {api, getBlitzContext, useAuthenticatedBlitzContext, invoke} - -export const cliConfig: BlitzCliConfig = { - customTemplates: "src/templates", -} diff --git a/apps/next13/app/core/components/Logout.tsx b/apps/next13/app/core/components/Logout.tsx deleted file mode 100644 index 3b2ec30242..0000000000 --- a/apps/next13/app/core/components/Logout.tsx +++ /dev/null @@ -1,24 +0,0 @@ -"use client" -import styles from "@/app/styles/Home.module.css" -import logout from "@/app/(auth)/mutations/logout" -import {useRouter} from "next/navigation" -import {useMutation} from "@blitzjs/rpc" - -export default function LogoutButton() { - const router = useRouter() - const [logoutMutation] = useMutation(logout) - return ( - <> - - - ) -} diff --git a/apps/next13/app/core/validators/zod.ts b/apps/next13/app/core/validators/zod.ts deleted file mode 100644 index 623df9b212..0000000000 --- a/apps/next13/app/core/validators/zod.ts +++ /dev/null @@ -1,18 +0,0 @@ -import * as z from "zod" - -export function zodValidate, U = keyof T>(schema: T, field: U) { - return (value: string): string => { - const result = schema - .pick({ - [field as string]: true, - }) - .safeParse({ - [field as string]: value, - }) - if (result.success) { - return "" - } else { - return JSON.parse(result.error.message)[0].message - } - } -} diff --git a/apps/next13/app/error.tsx b/apps/next13/app/error.tsx deleted file mode 100644 index 2c6571bf17..0000000000 --- a/apps/next13/app/error.tsx +++ /dev/null @@ -1,24 +0,0 @@ -"use client" // Error components must be Client components - -import React, {useEffect} from "react" - -export default function Error({error, reset}: {error: Error; reset: () => void}) { - useEffect(() => { - // Log the error to an error reporting service - console.error(error) - }, [error]) - - return ( -
-

Something went wrong!

- -
- ) -} diff --git a/apps/next13/app/layout.tsx b/apps/next13/app/layout.tsx deleted file mode 100644 index 1b88cdda55..0000000000 --- a/apps/next13/app/layout.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import "@/app/styles/globals.css" -import {BlitzProvider} from "./blitz-client" -import {Inter} from "next/font/google" - -const inter = Inter({subsets: ["latin"]}) - -export const metadata = { - title: "New Blitz App", - description: "Generated by blitz new ", -} - -export default function RootLayout({children}: {children: React.ReactNode}) { - return ( - - - - <>{children} - - - - ) -} - diff --git a/apps/next13/app/loading.tsx b/apps/next13/app/loading.tsx deleted file mode 100644 index 2fafa2a60a..0000000000 --- a/apps/next13/app/loading.tsx +++ /dev/null @@ -1,4 +0,0 @@ -export default function Loading() { - // Or a custom loading skeleton component - return "Loading..." -} diff --git a/apps/next13/app/page.tsx b/apps/next13/app/page.tsx deleted file mode 100644 index 2df6534509..0000000000 --- a/apps/next13/app/page.tsx +++ /dev/null @@ -1,166 +0,0 @@ -import Link from "next/link" -import {invoke} from "./blitz-server" -import LogoutButton from "./core/components/Logout" -import styles from "./styles/Home.module.css" -import getCurrentUser from "./users/queries/getCurrentUser" - -export default async function Home() { - const currentUser = await invoke(getCurrentUser, null) - return ( - <> -
-
-
-

- Congrats! Your app is ready, including user sign-up and log-in. -

-
- -
-
-
-
- - - - - -
- -

Your database & authentication is ready. Try it by signing up.

- - {/* Auth */} - -
- {currentUser ? ( - <> - -
- User id: {currentUser.id} -
- User role: {currentUser.role} -
- - ) : ( - <> - - Sign Up - - - Login - - - )} -
-
- -
- {/* Instructions */} -
-

- Add a new model by running the following in your terminal: -

- -
-
- 1 -
-                      blitz generate all project
-                    
-
- -
- 2 -
-                      Ctrl + c
-                    
-
- -
- 3 -
-                      blitz dev
-                    
-
- -
- 4 -
-                      
-                        Go to{" "}
-                        {/* @ts-ignore: TODO remove after scaffolding */}
-                        
-                          /projects
-                        
-                      
-                    
-
-
-
- {/* Links */} - -
-
-
- - -
- - ) -} diff --git a/apps/next13/app/styles/Home.module.css b/apps/next13/app/styles/Home.module.css deleted file mode 100644 index 3453d1ee11..0000000000 --- a/apps/next13/app/styles/Home.module.css +++ /dev/null @@ -1,303 +0,0 @@ -.container { - display: flex; - flex-direction: column; - height: 100vh; -} - -.main { - flex: 1; - padding: 0rem 1rem; - display: flex; - flex-direction: column; -} - -.wrapper { - display: flex; - flex-direction: column; - gap: 2rem; -} - -.frost { - background: rgba(255, 255, 255, 0.2); - border-radius: 16px; - box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1); - backdrop-filter: blur(5px); - -webkit-backdrop-filter: blur(5px); - border: 1px solid rgba(255, 255, 255, 0.31); -} - -.header { - display: flex; - flex-direction: column; - padding: 4rem 0rem 2rem 0rem; - text-align: center; - gap: 2rem; -} - -.header h1 { - max-width: 620px; - align-self: center; -} - -.body { - composes: frost; - border-radius: var(--border-radius); - display: flex; - padding: 1rem; - width: 100%; - flex-direction: row; - align-self: center; - max-width: var(--screen-width); -} - -.instructions { - display: inline-flex; - flex-direction: column; - padding: 1rem; - width: 100%; -} - -.globe { - position: fixed; - width: 350vmin; - height: 75vmin; - left: 20%; - top: 50%; - transform: translate(-50%, calc(-50% + 40px)); - z-index: -1; - border-radius: 100%; - background-image: radial-gradient( - 95.63% 95.63% at 95.92% 0%, - rgba(255, 255, 255, 0.62) 0%, - #8155ff38 60.42%, - #002fff5c 169% - ); - filter: blur(8vmin); -} - -.footer { - display: flex; - padding: 2rem 0; - justify-content: center; - align-items: center; -} - -.footer span { - margin-right: 0.2rem; -} - -.code { - display: flex; - align-items: center; - gap: 0.5rem; -} - -.code span { - background: rgba(124, 58, 237, 50%); - border-radius: 50rem; - font-size: 14px; - font-weight: 500; - padding: 17px; - width: 20px; - height: 20px; - display: flex; - align-items: center; - justify-content: center; - color: rgb(57, 33, 97); -} - -.code pre { - background: rgba(124, 58, 237, 12%); - border-radius: 4px; - padding: 0.7em 1.4em; - text-align: center; -} - -.code code { - font-size: 0.86em; - font-weight: bold; - color: rgb(124, 58, 237); - font-family: Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, - Bitstream Vera Sans Mono, Courier New, monospace; -} - -.toastContainer { - border: 1px solid #edff; - padding: 0 1rem; - background: #eeff; - color: #62af; - text-align: center; -} - -.toastContainer strong { - color: rgb(124, 58, 237); -} - -.textLink { - color: rgb(124, 58, 237); - background: linear-gradient(to right, rgba(231, 216, 246, 1), rgba(231, 216, 246, 1)), - linear-gradient(to right, rgba(99, 1, 235, 1), rgba(124, 58, 237, 1), rgba(231, 216, 246, 1)); - background-size: 100% 1px, 0 1px; - background-position: 100% 100%, 0 100%; - background-repeat: no-repeat; - transition: background-size 400ms; -} - -.textLink:hover, -.textLink:focus, -.textLink:active { - background-size: 0 1px, 100% 1px; -} - -.arrowIcon { - box-sizing: border-box; - display: block; - width: 8px; - height: 8px; - border-top: 2px solid; - transform: scale(var(--ggs, 1)); - border-right: 2px solid; - position: absolute; - right: 6px; - top: 6px; - color: #b1a5c4; -} - -.arrowIcon::after { - content: ""; - display: block; - box-sizing: border-box; - position: absolute; - width: 8px; - height: 2px; - background: currentColor; - transform: rotate(-45deg); - top: 2px; - right: -1px; -} - -.buttonContainer { - display: flex; - flex-direction: row; - gap: 1rem; - justify-content: center; - align-items: center; - flex: 1; -} - -.button { - background: linear-gradient(to top, rgb(124, 58, 237), rgb(117, 81, 236)); - border: 1px solid rgb(231, 216, 246); - color: white; - text-shadow: rgba(0, 0, 0, 0.25) 0px 3px 8px; - padding: 0 24px; - height: 48px; - width: 200px; - max-width: 300px; - position: relative; - display: inline-flex; - justify-content: center; - align-items: center; - flex-shrink: 0; - user-select: none; - white-space: nowrap; - border-radius: 0.75rem; - border-bottom-left-radius: 0px; - font-size: 15px; - transition: all 0.3s ease 0s; - cursor: pointer; -} - -.button:hover { - color: white; - text-shadow: rgb(0 0 0 / 56%) 0px 3px 12px; - box-shadow: rgb(80 63 205 / 50%) 0px 1px 40px; -} - -.loginButton { - composes: button; - background: rgb(248 250 252); - border: 1px solid rgb(231, 216, 246); - color: rgb(30 41 59); - text-shadow: none; -} - -.loginButton:hover { - color: rgb(30 41 59); - text-shadow: none; -} - -.card:hover .arrowIcon { - color: #7450ec; -} - -.linkGrid { - display: flex; - flex-direction: column; - flex-wrap: wrap; - gap: 1rem; -} - -.card { - composes: frost; - padding: 1rem 0rem; - text-align: center; - color: inherit; - text-decoration: none; - border-radius: 10px; - border-bottom-left-radius: 0px; - transition: color 0.15s ease, border-color 0.15s ease; - max-width: 200px; - min-width: 200px; - display: flex; - flex-direction: row; - justify-content: center; -} - -.card:hover, -.card:focus, -.card:active { - color: #7450ec; - border-color: #7450ec; -} - -.card h2 { - margin: 0 0 1rem 0; - font-size: 1.5rem; -} - -.card p { - margin: 0; - font-size: 1.25rem; - line-height: 1.5; -} - -.logo { - flex: 1; - padding: 1rem 2rem; -} - -.logo svg { - height: 100%; - width: 200px; - fill: #7450ec; -} - -/* MOBILE */ -@media (max-width: 800px) { - .linkGrid { - width: 100%; - } - - .card { - max-width: 100%; - } - - .body { - flex-wrap: wrap; - } - - .buttonContainer { - flex-wrap: wrap; - } -} diff --git a/apps/next13/app/styles/globals.css b/apps/next13/app/styles/globals.css deleted file mode 100644 index 2764411401..0000000000 --- a/apps/next13/app/styles/globals.css +++ /dev/null @@ -1,25 +0,0 @@ -:root { - --border-radius: 0.75rem; - --screen-width: 90vmin; -} - -html, -body { - padding: 0; - margin: 0; - font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, - Fira Sans, Droid Sans, Helvetica Neue, sans-serif; -} - -a { - color: inherit; - text-decoration: none; -} - -i { - font-size: 0.8rem; -} - -* { - box-sizing: border-box; -} diff --git a/apps/next13/app/users/hooks/useCurrentUser.ts b/apps/next13/app/users/hooks/useCurrentUser.ts deleted file mode 100644 index 4a0b15a931..0000000000 --- a/apps/next13/app/users/hooks/useCurrentUser.ts +++ /dev/null @@ -1,7 +0,0 @@ -import {useQuery} from "@blitzjs/rpc" -import getCurrentUser from "../queries/getCurrentUser" - -export const useCurrentUser = () => { - const [user] = useQuery(getCurrentUser, null) - return user -} diff --git a/apps/next13/app/users/queries/getCurrentUser.ts b/apps/next13/app/users/queries/getCurrentUser.ts deleted file mode 100644 index 8ff9ced4e5..0000000000 --- a/apps/next13/app/users/queries/getCurrentUser.ts +++ /dev/null @@ -1,17 +0,0 @@ -import {Ctx} from "blitz" -import db from "../../../db" -import { Role } from "@/types" - -export default async function getCurrentUser(input: null, ctx: Ctx) { - if (!ctx.session.userId) return null - const user = await db.user.findFirst({ - where: {id: ctx.session.userId}, - select: {id: true, name: true, email: true, role: true}, - }) - - return user -} - -export const config = { - httpMethod: "GET", -} diff --git a/apps/next13/db/dev.db b/apps/next13/db/dev.db deleted file mode 100644 index 0f593f8aac206379c4418562cde54fb8d899af7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 zcmeI)-*4JR8~|`TX+lF6(LF?&6lt^klAtD)ZOji>TU!DqBLzdiPD-T7I_z`eVFSe` zBklS?D^-2if3v6k3Ht}OX@9|_J@j#V+}Suk2;Ed^Yo%!46F=;;?|XNjyCWiin|l@8 z$Bfk*xX5Qx)NP8UsfP?hQPd-Hze(+po$JFvq ziSL&;Kl=67gZOV`7ZM1700@8p2!H?xfWZGz0LNmh{2D#JWp_KrmPg@#|%4rI?L3Q^L%!LodjZ&+T!ABa)o{t)}ncMpko)= zPEbRz7kg{?>GLL`gFF&9EX^igezFi-U0b7H#eCFuaMYgYX)y|_=C>>IMWdLFI71R^ zn=I*vD(}b*MyaWcqE#wPy-}{_8!hIM++y;YS}Q9gNL5zU%}F6V>e~bC<$abZ5)ZXp zm7^n3PZ?EyOkzdx&X0M=*o>N`_By!BhUZ0xQP;N%%|>bVNPpONY@>*LG*zHKuuqVW zXYz*xr+m?^N%%rdX{wDp>FT+GJ~>gh2tUh|Y7M!(qlA6lV51mGrXiQ)hO89iCc}p6 z%tm0A3`V#pS7b69nsUTOvb1^t!W8n&LcS=+ll2>mt9S0ut#DwxCk}a=qkH(t5O)oH zWp`m}pspO;=pq+yl9I{s`h0A4WrcphhcSaT1@{|MrO%rBFUB~iaEf~}+5TZ<>&WxI z=?#c{F#7T2%R`#1DxQ9&hb`5~czG_;UHfQ&e6qg0*_^rQUd*1rUY@tX1iq5Od3SmG zUYUc&F*Z8h&}FB~y=}T$cGnIjtd7Vuzeram{CRKm30QRE+X6bhBkyvgOQ%LlV9;|M zQehhzoy)aesnYY&z@KT?`AR%rc4U5*@>)e@jNxE_yT0z*E+&QD{@IG__Z^!A@_gL) zbfY)yhCMxdInb0QSrBq@HXs*I7UmXL4|tjiU&^A%iiUnK+}CFZPUmOy=E#we*pg5tCE;vJz&X_BCHnQJKYsU>zzHcX&8Im@CoNd_8%V~v|OXJ|Mj70?u=y3)lN)-*VK-4 z(suR-Eq;4PbL5oT;cHmk8zFVuQMtp0!S&1geCcU(FaNITi{SnLT;g{s@dtT;1Ogxc z0w4eaAOHd&00JNY0w4eaAaLCU;&bzBOVKqzV)XpVQgHE#$>;x7Dp9@e-Glan00@8p z2!H?xfB*=900@8p2!Ox`5*TxIoLV41?XTuPUZP+BQ2G4lo+>JuUdUAYN_Eh#?PBiW z$;fSGJzOas+b7Dsp6`i54!5N&&ZTlz%FLQpT9DejD4~?dnLLtmVoor)9JvgDB}x+J zQ-)=tc823EQ9x!|=r$YK)4ihu%`>ugw(oX3aOC%^xHLnYpPAS0*-1V8`;KmY_l00ck)1V8`;KmY_l;C&0+o?l;@`mF+7 o|L=X1Lwpbb0T2KI5C8!X009sH0T2KI5O{wA!S(;%<+}%e0W*kZ=l}o! diff --git a/apps/next13/db/index.ts b/apps/next13/db/index.ts deleted file mode 100644 index 4d7a5a6350..0000000000 --- a/apps/next13/db/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { enhancePrisma } from "blitz" -import { PrismaClient } from "@prisma/client" - -const EnhancedPrisma = enhancePrisma(PrismaClient) - -export * from "@prisma/client" -const db = new EnhancedPrisma() -export default db diff --git a/apps/next13/db/migrations/20230515094145_/migration.sql b/apps/next13/db/migrations/20230515094145_/migration.sql deleted file mode 100644 index bfe497a036..0000000000 --- a/apps/next13/db/migrations/20230515094145_/migration.sql +++ /dev/null @@ -1,26 +0,0 @@ --- CreateTable -CREATE TABLE "User" ( - "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, - "name" TEXT, - "email" TEXT NOT NULL, - "hashedPassword" TEXT -); - --- CreateTable -CREATE TABLE "Session" ( - "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, - "expiresAt" DATETIME, - "handle" TEXT NOT NULL, - "hashedSessionToken" TEXT, - "antiCSRFToken" TEXT, - "publicData" TEXT, - "privateData" TEXT, - "userId" INTEGER, - CONSTRAINT "Session_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE SET NULL ON UPDATE CASCADE -); - --- CreateIndex -CREATE UNIQUE INDEX "User_email_key" ON "User"("email"); - --- CreateIndex -CREATE UNIQUE INDEX "Session_handle_key" ON "Session"("handle"); diff --git a/apps/next13/db/migrations/20230515094805_/migration.sql b/apps/next13/db/migrations/20230515094805_/migration.sql deleted file mode 100644 index c676c0b119..0000000000 --- a/apps/next13/db/migrations/20230515094805_/migration.sql +++ /dev/null @@ -1,57 +0,0 @@ -/* - Warnings: - - - Added the required column `updatedAt` to the `Session` table without a default value. This is not possible if the table is not empty. - - Added the required column `updatedAt` to the `User` table without a default value. This is not possible if the table is not empty. - -*/ --- CreateTable -CREATE TABLE "Token" ( - "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, - "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" DATETIME NOT NULL, - "hashedToken" TEXT NOT NULL, - "type" TEXT NOT NULL, - "expiresAt" DATETIME NOT NULL, - "sentTo" TEXT NOT NULL, - "userId" INTEGER NOT NULL, - CONSTRAINT "Token_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE RESTRICT ON UPDATE CASCADE -); - --- RedefineTables -PRAGMA foreign_keys=OFF; -CREATE TABLE "new_Session" ( - "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, - "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" DATETIME NOT NULL, - "expiresAt" DATETIME, - "handle" TEXT NOT NULL, - "hashedSessionToken" TEXT, - "antiCSRFToken" TEXT, - "publicData" TEXT, - "privateData" TEXT, - "userId" INTEGER, - CONSTRAINT "Session_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE SET NULL ON UPDATE CASCADE -); -INSERT INTO "new_Session" ("antiCSRFToken", "expiresAt", "handle", "hashedSessionToken", "id", "privateData", "publicData", "userId") SELECT "antiCSRFToken", "expiresAt", "handle", "hashedSessionToken", "id", "privateData", "publicData", "userId" FROM "Session"; -DROP TABLE "Session"; -ALTER TABLE "new_Session" RENAME TO "Session"; -CREATE UNIQUE INDEX "Session_handle_key" ON "Session"("handle"); -CREATE TABLE "new_User" ( - "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, - "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" DATETIME NOT NULL, - "name" TEXT, - "email" TEXT NOT NULL, - "hashedPassword" TEXT, - "role" TEXT NOT NULL DEFAULT 'USER' -); -INSERT INTO "new_User" ("email", "hashedPassword", "id", "name") SELECT "email", "hashedPassword", "id", "name" FROM "User"; -DROP TABLE "User"; -ALTER TABLE "new_User" RENAME TO "User"; -CREATE UNIQUE INDEX "User_email_key" ON "User"("email"); -PRAGMA foreign_key_check; -PRAGMA foreign_keys=ON; - --- CreateIndex -CREATE UNIQUE INDEX "Token_hashedToken_type_key" ON "Token"("hashedToken", "type"); diff --git a/apps/next13/db/migrations/migration_lock.toml b/apps/next13/db/migrations/migration_lock.toml deleted file mode 100644 index e5e5c4705a..0000000000 --- a/apps/next13/db/migrations/migration_lock.toml +++ /dev/null @@ -1,3 +0,0 @@ -# Please do not edit this file manually -# It should be added in your version-control system (i.e. Git) -provider = "sqlite" \ No newline at end of file diff --git a/apps/next13/db/schema.prisma b/apps/next13/db/schema.prisma deleted file mode 100644 index 83cd1b80f6..0000000000 --- a/apps/next13/db/schema.prisma +++ /dev/null @@ -1,65 +0,0 @@ -// This is your Prisma schema file, -// learn more about it in the docs: https://pris.ly/d/prisma-schema - -datasource db { - provider = "sqlite" - url = "file:./db.sqlite" -} - -generator client { - provider = "prisma-client-js" -} - -// -------------------------------------- - -model User { - id Int @id @default(autoincrement()) - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - name String? - email String @unique - hashedPassword String? - role String @default("USER") - - tokens Token[] - sessions Session[] -} - -model Session { - id Int @id @default(autoincrement()) - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - expiresAt DateTime? - handle String @unique - hashedSessionToken String? - antiCSRFToken String? - publicData String? - privateData String? - - user User? @relation(fields: [userId], references: [id]) - userId Int? -} - -model Token { - id Int @id @default(autoincrement()) - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt - hashedToken String - type String - // See note below about TokenType enum - // type TokenType - expiresAt DateTime - sentTo String - - user User @relation(fields: [userId], references: [id]) - userId Int - - @@unique([hashedToken, type]) -} - -// NOTE: It's highly recommended to use an enum for the token type -// but enums only work in Postgres. -// See: https://blitzjs.com/docs/database-overview#switch-to-postgre-sql -// enum TokenType { -// RESET_PASSWORD -// } diff --git a/apps/next13/integrations/.keep b/apps/next13/integrations/.keep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/apps/next13/mailers/.keep b/apps/next13/mailers/.keep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/apps/next13/mailers/forgotPasswordMailer.ts b/apps/next13/mailers/forgotPasswordMailer.ts deleted file mode 100644 index baace45b9a..0000000000 --- a/apps/next13/mailers/forgotPasswordMailer.ts +++ /dev/null @@ -1,45 +0,0 @@ -/* TODO - You need to add a mailer integration in `integrations/` and import here. - * - * The integration file can be very simple. Instantiate the email client - * and then export it. That way you can import here and anywhere else - * and use it straight away. - */ - -type ResetPasswordMailer = { - to: string - token: string -} - -export function forgotPasswordMailer({ to, token }: ResetPasswordMailer) { - // In production, set APP_ORIGIN to your production server origin - const origin = process.env.APP_ORIGIN || process.env.BLITZ_DEV_SERVER_ORIGIN - const resetUrl = `${origin}/auth/reset-password?token=${token}` - - const msg = { - from: "TODO@example.com", - to, - subject: "Your Password Reset Instructions", - html: ` -

Reset Your Password

-

NOTE: You must set up a production email integration in mailers/forgotPasswordMailer.ts

- - - Click here to set a new password - - `, - } - - return { - async send() { - if (process.env.NODE_ENV === "production") { - // TODO - send the production email, like this: - // await postmark.sendEmail(msg) - throw new Error("No production email implementation in mailers/forgotPasswordMailer") - } else { - // Preview email in the browser - const previewEmail = (await import("preview-email")).default - await previewEmail(msg) - } - }, - } -} diff --git a/apps/next13/next.config.js b/apps/next13/next.config.js deleted file mode 100644 index 4e73ad708c..0000000000 --- a/apps/next13/next.config.js +++ /dev/null @@ -1,10 +0,0 @@ -const {withBlitz} = require("@blitzjs/next") - -/** @type {import('next').NextConfig} */ -const nextConfig = { - experimental: { - typedRoutes: true, - }, -} - -module.exports = withBlitz(nextConfig) diff --git a/apps/next13/package.json b/apps/next13/package.json deleted file mode 100644 index cc0d2336fd..0000000000 --- a/apps/next13/package.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "next-blitz-auth", - "version": "0.1.1-beta.10", - "private": true, - "prisma": { - "schema": "./db/schema.prisma" - }, - "scripts": { - "blitz:dev": "next dev", - "blitz:build": "next build", - "blitz:start": "next start", - "lint": "next lint" - }, - "dependencies": { - "@blitzjs/auth": "2.0.0-beta.34", - "@blitzjs/config": "2.0.0-beta.34", - "@blitzjs/next": "2.0.0-beta.34", - "@blitzjs/rpc": "2.0.0-beta.34", - "@hookform/error-message": "2.0.0", - "@hookform/resolvers": "2.9.10", - "@prisma/client": "^4.14.0", - "@tanstack/react-form": "0.0.10", - "@tanstack/react-query": "4.0.10", - "blitz": "2.0.0-beta.34", - "flatted": "3.2.7", - "next": "13.5.2", - "prisma": "^4.5.0", - "react": "18.2.0", - "react-dom": "18.2.0", - "react-hook-form": "7.39.1", - "superjson": "1.11.0", - "zod": "3.20.2" - }, - "devDependencies": { - "@types/node": "18.11.7", - "@types/react": "18.0.23", - "@types/react-dom": "18.0.7", - "eslint": "8.26.0", - "eslint-config-next": "13.0.0", - "typescript": "4.8.4" - } -} diff --git a/apps/next13/pages/api/rpc/[[...blitz]].ts b/apps/next13/pages/api/rpc/[[...blitz]].ts deleted file mode 100644 index a031e77375..0000000000 --- a/apps/next13/pages/api/rpc/[[...blitz]].ts +++ /dev/null @@ -1,4 +0,0 @@ -import {rpcHandler} from "@blitzjs/rpc" -import {api} from "@/app/blitz-server" - -export default api(rpcHandler({onError: console.log})) diff --git a/apps/next13/public/blitz.svg b/apps/next13/public/blitz.svg deleted file mode 100644 index ba3c1cba6e..0000000000 --- a/apps/next13/public/blitz.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/apps/next13/public/favicon.ico b/apps/next13/public/favicon.ico deleted file mode 100644 index 718d6fea4835ec2d246af9800eddb7ffb276240c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25931 zcmeHv30#a{`}aL_*G&7qml|y<+KVaDM2m#dVr!KsA!#An?kSQM(q<_dDNCpjEux83 zLb9Z^XxbDl(w>%i@8hT6>)&Gu{h#Oeyszu?xtw#Zb1mO{pgX9699l+Qppw7jXaYf~-84xW z)w4x8?=youko|}Vr~(D$UXIbiXABHh`p1?nn8Po~fxRJv}|0e(BPs|G`(TT%kKVJAdg5*Z|x0leQq0 zkdUBvb#>9F()jo|T~kx@OM8$9wzs~t2l;K=woNssA3l6|sx2r3+kdfVW@e^8e*E}v zA1y5{bRi+3Z`uD3{F7LgFJDdvm;nJilkzDku>BwXH(8ItVCXk*-lSJnR?-2UN%hJ){&rlvg`CDTj z)Bzo!3v7Ou#83zEDEFcKt(f1E0~=rqeEbTnMvWR#{+9pg%7G8y>u1OVRUSoox-ovF z2Ydma(;=YuBY(eI|04{hXzZD6_f(v~H;C~y5=DhAC{MMS>2fm~1H_t2$56pc$NH8( z5bH|<)71dV-_oCHIrzrT`2s-5w_+2CM0$95I6X8p^r!gHp+j_gd;9O<1~CEQQGS8) zS9Qh3#p&JM-G8rHekNmKVewU;pJRcTAog68KYo^dRo}(M>36U4Us zfgYWSiHZL3;lpWT=zNAW>Dh#mB!_@Lg%$ms8N-;aPqMn+C2HqZgz&9~Eu z4|Kp<`$q)Uw1R?y(~S>ePdonHxpV1#eSP1B;Ogo+-Pk}6#0GsZZ5!||ev2MGdh}_m z{DeR7?0-1^zVs&`AV6Vt;r3`I`OI_wgs*w=eO%_#7Kepl{B@xiyCANc(l zzIyd4y|c6PXWq9-|KM8(zIk8LPk(>a)zyFWjhT!$HJ$qX1vo@d25W<fvZQ2zUz5WRc(UnFMKHwe1| zWmlB1qdbiA(C0jmnV<}GfbKtmcu^2*P^O?MBLZKt|As~ge8&AAO~2K@zbXelK|4T<{|y4`raF{=72kC2Kn(L4YyenWgrPiv z@^mr$t{#X5VuIMeL!7Ab6_kG$&#&5p*Z{+?5U|TZ`B!7llpVmp@skYz&n^8QfPJzL z0G6K_OJM9x+Wu2gfN45phANGt{7=C>i34CV{Xqlx(fWpeAoj^N0Biu`w+MVcCUyU* zDZuzO0>4Z6fbu^T_arWW5n!E45vX8N=bxTVeFoep_G#VmNlQzAI_KTIc{6>c+04vr zx@W}zE5JNSU>!THJ{J=cqjz+4{L4A{Ob9$ZJ*S1?Ggg3klFp!+Y1@K+pK1DqI|_gq z5ZDXVpge8-cs!o|;K73#YXZ3AShj50wBvuq3NTOZ`M&qtjj#GOFfgExjg8Gn8>Vq5 z`85n+9|!iLCZF5$HJ$Iu($dm?8~-ofu}tEc+-pyke=3!im#6pk_Wo8IA|fJwD&~~F zc16osQ)EBo58U7XDuMexaPRjU@h8tXe%S{fA0NH3vGJFhuyyO!Uyl2^&EOpX{9As0 zWj+P>{@}jxH)8|r;2HdupP!vie{sJ28b&bo!8`D^x}TE$%zXNb^X1p@0PJ86`dZyj z%ce7*{^oo+6%&~I!8hQy-vQ7E)0t0ybH4l%KltWOo~8cO`T=157JqL(oq_rC%ea&4 z2NcTJe-HgFjNg-gZ$6!Y`SMHrlj}Etf7?r!zQTPPSv}{so2e>Fjs1{gzk~LGeesX%r(Lh6rbhSo_n)@@G-FTQy93;l#E)hgP@d_SGvyCp0~o(Y;Ee8{ zdVUDbHm5`2taPUOY^MAGOw*>=s7=Gst=D+p+2yON!0%Hk` zz5mAhyT4lS*T3LS^WSxUy86q&GnoHxzQ6vm8)VS}_zuqG?+3td68_x;etQAdu@sc6 zQJ&5|4(I?~3d-QOAODHpZ=hlSg(lBZ!JZWCtHHSj`0Wh93-Uk)_S%zsJ~aD>{`A0~ z9{AG(e|q3g5B%wYKRxiL2Y$8(4w6bzchKuloQW#e&S3n+P- z8!ds-%f;TJ1>)v)##>gd{PdS2Oc3VaR`fr=`O8QIO(6(N!A?pr5C#6fc~Ge@N%Vvu zaoAX2&(a6eWy_q&UwOhU)|P3J0Qc%OdhzW=F4D|pt0E4osw;%<%Dn58hAWD^XnZD= z>9~H(3bmLtxpF?a7su6J7M*x1By7YSUbxGi)Ot0P77`}P3{)&5Un{KD?`-e?r21!4vTTnN(4Y6Lin?UkSM z`MXCTC1@4A4~mvz%Rh2&EwY))LeoT=*`tMoqcEXI>TZU9WTP#l?uFv+@Dn~b(>xh2 z;>B?;Tz2SR&KVb>vGiBSB`@U7VIWFSo=LDSb9F{GF^DbmWAfpms8Sx9OX4CnBJca3 zlj9(x!dIjN?OG1X4l*imJNvRCk}F%!?SOfiOq5y^mZW)jFL@a|r-@d#f7 z2gmU8L3IZq0ynIws=}~m^#@&C%J6QFo~Mo4V`>v7MI-_!EBMMtb%_M&kvAaN)@ZVw z+`toz&WG#HkWDjnZE!6nk{e-oFdL^$YnbOCN}JC&{$#$O27@|Tn-skXr)2ml2~O!5 zX+gYoxhoc7qoU?C^3~&!U?kRFtnSEecWuH0B0OvLodgUAi}8p1 zrO6RSXHH}DMc$&|?D004DiOVMHV8kXCP@7NKB zgaZq^^O<7PoKEp72kby@W0Z!Y*Ay{&vfg#C&gG@YVR9g?FEocMUi1gSN$+V+ayF45{a zuDZDTN}mS|;BO%gEf}pjBfN2-gIrU#G5~cucA;dokXW89%>AyXJJI z9X4UlIWA|ZYHgbI z5?oFk@A=Ik7lrEQPDH!H+b`7_Y~aDb_qa=B2^Y&Ow41cU=4WDd40dp5(QS-WMN-=Y z9g;6_-JdNU;|6cPwf$ak*aJIcwL@1n$#l~zi{c{EW?T;DaW*E8DYq?Umtz{nJ&w-M zEMyTDrC&9K$d|kZe2#ws6)L=7K+{ zQw{XnV6UC$6-rW0emqm8wJoeZK)wJIcV?dST}Z;G0Arq{dVDu0&4kd%N!3F1*;*pW zR&qUiFzK=@44#QGw7k1`3t_d8&*kBV->O##t|tonFc2YWrL7_eqg+=+k;!F-`^b8> z#KWCE8%u4k@EprxqiV$VmmtiWxDLgnGu$Vs<8rppV5EajBXL4nyyZM$SWVm!wnCj-B!Wjqj5-5dNXukI2$$|Bu3Lrw}z65Lc=1G z^-#WuQOj$hwNGG?*CM_TO8Bg-1+qc>J7k5c51U8g?ZU5n?HYor;~JIjoWH-G>AoUP ztrWWLbRNqIjW#RT*WqZgPJXU7C)VaW5}MiijYbABmzoru6EmQ*N8cVK7a3|aOB#O& zBl8JY2WKfmj;h#Q!pN%9o@VNLv{OUL?rixHwOZuvX7{IJ{(EdPpuVFoQqIOa7giLVkBOKL@^smUA!tZ1CKRK}#SSM)iQHk)*R~?M!qkCruaS!#oIL1c z?J;U~&FfH#*98^G?i}pA{ z9Jg36t4=%6mhY(quYq*vSxptes9qy|7xSlH?G=S@>u>Ebe;|LVhs~@+06N<4CViBk zUiY$thvX;>Tby6z9Y1edAMQaiH zm^r3v#$Q#2T=X>bsY#D%s!bhs^M9PMAcHbCc0FMHV{u-dwlL;a1eJ63v5U*?Q_8JO zT#50!RD619#j_Uf))0ooADz~*9&lN!bBDRUgE>Vud-i5ck%vT=r^yD*^?Mp@Q^v+V zG#-?gKlr}Eeqifb{|So?HM&g91P8|av8hQoCmQXkd?7wIJwb z_^v8bbg`SAn{I*4bH$u(RZ6*xUhuA~hc=8czK8SHEKTzSxgbwi~9(OqJB&gwb^l4+m`k*Q;_?>Y-APi1{k zAHQ)P)G)f|AyjSgcCFps)Fh6Bca*Xznq36!pV6Az&m{O8$wGFD? zY&O*3*J0;_EqM#jh6^gMQKpXV?#1?>$ml1xvh8nSN>-?H=V;nJIwB07YX$e6vLxH( zqYwQ>qxwR(i4f)DLd)-$P>T-no_c!LsN@)8`e;W@)-Hj0>nJ-}Kla4-ZdPJzI&Mce zv)V_j;(3ERN3_@I$N<^|4Lf`B;8n+bX@bHbcZTopEmDI*Jfl)-pFDvo6svPRoo@(x z);_{lY<;);XzT`dBFpRmGrr}z5u1=pC^S-{ce6iXQlLGcItwJ^mZx{m$&DA_oEZ)B{_bYPq-HA zcH8WGoBG(aBU_j)vEy+_71T34@4dmSg!|M8Vf92Zj6WH7Q7t#OHQqWgFE3ARt+%!T z?oLovLVlnf?2c7pTc)~cc^($_8nyKwsN`RA-23ed3sdj(ys%pjjM+9JrctL;dy8a( z@en&CQmnV(()bu|Y%G1-4a(6x{aLytn$T-;(&{QIJB9vMox11U-1HpD@d(QkaJdEb zG{)+6Dos_L+O3NpWo^=gR?evp|CqEG?L&Ut#D*KLaRFOgOEK(Kq1@!EGcTfo+%A&I z=dLbB+d$u{sh?u)xP{PF8L%;YPPW53+@{>5W=Jt#wQpN;0_HYdw1{ksf_XhO4#2F= zyPx6Lx2<92L-;L5PD`zn6zwIH`Jk($?Qw({erA$^bC;q33hv!d!>%wRhj# zal^hk+WGNg;rJtb-EB(?czvOM=H7dl=vblBwAv>}%1@{}mnpUznfq1cE^sgsL0*4I zJ##!*B?=vI_OEVis5o+_IwMIRrpQyT_Sq~ZU%oY7c5JMIADzpD!Upz9h@iWg_>>~j zOLS;wp^i$-E?4<_cp?RiS%Rd?i;f*mOz=~(&3lo<=@(nR!_Rqiprh@weZlL!t#NCc zO!QTcInq|%#>OVgobj{~ixEUec`E25zJ~*DofsQdzIa@5^nOXj2T;8O`l--(QyU^$t?TGY^7#&FQ+2SS3B#qK*k3`ye?8jUYSajE5iBbJls75CCc(m3dk{t?- zopcER9{Z?TC)mk~gpi^kbbu>b-+a{m#8-y2^p$ka4n60w;Sc2}HMf<8JUvhCL0B&Btk)T`ctE$*qNW8L$`7!r^9T+>=<=2qaq-;ll2{`{Rg zc5a0ZUI$oG&j-qVOuKa=*v4aY#IsoM+1|c4Z)<}lEDvy;5huB@1RJPquU2U*U-;gu z=En2m+qjBzR#DEJDO`WU)hdd{Vj%^0V*KoyZ|5lzV87&g_j~NCjwv0uQVqXOb*QrQ zy|Qn`hxx(58c70$E;L(X0uZZ72M1!6oeg)(cdKO ze0gDaTz+ohR-#d)NbAH4x{I(21yjwvBQfmpLu$)|m{XolbgF!pmsqJ#D}(ylp6uC> z{bqtcI#hT#HW=wl7>p!38sKsJ`r8}lt-q%Keqy%u(xk=yiIJiUw6|5IvkS+#?JTBl z8H5(Q?l#wzazujH!8o>1xtn8#_w+397*_cy8!pQGP%K(Ga3pAjsaTbbXJlQF_+m+-UpUUent@xM zg%jqLUExj~o^vQ3Gl*>wh=_gOr2*|U64_iXb+-111aH}$TjeajM+I20xw(((>fej-@CIz4S1pi$(#}P7`4({6QS2CaQS4NPENDp>sAqD z$bH4KGzXGffkJ7R>V>)>tC)uax{UsN*dbeNC*v}#8Y#OWYwL4t$ePR?VTyIs!wea+ z5Urmc)X|^`MG~*dS6pGSbU+gPJoq*^a=_>$n4|P^w$sMBBy@f*Z^Jg6?n5?oId6f{ z$LW4M|4m502z0t7g<#Bx%X;9<=)smFolV&(V^(7Cv2-sxbxopQ!)*#ZRhTBpx1)Fc zNm1T%bONzv6@#|dz(w02AH8OXe>kQ#1FMCzO}2J_mST)+ExmBr9cva-@?;wnmWMOk z{3_~EX_xadgJGv&H@zK_8{(x84`}+c?oSBX*Ge3VdfTt&F}yCpFP?CpW+BE^cWY0^ zb&uBN!Ja3UzYHK-CTyA5=L zEMW{l3Usky#ly=7px648W31UNV@K)&Ub&zP1c7%)`{);I4b0Q<)B}3;NMG2JH=X$U zfIW4)4n9ZM`-yRj67I)YSLDK)qfUJ_ij}a#aZN~9EXrh8eZY2&=uY%2N0UFF7<~%M zsB8=erOWZ>Ct_#^tHZ|*q`H;A)5;ycw*IcmVxi8_0Xk}aJA^ath+E;xg!x+As(M#0=)3!NJR6H&9+zd#iP(m0PIW8$ z1Y^VX`>jm`W!=WpF*{ioM?C9`yOR>@0q=u7o>BP-eSHqCgMDj!2anwH?s%i2p+Q7D zzszIf5XJpE)IG4;d_(La-xenmF(tgAxK`Y4sQ}BSJEPs6N_U2vI{8=0C_F?@7<(G; zo$~G=8p+076G;`}>{MQ>t>7cm=zGtfbdDXm6||jUU|?X?CaE?(<6bKDYKeHlz}DA8 zXT={X=yp_R;HfJ9h%?eWvQ!dRgz&Su*JfNt!Wu>|XfU&68iRikRrHRW|ZxzRR^`eIGt zIeiDgVS>IeExKVRWW8-=A=yA`}`)ZkWBrZD`hpWIxBGkh&f#ijr449~m`j6{4jiJ*C!oVA8ZC?$1RM#K(_b zL9TW)kN*Y4%^-qPpMP7d4)o?Nk#>aoYHT(*g)qmRUb?**F@pnNiy6Fv9rEiUqD(^O zzyS?nBrX63BTRYduaG(0VVG2yJRe%o&rVrLjbxTaAFTd8s;<<@Qs>u(<193R8>}2_ zuwp{7;H2a*X7_jryzriZXMg?bTuegABb^87@SsKkr2)0Gyiax8KQWstw^v#ix45EVrcEhr>!NMhprl$InQMzjSFH54x5k9qHc`@9uKQzvL4ihcq{^B zPrVR=o_ic%Y>6&rMN)hTZsI7I<3&`#(nl+3y3ys9A~&^=4?PL&nd8)`OfG#n zwAMN$1&>K++c{^|7<4P=2y(B{jJsQ0a#U;HTo4ZmWZYvI{+s;Td{Yzem%0*k#)vjpB zia;J&>}ICate44SFYY3vEelqStQWFihx%^vQ@Do(sOy7yR2@WNv7Y9I^yL=nZr3mb zXKV5t@=?-Sk|b{XMhA7ZGB@2hqsx}4xwCW!in#C zI@}scZlr3-NFJ@NFaJlhyfcw{k^vvtGl`N9xSo**rDW4S}i zM9{fMPWo%4wYDG~BZ18BD+}h|GQKc-g^{++3MY>}W_uq7jGHx{mwE9fZiPCoxN$+7 zrODGGJrOkcPQUB(FD5aoS4g~7#6NR^ma7-!>mHuJfY5kTe6PpNNKC9GGRiu^L31uG z$7v`*JknQHsYB!Tm_W{a32TM099djW%5e+j0Ve_ct}IM>XLF1Ap+YvcrLV=|CKo6S zb+9Nl3_YdKP6%Cxy@6TxZ>;4&nTneadr z_ES90ydCev)LV!dN=#(*f}|ZORFdvkYBni^aLbUk>BajeWIOcmHP#8S)*2U~QKI%S zyrLmtPqb&TphJ;>yAxri#;{uyk`JJqODDw%(Z=2`1uc}br^V%>j!gS)D*q*f_-qf8&D;W1dJgQMlaH5er zN2U<%Smb7==vE}dDI8K7cKz!vs^73o9f>2sgiTzWcwY|BMYHH5%Vn7#kiw&eItCqa zIkR2~Q}>X=Ar8W|^Ms41Fm8o6IB2_j60eOeBB1Br!boW7JnoeX6Gs)?7rW0^5psc- zjS16yb>dFn>KPOF;imD}e!enuIniFzv}n$m2#gCCv4jM#ArwlzZ$7@9&XkFxZ4n!V zj3dyiwW4Ki2QG{@i>yuZXQizw_OkZI^-3otXC{!(lUpJF33gI60ak;Uqitp74|B6I zgg{b=Iz}WkhCGj1M=hu4#Aw173YxIVbISaoc z-nLZC*6Tgivd5V`K%GxhBsp@SUU60-rfc$=wb>zdJzXS&-5(NRRodFk;Kxk!S(O(a0e7oY=E( zAyS;Ow?6Q&XA+cnkCb{28_1N8H#?J!*$MmIwLq^*T_9-z^&UE@A(z9oGYtFy6EZef LrJugUA?W`A8`#=m diff --git a/apps/next13/tsconfig.json b/apps/next13/tsconfig.json deleted file mode 100644 index edca01f40b..0000000000 --- a/apps/next13/tsconfig.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "compilerOptions": { - "baseUrl": ".", - "target": "es5", - "lib": ["dom", "dom.iterable", "esnext"], - "allowJs": true, - "skipLibCheck": true, - "strict": true, - "forceConsistentCasingInFileNames": true, - "noEmit": true, - "esModuleInterop": true, - "module": "esnext", - "moduleResolution": "node", - "resolveJsonModule": true, - "isolatedModules": true, - "jsx": "preserve", - "incremental": true, - "plugins": [ - { - "name": "next" - } - ], - "paths": { - "@/*": ["./*"] - } - }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], - "exclude": ["node_modules"] -} diff --git a/apps/next13/types.ts b/apps/next13/types.ts deleted file mode 100644 index 452fe3411f..0000000000 --- a/apps/next13/types.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { SimpleRolesIsAuthorized } from "@blitzjs/auth" -import { User } from "@/db" - -export type Role = "ADMIN" | "USER" - -declare module "@blitzjs/auth" { - export interface Session { - isAuthorized: SimpleRolesIsAuthorized - PublicData: { - userId: User["id"] - role: Role - views?: number - } - } -} From 2423ff4e5dc35b62e08abe5b6b84d8d4e9dd7789 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Mon, 16 Oct 2023 22:34:46 +0530 Subject: [PATCH 53/95] re-add next 13 that exists in main --- apps/next13/.env | 7 + apps/next13/.eslintrc.json | 3 + apps/next13/.gitignore | 38 +++ apps/next13/CHANGELOG.md | 205 ++++++++++++ apps/next13/README.md | 26 ++ apps/next13/app/auth/layout.tsx | 8 + apps/next13/app/auth/login/page.tsx | 13 + apps/next13/app/auth/signup/page.tsx | 11 + apps/next13/app/error.tsx | 24 ++ apps/next13/app/layout.tsx | 57 ++++ apps/next13/app/page.tsx | 47 +++ apps/next13/app/react-query.tsx | 34 ++ apps/next13/next.config.js | 11 + apps/next13/package.json | 38 +++ apps/next13/prisma/dev.db | Bin 0 -> 40960 bytes apps/next13/prisma/index.ts | 5 + .../20221027023832_init/migration.sql | 47 +++ .../migrations/20230206052436_/migration.sql | 48 +++ .../prisma/migrations/migration_lock.toml | 3 + apps/next13/prisma/schema.prisma | 33 ++ apps/next13/public/favicon.ico | Bin 0 -> 25931 bytes apps/next13/public/vercel.svg | 4 + apps/next13/src/auth/components/LoginForm.tsx | 61 ++++ .../next13/src/auth/components/SignupForm.tsx | 51 +++ .../src/auth/mutations/changePassword.ts | 26 ++ .../src/auth/mutations/forgotPassword.test.ts | 64 ++++ .../src/auth/mutations/forgotPassword.ts | 40 +++ apps/next13/src/auth/mutations/login.ts | 31 ++ apps/next13/src/auth/mutations/logout.ts | 5 + .../src/auth/mutations/resetPassword.test.ts | 83 +++++ .../src/auth/mutations/resetPassword.ts | 50 +++ apps/next13/src/auth/mutations/signup.ts | 19 ++ apps/next13/src/auth/validations.ts | 42 +++ apps/next13/src/blitz-client.ts | 13 + apps/next13/src/blitz-server.ts | 25 ++ apps/next13/src/core/components/Form.tsx | 83 +++++ .../src/core/components/LabeledTextField.tsx | 63 ++++ apps/next13/src/pages/api/auth/session.ts | 8 + apps/next13/src/pages/api/rpc/[[...blitz]].ts | 4 + apps/next13/src/styles/Home.module.css | 303 ++++++++++++++++++ apps/next13/src/styles/globals.css | 25 ++ apps/next13/src/users/hooks/useCurrentUser.ts | 7 + .../src/users/queries/getCurrentUser.ts | 16 + apps/next13/tsconfig.json | 25 ++ apps/next13/types.ts | 12 + 45 files changed, 1718 insertions(+) create mode 100644 apps/next13/.env create mode 100644 apps/next13/.eslintrc.json create mode 100644 apps/next13/.gitignore create mode 100644 apps/next13/CHANGELOG.md create mode 100644 apps/next13/README.md create mode 100644 apps/next13/app/auth/layout.tsx create mode 100644 apps/next13/app/auth/login/page.tsx create mode 100644 apps/next13/app/auth/signup/page.tsx create mode 100644 apps/next13/app/error.tsx create mode 100644 apps/next13/app/layout.tsx create mode 100644 apps/next13/app/page.tsx create mode 100644 apps/next13/app/react-query.tsx create mode 100644 apps/next13/next.config.js create mode 100644 apps/next13/package.json create mode 100644 apps/next13/prisma/dev.db create mode 100644 apps/next13/prisma/index.ts create mode 100644 apps/next13/prisma/migrations/20221027023832_init/migration.sql create mode 100644 apps/next13/prisma/migrations/20230206052436_/migration.sql create mode 100644 apps/next13/prisma/migrations/migration_lock.toml create mode 100644 apps/next13/prisma/schema.prisma create mode 100644 apps/next13/public/favicon.ico create mode 100644 apps/next13/public/vercel.svg create mode 100644 apps/next13/src/auth/components/LoginForm.tsx create mode 100644 apps/next13/src/auth/components/SignupForm.tsx create mode 100644 apps/next13/src/auth/mutations/changePassword.ts create mode 100644 apps/next13/src/auth/mutations/forgotPassword.test.ts create mode 100644 apps/next13/src/auth/mutations/forgotPassword.ts create mode 100644 apps/next13/src/auth/mutations/login.ts create mode 100644 apps/next13/src/auth/mutations/logout.ts create mode 100644 apps/next13/src/auth/mutations/resetPassword.test.ts create mode 100644 apps/next13/src/auth/mutations/resetPassword.ts create mode 100644 apps/next13/src/auth/mutations/signup.ts create mode 100644 apps/next13/src/auth/validations.ts create mode 100644 apps/next13/src/blitz-client.ts create mode 100644 apps/next13/src/blitz-server.ts create mode 100644 apps/next13/src/core/components/Form.tsx create mode 100644 apps/next13/src/core/components/LabeledTextField.tsx create mode 100644 apps/next13/src/pages/api/auth/session.ts create mode 100644 apps/next13/src/pages/api/rpc/[[...blitz]].ts create mode 100644 apps/next13/src/styles/Home.module.css create mode 100644 apps/next13/src/styles/globals.css create mode 100644 apps/next13/src/users/hooks/useCurrentUser.ts create mode 100644 apps/next13/src/users/queries/getCurrentUser.ts create mode 100644 apps/next13/tsconfig.json create mode 100644 apps/next13/types.ts diff --git a/apps/next13/.env b/apps/next13/.env new file mode 100644 index 0000000000..c498ab59bf --- /dev/null +++ b/apps/next13/.env @@ -0,0 +1,7 @@ +# Environment variables declared in this file are automatically made available to Prisma. +# See the documentation for more detail: https://pris.ly/d/prisma-schema#accessing-environment-variables-from-the-schema + +# Prisma supports the native connection string format for PostgreSQL, MySQL, SQLite, SQL Server, MongoDB and CockroachDB. +# See the documentation for all the connection string options: https://pris.ly/d/connection-strings + +DATABASE_URL="file:./dev.db" \ No newline at end of file diff --git a/apps/next13/.eslintrc.json b/apps/next13/.eslintrc.json new file mode 100644 index 0000000000..bffb357a71 --- /dev/null +++ b/apps/next13/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": "next/core-web-vitals" +} diff --git a/apps/next13/.gitignore b/apps/next13/.gitignore new file mode 100644 index 0000000000..4f360c89d2 --- /dev/null +++ b/apps/next13/.gitignore @@ -0,0 +1,38 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts + +.vscode diff --git a/apps/next13/CHANGELOG.md b/apps/next13/CHANGELOG.md new file mode 100644 index 0000000000..8f5a2ec5f8 --- /dev/null +++ b/apps/next13/CHANGELOG.md @@ -0,0 +1,205 @@ +# next-blitz-auth + +## 0.1.1-beta.10 + +### Patch Changes + +- Updated dependencies [30fd61316] +- Updated dependencies [3ddb57072] +- Updated dependencies [fe8c937d2] + - blitz@2.0.0-beta.34 + - @blitzjs/auth@2.0.0-beta.34 + - @blitzjs/next@2.0.0-beta.34 + - @blitzjs/rpc@2.0.0-beta.34 + - @blitzjs/config@2.0.0-beta.34 + +## 0.1.1-beta.9 + +### Patch Changes + +- Updated dependencies [19898a488] +- Updated dependencies [6811eab1a] +- Updated dependencies [022392c12] + - @blitzjs/rpc@2.0.0-beta.33 + - blitz@2.0.0-beta.33 + - @blitzjs/next@2.0.0-beta.33 + - @blitzjs/auth@2.0.0-beta.33 + - @blitzjs/config@2.0.0-beta.33 + +## 0.1.1-beta.8 + +### Patch Changes + +- Updated dependencies [82649f341] +- Updated dependencies [8b01175b4] + - blitz@2.0.0-beta.32 + - @blitzjs/next@2.0.0-beta.32 + - @blitzjs/auth@2.0.0-beta.32 + - @blitzjs/rpc@2.0.0-beta.32 + - @blitzjs/config@2.0.0-beta.32 + +## 0.1.1-beta.7 + +### Patch Changes + +- Updated dependencies [90f1741da] +- Updated dependencies [df3265b85] + - @blitzjs/auth@2.0.0-beta.31 + - blitz@2.0.0-beta.31 + - @blitzjs/rpc@2.0.0-beta.31 + - @blitzjs/next@2.0.0-beta.31 + - @blitzjs/config@2.0.0-beta.31 + +## 0.1.1-beta.6 + +### Patch Changes + +- Updated dependencies [c5572bec6] +- Updated dependencies [727734955] + - @blitzjs/auth@2.0.0-beta.30 + - blitz@2.0.0-beta.30 + - @blitzjs/rpc@2.0.0-beta.30 + - @blitzjs/next@2.0.0-beta.30 + - @blitzjs/config@2.0.0-beta.30 + +## 0.1.1-beta.5 + +### Patch Changes + +- Updated dependencies [b6b9a1c5a] +- Updated dependencies [61888d1a3] + - @blitzjs/auth@2.0.0-beta.29 + - blitz@2.0.0-beta.29 + - @blitzjs/rpc@2.0.0-beta.29 + - @blitzjs/next@2.0.0-beta.29 + - @blitzjs/config@2.0.0-beta.29 + +## 0.1.1-beta.4 + +### Patch Changes + +- Updated dependencies [5166e5e03] +- Updated dependencies [2533caf48] +- Updated dependencies [c7ac86b85] +- Updated dependencies [1bb3a6556] + - @blitzjs/auth@2.0.0-beta.28 + - @blitzjs/next@2.0.0-beta.28 + - @blitzjs/rpc@2.0.0-beta.28 + - blitz@2.0.0-beta.28 + - @blitzjs/config@2.0.0-beta.28 + +## 0.1.1-beta.3 + +### Patch Changes + +- Updated dependencies [eda14fa8a] +- Updated dependencies [3d004dc41] +- Updated dependencies [29c2b029a] + - @blitzjs/next@2.0.0-beta.27 + - @blitzjs/rpc@2.0.0-beta.27 + - @blitzjs/auth@2.0.0-beta.27 + - blitz@2.0.0-beta.27 + - @blitzjs/config@2.0.0-beta.27 + +## 0.1.1-beta.2 + +### Patch Changes + +- Updated dependencies [e82a79be5] +- Updated dependencies [38d945a3f] + - @blitzjs/auth@2.0.0-beta.26 + - @blitzjs/next@2.0.0-beta.26 + - @blitzjs/rpc@2.0.0-beta.26 + - blitz@2.0.0-beta.26 + - @blitzjs/config@2.0.0-beta.26 + +## 0.1.1-beta.1 + +### Patch Changes + +- Updated dependencies [f84d77a42] + - @blitzjs/rpc@2.0.0-beta.25 + - @blitzjs/next@2.0.0-beta.25 + - @blitzjs/auth@2.0.0-beta.25 + - @blitzjs/config@2.0.0-beta.25 + - blitz@2.0.0-beta.25 + +## 0.1.1-beta.0 + +### Patch Changes + +- 37aeaa7fa: feature: Nextjs 13 App Directory Utility Methods + + ### 🔧 New Blitz Auth Hook `useAuthenticatedBlitzContext` + + This hook is implemented as the replacement of the [`BlitzPage` seurity auth utilities](https://blitzjs.com/docs/authorization#secure-your-pages) provided for the pages directory to work with React Server Components in the Nextjs 13 app directory + It can be used in any asynchronous server component be it in `page.ts` or in the layouts in `layout.ts` + It uses the new [`redirect` function](https://beta.nextjs.org/docs/api-reference/redirect) to provide the required authorization in server side + + #### API + + ```ts + useAuthenticatedBlitzContext({ + redirectTo, + redirectAuthenticatedTo, + role, + }: { + redirectTo?: string | RouteUrlObject + redirectAuthenticatedTo?: string | RouteUrlObject | ((ctx: Ctx) => string | RouteUrlObject) + role?: string | string[] + }): Promise + ``` + + #### Usage + + **Example Usage in React Server Component in `app` directory in Next 13** + + ```ts + import {getAppSession, useAuthenticatedBlitzContext} from "src/blitz-server" + ... + await useAuthenticatedBlitzContext({ + redirectTo: "/auth/login", + role: ["admin"], + redirectAuthenticatedTo: "/dashboard", + }) + ``` + + ### 🔧 New Blitz RPC Hook `invokeResolver` + + #### API + + ```ts + invokeResolver any, TInput = FirstParam>( + queryFn: T, + params: TInput, + ): Promise> + ``` + + #### Example Usage + + ```ts + ... + import {invokeResolver, useAuthenticatedBlitzContext} from "../src/blitz-server" + import getCurrentUser from "../src/users/queries/getCurrentUser" + + export default async function Home() { + await useAuthenticatedBlitzContext({ + redirectTo: "/auth/login", + }) + const user = await invokeResolver(getCurrentUser, null) + ... + ``` + +- Updated dependencies [cadefb88e] +- Updated dependencies [6f18cbdc9] +- Updated dependencies [acc07ce94] +- Updated dependencies [ea7561b8e] +- Updated dependencies [9529dbd6f] +- Updated dependencies [ea7561b8e] +- Updated dependencies [6e88a847f] +- Updated dependencies [37aeaa7fa] + - blitz@2.0.0-beta.24 + - @blitzjs/auth@2.0.0-beta.24 + - @blitzjs/next@2.0.0-beta.24 + - @blitzjs/rpc@2.0.0-beta.24 + - @blitzjs/config@2.0.0-beta.24 diff --git a/apps/next13/README.md b/apps/next13/README.md new file mode 100644 index 0000000000..8b59024262 --- /dev/null +++ b/apps/next13/README.md @@ -0,0 +1,26 @@ +# Next.js 13 + Blitz Auth + +This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) + [`Blitz Auth`](https://blitzjs.com/docs/auth). + +## Getting Started + +First, run the development server: + +```bash +npm run dev +# or +yarn dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can go to the `/signup` page and create a new account. + +## Learn More + +To learn more about Next.js and Blitz.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. +- [Blitz.js Documentation](https://blitzjs.com/docs/) — learn about Blitz.js. +- [Blitz Auth Documentation](https://blitzjs.com/docs/auth) — learn about Blitz Auth plugin. diff --git a/apps/next13/app/auth/layout.tsx b/apps/next13/app/auth/layout.tsx new file mode 100644 index 0000000000..7b9c6ac34c --- /dev/null +++ b/apps/next13/app/auth/layout.tsx @@ -0,0 +1,8 @@ +import {useAuthenticatedBlitzContext} from "../../src/blitz-server" + +export default async function RootLayout({children}: {children: React.ReactNode}) { + await useAuthenticatedBlitzContext({ + redirectAuthenticatedTo: "/", + }) + return <>{children} +} diff --git a/apps/next13/app/auth/login/page.tsx b/apps/next13/app/auth/login/page.tsx new file mode 100644 index 0000000000..adc70f11cf --- /dev/null +++ b/apps/next13/app/auth/login/page.tsx @@ -0,0 +1,13 @@ +"use client" + +import {LoginForm} from "../../../src/auth/components/LoginForm" +import {useRouter} from "next/navigation" +import {useSearchParams} from "next/navigation" + +const LoginPage = () => { + const router = useRouter() + const searchParams = useSearchParams() + return {}} /> +} + +export default LoginPage diff --git a/apps/next13/app/auth/signup/page.tsx b/apps/next13/app/auth/signup/page.tsx new file mode 100644 index 0000000000..f45176b948 --- /dev/null +++ b/apps/next13/app/auth/signup/page.tsx @@ -0,0 +1,11 @@ +"use client" + +import {useRouter} from "next/navigation" +import SignupForm from "../../../src/auth/components/SignupForm" + +const SignUp = () => { + const router = useRouter() + return router.push("/")} /> +} + +export default SignUp diff --git a/apps/next13/app/error.tsx b/apps/next13/app/error.tsx new file mode 100644 index 0000000000..2c6571bf17 --- /dev/null +++ b/apps/next13/app/error.tsx @@ -0,0 +1,24 @@ +"use client" // Error components must be Client components + +import React, {useEffect} from "react" + +export default function Error({error, reset}: {error: Error; reset: () => void}) { + useEffect(() => { + // Log the error to an error reporting service + console.error(error) + }, [error]) + + return ( +
+

Something went wrong!

+ +
+ ) +} diff --git a/apps/next13/app/layout.tsx b/apps/next13/app/layout.tsx new file mode 100644 index 0000000000..8842f2140a --- /dev/null +++ b/apps/next13/app/layout.tsx @@ -0,0 +1,57 @@ +import "src/styles/globals.css" +import {BlitzProvider} from "../src/blitz-client" +import styles from "src/styles/Home.module.css" + +export default function RootLayout({children}: {children: React.ReactNode}) { + return ( + + + Create Next App + + + + + +
+ +
+
+

+ Congrats! Your app is ready, including user sign-up and log-in. +

+
+ +
+
+
+
+ + + + + +
+
+
+ +
{children}
+
+
+ + +
+ + + + ) +} diff --git a/apps/next13/app/page.tsx b/apps/next13/app/page.tsx new file mode 100644 index 0000000000..c46dbc6e9a --- /dev/null +++ b/apps/next13/app/page.tsx @@ -0,0 +1,47 @@ +import Link from "next/link" +import styles from "src/styles/Home.module.css" +import Test from "./react-query" +import {invoke, useAuthenticatedBlitzContext} from "../src/blitz-server" +import getCurrentUser from "../src/users/queries/getCurrentUser" + +export default async function Home() { + await useAuthenticatedBlitzContext({ + redirectTo: "/auth/login", + }) + const user = await invoke(getCurrentUser, null) + console.log("user", user) + return ( +
+
+ + Sign Up + + + Login + +
+

Server Session

+

UserId: {user?.id}

+

Email: {user?.email}

+
+

Client Session

+ +
+
+ ) +} diff --git a/apps/next13/app/react-query.tsx b/apps/next13/app/react-query.tsx new file mode 100644 index 0000000000..1bfd5d4b94 --- /dev/null +++ b/apps/next13/app/react-query.tsx @@ -0,0 +1,34 @@ +"use client" + +import {useQuery, useMutation} from "@blitzjs/rpc" +import logout from "../src/auth/mutations/logout" +import getCurrentUser from "../src/users/queries/getCurrentUser" +import {useTransition} from "react" +import {useRouter} from "next/navigation" + +export default function Test() { + const router = useRouter() + const [user] = useQuery(getCurrentUser, null) + const [isPending, startTransition] = useTransition() + const [logoutMutation] = useMutation(logout) + console.log(user) + return ( +
+

Test

+

{user?.email}

+ +
+ ) +} diff --git a/apps/next13/next.config.js b/apps/next13/next.config.js new file mode 100644 index 0000000000..6f0b42c581 --- /dev/null +++ b/apps/next13/next.config.js @@ -0,0 +1,11 @@ +const {withBlitz} = require("@blitzjs/next") + +/** @type {import('next').NextConfig} */ +const nextConfig = { + experimental: { + appDir: true, + serverComponentsExternalPackages: ["@prisma/client", "prisma"], + }, +} + +module.exports = withBlitz(nextConfig) diff --git a/apps/next13/package.json b/apps/next13/package.json new file mode 100644 index 0000000000..ae75d6ade2 --- /dev/null +++ b/apps/next13/package.json @@ -0,0 +1,38 @@ +{ + "name": "next-blitz-auth", + "version": "0.1.1-beta.10", + "private": true, + "scripts": { + "blitz:dev": "next dev", + "blitz:build": "next build", + "blitz:start": "next start", + "lint": "next lint" + }, + "dependencies": { + "@blitzjs/auth": "2.0.0-beta.34", + "@blitzjs/config": "2.0.0-beta.34", + "@blitzjs/next": "2.0.0-beta.34", + "@blitzjs/rpc": "2.0.0-beta.34", + "@hookform/error-message": "2.0.0", + "@hookform/resolvers": "2.9.10", + "@prisma/client": "^4.5.0", + "@tanstack/react-query": "4.0.10", + "blitz": "2.0.0-beta.34", + "flatted": "3.2.7", + "next": "13.5.2", + "prisma": "^4.5.0", + "react": "18.2.0", + "react-dom": "18.2.0", + "react-hook-form": "7.39.1", + "superjson": "1.11.0", + "zod": "3.20.2" + }, + "devDependencies": { + "@types/node": "18.11.7", + "@types/react": "18.0.23", + "@types/react-dom": "18.0.7", + "eslint": "8.26.0", + "eslint-config-next": "13.0.0", + "typescript": "4.8.4" + } +} diff --git a/apps/next13/prisma/dev.db b/apps/next13/prisma/dev.db new file mode 100644 index 0000000000000000000000000000000000000000..b4a7322d4683fe74ef89dca184e767a9077a1048 GIT binary patch literal 40960 zcmeI5%WoUU8Nhc%JuKP^tDuHb7;QH+0!y%E?2G#_8pIU2q)3yLNbd4=VP{_^&8N9b zQI?y7Y}YA}qPHG;F3>|zq(B4o+JB(vvB{}Gfwn+y1=2%{TsljwEK+h521b$C`36`n zcb?z(n{Q^8+?m;8KGSq9%I*z1$fY>qI|NA*w<(Gsh&Voi{xOHotN575$FU=iznpW9 z6E}B$vJxy2OUoLu@|Vy@m-5TMUDkqsSm`Z(Z|U|qDIo|500AHX1il^u!BXHyYgez5 zPeU%!+g8^a)r*$nG<)5NuNPtkC8{cv8r{k$RCppJOsxkg?7~emOr>(Fl2i&*ZbzkZ zS|&s77E;-0p-SCRs#H`{cTzc=QC7*RH;xin`~Bv?a-wdSisSs%R95jr8mMcwtuUo3 z6`Yr!-?K2MVVS;^YOiH=kK*~ksOvUk#X{n2NPnoen?@YDXevQ}(A-0=b;f__ScBAw zT1VN(c5+3v5XGueVPAy$QN+64vL1w~#7;p;C39n)*Ta4u8&p9_C|6 z9^hc_<$nhdY4tCkBw|xGvkk?X~XiX>_tq<7+AP2%}JAbW;EHNAyX%|Iuy1~0;tAthytp`StXgn!?HpS3&#jCvr*(L3d1>wPW%3a- zrsXB@j#I40gkPxjby3G}VZLrhwRKLL+eMBu>J4z4@Y-b%*DLYkwJTT1_mX2teIxWw zi_>-M`_9y1Jfatk830@hasQV$H?kOI3vfk`cB>G4ZCAak8hN;ToK;bbI6L`q_%B zGiUt*c$~W6ja4i7n0xK-M5vEHzySdu00e*l5C8%|00;m9AOHk_01$YI2^=oZ1+~MK zh3f>du#6p5B=uO!)Bb&Bqn7nQ4SUM3GCmOne3uonsOv{2G(4xsBOP378 zG$hUtIDw1smMqddE$}+S(=ro5vMfYci518vZ~XP&zreDv49$vIB#C3|`2Q7m9Pl&m z0sma+cSPtD`~eOK00AHX1b_e#00KY&2mk>f00e*l5cnn#SPy9AEdOB4T?=S4{k`D* z{$B_k5TUj>JG=Q;Og zAW5ROweR3%kpsL4>!#Ce^#NQ6EPeHi-bw}B1l2n2ut5C8%|00;m9AOHk_01yBIK;Y{mu<^i270beCw^hpQ z*X&v>O2@f_LZKF=qee$6GPioJ^SU?vUuE(mGgcYJWn0?JCt7;Zj&b+gQCIJDcslQT z5m&v4#dM$TGTIh*S9Mcv@}RuWW@Mf{*h`MKDf00e*l5C8%|00;m9AOHl;CGf+A1%kMCZE8w4!*YB?5G9$uilR5>afEj^zHo;3 zL;y~AxD&uH6G=X@P9|?ZXL@%!nRrlRn@y32O z(N1T}jYL&TuzJ!g=GuvaYMJ3xrC%-QqqDlV54Yy9Mw^eU)3exTR${wf$g1gNww-77 zPCAX$#;~xxwO6Pl;x*1_?UYNcok}#4Yn#=a*5gab#BQ;Zj$5tKs9M=dl#`55EI00C z6?3axO5dw>x0Dxvt-@eOb54PMpbYIEQZr1EZ2U5Yv2$F1b_e#00KY&2mk>f00e*l5C8%%0fFBT3wR6s z>|3iO`SkNOp*qXsW{yPy&&Z}s+pL86h=n(|XG~G#MON2&i8UpJB-u7~iDeC*M|Q+C zY0ji+Q8H}C;O$2Hz}d^1>ZX|*l(Lcg>E^CT;}_2FWupnDoq2ft7TjBrcOSmHaCmh! zI3eY~-n{tdS)O$>x?ppnX$lr6=nUSjpRpx_=8+^Yh{l`tGmL0(oNgNezLEsI6TXci zmZY%clJ}qTt(U)?BSw8vb_n(hu zdC+dzoP`TBu^=YT86w`lpP_a93IQgf00dq&0{;W0Wk7fU literal 0 HcmV?d00001 diff --git a/apps/next13/prisma/index.ts b/apps/next13/prisma/index.ts new file mode 100644 index 0000000000..30f7513e7d --- /dev/null +++ b/apps/next13/prisma/index.ts @@ -0,0 +1,5 @@ +import {PrismaClient} from "@prisma/client" + +export * from "@prisma/client" +const db = new PrismaClient() +export default db diff --git a/apps/next13/prisma/migrations/20221027023832_init/migration.sql b/apps/next13/prisma/migrations/20221027023832_init/migration.sql new file mode 100644 index 0000000000..b6eb866e1b --- /dev/null +++ b/apps/next13/prisma/migrations/20221027023832_init/migration.sql @@ -0,0 +1,47 @@ +-- CreateTable +CREATE TABLE "User" ( + "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" DATETIME NOT NULL, + "name" TEXT, + "email" TEXT NOT NULL, + "hashedPassword" TEXT, + "role" TEXT NOT NULL DEFAULT 'USER' +); + +-- CreateTable +CREATE TABLE "Session" ( + "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" DATETIME NOT NULL, + "expiresAt" DATETIME, + "handle" TEXT NOT NULL, + "hashedSessionToken" TEXT, + "antiCSRFToken" TEXT, + "publicData" TEXT, + "privateData" TEXT, + "userId" INTEGER, + CONSTRAINT "Session_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE SET NULL ON UPDATE CASCADE +); + +-- CreateTable +CREATE TABLE "Token" ( + "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" DATETIME NOT NULL, + "hashedToken" TEXT NOT NULL, + "type" TEXT NOT NULL, + "expiresAt" DATETIME NOT NULL, + "sentTo" TEXT NOT NULL, + "userId" INTEGER NOT NULL, + CONSTRAINT "Token_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE RESTRICT ON UPDATE CASCADE +); + +-- CreateIndex +CREATE UNIQUE INDEX "User_email_key" ON "User"("email"); + +-- CreateIndex +CREATE UNIQUE INDEX "Session_handle_key" ON "Session"("handle"); + +-- CreateIndex +CREATE UNIQUE INDEX "Token_hashedToken_type_key" ON "Token"("hashedToken", "type"); diff --git a/apps/next13/prisma/migrations/20230206052436_/migration.sql b/apps/next13/prisma/migrations/20230206052436_/migration.sql new file mode 100644 index 0000000000..e58b0dc73e --- /dev/null +++ b/apps/next13/prisma/migrations/20230206052436_/migration.sql @@ -0,0 +1,48 @@ +/* + Warnings: + + - You are about to drop the `Token` table. If the table is not empty, all the data it contains will be lost. + - You are about to drop the column `createdAt` on the `User` table. All the data in the column will be lost. + - You are about to drop the column `role` on the `User` table. All the data in the column will be lost. + - You are about to drop the column `updatedAt` on the `User` table. All the data in the column will be lost. + - You are about to drop the column `createdAt` on the `Session` table. All the data in the column will be lost. + - You are about to drop the column `updatedAt` on the `Session` table. All the data in the column will be lost. + +*/ +-- DropIndex +DROP INDEX "Token_hashedToken_type_key"; + +-- DropTable +PRAGMA foreign_keys=off; +DROP TABLE "Token"; +PRAGMA foreign_keys=on; + +-- RedefineTables +PRAGMA foreign_keys=OFF; +CREATE TABLE "new_User" ( + "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + "name" TEXT, + "email" TEXT NOT NULL, + "hashedPassword" TEXT +); +INSERT INTO "new_User" ("email", "hashedPassword", "id", "name") SELECT "email", "hashedPassword", "id", "name" FROM "User"; +DROP TABLE "User"; +ALTER TABLE "new_User" RENAME TO "User"; +CREATE UNIQUE INDEX "User_email_key" ON "User"("email"); +CREATE TABLE "new_Session" ( + "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + "expiresAt" DATETIME, + "handle" TEXT NOT NULL, + "hashedSessionToken" TEXT, + "antiCSRFToken" TEXT, + "publicData" TEXT, + "privateData" TEXT, + "userId" INTEGER, + CONSTRAINT "Session_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE SET NULL ON UPDATE CASCADE +); +INSERT INTO "new_Session" ("antiCSRFToken", "expiresAt", "handle", "hashedSessionToken", "id", "privateData", "publicData", "userId") SELECT "antiCSRFToken", "expiresAt", "handle", "hashedSessionToken", "id", "privateData", "publicData", "userId" FROM "Session"; +DROP TABLE "Session"; +ALTER TABLE "new_Session" RENAME TO "Session"; +CREATE UNIQUE INDEX "Session_handle_key" ON "Session"("handle"); +PRAGMA foreign_key_check; +PRAGMA foreign_keys=ON; diff --git a/apps/next13/prisma/migrations/migration_lock.toml b/apps/next13/prisma/migrations/migration_lock.toml new file mode 100644 index 0000000000..e5e5c4705a --- /dev/null +++ b/apps/next13/prisma/migrations/migration_lock.toml @@ -0,0 +1,3 @@ +# Please do not edit this file manually +# It should be added in your version-control system (i.e. Git) +provider = "sqlite" \ No newline at end of file diff --git a/apps/next13/prisma/schema.prisma b/apps/next13/prisma/schema.prisma new file mode 100644 index 0000000000..474f420ec9 --- /dev/null +++ b/apps/next13/prisma/schema.prisma @@ -0,0 +1,33 @@ +// This is your Prisma schema file, +// learn more about it in the docs: https://pris.ly/d/prisma-schema + +generator client { + provider = "prisma-client-js" +} + +datasource db { + provider = "sqlite" + url = env("DATABASE_URL") +} + +model User { + id Int @id @default(autoincrement()) + name String? + email String @unique + hashedPassword String? + + sessions Session[] +} + +model Session { + id Int @id @default(autoincrement()) + expiresAt DateTime? + handle String @unique + hashedSessionToken String? + antiCSRFToken String? + publicData String? + privateData String? + + user User? @relation(fields: [userId], references: [id]) + userId Int? +} \ No newline at end of file diff --git a/apps/next13/public/favicon.ico b/apps/next13/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..718d6fea4835ec2d246af9800eddb7ffb276240c GIT binary patch literal 25931 zcmeHv30#a{`}aL_*G&7qml|y<+KVaDM2m#dVr!KsA!#An?kSQM(q<_dDNCpjEux83 zLb9Z^XxbDl(w>%i@8hT6>)&Gu{h#Oeyszu?xtw#Zb1mO{pgX9699l+Qppw7jXaYf~-84xW z)w4x8?=youko|}Vr~(D$UXIbiXABHh`p1?nn8Po~fxRJv}|0e(BPs|G`(TT%kKVJAdg5*Z|x0leQq0 zkdUBvb#>9F()jo|T~kx@OM8$9wzs~t2l;K=woNssA3l6|sx2r3+kdfVW@e^8e*E}v zA1y5{bRi+3Z`uD3{F7LgFJDdvm;nJilkzDku>BwXH(8ItVCXk*-lSJnR?-2UN%hJ){&rlvg`CDTj z)Bzo!3v7Ou#83zEDEFcKt(f1E0~=rqeEbTnMvWR#{+9pg%7G8y>u1OVRUSoox-ovF z2Ydma(;=YuBY(eI|04{hXzZD6_f(v~H;C~y5=DhAC{MMS>2fm~1H_t2$56pc$NH8( z5bH|<)71dV-_oCHIrzrT`2s-5w_+2CM0$95I6X8p^r!gHp+j_gd;9O<1~CEQQGS8) zS9Qh3#p&JM-G8rHekNmKVewU;pJRcTAog68KYo^dRo}(M>36U4Us zfgYWSiHZL3;lpWT=zNAW>Dh#mB!_@Lg%$ms8N-;aPqMn+C2HqZgz&9~Eu z4|Kp<`$q)Uw1R?y(~S>ePdonHxpV1#eSP1B;Ogo+-Pk}6#0GsZZ5!||ev2MGdh}_m z{DeR7?0-1^zVs&`AV6Vt;r3`I`OI_wgs*w=eO%_#7Kepl{B@xiyCANc(l zzIyd4y|c6PXWq9-|KM8(zIk8LPk(>a)zyFWjhT!$HJ$qX1vo@d25W<fvZQ2zUz5WRc(UnFMKHwe1| zWmlB1qdbiA(C0jmnV<}GfbKtmcu^2*P^O?MBLZKt|As~ge8&AAO~2K@zbXelK|4T<{|y4`raF{=72kC2Kn(L4YyenWgrPiv z@^mr$t{#X5VuIMeL!7Ab6_kG$&#&5p*Z{+?5U|TZ`B!7llpVmp@skYz&n^8QfPJzL z0G6K_OJM9x+Wu2gfN45phANGt{7=C>i34CV{Xqlx(fWpeAoj^N0Biu`w+MVcCUyU* zDZuzO0>4Z6fbu^T_arWW5n!E45vX8N=bxTVeFoep_G#VmNlQzAI_KTIc{6>c+04vr zx@W}zE5JNSU>!THJ{J=cqjz+4{L4A{Ob9$ZJ*S1?Ggg3klFp!+Y1@K+pK1DqI|_gq z5ZDXVpge8-cs!o|;K73#YXZ3AShj50wBvuq3NTOZ`M&qtjj#GOFfgExjg8Gn8>Vq5 z`85n+9|!iLCZF5$HJ$Iu($dm?8~-ofu}tEc+-pyke=3!im#6pk_Wo8IA|fJwD&~~F zc16osQ)EBo58U7XDuMexaPRjU@h8tXe%S{fA0NH3vGJFhuyyO!Uyl2^&EOpX{9As0 zWj+P>{@}jxH)8|r;2HdupP!vie{sJ28b&bo!8`D^x}TE$%zXNb^X1p@0PJ86`dZyj z%ce7*{^oo+6%&~I!8hQy-vQ7E)0t0ybH4l%KltWOo~8cO`T=157JqL(oq_rC%ea&4 z2NcTJe-HgFjNg-gZ$6!Y`SMHrlj}Etf7?r!zQTPPSv}{so2e>Fjs1{gzk~LGeesX%r(Lh6rbhSo_n)@@G-FTQy93;l#E)hgP@d_SGvyCp0~o(Y;Ee8{ zdVUDbHm5`2taPUOY^MAGOw*>=s7=Gst=D+p+2yON!0%Hk` zz5mAhyT4lS*T3LS^WSxUy86q&GnoHxzQ6vm8)VS}_zuqG?+3td68_x;etQAdu@sc6 zQJ&5|4(I?~3d-QOAODHpZ=hlSg(lBZ!JZWCtHHSj`0Wh93-Uk)_S%zsJ~aD>{`A0~ z9{AG(e|q3g5B%wYKRxiL2Y$8(4w6bzchKuloQW#e&S3n+P- z8!ds-%f;TJ1>)v)##>gd{PdS2Oc3VaR`fr=`O8QIO(6(N!A?pr5C#6fc~Ge@N%Vvu zaoAX2&(a6eWy_q&UwOhU)|P3J0Qc%OdhzW=F4D|pt0E4osw;%<%Dn58hAWD^XnZD= z>9~H(3bmLtxpF?a7su6J7M*x1By7YSUbxGi)Ot0P77`}P3{)&5Un{KD?`-e?r21!4vTTnN(4Y6Lin?UkSM z`MXCTC1@4A4~mvz%Rh2&EwY))LeoT=*`tMoqcEXI>TZU9WTP#l?uFv+@Dn~b(>xh2 z;>B?;Tz2SR&KVb>vGiBSB`@U7VIWFSo=LDSb9F{GF^DbmWAfpms8Sx9OX4CnBJca3 zlj9(x!dIjN?OG1X4l*imJNvRCk}F%!?SOfiOq5y^mZW)jFL@a|r-@d#f7 z2gmU8L3IZq0ynIws=}~m^#@&C%J6QFo~Mo4V`>v7MI-_!EBMMtb%_M&kvAaN)@ZVw z+`toz&WG#HkWDjnZE!6nk{e-oFdL^$YnbOCN}JC&{$#$O27@|Tn-skXr)2ml2~O!5 zX+gYoxhoc7qoU?C^3~&!U?kRFtnSEecWuH0B0OvLodgUAi}8p1 zrO6RSXHH}DMc$&|?D004DiOVMHV8kXCP@7NKB zgaZq^^O<7PoKEp72kby@W0Z!Y*Ay{&vfg#C&gG@YVR9g?FEocMUi1gSN$+V+ayF45{a zuDZDTN}mS|;BO%gEf}pjBfN2-gIrU#G5~cucA;dokXW89%>AyXJJI z9X4UlIWA|ZYHgbI z5?oFk@A=Ik7lrEQPDH!H+b`7_Y~aDb_qa=B2^Y&Ow41cU=4WDd40dp5(QS-WMN-=Y z9g;6_-JdNU;|6cPwf$ak*aJIcwL@1n$#l~zi{c{EW?T;DaW*E8DYq?Umtz{nJ&w-M zEMyTDrC&9K$d|kZe2#ws6)L=7K+{ zQw{XnV6UC$6-rW0emqm8wJoeZK)wJIcV?dST}Z;G0Arq{dVDu0&4kd%N!3F1*;*pW zR&qUiFzK=@44#QGw7k1`3t_d8&*kBV->O##t|tonFc2YWrL7_eqg+=+k;!F-`^b8> z#KWCE8%u4k@EprxqiV$VmmtiWxDLgnGu$Vs<8rppV5EajBXL4nyyZM$SWVm!wnCj-B!Wjqj5-5dNXukI2$$|Bu3Lrw}z65Lc=1G z^-#WuQOj$hwNGG?*CM_TO8Bg-1+qc>J7k5c51U8g?ZU5n?HYor;~JIjoWH-G>AoUP ztrWWLbRNqIjW#RT*WqZgPJXU7C)VaW5}MiijYbABmzoru6EmQ*N8cVK7a3|aOB#O& zBl8JY2WKfmj;h#Q!pN%9o@VNLv{OUL?rixHwOZuvX7{IJ{(EdPpuVFoQqIOa7giLVkBOKL@^smUA!tZ1CKRK}#SSM)iQHk)*R~?M!qkCruaS!#oIL1c z?J;U~&FfH#*98^G?i}pA{ z9Jg36t4=%6mhY(quYq*vSxptes9qy|7xSlH?G=S@>u>Ebe;|LVhs~@+06N<4CViBk zUiY$thvX;>Tby6z9Y1edAMQaiH zm^r3v#$Q#2T=X>bsY#D%s!bhs^M9PMAcHbCc0FMHV{u-dwlL;a1eJ63v5U*?Q_8JO zT#50!RD619#j_Uf))0ooADz~*9&lN!bBDRUgE>Vud-i5ck%vT=r^yD*^?Mp@Q^v+V zG#-?gKlr}Eeqifb{|So?HM&g91P8|av8hQoCmQXkd?7wIJwb z_^v8bbg`SAn{I*4bH$u(RZ6*xUhuA~hc=8czK8SHEKTzSxgbwi~9(OqJB&gwb^l4+m`k*Q;_?>Y-APi1{k zAHQ)P)G)f|AyjSgcCFps)Fh6Bca*Xznq36!pV6Az&m{O8$wGFD? zY&O*3*J0;_EqM#jh6^gMQKpXV?#1?>$ml1xvh8nSN>-?H=V;nJIwB07YX$e6vLxH( zqYwQ>qxwR(i4f)DLd)-$P>T-no_c!LsN@)8`e;W@)-Hj0>nJ-}Kla4-ZdPJzI&Mce zv)V_j;(3ERN3_@I$N<^|4Lf`B;8n+bX@bHbcZTopEmDI*Jfl)-pFDvo6svPRoo@(x z);_{lY<;);XzT`dBFpRmGrr}z5u1=pC^S-{ce6iXQlLGcItwJ^mZx{m$&DA_oEZ)B{_bYPq-HA zcH8WGoBG(aBU_j)vEy+_71T34@4dmSg!|M8Vf92Zj6WH7Q7t#OHQqWgFE3ARt+%!T z?oLovLVlnf?2c7pTc)~cc^($_8nyKwsN`RA-23ed3sdj(ys%pjjM+9JrctL;dy8a( z@en&CQmnV(()bu|Y%G1-4a(6x{aLytn$T-;(&{QIJB9vMox11U-1HpD@d(QkaJdEb zG{)+6Dos_L+O3NpWo^=gR?evp|CqEG?L&Ut#D*KLaRFOgOEK(Kq1@!EGcTfo+%A&I z=dLbB+d$u{sh?u)xP{PF8L%;YPPW53+@{>5W=Jt#wQpN;0_HYdw1{ksf_XhO4#2F= zyPx6Lx2<92L-;L5PD`zn6zwIH`Jk($?Qw({erA$^bC;q33hv!d!>%wRhj# zal^hk+WGNg;rJtb-EB(?czvOM=H7dl=vblBwAv>}%1@{}mnpUznfq1cE^sgsL0*4I zJ##!*B?=vI_OEVis5o+_IwMIRrpQyT_Sq~ZU%oY7c5JMIADzpD!Upz9h@iWg_>>~j zOLS;wp^i$-E?4<_cp?RiS%Rd?i;f*mOz=~(&3lo<=@(nR!_Rqiprh@weZlL!t#NCc zO!QTcInq|%#>OVgobj{~ixEUec`E25zJ~*DofsQdzIa@5^nOXj2T;8O`l--(QyU^$t?TGY^7#&FQ+2SS3B#qK*k3`ye?8jUYSajE5iBbJls75CCc(m3dk{t?- zopcER9{Z?TC)mk~gpi^kbbu>b-+a{m#8-y2^p$ka4n60w;Sc2}HMf<8JUvhCL0B&Btk)T`ctE$*qNW8L$`7!r^9T+>=<=2qaq-;ll2{`{Rg zc5a0ZUI$oG&j-qVOuKa=*v4aY#IsoM+1|c4Z)<}lEDvy;5huB@1RJPquU2U*U-;gu z=En2m+qjBzR#DEJDO`WU)hdd{Vj%^0V*KoyZ|5lzV87&g_j~NCjwv0uQVqXOb*QrQ zy|Qn`hxx(58c70$E;L(X0uZZ72M1!6oeg)(cdKO ze0gDaTz+ohR-#d)NbAH4x{I(21yjwvBQfmpLu$)|m{XolbgF!pmsqJ#D}(ylp6uC> z{bqtcI#hT#HW=wl7>p!38sKsJ`r8}lt-q%Keqy%u(xk=yiIJiUw6|5IvkS+#?JTBl z8H5(Q?l#wzazujH!8o>1xtn8#_w+397*_cy8!pQGP%K(Ga3pAjsaTbbXJlQF_+m+-UpUUent@xM zg%jqLUExj~o^vQ3Gl*>wh=_gOr2*|U64_iXb+-111aH}$TjeajM+I20xw(((>fej-@CIz4S1pi$(#}P7`4({6QS2CaQS4NPENDp>sAqD z$bH4KGzXGffkJ7R>V>)>tC)uax{UsN*dbeNC*v}#8Y#OWYwL4t$ePR?VTyIs!wea+ z5Urmc)X|^`MG~*dS6pGSbU+gPJoq*^a=_>$n4|P^w$sMBBy@f*Z^Jg6?n5?oId6f{ z$LW4M|4m502z0t7g<#Bx%X;9<=)smFolV&(V^(7Cv2-sxbxopQ!)*#ZRhTBpx1)Fc zNm1T%bONzv6@#|dz(w02AH8OXe>kQ#1FMCzO}2J_mST)+ExmBr9cva-@?;wnmWMOk z{3_~EX_xadgJGv&H@zK_8{(x84`}+c?oSBX*Ge3VdfTt&F}yCpFP?CpW+BE^cWY0^ zb&uBN!Ja3UzYHK-CTyA5=L zEMW{l3Usky#ly=7px648W31UNV@K)&Ub&zP1c7%)`{);I4b0Q<)B}3;NMG2JH=X$U zfIW4)4n9ZM`-yRj67I)YSLDK)qfUJ_ij}a#aZN~9EXrh8eZY2&=uY%2N0UFF7<~%M zsB8=erOWZ>Ct_#^tHZ|*q`H;A)5;ycw*IcmVxi8_0Xk}aJA^ath+E;xg!x+As(M#0=)3!NJR6H&9+zd#iP(m0PIW8$ z1Y^VX`>jm`W!=WpF*{ioM?C9`yOR>@0q=u7o>BP-eSHqCgMDj!2anwH?s%i2p+Q7D zzszIf5XJpE)IG4;d_(La-xenmF(tgAxK`Y4sQ}BSJEPs6N_U2vI{8=0C_F?@7<(G; zo$~G=8p+076G;`}>{MQ>t>7cm=zGtfbdDXm6||jUU|?X?CaE?(<6bKDYKeHlz}DA8 zXT={X=yp_R;HfJ9h%?eWvQ!dRgz&Su*JfNt!Wu>|XfU&68iRikRrHRW|ZxzRR^`eIGt zIeiDgVS>IeExKVRWW8-=A=yA`}`)ZkWBrZD`hpWIxBGkh&f#ijr449~m`j6{4jiJ*C!oVA8ZC?$1RM#K(_b zL9TW)kN*Y4%^-qPpMP7d4)o?Nk#>aoYHT(*g)qmRUb?**F@pnNiy6Fv9rEiUqD(^O zzyS?nBrX63BTRYduaG(0VVG2yJRe%o&rVrLjbxTaAFTd8s;<<@Qs>u(<193R8>}2_ zuwp{7;H2a*X7_jryzriZXMg?bTuegABb^87@SsKkr2)0Gyiax8KQWstw^v#ix45EVrcEhr>!NMhprl$InQMzjSFH54x5k9qHc`@9uKQzvL4ihcq{^B zPrVR=o_ic%Y>6&rMN)hTZsI7I<3&`#(nl+3y3ys9A~&^=4?PL&nd8)`OfG#n zwAMN$1&>K++c{^|7<4P=2y(B{jJsQ0a#U;HTo4ZmWZYvI{+s;Td{Yzem%0*k#)vjpB zia;J&>}ICate44SFYY3vEelqStQWFihx%^vQ@Do(sOy7yR2@WNv7Y9I^yL=nZr3mb zXKV5t@=?-Sk|b{XMhA7ZGB@2hqsx}4xwCW!in#C zI@}scZlr3-NFJ@NFaJlhyfcw{k^vvtGl`N9xSo**rDW4S}i zM9{fMPWo%4wYDG~BZ18BD+}h|GQKc-g^{++3MY>}W_uq7jGHx{mwE9fZiPCoxN$+7 zrODGGJrOkcPQUB(FD5aoS4g~7#6NR^ma7-!>mHuJfY5kTe6PpNNKC9GGRiu^L31uG z$7v`*JknQHsYB!Tm_W{a32TM099djW%5e+j0Ve_ct}IM>XLF1Ap+YvcrLV=|CKo6S zb+9Nl3_YdKP6%Cxy@6TxZ>;4&nTneadr z_ES90ydCev)LV!dN=#(*f}|ZORFdvkYBni^aLbUk>BajeWIOcmHP#8S)*2U~QKI%S zyrLmtPqb&TphJ;>yAxri#;{uyk`JJqODDw%(Z=2`1uc}br^V%>j!gS)D*q*f_-qf8&D;W1dJgQMlaH5er zN2U<%Smb7==vE}dDI8K7cKz!vs^73o9f>2sgiTzWcwY|BMYHH5%Vn7#kiw&eItCqa zIkR2~Q}>X=Ar8W|^Ms41Fm8o6IB2_j60eOeBB1Br!boW7JnoeX6Gs)?7rW0^5psc- zjS16yb>dFn>KPOF;imD}e!enuIniFzv}n$m2#gCCv4jM#ArwlzZ$7@9&XkFxZ4n!V zj3dyiwW4Ki2QG{@i>yuZXQizw_OkZI^-3otXC{!(lUpJF33gI60ak;Uqitp74|B6I zgg{b=Iz}WkhCGj1M=hu4#Aw173YxIVbISaoc z-nLZC*6Tgivd5V`K%GxhBsp@SUU60-rfc$=wb>zdJzXS&-5(NRRodFk;Kxk!S(O(a0e7oY=E( zAyS;Ow?6Q&XA+cnkCb{28_1N8H#?J!*$MmIwLq^*T_9-z^&UE@A(z9oGYtFy6EZef LrJugUA?W`A8`#=m literal 0 HcmV?d00001 diff --git a/apps/next13/public/vercel.svg b/apps/next13/public/vercel.svg new file mode 100644 index 0000000000..fbf0e25a65 --- /dev/null +++ b/apps/next13/public/vercel.svg @@ -0,0 +1,4 @@ + + + \ No newline at end of file diff --git a/apps/next13/src/auth/components/LoginForm.tsx b/apps/next13/src/auth/components/LoginForm.tsx new file mode 100644 index 0000000000..ee539c21b9 --- /dev/null +++ b/apps/next13/src/auth/components/LoginForm.tsx @@ -0,0 +1,61 @@ +import {AuthenticationError, PromiseReturnType} from "blitz" +import Link from "next/link" +import {LabeledTextField} from "../../core/components/LabeledTextField" +import {Form, FORM_ERROR} from "../../core/components/Form" +import login from "../../auth/mutations/login" +import {Login} from "../../auth/validations" +import {useMutation} from "@blitzjs/rpc" +import {startTransition} from "react" +import {useRouter} from "next/navigation" + +type LoginFormProps = { + onSuccess?: (user: PromiseReturnType) => void +} + +export const LoginForm = (props: LoginFormProps) => { + const [loginMutation] = useMutation(login) + const router = useRouter() + return ( +
+

Login

+ +
{ + try { + const user = await loginMutation(values) + props.onSuccess?.(user) + startTransition(() => { + // Refresh the current route and fetch new data from the server without + // losing client-side browser or React state. + router.refresh() + }) + } catch (error: any) { + if (error instanceof AuthenticationError) { + return {[FORM_ERROR]: "Sorry, those credentials are invalid"} + } else { + return { + [FORM_ERROR]: + "Sorry, we had an unexpected error. Please try again. - " + error.toString(), + } + } + } + }} + > + + + + + +
+ Or Sign Up +
+
+ ) +} + +export default LoginForm diff --git a/apps/next13/src/auth/components/SignupForm.tsx b/apps/next13/src/auth/components/SignupForm.tsx new file mode 100644 index 0000000000..6a0703f48e --- /dev/null +++ b/apps/next13/src/auth/components/SignupForm.tsx @@ -0,0 +1,51 @@ +import {LabeledTextField} from "../../core/components/LabeledTextField" +import {Form, FORM_ERROR} from "../../core/components/Form" +import signup from "../../auth/mutations/signup" +import {Signup} from "../../auth/validations" +import {useMutation} from "@blitzjs/rpc" +import {startTransition} from "react" +import {useRouter} from "next/navigation" + +type SignupFormProps = { + onSuccess?: () => void +} + +export const SignupForm = (props: SignupFormProps) => { + const [signupMutation] = useMutation(signup) + const router = useRouter() + + return ( +
+

Create an Account

+ +
{ + try { + await signupMutation(values) + props.onSuccess?.() + startTransition(() => { + // Refresh the current route and fetch new data from the server without + // losing client-side browser or React state. + router.refresh() + }) + } catch (error: any) { + if (error.code === "P2002" && error.meta?.target?.includes("email")) { + // Error "P2002" comes from Prisma (https://www.prisma.io/docs/reference/api-reference/error-reference#p2002) + return {email: "This email is already being used"} + } else { + return {[FORM_ERROR]: error.toString()} + } + } + }} + > + + + +
+ ) +} + +export default SignupForm diff --git a/apps/next13/src/auth/mutations/changePassword.ts b/apps/next13/src/auth/mutations/changePassword.ts new file mode 100644 index 0000000000..d26d9cc325 --- /dev/null +++ b/apps/next13/src/auth/mutations/changePassword.ts @@ -0,0 +1,26 @@ +import {NotFoundError} from "blitz" +import db from "../../../prisma" +// import {authenticateUser} from "./login" +import {ChangePassword} from "../validations" +import {resolver} from "@blitzjs/rpc" +// import {SecurePassword} from "@blitzjs/auth" + +export default resolver.pipe( + //@ts-ignore + resolver.zod(ChangePassword), + resolver.authorize(), + async ({currentPassword, newPassword}, ctx) => { + const user = await db.user.findFirst({where: {id: ctx.session.userId}}) + if (!user) throw new NotFoundError() + + // await authenticateUser(user.email, currentPassword) + + // const hashedPassword = await SecurePassword.hash(newPassword.trim()) + await db.user.update({ + where: {id: user.id}, + data: {hashedPassword: newPassword}, + }) + + return true + }, +) diff --git a/apps/next13/src/auth/mutations/forgotPassword.test.ts b/apps/next13/src/auth/mutations/forgotPassword.test.ts new file mode 100644 index 0000000000..a30de6f1fb --- /dev/null +++ b/apps/next13/src/auth/mutations/forgotPassword.test.ts @@ -0,0 +1,64 @@ +import {vi, describe, it, beforeEach} from "vitest" +import db from "db" +import {hash256} from "@blitzjs/auth" +import forgotPassword from "./forgotPassword" +import previewEmail from "preview-email" +import {Ctx} from "@blitzjs/next" + +beforeEach(async () => { + await db.$reset() +}) + +const generatedToken = "plain-token" +vi.mock("@blitzjs/auth", async () => { + const auth = await vi.importActual>("@blitzjs/auth")! + return { + ...auth, + generateToken: () => generatedToken, + } +}) + +vi.mock("preview-email", () => ({default: vi.fn()})) + +describe("forgotPassword mutation", () => { + it("does not throw error if user doesn't exist", async () => { + await expect(forgotPassword({email: "no-user@email.com"}, {} as Ctx)).resolves.not.toThrow() + }) + + it("works correctly", async () => { + // Create test user + const user = await db.user.create({ + data: { + email: "user@example.com", + tokens: { + // Create old token to ensure it's deleted + create: { + type: "RESET_PASSWORD", + hashedToken: "token", + expiresAt: new Date(), + sentTo: "user@example.com", + }, + }, + }, + include: {tokens: true}, + }) + + // Invoke the mutation + await forgotPassword({email: user.email}, {} as Ctx) + + const tokens = await db.token.findMany({where: {userId: user.id}}) + const token = tokens[0] + if (!user.tokens[0]) throw new Error("Missing user token") + if (!token) throw new Error("Missing token") + + // delete's existing tokens + expect(tokens.length).toBe(1) + + expect(token.id).not.toBe(user.tokens[0].id) + expect(token.type).toBe("RESET_PASSWORD") + expect(token.sentTo).toBe(user.email) + expect(token.hashedToken).toBe(hash256(generatedToken)) + expect(token.expiresAt > new Date()).toBe(true) + expect(previewEmail).toBeCalled() + }) +}) diff --git a/apps/next13/src/auth/mutations/forgotPassword.ts b/apps/next13/src/auth/mutations/forgotPassword.ts new file mode 100644 index 0000000000..c00b23eefa --- /dev/null +++ b/apps/next13/src/auth/mutations/forgotPassword.ts @@ -0,0 +1,40 @@ +import {generateToken, hash256} from "@blitzjs/auth" +import {resolver} from "@blitzjs/rpc" +import db from "../../../prisma" +import {ForgotPassword} from "../validations" + +const RESET_PASSWORD_TOKEN_EXPIRATION_IN_HOURS = 4 +//@ts-ignore +export default resolver.pipe(resolver.zod(ForgotPassword), async ({email}) => { + // 1. Get the user + const user = await db.user.findFirst({where: {email: email.toLowerCase()}}) + + // 2. Generate the token and expiration date. + const token = generateToken() + const hashedToken = hash256(token) + const expiresAt = new Date() + expiresAt.setHours(expiresAt.getHours() + RESET_PASSWORD_TOKEN_EXPIRATION_IN_HOURS) + + // 3. If user with this email was found + if (user) { + // 4. Delete any existing password reset tokens + await db.token.deleteMany({where: {type: "RESET_PASSWORD", userId: user.id}}) + // 5. Save this new token in the database. + await db.token.create({ + data: { + user: {connect: {id: user.id}}, + type: "RESET_PASSWORD", + expiresAt, + hashedToken, + sentTo: user.email, + }, + }) + // 6. Send the email + } else { + // 7. If no user found wait the same time so attackers can't tell the difference + await new Promise((resolve) => setTimeout(resolve, 750)) + } + + // 8. Return the same result whether a password reset email was sent or not + return +}) diff --git a/apps/next13/src/auth/mutations/login.ts b/apps/next13/src/auth/mutations/login.ts new file mode 100644 index 0000000000..e8addbfcf1 --- /dev/null +++ b/apps/next13/src/auth/mutations/login.ts @@ -0,0 +1,31 @@ +import {resolver} from "@blitzjs/rpc" +// import {AuthenticationError} from "blitz" +import db from "../../../prisma" +import {Login} from "../validations" + +// export const authenticateUser = async (rawEmail: string, rawPassword: string) => { +// const {email, password} = Login.parse({email: rawEmail, password: rawPassword}) +// const user = await db.user.findFirst({where: {email}}) +// if (!user) throw new AuthenticationError() + +// const result = await SecurePassword.verify(user.hashedPassword, password) + +// if (result === SecurePassword.VALID_NEEDS_REHASH) { +// // Upgrade hashed password with a more secure hash +// const improvedHash = await SecurePassword.hash(password) +// await db.user.update({where: {id: user.id}, data: {hashedPassword: improvedHash}}) +// } + +// const {hashedPassword, ...rest} = user +// return rest +// } +//@ts-ignore +export default resolver.pipe(resolver.zod(Login), async ({email, password}, ctx) => { + // This throws an error if credentials are invalid + // const user = await authenticateUser(email, password) + const user = await db.user.findFirst({where: {email}}) + //@ts-ignore + await ctx.session.$create({userId: user.id, role: user.role}) + console.log("user", user) + return user +}) diff --git a/apps/next13/src/auth/mutations/logout.ts b/apps/next13/src/auth/mutations/logout.ts new file mode 100644 index 0000000000..ca7e6de856 --- /dev/null +++ b/apps/next13/src/auth/mutations/logout.ts @@ -0,0 +1,5 @@ +import {Ctx} from "blitz" + +export default async function logout(_: any, ctx: Ctx) { + return await ctx.session.$revoke() +} diff --git a/apps/next13/src/auth/mutations/resetPassword.test.ts b/apps/next13/src/auth/mutations/resetPassword.test.ts new file mode 100644 index 0000000000..6fa826c8e1 --- /dev/null +++ b/apps/next13/src/auth/mutations/resetPassword.test.ts @@ -0,0 +1,83 @@ +import {vi, describe, it, beforeEach, expect} from "vitest" +import resetPassword from "./resetPassword" +import db from "db" +import {SecurePassword, hash256} from "@blitzjs/auth" + +beforeEach(async () => { + await db.$reset() +}) + +const mockCtx: any = { + session: { + $create: vi.fn(), + }, +} + +describe("resetPassword mutation", () => { + it("works correctly", async () => { + expect(true).toBe(true) + + // Create test user + const goodToken = "randomPasswordResetToken" + const expiredToken = "expiredRandomPasswordResetToken" + const future = new Date() + future.setHours(future.getHours() + 4) + const past = new Date() + past.setHours(past.getHours() - 4) + + const user = await db.user.create({ + data: { + email: "user@example.com", + tokens: { + // Create old token to ensure it's deleted + create: [ + { + type: "RESET_PASSWORD", + hashedToken: hash256(expiredToken), + expiresAt: past, + sentTo: "user@example.com", + }, + { + type: "RESET_PASSWORD", + hashedToken: hash256(goodToken), + expiresAt: future, + sentTo: "user@example.com", + }, + ], + }, + }, + include: {tokens: true}, + }) + + const newPassword = "newPassword" + + // Non-existent token + await expect( + resetPassword({token: "no-token", password: "", passwordConfirmation: ""}, mockCtx), + ).rejects.toThrowError() + + // Expired token + await expect( + resetPassword( + {token: expiredToken, password: newPassword, passwordConfirmation: newPassword}, + mockCtx, + ), + ).rejects.toThrowError() + + // Good token + await resetPassword( + {token: goodToken, password: newPassword, passwordConfirmation: newPassword}, + mockCtx, + ) + + // Delete's the token + const numberOfTokens = await db.token.count({where: {userId: user.id}}) + expect(numberOfTokens).toBe(0) + + // Updates user's password + const updatedUser = await db.user.findFirst({where: {id: user.id}}) + expect(await SecurePassword.verify(updatedUser!.hashedPassword, newPassword)).toBe( + SecurePassword.VALID, + ) + }) +}) diff --git a/apps/next13/src/auth/mutations/resetPassword.ts b/apps/next13/src/auth/mutations/resetPassword.ts new file mode 100644 index 0000000000..f44dabe736 --- /dev/null +++ b/apps/next13/src/auth/mutations/resetPassword.ts @@ -0,0 +1,50 @@ +import {hash256} from "@blitzjs/auth" +import db from "../../../prisma" +import {ResetPassword} from "../validations" +import login from "./login" + +export class ResetPasswordError extends Error { + name = "ResetPasswordError" + message = "Reset password link is invalid or it has expired." +} + +export default async function resetPassword(input: any, ctx: any) { + ResetPassword.parse(input) + // 1. Try to find this token in the database + const hashedToken = hash256(input.token) + const possibleToken = await db.token.findFirst({ + where: {hashedToken, type: "RESET_PASSWORD"}, + include: {user: true}, + }) + + // 2. If token not found, error + if (!possibleToken) { + throw new ResetPasswordError() + } + const savedToken = possibleToken + + // 3. Delete token so it can't be used again + await db.token.delete({where: {id: savedToken.id}}) + + // 4. If token has expired, error + if (savedToken.expiresAt < new Date()) { + throw new ResetPasswordError() + } + + // 5. Since token is valid, now we can update the user's password + // const hashedPassword = await SecurePassword.hash(input.password.trim()) + const user = await db.user.update({ + where: {id: savedToken.userId}, + data: { + hashedPassword: input.password, + }, + }) + + // 6. Revoke all existing login sessions for this user + await db.session.deleteMany({where: {userId: user.id}}) + + // 7. Now log the user in with the new credentials + await login({email: user.email, password: input.password}, ctx) + + return true +} diff --git a/apps/next13/src/auth/mutations/signup.ts b/apps/next13/src/auth/mutations/signup.ts new file mode 100644 index 0000000000..29b63e027b --- /dev/null +++ b/apps/next13/src/auth/mutations/signup.ts @@ -0,0 +1,19 @@ +import db from "../../../prisma" +// import {SecurePassword} from "@blitzjs/auth" + +export default async function signup(input: {password: string; email: string}, ctx: any) { + const blitzContext = ctx + // const hashedPassword = await SecurePassword.hash((input.password as string) || "test-password") + const hashedPassword = (input.password as string) || "test-password" + const email = (input.email as string) || "test" + Math.random() + "@test.com" + const user = await db.user.create({ + data: {email, hashedPassword}, + }) + + await blitzContext.session.$create({ + userId: user.id, + role: "user", + }) + + return {userId: blitzContext.session.userId, ...user, email: input.email} +} diff --git a/apps/next13/src/auth/validations.ts b/apps/next13/src/auth/validations.ts new file mode 100644 index 0000000000..f13218b685 --- /dev/null +++ b/apps/next13/src/auth/validations.ts @@ -0,0 +1,42 @@ +import {z} from "zod" + +export const email = z + .string() + .email() + .transform((str) => str.toLowerCase().trim()) + +export const password = z + .string() + .min(10) + .max(100) + .transform((str) => str.trim()) + +export const Signup = z.object({ + email, + password, +}) + +export const Login = z.object({ + email, + password: z.string(), +}) + +export const ForgotPassword = z.object({ + email, +}) + +export const ResetPassword = z + .object({ + password: password, + passwordConfirmation: password, + token: z.string(), + }) + .refine((data) => data.password === data.passwordConfirmation, { + message: "Passwords don't match", + path: ["passwordConfirmation"], // set the path of the error + }) + +export const ChangePassword = z.object({ + currentPassword: z.string(), + newPassword: password, +}) diff --git a/apps/next13/src/blitz-client.ts b/apps/next13/src/blitz-client.ts new file mode 100644 index 0000000000..6dcdfb637e --- /dev/null +++ b/apps/next13/src/blitz-client.ts @@ -0,0 +1,13 @@ +"use client" +import {AuthClientPlugin} from "@blitzjs/auth" +import {setupBlitzClient} from "@blitzjs/next" +import {BlitzRpcPlugin} from "@blitzjs/rpc" + +export const {withBlitz, useSession, queryClient, BlitzProvider} = setupBlitzClient({ + plugins: [ + AuthClientPlugin({ + cookiePrefix: "web-cookie-prefix", + }), + BlitzRpcPlugin({}), + ], +}) diff --git a/apps/next13/src/blitz-server.ts b/apps/next13/src/blitz-server.ts new file mode 100644 index 0000000000..6e4f92c840 --- /dev/null +++ b/apps/next13/src/blitz-server.ts @@ -0,0 +1,25 @@ +import type {BlitzCliConfig} from "blitz" +import {setupBlitzServer} from "@blitzjs/next" +import {AuthServerPlugin, PrismaStorage} from "@blitzjs/auth" +import db from "../prisma" +import {simpleRolesIsAuthorized} from "@blitzjs/auth" +import {BlitzLogger} from "blitz" +import {RpcServerPlugin} from "@blitzjs/rpc" + +const {api, getBlitzContext, useAuthenticatedBlitzContext, invoke} = setupBlitzServer({ + plugins: [ + AuthServerPlugin({ + cookiePrefix: "web-cookie-prefix", + storage: PrismaStorage(db), + isAuthorized: simpleRolesIsAuthorized, + }), + RpcServerPlugin({}), + ], + logger: BlitzLogger({}), +}) + +export {api, getBlitzContext, useAuthenticatedBlitzContext, invoke} + +export const cliConfig: BlitzCliConfig = { + customTemplates: "src/templates", +} diff --git a/apps/next13/src/core/components/Form.tsx b/apps/next13/src/core/components/Form.tsx new file mode 100644 index 0000000000..049a6536cb --- /dev/null +++ b/apps/next13/src/core/components/Form.tsx @@ -0,0 +1,83 @@ +import {useState, ReactNode, PropsWithoutRef} from "react" +import {FormProvider, useForm, UseFormProps} from "react-hook-form" +import {zodResolver} from "@hookform/resolvers/zod" +import {z} from "zod" + +export interface FormProps> + extends Omit, "onSubmit"> { + /** All your form fields */ + children?: ReactNode + /** Text to display in the submit button */ + submitText?: string + schema?: S + onSubmit: (values: z.infer) => Promise + initialValues?: UseFormProps>["defaultValues"] +} + +interface OnSubmitResult { + FORM_ERROR?: string + [prop: string]: any +} + +export const FORM_ERROR = "FORM_ERROR" + +export function Form>({ + children, + submitText, + schema, + initialValues, + onSubmit, + ...props +}: FormProps) { + const ctx = useForm>({ + mode: "onBlur", + resolver: schema ? zodResolver(schema) : undefined, + defaultValues: initialValues, + }) + const [formError, setFormError] = useState(null) + + return ( + +
{ + const result = (await onSubmit(values)) || {} + for (const [key, value] of Object.entries(result)) { + if (key === FORM_ERROR) { + setFormError(value) + } else { + ctx.setError(key as any, { + type: "submit", + message: value, + }) + } + } + })} + className="form" + {...props} + > + {/* Form fields supplied as children are rendered here */} + {children} + + {formError && ( +
+ {formError} +
+ )} + + {submitText && ( + + )} + + +
+
+ ) +} + +export default Form diff --git a/apps/next13/src/core/components/LabeledTextField.tsx b/apps/next13/src/core/components/LabeledTextField.tsx new file mode 100644 index 0000000000..69b6697205 --- /dev/null +++ b/apps/next13/src/core/components/LabeledTextField.tsx @@ -0,0 +1,63 @@ +import {forwardRef, PropsWithoutRef, ComponentPropsWithoutRef} from "react" +import {useFormContext} from "react-hook-form" +import {ErrorMessage} from "@hookform/error-message" + +export interface LabeledTextFieldProps extends PropsWithoutRef { + /** Field name. */ + name: string + /** Field label. */ + label: string + /** Field type. Doesn't include radio buttons and checkboxes */ + type?: "text" | "password" | "email" | "number" + outerProps?: PropsWithoutRef + labelProps?: ComponentPropsWithoutRef<"label"> +} + +export const LabeledTextField = forwardRef( + ({label, outerProps, labelProps, name, ...props}, ref) => { + const { + register, + formState: {isSubmitting, errors}, + } = useFormContext() + + return ( +
+ + + ( +
+ {message} +
+ )} + errors={errors} + name={name} + /> + + +
+ ) + }, +) + +LabeledTextField.displayName = "LabeledTextField" + +export default LabeledTextField diff --git a/apps/next13/src/pages/api/auth/session.ts b/apps/next13/src/pages/api/auth/session.ts new file mode 100644 index 0000000000..46a08f3cfc --- /dev/null +++ b/apps/next13/src/pages/api/auth/session.ts @@ -0,0 +1,8 @@ +import {api} from "../../../blitz-server" + +export default api((req, res, ctx) => { + // console.log("session", ctx.session) + //get cookie + console.dir("cookie", req.headers.cookie) + res.json({session: ctx.session.userId}) +}) diff --git a/apps/next13/src/pages/api/rpc/[[...blitz]].ts b/apps/next13/src/pages/api/rpc/[[...blitz]].ts new file mode 100644 index 0000000000..1c5d84ba25 --- /dev/null +++ b/apps/next13/src/pages/api/rpc/[[...blitz]].ts @@ -0,0 +1,4 @@ +import {rpcHandler} from "@blitzjs/rpc" +import {api} from "../../../blitz-server" + +export default api(rpcHandler({onError: console.log})) diff --git a/apps/next13/src/styles/Home.module.css b/apps/next13/src/styles/Home.module.css new file mode 100644 index 0000000000..3453d1ee11 --- /dev/null +++ b/apps/next13/src/styles/Home.module.css @@ -0,0 +1,303 @@ +.container { + display: flex; + flex-direction: column; + height: 100vh; +} + +.main { + flex: 1; + padding: 0rem 1rem; + display: flex; + flex-direction: column; +} + +.wrapper { + display: flex; + flex-direction: column; + gap: 2rem; +} + +.frost { + background: rgba(255, 255, 255, 0.2); + border-radius: 16px; + box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1); + backdrop-filter: blur(5px); + -webkit-backdrop-filter: blur(5px); + border: 1px solid rgba(255, 255, 255, 0.31); +} + +.header { + display: flex; + flex-direction: column; + padding: 4rem 0rem 2rem 0rem; + text-align: center; + gap: 2rem; +} + +.header h1 { + max-width: 620px; + align-self: center; +} + +.body { + composes: frost; + border-radius: var(--border-radius); + display: flex; + padding: 1rem; + width: 100%; + flex-direction: row; + align-self: center; + max-width: var(--screen-width); +} + +.instructions { + display: inline-flex; + flex-direction: column; + padding: 1rem; + width: 100%; +} + +.globe { + position: fixed; + width: 350vmin; + height: 75vmin; + left: 20%; + top: 50%; + transform: translate(-50%, calc(-50% + 40px)); + z-index: -1; + border-radius: 100%; + background-image: radial-gradient( + 95.63% 95.63% at 95.92% 0%, + rgba(255, 255, 255, 0.62) 0%, + #8155ff38 60.42%, + #002fff5c 169% + ); + filter: blur(8vmin); +} + +.footer { + display: flex; + padding: 2rem 0; + justify-content: center; + align-items: center; +} + +.footer span { + margin-right: 0.2rem; +} + +.code { + display: flex; + align-items: center; + gap: 0.5rem; +} + +.code span { + background: rgba(124, 58, 237, 50%); + border-radius: 50rem; + font-size: 14px; + font-weight: 500; + padding: 17px; + width: 20px; + height: 20px; + display: flex; + align-items: center; + justify-content: center; + color: rgb(57, 33, 97); +} + +.code pre { + background: rgba(124, 58, 237, 12%); + border-radius: 4px; + padding: 0.7em 1.4em; + text-align: center; +} + +.code code { + font-size: 0.86em; + font-weight: bold; + color: rgb(124, 58, 237); + font-family: Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, + Bitstream Vera Sans Mono, Courier New, monospace; +} + +.toastContainer { + border: 1px solid #edff; + padding: 0 1rem; + background: #eeff; + color: #62af; + text-align: center; +} + +.toastContainer strong { + color: rgb(124, 58, 237); +} + +.textLink { + color: rgb(124, 58, 237); + background: linear-gradient(to right, rgba(231, 216, 246, 1), rgba(231, 216, 246, 1)), + linear-gradient(to right, rgba(99, 1, 235, 1), rgba(124, 58, 237, 1), rgba(231, 216, 246, 1)); + background-size: 100% 1px, 0 1px; + background-position: 100% 100%, 0 100%; + background-repeat: no-repeat; + transition: background-size 400ms; +} + +.textLink:hover, +.textLink:focus, +.textLink:active { + background-size: 0 1px, 100% 1px; +} + +.arrowIcon { + box-sizing: border-box; + display: block; + width: 8px; + height: 8px; + border-top: 2px solid; + transform: scale(var(--ggs, 1)); + border-right: 2px solid; + position: absolute; + right: 6px; + top: 6px; + color: #b1a5c4; +} + +.arrowIcon::after { + content: ""; + display: block; + box-sizing: border-box; + position: absolute; + width: 8px; + height: 2px; + background: currentColor; + transform: rotate(-45deg); + top: 2px; + right: -1px; +} + +.buttonContainer { + display: flex; + flex-direction: row; + gap: 1rem; + justify-content: center; + align-items: center; + flex: 1; +} + +.button { + background: linear-gradient(to top, rgb(124, 58, 237), rgb(117, 81, 236)); + border: 1px solid rgb(231, 216, 246); + color: white; + text-shadow: rgba(0, 0, 0, 0.25) 0px 3px 8px; + padding: 0 24px; + height: 48px; + width: 200px; + max-width: 300px; + position: relative; + display: inline-flex; + justify-content: center; + align-items: center; + flex-shrink: 0; + user-select: none; + white-space: nowrap; + border-radius: 0.75rem; + border-bottom-left-radius: 0px; + font-size: 15px; + transition: all 0.3s ease 0s; + cursor: pointer; +} + +.button:hover { + color: white; + text-shadow: rgb(0 0 0 / 56%) 0px 3px 12px; + box-shadow: rgb(80 63 205 / 50%) 0px 1px 40px; +} + +.loginButton { + composes: button; + background: rgb(248 250 252); + border: 1px solid rgb(231, 216, 246); + color: rgb(30 41 59); + text-shadow: none; +} + +.loginButton:hover { + color: rgb(30 41 59); + text-shadow: none; +} + +.card:hover .arrowIcon { + color: #7450ec; +} + +.linkGrid { + display: flex; + flex-direction: column; + flex-wrap: wrap; + gap: 1rem; +} + +.card { + composes: frost; + padding: 1rem 0rem; + text-align: center; + color: inherit; + text-decoration: none; + border-radius: 10px; + border-bottom-left-radius: 0px; + transition: color 0.15s ease, border-color 0.15s ease; + max-width: 200px; + min-width: 200px; + display: flex; + flex-direction: row; + justify-content: center; +} + +.card:hover, +.card:focus, +.card:active { + color: #7450ec; + border-color: #7450ec; +} + +.card h2 { + margin: 0 0 1rem 0; + font-size: 1.5rem; +} + +.card p { + margin: 0; + font-size: 1.25rem; + line-height: 1.5; +} + +.logo { + flex: 1; + padding: 1rem 2rem; +} + +.logo svg { + height: 100%; + width: 200px; + fill: #7450ec; +} + +/* MOBILE */ +@media (max-width: 800px) { + .linkGrid { + width: 100%; + } + + .card { + max-width: 100%; + } + + .body { + flex-wrap: wrap; + } + + .buttonContainer { + flex-wrap: wrap; + } +} diff --git a/apps/next13/src/styles/globals.css b/apps/next13/src/styles/globals.css new file mode 100644 index 0000000000..2764411401 --- /dev/null +++ b/apps/next13/src/styles/globals.css @@ -0,0 +1,25 @@ +:root { + --border-radius: 0.75rem; + --screen-width: 90vmin; +} + +html, +body { + padding: 0; + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, + Fira Sans, Droid Sans, Helvetica Neue, sans-serif; +} + +a { + color: inherit; + text-decoration: none; +} + +i { + font-size: 0.8rem; +} + +* { + box-sizing: border-box; +} diff --git a/apps/next13/src/users/hooks/useCurrentUser.ts b/apps/next13/src/users/hooks/useCurrentUser.ts new file mode 100644 index 0000000000..fb0b085d6f --- /dev/null +++ b/apps/next13/src/users/hooks/useCurrentUser.ts @@ -0,0 +1,7 @@ +import {useQuery} from "@blitzjs/rpc" +import getCurrentUser from "../../../src/users/queries/getCurrentUser" + +export const useCurrentUser = () => { + const [user] = useQuery(getCurrentUser, null) + return user +} diff --git a/apps/next13/src/users/queries/getCurrentUser.ts b/apps/next13/src/users/queries/getCurrentUser.ts new file mode 100644 index 0000000000..9cc86e0737 --- /dev/null +++ b/apps/next13/src/users/queries/getCurrentUser.ts @@ -0,0 +1,16 @@ +import {Ctx} from "blitz" +import db from "../../../prisma" + +export default async function getCurrentUser(input: null, ctx: Ctx) { + if (!ctx.session.userId) return null + const user = await db.user.findFirst({ + where: {id: ctx.session.userId}, + select: {id: true, name: true, email: true}, + }) + + return user +} + +export const config = { + httpMethod: "GET", +} diff --git a/apps/next13/tsconfig.json b/apps/next13/tsconfig.json new file mode 100644 index 0000000000..6ef5cd577f --- /dev/null +++ b/apps/next13/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ] + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +} diff --git a/apps/next13/types.ts b/apps/next13/types.ts new file mode 100644 index 0000000000..f0078d6e6d --- /dev/null +++ b/apps/next13/types.ts @@ -0,0 +1,12 @@ +import {SimpleRolesIsAuthorized} from "@blitzjs/auth" +import {User} from "./prisma" + +declare module "@blitzjs/auth" { + export interface Session { + isAuthorized: SimpleRolesIsAuthorized + PublicData: { + userId: User["id"] + email: User["email"] + } + } +} From e6ce94c724b2f7fe5d74ff25c31b01cd1f44eded Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Mon, 16 Oct 2023 22:36:23 +0530 Subject: [PATCH 54/95] Apply suggestions from code review --- apps/next13/app/page.tsx | 1 - apps/next13/src/blitz-server.ts | 9 ++++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/apps/next13/app/page.tsx b/apps/next13/app/page.tsx index c46dbc6e9a..c5649e5372 100644 --- a/apps/next13/app/page.tsx +++ b/apps/next13/app/page.tsx @@ -9,7 +9,6 @@ export default async function Home() { redirectTo: "/auth/login", }) const user = await invoke(getCurrentUser, null) - console.log("user", user) return (
Date: Mon, 16 Oct 2023 22:41:40 +0530 Subject: [PATCH 55/95] pnpm lock --- pnpm-lock.yaml | 568 ++++++------------------------------------------- 1 file changed, 62 insertions(+), 506 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1741a7824a..a069b0d4e6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -71,11 +71,8 @@ importers: specifier: 2.9.10 version: 2.9.10(react-hook-form@7.39.1) "@prisma/client": - specifier: ^4.14.0 - version: 4.14.0(prisma@4.6.1) - "@tanstack/react-form": - specifier: 0.0.10 - version: 0.0.10(react-dom@18.2.0)(react@18.2.0) + specifier: ^4.5.0 + version: 4.6.1(prisma@4.6.1) "@tanstack/react-query": specifier: 4.0.10 version: 4.0.10(react-dom@18.2.0)(react@18.2.0) @@ -1613,7 +1610,7 @@ importers: version: link:../blitz next: specifier: 13.5.2 - version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) + version: 13.5.2(@babel/core@7.20.2)(react-dom@18.2.0)(react@18.2.0) next-auth: specifier: 4.18.7 version: 4.18.7(next@13.5.2)(react-dom@18.2.0)(react@18.2.0) @@ -1783,7 +1780,7 @@ importers: version: link:../blitz next: specifier: 13.5.2 - version: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) + version: 13.5.2(@babel/core@7.20.2)(react-dom@18.2.0)(react@18.2.0) react: specifier: 18.2.0 version: 18.2.0 @@ -2469,7 +2466,7 @@ packages: debug: 4.3.3(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.1 - semver: 6.3.0 + semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -2562,7 +2559,7 @@ packages: "@babel/core": 7.12.10(supports-color@8.1.1) "@babel/helper-validator-option": 7.16.7 browserslist: 4.20.3 - semver: 6.3.0 + semver: 6.3.1 /@babel/helper-compilation-targets@7.18.2(@babel/core@7.18.2): resolution: @@ -2577,7 +2574,7 @@ packages: "@babel/core": 7.18.2(supports-color@8.1.1) "@babel/helper-validator-option": 7.16.7 browserslist: 4.20.3 - semver: 6.3.0 + semver: 6.3.1 /@babel/helper-compilation-targets@7.20.0(@babel/core@7.20.2): resolution: @@ -2592,7 +2589,7 @@ packages: "@babel/core": 7.20.2(supports-color@8.1.1) "@babel/helper-validator-option": 7.18.6 browserslist: 4.21.4 - semver: 6.3.0 + semver: 6.3.1 /@babel/helper-create-class-features-plugin@7.17.12(@babel/core@7.12.10): resolution: @@ -4554,7 +4551,6 @@ packages: engines: {node: ">=6.9.0"} dependencies: regenerator-runtime: 0.14.0 - dev: true /@babel/standalone@7.18.9: resolution: @@ -4705,7 +4701,7 @@ packages: integrity: sha512-gp6nIdVdfYdwKww2+f8whckKmvfE4JEm4jJgBhTmooi0uzHWhnxvk6JIzQi89qEAMINN0SeVNnXiAtbFY0Mj3w==, } dependencies: - "@babel/runtime": 7.18.3 + "@babel/runtime": 7.23.2 "@changesets/config": 2.0.0 "@changesets/get-version-range-type": 0.3.2 "@changesets/git": 1.3.2 @@ -4726,7 +4722,7 @@ packages: integrity: sha512-I+TTkUoqvxBEuDLoJfJYKDXIJ+nyiTbVJ8KGhpXEsLq4N/ms/AStSbouJwF2d/p3cB+RCPr5+gXh31GSN4kA7w==, } dependencies: - "@babel/runtime": 7.18.3 + "@babel/runtime": 7.23.2 "@changesets/errors": 0.1.4 "@changesets/get-dependents-graph": 1.3.2 "@changesets/types": 5.0.0 @@ -4827,7 +4823,7 @@ packages: integrity: sha512-5C1r4DcOjVxcCvPmXpymeyT6mdSTLCNiB2L+5uf19BRkDKndJdIQorH5Fe2XBR2nHUcZQFT+2TXDzCepat969w==, } dependencies: - "@babel/runtime": 7.18.3 + "@babel/runtime": 7.23.2 "@changesets/assemble-release-plan": 5.1.3 "@changesets/config": 2.0.0 "@changesets/pre": 1.0.11 @@ -4849,7 +4845,7 @@ packages: integrity: sha512-p5UL+urAg0Nnpt70DLiBe2iSsMcDubTo9fTOD/61krmcJ466MGh71OHwdAwu1xG5+NKzeysdy1joRTg8CXcEXA==, } dependencies: - "@babel/runtime": 7.18.3 + "@babel/runtime": 7.23.2 "@changesets/errors": 0.1.4 "@changesets/types": 5.0.0 "@manypkg/get-packages": 1.1.3 @@ -4882,7 +4878,7 @@ packages: integrity: sha512-CXZnt4SV9waaC9cPLm7818+SxvLKIDHUxaiTXnJYDp1c56xIexx1BNfC1yMuOdzO2a3rAIcZua5Odxr3dwSKfg==, } dependencies: - "@babel/runtime": 7.18.3 + "@babel/runtime": 7.23.2 "@changesets/errors": 0.1.4 "@changesets/types": 5.0.0 "@manypkg/get-packages": 1.1.3 @@ -4895,7 +4891,7 @@ packages: integrity: sha512-bzonrPWc29Tsjvgh+8CqJ0apQOwWim0zheeD4ZK44ApSa/GudnZJTODtA3yNOOuQzeZmL0NUebVoHIurtIkA7w==, } dependencies: - "@babel/runtime": 7.18.3 + "@babel/runtime": 7.23.2 "@changesets/git": 1.3.2 "@changesets/logger": 0.0.5 "@changesets/parse": 0.3.13 @@ -4932,7 +4928,7 @@ packages: integrity: sha512-oIHeFVMuP6jf0TPnKPpaFpvvAf3JBc+s2pmVChbeEgQTBTALoF51Z9kqxQfG4XONZPHZnqkmy564c7qohhhhTQ==, } dependencies: - "@babel/runtime": 7.18.3 + "@babel/runtime": 7.23.2 "@changesets/types": 5.0.0 fs-extra: 7.0.1 human-id: 1.0.2 @@ -5663,7 +5659,7 @@ packages: integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==, } dependencies: - "@babel/runtime": 7.18.3 + "@babel/runtime": 7.23.2 "@types/node": 12.20.55 find-up: 4.1.0 fs-extra: 8.1.0 @@ -5675,7 +5671,7 @@ packages: integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==, } dependencies: - "@babel/runtime": 7.18.3 + "@babel/runtime": 7.23.2 "@changesets/types": 4.1.0 "@manypkg/find-root": 1.1.0 fs-extra: 8.1.0 @@ -5911,7 +5907,6 @@ packages: picocolors: 1.0.0 tiny-glob: 0.2.9 tslib: 2.4.0 - dev: true /@polka/url@1.0.0-next.21: resolution: @@ -5920,23 +5915,6 @@ packages: } dev: true - /@prisma/client@4.14.0(prisma@4.6.1): - resolution: - { - integrity: sha512-MK/XaA2sFdfaOa7I9MjNKz6dxeIEdeZlnpNRoF2w3JuRLlFJLkpp6cD3yaqw2nUUhbrn3Iqe3ZpVV+VuGGil7Q==, - } - engines: {node: ">=14.17"} - requiresBuild: true - peerDependencies: - prisma: "*" - peerDependenciesMeta: - prisma: - optional: true - dependencies: - "@prisma/engines-version": 4.14.0-67.d9a4c5988f480fa576d43970d5a23641aa77bc9c - prisma: 4.6.1 - dev: false - /@prisma/client@4.6.1(prisma@4.6.1): resolution: { @@ -5954,13 +5932,6 @@ packages: prisma: 4.6.1 dev: false - /@prisma/engines-version@4.14.0-67.d9a4c5988f480fa576d43970d5a23641aa77bc9c: - resolution: - { - integrity: sha512-3jum8/YSudeSN0zGW5qkpz+wAN2V/NYCQ+BPjvHYDfWatLWlQkqy99toX0GysDeaUoBIJg1vaz2yKqiA3CFcQw==, - } - dev: false - /@prisma/engines-version@4.6.1-3.694eea289a8462c80264df36757e4fdc129b1b32: resolution: { @@ -6446,15 +6417,6 @@ packages: defer-to-connect: 2.0.1 dev: false - /@tanstack/form-core@0.0.9: - resolution: - { - integrity: sha512-r6iPdnOA0YpT+XsbYAmCX6y7RyYa4kNAmD/MlMxLoQkyLl6TTJg5W6H6JDD7t6EuN20AoNPdVU1zofCS81p5dw==, - } - dependencies: - "@tanstack/store": 0.0.1-beta.84 - dev: false - /@tanstack/query-core@4.13.0: resolution: { @@ -6468,27 +6430,6 @@ packages: integrity: sha512-9dqjv9eeB6VHN7lD3cLo16ZAjfjCsdXetSAD5+VyKqLUvcKTL0CklGQRJu+bWzdrS69R6Ea4UZo8obHYZnG6aA==, } - /@tanstack/react-form@0.0.10(react-dom@18.2.0)(react@18.2.0): - resolution: - { - integrity: sha512-X7GZRSK3OLs42wGkJ/ahHVKMgdeBZZn6OEiHhbB57wWBV7I4JgCndrFp8vXtLQDz5+Pz03qTo0qD8X1nFV9agA==, - } - peerDependencies: - react: ^17.0.0 || ^18.0.0 - react-dom: ^17.0.0 || ^18.0.0 - react-native: "*" - peerDependenciesMeta: - react-dom: - optional: true - react-native: - optional: true - dependencies: - "@tanstack/form-core": 0.0.9 - "@tanstack/react-store": 0.0.1-beta.84(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@tanstack/react-query@4.0.10(react-dom@18.2.0)(react@18.2.0): resolution: { @@ -6553,30 +6494,6 @@ packages: use-sync-external-store: 1.2.0(react@18.2.0) dev: false - /@tanstack/react-store@0.0.1-beta.84(react-dom@18.2.0)(react@18.2.0): - resolution: - { - integrity: sha512-NHCt8pPjcwENwMPnaXdu1ZdvpE/u6JJdZwl/5aKxX9gW4XtLvpNEXHq1KyuOMk2ZfWInW2cuDsDsK5+iZARhrg==, - } - engines: {node: ">=12"} - peerDependencies: - react: ">=16" - react-dom: ">=16" - dependencies: - "@tanstack/store": 0.0.1-beta.84 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - use-sync-external-store: 1.2.0(react@18.2.0) - dev: false - - /@tanstack/store@0.0.1-beta.84: - resolution: - { - integrity: sha512-sqE4U8b/bNxXLrm5uoDET7glaZvThn0FPNperVNZV+XXwkJUFcc+/KH7n1MwCi7Y/76FeMpKWLRmEx9KhZbq3A==, - } - engines: {node: ">=12"} - dev: false - /@testim/chrome-version@1.1.2: resolution: { @@ -8233,7 +8150,7 @@ packages: } engines: {node: ">=6.0"} dependencies: - "@babel/runtime": 7.18.3 + "@babel/runtime": 7.23.2 "@babel/runtime-corejs3": 7.18.3 /aria-query@5.0.0: @@ -8285,7 +8202,6 @@ packages: dependencies: call-bind: 1.0.2 is-array-buffer: 3.0.2 - dev: true /array-differ@3.0.0: resolution: @@ -8298,19 +8214,6 @@ packages: resolution: {integrity: sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=} dev: true - /array-includes@3.1.5: - resolution: - { - integrity: sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==, - } - engines: {node: ">= 0.4"} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.20.1 - get-intrinsic: 1.1.1 - is-string: 1.0.7 - /array-includes@3.1.7: resolution: { @@ -8323,7 +8226,6 @@ packages: es-abstract: 1.22.2 get-intrinsic: 1.2.1 is-string: 1.0.7 - dev: true /array-union@1.0.2: resolution: @@ -8370,19 +8272,6 @@ packages: es-abstract: 1.22.2 es-shim-unscopables: 1.0.0 get-intrinsic: 1.2.1 - dev: true - - /array.prototype.flat@1.3.0: - resolution: - { - integrity: sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==, - } - engines: {node: ">= 0.4"} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.20.1 - es-shim-unscopables: 1.0.0 /array.prototype.flat@1.3.2: resolution: @@ -8395,19 +8284,6 @@ packages: define-properties: 1.2.1 es-abstract: 1.22.2 es-shim-unscopables: 1.0.0 - dev: true - - /array.prototype.flatmap@1.3.0: - resolution: - { - integrity: sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==, - } - engines: {node: ">= 0.4"} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.20.1 - es-shim-unscopables: 1.0.0 /array.prototype.flatmap@1.3.2: resolution: @@ -8420,7 +8296,6 @@ packages: define-properties: 1.2.1 es-abstract: 1.22.2 es-shim-unscopables: 1.0.0 - dev: true /array.prototype.tosorted@1.1.2: resolution: @@ -8449,7 +8324,6 @@ packages: get-intrinsic: 1.2.1 is-array-buffer: 3.0.2 is-shared-array-buffer: 1.0.2 - dev: true /arrify@1.0.1: resolution: @@ -8575,7 +8449,6 @@ packages: integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==, } engines: {node: ">= 0.4"} - dev: true /axe-core@4.4.2: resolution: @@ -8696,7 +8569,7 @@ packages: integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==, } dependencies: - object.assign: 4.1.2 + object.assign: 4.1.4 /babel-plugin-istanbul@6.1.1: resolution: @@ -9189,7 +9062,7 @@ packages: } dependencies: function-bind: 1.1.1 - get-intrinsic: 1.1.1 + get-intrinsic: 1.2.1 /call-me-maybe@1.0.1: resolution: @@ -10270,7 +10143,6 @@ packages: get-intrinsic: 1.2.1 gopd: 1.0.1 has-property-descriptors: 1.0.0 - dev: true /define-lazy-prop@2.0.0: resolution: @@ -10278,17 +10150,6 @@ packages: integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==, } engines: {node: ">=8"} - dev: true - - /define-properties@1.1.4: - resolution: - { - integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==, - } - engines: {node: ">= 0.4"} - dependencies: - has-property-descriptors: 1.0.0 - object-keys: 1.1.1 /define-properties@1.2.1: resolution: @@ -10300,7 +10161,6 @@ packages: define-data-property: 1.1.1 has-property-descriptors: 1.0.0 object-keys: 1.1.1 - dev: true /define-property@0.2.5: resolution: @@ -10739,7 +10599,6 @@ packages: dependencies: graceful-fs: 4.2.10 tapable: 2.2.1 - dev: true /enquirer@2.3.6: resolution: @@ -10782,37 +10641,6 @@ packages: dependencies: is-arrayish: 0.2.1 - /es-abstract@1.20.1: - resolution: - { - integrity: sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==, - } - engines: {node: ">= 0.4"} - dependencies: - call-bind: 1.0.2 - es-to-primitive: 1.2.1 - function-bind: 1.1.1 - function.prototype.name: 1.1.5 - get-intrinsic: 1.1.1 - get-symbol-description: 1.0.0 - has: 1.0.3 - has-property-descriptors: 1.0.0 - has-symbols: 1.0.3 - internal-slot: 1.0.3 - is-callable: 1.2.4 - is-negative-zero: 2.0.2 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 - is-string: 1.0.7 - is-weakref: 1.0.2 - object-inspect: 1.12.2 - object-keys: 1.1.1 - object.assign: 4.1.2 - regexp.prototype.flags: 1.4.3 - string.prototype.trimend: 1.0.5 - string.prototype.trimstart: 1.0.5 - unbox-primitive: 1.0.2 - /es-abstract@1.22.2: resolution: { @@ -10859,7 +10687,6 @@ packages: typed-array-length: 1.0.4 unbox-primitive: 1.0.2 which-typed-array: 1.1.11 - dev: true /es-iterator-helpers@1.0.15: resolution: @@ -10900,7 +10727,6 @@ packages: get-intrinsic: 1.2.1 has: 1.0.3 has-tostringtag: 1.0.0 - dev: true /es-shim-unscopables@1.0.0: resolution: @@ -10917,7 +10743,7 @@ packages: } engines: {node: ">= 0.4"} dependencies: - is-callable: 1.2.4 + is-callable: 1.2.7 is-date-object: 1.0.5 is-symbol: 1.0.4 @@ -11899,7 +11725,7 @@ packages: } dependencies: debug: 3.2.7(supports-color@8.1.1) - resolve: 1.22.1 + resolve: 1.22.8 transitivePeerDependencies: - supports-color @@ -11914,7 +11740,6 @@ packages: resolve: 1.22.8 transitivePeerDependencies: - supports-color - dev: true /eslint-import-resolver-typescript@2.7.1(eslint-plugin-import@2.26.0)(eslint@8.27.0): resolution: @@ -11931,8 +11756,8 @@ packages: eslint-plugin-import: 2.26.0(@typescript-eslint/parser@5.9.1)(eslint@8.27.0) glob: 7.2.0 is-glob: 4.0.3 - resolve: 1.22.1 - tsconfig-paths: 3.14.1 + resolve: 1.22.8 + tsconfig-paths: 3.14.2 transitivePeerDependencies: - supports-color @@ -11978,35 +11803,6 @@ packages: synckit: 0.8.4 transitivePeerDependencies: - supports-color - dev: true - - /eslint-module-utils@2.7.3(@typescript-eslint/parser@5.9.1)(eslint-import-resolver-node@0.3.6): - resolution: - { - integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==, - } - engines: {node: ">=4"} - peerDependencies: - "@typescript-eslint/parser": "*" - eslint-import-resolver-node: "*" - eslint-import-resolver-typescript: "*" - eslint-import-resolver-webpack: "*" - peerDependenciesMeta: - "@typescript-eslint/parser": - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true - dependencies: - "@typescript-eslint/parser": 5.9.1(eslint@8.27.0)(supports-color@8.1.1)(typescript@4.8.4) - debug: 3.2.7(supports-color@8.1.1) - eslint-import-resolver-node: 0.3.6 - find-up: 2.1.0 - transitivePeerDependencies: - - supports-color /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.43.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@2.7.1)(eslint@8.26.0): resolution: @@ -12072,7 +11868,6 @@ packages: eslint-import-resolver-typescript: 3.5.2(eslint-plugin-import@2.28.1)(eslint@8.27.0) transitivePeerDependencies: - supports-color - dev: true /eslint-plugin-import@2.26.0(@typescript-eslint/parser@5.9.1)(eslint@8.27.0): resolution: @@ -12088,20 +11883,20 @@ packages: optional: true dependencies: "@typescript-eslint/parser": 5.9.1(eslint@8.27.0)(supports-color@8.1.1)(typescript@4.8.4) - array-includes: 3.1.5 - array.prototype.flat: 1.3.0 + array-includes: 3.1.7 + array.prototype.flat: 1.3.2 debug: 2.6.9(supports-color@8.1.1) doctrine: 2.1.0 eslint: 8.27.0(supports-color@8.1.1) - eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.3(@typescript-eslint/parser@5.9.1)(eslint-import-resolver-node@0.3.6) + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.9.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.5.2)(eslint@8.27.0) has: 1.0.3 - is-core-module: 2.11.0 + is-core-module: 2.13.0 is-glob: 4.0.3 minimatch: 3.1.2 - object.values: 1.1.5 - resolve: 1.22.1 - tsconfig-paths: 3.14.1 + object.values: 1.1.7 + resolve: 1.22.8 + tsconfig-paths: 3.14.2 transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -12181,7 +11976,6 @@ packages: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - dev: true /eslint-plugin-jsx-a11y@6.5.1(eslint@8.27.0): resolution: @@ -12194,7 +11988,7 @@ packages: dependencies: "@babel/runtime": 7.18.3 aria-query: 4.2.2 - array-includes: 3.1.5 + array-includes: 3.1.7 ast-types-flow: 0.0.7 axe-core: 4.4.2 axobject-query: 2.2.0 @@ -12306,20 +12100,20 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - array-includes: 3.1.5 - array.prototype.flatmap: 1.3.0 + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 doctrine: 2.1.0 eslint: 8.27.0(supports-color@8.1.1) estraverse: 5.3.0 jsx-ast-utils: 3.3.0 minimatch: 3.1.2 object.entries: 1.1.5 - object.fromentries: 2.0.5 + object.fromentries: 2.0.7 object.hasown: 1.1.1 - object.values: 1.1.5 + object.values: 1.1.7 prop-types: 15.8.1 - resolve: 2.0.0-next.3 - semver: 6.3.0 + resolve: 2.0.0-next.5 + semver: 6.3.1 string.prototype.matchall: 4.0.7 /eslint-plugin-react@7.33.2(eslint@8.26.0): @@ -13077,15 +12871,6 @@ packages: } dev: true - /find-up@2.1.0: - resolution: - { - integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==, - } - engines: {node: ">=4"} - dependencies: - locate-path: 2.0.0 - /find-up@3.0.0: resolution: { @@ -13192,7 +12977,6 @@ packages: } dependencies: is-callable: 1.2.7 - dev: true /for-in@1.0.2: resolution: @@ -13337,18 +13121,6 @@ packages: integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==, } - /function.prototype.name@1.1.5: - resolution: - { - integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==, - } - engines: {node: ">= 0.4"} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.20.1 - functions-have-names: 1.2.3 - /function.prototype.name@1.1.6: resolution: { @@ -13360,7 +13132,6 @@ packages: define-properties: 1.2.1 es-abstract: 1.22.2 functions-have-names: 1.2.3 - dev: true /functions-have-names@1.2.3: resolution: @@ -13388,16 +13159,6 @@ packages: integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==, } - /get-intrinsic@1.1.1: - resolution: - { - integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==, - } - dependencies: - function-bind: 1.1.1 - has: 1.0.3 - has-symbols: 1.0.3 - /get-intrinsic@1.2.1: resolution: { @@ -13408,7 +13169,6 @@ packages: has: 1.0.3 has-proto: 1.0.1 has-symbols: 1.0.3 - dev: true /get-package-type@0.1.0: resolution: @@ -13475,14 +13235,13 @@ packages: engines: {node: ">= 0.4"} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.1.1 + get-intrinsic: 1.2.1 /get-tsconfig@4.2.0: resolution: { integrity: sha512-X8u8fREiYOE6S8hLbq99PeykTDoLVnxvF4DjWKJmz9xy2nNRdUcV8ZN9tniJFeKyTU3qnC9lL8n4Chd6LmVKHg==, } - dev: true /get-value@2.0.6: resolution: @@ -13665,14 +13424,13 @@ packages: } engines: {node: ">= 0.4"} dependencies: - define-properties: 1.1.4 + define-properties: 1.2.1 /globalyzer@0.1.0: resolution: { integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==, } - dev: true /globby@11.1.0: resolution: @@ -13725,7 +13483,6 @@ packages: { integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==, } - dev: true /gopd@1.0.1: resolution: @@ -13734,7 +13491,6 @@ packages: } dependencies: get-intrinsic: 1.2.1 - dev: true /got@11.8.1: resolution: @@ -13834,7 +13590,7 @@ packages: integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==, } dependencies: - get-intrinsic: 1.1.1 + get-intrinsic: 1.2.1 /has-proto@1.0.1: resolution: @@ -13842,7 +13598,6 @@ packages: integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==, } engines: {node: ">= 0.4"} - dev: true /has-symbols@1.0.3: resolution: @@ -14296,17 +14051,6 @@ packages: - utf-8-validate dev: false - /internal-slot@1.0.3: - resolution: - { - integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==, - } - engines: {node: ">= 0.4"} - dependencies: - get-intrinsic: 1.1.1 - has: 1.0.3 - side-channel: 1.0.4 - /internal-slot@1.0.5: resolution: { @@ -14317,7 +14061,6 @@ packages: get-intrinsic: 1.2.1 has: 1.0.3 side-channel: 1.0.4 - dev: true /ip-regex@4.3.0: resolution: @@ -14364,7 +14107,6 @@ packages: call-bind: 1.0.2 get-intrinsic: 1.2.1 is-typed-array: 1.1.12 - dev: true /is-arrayish@0.2.1: resolution: @@ -14426,20 +14168,12 @@ packages: builtin-modules: 3.2.0 dev: true - /is-callable@1.2.4: - resolution: - { - integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==, - } - engines: {node: ">= 0.4"} - /is-callable@1.2.7: resolution: { integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==, } engines: {node: ">= 0.4"} - dev: true /is-ci@2.0.0: resolution: @@ -14461,14 +14195,6 @@ packages: ci-info: 3.3.1 dev: false - /is-core-module@2.11.0: - resolution: - { - integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==, - } - dependencies: - has: 1.0.3 - /is-core-module@2.13.0: resolution: { @@ -14537,7 +14263,6 @@ packages: } engines: {node: ">=8"} hasBin: true - dev: true /is-expression@4.0.0: resolution: @@ -14825,7 +14550,6 @@ packages: engines: {node: ">= 0.4"} dependencies: which-typed-array: 1.1.11 - dev: true /is-typedarray@1.0.0: resolution: @@ -14905,7 +14629,6 @@ packages: engines: {node: ">=8"} dependencies: is-docker: 2.2.1 - dev: true /is2@2.0.7: resolution: @@ -14930,7 +14653,6 @@ packages: { integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==, } - dev: true /isbinaryfile@4.0.10: resolution: @@ -16428,15 +16150,6 @@ packages: } dev: false - /json5@1.0.1: - resolution: - { - integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==, - } - hasBin: true - dependencies: - minimist: 1.2.6 - /json5@1.0.2: resolution: { @@ -16445,7 +16158,6 @@ packages: hasBin: true dependencies: minimist: 1.2.6 - dev: true /json5@2.2.1: resolution: @@ -16508,8 +16220,8 @@ packages: } engines: {node: ">=4.0"} dependencies: - array-includes: 3.1.5 - object.assign: 4.1.2 + array-includes: 3.1.7 + object.assign: 4.1.4 /jsx-ast-utils@3.3.5: resolution: @@ -16790,16 +16502,6 @@ packages: } engines: {node: ">=14"} - /locate-path@2.0.0: - resolution: - { - integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==, - } - engines: {node: ">=4"} - dependencies: - p-locate: 2.0.0 - path-exists: 3.0.0 - /locate-path@3.0.0: resolution: { @@ -17600,7 +17302,7 @@ packages: "@panva/hkdf": 1.0.2 cookie: 0.5.0 jose: 4.11.2 - next: 13.5.2(@babel/core@7.12.10)(react-dom@18.2.0)(react@18.2.0) + next: 13.5.2(@babel/core@7.20.2)(react-dom@18.2.0)(react@18.2.0) oauth: 0.9.15 openid-client: 5.2.1 preact: 10.11.3 @@ -17748,7 +17450,6 @@ packages: transitivePeerDependencies: - "@babel/core" - babel-plugin-macros - dev: false /nice-try@1.0.5: resolution: @@ -17973,7 +17674,6 @@ packages: { integrity: sha512-HQ4J+ic8hKrgIt3mqk6cVOVrW2ozL4KdvHlqpBv9vDYWx9ysAgENAdvy4FoGF+KFdhR7nQTNm5J0ctAeOwn+3g==, } - dev: true /object-keys@1.1.1: resolution: @@ -17992,18 +17692,6 @@ packages: isobject: 3.0.1 dev: false - /object.assign@4.1.2: - resolution: - { - integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==, - } - engines: {node: ">= 0.4"} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - has-symbols: 1.0.3 - object-keys: 1.1.1 - /object.assign@4.1.4: resolution: { @@ -18015,7 +17703,6 @@ packages: define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 - dev: true /object.entries@1.1.5: resolution: @@ -18025,8 +17712,8 @@ packages: engines: {node: ">= 0.4"} dependencies: call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.20.1 + define-properties: 1.2.1 + es-abstract: 1.22.2 /object.entries@1.1.7: resolution: @@ -18040,17 +17727,6 @@ packages: es-abstract: 1.22.2 dev: true - /object.fromentries@2.0.5: - resolution: - { - integrity: sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==, - } - engines: {node: ">= 0.4"} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.20.1 - /object.fromentries@2.0.7: resolution: { @@ -18061,7 +17737,6 @@ packages: call-bind: 1.0.2 define-properties: 1.2.1 es-abstract: 1.22.2 - dev: true /object.groupby@1.0.1: resolution: @@ -18073,7 +17748,6 @@ packages: define-properties: 1.2.1 es-abstract: 1.22.2 get-intrinsic: 1.2.1 - dev: true /object.hasown@1.1.1: resolution: @@ -18081,8 +17755,8 @@ packages: integrity: sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==, } dependencies: - define-properties: 1.1.4 - es-abstract: 1.20.1 + define-properties: 1.2.1 + es-abstract: 1.22.2 /object.hasown@1.1.3: resolution: @@ -18104,17 +17778,6 @@ packages: isobject: 3.0.1 dev: false - /object.values@1.1.5: - resolution: - { - integrity: sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==, - } - engines: {node: ">= 0.4"} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.20.1 - /object.values@1.1.7: resolution: { @@ -18125,7 +17788,6 @@ packages: call-bind: 1.0.2 define-properties: 1.2.1 es-abstract: 1.22.2 - dev: true /oidc-token-hash@5.0.1: resolution: @@ -18210,7 +17872,6 @@ packages: define-lazy-prop: 2.0.0 is-docker: 2.2.1 is-wsl: 2.2.0 - dev: true /opener@1.5.2: resolution: @@ -18360,15 +18021,6 @@ packages: engines: {node: ">=6"} dev: false - /p-limit@1.3.0: - resolution: - { - integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==, - } - engines: {node: ">=4"} - dependencies: - p-try: 1.0.0 - /p-limit@2.3.0: resolution: { @@ -18387,15 +18039,6 @@ packages: dependencies: yocto-queue: 0.1.0 - /p-locate@2.0.0: - resolution: - { - integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==, - } - engines: {node: ">=4"} - dependencies: - p-limit: 1.3.0 - /p-locate@3.0.0: resolution: { @@ -18450,13 +18093,6 @@ packages: dependencies: p-finally: 1.0.0 - /p-try@1.0.0: - resolution: - { - integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==, - } - engines: {node: ">=4"} - /p-try@2.2.0: resolution: { @@ -18484,7 +18120,7 @@ packages: got: 9.6.0 registry-auth-token: 4.2.1 registry-url: 5.1.0 - semver: 6.3.0 + semver: 6.3.1 dev: false /pako@1.0.11: @@ -18657,6 +18293,7 @@ packages: integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==, } engines: {node: ">=4"} + dev: false /path-exists@4.0.0: resolution: @@ -19686,7 +19323,6 @@ packages: { integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==, } - dev: true /regenerator-transform@0.15.0: resolution: @@ -19694,7 +19330,7 @@ packages: integrity: sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==, } dependencies: - "@babel/runtime": 7.18.3 + "@babel/runtime": 7.23.2 /regex-not@1.0.2: resolution: @@ -19714,17 +19350,6 @@ packages: } dev: false - /regexp.prototype.flags@1.4.3: - resolution: - { - integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==, - } - engines: {node: ">= 0.4"} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - functions-have-names: 1.2.3 - /regexp.prototype.flags@1.5.1: resolution: { @@ -19735,7 +19360,6 @@ packages: call-bind: 1.0.2 define-properties: 1.2.1 set-function-name: 2.0.1 - dev: true /regexpp@3.2.0: resolution: @@ -19907,22 +19531,11 @@ packages: } hasBin: true dependencies: - is-core-module: 2.11.0 + is-core-module: 2.13.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true - /resolve@1.22.1: - resolution: - { - integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==, - } - hasBin: true - dependencies: - is-core-module: 2.11.0 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - /resolve@1.22.8: resolution: { @@ -19934,15 +19547,6 @@ packages: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - /resolve@2.0.0-next.3: - resolution: - { - integrity: sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==, - } - dependencies: - is-core-module: 2.13.0 - path-parse: 1.0.7 - /resolve@2.0.0-next.5: resolution: { @@ -19953,7 +19557,6 @@ packages: is-core-module: 2.13.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - dev: true /responselike@1.0.2: resolution: @@ -20133,7 +19736,6 @@ packages: get-intrinsic: 1.2.1 has-symbols: 1.0.3 isarray: 2.0.5 - dev: true /safe-buffer@5.1.2: resolution: @@ -20156,7 +19758,6 @@ packages: call-bind: 1.0.2 get-intrinsic: 1.2.1 is-regex: 1.1.4 - dev: true /safe-regex@1.1.0: resolution: @@ -20256,7 +19857,7 @@ packages: } dependencies: "@types/semver": 6.2.3 - semver: 6.3.0 + semver: 6.3.1 dev: false /semver-compare@1.0.0: @@ -20380,7 +19981,6 @@ packages: define-data-property: 1.1.1 functions-have-names: 1.2.3 has-property-descriptors: 1.0.0 - dev: true /set-value@2.0.1: resolution: @@ -20464,8 +20064,8 @@ packages: } dependencies: call-bind: 1.0.2 - get-intrinsic: 1.1.1 - object-inspect: 1.12.2 + get-intrinsic: 1.2.1 + object-inspect: 1.13.0 /signal-exit@3.0.7: resolution: @@ -20887,12 +20487,12 @@ packages: } dependencies: call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.20.1 - get-intrinsic: 1.1.1 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 has-symbols: 1.0.3 - internal-slot: 1.0.3 - regexp.prototype.flags: 1.4.3 + internal-slot: 1.0.5 + regexp.prototype.flags: 1.5.1 side-channel: 1.0.4 /string.prototype.trim@1.2.8: @@ -20905,17 +20505,6 @@ packages: call-bind: 1.0.2 define-properties: 1.2.1 es-abstract: 1.22.2 - dev: true - - /string.prototype.trimend@1.0.5: - resolution: - { - integrity: sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==, - } - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.20.1 /string.prototype.trimend@1.0.7: resolution: @@ -20926,17 +20515,6 @@ packages: call-bind: 1.0.2 define-properties: 1.2.1 es-abstract: 1.22.2 - dev: true - - /string.prototype.trimstart@1.0.5: - resolution: - { - integrity: sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==, - } - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.20.1 /string.prototype.trimstart@1.0.7: resolution: @@ -20947,7 +20525,6 @@ packages: call-bind: 1.0.2 define-properties: 1.2.1 es-abstract: 1.22.2 - dev: true /string_decoder@1.1.1: resolution: @@ -21142,7 +20719,6 @@ packages: "@babel/core": 7.20.2(supports-color@8.1.1) client-only: 0.0.1 react: 18.2.0 - dev: false /subarg@1.0.0: resolution: @@ -21239,7 +20815,6 @@ packages: dependencies: "@pkgr/utils": 2.3.1 tslib: 2.4.0 - dev: true /tapable@2.2.1: resolution: @@ -21247,7 +20822,6 @@ packages: integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==, } engines: {node: ">=6"} - dev: true /tar@6.1.11: resolution: @@ -21388,7 +20962,6 @@ packages: dependencies: globalyzer: 0.1.0 globrex: 0.1.2 - dev: true /tinybench@2.3.1: resolution: @@ -21692,17 +21265,6 @@ packages: yn: 3.1.1 dev: true - /tsconfig-paths@3.14.1: - resolution: - { - integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==, - } - dependencies: - "@types/json5": 0.0.29 - json5: 1.0.1 - minimist: 1.2.6 - strip-bom: 3.0.0 - /tsconfig-paths@3.14.2: resolution: { @@ -21713,7 +21275,6 @@ packages: json5: 1.0.2 minimist: 1.2.6 strip-bom: 3.0.0 - dev: true /tsconfig-paths@4.0.0: resolution: @@ -21961,7 +21522,6 @@ packages: call-bind: 1.0.2 get-intrinsic: 1.2.1 is-typed-array: 1.1.12 - dev: true /typed-array-byte-length@1.0.0: resolution: @@ -21974,7 +21534,6 @@ packages: for-each: 0.3.3 has-proto: 1.0.1 is-typed-array: 1.1.12 - dev: true /typed-array-byte-offset@1.0.0: resolution: @@ -21988,7 +21547,6 @@ packages: for-each: 0.3.3 has-proto: 1.0.1 is-typed-array: 1.1.12 - dev: true /typed-array-length@1.0.4: resolution: @@ -21999,7 +21557,6 @@ packages: call-bind: 1.0.2 for-each: 0.3.3 is-typed-array: 1.1.12 - dev: true /typedarray-to-buffer@3.1.5: resolution: @@ -22463,7 +22020,7 @@ packages: "@types/node": 18.11.9 esbuild: 0.15.15 postcss: 8.4.19 - resolve: 1.22.1 + resolve: 1.22.8 rollup: 2.79.1 optionalDependencies: fsevents: 2.3.2 @@ -22888,7 +22445,6 @@ packages: for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.0 - dev: true /which@1.3.1: resolution: From d21325ba88821577c2adf82f5bab4139aadb7d86 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Tue, 24 Oct 2023 18:54:39 +0530 Subject: [PATCH 56/95] improvements to the template --- .../app/src/app/auth/components/LoginForm.tsx | 4 +- .../src/app/auth/components/SignupForm.tsx | 4 +- .../app/src/app/auth/forgot-password/page.tsx | 4 +- .../src/app/auth/mutations/forgotPassword.ts | 75 +++++++++--------- .../app/src/app/auth/signup/page.tsx | 11 ++- .../app/src/app/blitz-auth-config.ts | 5 ++ .../templates/app/src/app/blitz-client.ts | 16 ++-- .../templates/app/src/app/blitz-server.ts | 15 ++-- .../templates/app/src/app/components/Form.tsx | 77 +++++++++++++++++++ .../src/app/components/LabeledTextField.tsx | 55 +++++++++++++ .../generator/templates/app/src/app/page.tsx | 2 +- 11 files changed, 203 insertions(+), 65 deletions(-) create mode 100644 packages/generator/templates/app/src/app/blitz-auth-config.ts create mode 100644 packages/generator/templates/app/src/app/components/Form.tsx create mode 100644 packages/generator/templates/app/src/app/components/LabeledTextField.tsx diff --git a/packages/generator/templates/app/src/app/auth/components/LoginForm.tsx b/packages/generator/templates/app/src/app/auth/components/LoginForm.tsx index 24774083f5..886a2138af 100644 --- a/packages/generator/templates/app/src/app/auth/components/LoginForm.tsx +++ b/packages/generator/templates/app/src/app/auth/components/LoginForm.tsx @@ -1,7 +1,7 @@ import {AuthenticationError, PromiseReturnType} from "blitz" import Link from "next/link" -import {LabeledTextField} from "src/core/components/LabeledTextField" -import {Form, FORM_ERROR} from "src/core/components/Form" +import {LabeledTextField} from "src/app/components/LabeledTextField" +import {Form, FORM_ERROR} from "src/app/components/Form" import login from "../mutations/login" import {Login} from "../validations" import {useMutation} from "@blitzjs/rpc" diff --git a/packages/generator/templates/app/src/app/auth/components/SignupForm.tsx b/packages/generator/templates/app/src/app/auth/components/SignupForm.tsx index 7f592f3dab..49acd56057 100644 --- a/packages/generator/templates/app/src/app/auth/components/SignupForm.tsx +++ b/packages/generator/templates/app/src/app/auth/components/SignupForm.tsx @@ -1,5 +1,5 @@ -import { LabeledTextField } from "src/core/components/LabeledTextField" -import { Form, FORM_ERROR } from "src/core/components/Form" +import { LabeledTextField } from "src/app/components/LabeledTextField" +import { Form, FORM_ERROR } from "src/app/components/Form" import signup from "../mutations/signup" import { Signup } from "../validations" import { useMutation } from "@blitzjs/rpc" diff --git a/packages/generator/templates/app/src/app/auth/forgot-password/page.tsx b/packages/generator/templates/app/src/app/auth/forgot-password/page.tsx index 68e3f478bd..7c2d04c172 100644 --- a/packages/generator/templates/app/src/app/auth/forgot-password/page.tsx +++ b/packages/generator/templates/app/src/app/auth/forgot-password/page.tsx @@ -1,6 +1,6 @@ "use client" -import {LabeledTextField} from "src/core/components/LabeledTextField" -import {Form, FORM_ERROR} from "src/core/components/Form" +import {LabeledTextField} from "src/app/components/LabeledTextField" +import {Form, FORM_ERROR} from "src/app/components/Form" import {ForgotPassword} from "../validations" import forgotPassword from "../mutations/forgotPassword" import {useMutation} from "@blitzjs/rpc" diff --git a/packages/generator/templates/app/src/app/auth/mutations/forgotPassword.ts b/packages/generator/templates/app/src/app/auth/mutations/forgotPassword.ts index 5005e42fe4..c82eadabcc 100644 --- a/packages/generator/templates/app/src/app/auth/mutations/forgotPassword.ts +++ b/packages/generator/templates/app/src/app/auth/mutations/forgotPassword.ts @@ -1,45 +1,42 @@ -/* TODO - You need to add a mailer integration in `integrations/` and import here. - * - * The integration file can be very simple. Instantiate the email client - * and then export it. That way you can import here and anywhere else - * and use it straight away. - */ +import { generateToken, hash256 } from "@blitzjs/auth" +import { resolver } from "@blitzjs/rpc" +import db from "db" +import { forgotPasswordMailer } from "mailers/forgotPasswordMailer" +import { ForgotPassword } from "../validations" -type ResetPasswordMailer = { - to: string - token: string -} +const RESET_PASSWORD_TOKEN_EXPIRATION_IN_HOURS = 4 -export function forgotPasswordMailer({ to, token }: ResetPasswordMailer) { - // In production, set APP_ORIGIN to your production server origin - const origin = process.env.APP_ORIGIN || process.env.BLITZ_DEV_SERVER_ORIGIN - const resetUrl = `${origin}/reset-password?token=${token}` +export default resolver.pipe(resolver.zod(ForgotPassword), async ({ email }) => { + // 1. Get the user + const user = await db.user.findFirst({ where: { email: email.toLowerCase() } }) - const msg = { - from: "TODO@example.com", - to, - subject: "Your Password Reset Instructions", - html: ` -

Reset Your Password

-

NOTE: You must set up a production email integration in mailers/forgotPasswordMailer.ts

+ // 2. Generate the token and expiration date. + const token = generateToken() + const hashedToken = hash256(token) + const expiresAt = new Date() + expiresAt.setHours(expiresAt.getHours() + RESET_PASSWORD_TOKEN_EXPIRATION_IN_HOURS) - - Click here to set a new password - - `, + // 3. If user with this email was found + if (user) { + // 4. Delete any existing password reset tokens + await db.token.deleteMany({ where: { type: "RESET_PASSWORD", userId: user.id } }) + // 5. Save this new token in the database. + await db.token.create({ + data: { + user: { connect: { id: user.id } }, + type: "RESET_PASSWORD", + expiresAt, + hashedToken, + sentTo: user.email, + }, + }) + // 6. Send the email + await forgotPasswordMailer({ to: user.email, token }).send() + } else { + // 7. If no user found wait the same time so attackers can't tell the difference + await new Promise((resolve) => setTimeout(resolve, 750)) } - return { - async send() { - if (process.env.NODE_ENV === "production") { - // TODO - send the production email, like this: - // await postmark.sendEmail(msg) - throw new Error("No production email implementation in mailers/forgotPasswordMailer") - } else { - // Preview email in the browser - const previewEmail = (await import("preview-email")).default - await previewEmail(msg) - } - }, - } -} + // 8. Return the same result whether a password reset email was sent or not + return +}) diff --git a/packages/generator/templates/app/src/app/auth/signup/page.tsx b/packages/generator/templates/app/src/app/auth/signup/page.tsx index c1b62ba3c8..c677705898 100644 --- a/packages/generator/templates/app/src/app/auth/signup/page.tsx +++ b/packages/generator/templates/app/src/app/auth/signup/page.tsx @@ -1,11 +1,18 @@ "use client" -import {useRouter} from "next/navigation" +import { useRouter } from "next/navigation" import SignupForm from "../components/SignupForm" const SignUp = () => { const router = useRouter() - return router.push("/")} /> + return ( + { + router.refresh() + router.push("/") + }} + /> + ) } export default SignUp diff --git a/packages/generator/templates/app/src/app/blitz-auth-config.ts b/packages/generator/templates/app/src/app/blitz-auth-config.ts new file mode 100644 index 0000000000..2349ae74a1 --- /dev/null +++ b/packages/generator/templates/app/src/app/blitz-auth-config.ts @@ -0,0 +1,5 @@ +import { AuthPluginClientOptions } from "@blitzjs/auth"; + +export const authConfig: AuthPluginClientOptions = { + cookiePrefix: "app-dir" + } \ No newline at end of file diff --git a/packages/generator/templates/app/src/app/blitz-client.ts b/packages/generator/templates/app/src/app/blitz-client.ts index 6d920d3112..b1c80b2846 100644 --- a/packages/generator/templates/app/src/app/blitz-client.ts +++ b/packages/generator/templates/app/src/app/blitz-client.ts @@ -1,13 +1,9 @@ "use client" -import {AuthClientPlugin} from "@blitzjs/auth" -import {setupBlitzClient} from "@blitzjs/next" -import {BlitzRpcPlugin} from "@blitzjs/rpc" +import { AuthClientPlugin } from "@blitzjs/auth" +import { setupBlitzClient } from "@blitzjs/next" +import { BlitzRpcPlugin } from "@blitzjs/rpc" +import { authConfig } from "./blitz-auth-config" -export const {withBlitz, BlitzProvider} = setupBlitzClient({ - plugins: [ - AuthClientPlugin({ - cookiePrefix: "__safeNameSlug__" - }), - BlitzRpcPlugin({}), - ], +export const { withBlitz, BlitzProvider } = setupBlitzClient({ + plugins: [AuthClientPlugin(authConfig), BlitzRpcPlugin({})], }) diff --git a/packages/generator/templates/app/src/app/blitz-server.ts b/packages/generator/templates/app/src/app/blitz-server.ts index 2529f3c600..117d20aff1 100644 --- a/packages/generator/templates/app/src/app/blitz-server.ts +++ b/packages/generator/templates/app/src/app/blitz-server.ts @@ -1,13 +1,14 @@ -import {setupBlitzServer} from "@blitzjs/next" -import {AuthServerPlugin, PrismaStorage,simpleRolesIsAuthorized} from "@blitzjs/auth" +import { setupBlitzServer } from "@blitzjs/next" +import { AuthServerPlugin, PrismaStorage, simpleRolesIsAuthorized } from "@blitzjs/auth" import db from "db" -import {BlitzLogger} from "blitz" -import {RpcServerPlugin} from "@blitzjs/rpc" +import { BlitzLogger } from "blitz" +import { RpcServerPlugin } from "@blitzjs/rpc" +import { authConfig } from "./blitz-auth-config" -const {api, getBlitzContext, useAuthenticatedBlitzContext, invoke} = setupBlitzServer({ +const { api, getBlitzContext, useAuthenticatedBlitzContext, invoke } = setupBlitzServer({ plugins: [ AuthServerPlugin({ - cookiePrefix: "__safeNameSlug__", + ...authConfig, storage: PrismaStorage(db), isAuthorized: simpleRolesIsAuthorized, }), @@ -16,4 +17,4 @@ const {api, getBlitzContext, useAuthenticatedBlitzContext, invoke} = setupBlitzS logger: BlitzLogger({}), }) -export {api, getBlitzContext, useAuthenticatedBlitzContext, invoke} +export { api, getBlitzContext, useAuthenticatedBlitzContext, invoke } diff --git a/packages/generator/templates/app/src/app/components/Form.tsx b/packages/generator/templates/app/src/app/components/Form.tsx new file mode 100644 index 0000000000..cc69db1c3b --- /dev/null +++ b/packages/generator/templates/app/src/app/components/Form.tsx @@ -0,0 +1,77 @@ +import { useState, ReactNode, PropsWithoutRef } from "react" +import { Formik, FormikProps } from "formik" +import { validateZodSchema } from "blitz" +import { z } from "zod" + +export interface FormProps> + extends Omit, "onSubmit"> { + /** All your form fields */ + children?: ReactNode + /** Text to display in the submit button */ + submitText?: string + schema?: S + onSubmit: (values: z.infer) => Promise + initialValues?: FormikProps>["initialValues"] +} + +interface OnSubmitResult { + FORM_ERROR?: string + [prop: string]: any +} + +export const FORM_ERROR = "FORM_ERROR" + +export function Form>({ + children, + submitText, + schema, + initialValues, + onSubmit, + ...props +}: FormProps) { + const [formError, setFormError] = useState(null) + return ( + { + const { FORM_ERROR, ...otherErrors } = (await onSubmit(values)) || {} + + if (FORM_ERROR) { + setFormError(FORM_ERROR) + } + + if (Object.keys(otherErrors).length > 0) { + setErrors(otherErrors) + } + }} + > + {({ handleSubmit, isSubmitting }) => ( +
+ {/* Form fields supplied as children are rendered here */} + {children} + + {formError && ( +
+ {formError} +
+ )} + + {submitText && ( + + )} + + +
+ )} +
+ ) +} + +export default Form diff --git a/packages/generator/templates/app/src/app/components/LabeledTextField.tsx b/packages/generator/templates/app/src/app/components/LabeledTextField.tsx new file mode 100644 index 0000000000..b43dce98b9 --- /dev/null +++ b/packages/generator/templates/app/src/app/components/LabeledTextField.tsx @@ -0,0 +1,55 @@ +import { forwardRef, PropsWithoutRef } from "react" +import { useField, useFormikContext, ErrorMessage } from "formik" + +export interface LabeledTextFieldProps extends PropsWithoutRef { + /** Field name. */ + name: string + /** Field label. */ + label: string + /** Field type. Doesn't include radio buttons and checkboxes */ + type?: "text" | "password" | "email" | "number" + outerProps?: PropsWithoutRef +} + +export const LabeledTextField = forwardRef( + ({ name, label, outerProps, ...props }, ref) => { + const [input] = useField(name) + const { isSubmitting } = useFormikContext() + + return ( +
+ + + + {(msg) => ( +
+ {msg} +
+ )} +
+ + +
+ ) + } +) + +export default LabeledTextField diff --git a/packages/generator/templates/app/src/app/page.tsx b/packages/generator/templates/app/src/app/page.tsx index 7ea907b0d7..f6999b7e20 100644 --- a/packages/generator/templates/app/src/app/page.tsx +++ b/packages/generator/templates/app/src/app/page.tsx @@ -1,6 +1,6 @@ import Link from "next/link" import {invoke} from "./blitz-server" -import {LogoutButton} from "./(auth)/components/LogoutButton" +import {LogoutButton} from "./auth/components/LogoutButton" import styles from "./styles/Home.module.css" import getCurrentUser from "./users/queries/getCurrentUser" From f62e2170bd7e7929d4819e65b051f62f66d7a82e Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Tue, 24 Oct 2023 18:57:00 +0530 Subject: [PATCH 57/95] fix location of imports in `reset-password` page --- .../templates/app/src/app/auth/reset-password/page.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/generator/templates/app/src/app/auth/reset-password/page.tsx b/packages/generator/templates/app/src/app/auth/reset-password/page.tsx index d70fd058c0..1af396f465 100644 --- a/packages/generator/templates/app/src/app/auth/reset-password/page.tsx +++ b/packages/generator/templates/app/src/app/auth/reset-password/page.tsx @@ -1,6 +1,6 @@ "use client" -import {LabeledTextField} from "src/core/components/LabeledTextField" -import {Form, FORM_ERROR} from "src/core/components/Form" +import {LabeledTextField} from "src/app/components/LabeledTextField" +import {Form, FORM_ERROR} from "src/app/components/Form" import {ResetPassword} from "../validations" import resetPassword from "../mutations/resetPassword" import {BlitzPage} from "@blitzjs/next" From 96613be59edcc7edb8905579402f52864c09a1e7 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Tue, 24 Oct 2023 21:24:53 +0530 Subject: [PATCH 58/95] Update packages/blitz/src/cli/commands/new.ts Co-authored-by: Tobias --- packages/blitz/src/cli/commands/new.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/blitz/src/cli/commands/new.ts b/packages/blitz/src/cli/commands/new.ts index 2cae0f511b..ca95fc870b 100644 --- a/packages/blitz/src/cli/commands/new.ts +++ b/packages/blitz/src/cli/commands/new.ts @@ -129,9 +129,9 @@ const determineTemplate = async () => { (args["--template"] && !Object.keys(templates).includes(args["--template"].toLowerCase())) ) { const choices: Array<{value: keyof typeof templates; title: string}> = [ - {value: "app", title: "App Router: Full Includes DB and auth (Recommended)"}, - {value: "pages", title: "Pages Router: Full - includes DB and auth"}, - {value: "minimal", title: "Minimal — no DB, no auth"}, + {value: "app", title: "App Router – Full Setup: includes DB and auth (Recommended)"}, + {value: "pages", title: "Pages Router – Full Setup: includes DB and auth"}, + {value: "minimal", title: "Pages Router – Minimal setup: no DB, no auth"}, ] const res = await prompts({ From 20a4d81c8893690f9ec1ef42c14f867dd50ea825 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Tue, 24 Oct 2023 21:41:07 +0530 Subject: [PATCH 59/95] Update packages/generator/templates/app/src/pages/api/rpc/blitzrpcroute.ts Co-authored-by: Tobias --- .../generator/templates/app/src/pages/api/rpc/blitzrpcroute.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/generator/templates/app/src/pages/api/rpc/blitzrpcroute.ts b/packages/generator/templates/app/src/pages/api/rpc/blitzrpcroute.ts index 9ee9aad43c..13f78cc9db 100644 --- a/packages/generator/templates/app/src/pages/api/rpc/blitzrpcroute.ts +++ b/packages/generator/templates/app/src/pages/api/rpc/blitzrpcroute.ts @@ -1,3 +1,5 @@ +// Note: This stays in the /pages folder for the time being + import { rpcHandler } from "@blitzjs/rpc" import { api } from "src/app/blitz-server" From 0601bc3b6745b8e418b379113fa16a5cc1ad57a3 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Tue, 31 Oct 2023 17:35:44 +0530 Subject: [PATCH 60/95] fix auth -> (auth) --- packages/generator/templates/app/src/app/page.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/generator/templates/app/src/app/page.tsx b/packages/generator/templates/app/src/app/page.tsx index f6999b7e20..7ea907b0d7 100644 --- a/packages/generator/templates/app/src/app/page.tsx +++ b/packages/generator/templates/app/src/app/page.tsx @@ -1,6 +1,6 @@ import Link from "next/link" import {invoke} from "./blitz-server" -import {LogoutButton} from "./auth/components/LogoutButton" +import {LogoutButton} from "./(auth)/components/LogoutButton" import styles from "./styles/Home.module.css" import getCurrentUser from "./users/queries/getCurrentUser" From b862519c8bd9639161437accd69a89f358c8b6bc Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Tue, 31 Oct 2023 17:36:16 +0530 Subject: [PATCH 61/95] Update packages/generator/templates/app/src/app/layout.tsx Co-authored-by: Tobias --- packages/generator/templates/app/src/app/layout.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/generator/templates/app/src/app/layout.tsx b/packages/generator/templates/app/src/app/layout.tsx index 40cc298f77..03c9bb8a3d 100644 --- a/packages/generator/templates/app/src/app/layout.tsx +++ b/packages/generator/templates/app/src/app/layout.tsx @@ -5,7 +5,7 @@ import {Inter} from "next/font/google" const inter = Inter({subsets: ["latin"]}) export const metadata = { - title: "New Blitz App", + title: { title: "New Blitz App", template: "%s – Blitz" } description: "Generated by blitz new ", } From ddbda8e292d343ec345528a59addd7b97b4df448 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Tue, 31 Oct 2023 17:37:35 +0530 Subject: [PATCH 62/95] Apply suggestions from code review Co-authored-by: Tobias --- .../templates/app/src/app/auth/components/LoginForm.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/generator/templates/app/src/app/auth/components/LoginForm.tsx b/packages/generator/templates/app/src/app/auth/components/LoginForm.tsx index 886a2138af..a5603da06c 100644 --- a/packages/generator/templates/app/src/app/auth/components/LoginForm.tsx +++ b/packages/generator/templates/app/src/app/auth/components/LoginForm.tsx @@ -13,7 +13,7 @@ type LoginFormProps = { export const LoginForm = (props: LoginFormProps) => { const [loginMutation] = useMutation(login) return ( -
+ <>

Login

{
Or Sign Up
-
+ ) } From bd463ea2ec2aa7aaac9e9c85ffe960ddfcf87ea7 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Tue, 31 Oct 2023 17:52:35 +0530 Subject: [PATCH 63/95] abstact forms as client compoennts and pages as rscs --- .../auth/components/ForgotPasswordForm.tsx | 44 +++++++++++++ .../app/src/app/auth/components/LoginForm.tsx | 17 +++-- .../app/auth/components/ResetPasswordForm.tsx | 61 +++++++++++++++++ .../src/app/auth/components/SignupForm.tsx | 23 ++++--- .../app/src/app/auth/forgot-password/page.tsx | 47 +------------- .../templates/app/src/app/auth/login/page.tsx | 24 +------ .../app/src/app/auth/reset-password/page.tsx | 65 +------------------ .../app/src/app/auth/signup/page.tsx | 19 +----- 8 files changed, 142 insertions(+), 158 deletions(-) create mode 100644 packages/generator/templates/app/src/app/auth/components/ForgotPasswordForm.tsx create mode 100644 packages/generator/templates/app/src/app/auth/components/ResetPasswordForm.tsx diff --git a/packages/generator/templates/app/src/app/auth/components/ForgotPasswordForm.tsx b/packages/generator/templates/app/src/app/auth/components/ForgotPasswordForm.tsx new file mode 100644 index 0000000000..2170284078 --- /dev/null +++ b/packages/generator/templates/app/src/app/auth/components/ForgotPasswordForm.tsx @@ -0,0 +1,44 @@ +"use client" +import {LabeledTextField} from "src/app/components/LabeledTextField" +import {Form, FORM_ERROR} from "src/app/components/Form" +import {ForgotPassword} from "../validations" +import forgotPassword from "../mutations/forgotPassword" +import {useMutation} from "@blitzjs/rpc" + +export function ForgotPasswordForm() { + const [forgotPasswordMutation, {isSuccess}] = useMutation(forgotPassword) + + return ( + <> +

Forgot your password?

+ <> + {isSuccess ? ( +
+

Request Submitted

+

+ If your email is in our system, you will receive instructions to reset your password + shortly. +

+
+ ) : ( + { + try { + await forgotPasswordMutation(values) + } catch (error: any) { + return { + [FORM_ERROR]: "Sorry, we had an unexpected error. Please try again.", + } + } + }} + > + + + )} + + + ) +} diff --git a/packages/generator/templates/app/src/app/auth/components/LoginForm.tsx b/packages/generator/templates/app/src/app/auth/components/LoginForm.tsx index a5603da06c..a61a7eebb9 100644 --- a/packages/generator/templates/app/src/app/auth/components/LoginForm.tsx +++ b/packages/generator/templates/app/src/app/auth/components/LoginForm.tsx @@ -1,3 +1,4 @@ +"use client" import {AuthenticationError, PromiseReturnType} from "blitz" import Link from "next/link" import {LabeledTextField} from "src/app/components/LabeledTextField" @@ -5,6 +6,9 @@ import {Form, FORM_ERROR} from "src/app/components/Form" import login from "../mutations/login" import {Login} from "../validations" import {useMutation} from "@blitzjs/rpc" +import {useSearchParams} from "next/navigation" +import {useRouter} from "next/navigation" +import type {Route} from "next" type LoginFormProps = { onSuccess?: (user: PromiseReturnType) => void @@ -12,6 +16,8 @@ type LoginFormProps = { export const LoginForm = (props: LoginFormProps) => { const [loginMutation] = useMutation(login) + const router = useRouter() + const next = useSearchParams()?.get("next") return ( <>

Login

@@ -22,8 +28,13 @@ export const LoginForm = (props: LoginFormProps) => { initialValues={{email: "", password: ""}} onSubmit={async (values) => { try { - const user = await loginMutation(values) - props.onSuccess?.(user) + await loginMutation(values) + router.refresh() + if (next) { + router.push(next as Route) + } else { + router.push("/") + } } catch (error: any) { if (error instanceof AuthenticationError) { return {[FORM_ERROR]: "Sorry, those credentials are invalid"} @@ -49,5 +60,3 @@ export const LoginForm = (props: LoginFormProps) => { ) } - -export default LoginForm diff --git a/packages/generator/templates/app/src/app/auth/components/ResetPasswordForm.tsx b/packages/generator/templates/app/src/app/auth/components/ResetPasswordForm.tsx new file mode 100644 index 0000000000..c718b7d1e7 --- /dev/null +++ b/packages/generator/templates/app/src/app/auth/components/ResetPasswordForm.tsx @@ -0,0 +1,61 @@ +"use client" +import {LabeledTextField} from "src/app/components/LabeledTextField" +import {Form, FORM_ERROR} from "src/app/components/Form" +import {ResetPassword} from "../validations" +import resetPassword from "../mutations/resetPassword" +import {useMutation} from "@blitzjs/rpc" +import Link from "next/link" +import {useSearchParams} from "next/navigation" + +export function ResetPasswordForm() { + const searchParams = useSearchParams() + const token = searchParams?.get("token")?.toString() + const [resetPasswordMutation, {isSuccess}] = useMutation(resetPassword) + + return ( +
+

Set a New Password

+ + {isSuccess ? ( +
+

Password Reset Successfully

+

+ Go to the homepage +

+
+ ) : ( +
{ + try { + await resetPasswordMutation({...values, token}) + } catch (error: any) { + if (error.name === "ResetPasswordError") { + return { + [FORM_ERROR]: error.message, + } + } else { + return { + [FORM_ERROR]: "Sorry, we had an unexpected error. Please try again.", + } + } + } + }} + > + + + + )} +
+ ) +} diff --git a/packages/generator/templates/app/src/app/auth/components/SignupForm.tsx b/packages/generator/templates/app/src/app/auth/components/SignupForm.tsx index 49acd56057..b977b17327 100644 --- a/packages/generator/templates/app/src/app/auth/components/SignupForm.tsx +++ b/packages/generator/templates/app/src/app/auth/components/SignupForm.tsx @@ -1,8 +1,10 @@ -import { LabeledTextField } from "src/app/components/LabeledTextField" -import { Form, FORM_ERROR } from "src/app/components/Form" +"use client" +import {LabeledTextField} from "src/app/components/LabeledTextField" +import {Form, FORM_ERROR} from "src/app/components/Form" import signup from "../mutations/signup" -import { Signup } from "../validations" -import { useMutation } from "@blitzjs/rpc" +import {Signup} from "../validations" +import {useMutation} from "@blitzjs/rpc" +import {useRouter} from "next/navigation" type SignupFormProps = { onSuccess?: () => void @@ -10,6 +12,8 @@ type SignupFormProps = { export const SignupForm = (props: SignupFormProps) => { const [signupMutation] = useMutation(signup) + const router = useRouter() + return (

Create an Account

@@ -17,17 +21,18 @@ export const SignupForm = (props: SignupFormProps) => {
{ try { await signupMutation(values) - props.onSuccess?.() + router.refresh() + router.push("/") } catch (error: any) { if (error.code === "P2002" && error.meta?.target?.includes("email")) { // This error comes from Prisma - return { email: "This email is already being used" } + return {email: "This email is already being used"} } else { - return { [FORM_ERROR]: error.toString() } + return {[FORM_ERROR]: error.toString()} } } }} @@ -38,5 +43,3 @@ export const SignupForm = (props: SignupFormProps) => {
) } - -export default SignupForm diff --git a/packages/generator/templates/app/src/app/auth/forgot-password/page.tsx b/packages/generator/templates/app/src/app/auth/forgot-password/page.tsx index 7c2d04c172..9940629aab 100644 --- a/packages/generator/templates/app/src/app/auth/forgot-password/page.tsx +++ b/packages/generator/templates/app/src/app/auth/forgot-password/page.tsx @@ -1,46 +1,5 @@ -"use client" -import {LabeledTextField} from "src/app/components/LabeledTextField" -import {Form, FORM_ERROR} from "src/app/components/Form" -import {ForgotPassword} from "../validations" -import forgotPassword from "../mutations/forgotPassword" -import {useMutation} from "@blitzjs/rpc" -import {BlitzPage} from "@blitzjs/next" +import {ForgotPasswordForm} from "../components/ForgotPasswordForm" -const ForgotPasswordPage: BlitzPage = () => { - const [forgotPasswordMutation, {isSuccess}] = useMutation(forgotPassword) - return ( - <> -

Forgot your password?

- <> - {isSuccess ? ( -
-

Request Submitted

-

- If your email is in our system, you will receive instructions to reset your password - shortly. -

-
- ) : ( - { - try { - await forgotPasswordMutation(values) - } catch (error: any) { - return { - [FORM_ERROR]: "Sorry, we had an unexpected error. Please try again.", - } - } - }} - > - - - )} - - - ) +export default function ForgotPasswordPage() { + return } - -export default ForgotPasswordPage diff --git a/packages/generator/templates/app/src/app/auth/login/page.tsx b/packages/generator/templates/app/src/app/auth/login/page.tsx index d202f1facc..c96ff407e6 100644 --- a/packages/generator/templates/app/src/app/auth/login/page.tsx +++ b/packages/generator/templates/app/src/app/auth/login/page.tsx @@ -1,25 +1,5 @@ -"use client" -import {useRouter} from "next/navigation" import {LoginForm} from "../components/LoginForm" -import {useSearchParams} from "next/navigation" -import { Route } from "next" -const LoginPage = () => { - const router = useRouter() - const next = useSearchParams()?.get("next") - return ( - { - // refetch data for server components - router.refresh() - if (next) { - router.push(next as Route) - } else { - router.push("/") - } - }} - /> - ) +export default function LoginPage() { + return } - -export default LoginPage diff --git a/packages/generator/templates/app/src/app/auth/reset-password/page.tsx b/packages/generator/templates/app/src/app/auth/reset-password/page.tsx index 1af396f465..404fc16251 100644 --- a/packages/generator/templates/app/src/app/auth/reset-password/page.tsx +++ b/packages/generator/templates/app/src/app/auth/reset-password/page.tsx @@ -1,64 +1,5 @@ -"use client" -import {LabeledTextField} from "src/app/components/LabeledTextField" -import {Form, FORM_ERROR} from "src/app/components/Form" -import {ResetPassword} from "../validations" -import resetPassword from "../mutations/resetPassword" -import {BlitzPage} from "@blitzjs/next" -import {useMutation} from "@blitzjs/rpc" -import Link from "next/link" -import {useSearchParams} from "next/navigation" +import {ResetPasswordForm} from "../components/ResetPasswordForm" -const ResetPasswordPage: BlitzPage = () => { - const searchParams = useSearchParams() - const token = searchParams?.get("token")?.toString() - const [resetPasswordMutation, {isSuccess}] = useMutation(resetPassword) - - return ( -
-

Set a New Password

- - {isSuccess ? ( -
-

Password Reset Successfully

-

- Go to the homepage -

-
- ) : ( -
{ - try { - await resetPasswordMutation({...values, token}) - } catch (error: any) { - if (error.name === "ResetPasswordError") { - return { - [FORM_ERROR]: error.message, - } - } else { - return { - [FORM_ERROR]: "Sorry, we had an unexpected error. Please try again.", - } - } - } - }} - > - - - - )} -
- ) +export default function ResetPasswordPage() { + return } - -export default ResetPasswordPage diff --git a/packages/generator/templates/app/src/app/auth/signup/page.tsx b/packages/generator/templates/app/src/app/auth/signup/page.tsx index c677705898..9f302256a3 100644 --- a/packages/generator/templates/app/src/app/auth/signup/page.tsx +++ b/packages/generator/templates/app/src/app/auth/signup/page.tsx @@ -1,18 +1,5 @@ -"use client" +import {SignupForm} from "../components/SignupForm" -import { useRouter } from "next/navigation" -import SignupForm from "../components/SignupForm" - -const SignUp = () => { - const router = useRouter() - return ( - { - router.refresh() - router.push("/") - }} - /> - ) +export default function SignUpPage() { + return } - -export default SignUp From a6ac10ca913e1754bc467111e8d9eb2022750e00 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Tue, 31 Oct 2023 17:53:32 +0530 Subject: [PATCH 64/95] re-add proper singup mutation --- apps/next13/src/auth/mutations/signup.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/apps/next13/src/auth/mutations/signup.ts b/apps/next13/src/auth/mutations/signup.ts index 29b63e027b..9bdc7a0013 100644 --- a/apps/next13/src/auth/mutations/signup.ts +++ b/apps/next13/src/auth/mutations/signup.ts @@ -1,11 +1,10 @@ import db from "../../../prisma" -// import {SecurePassword} from "@blitzjs/auth" +import {SecurePassword} from "@blitzjs/auth/secure-password" export default async function signup(input: {password: string; email: string}, ctx: any) { const blitzContext = ctx - // const hashedPassword = await SecurePassword.hash((input.password as string) || "test-password") - const hashedPassword = (input.password as string) || "test-password" - const email = (input.email as string) || "test" + Math.random() + "@test.com" + const hashedPassword = await SecurePassword.hash((input.password as string) || "test-password") + const email = input.email const user = await db.user.create({ data: {email, hashedPassword}, }) From 14549c72bd2d5fba143b66fc21cd883a720a8677 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Tue, 31 Oct 2023 18:09:16 +0530 Subject: [PATCH 65/95] remove console.log --- .../templates/app/src/app/auth/mutations/login.ts | 3 +-- .../templates/app/src/app/blitz-auth-config.ts | 6 +++--- .../templates/app/src/app/blitz-client.ts | 10 +++++----- .../templates/app/src/app/blitz-server.ts | 14 +++++++------- 4 files changed, 16 insertions(+), 17 deletions(-) diff --git a/packages/generator/templates/app/src/app/auth/mutations/login.ts b/packages/generator/templates/app/src/app/auth/mutations/login.ts index 678f673cd2..c1336a10e5 100644 --- a/packages/generator/templates/app/src/app/auth/mutations/login.ts +++ b/packages/generator/templates/app/src/app/auth/mutations/login.ts @@ -2,7 +2,7 @@ import {resolver} from "@blitzjs/rpc" import {AuthenticationError} from "blitz" import db from "db" import {Login} from "../validations" -import { SecurePassword } from "@blitzjs/auth/secure-password" +import {SecurePassword} from "@blitzjs/auth/secure-password" export const authenticateUser = async (rawEmail: string, rawPassword: string) => { const {email, password} = Login.parse({email: rawEmail, password: rawPassword}) @@ -24,6 +24,5 @@ export const authenticateUser = async (rawEmail: string, rawPassword: string) => export default resolver.pipe(resolver.zod(Login), async ({email, password}, ctx) => { const user = await authenticateUser(email, password) await ctx.session.$create({userId: user.id, role: user.role}) - console.log("user", user) return user }) diff --git a/packages/generator/templates/app/src/app/blitz-auth-config.ts b/packages/generator/templates/app/src/app/blitz-auth-config.ts index 2349ae74a1..a7240deb94 100644 --- a/packages/generator/templates/app/src/app/blitz-auth-config.ts +++ b/packages/generator/templates/app/src/app/blitz-auth-config.ts @@ -1,5 +1,5 @@ -import { AuthPluginClientOptions } from "@blitzjs/auth"; +import {AuthPluginClientOptions} from "@blitzjs/auth" export const authConfig: AuthPluginClientOptions = { - cookiePrefix: "app-dir" - } \ No newline at end of file + cookiePrefix: "app-dir", +} diff --git a/packages/generator/templates/app/src/app/blitz-client.ts b/packages/generator/templates/app/src/app/blitz-client.ts index b1c80b2846..a42dcecd9c 100644 --- a/packages/generator/templates/app/src/app/blitz-client.ts +++ b/packages/generator/templates/app/src/app/blitz-client.ts @@ -1,9 +1,9 @@ "use client" -import { AuthClientPlugin } from "@blitzjs/auth" -import { setupBlitzClient } from "@blitzjs/next" -import { BlitzRpcPlugin } from "@blitzjs/rpc" -import { authConfig } from "./blitz-auth-config" +import {AuthClientPlugin} from "@blitzjs/auth" +import {setupBlitzClient} from "@blitzjs/next" +import {BlitzRpcPlugin} from "@blitzjs/rpc" +import {authConfig} from "./blitz-auth-config" -export const { withBlitz, BlitzProvider } = setupBlitzClient({ +export const {withBlitz, BlitzProvider} = setupBlitzClient({ plugins: [AuthClientPlugin(authConfig), BlitzRpcPlugin({})], }) diff --git a/packages/generator/templates/app/src/app/blitz-server.ts b/packages/generator/templates/app/src/app/blitz-server.ts index 117d20aff1..2957df8fd3 100644 --- a/packages/generator/templates/app/src/app/blitz-server.ts +++ b/packages/generator/templates/app/src/app/blitz-server.ts @@ -1,11 +1,11 @@ -import { setupBlitzServer } from "@blitzjs/next" -import { AuthServerPlugin, PrismaStorage, simpleRolesIsAuthorized } from "@blitzjs/auth" +import {setupBlitzServer} from "@blitzjs/next" +import {AuthServerPlugin, PrismaStorage, simpleRolesIsAuthorized} from "@blitzjs/auth" import db from "db" -import { BlitzLogger } from "blitz" -import { RpcServerPlugin } from "@blitzjs/rpc" -import { authConfig } from "./blitz-auth-config" +import {BlitzLogger} from "blitz" +import {RpcServerPlugin} from "@blitzjs/rpc" +import {authConfig} from "./blitz-auth-config" -const { api, getBlitzContext, useAuthenticatedBlitzContext, invoke } = setupBlitzServer({ +const {api, getBlitzContext, useAuthenticatedBlitzContext, invoke} = setupBlitzServer({ plugins: [ AuthServerPlugin({ ...authConfig, @@ -17,4 +17,4 @@ const { api, getBlitzContext, useAuthenticatedBlitzContext, invoke } = setupBlit logger: BlitzLogger({}), }) -export { api, getBlitzContext, useAuthenticatedBlitzContext, invoke } +export {api, getBlitzContext, useAuthenticatedBlitzContext, invoke} From 6c70119860a3759e7b4084fa17fd25d04aa6ba3a Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Tue, 31 Oct 2023 18:10:57 +0530 Subject: [PATCH 66/95] fix additonal forms --- packages/generator/src/generators/app-generator.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/generator/src/generators/app-generator.ts b/packages/generator/src/generators/app-generator.ts index eaf1f57f70..cbc82ae0fa 100644 --- a/packages/generator/src/generators/app-generator.ts +++ b/packages/generator/src/generators/app-generator.ts @@ -81,6 +81,8 @@ export class AppGenerator extends Generator { "src/app/auth/components/LoginForm.tsx", "src/app/auth/components/LogoutButton.tsx", "src/app/auth/components/SignupForm.tsx", + "src/app/auth/components/ForgotPasswordForm.tsx", + "src/app/auth/components/ResetPasswordForm.tsx", "src/app/auth/mutations/login.ts", "src/app/auth/mutations/logout.ts", "src/app/auth/mutations/signup.ts", From c03a005c4bf422ef5406ed24245f6cf9a42f6064 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Tue, 31 Oct 2023 18:15:33 +0530 Subject: [PATCH 67/95] pnpm lock fix --- pnpm-lock.yaml | 232 +++++++++++++++++++++++++------------------------ 1 file changed, 119 insertions(+), 113 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a069b0d4e6..96b59def71 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,6 +4,11 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +patchedDependencies: + next-auth@4.18.7: + hash: ygacwffmvwfom5hjylvkeei4s4 + path: patches/next-auth@4.18.7.patch + importers: .: dependencies: @@ -53,16 +58,16 @@ importers: apps/next13: dependencies: "@blitzjs/auth": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-auth "@blitzjs/config": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/config "@blitzjs/next": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-rpc "@hookform/error-message": specifier: 2.0.0 @@ -77,7 +82,7 @@ importers: specifier: 4.0.10 version: 4.0.10(react-dom@18.2.0)(react@18.2.0) blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz flatted: specifier: 3.2.7 @@ -126,16 +131,16 @@ importers: apps/toolkit-app: dependencies: "@blitzjs/auth": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-auth "@blitzjs/config": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/config "@blitzjs/next": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-rpc "@hookform/error-message": specifier: 2.0.0 @@ -147,14 +152,14 @@ importers: specifier: 4.6.1 version: 4.6.1(prisma@4.6.1) blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz next: specifier: 13.5.2 version: 13.5.2(@babel/core@7.20.2)(react-dom@18.2.0)(react@18.2.0) next-auth: specifier: 4.18.7 - version: 4.18.7(next@13.5.2)(react-dom@18.2.0)(react@18.2.0) + version: 4.18.7(patch_hash=ygacwffmvwfom5hjylvkeei4s4)(next@13.5.2)(react-dom@18.2.0)(react@18.2.0) prisma: specifier: 4.6.1 version: 4.6.1 @@ -244,16 +249,16 @@ importers: apps/toolkit-app-passportjs: dependencies: "@blitzjs/auth": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-auth "@blitzjs/config": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/config "@blitzjs/next": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-rpc "@hookform/error-message": specifier: 2.0.0 @@ -265,7 +270,7 @@ importers: specifier: 4.6.1 version: 4.6.1(prisma@4.6.1) blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz next: specifier: 13.5.2 @@ -356,16 +361,16 @@ importers: apps/web: dependencies: "@blitzjs/auth": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-auth "@blitzjs/config": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/config "@blitzjs/next": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-rpc "@prisma/client": specifier: 4.6.1 @@ -377,7 +382,7 @@ importers: specifier: 1.0.37 version: 1.0.37 blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz jest: specifier: 29.3.0 @@ -423,19 +428,19 @@ importers: integration-tests/auth: dependencies: "@blitzjs/auth": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-auth "@blitzjs/config": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/config "@blitzjs/next": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-next "@prisma/client": specifier: 4.6.1 version: 4.6.1(prisma@4.6.1) blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz lowdb: specifier: 3.0.0 @@ -505,16 +510,16 @@ importers: integration-tests/auth-with-rpc: dependencies: "@blitzjs/auth": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-auth "@blitzjs/config": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/config "@blitzjs/next": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-rpc "@hookform/error-message": specifier: 2.0.0 @@ -526,7 +531,7 @@ importers: specifier: 4.6.1 version: 4.6.1(prisma@4.6.1) blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz delay: specifier: 5.0.0 @@ -626,19 +631,19 @@ importers: integration-tests/get-initial-props: dependencies: "@blitzjs/auth": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-auth "@blitzjs/next": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-rpc "@prisma/client": specifier: 4.6.1 version: 4.6.1(prisma@4.6.1) blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz lowdb: specifier: 3.0.0 @@ -657,7 +662,7 @@ importers: version: 18.2.0(react@18.2.0) devDependencies: "@blitzjs/config": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/config "@next/bundle-analyzer": specifier: 12.0.8 @@ -696,16 +701,16 @@ importers: integration-tests/middleware: dependencies: "@blitzjs/config": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/config "@blitzjs/next": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-rpc blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz next: specifier: 13.5.2 @@ -751,22 +756,22 @@ importers: integration-tests/next-13-app-dir: dependencies: "@blitzjs/auth": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-auth "@blitzjs/config": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/config "@blitzjs/next": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-rpc "@prisma/client": specifier: 4.6.1 version: 4.6.1(prisma@4.6.1) blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz lowdb: specifier: 3.0.0 @@ -836,19 +841,19 @@ importers: integration-tests/no-suspense: dependencies: "@blitzjs/auth": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-auth "@blitzjs/next": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-rpc "@prisma/client": specifier: 4.6.1 version: 4.6.1(prisma@4.6.1) blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz lowdb: specifier: 3.0.0 @@ -867,7 +872,7 @@ importers: version: 18.2.0(react@18.2.0) devDependencies: "@blitzjs/config": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/config "@next/bundle-analyzer": specifier: 12.0.8 @@ -906,16 +911,16 @@ importers: integration-tests/qm: dependencies: "@blitzjs/auth": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-auth "@blitzjs/config": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/config "@blitzjs/next": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-rpc "@prisma/client": specifier: 4.6.1 @@ -924,7 +929,7 @@ importers: specifier: 4.0.10 version: 4.0.10(react-dom@18.2.0)(react@18.2.0) blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz next: specifier: 13.5.2 @@ -970,16 +975,16 @@ importers: integration-tests/react-query-utils: dependencies: "@blitzjs/next": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-rpc "@prisma/client": specifier: 4.6.1 version: 4.6.1(prisma@4.6.1) blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz lowdb: specifier: 3.0.0 @@ -998,7 +1003,7 @@ importers: version: 18.2.0(react@18.2.0) devDependencies: "@blitzjs/config": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/config "@next/bundle-analyzer": specifier: 12.0.8 @@ -1037,16 +1042,16 @@ importers: integration-tests/rpc: dependencies: "@blitzjs/config": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/config "@blitzjs/next": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-rpc blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz next: specifier: 13.5.2 @@ -1086,16 +1091,16 @@ importers: integration-tests/rpc-path-root: dependencies: "@blitzjs/config": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/config "@blitzjs/next": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-rpc blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz next: specifier: 13.5.2 @@ -1135,19 +1140,19 @@ importers: integration-tests/trailing-slash: dependencies: "@blitzjs/auth": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-auth "@blitzjs/next": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz-rpc "@prisma/client": specifier: 4.6.1 version: 4.6.1(prisma@4.6.1) blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz lowdb: specifier: 3.0.0 @@ -1166,7 +1171,7 @@ importers: version: 18.2.0(react@18.2.0) devDependencies: "@blitzjs/config": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/config "@next/bundle-analyzer": specifier: 12.0.8 @@ -1205,13 +1210,13 @@ importers: integration-tests/utils: devDependencies: "@blitzjs/config": - specifier: workspace:2.0.0-beta.34 + specifier: workspace:2.0.0-beta.35 version: link:../../packages/config "@blitzjs/next": - specifier: workspace:2.0.0-beta.34 + specifier: workspace:2.0.0-beta.35 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: workspace:2.0.0-beta.34 + specifier: workspace:2.0.0-beta.35 version: link:../../packages/blitz-rpc "@tanstack/react-query": specifier: 4.13.0 @@ -1292,7 +1297,7 @@ importers: packages/blitz: dependencies: "@blitzjs/generator": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../generator "@mrleebo/prisma-ast": specifier: 0.2.6 @@ -1437,7 +1442,7 @@ importers: version: 2.1.1 devDependencies: "@blitzjs/config": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../config "@types/cookie": specifier: 0.4.1 @@ -1582,7 +1587,7 @@ importers: version: 0.11.0 devDependencies: "@blitzjs/config": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../config "@testing-library/react": specifier: 13.4.0 @@ -1606,14 +1611,14 @@ importers: specifier: 17.0.14 version: 17.0.14 blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../blitz next: specifier: 13.5.2 version: 13.5.2(@babel/core@7.20.2)(react-dom@18.2.0)(react@18.2.0) next-auth: specifier: 4.18.7 - version: 4.18.7(next@13.5.2)(react-dom@18.2.0)(react@18.2.0) + version: 4.18.7(patch_hash=ygacwffmvwfom5hjylvkeei4s4)(next@13.5.2)(react-dom@18.2.0)(react@18.2.0) react: specifier: 18.2.0 version: 18.2.0 @@ -1636,7 +1641,7 @@ importers: packages/blitz-next: dependencies: "@blitzjs/rpc": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../blitz-rpc "@types/hoist-non-react-statics": specifier: 3.3.1 @@ -1658,7 +1663,7 @@ importers: version: 8.1.1 devDependencies: "@blitzjs/config": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../config "@testing-library/dom": specifier: 8.13.0 @@ -1691,7 +1696,7 @@ importers: specifier: 4.0.0 version: 4.0.0(@types/react@18.0.25)(react-dom@18.2.0)(react@18.2.0) blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../blitz cross-spawn: specifier: 7.0.3 @@ -1758,10 +1763,10 @@ importers: version: 8.1.1 devDependencies: "@blitzjs/auth": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../blitz-auth "@blitzjs/config": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../config "@tanstack/query-core": specifier: 4.24.4 @@ -1776,7 +1781,7 @@ importers: specifier: 17.0.14 version: 17.0.14 blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../blitz next: specifier: 13.5.2 @@ -1815,13 +1820,13 @@ importers: specifier: 7.17.12 version: 7.17.12(@babel/core@7.12.10) "@blitzjs/generator": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../generator arg: specifier: 5.0.1 version: 5.0.1 blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../blitz chalk: specifier: ^4.1.0 @@ -1849,7 +1854,7 @@ importers: specifier: 7.12.10 version: 7.12.10(@babel/core@7.12.10) "@blitzjs/config": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../config "@types/jscodeshift": specifier: 0.11.2 @@ -1971,7 +1976,7 @@ importers: version: 3.20.2 devDependencies: "@blitzjs/config": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../config "@juanm04/cpx": specifier: 2.0.1 @@ -2047,7 +2052,7 @@ importers: version: 5.9.1(eslint@8.27.0)(supports-color@8.1.1)(typescript@4.8.4) devDependencies: "@blitzjs/config": - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../config "@types/react": specifier: 18.0.25 @@ -2071,7 +2076,7 @@ importers: recipes/base-web: dependencies: blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2084,7 +2089,7 @@ importers: recipes/bulma: dependencies: blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2097,7 +2102,7 @@ importers: recipes/bumbag-ui: dependencies: blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2113,7 +2118,7 @@ importers: recipes/chakra-ui: dependencies: blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2129,7 +2134,7 @@ importers: recipes/emotion: dependencies: blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2142,19 +2147,19 @@ importers: recipes/gh-action-yarn-mariadb: dependencies: blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz recipes/gh-action-yarn-postgres: dependencies: blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz recipes/ghost: dependencies: blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2167,7 +2172,7 @@ importers: recipes/graphql-apollo-server: dependencies: blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2183,7 +2188,7 @@ importers: recipes/logrocket: dependencies: blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2196,7 +2201,7 @@ importers: recipes/material-ui: dependencies: blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2209,7 +2214,7 @@ importers: recipes/next-ui: dependencies: blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2225,19 +2230,19 @@ importers: recipes/passenger: dependencies: blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz recipes/quirrel: dependencies: blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz recipes/reflexjs: dependencies: blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2253,13 +2258,13 @@ importers: recipes/render: dependencies: blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz recipes/secureheaders: dependencies: blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2275,7 +2280,7 @@ importers: recipes/stitches: dependencies: blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2288,7 +2293,7 @@ importers: recipes/styled-components: dependencies: blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2304,7 +2309,7 @@ importers: recipes/tailwind: dependencies: blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2317,7 +2322,7 @@ importers: recipes/theme-ui: dependencies: blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2333,7 +2338,7 @@ importers: recipes/vanilla-extract: dependencies: blitz: - specifier: 2.0.0-beta.34 + specifier: 2.0.0-beta.35 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -17283,7 +17288,7 @@ packages: } dev: false - /next-auth@4.18.7(next@13.5.2)(react-dom@18.2.0)(react@18.2.0): + /next-auth@4.18.7(patch_hash=ygacwffmvwfom5hjylvkeei4s4)(next@13.5.2)(react-dom@18.2.0)(react@18.2.0): resolution: { integrity: sha512-kR3s1JVPMaDuSAlFxcGyv7Ec3fdE6za71r1F77IOII5zJmW2wfkIA2xj223fM0D20ip2pzFpHfk/qN4L6l5XMA==, @@ -17310,6 +17315,7 @@ packages: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) uuid: 8.3.2 + patched: true /next-router-mock@0.9.1(next@13.5.2)(react@18.2.0): resolution: From 0b65bae5f75129ba58fe52afcf6735ae94679a10 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Tue, 31 Oct 2023 19:12:34 +0530 Subject: [PATCH 68/95] fix missing , --- packages/generator/templates/app/src/app/layout.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/generator/templates/app/src/app/layout.tsx b/packages/generator/templates/app/src/app/layout.tsx index 03c9bb8a3d..87fd372f57 100644 --- a/packages/generator/templates/app/src/app/layout.tsx +++ b/packages/generator/templates/app/src/app/layout.tsx @@ -5,7 +5,7 @@ import {Inter} from "next/font/google" const inter = Inter({subsets: ["latin"]}) export const metadata = { - title: { title: "New Blitz App", template: "%s – Blitz" } + title: { title: "New Blitz App", template: "%s – Blitz" }, description: "Generated by blitz new ", } From e7faa85003ac8082ec0ca03a722b91366b5172e8 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Mon, 27 Nov 2023 06:35:27 +0530 Subject: [PATCH 69/95] Add project package manager to postInstallSteps --- packages/blitz/src/cli/commands/new.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/blitz/src/cli/commands/new.ts b/packages/blitz/src/cli/commands/new.ts index ca95fc870b..00ea987849 100644 --- a/packages/blitz/src/cli/commands/new.ts +++ b/packages/blitz/src/cli/commands/new.ts @@ -274,7 +274,7 @@ const newApp: CliCommand = async () => { ) } - postInstallSteps.push("blitz dev") + postInstallSteps.push(`${projectPkgManger} blitz dev`) console.log("\n Your new Blitz app is ready! Next steps:") postInstallSteps.forEach((step, index) => { From cb6f346a1fc182f95d42d76077e2b12faecc795e Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Tue, 28 Nov 2023 22:04:35 +0530 Subject: [PATCH 70/95] add husky --- packages/generator/templates/app/package.ts.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/generator/templates/app/package.ts.json b/packages/generator/templates/app/package.ts.json index b7ada447e7..61ba6c9ace 100644 --- a/packages/generator/templates/app/package.ts.json +++ b/packages/generator/templates/app/package.ts.json @@ -28,6 +28,7 @@ "@blitzjs/rpc": "latest", "@prisma/client": "5.4.2", "blitz": "latest", + "husky": "8.0.2", "next": "13.5.4", "prisma": "5.4.2", "react": "18.2.0", From e5b69a5631df70b26268da39b0854d2ba1c82944 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Tue, 28 Nov 2023 22:05:44 +0530 Subject: [PATCH 71/95] move to devDeps --- packages/generator/templates/app/package.ts.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/generator/templates/app/package.ts.json b/packages/generator/templates/app/package.ts.json index 61ba6c9ace..884065af68 100644 --- a/packages/generator/templates/app/package.ts.json +++ b/packages/generator/templates/app/package.ts.json @@ -28,7 +28,6 @@ "@blitzjs/rpc": "latest", "@prisma/client": "5.4.2", "blitz": "latest", - "husky": "8.0.2", "next": "13.5.4", "prisma": "5.4.2", "react": "18.2.0", @@ -42,6 +41,7 @@ "@types/react-dom": "18.0.7", "eslint": "8.26.0", "eslint-config-next": "13.0.0", + "husky": "8.0.2", "typescript": "4.8.4" } } From b7b06cb376e1ad6857a615a7c9618abb8fbdadf7 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Tue, 28 Nov 2023 22:30:45 +0530 Subject: [PATCH 72/95] add preview email --- packages/generator/templates/app/package.ts.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/generator/templates/app/package.ts.json b/packages/generator/templates/app/package.ts.json index 884065af68..48e647c213 100644 --- a/packages/generator/templates/app/package.ts.json +++ b/packages/generator/templates/app/package.ts.json @@ -42,6 +42,7 @@ "eslint": "8.26.0", "eslint-config-next": "13.0.0", "husky": "8.0.2", + "preview-email": "3.0.7", "typescript": "4.8.4" } } From dc03526b8aa00349bf1ad4b9d2db55a125bf8ee3 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Tue, 28 Nov 2023 23:46:17 +0530 Subject: [PATCH 73/95] remove extra components folder --- .../templates/app/src/app/components/Form.tsx | 77 ------------------- .../src/app/components/LabeledTextField.tsx | 55 ------------- 2 files changed, 132 deletions(-) delete mode 100644 packages/generator/templates/app/src/app/components/Form.tsx delete mode 100644 packages/generator/templates/app/src/app/components/LabeledTextField.tsx diff --git a/packages/generator/templates/app/src/app/components/Form.tsx b/packages/generator/templates/app/src/app/components/Form.tsx deleted file mode 100644 index cc69db1c3b..0000000000 --- a/packages/generator/templates/app/src/app/components/Form.tsx +++ /dev/null @@ -1,77 +0,0 @@ -import { useState, ReactNode, PropsWithoutRef } from "react" -import { Formik, FormikProps } from "formik" -import { validateZodSchema } from "blitz" -import { z } from "zod" - -export interface FormProps> - extends Omit, "onSubmit"> { - /** All your form fields */ - children?: ReactNode - /** Text to display in the submit button */ - submitText?: string - schema?: S - onSubmit: (values: z.infer) => Promise - initialValues?: FormikProps>["initialValues"] -} - -interface OnSubmitResult { - FORM_ERROR?: string - [prop: string]: any -} - -export const FORM_ERROR = "FORM_ERROR" - -export function Form>({ - children, - submitText, - schema, - initialValues, - onSubmit, - ...props -}: FormProps) { - const [formError, setFormError] = useState(null) - return ( - { - const { FORM_ERROR, ...otherErrors } = (await onSubmit(values)) || {} - - if (FORM_ERROR) { - setFormError(FORM_ERROR) - } - - if (Object.keys(otherErrors).length > 0) { - setErrors(otherErrors) - } - }} - > - {({ handleSubmit, isSubmitting }) => ( -
- {/* Form fields supplied as children are rendered here */} - {children} - - {formError && ( -
- {formError} -
- )} - - {submitText && ( - - )} - - -
- )} -
- ) -} - -export default Form diff --git a/packages/generator/templates/app/src/app/components/LabeledTextField.tsx b/packages/generator/templates/app/src/app/components/LabeledTextField.tsx deleted file mode 100644 index b43dce98b9..0000000000 --- a/packages/generator/templates/app/src/app/components/LabeledTextField.tsx +++ /dev/null @@ -1,55 +0,0 @@ -import { forwardRef, PropsWithoutRef } from "react" -import { useField, useFormikContext, ErrorMessage } from "formik" - -export interface LabeledTextFieldProps extends PropsWithoutRef { - /** Field name. */ - name: string - /** Field label. */ - label: string - /** Field type. Doesn't include radio buttons and checkboxes */ - type?: "text" | "password" | "email" | "number" - outerProps?: PropsWithoutRef -} - -export const LabeledTextField = forwardRef( - ({ name, label, outerProps, ...props }, ref) => { - const [input] = useField(name) - const { isSubmitting } = useFormikContext() - - return ( -
- - - - {(msg) => ( -
- {msg} -
- )} -
- - -
- ) - } -) - -export default LabeledTextField From fb3f2eb5610ad78a5a18c314ac3dba3ea91441b6 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Tue, 28 Nov 2023 23:55:22 +0530 Subject: [PATCH 74/95] add 800px as maximum of body size --- packages/generator/templates/app/src/app/styles/Home.module.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/generator/templates/app/src/app/styles/Home.module.css b/packages/generator/templates/app/src/app/styles/Home.module.css index 3453d1ee11..106f320c43 100644 --- a/packages/generator/templates/app/src/app/styles/Home.module.css +++ b/packages/generator/templates/app/src/app/styles/Home.module.css @@ -47,7 +47,7 @@ width: 100%; flex-direction: row; align-self: center; - max-width: var(--screen-width); + max-width: min(800px, var(--screen-width)); } .instructions { From 18da91dd2e7fe82c8f6aa71fa168fd5fcbfaa779 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Wed, 29 Nov 2023 00:01:42 +0530 Subject: [PATCH 75/95] remove auth from reset-password url --- .../generator/templates/app/mailers/forgotPasswordMailer.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/generator/templates/app/mailers/forgotPasswordMailer.ts b/packages/generator/templates/app/mailers/forgotPasswordMailer.ts index baace45b9a..5005e42fe4 100644 --- a/packages/generator/templates/app/mailers/forgotPasswordMailer.ts +++ b/packages/generator/templates/app/mailers/forgotPasswordMailer.ts @@ -13,7 +13,7 @@ type ResetPasswordMailer = { export function forgotPasswordMailer({ to, token }: ResetPasswordMailer) { // In production, set APP_ORIGIN to your production server origin const origin = process.env.APP_ORIGIN || process.env.BLITZ_DEV_SERVER_ORIGIN - const resetUrl = `${origin}/auth/reset-password?token=${token}` + const resetUrl = `${origin}/reset-password?token=${token}` const msg = { from: "TODO@example.com", From 737e17566a4eb2c42beddebf1cdd18f36e49e0ae Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Wed, 29 Nov 2023 00:12:23 +0530 Subject: [PATCH 76/95] fix non-existant compoennts --- .../generator/src/generators/app-generator.ts | 27 +++++++++++++------ 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/packages/generator/src/generators/app-generator.ts b/packages/generator/src/generators/app-generator.ts index cbc82ae0fa..8f0e0cb39b 100644 --- a/packages/generator/src/generators/app-generator.ts +++ b/packages/generator/src/generators/app-generator.ts @@ -328,14 +328,25 @@ export class AppGenerator extends Generator { pkg.dependencies["formik"] = "2.x" break } - this.fs.move( - this.destinationPath(`_forms/${type}/Form.${ext}`), - this.destinationPath(`src/core/components/Form.${ext}`), - ) - this.fs.move( - this.destinationPath(`_forms/${type}/LabeledTextField.${ext}`), - this.destinationPath(`src/core/components/LabeledTextField.${ext}`), - ) + if (this.options.template.path === "app") { + this.fs.move( + this.destinationPath(`_forms/${type}/Form.${ext}`), + this.destinationPath(`src/app/components/Form.${ext}`), + ) + this.fs.move( + this.destinationPath(`_forms/${type}/LabeledTextField.${ext}`), + this.destinationPath(`src/app/components/LabeledTextField.${ext}`), + ) + } else { + this.fs.move( + this.destinationPath(`_forms/${type}/Form.${ext}`), + this.destinationPath(`src/core/components/Form.${ext}`), + ) + this.fs.move( + this.destinationPath(`_forms/${type}/LabeledTextField.${ext}`), + this.destinationPath(`src/core/components/LabeledTextField.${ext}`), + ) + } this.fs.writeJSON(this.destinationPath("package.json"), pkg) this.fs.delete(this.destinationPath("_forms")) From 0cef2f33f35b691dd3b72ca7b9d9e47470cbbd18 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Wed, 29 Nov 2023 00:23:49 +0530 Subject: [PATCH 77/95] pnpm --- pnpm-lock.yaml | 1226 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 833 insertions(+), 393 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 96b59def71..723b76f642 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -58,16 +58,16 @@ importers: apps/next13: dependencies: "@blitzjs/auth": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-auth "@blitzjs/config": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/config "@blitzjs/next": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-rpc "@hookform/error-message": specifier: 2.0.0 @@ -82,7 +82,7 @@ importers: specifier: 4.0.10 version: 4.0.10(react-dom@18.2.0)(react@18.2.0) blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz flatted: specifier: 3.2.7 @@ -131,16 +131,16 @@ importers: apps/toolkit-app: dependencies: "@blitzjs/auth": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-auth "@blitzjs/config": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/config "@blitzjs/next": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-rpc "@hookform/error-message": specifier: 2.0.0 @@ -152,7 +152,7 @@ importers: specifier: 4.6.1 version: 4.6.1(prisma@4.6.1) blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz next: specifier: 13.5.2 @@ -249,16 +249,16 @@ importers: apps/toolkit-app-passportjs: dependencies: "@blitzjs/auth": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-auth "@blitzjs/config": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/config "@blitzjs/next": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-rpc "@hookform/error-message": specifier: 2.0.0 @@ -270,7 +270,7 @@ importers: specifier: 4.6.1 version: 4.6.1(prisma@4.6.1) blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz next: specifier: 13.5.2 @@ -361,16 +361,16 @@ importers: apps/web: dependencies: "@blitzjs/auth": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-auth "@blitzjs/config": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/config "@blitzjs/next": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-rpc "@prisma/client": specifier: 4.6.1 @@ -382,7 +382,7 @@ importers: specifier: 1.0.37 version: 1.0.37 blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz jest: specifier: 29.3.0 @@ -428,19 +428,19 @@ importers: integration-tests/auth: dependencies: "@blitzjs/auth": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-auth "@blitzjs/config": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/config "@blitzjs/next": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-next "@prisma/client": specifier: 4.6.1 version: 4.6.1(prisma@4.6.1) blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz lowdb: specifier: 3.0.0 @@ -510,16 +510,16 @@ importers: integration-tests/auth-with-rpc: dependencies: "@blitzjs/auth": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-auth "@blitzjs/config": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/config "@blitzjs/next": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-rpc "@hookform/error-message": specifier: 2.0.0 @@ -531,7 +531,7 @@ importers: specifier: 4.6.1 version: 4.6.1(prisma@4.6.1) blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz delay: specifier: 5.0.0 @@ -631,19 +631,19 @@ importers: integration-tests/get-initial-props: dependencies: "@blitzjs/auth": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-auth "@blitzjs/next": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-rpc "@prisma/client": specifier: 4.6.1 version: 4.6.1(prisma@4.6.1) blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz lowdb: specifier: 3.0.0 @@ -662,7 +662,7 @@ importers: version: 18.2.0(react@18.2.0) devDependencies: "@blitzjs/config": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/config "@next/bundle-analyzer": specifier: 12.0.8 @@ -701,16 +701,16 @@ importers: integration-tests/middleware: dependencies: "@blitzjs/config": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/config "@blitzjs/next": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-rpc blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz next: specifier: 13.5.2 @@ -756,22 +756,22 @@ importers: integration-tests/next-13-app-dir: dependencies: "@blitzjs/auth": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-auth "@blitzjs/config": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/config "@blitzjs/next": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-rpc "@prisma/client": specifier: 4.6.1 version: 4.6.1(prisma@4.6.1) blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz lowdb: specifier: 3.0.0 @@ -841,19 +841,19 @@ importers: integration-tests/no-suspense: dependencies: "@blitzjs/auth": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-auth "@blitzjs/next": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-rpc "@prisma/client": specifier: 4.6.1 version: 4.6.1(prisma@4.6.1) blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz lowdb: specifier: 3.0.0 @@ -872,7 +872,7 @@ importers: version: 18.2.0(react@18.2.0) devDependencies: "@blitzjs/config": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/config "@next/bundle-analyzer": specifier: 12.0.8 @@ -911,16 +911,16 @@ importers: integration-tests/qm: dependencies: "@blitzjs/auth": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-auth "@blitzjs/config": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/config "@blitzjs/next": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-rpc "@prisma/client": specifier: 4.6.1 @@ -929,7 +929,7 @@ importers: specifier: 4.0.10 version: 4.0.10(react-dom@18.2.0)(react@18.2.0) blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz next: specifier: 13.5.2 @@ -975,16 +975,16 @@ importers: integration-tests/react-query-utils: dependencies: "@blitzjs/next": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-rpc "@prisma/client": specifier: 4.6.1 version: 4.6.1(prisma@4.6.1) blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz lowdb: specifier: 3.0.0 @@ -1003,7 +1003,7 @@ importers: version: 18.2.0(react@18.2.0) devDependencies: "@blitzjs/config": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/config "@next/bundle-analyzer": specifier: 12.0.8 @@ -1042,16 +1042,16 @@ importers: integration-tests/rpc: dependencies: "@blitzjs/config": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/config "@blitzjs/next": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-rpc blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz next: specifier: 13.5.2 @@ -1091,16 +1091,16 @@ importers: integration-tests/rpc-path-root: dependencies: "@blitzjs/config": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/config "@blitzjs/next": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-rpc blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz next: specifier: 13.5.2 @@ -1140,19 +1140,19 @@ importers: integration-tests/trailing-slash: dependencies: "@blitzjs/auth": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-auth "@blitzjs/next": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz-rpc "@prisma/client": specifier: 4.6.1 version: 4.6.1(prisma@4.6.1) blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz lowdb: specifier: 3.0.0 @@ -1171,7 +1171,7 @@ importers: version: 18.2.0(react@18.2.0) devDependencies: "@blitzjs/config": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/config "@next/bundle-analyzer": specifier: 12.0.8 @@ -1210,13 +1210,13 @@ importers: integration-tests/utils: devDependencies: "@blitzjs/config": - specifier: workspace:2.0.0-beta.35 + specifier: workspace:2.0.0-beta.36 version: link:../../packages/config "@blitzjs/next": - specifier: workspace:2.0.0-beta.35 + specifier: workspace:2.0.0-beta.36 version: link:../../packages/blitz-next "@blitzjs/rpc": - specifier: workspace:2.0.0-beta.35 + specifier: workspace:2.0.0-beta.36 version: link:../../packages/blitz-rpc "@tanstack/react-query": specifier: 4.13.0 @@ -1297,7 +1297,7 @@ importers: packages/blitz: dependencies: "@blitzjs/generator": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../generator "@mrleebo/prisma-ast": specifier: 0.2.6 @@ -1442,7 +1442,7 @@ importers: version: 2.1.1 devDependencies: "@blitzjs/config": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../config "@types/cookie": specifier: 0.4.1 @@ -1587,7 +1587,7 @@ importers: version: 0.11.0 devDependencies: "@blitzjs/config": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../config "@testing-library/react": specifier: 13.4.0 @@ -1611,7 +1611,7 @@ importers: specifier: 17.0.14 version: 17.0.14 blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../blitz next: specifier: 13.5.2 @@ -1641,7 +1641,7 @@ importers: packages/blitz-next: dependencies: "@blitzjs/rpc": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../blitz-rpc "@types/hoist-non-react-statics": specifier: 3.3.1 @@ -1663,7 +1663,7 @@ importers: version: 8.1.1 devDependencies: "@blitzjs/config": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../config "@testing-library/dom": specifier: 8.13.0 @@ -1696,7 +1696,7 @@ importers: specifier: 4.0.0 version: 4.0.0(@types/react@18.0.25)(react-dom@18.2.0)(react@18.2.0) blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../blitz cross-spawn: specifier: 7.0.3 @@ -1763,10 +1763,10 @@ importers: version: 8.1.1 devDependencies: "@blitzjs/auth": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../blitz-auth "@blitzjs/config": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../config "@tanstack/query-core": specifier: 4.24.4 @@ -1781,7 +1781,7 @@ importers: specifier: 17.0.14 version: 17.0.14 blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../blitz next: specifier: 13.5.2 @@ -1820,13 +1820,13 @@ importers: specifier: 7.17.12 version: 7.17.12(@babel/core@7.12.10) "@blitzjs/generator": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../generator arg: specifier: 5.0.1 version: 5.0.1 blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../blitz chalk: specifier: ^4.1.0 @@ -1854,7 +1854,7 @@ importers: specifier: 7.12.10 version: 7.12.10(@babel/core@7.12.10) "@blitzjs/config": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../config "@types/jscodeshift": specifier: 0.11.2 @@ -1867,7 +1867,7 @@ importers: version: 0.14.2 unbuild: specifier: 0.7.6 - version: 0.7.6(supports-color@8.1.1) + version: 0.7.6 watch: specifier: 1.0.2 version: 1.0.2 @@ -1976,7 +1976,7 @@ importers: version: 3.20.2 devDependencies: "@blitzjs/config": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../config "@juanm04/cpx": specifier: 2.0.1 @@ -2052,7 +2052,7 @@ importers: version: 5.9.1(eslint@8.27.0)(supports-color@8.1.1)(typescript@4.8.4) devDependencies: "@blitzjs/config": - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../config "@types/react": specifier: 18.0.25 @@ -2068,7 +2068,7 @@ importers: version: 4.8.4 unbuild: specifier: 0.7.6 - version: 0.7.6(supports-color@8.1.1) + version: 0.7.6 watch: specifier: 1.0.2 version: 1.0.2 @@ -2076,7 +2076,7 @@ importers: recipes/base-web: dependencies: blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2089,7 +2089,7 @@ importers: recipes/bulma: dependencies: blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2102,7 +2102,7 @@ importers: recipes/bumbag-ui: dependencies: blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2118,7 +2118,7 @@ importers: recipes/chakra-ui: dependencies: blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2134,7 +2134,7 @@ importers: recipes/emotion: dependencies: blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2147,19 +2147,19 @@ importers: recipes/gh-action-yarn-mariadb: dependencies: blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz recipes/gh-action-yarn-postgres: dependencies: blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz recipes/ghost: dependencies: blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2172,7 +2172,7 @@ importers: recipes/graphql-apollo-server: dependencies: blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2188,7 +2188,7 @@ importers: recipes/logrocket: dependencies: blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2201,7 +2201,7 @@ importers: recipes/material-ui: dependencies: blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2214,7 +2214,7 @@ importers: recipes/next-ui: dependencies: blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2230,19 +2230,19 @@ importers: recipes/passenger: dependencies: blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz recipes/quirrel: dependencies: blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz recipes/reflexjs: dependencies: blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2258,13 +2258,13 @@ importers: recipes/render: dependencies: blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz recipes/secureheaders: dependencies: blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2280,7 +2280,7 @@ importers: recipes/stitches: dependencies: blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2293,7 +2293,7 @@ importers: recipes/styled-components: dependencies: blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2309,7 +2309,7 @@ importers: recipes/tailwind: dependencies: blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2322,7 +2322,7 @@ importers: recipes/theme-ui: dependencies: blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2338,7 +2338,7 @@ importers: recipes/vanilla-extract: dependencies: blitz: - specifier: 2.0.0-beta.35 + specifier: 2.0.0-beta.36 version: link:../../packages/blitz jscodeshift: specifier: 0.13.0 @@ -2471,11 +2471,11 @@ packages: debug: 4.3.3(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.1 - semver: 6.3.1 + semver: 6.3.0 transitivePeerDependencies: - supports-color - /@babel/core@7.20.2(supports-color@8.1.1): + /@babel/core@7.20.2: resolution: { integrity: sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==, @@ -2500,6 +2500,32 @@ packages: transitivePeerDependencies: - supports-color + /@babel/core@7.20.2(supports-color@8.1.1): + resolution: + { + integrity: sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==, + } + engines: {node: ">=6.9.0"} + dependencies: + "@ampproject/remapping": 2.2.0 + "@babel/code-frame": 7.18.6 + "@babel/generator": 7.20.4 + "@babel/helper-compilation-targets": 7.20.0(@babel/core@7.20.2) + "@babel/helper-module-transforms": 7.20.2(supports-color@8.1.1) + "@babel/helpers": 7.20.1(supports-color@8.1.1) + "@babel/parser": 7.20.3 + "@babel/template": 7.18.10 + "@babel/traverse": 7.20.1(supports-color@8.1.1) + "@babel/types": 7.20.2 + convert-source-map: 1.8.0 + debug: 4.3.3(supports-color@8.1.1) + gensync: 1.0.0-beta.2 + json5: 2.2.1 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/generator@7.18.2: resolution: { @@ -2507,7 +2533,7 @@ packages: } engines: {node: ">=6.9.0"} dependencies: - "@babel/types": 7.20.2 + "@babel/types": 7.18.4 "@jridgewell/gen-mapping": 0.3.1 jsesc: 2.5.2 @@ -2564,7 +2590,7 @@ packages: "@babel/core": 7.12.10(supports-color@8.1.1) "@babel/helper-validator-option": 7.16.7 browserslist: 4.20.3 - semver: 6.3.1 + semver: 6.3.0 /@babel/helper-compilation-targets@7.18.2(@babel/core@7.18.2): resolution: @@ -2579,7 +2605,7 @@ packages: "@babel/core": 7.18.2(supports-color@8.1.1) "@babel/helper-validator-option": 7.16.7 browserslist: 4.20.3 - semver: 6.3.1 + semver: 6.3.0 /@babel/helper-compilation-targets@7.20.0(@babel/core@7.20.2): resolution: @@ -2591,10 +2617,10 @@ packages: "@babel/core": ^7.0.0 dependencies: "@babel/compat-data": 7.20.1 - "@babel/core": 7.20.2(supports-color@8.1.1) + "@babel/core": 7.20.2 "@babel/helper-validator-option": 7.18.6 browserslist: 4.21.4 - semver: 6.3.1 + semver: 6.3.0 /@babel/helper-create-class-features-plugin@7.17.12(@babel/core@7.12.10): resolution: @@ -2860,6 +2886,7 @@ packages: integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==, } engines: {node: ">=6.9.0"} + dev: true /@babel/helper-remap-async-to-generator@7.16.8(supports-color@8.1.1): resolution: @@ -2979,7 +3006,7 @@ packages: "@babel/helper-function-name": 7.17.9 "@babel/template": 7.16.7 "@babel/traverse": 7.18.2(supports-color@8.1.1) - "@babel/types": 7.20.2 + "@babel/types": 7.18.4 transitivePeerDependencies: - supports-color @@ -3345,7 +3372,7 @@ packages: "@babel/core": ^7.0.0-0 dependencies: "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.20.2 + "@babel/helper-plugin-utils": 7.17.12 /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.12.10): resolution: @@ -3390,7 +3417,7 @@ packages: "@babel/core": ^7.0.0-0 dependencies: "@babel/core": 7.18.2(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.20.2 + "@babel/helper-plugin-utils": 7.17.12 dev: false /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.12.10): @@ -3402,7 +3429,7 @@ packages: "@babel/core": ^7.0.0-0 dependencies: "@babel/core": 7.12.10 - "@babel/helper-plugin-utils": 7.20.2 + "@babel/helper-plugin-utils": 7.17.12 /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.12.10): resolution: @@ -3449,7 +3476,7 @@ packages: peerDependencies: "@babel/core": ^7.0.0-0 dependencies: - "@babel/core": 7.20.2(supports-color@8.1.1) + "@babel/core": 7.20.2 "@babel/helper-plugin-utils": 7.20.2 dev: true @@ -4074,7 +4101,7 @@ packages: peerDependencies: "@babel/core": ^7.0.0-0 dependencies: - "@babel/core": 7.20.2(supports-color@8.1.1) + "@babel/core": 7.20.2 "@babel/plugin-transform-react-jsx": 7.19.0(@babel/core@7.20.2) dev: true @@ -4100,7 +4127,7 @@ packages: peerDependencies: "@babel/core": ^7.0.0-0 dependencies: - "@babel/core": 7.20.2(supports-color@8.1.1) + "@babel/core": 7.20.2 "@babel/helper-plugin-utils": 7.20.2 dev: true @@ -4126,7 +4153,7 @@ packages: peerDependencies: "@babel/core": ^7.0.0-0 dependencies: - "@babel/core": 7.20.2(supports-color@8.1.1) + "@babel/core": 7.20.2 "@babel/helper-plugin-utils": 7.20.2 dev: true @@ -4156,7 +4183,7 @@ packages: peerDependencies: "@babel/core": ^7.0.0-0 dependencies: - "@babel/core": 7.20.2(supports-color@8.1.1) + "@babel/core": 7.20.2 "@babel/helper-annotate-as-pure": 7.18.6 "@babel/helper-module-imports": 7.18.6 "@babel/helper-plugin-utils": 7.20.2 @@ -4379,7 +4406,7 @@ packages: "@babel/plugin-transform-typeof-symbol": 7.17.12(@babel/core@7.12.10) "@babel/plugin-transform-unicode-escapes": 7.16.7(@babel/core@7.12.10) "@babel/plugin-transform-unicode-regex": 7.16.7(@babel/core@7.12.10) - "@babel/preset-modules": 0.1.6(@babel/core@7.12.10) + "@babel/preset-modules": 0.1.5(@babel/core@7.12.10) "@babel/types": 7.17.12 core-js-compat: 3.22.5 semver: 5.7.1 @@ -4457,7 +4484,7 @@ packages: "@babel/plugin-transform-typeof-symbol": 7.17.12(@babel/core@7.12.10) "@babel/plugin-transform-unicode-escapes": 7.16.7(@babel/core@7.12.10) "@babel/plugin-transform-unicode-regex": 7.16.7(@babel/core@7.12.10) - "@babel/preset-modules": 0.1.6(@babel/core@7.12.10) + "@babel/preset-modules": 0.1.5(@babel/core@7.12.10) "@babel/types": 7.17.12 core-js-compat: 3.22.5 semver: 5.7.1 @@ -4480,19 +4507,19 @@ packages: "@babel/plugin-transform-flow-strip-types": 7.17.12(@babel/core@7.18.2) dev: false - /@babel/preset-modules@0.1.6(@babel/core@7.12.10): + /@babel/preset-modules@0.1.5(@babel/core@7.12.10): resolution: { - integrity: sha512-ID2yj6K/4lKfhuU3+EX4UvNbIt7eACFbHmNUjzA+ep+B5971CknnA/9DEWKbRokfbbtblxxxXFJJrH47UEAMVg==, + integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==, } peerDependencies: - "@babel/core": ^7.0.0-0 || ^8.0.0-0 <8.0.0 + "@babel/core": ^7.0.0-0 dependencies: "@babel/core": 7.12.10(supports-color@8.1.1) - "@babel/helper-plugin-utils": 7.20.2 + "@babel/helper-plugin-utils": 7.17.12 "@babel/plugin-proposal-unicode-property-regex": 7.17.12(@babel/core@7.12.10) "@babel/plugin-transform-dotall-regex": 7.16.7(@babel/core@7.12.10) - "@babel/types": 7.12.10 + "@babel/types": 7.18.4 esutils: 2.0.3 /@babel/preset-typescript@7.17.12(@babel/core@7.18.2)(supports-color@8.1.1): @@ -4556,6 +4583,7 @@ packages: engines: {node: ">=6.9.0"} dependencies: regenerator-runtime: 0.14.0 + dev: true /@babel/standalone@7.18.9: resolution: @@ -4574,7 +4602,7 @@ packages: dependencies: "@babel/code-frame": 7.16.7 "@babel/parser": 7.18.4 - "@babel/types": 7.20.2 + "@babel/types": 7.18.4 /@babel/template@7.18.10: resolution: @@ -4706,7 +4734,7 @@ packages: integrity: sha512-gp6nIdVdfYdwKww2+f8whckKmvfE4JEm4jJgBhTmooi0uzHWhnxvk6JIzQi89qEAMINN0SeVNnXiAtbFY0Mj3w==, } dependencies: - "@babel/runtime": 7.23.2 + "@babel/runtime": 7.18.3 "@changesets/config": 2.0.0 "@changesets/get-version-range-type": 0.3.2 "@changesets/git": 1.3.2 @@ -4727,7 +4755,7 @@ packages: integrity: sha512-I+TTkUoqvxBEuDLoJfJYKDXIJ+nyiTbVJ8KGhpXEsLq4N/ms/AStSbouJwF2d/p3cB+RCPr5+gXh31GSN4kA7w==, } dependencies: - "@babel/runtime": 7.23.2 + "@babel/runtime": 7.18.3 "@changesets/errors": 0.1.4 "@changesets/get-dependents-graph": 1.3.2 "@changesets/types": 5.0.0 @@ -4828,7 +4856,7 @@ packages: integrity: sha512-5C1r4DcOjVxcCvPmXpymeyT6mdSTLCNiB2L+5uf19BRkDKndJdIQorH5Fe2XBR2nHUcZQFT+2TXDzCepat969w==, } dependencies: - "@babel/runtime": 7.23.2 + "@babel/runtime": 7.18.3 "@changesets/assemble-release-plan": 5.1.3 "@changesets/config": 2.0.0 "@changesets/pre": 1.0.11 @@ -4850,7 +4878,7 @@ packages: integrity: sha512-p5UL+urAg0Nnpt70DLiBe2iSsMcDubTo9fTOD/61krmcJ466MGh71OHwdAwu1xG5+NKzeysdy1joRTg8CXcEXA==, } dependencies: - "@babel/runtime": 7.23.2 + "@babel/runtime": 7.18.3 "@changesets/errors": 0.1.4 "@changesets/types": 5.0.0 "@manypkg/get-packages": 1.1.3 @@ -4883,7 +4911,7 @@ packages: integrity: sha512-CXZnt4SV9waaC9cPLm7818+SxvLKIDHUxaiTXnJYDp1c56xIexx1BNfC1yMuOdzO2a3rAIcZua5Odxr3dwSKfg==, } dependencies: - "@babel/runtime": 7.23.2 + "@babel/runtime": 7.18.3 "@changesets/errors": 0.1.4 "@changesets/types": 5.0.0 "@manypkg/get-packages": 1.1.3 @@ -4896,7 +4924,7 @@ packages: integrity: sha512-bzonrPWc29Tsjvgh+8CqJ0apQOwWim0zheeD4ZK44ApSa/GudnZJTODtA3yNOOuQzeZmL0NUebVoHIurtIkA7w==, } dependencies: - "@babel/runtime": 7.23.2 + "@babel/runtime": 7.18.3 "@changesets/git": 1.3.2 "@changesets/logger": 0.0.5 "@changesets/parse": 0.3.13 @@ -4933,7 +4961,7 @@ packages: integrity: sha512-oIHeFVMuP6jf0TPnKPpaFpvvAf3JBc+s2pmVChbeEgQTBTALoF51Z9kqxQfG4XONZPHZnqkmy564c7qohhhhTQ==, } dependencies: - "@babel/runtime": 7.23.2 + "@babel/runtime": 7.18.3 "@changesets/types": 5.0.0 fs-extra: 7.0.1 human-id: 1.0.2 @@ -5664,7 +5692,7 @@ packages: integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==, } dependencies: - "@babel/runtime": 7.23.2 + "@babel/runtime": 7.18.3 "@types/node": 12.20.55 find-up: 4.1.0 fs-extra: 8.1.0 @@ -5676,7 +5704,7 @@ packages: integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==, } dependencies: - "@babel/runtime": 7.23.2 + "@babel/runtime": 7.18.3 "@changesets/types": 4.1.0 "@manypkg/find-root": 1.1.0 fs-extra: 8.1.0 @@ -5912,6 +5940,7 @@ packages: picocolors: 1.0.0 tiny-glob: 0.2.9 tslib: 2.4.0 + dev: true /@polka/url@1.0.0-next.21: resolution: @@ -7897,7 +7926,7 @@ packages: peerDependencies: vite: ^3.0.0 dependencies: - "@babel/core": 7.20.2(supports-color@8.1.1) + "@babel/core": 7.20.2 "@babel/plugin-transform-react-jsx": 7.19.0(@babel/core@7.20.2) "@babel/plugin-transform-react-jsx-development": 7.18.6(@babel/core@7.20.2) "@babel/plugin-transform-react-jsx-self": 7.18.6(@babel/core@7.20.2) @@ -8155,7 +8184,7 @@ packages: } engines: {node: ">=6.0"} dependencies: - "@babel/runtime": 7.23.2 + "@babel/runtime": 7.18.3 "@babel/runtime-corejs3": 7.18.3 /aria-query@5.0.0: @@ -8205,7 +8234,7 @@ packages: integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==, } dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 is-array-buffer: 3.0.2 /array-differ@3.0.0: @@ -8219,6 +8248,19 @@ packages: resolution: {integrity: sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=} dev: true + /array-includes@3.1.5: + resolution: + { + integrity: sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==, + } + engines: {node: ">= 0.4"} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + get-intrinsic: 1.1.1 + is-string: 1.0.7 + /array-includes@3.1.7: resolution: { @@ -8226,11 +8268,12 @@ packages: } engines: {node: ">= 0.4"} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 - get-intrinsic: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 is-string: 1.0.7 + dev: true /array-union@1.0.2: resolution: @@ -8272,11 +8315,24 @@ packages: } engines: {node: ">= 0.4"} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.0 + get-intrinsic: 1.2.2 + dev: true + + /array.prototype.flat@1.3.0: + resolution: + { + integrity: sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==, + } + engines: {node: ">= 0.4"} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 es-shim-unscopables: 1.0.0 - get-intrinsic: 1.2.1 /array.prototype.flat@1.3.2: resolution: @@ -8285,9 +8341,22 @@ packages: } engines: {node: ">= 0.4"} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.0 + dev: true + + /array.prototype.flatmap@1.3.0: + resolution: + { + integrity: sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==, + } + engines: {node: ">= 0.4"} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 es-shim-unscopables: 1.0.0 /array.prototype.flatmap@1.3.2: @@ -8297,10 +8366,11 @@ packages: } engines: {node: ">= 0.4"} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.3 es-shim-unscopables: 1.0.0 + dev: true /array.prototype.tosorted@1.1.2: resolution: @@ -8308,11 +8378,11 @@ packages: integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==, } dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.3 es-shim-unscopables: 1.0.0 - get-intrinsic: 1.2.1 + get-intrinsic: 1.2.2 dev: true /arraybuffer.prototype.slice@1.0.2: @@ -8323,10 +8393,10 @@ packages: engines: {node: ">= 0.4"} dependencies: array-buffer-byte-length: 1.0.0 - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 - get-intrinsic: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 is-array-buffer: 3.0.2 is-shared-array-buffer: 1.0.2 @@ -8574,7 +8644,7 @@ packages: integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==, } dependencies: - object.assign: 4.1.4 + object.assign: 4.1.2 /babel-plugin-istanbul@6.1.1: resolution: @@ -8583,7 +8653,7 @@ packages: } engines: {node: ">=8"} dependencies: - "@babel/helper-plugin-utils": 7.20.2 + "@babel/helper-plugin-utils": 7.17.12 "@istanbuljs/load-nyc-config": 1.1.0 "@istanbuljs/schema": 0.1.3 istanbul-lib-instrument: 5.2.0 @@ -8598,7 +8668,7 @@ packages: } engines: {node: ">=8"} dependencies: - "@babel/helper-plugin-utils": 7.20.2 + "@babel/helper-plugin-utils": 7.17.12 "@istanbuljs/load-nyc-config": 1.1.0 "@istanbuljs/schema": 0.1.3 istanbul-lib-instrument: 5.2.0(supports-color@8.1.1) @@ -8628,7 +8698,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: "@babel/template": 7.18.10 - "@babel/types": 7.12.10 + "@babel/types": 7.20.2 "@types/babel__core": 7.1.19 "@types/babel__traverse": 7.17.1 @@ -8688,7 +8758,7 @@ packages: } engines: {node: ">= 10.0.0"} dependencies: - "@babel/types": 7.12.10 + "@babel/types": 7.18.4 dev: true /babylon@6.18.0: @@ -8903,7 +8973,7 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001434 + caniuse-lite: 1.0.30001339 electron-to-chromium: 1.4.146 escalade: 3.1.1 node-releases: 2.0.5 @@ -9066,8 +9136,18 @@ packages: integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==, } dependencies: - function-bind: 1.1.1 - get-intrinsic: 1.2.1 + function-bind: 1.1.2 + get-intrinsic: 1.2.2 + + /call-bind@1.0.5: + resolution: + { + integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==, + } + dependencies: + function-bind: 1.1.2 + get-intrinsic: 1.2.2 + set-function-length: 1.1.1 /call-me-maybe@1.0.1: resolution: @@ -9117,6 +9197,12 @@ packages: engines: {node: ">=14.16"} dev: false + /caniuse-lite@1.0.30001339: + resolution: + { + integrity: sha512-Es8PiVqCe+uXdms0Gu5xP5PF2bxLR7OBp3wUzUnuO7OHzhOfCyg3hdiGWVPVxhiuniOzng+hTc1u3fEQ0TlkSQ==, + } + /caniuse-lite@1.0.30001434: resolution: { @@ -9630,7 +9716,7 @@ packages: } dependencies: "@babel/parser": 7.18.4 - "@babel/types": 7.12.10 + "@babel/types": 7.18.4 dev: true /content-disposition@0.5.4: @@ -10145,7 +10231,7 @@ packages: } engines: {node: ">= 0.4"} dependencies: - get-intrinsic: 1.2.1 + get-intrinsic: 1.2.2 gopd: 1.0.1 has-property-descriptors: 1.0.0 @@ -10155,6 +10241,17 @@ packages: integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==, } engines: {node: ">=8"} + dev: true + + /define-properties@1.1.4: + resolution: + { + integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==, + } + engines: {node: ">= 0.4"} + dependencies: + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 /define-properties@1.2.1: resolution: @@ -10438,6 +10535,7 @@ packages: integrity: sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==, } engines: {node: ">=8"} + deprecated: Use your platform's native DOMException instead dependencies: webidl-conversions: 5.0.0 dev: true @@ -10604,6 +10702,7 @@ packages: dependencies: graceful-fs: 4.2.10 tapable: 2.2.1 + dev: true /enquirer@2.3.6: resolution: @@ -10646,29 +10745,60 @@ packages: dependencies: is-arrayish: 0.2.1 - /es-abstract@1.22.2: + /es-abstract@1.20.1: + resolution: + { + integrity: sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==, + } + engines: {node: ">= 0.4"} + dependencies: + call-bind: 1.0.5 + es-to-primitive: 1.2.1 + function-bind: 1.1.2 + function.prototype.name: 1.1.5 + get-intrinsic: 1.2.2 + get-symbol-description: 1.0.0 + has: 1.0.3 + has-property-descriptors: 1.0.0 + has-symbols: 1.0.3 + internal-slot: 1.0.3 + is-callable: 1.2.4 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-weakref: 1.0.2 + object-inspect: 1.12.2 + object-keys: 1.1.1 + object.assign: 4.1.2 + regexp.prototype.flags: 1.4.3 + string.prototype.trimend: 1.0.5 + string.prototype.trimstart: 1.0.5 + unbox-primitive: 1.0.2 + + /es-abstract@1.22.3: resolution: { - integrity: sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==, + integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==, } engines: {node: ">= 0.4"} dependencies: array-buffer-byte-length: 1.0.0 arraybuffer.prototype.slice: 1.0.2 available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - es-set-tostringtag: 2.0.1 + call-bind: 1.0.5 + es-set-tostringtag: 2.0.2 es-to-primitive: 1.2.1 function.prototype.name: 1.1.6 - get-intrinsic: 1.2.1 + get-intrinsic: 1.2.2 get-symbol-description: 1.0.0 globalthis: 1.0.3 gopd: 1.0.1 - has: 1.0.3 has-property-descriptors: 1.0.0 has-proto: 1.0.1 has-symbols: 1.0.3 - internal-slot: 1.0.5 + hasown: 2.0.0 + internal-slot: 1.0.6 is-array-buffer: 3.0.2 is-callable: 1.2.7 is-negative-zero: 2.0.2 @@ -10677,7 +10807,7 @@ packages: is-string: 1.0.7 is-typed-array: 1.1.12 is-weakref: 1.0.2 - object-inspect: 1.13.0 + object-inspect: 1.13.1 object-keys: 1.1.1 object.assign: 4.1.4 regexp.prototype.flags: 1.5.1 @@ -10691,7 +10821,7 @@ packages: typed-array-byte-offset: 1.0.0 typed-array-length: 1.0.4 unbox-primitive: 1.0.2 - which-typed-array: 1.1.11 + which-typed-array: 1.1.13 /es-iterator-helpers@1.0.15: resolution: @@ -10700,17 +10830,17 @@ packages: } dependencies: asynciterator.prototype: 1.0.0 - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 - es-set-tostringtag: 2.0.1 - function-bind: 1.1.1 - get-intrinsic: 1.2.1 + es-abstract: 1.22.3 + es-set-tostringtag: 2.0.2 + function-bind: 1.1.2 + get-intrinsic: 1.2.2 globalthis: 1.0.3 has-property-descriptors: 1.0.0 has-proto: 1.0.1 has-symbols: 1.0.3 - internal-slot: 1.0.5 + internal-slot: 1.0.6 iterator.prototype: 1.1.2 safe-array-concat: 1.0.1 dev: true @@ -10722,16 +10852,16 @@ packages: } dev: true - /es-set-tostringtag@2.0.1: + /es-set-tostringtag@2.0.2: resolution: { - integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==, + integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==, } engines: {node: ">= 0.4"} dependencies: - get-intrinsic: 1.2.1 - has: 1.0.3 + get-intrinsic: 1.2.2 has-tostringtag: 1.0.0 + hasown: 2.0.0 /es-shim-unscopables@1.0.0: resolution: @@ -11669,14 +11799,14 @@ packages: optional: true dependencies: "@next/eslint-plugin-next": 13.0.0 - "@rushstack/eslint-patch": 1.5.1 + "@rushstack/eslint-patch": 1.1.3 "@typescript-eslint/parser": 5.43.0(eslint@8.26.0)(typescript@4.8.4) eslint: 8.26.0 - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 2.7.1(eslint-plugin-import@2.28.1)(eslint@8.26.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.43.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.26.0) - eslint-plugin-jsx-a11y: 6.7.1(eslint@8.26.0) - eslint-plugin-react: 7.33.2(eslint@8.26.0) + eslint-import-resolver-node: 0.3.6 + eslint-import-resolver-typescript: 2.7.1(eslint-plugin-import@2.26.0)(eslint@8.26.0) + eslint-plugin-import: 2.26.0(@typescript-eslint/parser@5.43.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.26.0) + eslint-plugin-jsx-a11y: 6.5.1(eslint@8.26.0) + eslint-plugin-react: 7.31.8(eslint@8.26.0) eslint-plugin-react-hooks: 4.5.0(eslint@8.26.0) typescript: 4.8.4 transitivePeerDependencies: @@ -11701,8 +11831,8 @@ packages: "@typescript-eslint/parser": 5.9.1(eslint@8.27.0)(supports-color@8.1.1)(typescript@4.8.4) eslint: 8.27.0(supports-color@8.1.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.5.2(eslint-plugin-import@2.28.1)(eslint@8.27.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.9.1)(eslint-import-resolver-typescript@3.5.2)(eslint@8.27.0) + eslint-import-resolver-typescript: 3.5.2(eslint-plugin-import@2.29.0)(eslint@8.27.0) + eslint-plugin-import: 2.29.0(@typescript-eslint/parser@5.9.1)(eslint-import-resolver-typescript@3.5.2)(eslint@8.27.0) eslint-plugin-jsx-a11y: 6.7.1(eslint@8.27.0) eslint-plugin-react: 7.33.2(eslint@8.27.0) eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@8.27.0) @@ -11730,7 +11860,7 @@ packages: } dependencies: debug: 3.2.7(supports-color@8.1.1) - resolve: 1.22.8 + resolve: 1.22.1 transitivePeerDependencies: - supports-color @@ -11741,12 +11871,13 @@ packages: } dependencies: debug: 3.2.7(supports-color@8.1.1) - is-core-module: 2.13.0 + is-core-module: 2.13.1 resolve: 1.22.8 transitivePeerDependencies: - supports-color + dev: true - /eslint-import-resolver-typescript@2.7.1(eslint-plugin-import@2.26.0)(eslint@8.27.0): + /eslint-import-resolver-typescript@2.7.1(eslint-plugin-import@2.26.0)(eslint@8.26.0): resolution: { integrity: sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==, @@ -11757,16 +11888,17 @@ packages: eslint-plugin-import: "*" dependencies: debug: 4.3.4(supports-color@8.1.1) - eslint: 8.27.0(supports-color@8.1.1) - eslint-plugin-import: 2.26.0(@typescript-eslint/parser@5.9.1)(eslint@8.27.0) + eslint: 8.26.0 + eslint-plugin-import: 2.26.0(@typescript-eslint/parser@5.43.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.26.0) glob: 7.2.0 is-glob: 4.0.3 - resolve: 1.22.8 - tsconfig-paths: 3.14.2 + resolve: 1.22.1 + tsconfig-paths: 3.14.1 transitivePeerDependencies: - supports-color + dev: true - /eslint-import-resolver-typescript@2.7.1(eslint-plugin-import@2.28.1)(eslint@8.26.0): + /eslint-import-resolver-typescript@2.7.1(eslint-plugin-import@2.26.0)(eslint@8.27.0): resolution: { integrity: sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==, @@ -11777,17 +11909,16 @@ packages: eslint-plugin-import: "*" dependencies: debug: 4.3.4(supports-color@8.1.1) - eslint: 8.26.0 - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.43.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.26.0) + eslint: 8.27.0(supports-color@8.1.1) + eslint-plugin-import: 2.26.0(@typescript-eslint/parser@5.9.1)(eslint@8.27.0) glob: 7.2.0 is-glob: 4.0.3 - resolve: 1.22.8 - tsconfig-paths: 3.14.2 + resolve: 1.22.1 + tsconfig-paths: 3.14.1 transitivePeerDependencies: - supports-color - dev: true - /eslint-import-resolver-typescript@3.5.2(eslint-plugin-import@2.28.1)(eslint@8.27.0): + /eslint-import-resolver-typescript@3.5.2(eslint-plugin-import@2.29.0)(eslint@8.27.0): resolution: { integrity: sha512-zX4ebnnyXiykjhcBvKIf5TNvt8K7yX6bllTRZ14MiurKPjDpCAZujlszTdB8pcNXhZcOf+god4s9SjQa5GnytQ==, @@ -11800,32 +11931,30 @@ packages: debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.11.0 eslint: 8.27.0(supports-color@8.1.1) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.9.1)(eslint-import-resolver-typescript@3.5.2)(eslint@8.27.0) + eslint-plugin-import: 2.29.0(@typescript-eslint/parser@5.9.1)(eslint-import-resolver-typescript@3.5.2)(eslint@8.27.0) get-tsconfig: 4.2.0 globby: 13.1.2 - is-core-module: 2.13.0 + is-core-module: 2.13.1 is-glob: 4.0.3 synckit: 0.8.4 transitivePeerDependencies: - supports-color + dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.43.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@2.7.1)(eslint@8.26.0): + /eslint-module-utils@2.7.3(@typescript-eslint/parser@5.43.0)(eslint-import-resolver-node@0.3.6)(eslint-import-resolver-typescript@2.7.1): resolution: { - integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==, + integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==, } engines: {node: ">=4"} peerDependencies: "@typescript-eslint/parser": "*" - eslint: "*" eslint-import-resolver-node: "*" eslint-import-resolver-typescript: "*" eslint-import-resolver-webpack: "*" peerDependenciesMeta: "@typescript-eslint/parser": optional: true - eslint: - optional: true eslint-import-resolver-node: optional: true eslint-import-resolver-typescript: @@ -11835,13 +11964,41 @@ packages: dependencies: "@typescript-eslint/parser": 5.43.0(eslint@8.26.0)(typescript@4.8.4) debug: 3.2.7(supports-color@8.1.1) - eslint: 8.26.0 - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 2.7.1(eslint-plugin-import@2.28.1)(eslint@8.26.0) + eslint-import-resolver-node: 0.3.6 + eslint-import-resolver-typescript: 2.7.1(eslint-plugin-import@2.26.0)(eslint@8.26.0) + find-up: 2.1.0 transitivePeerDependencies: - supports-color dev: true + /eslint-module-utils@2.7.3(@typescript-eslint/parser@5.9.1)(eslint-import-resolver-node@0.3.6): + resolution: + { + integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==, + } + engines: {node: ">=4"} + peerDependencies: + "@typescript-eslint/parser": "*" + eslint-import-resolver-node: "*" + eslint-import-resolver-typescript: "*" + eslint-import-resolver-webpack: "*" + peerDependenciesMeta: + "@typescript-eslint/parser": + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + "@typescript-eslint/parser": 5.9.1(eslint@8.27.0)(supports-color@8.1.1)(typescript@4.8.4) + debug: 3.2.7(supports-color@8.1.1) + eslint-import-resolver-node: 0.3.6 + find-up: 2.1.0 + transitivePeerDependencies: + - supports-color + /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.9.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.5.2)(eslint@8.27.0): resolution: { @@ -11870,11 +12027,12 @@ packages: debug: 3.2.7(supports-color@8.1.1) eslint: 8.27.0(supports-color@8.1.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.5.2(eslint-plugin-import@2.28.1)(eslint@8.27.0) + eslint-import-resolver-typescript: 3.5.2(eslint-plugin-import@2.29.0)(eslint@8.27.0) transitivePeerDependencies: - supports-color + dev: true - /eslint-plugin-import@2.26.0(@typescript-eslint/parser@5.9.1)(eslint@8.27.0): + /eslint-plugin-import@2.26.0(@typescript-eslint/parser@5.43.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.26.0): resolution: { integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==, @@ -11887,30 +12045,31 @@ packages: "@typescript-eslint/parser": optional: true dependencies: - "@typescript-eslint/parser": 5.9.1(eslint@8.27.0)(supports-color@8.1.1)(typescript@4.8.4) - array-includes: 3.1.7 - array.prototype.flat: 1.3.2 + "@typescript-eslint/parser": 5.43.0(eslint@8.26.0)(typescript@4.8.4) + array-includes: 3.1.5 + array.prototype.flat: 1.3.0 debug: 2.6.9(supports-color@8.1.1) doctrine: 2.1.0 - eslint: 8.27.0(supports-color@8.1.1) - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.9.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.5.2)(eslint@8.27.0) + eslint: 8.26.0 + eslint-import-resolver-node: 0.3.6 + eslint-module-utils: 2.7.3(@typescript-eslint/parser@5.43.0)(eslint-import-resolver-node@0.3.6)(eslint-import-resolver-typescript@2.7.1) has: 1.0.3 - is-core-module: 2.13.0 + is-core-module: 2.11.0 is-glob: 4.0.3 minimatch: 3.1.2 - object.values: 1.1.7 - resolve: 1.22.8 - tsconfig-paths: 3.14.2 + object.values: 1.1.5 + resolve: 1.22.1 + tsconfig-paths: 3.14.1 transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color + dev: true - /eslint-plugin-import@2.28.1(@typescript-eslint/parser@5.43.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.26.0): + /eslint-plugin-import@2.26.0(@typescript-eslint/parser@5.9.1)(eslint@8.27.0): resolution: { - integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==, + integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==, } engines: {node: ">=4"} peerDependencies: @@ -11920,35 +12079,30 @@ packages: "@typescript-eslint/parser": optional: true dependencies: - "@typescript-eslint/parser": 5.43.0(eslint@8.26.0)(typescript@4.8.4) - array-includes: 3.1.7 - array.prototype.findlastindex: 1.2.3 - array.prototype.flat: 1.3.2 - array.prototype.flatmap: 1.3.2 - debug: 3.2.7(supports-color@8.1.1) + "@typescript-eslint/parser": 5.9.1(eslint@8.27.0)(supports-color@8.1.1)(typescript@4.8.4) + array-includes: 3.1.5 + array.prototype.flat: 1.3.0 + debug: 2.6.9(supports-color@8.1.1) doctrine: 2.1.0 - eslint: 8.26.0 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.43.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@2.7.1)(eslint@8.26.0) - has: 1.0.3 - is-core-module: 2.13.0 + eslint: 8.27.0(supports-color@8.1.1) + eslint-import-resolver-node: 0.3.6 + eslint-module-utils: 2.7.3(@typescript-eslint/parser@5.9.1)(eslint-import-resolver-node@0.3.6) + has: 1.0.3 + is-core-module: 2.11.0 is-glob: 4.0.3 minimatch: 3.1.2 - object.fromentries: 2.0.7 - object.groupby: 1.0.1 - object.values: 1.1.7 - semver: 6.3.1 - tsconfig-paths: 3.14.2 + object.values: 1.1.5 + resolve: 1.22.1 + tsconfig-paths: 3.14.1 transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - dev: true - /eslint-plugin-import@2.28.1(@typescript-eslint/parser@5.9.1)(eslint-import-resolver-typescript@3.5.2)(eslint@8.27.0): + /eslint-plugin-import@2.29.0(@typescript-eslint/parser@5.9.1)(eslint-import-resolver-typescript@3.5.2)(eslint@8.27.0): resolution: { - integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==, + integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==, } engines: {node: ">=4"} peerDependencies: @@ -11968,8 +12122,8 @@ packages: eslint: 8.27.0(supports-color@8.1.1) eslint-import-resolver-node: 0.3.9 eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.9.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.5.2)(eslint@8.27.0) - has: 1.0.3 - is-core-module: 2.13.0 + hasown: 2.0.0 + is-core-module: 2.13.1 is-glob: 4.0.3 minimatch: 3.1.2 object.fromentries: 2.0.7 @@ -11981,8 +12135,9 @@ packages: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color + dev: true - /eslint-plugin-jsx-a11y@6.5.1(eslint@8.27.0): + /eslint-plugin-jsx-a11y@6.5.1(eslint@8.26.0): resolution: { integrity: sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==, @@ -11993,45 +12148,41 @@ packages: dependencies: "@babel/runtime": 7.18.3 aria-query: 4.2.2 - array-includes: 3.1.7 + array-includes: 3.1.5 ast-types-flow: 0.0.7 axe-core: 4.4.2 axobject-query: 2.2.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 8.27.0(supports-color@8.1.1) + eslint: 8.26.0 has: 1.0.3 jsx-ast-utils: 3.3.0 language-tags: 1.0.5 minimatch: 3.1.2 + dev: true - /eslint-plugin-jsx-a11y@6.7.1(eslint@8.26.0): + /eslint-plugin-jsx-a11y@6.5.1(eslint@8.27.0): resolution: { - integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==, + integrity: sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==, } engines: {node: ">=4.0"} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - "@babel/runtime": 7.23.2 - aria-query: 5.3.0 - array-includes: 3.1.7 - array.prototype.flatmap: 1.3.2 + "@babel/runtime": 7.18.3 + aria-query: 4.2.2 + array-includes: 3.1.5 ast-types-flow: 0.0.7 - axe-core: 4.8.2 - axobject-query: 3.2.1 + axe-core: 4.4.2 + axobject-query: 2.2.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 8.26.0 + eslint: 8.27.0(supports-color@8.1.1) has: 1.0.3 - jsx-ast-utils: 3.3.5 + jsx-ast-utils: 3.3.0 language-tags: 1.0.5 minimatch: 3.1.2 - object.entries: 1.1.7 - object.fromentries: 2.0.7 - semver: 6.3.1 - dev: true /eslint-plugin-jsx-a11y@6.7.1(eslint@8.27.0): resolution: @@ -12096,7 +12247,7 @@ packages: eslint: 8.27.0(supports-color@8.1.1) dev: true - /eslint-plugin-react@7.31.8(eslint@8.27.0): + /eslint-plugin-react@7.31.8(eslint@8.26.0): resolution: { integrity: sha512-5lBTZmgQmARLLSYiwI71tiGVTLUuqXantZM6vlSY39OaDSV0M7+32K5DnLkmFrwTe+Ksz0ffuLUC91RUviVZfw==, @@ -12105,49 +12256,47 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - array-includes: 3.1.7 - array.prototype.flatmap: 1.3.2 + array-includes: 3.1.5 + array.prototype.flatmap: 1.3.0 doctrine: 2.1.0 - eslint: 8.27.0(supports-color@8.1.1) + eslint: 8.26.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.0 minimatch: 3.1.2 object.entries: 1.1.5 - object.fromentries: 2.0.7 + object.fromentries: 2.0.5 object.hasown: 1.1.1 - object.values: 1.1.7 + object.values: 1.1.5 prop-types: 15.8.1 - resolve: 2.0.0-next.5 - semver: 6.3.1 + resolve: 2.0.0-next.3 + semver: 6.3.0 string.prototype.matchall: 4.0.7 + dev: true - /eslint-plugin-react@7.33.2(eslint@8.26.0): + /eslint-plugin-react@7.31.8(eslint@8.27.0): resolution: { - integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==, + integrity: sha512-5lBTZmgQmARLLSYiwI71tiGVTLUuqXantZM6vlSY39OaDSV0M7+32K5DnLkmFrwTe+Ksz0ffuLUC91RUviVZfw==, } engines: {node: ">=4"} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - array-includes: 3.1.7 - array.prototype.flatmap: 1.3.2 - array.prototype.tosorted: 1.1.2 + array-includes: 3.1.5 + array.prototype.flatmap: 1.3.0 doctrine: 2.1.0 - es-iterator-helpers: 1.0.15 - eslint: 8.26.0 + eslint: 8.27.0(supports-color@8.1.1) estraverse: 5.3.0 - jsx-ast-utils: 3.3.5 + jsx-ast-utils: 3.3.0 minimatch: 3.1.2 - object.entries: 1.1.7 - object.fromentries: 2.0.7 - object.hasown: 1.1.3 - object.values: 1.1.7 + object.entries: 1.1.5 + object.fromentries: 2.0.5 + object.hasown: 1.1.1 + object.values: 1.1.5 prop-types: 15.8.1 - resolve: 2.0.0-next.5 - semver: 6.3.1 - string.prototype.matchall: 4.0.10 - dev: true + resolve: 2.0.0-next.3 + semver: 6.3.0 + string.prototype.matchall: 4.0.7 /eslint-plugin-react@7.33.2(eslint@8.27.0): resolution: @@ -12267,7 +12416,7 @@ packages: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.3(supports-color@8.1.1) + debug: 4.3.4(supports-color@8.1.1) doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 @@ -12876,6 +13025,15 @@ packages: } dev: true + /find-up@2.1.0: + resolution: + { + integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==, + } + engines: {node: ">=4"} + dependencies: + locate-path: 2.0.0 + /find-up@3.0.0: resolution: { @@ -13126,6 +13284,24 @@ packages: integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==, } + /function-bind@1.1.2: + resolution: + { + integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==, + } + + /function.prototype.name@1.1.5: + resolution: + { + integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==, + } + engines: {node: ">= 0.4"} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + functions-have-names: 1.2.3 + /function.prototype.name@1.1.6: resolution: { @@ -13133,9 +13309,9 @@ packages: } engines: {node: ">= 0.4"} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.3 functions-have-names: 1.2.3 /functions-have-names@1.2.3: @@ -13164,16 +13340,26 @@ packages: integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==, } - /get-intrinsic@1.2.1: + /get-intrinsic@1.1.1: resolution: { - integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==, + integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==, } dependencies: - function-bind: 1.1.1 + function-bind: 1.1.2 has: 1.0.3 + has-symbols: 1.0.3 + + /get-intrinsic@1.2.2: + resolution: + { + integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==, + } + dependencies: + function-bind: 1.1.2 has-proto: 1.0.1 has-symbols: 1.0.3 + hasown: 2.0.0 /get-package-type@0.1.0: resolution: @@ -13239,14 +13425,15 @@ packages: } engines: {node: ">= 0.4"} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 /get-tsconfig@4.2.0: resolution: { integrity: sha512-X8u8fREiYOE6S8hLbq99PeykTDoLVnxvF4DjWKJmz9xy2nNRdUcV8ZN9tniJFeKyTU3qnC9lL8n4Chd6LmVKHg==, } + dev: true /get-value@2.0.6: resolution: @@ -13429,13 +13616,14 @@ packages: } engines: {node: ">= 0.4"} dependencies: - define-properties: 1.2.1 + define-properties: 1.1.4 /globalyzer@0.1.0: resolution: { integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==, } + dev: true /globby@11.1.0: resolution: @@ -13488,6 +13676,7 @@ packages: { integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==, } + dev: true /gopd@1.0.1: resolution: @@ -13495,7 +13684,7 @@ packages: integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==, } dependencies: - get-intrinsic: 1.2.1 + get-intrinsic: 1.2.2 /got@11.8.1: resolution: @@ -13595,7 +13784,7 @@ packages: integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==, } dependencies: - get-intrinsic: 1.2.1 + get-intrinsic: 1.2.2 /has-proto@1.0.1: resolution: @@ -13679,6 +13868,15 @@ packages: async: 1.5.2 dev: false + /hasown@2.0.0: + resolution: + { + integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==, + } + engines: {node: ">= 0.4"} + dependencies: + function-bind: 1.1.2 + /he@1.2.0: resolution: { @@ -14056,17 +14254,28 @@ packages: - utf-8-validate dev: false - /internal-slot@1.0.5: + /internal-slot@1.0.3: resolution: { - integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==, + integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==, } engines: {node: ">= 0.4"} dependencies: - get-intrinsic: 1.2.1 + get-intrinsic: 1.2.2 has: 1.0.3 side-channel: 1.0.4 + /internal-slot@1.0.6: + resolution: + { + integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==, + } + engines: {node: ">= 0.4"} + dependencies: + get-intrinsic: 1.2.2 + hasown: 2.0.0 + side-channel: 1.0.4 + /ip-regex@4.3.0: resolution: { @@ -14109,8 +14318,8 @@ packages: integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==, } dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 is-typed-array: 1.1.12 /is-arrayish@0.2.1: @@ -14153,7 +14362,7 @@ packages: } engines: {node: ">= 0.4"} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 has-tostringtag: 1.0.0 /is-buffer@1.1.6: @@ -14173,6 +14382,13 @@ packages: builtin-modules: 3.2.0 dev: true + /is-callable@1.2.4: + resolution: + { + integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==, + } + engines: {node: ">= 0.4"} + /is-callable@1.2.7: resolution: { @@ -14200,14 +14416,22 @@ packages: ci-info: 3.3.1 dev: false - /is-core-module@2.13.0: + /is-core-module@2.11.0: resolution: { - integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==, + integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==, } dependencies: has: 1.0.3 + /is-core-module@2.13.1: + resolution: + { + integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==, + } + dependencies: + hasown: 2.0.0 + /is-data-descriptor@0.1.4: resolution: { @@ -14268,6 +14492,7 @@ packages: } engines: {node: ">=8"} hasBin: true + dev: true /is-expression@4.0.0: resolution: @@ -14310,7 +14535,7 @@ packages: integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==, } dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 dev: true /is-fullwidth-code-point@3.0.0: @@ -14480,7 +14705,7 @@ packages: } engines: {node: ">= 0.4"} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 has-tostringtag: 1.0.0 /is-set@2.0.2: @@ -14496,7 +14721,7 @@ packages: integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==, } dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 /is-stream@1.1.0: resolution: @@ -14554,7 +14779,7 @@ packages: } engines: {node: ">= 0.4"} dependencies: - which-typed-array: 1.1.11 + which-typed-array: 1.1.13 /is-typedarray@1.0.0: resolution: @@ -14598,7 +14823,7 @@ packages: integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==, } dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 /is-weakset@2.0.2: resolution: @@ -14606,8 +14831,8 @@ packages: integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==, } dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 dev: true /is-what@4.1.7: @@ -14634,6 +14859,7 @@ packages: engines: {node: ">=8"} dependencies: is-docker: 2.2.1 + dev: true /is2@2.0.7: resolution: @@ -14770,7 +14996,7 @@ packages: } dependencies: define-properties: 1.2.1 - get-intrinsic: 1.2.1 + get-intrinsic: 1.2.2 has-symbols: 1.0.3 reflect.getprototypeof: 1.0.4 set-function-name: 2.0.1 @@ -16155,6 +16381,15 @@ packages: } dev: false + /json5@1.0.1: + resolution: + { + integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==, + } + hasBin: true + dependencies: + minimist: 1.2.6 + /json5@1.0.2: resolution: { @@ -16163,6 +16398,7 @@ packages: hasBin: true dependencies: minimist: 1.2.6 + dev: true /json5@2.2.1: resolution: @@ -16225,8 +16461,8 @@ packages: } engines: {node: ">=4.0"} dependencies: - array-includes: 3.1.7 - object.assign: 4.1.4 + array-includes: 3.1.5 + object.assign: 4.1.2 /jsx-ast-utils@3.3.5: resolution: @@ -16507,6 +16743,16 @@ packages: } engines: {node: ">=14"} + /locate-path@2.0.0: + resolution: + { + integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==, + } + engines: {node: ">=4"} + dependencies: + p-locate: 2.0.0 + path-exists: 3.0.0 + /locate-path@3.0.0: resolution: { @@ -17675,10 +17921,10 @@ packages: integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==, } - /object-inspect@1.13.0: + /object-inspect@1.13.1: resolution: { - integrity: sha512-HQ4J+ic8hKrgIt3mqk6cVOVrW2ozL4KdvHlqpBv9vDYWx9ysAgENAdvy4FoGF+KFdhR7nQTNm5J0ctAeOwn+3g==, + integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==, } /object-keys@1.1.1: @@ -17698,6 +17944,18 @@ packages: isobject: 3.0.1 dev: false + /object.assign@4.1.2: + resolution: + { + integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==, + } + engines: {node: ">= 0.4"} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + /object.assign@4.1.4: resolution: { @@ -17705,7 +17963,7 @@ packages: } engines: {node: ">= 0.4"} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 @@ -17718,8 +17976,8 @@ packages: engines: {node: ">= 0.4"} dependencies: call-bind: 1.0.2 - define-properties: 1.2.1 - es-abstract: 1.22.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 /object.entries@1.1.7: resolution: @@ -17728,11 +17986,22 @@ packages: } engines: {node: ">= 0.4"} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.3 dev: true + /object.fromentries@2.0.5: + resolution: + { + integrity: sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==, + } + engines: {node: ">= 0.4"} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + /object.fromentries@2.0.7: resolution: { @@ -17740,9 +18009,10 @@ packages: } engines: {node: ">= 0.4"} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.3 + dev: true /object.groupby@1.0.1: resolution: @@ -17750,10 +18020,11 @@ packages: integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==, } dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 - get-intrinsic: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + dev: true /object.hasown@1.1.1: resolution: @@ -17761,8 +18032,8 @@ packages: integrity: sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==, } dependencies: - define-properties: 1.2.1 - es-abstract: 1.22.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 /object.hasown@1.1.3: resolution: @@ -17771,7 +18042,7 @@ packages: } dependencies: define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.3 dev: true /object.pick@1.3.0: @@ -17784,6 +18055,17 @@ packages: isobject: 3.0.1 dev: false + /object.values@1.1.5: + resolution: + { + integrity: sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==, + } + engines: {node: ">= 0.4"} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + /object.values@1.1.7: resolution: { @@ -17791,9 +18073,10 @@ packages: } engines: {node: ">= 0.4"} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.3 + dev: true /oidc-token-hash@5.0.1: resolution: @@ -17878,6 +18161,7 @@ packages: define-lazy-prop: 2.0.0 is-docker: 2.2.1 is-wsl: 2.2.0 + dev: true /opener@1.5.2: resolution: @@ -18027,6 +18311,15 @@ packages: engines: {node: ">=6"} dev: false + /p-limit@1.3.0: + resolution: + { + integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==, + } + engines: {node: ">=4"} + dependencies: + p-try: 1.0.0 + /p-limit@2.3.0: resolution: { @@ -18045,6 +18338,15 @@ packages: dependencies: yocto-queue: 0.1.0 + /p-locate@2.0.0: + resolution: + { + integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==, + } + engines: {node: ">=4"} + dependencies: + p-limit: 1.3.0 + /p-locate@3.0.0: resolution: { @@ -18099,6 +18401,13 @@ packages: dependencies: p-finally: 1.0.0 + /p-try@1.0.0: + resolution: + { + integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==, + } + engines: {node: ">=4"} + /p-try@2.2.0: resolution: { @@ -18126,7 +18435,7 @@ packages: got: 9.6.0 registry-auth-token: 4.2.1 registry-url: 5.1.0 - semver: 6.3.1 + semver: 6.3.0 dev: false /pako@1.0.11: @@ -18299,7 +18608,6 @@ packages: integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==, } engines: {node: ">=4"} - dev: false /path-exists@4.0.0: resolution: @@ -19295,10 +19603,10 @@ packages: } engines: {node: ">= 0.4"} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 - get-intrinsic: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 globalthis: 1.0.3 which-builtin-type: 1.1.3 dev: true @@ -19329,6 +19637,7 @@ packages: { integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==, } + dev: true /regenerator-transform@0.15.0: resolution: @@ -19336,7 +19645,7 @@ packages: integrity: sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==, } dependencies: - "@babel/runtime": 7.23.2 + "@babel/runtime": 7.18.3 /regex-not@1.0.2: resolution: @@ -19356,6 +19665,17 @@ packages: } dev: false + /regexp.prototype.flags@1.4.3: + resolution: + { + integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==, + } + engines: {node: ">= 0.4"} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + functions-have-names: 1.2.3 + /regexp.prototype.flags@1.5.1: resolution: { @@ -19363,7 +19683,7 @@ packages: } engines: {node: ">= 0.4"} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 set-function-name: 2.0.1 @@ -19537,11 +19857,22 @@ packages: } hasBin: true dependencies: - is-core-module: 2.13.0 + is-core-module: 2.11.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true + /resolve@1.22.1: + resolution: + { + integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==, + } + hasBin: true + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + /resolve@1.22.8: resolution: { @@ -19549,10 +19880,19 @@ packages: } hasBin: true dependencies: - is-core-module: 2.13.0 + is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + /resolve@2.0.0-next.3: + resolution: + { + integrity: sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==, + } + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + /resolve@2.0.0-next.5: resolution: { @@ -19560,9 +19900,10 @@ packages: } hasBin: true dependencies: - is-core-module: 2.13.0 + is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + dev: true /responselike@1.0.2: resolution: @@ -19738,8 +20079,8 @@ packages: } engines: {node: ">=0.4"} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 has-symbols: 1.0.3 isarray: 2.0.5 @@ -19761,8 +20102,8 @@ packages: integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==, } dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 is-regex: 1.1.4 /safe-regex@1.1.0: @@ -19863,7 +20204,7 @@ packages: } dependencies: "@types/semver": 6.2.3 - semver: 6.3.1 + semver: 6.3.0 dev: false /semver-compare@1.0.0: @@ -19977,6 +20318,18 @@ packages: } dev: false + /set-function-length@1.1.1: + resolution: + { + integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==, + } + engines: {node: ">= 0.4"} + dependencies: + define-data-property: 1.1.1 + get-intrinsic: 1.2.2 + gopd: 1.0.1 + has-property-descriptors: 1.0.0 + /set-function-name@2.0.1: resolution: { @@ -20069,9 +20422,9 @@ packages: integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==, } dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 - object-inspect: 1.13.0 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + object-inspect: 1.12.2 /signal-exit@3.0.7: resolution: @@ -20475,12 +20828,12 @@ packages: integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==, } dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 - get-intrinsic: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 has-symbols: 1.0.3 - internal-slot: 1.0.5 + internal-slot: 1.0.6 regexp.prototype.flags: 1.5.1 set-function-name: 2.0.1 side-channel: 1.0.4 @@ -20493,12 +20846,12 @@ packages: } dependencies: call-bind: 1.0.2 - define-properties: 1.2.1 - es-abstract: 1.22.2 - get-intrinsic: 1.2.1 + define-properties: 1.1.4 + es-abstract: 1.20.1 + get-intrinsic: 1.1.1 has-symbols: 1.0.3 - internal-slot: 1.0.5 - regexp.prototype.flags: 1.5.1 + internal-slot: 1.0.3 + regexp.prototype.flags: 1.4.3 side-channel: 1.0.4 /string.prototype.trim@1.2.8: @@ -20508,9 +20861,19 @@ packages: } engines: {node: ">= 0.4"} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.3 + + /string.prototype.trimend@1.0.5: + resolution: + { + integrity: sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==, + } + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 /string.prototype.trimend@1.0.7: resolution: @@ -20518,9 +20881,19 @@ packages: integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==, } dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.3 + + /string.prototype.trimstart@1.0.5: + resolution: + { + integrity: sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==, + } + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 /string.prototype.trimstart@1.0.7: resolution: @@ -20528,9 +20901,9 @@ packages: integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==, } dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.3 /string_decoder@1.1.1: resolution: @@ -20722,7 +21095,7 @@ packages: babel-plugin-macros: optional: true dependencies: - "@babel/core": 7.20.2(supports-color@8.1.1) + "@babel/core": 7.20.2 client-only: 0.0.1 react: 18.2.0 @@ -20821,6 +21194,7 @@ packages: dependencies: "@pkgr/utils": 2.3.1 tslib: 2.4.0 + dev: true /tapable@2.2.1: resolution: @@ -20828,6 +21202,7 @@ packages: integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==, } engines: {node: ">=6"} + dev: true /tar@6.1.11: resolution: @@ -20968,6 +21343,7 @@ packages: dependencies: globalyzer: 0.1.0 globrex: 0.1.2 + dev: true /tinybench@2.3.1: resolution: @@ -21271,6 +21647,17 @@ packages: yn: 3.1.1 dev: true + /tsconfig-paths@3.14.1: + resolution: + { + integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==, + } + dependencies: + "@types/json5": 0.0.29 + json5: 1.0.1 + minimist: 1.2.6 + strip-bom: 3.0.0 + /tsconfig-paths@3.14.2: resolution: { @@ -21281,6 +21668,7 @@ packages: json5: 1.0.2 minimist: 1.2.6 strip-bom: 3.0.0 + dev: true /tsconfig-paths@4.0.0: resolution: @@ -21525,8 +21913,8 @@ packages: } engines: {node: ">= 0.4"} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 is-typed-array: 1.1.12 /typed-array-byte-length@1.0.0: @@ -21536,7 +21924,7 @@ packages: } engines: {node: ">= 0.4"} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 for-each: 0.3.3 has-proto: 1.0.1 is-typed-array: 1.1.12 @@ -21549,7 +21937,7 @@ packages: engines: {node: ">= 0.4"} dependencies: available-typed-arrays: 1.0.5 - call-bind: 1.0.2 + call-bind: 1.0.5 for-each: 0.3.3 has-proto: 1.0.1 is-typed-array: 1.1.12 @@ -21560,7 +21948,7 @@ packages: integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==, } dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 for-each: 0.3.3 is-typed-array: 1.1.12 @@ -21594,7 +21982,7 @@ packages: integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==, } dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 @@ -21637,6 +22025,44 @@ packages: - supports-color dev: true + /unbuild@0.7.6: + resolution: + { + integrity: sha512-W6pFPS6/ewlEV5uWbNgfo0i2LbVBsue5GKlOkCo6ozIrInOBEgq4s3HCUB5eZSw6Ty2iwF8dKM65pZX7QGZJ0g==, + } + hasBin: true + dependencies: + "@rollup/plugin-alias": 3.1.9(rollup@2.77.2) + "@rollup/plugin-commonjs": 22.0.1(rollup@2.77.2) + "@rollup/plugin-json": 4.1.0(rollup@2.77.2) + "@rollup/plugin-node-resolve": 13.3.0(rollup@2.77.2) + "@rollup/plugin-replace": 4.0.0(rollup@2.77.2) + "@rollup/pluginutils": 4.2.1 + chalk: 5.0.1 + consola: 2.15.3 + defu: 6.0.0 + esbuild: 0.14.51 + hookable: 5.1.1 + jiti: 1.14.0 + magic-string: 0.26.2 + mkdirp: 1.0.4 + mkdist: 0.3.13(typescript@4.8.4) + mlly: 0.5.5 + mri: 1.2.0 + pathe: 0.3.2 + pkg-types: 0.3.3 + pretty-bytes: 6.0.0 + rimraf: 3.0.2 + rollup: 2.77.2 + rollup-plugin-dts: 4.2.2(rollup@2.77.2)(typescript@4.8.4) + rollup-plugin-esbuild: 4.9.1(esbuild@0.14.51)(rollup@2.77.2)(supports-color@8.1.1) + scule: 0.2.1 + typescript: 4.8.4 + untyped: 0.4.4 + transitivePeerDependencies: + - supports-color + dev: true + /unbuild@0.7.6(supports-color@8.1.1): resolution: { @@ -21766,6 +22192,20 @@ packages: } dev: true + /untyped@0.4.4: + resolution: + { + integrity: sha512-sY6u8RedwfLfBis0copfU/fzROieyAndqPs8Kn2PfyzTjtA88vCk81J1b5z+8/VJc+cwfGy23/AqOCpvAbkNVw==, + } + dependencies: + "@babel/core": 7.20.2 + "@babel/standalone": 7.18.9 + "@babel/types": 7.18.4 + scule: 0.2.1 + transitivePeerDependencies: + - supports-color + dev: true + /untyped@0.4.4(supports-color@8.1.1): resolution: { @@ -22026,7 +22466,7 @@ packages: "@types/node": 18.11.9 esbuild: 0.15.15 postcss: 8.4.19 - resolve: 1.22.8 + resolve: 1.22.1 rollup: 2.79.1 optionalDependencies: fsevents: 2.3.2 @@ -22398,7 +22838,7 @@ packages: isarray: 2.0.5 which-boxed-primitive: 1.0.2 which-collection: 1.0.1 - which-typed-array: 1.1.11 + which-typed-array: 1.1.13 dev: true /which-collection@1.0.1: @@ -22439,15 +22879,15 @@ packages: path-exists: 4.0.0 dev: false - /which-typed-array@1.1.11: + /which-typed-array@1.1.13: resolution: { - integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==, + integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==, } engines: {node: ">= 0.4"} dependencies: available-typed-arrays: 1.0.5 - call-bind: 1.0.2 + call-bind: 1.0.5 for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.0 @@ -22509,7 +22949,7 @@ packages: engines: {node: ">= 10.0.0"} dependencies: "@babel/parser": 7.18.4 - "@babel/types": 7.12.10 + "@babel/types": 7.18.4 assert-never: 1.2.1 babel-walk: 3.0.0-canary-5 dev: true From 9ab726a118e56e2dfda62bb960a7f8909b98c167 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Wed, 29 Nov 2023 00:34:34 +0530 Subject: [PATCH 78/95] fix favicon --- .../templates/app/public/favicon.ico | Bin 25931 -> 4286 bytes 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 packages/generator/templates/app/public/favicon.ico diff --git a/packages/generator/templates/app/public/favicon.ico b/packages/generator/templates/app/public/favicon.ico old mode 100644 new mode 100755 index 718d6fea4835ec2d246af9800eddb7ffb276240c..c7bd1c095d82464715009a27231f07d3936d367b GIT binary patch literal 4286 zcmeH~KS~2Z6vk(@SOP*c5;6EE0Sj&P2x@69%oQxO^Z>~fJc5W|W9I?ViLD0^Eo_89 z3Xy;z&+p6dVBO4wb+emF<(JV}XTF*D?YuV{6XCnnGW;}m%f_r3WA*^L%rRj9_zTZ= z4jitdfKMx{#>y?Y0E-38n0*Q>F*Gm1CwK&n?1N|gODhY|I|1)Nz!x|J<;TEE1f5;* z1V(`RZ08dLD>Z0cgKt1>rTiHD_FQ$f)flYL=&pbGr01%eYcwU)OUeOdk@i|EfKLE^`)hSJAZ~#+-WRQ@wQi z@A-5G|NfMB3jdu?V^7an|9M9#+H>Z(L(l`Nmu}0c{~9SP>(J)?n)^&^ms9^$o2|Qt z@c)bS9jLtepVW72Xh1(11NEG_s94X_+D@N$v1AO&_1wP(jY0XI`}G-vb8rJ@zVnGx zMMhv4iwwx3NFTgLB3-nkgML%Ri{BhGG)FQpZD5)t)!CN5nH=ARMz@K6as-Vw5cvVi C{Q%?u literal 25931 zcmeHv30#a{`}aL_*G&7qml|y<+KVaDM2m#dVr!KsA!#An?kSQM(q<_dDNCpjEux83 zLb9Z^XxbDl(w>%i@8hT6>)&Gu{h#Oeyszu?xtw#Zb1mO{pgX9699l+Qppw7jXaYf~-84xW z)w4x8?=youko|}Vr~(D$UXIbiXABHh`p1?nn8Po~fxRJv}|0e(BPs|G`(TT%kKVJAdg5*Z|x0leQq0 zkdUBvb#>9F()jo|T~kx@OM8$9wzs~t2l;K=woNssA3l6|sx2r3+kdfVW@e^8e*E}v zA1y5{bRi+3Z`uD3{F7LgFJDdvm;nJilkzDku>BwXH(8ItVCXk*-lSJnR?-2UN%hJ){&rlvg`CDTj z)Bzo!3v7Ou#83zEDEFcKt(f1E0~=rqeEbTnMvWR#{+9pg%7G8y>u1OVRUSoox-ovF z2Ydma(;=YuBY(eI|04{hXzZD6_f(v~H;C~y5=DhAC{MMS>2fm~1H_t2$56pc$NH8( z5bH|<)71dV-_oCHIrzrT`2s-5w_+2CM0$95I6X8p^r!gHp+j_gd;9O<1~CEQQGS8) zS9Qh3#p&JM-G8rHekNmKVewU;pJRcTAog68KYo^dRo}(M>36U4Us zfgYWSiHZL3;lpWT=zNAW>Dh#mB!_@Lg%$ms8N-;aPqMn+C2HqZgz&9~Eu z4|Kp<`$q)Uw1R?y(~S>ePdonHxpV1#eSP1B;Ogo+-Pk}6#0GsZZ5!||ev2MGdh}_m z{DeR7?0-1^zVs&`AV6Vt;r3`I`OI_wgs*w=eO%_#7Kepl{B@xiyCANc(l zzIyd4y|c6PXWq9-|KM8(zIk8LPk(>a)zyFWjhT!$HJ$qX1vo@d25W<fvZQ2zUz5WRc(UnFMKHwe1| zWmlB1qdbiA(C0jmnV<}GfbKtmcu^2*P^O?MBLZKt|As~ge8&AAO~2K@zbXelK|4T<{|y4`raF{=72kC2Kn(L4YyenWgrPiv z@^mr$t{#X5VuIMeL!7Ab6_kG$&#&5p*Z{+?5U|TZ`B!7llpVmp@skYz&n^8QfPJzL z0G6K_OJM9x+Wu2gfN45phANGt{7=C>i34CV{Xqlx(fWpeAoj^N0Biu`w+MVcCUyU* zDZuzO0>4Z6fbu^T_arWW5n!E45vX8N=bxTVeFoep_G#VmNlQzAI_KTIc{6>c+04vr zx@W}zE5JNSU>!THJ{J=cqjz+4{L4A{Ob9$ZJ*S1?Ggg3klFp!+Y1@K+pK1DqI|_gq z5ZDXVpge8-cs!o|;K73#YXZ3AShj50wBvuq3NTOZ`M&qtjj#GOFfgExjg8Gn8>Vq5 z`85n+9|!iLCZF5$HJ$Iu($dm?8~-ofu}tEc+-pyke=3!im#6pk_Wo8IA|fJwD&~~F zc16osQ)EBo58U7XDuMexaPRjU@h8tXe%S{fA0NH3vGJFhuyyO!Uyl2^&EOpX{9As0 zWj+P>{@}jxH)8|r;2HdupP!vie{sJ28b&bo!8`D^x}TE$%zXNb^X1p@0PJ86`dZyj z%ce7*{^oo+6%&~I!8hQy-vQ7E)0t0ybH4l%KltWOo~8cO`T=157JqL(oq_rC%ea&4 z2NcTJe-HgFjNg-gZ$6!Y`SMHrlj}Etf7?r!zQTPPSv}{so2e>Fjs1{gzk~LGeesX%r(Lh6rbhSo_n)@@G-FTQy93;l#E)hgP@d_SGvyCp0~o(Y;Ee8{ zdVUDbHm5`2taPUOY^MAGOw*>=s7=Gst=D+p+2yON!0%Hk` zz5mAhyT4lS*T3LS^WSxUy86q&GnoHxzQ6vm8)VS}_zuqG?+3td68_x;etQAdu@sc6 zQJ&5|4(I?~3d-QOAODHpZ=hlSg(lBZ!JZWCtHHSj`0Wh93-Uk)_S%zsJ~aD>{`A0~ z9{AG(e|q3g5B%wYKRxiL2Y$8(4w6bzchKuloQW#e&S3n+P- z8!ds-%f;TJ1>)v)##>gd{PdS2Oc3VaR`fr=`O8QIO(6(N!A?pr5C#6fc~Ge@N%Vvu zaoAX2&(a6eWy_q&UwOhU)|P3J0Qc%OdhzW=F4D|pt0E4osw;%<%Dn58hAWD^XnZD= z>9~H(3bmLtxpF?a7su6J7M*x1By7YSUbxGi)Ot0P77`}P3{)&5Un{KD?`-e?r21!4vTTnN(4Y6Lin?UkSM z`MXCTC1@4A4~mvz%Rh2&EwY))LeoT=*`tMoqcEXI>TZU9WTP#l?uFv+@Dn~b(>xh2 z;>B?;Tz2SR&KVb>vGiBSB`@U7VIWFSo=LDSb9F{GF^DbmWAfpms8Sx9OX4CnBJca3 zlj9(x!dIjN?OG1X4l*imJNvRCk}F%!?SOfiOq5y^mZW)jFL@a|r-@d#f7 z2gmU8L3IZq0ynIws=}~m^#@&C%J6QFo~Mo4V`>v7MI-_!EBMMtb%_M&kvAaN)@ZVw z+`toz&WG#HkWDjnZE!6nk{e-oFdL^$YnbOCN}JC&{$#$O27@|Tn-skXr)2ml2~O!5 zX+gYoxhoc7qoU?C^3~&!U?kRFtnSEecWuH0B0OvLodgUAi}8p1 zrO6RSXHH}DMc$&|?D004DiOVMHV8kXCP@7NKB zgaZq^^O<7PoKEp72kby@W0Z!Y*Ay{&vfg#C&gG@YVR9g?FEocMUi1gSN$+V+ayF45{a zuDZDTN}mS|;BO%gEf}pjBfN2-gIrU#G5~cucA;dokXW89%>AyXJJI z9X4UlIWA|ZYHgbI z5?oFk@A=Ik7lrEQPDH!H+b`7_Y~aDb_qa=B2^Y&Ow41cU=4WDd40dp5(QS-WMN-=Y z9g;6_-JdNU;|6cPwf$ak*aJIcwL@1n$#l~zi{c{EW?T;DaW*E8DYq?Umtz{nJ&w-M zEMyTDrC&9K$d|kZe2#ws6)L=7K+{ zQw{XnV6UC$6-rW0emqm8wJoeZK)wJIcV?dST}Z;G0Arq{dVDu0&4kd%N!3F1*;*pW zR&qUiFzK=@44#QGw7k1`3t_d8&*kBV->O##t|tonFc2YWrL7_eqg+=+k;!F-`^b8> z#KWCE8%u4k@EprxqiV$VmmtiWxDLgnGu$Vs<8rppV5EajBXL4nyyZM$SWVm!wnCj-B!Wjqj5-5dNXukI2$$|Bu3Lrw}z65Lc=1G z^-#WuQOj$hwNGG?*CM_TO8Bg-1+qc>J7k5c51U8g?ZU5n?HYor;~JIjoWH-G>AoUP ztrWWLbRNqIjW#RT*WqZgPJXU7C)VaW5}MiijYbABmzoru6EmQ*N8cVK7a3|aOB#O& zBl8JY2WKfmj;h#Q!pN%9o@VNLv{OUL?rixHwOZuvX7{IJ{(EdPpuVFoQqIOa7giLVkBOKL@^smUA!tZ1CKRK}#SSM)iQHk)*R~?M!qkCruaS!#oIL1c z?J;U~&FfH#*98^G?i}pA{ z9Jg36t4=%6mhY(quYq*vSxptes9qy|7xSlH?G=S@>u>Ebe;|LVhs~@+06N<4CViBk zUiY$thvX;>Tby6z9Y1edAMQaiH zm^r3v#$Q#2T=X>bsY#D%s!bhs^M9PMAcHbCc0FMHV{u-dwlL;a1eJ63v5U*?Q_8JO zT#50!RD619#j_Uf))0ooADz~*9&lN!bBDRUgE>Vud-i5ck%vT=r^yD*^?Mp@Q^v+V zG#-?gKlr}Eeqifb{|So?HM&g91P8|av8hQoCmQXkd?7wIJwb z_^v8bbg`SAn{I*4bH$u(RZ6*xUhuA~hc=8czK8SHEKTzSxgbwi~9(OqJB&gwb^l4+m`k*Q;_?>Y-APi1{k zAHQ)P)G)f|AyjSgcCFps)Fh6Bca*Xznq36!pV6Az&m{O8$wGFD? zY&O*3*J0;_EqM#jh6^gMQKpXV?#1?>$ml1xvh8nSN>-?H=V;nJIwB07YX$e6vLxH( zqYwQ>qxwR(i4f)DLd)-$P>T-no_c!LsN@)8`e;W@)-Hj0>nJ-}Kla4-ZdPJzI&Mce zv)V_j;(3ERN3_@I$N<^|4Lf`B;8n+bX@bHbcZTopEmDI*Jfl)-pFDvo6svPRoo@(x z);_{lY<;);XzT`dBFpRmGrr}z5u1=pC^S-{ce6iXQlLGcItwJ^mZx{m$&DA_oEZ)B{_bYPq-HA zcH8WGoBG(aBU_j)vEy+_71T34@4dmSg!|M8Vf92Zj6WH7Q7t#OHQqWgFE3ARt+%!T z?oLovLVlnf?2c7pTc)~cc^($_8nyKwsN`RA-23ed3sdj(ys%pjjM+9JrctL;dy8a( z@en&CQmnV(()bu|Y%G1-4a(6x{aLytn$T-;(&{QIJB9vMox11U-1HpD@d(QkaJdEb zG{)+6Dos_L+O3NpWo^=gR?evp|CqEG?L&Ut#D*KLaRFOgOEK(Kq1@!EGcTfo+%A&I z=dLbB+d$u{sh?u)xP{PF8L%;YPPW53+@{>5W=Jt#wQpN;0_HYdw1{ksf_XhO4#2F= zyPx6Lx2<92L-;L5PD`zn6zwIH`Jk($?Qw({erA$^bC;q33hv!d!>%wRhj# zal^hk+WGNg;rJtb-EB(?czvOM=H7dl=vblBwAv>}%1@{}mnpUznfq1cE^sgsL0*4I zJ##!*B?=vI_OEVis5o+_IwMIRrpQyT_Sq~ZU%oY7c5JMIADzpD!Upz9h@iWg_>>~j zOLS;wp^i$-E?4<_cp?RiS%Rd?i;f*mOz=~(&3lo<=@(nR!_Rqiprh@weZlL!t#NCc zO!QTcInq|%#>OVgobj{~ixEUec`E25zJ~*DofsQdzIa@5^nOXj2T;8O`l--(QyU^$t?TGY^7#&FQ+2SS3B#qK*k3`ye?8jUYSajE5iBbJls75CCc(m3dk{t?- zopcER9{Z?TC)mk~gpi^kbbu>b-+a{m#8-y2^p$ka4n60w;Sc2}HMf<8JUvhCL0B&Btk)T`ctE$*qNW8L$`7!r^9T+>=<=2qaq-;ll2{`{Rg zc5a0ZUI$oG&j-qVOuKa=*v4aY#IsoM+1|c4Z)<}lEDvy;5huB@1RJPquU2U*U-;gu z=En2m+qjBzR#DEJDO`WU)hdd{Vj%^0V*KoyZ|5lzV87&g_j~NCjwv0uQVqXOb*QrQ zy|Qn`hxx(58c70$E;L(X0uZZ72M1!6oeg)(cdKO ze0gDaTz+ohR-#d)NbAH4x{I(21yjwvBQfmpLu$)|m{XolbgF!pmsqJ#D}(ylp6uC> z{bqtcI#hT#HW=wl7>p!38sKsJ`r8}lt-q%Keqy%u(xk=yiIJiUw6|5IvkS+#?JTBl z8H5(Q?l#wzazujH!8o>1xtn8#_w+397*_cy8!pQGP%K(Ga3pAjsaTbbXJlQF_+m+-UpUUent@xM zg%jqLUExj~o^vQ3Gl*>wh=_gOr2*|U64_iXb+-111aH}$TjeajM+I20xw(((>fej-@CIz4S1pi$(#}P7`4({6QS2CaQS4NPENDp>sAqD z$bH4KGzXGffkJ7R>V>)>tC)uax{UsN*dbeNC*v}#8Y#OWYwL4t$ePR?VTyIs!wea+ z5Urmc)X|^`MG~*dS6pGSbU+gPJoq*^a=_>$n4|P^w$sMBBy@f*Z^Jg6?n5?oId6f{ z$LW4M|4m502z0t7g<#Bx%X;9<=)smFolV&(V^(7Cv2-sxbxopQ!)*#ZRhTBpx1)Fc zNm1T%bONzv6@#|dz(w02AH8OXe>kQ#1FMCzO}2J_mST)+ExmBr9cva-@?;wnmWMOk z{3_~EX_xadgJGv&H@zK_8{(x84`}+c?oSBX*Ge3VdfTt&F}yCpFP?CpW+BE^cWY0^ zb&uBN!Ja3UzYHK-CTyA5=L zEMW{l3Usky#ly=7px648W31UNV@K)&Ub&zP1c7%)`{);I4b0Q<)B}3;NMG2JH=X$U zfIW4)4n9ZM`-yRj67I)YSLDK)qfUJ_ij}a#aZN~9EXrh8eZY2&=uY%2N0UFF7<~%M zsB8=erOWZ>Ct_#^tHZ|*q`H;A)5;ycw*IcmVxi8_0Xk}aJA^ath+E;xg!x+As(M#0=)3!NJR6H&9+zd#iP(m0PIW8$ z1Y^VX`>jm`W!=WpF*{ioM?C9`yOR>@0q=u7o>BP-eSHqCgMDj!2anwH?s%i2p+Q7D zzszIf5XJpE)IG4;d_(La-xenmF(tgAxK`Y4sQ}BSJEPs6N_U2vI{8=0C_F?@7<(G; zo$~G=8p+076G;`}>{MQ>t>7cm=zGtfbdDXm6||jUU|?X?CaE?(<6bKDYKeHlz}DA8 zXT={X=yp_R;HfJ9h%?eWvQ!dRgz&Su*JfNt!Wu>|XfU&68iRikRrHRW|ZxzRR^`eIGt zIeiDgVS>IeExKVRWW8-=A=yA`}`)ZkWBrZD`hpWIxBGkh&f#ijr449~m`j6{4jiJ*C!oVA8ZC?$1RM#K(_b zL9TW)kN*Y4%^-qPpMP7d4)o?Nk#>aoYHT(*g)qmRUb?**F@pnNiy6Fv9rEiUqD(^O zzyS?nBrX63BTRYduaG(0VVG2yJRe%o&rVrLjbxTaAFTd8s;<<@Qs>u(<193R8>}2_ zuwp{7;H2a*X7_jryzriZXMg?bTuegABb^87@SsKkr2)0Gyiax8KQWstw^v#ix45EVrcEhr>!NMhprl$InQMzjSFH54x5k9qHc`@9uKQzvL4ihcq{^B zPrVR=o_ic%Y>6&rMN)hTZsI7I<3&`#(nl+3y3ys9A~&^=4?PL&nd8)`OfG#n zwAMN$1&>K++c{^|7<4P=2y(B{jJsQ0a#U;HTo4ZmWZYvI{+s;Td{Yzem%0*k#)vjpB zia;J&>}ICate44SFYY3vEelqStQWFihx%^vQ@Do(sOy7yR2@WNv7Y9I^yL=nZr3mb zXKV5t@=?-Sk|b{XMhA7ZGB@2hqsx}4xwCW!in#C zI@}scZlr3-NFJ@NFaJlhyfcw{k^vvtGl`N9xSo**rDW4S}i zM9{fMPWo%4wYDG~BZ18BD+}h|GQKc-g^{++3MY>}W_uq7jGHx{mwE9fZiPCoxN$+7 zrODGGJrOkcPQUB(FD5aoS4g~7#6NR^ma7-!>mHuJfY5kTe6PpNNKC9GGRiu^L31uG z$7v`*JknQHsYB!Tm_W{a32TM099djW%5e+j0Ve_ct}IM>XLF1Ap+YvcrLV=|CKo6S zb+9Nl3_YdKP6%Cxy@6TxZ>;4&nTneadr z_ES90ydCev)LV!dN=#(*f}|ZORFdvkYBni^aLbUk>BajeWIOcmHP#8S)*2U~QKI%S zyrLmtPqb&TphJ;>yAxri#;{uyk`JJqODDw%(Z=2`1uc}br^V%>j!gS)D*q*f_-qf8&D;W1dJgQMlaH5er zN2U<%Smb7==vE}dDI8K7cKz!vs^73o9f>2sgiTzWcwY|BMYHH5%Vn7#kiw&eItCqa zIkR2~Q}>X=Ar8W|^Ms41Fm8o6IB2_j60eOeBB1Br!boW7JnoeX6Gs)?7rW0^5psc- zjS16yb>dFn>KPOF;imD}e!enuIniFzv}n$m2#gCCv4jM#ArwlzZ$7@9&XkFxZ4n!V zj3dyiwW4Ki2QG{@i>yuZXQizw_OkZI^-3otXC{!(lUpJF33gI60ak;Uqitp74|B6I zgg{b=Iz}WkhCGj1M=hu4#Aw173YxIVbISaoc z-nLZC*6Tgivd5V`K%GxhBsp@SUU60-rfc$=wb>zdJzXS&-5(NRRodFk;Kxk!S(O(a0e7oY=E( zAyS;Ow?6Q&XA+cnkCb{28_1N8H#?J!*$MmIwLq^*T_9-z^&UE@A(z9oGYtFy6EZef LrJugUA?W`A8`#=m From 783fa306c766614371a42a0848fe73529961b6a2 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Wed, 29 Nov 2023 00:41:58 +0530 Subject: [PATCH 79/95] package.json fixes --- .../generator/templates/app/package.ts.json | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/packages/generator/templates/app/package.ts.json b/packages/generator/templates/app/package.ts.json index 48e647c213..a50e9843bf 100644 --- a/packages/generator/templates/app/package.ts.json +++ b/packages/generator/templates/app/package.ts.json @@ -1,6 +1,6 @@ { - "name": "blitz-app-starter", - "version": "0.1.1-beta.3", + "name": "__name__", + "version": "1.0.0", "private": true, "scripts": { "dev": "blitz dev", @@ -20,14 +20,18 @@ "printWidth": 100 }, "lint-staged": { - "*.{js,ts,tsx}": ["eslint --fix"] + "*.{js,ts,tsx}": [ + "eslint --fix" + ] }, "dependencies": { - "@blitzjs/auth": "latest", - "@blitzjs/next": "latest", - "@blitzjs/rpc": "latest", + "@blitzjs/auth": "2.0.0-beta.36", + "@blitzjs/next": "2.0.0-beta.36", + "@blitzjs/rpc": "2.0.0-beta.36", "@prisma/client": "5.4.2", - "blitz": "latest", + "@types/preview-email": "3.0.4", + "blitz": "2.0.0-beta.36", + "formik": "2.4.5", "next": "13.5.4", "prisma": "5.4.2", "react": "18.2.0", From f88778bfab1e845e98f9fd77e537e7af41d102cc Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Wed, 29 Nov 2023 00:42:23 +0530 Subject: [PATCH 80/95] revert to `latest` --- packages/generator/templates/app/package.ts.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/generator/templates/app/package.ts.json b/packages/generator/templates/app/package.ts.json index a50e9843bf..0206bf906e 100644 --- a/packages/generator/templates/app/package.ts.json +++ b/packages/generator/templates/app/package.ts.json @@ -25,12 +25,12 @@ ] }, "dependencies": { - "@blitzjs/auth": "2.0.0-beta.36", - "@blitzjs/next": "2.0.0-beta.36", - "@blitzjs/rpc": "2.0.0-beta.36", + "@blitzjs/auth": "latest", + "@blitzjs/next": "latest", + "@blitzjs/rpc": "latest", "@prisma/client": "5.4.2", "@types/preview-email": "3.0.4", - "blitz": "2.0.0-beta.36", + "blitz": "latest", "formik": "2.4.5", "next": "13.5.4", "prisma": "5.4.2", From f5b34fa6d32b7d0565a6f6e2d2df10969ae3bb4b Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Wed, 29 Nov 2023 00:42:48 +0530 Subject: [PATCH 81/95] move to `devDeps` --- packages/generator/templates/app/package.ts.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/generator/templates/app/package.ts.json b/packages/generator/templates/app/package.ts.json index 0206bf906e..ce13a7c92a 100644 --- a/packages/generator/templates/app/package.ts.json +++ b/packages/generator/templates/app/package.ts.json @@ -29,7 +29,6 @@ "@blitzjs/next": "latest", "@blitzjs/rpc": "latest", "@prisma/client": "5.4.2", - "@types/preview-email": "3.0.4", "blitz": "latest", "formik": "2.4.5", "next": "13.5.4", @@ -41,6 +40,7 @@ }, "devDependencies": { "@types/node": "18.11.7", + "@types/preview-email": "3.0.4", "@types/react": "18.0.23", "@types/react-dom": "18.0.7", "eslint": "8.26.0", From 3a82aec401aca68f4224f0430d9f3ac74629c7c5 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Wed, 29 Nov 2023 00:46:51 +0530 Subject: [PATCH 82/95] add display names --- .../templates/app/_forms/finalform/LabelSelectField.tsx | 2 ++ .../templates/app/_forms/finalform/LabeledTextField.tsx | 2 ++ .../templates/app/_forms/formik/LabelSelectField.tsx | 2 ++ .../templates/app/_forms/formik/LabeledTextField.tsx | 2 ++ .../templates/app/_forms/hookform/LabelSelectField.tsx | 4 ++++ .../templates/app/_forms/hookform/LabeledTextField.tsx | 2 ++ .../generator/templates/app/src/app/auth/mutations/login.ts | 3 ++- 7 files changed, 16 insertions(+), 1 deletion(-) diff --git a/packages/generator/templates/app/_forms/finalform/LabelSelectField.tsx b/packages/generator/templates/app/_forms/finalform/LabelSelectField.tsx index 3bf2ceea42..a37899e6f1 100644 --- a/packages/generator/templates/app/_forms/finalform/LabelSelectField.tsx +++ b/packages/generator/templates/app/_forms/finalform/LabelSelectField.tsx @@ -57,4 +57,6 @@ export const LabeledSelectField = forwardRef { const {email, password} = Login.parse({email: rawEmail, password: rawPassword}) @@ -23,6 +24,6 @@ export const authenticateUser = async (rawEmail: string, rawPassword: string) => export default resolver.pipe(resolver.zod(Login), async ({email, password}, ctx) => { const user = await authenticateUser(email, password) - await ctx.session.$create({userId: user.id, role: user.role}) + await ctx.session.$create({userId: user.id, role: user.role as Role}) return user }) From 535d078dcd76d0512e880a412c32f5a6dae4370f Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Wed, 6 Dec 2023 20:07:56 +0530 Subject: [PATCH 83/95] make it a template --- .../route/__modelIdParam__/edit/page.tsx | 26 ++++++++++ .../templates/route/__modelIdParam__/page.tsx | 30 +++++++++++ .../route/components/Edit__ModelName__.tsx | 51 ++++++++++++++++++ .../route/components/New__ModelName__Form.tsx | 28 ++++++++++ .../route/components/__ModelName__.tsx | 36 +++++++++++++ .../route/components/__ModelNames__List.tsx | 52 +++++++++++++++++++ packages/generator/templates/route/layout.tsx | 8 +++ .../generator/templates/route/new/page.tsx | 19 +++++++ packages/generator/templates/route/page.tsx | 22 ++++++++ 9 files changed, 272 insertions(+) create mode 100644 packages/generator/templates/route/__modelIdParam__/edit/page.tsx create mode 100644 packages/generator/templates/route/__modelIdParam__/page.tsx create mode 100644 packages/generator/templates/route/components/Edit__ModelName__.tsx create mode 100644 packages/generator/templates/route/components/New__ModelName__Form.tsx create mode 100644 packages/generator/templates/route/components/__ModelName__.tsx create mode 100644 packages/generator/templates/route/components/__ModelNames__List.tsx create mode 100644 packages/generator/templates/route/layout.tsx create mode 100644 packages/generator/templates/route/new/page.tsx create mode 100644 packages/generator/templates/route/page.tsx diff --git a/packages/generator/templates/route/__modelIdParam__/edit/page.tsx b/packages/generator/templates/route/__modelIdParam__/edit/page.tsx new file mode 100644 index 0000000000..0aeff0f312 --- /dev/null +++ b/packages/generator/templates/route/__modelIdParam__/edit/page.tsx @@ -0,0 +1,26 @@ +import { Metadata } from "next" +import { Suspense } from "react" +import { invoke } from "app/src/blitz-server" +import get__ModelName__ from "../../queries/get__ModelName__.ts" +import { Edit__ModelName__ } from "../../components/Edit__ModelName__.tsx" + +type Edit__ModelName__PageProps = { + params: { __modelId__: string } +} + +export async function generateMetadata({ params }: Edit__ModelName__PageProps): Promise { + const __ModelName__ = await invoke(get__ModelName__, { id: Number(params.__modelId__) }) + return { + title: `Edit __ModelName__ ${__ModelName__.id} - ${__ModelName__.name}`, + } +} + +export default async function Page({ params }: Edit__ModelName__PageProps) { + return ( +
+ Loading...
}> + + +
+ ) +} diff --git a/packages/generator/templates/route/__modelIdParam__/page.tsx b/packages/generator/templates/route/__modelIdParam__/page.tsx new file mode 100644 index 0000000000..6eeabef317 --- /dev/null +++ b/packages/generator/templates/route/__modelIdParam__/page.tsx @@ -0,0 +1,30 @@ +import { Metadata } from "next" +import Link from "next/link" +import { Suspense } from "react" +import { invoke } from "app/src/blitz-server" +import get__ModelName__ from "../queries/get__ModelName__" +import { __ModelName__ } from "../components/__ModelName__" + +export async function generateMetadata({ params }: __ModelName__PageProps): Promise { + const __ModelName__ = await invoke(get__ModelName__, { id: Number(params.__ModelName__Id) }) + return { + title: `__ModelName__ ${__ModelName__.id} - ${__ModelName__.name}`, + } +} + +type __ModelName__PageProps = { + params: { __modelId__: string } +} + +export default async function Page({ params }: __ModelName__PageProps) { + return ( +
+

+ __ModelName__s +

+ Loading...
}> + <__ModelName__ __modelId__={Number(params.__modelId__)} /> + +
+ ) +} diff --git a/packages/generator/templates/route/components/Edit__ModelName__.tsx b/packages/generator/templates/route/components/Edit__ModelName__.tsx new file mode 100644 index 0000000000..f0281fa49e --- /dev/null +++ b/packages/generator/templates/route/components/Edit__ModelName__.tsx @@ -0,0 +1,51 @@ +"use client" +import { Suspense } from "react" +import update__ModelName__ from "../mutations/update__ModelName__" +import get__ModelName__ from "../queries/get__ModelName__" +import { Update__ModelName__Schema } from "../schemas" +import { FORM_ERROR, __ModelName__Form } from "./__ModelName__Form" +import { useMutation, useQuery } from "@blitzjs/rpc" +import { useRouter } from "next/navigation" + +export const Edit__ModelName__ = ({ __modelId__ }: { __modelId__: number }) => { + const [__modelName__, { setQueryData }] = useQuery( + get__ModelName__, + { id: __modelId__ }, + { + // This ensures the query never refreshes and overwrites the form data while the user is editing. + staleTime: Infinity, + } + ) + const [update__ModelName__Mutation] = useMutation(update__ModelName__) + const router = useRouter() + return ( + <> +
+

Edit __ModelName__ {__modelName__.id}

+
{JSON.stringify(__modelName__, null, 2)}
+ Loading...
}> + <__ModelName__Form + submitText="Update __ModelName__" + schema={Update__ModelName__Schema} + initialValues={__modelName__} + onSubmit={async (values) => { + try { + const updated = await update__ModelName__Mutation({ + ...values, + id: __modelName__.id, + }) + await setQueryData(updated) + router.refresh() + } catch (error: any) { + console.error(error) + return { + [FORM_ERROR]: error.toString(), + } + } + }} + /> + +
+ + ) +} diff --git a/packages/generator/templates/route/components/New__ModelName__Form.tsx b/packages/generator/templates/route/components/New__ModelName__Form.tsx new file mode 100644 index 0000000000..c0961aede5 --- /dev/null +++ b/packages/generator/templates/route/components/New__ModelName__Form.tsx @@ -0,0 +1,28 @@ +"use client" +import { FORM_ERROR, __ModelName__Form } from "./__ModelName__Form" +import { Create__ModelName__Schema } from "../schemas" +import { useMutation } from "@blitzjs/rpc" +import create__ModelName__ from "../mutations/create__ModelName__" +import { useRouter } from "next/navigation" + +export function New__ModelName__Form() { + const [create__ModelName__Mutation] = useMutation(create__ModelName__) + const router = useRouter() + return ( + <__ModelName__Form + submitText="Create __ModelName__" + schema={Create__ModelName__Schema} + onSubmit={async (values) => { + try { + const __modelName__ = await create__ModelName__Mutation(values) + router.push(`/__modelNames__/${__modelName__.id}`) + } catch (error: any) { + console.error(error) + return { + [FORM_ERROR]: error.toString(), + } + } + }} + /> + ) +} diff --git a/packages/generator/templates/route/components/__ModelName__.tsx b/packages/generator/templates/route/components/__ModelName__.tsx new file mode 100644 index 0000000000..19b6056666 --- /dev/null +++ b/packages/generator/templates/route/components/__ModelName__.tsx @@ -0,0 +1,36 @@ +"use client" +import { useMutation, useQuery } from "@blitzjs/rpc" +import Link from "next/link" +import { useRouter } from "next/navigation" +import delete__ModelName__ from "../mutations/delete__ModelName__" +import get__ModelName__ from "../queries/get__ModelName__" + +export const __ModelName__ = ({ __modelId__ }: { __modelId__: number }) => { + const router = useRouter() + const [delete__ModelName__Mutation] = useMutation(delete__ModelName__) + const [__modelName__] = useQuery(get__ModelName__, { id: __modelId__ }) + + return ( + <> +
+

Project {__modelName__.id}

+
{JSON.stringify(__modelName__, null, 2)}
+ + Edit + + +
+ + ) +} diff --git a/packages/generator/templates/route/components/__ModelNames__List.tsx b/packages/generator/templates/route/components/__ModelNames__List.tsx new file mode 100644 index 0000000000..80da5e3c02 --- /dev/null +++ b/packages/generator/templates/route/components/__ModelNames__List.tsx @@ -0,0 +1,52 @@ +"use client" +import { usePaginatedQuery } from "@blitzjs/rpc" +import Link from "next/link" +import { useRouter } from "next/navigation" +import get__modelNames__ from "../queries/get__modelNames__" +import { useSearchParams } from "next/navigation" +import { usePathname } from "next/navigation" +import { Route } from "next" + +const ITEMS_PER_PAGE = 100 + +export const __ModelNames__List = () => { + const searchparams = useSearchParams()! + const page = Number(searchparams.get("page")) || 0 + const [{ __modelNames__, hasMore }] = usePaginatedQuery(get__modelNames__, { + orderBy: { id: "asc" }, + skip: ITEMS_PER_PAGE * page, + take: ITEMS_PER_PAGE, + }) + const router = useRouter() + const pathname = usePathname() + + const goToPreviousPage = () => { + const params = new URLSearchParams(searchparams) + params.set("page", (page - 1).toString()) + router.push((pathname + "?" + params.toString()) as Route) + } + const goToNextPage = () => { + const params = new URLSearchParams(searchparams) + params.set("page", (page + 1).toString()) + router.push((pathname + "?" + params.toString()) as Route) + } + + return ( +
+
    + {__modelNames__.map((__modelName__) => ( +
  • + {__modelName__.name} +
  • + ))} +
+ + + +
+ ) +} diff --git a/packages/generator/templates/route/layout.tsx b/packages/generator/templates/route/layout.tsx new file mode 100644 index 0000000000..3056182c4c --- /dev/null +++ b/packages/generator/templates/route/layout.tsx @@ -0,0 +1,8 @@ +import { useAuthenticatedBlitzContext } from "app/src/blitz-server" + +export default async function AuthLayout({ children }: { children: React.ReactNode }) { + await useAuthenticatedBlitzContext({ + redirectTo: "/login", + }) + return <>{children} +} diff --git a/packages/generator/templates/route/new/page.tsx b/packages/generator/templates/route/new/page.tsx new file mode 100644 index 0000000000..a6f7d7e974 --- /dev/null +++ b/packages/generator/templates/route/new/page.tsx @@ -0,0 +1,19 @@ +import { Metadata } from "next" +import { Suspense } from "react" +import { New__ModelName__Form } from "../components/New__ModelName__Form" + +export const metadata: Metadata = { + title: "New Project", + description: "Create a new project", +} + +export default function Page() { + return ( +
+

Create New Project

+ Loading...
}> + + +
+ ) +} diff --git a/packages/generator/templates/route/page.tsx b/packages/generator/templates/route/page.tsx new file mode 100644 index 0000000000..c89d15b7ed --- /dev/null +++ b/packages/generator/templates/route/page.tsx @@ -0,0 +1,22 @@ +import { Metadata } from "next" +import Link from "next/link" +import { Suspense } from "react" +import { __ModelNames__List } from "./components/__ModelNames__List" + +export const metadata: Metadata = { + title: "__ModelNames__", + description: "List of __modelNames__" +} + +export default function Page() { + return ( +
+

+ Create __ModelName__ +

+ Loading...
}> + <__ModelNames__List /> + +
+ ) +} From aaa52f44fae945ec4f9b28a3bd8a3b1254cbaa39 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Wed, 6 Dec 2023 20:11:08 +0530 Subject: [PATCH 84/95] new route generator --- .../src/generators/route-generator.ts | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 packages/generator/src/generators/route-generator.ts diff --git a/packages/generator/src/generators/route-generator.ts b/packages/generator/src/generators/route-generator.ts new file mode 100644 index 0000000000..55db18f02a --- /dev/null +++ b/packages/generator/src/generators/route-generator.ts @@ -0,0 +1,30 @@ +import {FieldValuesBuilder, ResourceGeneratorOptions} from ".." +import {Generator, SourceRootType} from "../generator" +import {getTemplateRoot} from "../utils/get-template-root" +import {camelCaseToKebabCase} from "../utils/inflector" + +export interface RouteGeneratorOptions extends ResourceGeneratorOptions {} + +export class RouteGenerator extends Generator { + sourceRoot: SourceRootType + constructor(options: RouteGeneratorOptions) { + super(options) + this.sourceRoot = getTemplateRoot(options.templateDir, {type: "template", path: "route"}) + } + static subdirectory = "../../.." + + templateValuesBuilder = new FieldValuesBuilder(this.fs) + + getModelNamesPath() { + const kebabCaseContext = this.options.context + ? `${camelCaseToKebabCase(this.options.context)}/` + : "" + const kebabCaseModelNames = camelCaseToKebabCase(this.options.modelNames) + return kebabCaseContext + kebabCaseModelNames + } + + getTargetDirectory() { + const kebabCaseModelName = camelCaseToKebabCase(this.options.modelNames) + return `src/app/${parent}${kebabCaseModelName}` + } +} From 4de4171507195760ce6ae588bb3cff9a3424fbbf Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Wed, 6 Dec 2023 20:24:10 +0530 Subject: [PATCH 85/95] fidnally got it working --- packages/blitz/src/cli/commands/generate.ts | 17 +++++++++++------ .../generator/src/generators/route-generator.ts | 2 +- packages/generator/src/index.ts | 1 + .../templates/route/__modelIdParam__/page.tsx | 2 +- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/packages/blitz/src/cli/commands/generate.ts b/packages/blitz/src/cli/commands/generate.ts index d60e78a183..3dc17a8580 100644 --- a/packages/blitz/src/cli/commands/generate.ts +++ b/packages/blitz/src/cli/commands/generate.ts @@ -3,16 +3,13 @@ import {CliCommand} from "../index" import prompts from "prompts" import { capitalize, - pluralCamel, - pluralPascal, - singleCamel, - singlePascal, uncapitalize, PageGenerator, FormGenerator, QueriesGenerator, MutationGenerator, MutationsGenerator, + RouteGenerator, ModelGenerator, QueryGenerator, ValidationsGenerator, @@ -23,6 +20,7 @@ import { customTemplatesBlitzConfig, } from "@blitzjs/generator" import {log} from "../../logging" +import fs from "fs-extra" const getIsTypeScript = async () => require("fs").existsSync(require("path").join(process.cwd(), "tsconfig.json")) @@ -72,18 +70,25 @@ const createCustomTemplates = async () => { process.exit(0) } +const nextAppDirectory = fs.existsSync(require("path").join(process.cwd(), "src/app/layout.tsx")) + ? "app" + : "pages" + const generatorMap = { [ResourceType.All]: [ - PageGenerator, FormGenerator, QueriesGenerator, MutationsGenerator, ValidationsGenerator, ModelGenerator, + nextAppDirectory === "app" ? RouteGenerator : PageGenerator, ], [ResourceType.Crud]: [MutationsGenerator, QueriesGenerator, ValidationsGenerator], [ResourceType.Model]: [ModelGenerator], - [ResourceType.Pages]: [PageGenerator, FormGenerator], + [ResourceType.Pages]: [ + FormGenerator, + nextAppDirectory === "app" ? RouteGenerator : PageGenerator, + ], [ResourceType.Queries]: [QueriesGenerator], [ResourceType.Query]: [QueryGenerator], [ResourceType.Mutations]: [MutationsGenerator, ValidationsGenerator], diff --git a/packages/generator/src/generators/route-generator.ts b/packages/generator/src/generators/route-generator.ts index 55db18f02a..a67fd1fa96 100644 --- a/packages/generator/src/generators/route-generator.ts +++ b/packages/generator/src/generators/route-generator.ts @@ -25,6 +25,6 @@ export class RouteGenerator extends Generator { getTargetDirectory() { const kebabCaseModelName = camelCaseToKebabCase(this.options.modelNames) - return `src/app/${parent}${kebabCaseModelName}` + return `src/app/${kebabCaseModelName}` } } diff --git a/packages/generator/src/index.ts b/packages/generator/src/index.ts index 95d2e42984..935c2d3804 100644 --- a/packages/generator/src/index.ts +++ b/packages/generator/src/index.ts @@ -7,6 +7,7 @@ export * from "./generators/page-generator" export * from "./generators/queries-generator" export * from "./generators/query-generator" export * from "./generators/form-generator" +export * from "./generators/route-generator" export * from "./generator" export * from "./generators/template-builders/builder" export * from "./generators/template-builders/null-builder" diff --git a/packages/generator/templates/route/__modelIdParam__/page.tsx b/packages/generator/templates/route/__modelIdParam__/page.tsx index 6eeabef317..610f89e1ce 100644 --- a/packages/generator/templates/route/__modelIdParam__/page.tsx +++ b/packages/generator/templates/route/__modelIdParam__/page.tsx @@ -6,7 +6,7 @@ import get__ModelName__ from "../queries/get__ModelName__" import { __ModelName__ } from "../components/__ModelName__" export async function generateMetadata({ params }: __ModelName__PageProps): Promise { - const __ModelName__ = await invoke(get__ModelName__, { id: Number(params.__ModelName__Id) }) + const __ModelName__ = await invoke(get__ModelName__, { id: Number(params.__modelId__) }) return { title: `__ModelName__ ${__ModelName__.id} - ${__ModelName__.name}`, } From 0509c70c8a20dc787b8ee500aec47433f93b4556 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Wed, 6 Dec 2023 22:28:06 +0530 Subject: [PATCH 86/95] add `isAppDir` check --- packages/generator/src/generators/form-generator.ts | 4 ++++ packages/generator/src/generators/mutation-generator.ts | 6 ++++++ packages/generator/src/generators/mutations-generator.ts | 6 ++++++ packages/generator/src/generators/queries-generator.ts | 6 ++++++ packages/generator/src/generators/query-generator.ts | 6 ++++++ packages/generator/src/generators/validations-generator.ts | 6 ++++++ 6 files changed, 34 insertions(+) diff --git a/packages/generator/src/generators/form-generator.ts b/packages/generator/src/generators/form-generator.ts index 55dfd67363..9358937ff2 100644 --- a/packages/generator/src/generators/form-generator.ts +++ b/packages/generator/src/generators/form-generator.ts @@ -14,14 +14,17 @@ import { insertLabeledSelectField, updateFormWithParent, } from "../../src/utils/codemod-utils" +import fs from "fs-extra" export interface FormGeneratorOptions extends ResourceGeneratorOptions {} export class FormGenerator extends Generator { sourceRoot: SourceRootType + isAppDir = false constructor(options: FormGeneratorOptions) { super(options) this.sourceRoot = getTemplateRoot(options.templateDir, {type: "template", path: "form"}) + this.isAppDir = fs.existsSync(require("path").join(process.cwd(), "src/app/layout.tsx")) } static subdirectory = "queries" @@ -61,6 +64,7 @@ export class FormGenerator extends Generator { getTargetDirectory() { const context = this.options.context ? `${camelCaseToKebabCase(this.options.context)}/` : "" const kebabCaseModelName = camelCaseToKebabCase(this.options.modelNames) + if (this.isAppDir) return `src/app/${context}${kebabCaseModelName}/components` return `src/${context}${kebabCaseModelName}/components` } } diff --git a/packages/generator/src/generators/mutation-generator.ts b/packages/generator/src/generators/mutation-generator.ts index 87d53ac30b..41b097b160 100644 --- a/packages/generator/src/generators/mutation-generator.ts +++ b/packages/generator/src/generators/mutation-generator.ts @@ -1,6 +1,7 @@ import {Generator, GeneratorOptions, SourceRootType} from "../generator" import {getTemplateRoot} from "../utils/get-template-root" import {camelCaseToKebabCase} from "../utils/inflector" +import fs from "fs-extra" export interface MutationGeneratorOptions extends GeneratorOptions { name: string @@ -9,9 +10,11 @@ export interface MutationGeneratorOptions extends GeneratorOptions { export class MutationGenerator extends Generator { sourceRoot: SourceRootType + isAppDir = false constructor(options: MutationGeneratorOptions) { super(options) this.sourceRoot = getTemplateRoot(options.templateDir, {type: "template", path: "mutation"}) + this.isAppDir = fs.existsSync(require("path").join(process.cwd(), "src/app/layout.tsx")) } static subdirectory = "mutation" @@ -25,6 +28,9 @@ export class MutationGenerator extends Generator { getTargetDirectory() { const context = this.options.context ? `${camelCaseToKebabCase(this.options.context)}` : "" + if (this.isAppDir) { + return `src/app/${context}/mutations` + } return `src/${context}/mutations` } } diff --git a/packages/generator/src/generators/mutations-generator.ts b/packages/generator/src/generators/mutations-generator.ts index 832a40744b..41850506f6 100644 --- a/packages/generator/src/generators/mutations-generator.ts +++ b/packages/generator/src/generators/mutations-generator.ts @@ -9,14 +9,17 @@ import { } from ".." import {customTsParser, Generator, SourceRootType} from "../generator" import {replaceImportDbWithPrismaFolder} from "../../src/utils/codemod-utils" +import fs from "fs-extra" export interface MutationsGeneratorOptions extends ResourceGeneratorOptions {} export class MutationsGenerator extends Generator { sourceRoot: SourceRootType + isAppDir = false constructor(options: MutationsGeneratorOptions) { super(options) this.sourceRoot = getTemplateRoot(options.templateDir, {type: "template", path: "mutations"}) + this.isAppDir = fs.existsSync(require("path").join(process.cwd(), "src/app/layout.tsx")) } static subdirectory = "mutations" @@ -50,6 +53,9 @@ export class MutationsGenerator extends Generator { getTargetDirectory() { const context = this.options.context ? `${camelCaseToKebabCase(this.options.context)}/` : "" const kebabCaseModelName = camelCaseToKebabCase(this.options.modelNames) + if (this.isAppDir) { + return `src/app/${context}${kebabCaseModelName}/mutations` + } return `src/${context}${kebabCaseModelName}/mutations` } } diff --git a/packages/generator/src/generators/queries-generator.ts b/packages/generator/src/generators/queries-generator.ts index 92cb051e49..15d8ac7102 100644 --- a/packages/generator/src/generators/queries-generator.ts +++ b/packages/generator/src/generators/queries-generator.ts @@ -4,14 +4,17 @@ import {getTemplateRoot} from "../utils/get-template-root" import {camelCaseToKebabCase} from "../utils/inflector" import j from "jscodeshift" import {replaceImportDbWithPrismaFolder} from "../../src/utils/codemod-utils" +import fs from "fs-extra" export interface QueriesGeneratorOptions extends ResourceGeneratorOptions {} export class QueriesGenerator extends Generator { sourceRoot: SourceRootType + isAppDir = false constructor(options: QueriesGeneratorOptions) { super(options) this.sourceRoot = getTemplateRoot(options.templateDir, {type: "template", path: "queries"}) + this.isAppDir = fs.existsSync(require("path").join(process.cwd(), "src/app/layout.tsx")) } static subdirectory = "queries" @@ -33,6 +36,9 @@ export class QueriesGenerator extends Generator { getTargetDirectory() { const context = this.options.context ? `${camelCaseToKebabCase(this.options.context)}/` : "" const kebabCaseModelName = camelCaseToKebabCase(this.options.modelNames) + if (this.isAppDir) { + return `src/app/${context}${kebabCaseModelName}/queries` + } return `src/${context}${kebabCaseModelName}/queries` } } diff --git a/packages/generator/src/generators/query-generator.ts b/packages/generator/src/generators/query-generator.ts index 4b77f4f75d..607526e981 100644 --- a/packages/generator/src/generators/query-generator.ts +++ b/packages/generator/src/generators/query-generator.ts @@ -1,6 +1,7 @@ import {Generator, GeneratorOptions, SourceRootType} from "../generator" import {getTemplateRoot} from "../utils/get-template-root" import {camelCaseToKebabCase} from "../utils/inflector" +import fs from "fs-extra" export interface QueryGeneratorOptions extends GeneratorOptions { name: string @@ -9,9 +10,11 @@ export interface QueryGeneratorOptions extends GeneratorOptions { export class QueryGenerator extends Generator { sourceRoot: SourceRootType + isAppDir = false constructor(options: QueryGeneratorOptions) { super(options) this.sourceRoot = getTemplateRoot(options.templateDir, {type: "template", path: "query"}) + this.isAppDir = fs.existsSync(require("path").join(process.cwd(), "src/app/layout.tsx")) } static subdirectory = "query" @@ -25,6 +28,9 @@ export class QueryGenerator extends Generator { getTargetDirectory() { const context = this.options.context ? `${camelCaseToKebabCase(this.options.context)}` : "" + if (this.isAppDir) { + return `src/app/${context}/queries` + } return `src/${context}/queries` } } diff --git a/packages/generator/src/generators/validations-generator.ts b/packages/generator/src/generators/validations-generator.ts index 3ed1618510..b845c81267 100644 --- a/packages/generator/src/generators/validations-generator.ts +++ b/packages/generator/src/generators/validations-generator.ts @@ -9,14 +9,17 @@ import { } from ".." import {customTsParser, Generator, SourceRootType} from "../generator" import {replaceImportDbWithPrismaFolder} from "../../src/utils/codemod-utils" +import fs from "fs-extra" export interface ValidationsGeneratorOptions extends ResourceGeneratorOptions {} export class ValidationsGenerator extends Generator { sourceRoot: SourceRootType + isAppDir = false constructor(options: ValidationsGeneratorOptions) { super(options) this.sourceRoot = getTemplateRoot(options.templateDir, {type: "template", path: "validations"}) + this.isAppDir = fs.existsSync(require("path").join(process.cwd(), "src/app/layout.tsx")) } static subdirectory = "validations" @@ -49,6 +52,9 @@ export class ValidationsGenerator extends Generator getTargetDirectory() { const context = this.options.context ? `${camelCaseToKebabCase(this.options.context)}/` : "" const kebabCaseModelName = camelCaseToKebabCase(this.options.modelNames) + if (this.isAppDir) { + return `src/app/${context}${kebabCaseModelName}` + } return `src/${context}${kebabCaseModelName}` } } From 776dfa7b697eb3ec29965e8a0aaea812a4862d9b Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Tue, 12 Dec 2023 20:46:38 +0530 Subject: [PATCH 87/95] should be the final changes --- packages/generator/src/generators/form-generator.ts | 4 ++++ packages/generator/templates/form/__ModelName__Form.tsx | 6 +++--- .../templates/route/__modelIdParam__/edit/page.tsx | 4 ++-- .../{New__ModelName__Form.tsx => New__ModelName__.tsx} | 2 +- packages/generator/templates/route/new/page.tsx | 4 ++-- 5 files changed, 12 insertions(+), 8 deletions(-) rename packages/generator/templates/route/components/{New__ModelName__Form.tsx => New__ModelName__.tsx} (95%) diff --git a/packages/generator/src/generators/form-generator.ts b/packages/generator/src/generators/form-generator.ts index 9358937ff2..8ab3e30efa 100644 --- a/packages/generator/src/generators/form-generator.ts +++ b/packages/generator/src/generators/form-generator.ts @@ -45,6 +45,10 @@ export class FormGenerator extends Generator { templateValues.fieldTemplateValues = [newFieldTemplateValues] } } + templateValues = { + ...templateValues, + coreComponentsImportPath: this.isAppDir ? "src/app/components" : "src/core/components", + } return templateValues } diff --git a/packages/generator/templates/form/__ModelName__Form.tsx b/packages/generator/templates/form/__ModelName__Form.tsx index 725aa40b5b..1cb15e6e12 100644 --- a/packages/generator/templates/form/__ModelName__Form.tsx +++ b/packages/generator/templates/form/__ModelName__Form.tsx @@ -1,9 +1,9 @@ import React, {Suspense} from "react" -import {Form, FormProps} from "src/core/components/Form" -import {LabeledTextField} from "src/core/components/LabeledTextField" +import {Form, FormProps} from "__coreComponentsImportPath__/Form" +import {LabeledTextField} from "__coreComponentsImportPath__/LabeledTextField" import {z} from "zod" -export {FORM_ERROR} from "src/core/components/Form" +export {FORM_ERROR} from "__coreComponentsImportPath__/Form" export function __ModelName__Form>(props: FormProps) { return ( diff --git a/packages/generator/templates/route/__modelIdParam__/edit/page.tsx b/packages/generator/templates/route/__modelIdParam__/edit/page.tsx index 0aeff0f312..5835fdd303 100644 --- a/packages/generator/templates/route/__modelIdParam__/edit/page.tsx +++ b/packages/generator/templates/route/__modelIdParam__/edit/page.tsx @@ -1,8 +1,8 @@ import { Metadata } from "next" import { Suspense } from "react" import { invoke } from "app/src/blitz-server" -import get__ModelName__ from "../../queries/get__ModelName__.ts" -import { Edit__ModelName__ } from "../../components/Edit__ModelName__.tsx" +import get__ModelName__ from "../../queries/get__ModelName__" +import { Edit__ModelName__ } from "../../components/Edit__ModelName__" type Edit__ModelName__PageProps = { params: { __modelId__: string } diff --git a/packages/generator/templates/route/components/New__ModelName__Form.tsx b/packages/generator/templates/route/components/New__ModelName__.tsx similarity index 95% rename from packages/generator/templates/route/components/New__ModelName__Form.tsx rename to packages/generator/templates/route/components/New__ModelName__.tsx index c0961aede5..55a385d3e8 100644 --- a/packages/generator/templates/route/components/New__ModelName__Form.tsx +++ b/packages/generator/templates/route/components/New__ModelName__.tsx @@ -5,7 +5,7 @@ import { useMutation } from "@blitzjs/rpc" import create__ModelName__ from "../mutations/create__ModelName__" import { useRouter } from "next/navigation" -export function New__ModelName__Form() { +export function New__ModelName() { const [create__ModelName__Mutation] = useMutation(create__ModelName__) const router = useRouter() return ( diff --git a/packages/generator/templates/route/new/page.tsx b/packages/generator/templates/route/new/page.tsx index a6f7d7e974..2316a033c4 100644 --- a/packages/generator/templates/route/new/page.tsx +++ b/packages/generator/templates/route/new/page.tsx @@ -1,6 +1,6 @@ import { Metadata } from "next" import { Suspense } from "react" -import { New__ModelName__Form } from "../components/New__ModelName__Form" +import { New__ModelName } from "../components/New__ModelName__" export const metadata: Metadata = { title: "New Project", @@ -12,7 +12,7 @@ export default function Page() {

Create New Project

Loading...
}> - +
) From d02e131774c40a54746d629008a09a4b1020db6b Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Tue, 12 Dec 2023 21:02:06 +0530 Subject: [PATCH 88/95] fix --- .../generator/templates/route/__modelIdParam__/edit/page.tsx | 2 +- packages/generator/templates/route/__modelIdParam__/page.tsx | 2 +- packages/generator/templates/route/layout.tsx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/generator/templates/route/__modelIdParam__/edit/page.tsx b/packages/generator/templates/route/__modelIdParam__/edit/page.tsx index 5835fdd303..764d279139 100644 --- a/packages/generator/templates/route/__modelIdParam__/edit/page.tsx +++ b/packages/generator/templates/route/__modelIdParam__/edit/page.tsx @@ -1,6 +1,6 @@ import { Metadata } from "next" import { Suspense } from "react" -import { invoke } from "app/src/blitz-server" +import { invoke } from "src/app/blitz-server" import get__ModelName__ from "../../queries/get__ModelName__" import { Edit__ModelName__ } from "../../components/Edit__ModelName__" diff --git a/packages/generator/templates/route/__modelIdParam__/page.tsx b/packages/generator/templates/route/__modelIdParam__/page.tsx index 610f89e1ce..560a34ee06 100644 --- a/packages/generator/templates/route/__modelIdParam__/page.tsx +++ b/packages/generator/templates/route/__modelIdParam__/page.tsx @@ -1,7 +1,7 @@ import { Metadata } from "next" import Link from "next/link" import { Suspense } from "react" -import { invoke } from "app/src/blitz-server" +import { invoke } from "src/app/blitz-server" import get__ModelName__ from "../queries/get__ModelName__" import { __ModelName__ } from "../components/__ModelName__" diff --git a/packages/generator/templates/route/layout.tsx b/packages/generator/templates/route/layout.tsx index 3056182c4c..bd9ff77163 100644 --- a/packages/generator/templates/route/layout.tsx +++ b/packages/generator/templates/route/layout.tsx @@ -1,4 +1,4 @@ -import { useAuthenticatedBlitzContext } from "app/src/blitz-server" +import { useAuthenticatedBlitzContext } from "src/app/blitz-server" export default async function AuthLayout({ children }: { children: React.ReactNode }) { await useAuthenticatedBlitzContext({ From d39541dc99ab4f775258d46c3e1be2d34195f948 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Tue, 12 Dec 2023 21:10:43 +0530 Subject: [PATCH 89/95] fix import error --- .../templates/route/components/__ModelNames__List.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/generator/templates/route/components/__ModelNames__List.tsx b/packages/generator/templates/route/components/__ModelNames__List.tsx index 80da5e3c02..c10dbe4c31 100644 --- a/packages/generator/templates/route/components/__ModelNames__List.tsx +++ b/packages/generator/templates/route/components/__ModelNames__List.tsx @@ -2,7 +2,7 @@ import { usePaginatedQuery } from "@blitzjs/rpc" import Link from "next/link" import { useRouter } from "next/navigation" -import get__modelNames__ from "../queries/get__modelNames__" +import get__ModelNames__ from "../queries/get__ModelNames__" import { useSearchParams } from "next/navigation" import { usePathname } from "next/navigation" import { Route } from "next" @@ -12,7 +12,7 @@ const ITEMS_PER_PAGE = 100 export const __ModelNames__List = () => { const searchparams = useSearchParams()! const page = Number(searchparams.get("page")) || 0 - const [{ __modelNames__, hasMore }] = usePaginatedQuery(get__modelNames__, { + const [{ __modelNames__, hasMore }] = usePaginatedQuery(get__ModelNames__, { orderBy: { id: "asc" }, skip: ITEMS_PER_PAGE * page, take: ITEMS_PER_PAGE, From 61627970c2164c5df750f2fcf04612b0fac5bf16 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Tue, 12 Dec 2023 21:11:44 +0530 Subject: [PATCH 90/95] revert --- packages/blitz-rpc/src/rpc-logger.ts | 4 ++-- packages/blitz-rpc/src/server/invoke.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/blitz-rpc/src/rpc-logger.ts b/packages/blitz-rpc/src/rpc-logger.ts index f8a0b061da..236a238416 100644 --- a/packages/blitz-rpc/src/rpc-logger.ts +++ b/packages/blitz-rpc/src/rpc-logger.ts @@ -60,9 +60,9 @@ export class RpcLogger { #logger: Logger #customChalk: Chalk #state: RpcLoggerState - constructor(resolverName: string, loggingOptions?: RpcLoggerOptions) { + constructor(resolverName: string, loggingOptions?: RpcLoggerOptions, loggerName?: string) { const logger = baseLogger().getSubLogger({ - name: "blitz-rpc", + name: loggerName ? loggerName : "blitz-rpc", prefix: [resolverName + "()"], }) this.#logger = logger diff --git a/packages/blitz-rpc/src/server/invoke.ts b/packages/blitz-rpc/src/server/invoke.ts index d5668cb6e8..d616d45671 100644 --- a/packages/blitz-rpc/src/server/invoke.ts +++ b/packages/blitz-rpc/src/server/invoke.ts @@ -13,7 +13,7 @@ export async function invoke any, TInput = FirstPara "invoke is missing the first argument - it must be a query or mutation function", ) } - const rpcLogger = new RpcLogger((queryFn as any)._resolverName, loggingOptions) + const rpcLogger = new RpcLogger((queryFn as any)._resolverName, loggingOptions, "blitz-invoke") rpcLogger.timer.initResolver() rpcLogger.preResolver(params) From 48839d59623515a30171d04eda64a0733cd82480 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Wed, 20 Dec 2023 21:35:45 +0530 Subject: [PATCH 91/95] make zod optional when needed --- apps/next13/{ => src}/app/auth/layout.tsx | 2 +- apps/next13/{ => src}/app/auth/login/page.tsx | 2 +- apps/next13/{ => src}/app/auth/signup/page.tsx | 2 +- apps/next13/{ => src}/app/error.tsx | 0 apps/next13/{ => src}/app/layout.tsx | 2 +- apps/next13/{ => src}/app/page.tsx | 4 ++-- apps/next13/{ => src}/app/react-query.tsx | 4 ++-- .../generator/src/generators/template-builders/builder.ts | 7 ++++++- .../generators/template-builders/field-values-builder.ts | 1 + packages/generator/src/utils/get-codegen.ts | 1 - 10 files changed, 15 insertions(+), 10 deletions(-) rename apps/next13/{ => src}/app/auth/layout.tsx (73%) rename apps/next13/{ => src}/app/auth/login/page.tsx (81%) rename apps/next13/{ => src}/app/auth/signup/page.tsx (74%) rename apps/next13/{ => src}/app/error.tsx (100%) rename apps/next13/{ => src}/app/layout.tsx (99%) rename apps/next13/{ => src}/app/page.tsx (89%) rename apps/next13/{ => src}/app/react-query.tsx (87%) diff --git a/apps/next13/app/auth/layout.tsx b/apps/next13/src/app/auth/layout.tsx similarity index 73% rename from apps/next13/app/auth/layout.tsx rename to apps/next13/src/app/auth/layout.tsx index 7b9c6ac34c..083efc133c 100644 --- a/apps/next13/app/auth/layout.tsx +++ b/apps/next13/src/app/auth/layout.tsx @@ -1,4 +1,4 @@ -import {useAuthenticatedBlitzContext} from "../../src/blitz-server" +import {useAuthenticatedBlitzContext} from "../../blitz-server" export default async function RootLayout({children}: {children: React.ReactNode}) { await useAuthenticatedBlitzContext({ diff --git a/apps/next13/app/auth/login/page.tsx b/apps/next13/src/app/auth/login/page.tsx similarity index 81% rename from apps/next13/app/auth/login/page.tsx rename to apps/next13/src/app/auth/login/page.tsx index adc70f11cf..6eb88d7640 100644 --- a/apps/next13/app/auth/login/page.tsx +++ b/apps/next13/src/app/auth/login/page.tsx @@ -1,6 +1,6 @@ "use client" -import {LoginForm} from "../../../src/auth/components/LoginForm" +import {LoginForm} from "../../../auth/components/LoginForm" import {useRouter} from "next/navigation" import {useSearchParams} from "next/navigation" diff --git a/apps/next13/app/auth/signup/page.tsx b/apps/next13/src/app/auth/signup/page.tsx similarity index 74% rename from apps/next13/app/auth/signup/page.tsx rename to apps/next13/src/app/auth/signup/page.tsx index f45176b948..7b67b149ca 100644 --- a/apps/next13/app/auth/signup/page.tsx +++ b/apps/next13/src/app/auth/signup/page.tsx @@ -1,7 +1,7 @@ "use client" import {useRouter} from "next/navigation" -import SignupForm from "../../../src/auth/components/SignupForm" +import SignupForm from "../../../auth/components/SignupForm" const SignUp = () => { const router = useRouter() diff --git a/apps/next13/app/error.tsx b/apps/next13/src/app/error.tsx similarity index 100% rename from apps/next13/app/error.tsx rename to apps/next13/src/app/error.tsx diff --git a/apps/next13/app/layout.tsx b/apps/next13/src/app/layout.tsx similarity index 99% rename from apps/next13/app/layout.tsx rename to apps/next13/src/app/layout.tsx index 8842f2140a..4d5f1d46ee 100644 --- a/apps/next13/app/layout.tsx +++ b/apps/next13/src/app/layout.tsx @@ -1,5 +1,5 @@ import "src/styles/globals.css" -import {BlitzProvider} from "../src/blitz-client" +import {BlitzProvider} from "../blitz-client" import styles from "src/styles/Home.module.css" export default function RootLayout({children}: {children: React.ReactNode}) { diff --git a/apps/next13/app/page.tsx b/apps/next13/src/app/page.tsx similarity index 89% rename from apps/next13/app/page.tsx rename to apps/next13/src/app/page.tsx index c5649e5372..9e71f92f7d 100644 --- a/apps/next13/app/page.tsx +++ b/apps/next13/src/app/page.tsx @@ -1,8 +1,8 @@ import Link from "next/link" import styles from "src/styles/Home.module.css" import Test from "./react-query" -import {invoke, useAuthenticatedBlitzContext} from "../src/blitz-server" -import getCurrentUser from "../src/users/queries/getCurrentUser" +import {invoke, useAuthenticatedBlitzContext} from "../blitz-server" +import getCurrentUser from "../users/queries/getCurrentUser" export default async function Home() { await useAuthenticatedBlitzContext({ diff --git a/apps/next13/app/react-query.tsx b/apps/next13/src/app/react-query.tsx similarity index 87% rename from apps/next13/app/react-query.tsx rename to apps/next13/src/app/react-query.tsx index 1bfd5d4b94..aeadd4868d 100644 --- a/apps/next13/app/react-query.tsx +++ b/apps/next13/src/app/react-query.tsx @@ -1,8 +1,8 @@ "use client" import {useQuery, useMutation} from "@blitzjs/rpc" -import logout from "../src/auth/mutations/logout" -import getCurrentUser from "../src/users/queries/getCurrentUser" +import logout from "../auth/mutations/logout" +import getCurrentUser from "../users/queries/getCurrentUser" import {useTransition} from "react" import {useRouter} from "next/navigation" diff --git a/packages/generator/src/generators/template-builders/builder.ts b/packages/generator/src/generators/template-builders/builder.ts index 7b208c45a1..4b4fb8177a 100644 --- a/packages/generator/src/generators/template-builders/builder.ts +++ b/packages/generator/src/generators/template-builders/builder.ts @@ -24,6 +24,7 @@ export async function createFieldTemplateValues( valueName: string | undefined, typeName: string | undefined, parent = false, + isOptional = false, ): Promise<{[x: string]: any}> { { let values: {[x: string]: any} = { @@ -39,6 +40,9 @@ export async function createFieldTemplateValues( const fieldConfig = codegen.fieldTypeMap?.[typeName as keyof typeof codegen.fieldTypeMap] || defaultFieldConfig values = {...values, ...fieldConfig} + if (isOptional) { + values.zodType = `${values.zodType}().optional` + } if (parent) { values.inputType = singleCamel(valueName).replace("Id", "s") values.component = "LabeledSelectField" @@ -128,10 +132,11 @@ export abstract class Builder implements IBuilder { public async getFieldTemplateValues(args: string[]) { const argsPromises = args.map(async (arg: string) => { let [valueName, typeName] = arg.split(":") + const isOptional = typeName?.includes("?") if (typeName?.includes("?")) { typeName = typeName.replace("?", "") } - const values = await createFieldTemplateValues(valueName, typeName) + const values = await createFieldTemplateValues(valueName, typeName, false, isOptional) return values }) return Promise.all(argsPromises) diff --git a/packages/generator/src/generators/template-builders/field-values-builder.ts b/packages/generator/src/generators/template-builders/field-values-builder.ts index c2344cea15..3525f1466b 100644 --- a/packages/generator/src/generators/template-builders/field-values-builder.ts +++ b/packages/generator/src/generators/template-builders/field-values-builder.ts @@ -112,6 +112,7 @@ export class FieldValuesBuilder extends Builder 0) { const ftv = await this.getFieldTemplateValues(nonSpecialArgs) + return {...values, fieldTemplateValues: ftv} } } diff --git a/packages/generator/src/utils/get-codegen.ts b/packages/generator/src/utils/get-codegen.ts index c5c21407dc..a362553437 100644 --- a/packages/generator/src/utils/get-codegen.ts +++ b/packages/generator/src/utils/get-codegen.ts @@ -153,7 +153,6 @@ export const getCodegen = async () => { const combined = { fieldTypeMap: _config, } - console.log("_config", combined) if (cliConfig.codegen !== undefined) { const result = CodegenSchema.safeParse(combined) From c231bd9a052924a41b871c475b61d2b60199290d Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Wed, 20 Dec 2023 22:50:02 +0530 Subject: [PATCH 92/95] fix tests --- .../test/generators/builders/field-values-builder.test.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/generator/test/generators/builders/field-values-builder.test.ts b/packages/generator/test/generators/builders/field-values-builder.test.ts index 587504112d..05f8730973 100644 --- a/packages/generator/test/generators/builders/field-values-builder.test.ts +++ b/packages/generator/test/generators/builders/field-values-builder.test.ts @@ -78,7 +78,7 @@ describe("Form Generator", () => { attributeName: "field1", fieldName: "field1", field_name: "field1", - zodType: "string", + zodType: "string().optional", prismaType: "String", inputType: "text", }, @@ -136,7 +136,7 @@ describe("Form Generator", () => { attributeName: "field1", fieldName: "field1", field_name: "field1", - zodType: "string", + zodType: "string().optional", prismaType: "String", inputType: "text", }, @@ -184,7 +184,7 @@ describe("Form Generator", () => { attributeName: "field5", fieldName: "field5", field_name: "field5", - zodType: "number", + zodType: "number().optional", prismaType: "BigInt", inputType: "number", }, @@ -245,7 +245,7 @@ describe("Form Generator", () => { attributeName: "field10", fieldName: "field10", field_name: "field10", - zodType: "any", + zodType: "any().optional", prismaType: "Json", inputType: "text", }, From 8e89993fa484ca2aeeded19e3b57b3fac1f3d8b5 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Fri, 29 Dec 2023 22:04:04 +0530 Subject: [PATCH 93/95] fix nullable issue --- .../generator/src/generators/template-builders/builder.ts | 2 +- .../test/generators/builders/field-values-builder.test.ts | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/generator/src/generators/template-builders/builder.ts b/packages/generator/src/generators/template-builders/builder.ts index 4b4fb8177a..c049e830d4 100644 --- a/packages/generator/src/generators/template-builders/builder.ts +++ b/packages/generator/src/generators/template-builders/builder.ts @@ -41,7 +41,7 @@ export async function createFieldTemplateValues( codegen.fieldTypeMap?.[typeName as keyof typeof codegen.fieldTypeMap] || defaultFieldConfig values = {...values, ...fieldConfig} if (isOptional) { - values.zodType = `${values.zodType}().optional` + values.zodType = `${values.zodType}().nullable` } if (parent) { values.inputType = singleCamel(valueName).replace("Id", "s") diff --git a/packages/generator/test/generators/builders/field-values-builder.test.ts b/packages/generator/test/generators/builders/field-values-builder.test.ts index 05f8730973..e4dbda915c 100644 --- a/packages/generator/test/generators/builders/field-values-builder.test.ts +++ b/packages/generator/test/generators/builders/field-values-builder.test.ts @@ -78,7 +78,7 @@ describe("Form Generator", () => { attributeName: "field1", fieldName: "field1", field_name: "field1", - zodType: "string().optional", + zodType: "string().nullable", prismaType: "String", inputType: "text", }, @@ -136,7 +136,7 @@ describe("Form Generator", () => { attributeName: "field1", fieldName: "field1", field_name: "field1", - zodType: "string().optional", + zodType: "string().nullable", prismaType: "String", inputType: "text", }, @@ -184,7 +184,7 @@ describe("Form Generator", () => { attributeName: "field5", fieldName: "field5", field_name: "field5", - zodType: "number().optional", + zodType: "number().nullable", prismaType: "BigInt", inputType: "number", }, @@ -245,7 +245,7 @@ describe("Form Generator", () => { attributeName: "field10", fieldName: "field10", field_name: "field10", - zodType: "any().optional", + zodType: "any().nullable", prismaType: "Json", inputType: "text", }, From 19bd76052c5a6ecf64621057e9d2789fe7016fa2 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Fri, 29 Dec 2023 22:07:00 +0530 Subject: [PATCH 94/95] Update packages/blitz-auth/src/server/auth-sessions.ts --- packages/blitz-auth/src/server/auth-sessions.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/blitz-auth/src/server/auth-sessions.ts b/packages/blitz-auth/src/server/auth-sessions.ts index 8a2e84ae18..d64e4e4404 100644 --- a/packages/blitz-auth/src/server/auth-sessions.ts +++ b/packages/blitz-auth/src/server/auth-sessions.ts @@ -221,7 +221,7 @@ export async function useAuthenticatedBlitzContext({ redirectAuthenticatedTo?: string | RouteUrlObject | ((ctx: Ctx) => string | RouteUrlObject) role?: string | string[] }): Promise { - const log = baseLogger().getSubLogger({name: "blitz-auth"}) + const log = baseLogger().getSubLogger({name: "useAuthenticatedBlitzContext"}) const customChalk = new chalk.Instance({ level: log.settings.type === "json" ? 0 : chalk.level, }) From 3d19f08f81a37ae409dd9e58a11d75d1e069fadc Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Fri, 29 Dec 2023 22:14:20 +0530 Subject: [PATCH 95/95] new folder structure --- packages/generator/templates/app/README.md | 114 +++++++++++---------- 1 file changed, 59 insertions(+), 55 deletions(-) diff --git a/packages/generator/templates/app/README.md b/packages/generator/templates/app/README.md index f9f2dad932..3b2d653bc2 100644 --- a/packages/generator/templates/app/README.md +++ b/packages/generator/templates/app/README.md @@ -65,64 +65,68 @@ Here is the starting structure of your app. ``` __name__ -├── src/ -│ ├── api/ -│ ├── auth/ -│ │ ├── components/ -│ │ │ ├── LoginForm.tsx -│ │ │ └── SignupForm.tsx -│ │ ├── mutations/ -│ │ │ ├── changePassword.ts -│ │ │ ├── forgotPassword.test.ts -│ │ │ ├── forgotPassword.ts -│ │ │ ├── login.ts -│ │ │ ├── logout.ts -│ │ │ ├── resetPassword.test.ts -│ │ │ ├── resetPassword.ts -│ │ │ └── signup.ts -│ │ ├── pages/ -│ │ │ ├── forgot-password.tsx -│ │ │ ├── login.tsx -│ │ │ ├── reset-password.tsx -│ │ │ └── signup.tsx -│ │ └── validations.ts -│ ├── core/ -│ │ ├── components/ -│ │ │ ├── Form.tsx -│ │ │ └── LabeledTextField.tsx -│ │ └── layouts/ -│ │ └── Layout.tsx -│ ├── pages/ -│ │ ├── _app.tsx -│ │ ├── _document.tsx -│ │ ├── 404.tsx -│ │ ├── index.test.tsx -│ │ └── index.tsx -│ └── users/ -│ ├── hooks/ -│ │ └── useCurrentUser.ts -│ └── queries/ -│ └── getCurrentUser.ts -├── db/ -│ ├── migrations/ +├── README.md +├── db │ ├── index.ts -│ ├── schema.prisma -│ └── seeds.ts -├── integrations/ -├── mailers/ +│ └── schema.prisma +├── integrations +├── mailers │ └── forgotPasswordMailer.ts -├── public/ -│ ├── favicon.ico -│ └── logo.png -├── test/ -│ ├── setup.ts -│ └── utils.tsx -├── .eslintrc.js -├── babel.config.js -├── blitz.config.ts -├── vitest.config.ts +├── next-env.d.ts +├── next.config.js ├── package.json -├── README.md +├── public +│ └── favicon.ico +├── src +│ ├── app +│ │ ├── (auth) +│ │ │ ├── components +│ │ │ │ ├── ForgotPasswordForm.tsx +│ │ │ │ ├── LoginForm.tsx +│ │ │ │ ├── LogoutButton.tsx +│ │ │ │ ├── ResetPasswordForm.tsx +│ │ │ │ └── SignupForm.tsx +│ │ │ ├── forgot-password +│ │ │ │ └── page.tsx +│ │ │ ├── layout.tsx +│ │ │ ├── login +│ │ │ │ └── page.tsx +│ │ │ ├── mutations +│ │ │ │ ├── changePassword.ts +│ │ │ │ ├── forgotPassword.test.ts +│ │ │ │ ├── forgotPassword.ts +│ │ │ │ ├── login.ts +│ │ │ │ ├── logout.ts +│ │ │ │ ├── resetPassword.test.ts +│ │ │ │ ├── resetPassword.ts +│ │ │ │ └── signup.ts +│ │ │ ├── reset-password +│ │ │ │ └── page.tsx +│ │ │ ├── signup +│ │ │ │ └── page.tsx +│ │ │ └── validations.ts +│ │ ├── blitz-auth-config.ts +│ │ ├── blitz-client.ts +│ │ ├── blitz-server.ts +│ │ ├── components +│ │ │ ├── Form.tsx +│ │ │ └── LabeledTextField.tsx +│ │ ├── error.tsx +│ │ ├── layout.tsx +│ │ ├── loading.tsx +│ │ ├── page.tsx +│ │ ├── styles +│ │ │ ├── Home.module.css +│ │ │ └── globals.css +│ │ └── users +│ │ ├── hooks +│ │ │ └── useCurrentUser.ts +│ │ └── queries +│ │ └── getCurrentUser.ts +│ └── pages +│ └── api +│ └── rpc +│ └── [[...blitz]].ts ├── tsconfig.json └── types.ts ```