From d04eec6b85160c52a76686c282e242caa331088c Mon Sep 17 00:00:00 2001 From: juliusmarminge Date: Sat, 6 Apr 2024 01:08:33 +0200 Subject: [PATCH 01/50] first lets move some stuff --- packages/react/src/components/button.tsx | 2 +- packages/react/src/components/dropzone.tsx | 2 +- packages/react/src/{hooks.ts => hooks/index.ts} | 2 +- .../{useUploadThing.ts => hooks/use-uploadthing.ts} | 11 +++++++---- packages/react/src/index.ts | 2 +- 5 files changed, 11 insertions(+), 8 deletions(-) rename packages/react/src/{hooks.ts => hooks/index.ts} (89%) rename packages/react/src/{useUploadThing.ts => hooks/use-uploadthing.ts} (95%) diff --git a/packages/react/src/components/button.tsx b/packages/react/src/components/button.tsx index 28eaa080b..440152731 100644 --- a/packages/react/src/components/button.tsx +++ b/packages/react/src/components/button.tsx @@ -19,8 +19,8 @@ import type { } from "@uploadthing/shared"; import type { FileRouter } from "uploadthing/types"; +import { INTERNAL_uploadthingHookGen } from "../hooks/use-uploadthing"; import type { UploadthingComponentProps } from "../types"; -import { INTERNAL_uploadthingHookGen } from "../useUploadThing"; import { getFilesFromClipboardEvent, progressWidths, Spinner } from "./shared"; type ButtonStyleFieldCallbackArgs = { diff --git a/packages/react/src/components/dropzone.tsx b/packages/react/src/components/dropzone.tsx index c6ca5a4f4..880f37cd9 100644 --- a/packages/react/src/components/dropzone.tsx +++ b/packages/react/src/components/dropzone.tsx @@ -20,8 +20,8 @@ import type { } from "@uploadthing/shared"; import type { FileRouter } from "uploadthing/types"; +import { INTERNAL_uploadthingHookGen } from "../hooks/use-uploadthing"; import type { UploadthingComponentProps } from "../types"; -import { INTERNAL_uploadthingHookGen } from "../useUploadThing"; import { getFilesFromClipboardEvent, progressWidths, Spinner } from "./shared"; type DropzoneStyleFieldCallbackArgs = { diff --git a/packages/react/src/hooks.ts b/packages/react/src/hooks/index.ts similarity index 89% rename from packages/react/src/hooks.ts rename to packages/react/src/hooks/index.ts index b2a38a175..af5a1deb9 100644 --- a/packages/react/src/hooks.ts +++ b/packages/react/src/hooks/index.ts @@ -3,7 +3,7 @@ export { * @deprecated - import from `@uploadthing/react` instead */ generateReactHelpers, -} from "./useUploadThing"; +} from "./use-uploadthing"; export { /** diff --git a/packages/react/src/useUploadThing.ts b/packages/react/src/hooks/use-uploadthing.ts similarity index 95% rename from packages/react/src/useUploadThing.ts rename to packages/react/src/hooks/use-uploadthing.ts index e51b173ae..f97fd15c6 100644 --- a/packages/react/src/useUploadThing.ts +++ b/packages/react/src/hooks/use-uploadthing.ts @@ -17,10 +17,13 @@ import type { inferErrorShape, } from "uploadthing/types"; -import { peerDependencies } from "../package.json"; -import type { GenerateTypedHelpersOptions, UseUploadthingProps } from "./types"; -import { useEvent } from "./utils/useEvent"; -import useFetch from "./utils/useFetch"; +import { peerDependencies } from "../../package.json"; +import type { + GenerateTypedHelpersOptions, + UseUploadthingProps, +} from "../types"; +import { useEvent } from "../utils/useEvent"; +import useFetch from "../utils/useFetch"; declare const globalThis: { __UPLOADTHING?: EndpointMetadata; diff --git a/packages/react/src/index.ts b/packages/react/src/index.ts index 6e3fba400..bb0194bac 100644 --- a/packages/react/src/index.ts +++ b/packages/react/src/index.ts @@ -8,7 +8,7 @@ export { generateComponents, } from "./components"; -export { generateReactHelpers } from "./useUploadThing"; +export { generateReactHelpers } from "./hooks/use-uploadthing"; export type * from "./types"; From 34815306f8c3683e6c0e36d3f358c00536a8c41e Mon Sep 17 00:00:00 2001 From: juliusmarminge Date: Sat, 6 Apr 2024 01:37:50 +0200 Subject: [PATCH 02/50] move input props to hook --- packages/react/src/components/button.tsx | 46 +++++++-------------- packages/react/src/hooks/use-uploadthing.ts | 44 +++++++++++++++++++- 2 files changed, 59 insertions(+), 31 deletions(-) diff --git a/packages/react/src/components/button.tsx b/packages/react/src/components/button.tsx index 440152731..210bfe852 100644 --- a/packages/react/src/components/button.tsx +++ b/packages/react/src/components/button.tsx @@ -1,12 +1,11 @@ "use client"; -import { useEffect, useRef, useState } from "react"; +import { useEffect, useMemo, useRef, useState } from "react"; import { twMerge } from "tailwind-merge"; import { allowedContentTextLabelGenerator, contentFieldToContent, - generateMimeTypes, generatePermittedFileTypes, resolveMaybeUrlArg, styleFieldToClassName, @@ -115,9 +114,8 @@ export function UploadButton< const uploadProgress = $props.__internal_upload_progress ?? uploadProgressState; - const { startUpload, isUploading, permittedFileInfo } = useUploadThing( - $props.endpoint, - { + const { startUpload, isUploading, permittedFileInfo, getInputProps } = + useUploadThing($props.endpoint, { headers: $props.headers, skipPolling: !$props?.onClientUploadComplete ? true : $props?.skipPolling, onClientUploadComplete: (res) => { @@ -136,8 +134,7 @@ export function UploadButton< onUploadError: $props.onUploadError, onUploadBegin: $props.onUploadBegin, onBeforeUploadBegin: $props.onBeforeUploadBegin, - }, - ); + }); const { fileTypes, multiple } = generatePermittedFileTypes( permittedFileInfo?.config, @@ -146,6 +143,7 @@ export function UploadButton< const ready = $props.__internal_ready ?? ($props.__internal_state === "ready" || fileTypes.length > 0); + const buttonDisabled = $props.__internal_button_disabled ?? !ready; useEffect(() => { const handlePaste = (event: ClipboardEvent) => { @@ -167,7 +165,7 @@ export function UploadButton< return () => { window.removeEventListener("paste", handlePaste); }; - }, [startUpload, appendOnPaste, $props, files, mode, fileTypes]); + }, [startUpload, appendOnPaste, $props, files, mode]); const getUploadButtonText = (fileTypes: string[]) => { if (isManualTriggerDisplayed) @@ -186,27 +184,15 @@ export function UploadButton< return {uploadProgress}%; }; - const getInputProps = () => ({ - type: "file", - ref: fileInputRef, - multiple, - accept: generateMimeTypes(fileTypes ?? [])?.join(", "), - onChange: (e: React.ChangeEvent) => { - if (!e.target.files) return; - const selectedFiles = Array.from(e.target.files); - - if (mode === "manual") { - setFiles(selectedFiles); - setIsManualTriggerDisplayed(true); - return; - } - - const input = "input" in $props ? $props.input : undefined; - void startUpload(selectedFiles, input); - }, - disabled: $props.__internal_button_disabled ?? !ready, - ...(!($props.__internal_button_disabled ?? !ready) ? { tabIndex: 0 } : {}), - }); + const inputProps = useMemo( + () => ({ + ...getInputProps({ mode }), + ref: fileInputRef, + disabled: buttonDisabled, + tabIndex: buttonDisabled ? -1 : 0, + }), + [getInputProps, mode, buttonDisabled], + ); const styleFieldArg = { ready: ready, @@ -296,7 +282,7 @@ export function UploadButton< } }} > - + {contentFieldToContent($props.content?.button, styleFieldArg) ?? getUploadButtonContents(fileTypes)} diff --git a/packages/react/src/hooks/use-uploadthing.ts b/packages/react/src/hooks/use-uploadthing.ts index f97fd15c6..1cb2532b6 100644 --- a/packages/react/src/hooks/use-uploadthing.ts +++ b/packages/react/src/hooks/use-uploadthing.ts @@ -1,7 +1,10 @@ -import { useRef, useState } from "react"; +import type { InputHTMLAttributes } from "react"; +import { useCallback, useRef, useState } from "react"; import type { EndpointMetadata } from "@uploadthing/shared"; import { + generateMimeTypes, + generatePermittedFileTypes, INTERNAL_DO_NOT_USE__fatalClientError, resolveMaybeUrlArg, semverLite, @@ -134,10 +137,49 @@ export const INTERNAL_uploadthingHookGen = < } }); + const getInputProps = useCallback( + (opts?: { + /** + * 'auto' will start uploading files as soon as they are selected + * 'manual' will require the user to manually trigger the upload + * @default 'auto' + */ + mode: "manual" | "auto"; + }): InputHTMLAttributes => { + const { mode = "auto" } = opts ?? {}; + + const { fileTypes, multiple } = generatePermittedFileTypes( + permittedFileInfo?.config, + ); + + return { + type: "file", + multiple, + accept: generateMimeTypes(fileTypes ?? [])?.join(", "), + disabled: fileTypes.length === 0, + tabIndex: fileTypes.length === 0 ? -1 : 0, + onChange: (e) => { + if (!e.target.files) return; + const selectedFiles = Array.from(e.target.files); + + if (mode === "manual") { + // setFiles(selectedFiles); // controlled state? + return; + } + + const input = undefined; // how to get input? + void startUpload(selectedFiles, input); + }, + }; + }, + [permittedFileInfo?.config, startUpload], + ); + return { startUpload, isUploading, permittedFileInfo, + getInputProps, } as const; }; From ca176fe88c134c083327c6ecf8e1f4ec02b52bfb Mon Sep 17 00:00:00 2001 From: juliusmarminge Date: Sat, 6 Apr 2024 15:56:51 +0200 Subject: [PATCH 03/50] ncieeee --- docs/src/pages/api/uploadthing.ts | 15 ++ docs/src/pages/theming.mdx | 18 ++- .../src/app/api/uploadthing/route.ts | 2 +- examples/with-tailwindcss/src/app/page.tsx | 3 + packages/react/src/components/button.tsx | 147 ++++++++---------- packages/react/src/utils/useClipboard.ts | 15 ++ 6 files changed, 116 insertions(+), 84 deletions(-) create mode 100644 docs/src/pages/api/uploadthing.ts create mode 100644 packages/react/src/utils/useClipboard.ts diff --git a/docs/src/pages/api/uploadthing.ts b/docs/src/pages/api/uploadthing.ts new file mode 100644 index 000000000..40c6ddc20 --- /dev/null +++ b/docs/src/pages/api/uploadthing.ts @@ -0,0 +1,15 @@ +import { createRouteHandler, createUploadthing } from "uploadthing/next-legacy"; + +const f = createUploadthing(); +const router = { + mockRoute: f(["image"]) + .middleware(() => { + throw new Error("This is just a mock route, you cant use it"); + return {}; + }) + .onUploadComplete(() => {}), +}; +export default createRouteHandler({ + router, + config: { uploadthingSecret: "sk_foo" }, +}); diff --git a/docs/src/pages/theming.mdx b/docs/src/pages/theming.mdx index bd57f025c..9b3e0b054 100644 --- a/docs/src/pages/theming.mdx +++ b/docs/src/pages/theming.mdx @@ -242,6 +242,7 @@ component match your design in the exact way you want. ``` Upload stuff; @@ -705,6 +719,7 @@ type UploadDropzoneProps = { ``` Upload stuff; diff --git a/examples/with-tailwindcss/src/app/api/uploadthing/route.ts b/examples/with-tailwindcss/src/app/api/uploadthing/route.ts index 07126ec85..e2c22be78 100644 --- a/examples/with-tailwindcss/src/app/api/uploadthing/route.ts +++ b/examples/with-tailwindcss/src/app/api/uploadthing/route.ts @@ -2,7 +2,7 @@ import { createRouteHandler } from "uploadthing/next"; import { uploadRouter } from "~/server/uploadthing"; -export const runtime = "edge"; +// export const runtime = "edge"; export const { GET, POST } = createRouteHandler({ router: uploadRouter, diff --git a/examples/with-tailwindcss/src/app/page.tsx b/examples/with-tailwindcss/src/app/page.tsx index 7daca96d4..c2d4005d0 100644 --- a/examples/with-tailwindcss/src/app/page.tsx +++ b/examples/with-tailwindcss/src/app/page.tsx @@ -24,6 +24,9 @@ export default function Home() { onUploadBegin={() => { console.log("upload begin"); }} + config={{ + appendOnPaste: true, + }} /> + * * endpoint="someEndpoint" * onUploadComplete={(res) => console.log(res)} * onUploadError={(err) => console.log(err)} @@ -79,23 +88,13 @@ export function UploadButton< ? ErrorMessage<"You forgot to pass the generic"> : UploadButtonProps, ) { - // Cast back to UploadthingComponentProps to get the correct type - // since the ErrorMessage messes it up otherwise + // Cast back to UploadthingComponentProps to get the correct type. ErrorMessage is unreachable const $props = props as unknown as UploadButtonProps< TRouter, TEndpoint, TSkipPolling - > & { - // props not exposed on public type - // Allow to set internal state for testing - __internal_state?: "readying" | "ready" | "uploading"; - // Allow to set upload progress for testing - __internal_upload_progress?: number; - // Allow to set ready explicitly and independently of internal state - __internal_ready?: boolean; - // Allow to disable the button - __internal_button_disabled?: boolean; - }; + > & + UploadThingInternalProps; const { mode = "auto", appendOnPaste = false } = $props.config ?? {}; @@ -105,14 +104,10 @@ export function UploadButton< const fileInputRef = useRef(null); const labelRef = useRef(null); - const [uploadProgressState, setUploadProgress] = useState( + const [uploadProgress, setUploadProgress] = useState( $props.__internal_upload_progress ?? 0, ); const [files, setFiles] = useState([]); - const [isManualTriggerDisplayed, setIsManualTriggerDisplayed] = - useState(false); - const uploadProgress = - $props.__internal_upload_progress ?? uploadProgressState; const { startUpload, isUploading, permittedFileInfo, getInputProps } = useUploadThing($props.endpoint, { @@ -122,7 +117,6 @@ export function UploadButton< if (fileInputRef.current) { fileInputRef.current.value = ""; } - setIsManualTriggerDisplayed(false); setFiles([]); $props.onClientUploadComplete?.(res); setUploadProgress(0); @@ -136,84 +130,74 @@ export function UploadButton< onBeforeUploadBegin: $props.onBeforeUploadBegin, }); - const { fileTypes, multiple } = generatePermittedFileTypes( - permittedFileInfo?.config, + const inputProps = useMemo( + () => getInputProps({ mode }), + [getInputProps, mode], ); + if ($props.__internal_button_disabled) inputProps.disabled = true; - const ready = - $props.__internal_ready ?? - ($props.__internal_state === "ready" || fileTypes.length > 0); - const buttonDisabled = $props.__internal_button_disabled ?? !ready; + const state = (() => { + if ($props.__internal_state) return $props.__internal_state; + if (inputProps.disabled) return "readying"; + if (!inputProps.disabled && !isUploading) return "ready"; + return "uploading"; + })(); - useEffect(() => { - const handlePaste = (event: ClipboardEvent) => { - if (!appendOnPaste) return; - if (document.activeElement !== labelRef.current) return; + usePaste((event) => { + if (!appendOnPaste) return; + if (document.activeElement !== fileInputRef.current) return; - const pastedFiles = getFilesFromClipboardEvent(event); - if (!pastedFiles) return; + const pastedFiles = getFilesFromClipboardEvent(event); + if (!pastedFiles) return; - setFiles((prev) => [...prev, ...pastedFiles]); + let filesToUpload = pastedFiles; + setFiles((prev) => { + filesToUpload = [...prev, ...pastedFiles]; + return filesToUpload; + }); - if (mode === "auto") { - const input = "input" in $props ? $props.input : undefined; - void startUpload(files, input); - } - }; + if (mode === "auto") { + const input = "input" in $props ? $props.input : undefined; + void startUpload(filesToUpload, input); + } + }); + + const styleFieldArg = { + ready: state === "ready", + isUploading: state === "uploading", + uploadProgress, + fileTypes: generatePermittedFileTypes(permittedFileInfo?.config).fileTypes, + } as ButtonStyleFieldCallbackArgs; - window.addEventListener("paste", handlePaste); - return () => { - window.removeEventListener("paste", handlePaste); - }; - }, [startUpload, appendOnPaste, $props, files, mode]); + const renderButton = () => { + const customContent = contentFieldToContent( + $props.content?.button, + styleFieldArg, + ); + if (customContent) return customContent; - const getUploadButtonText = (fileTypes: string[]) => { - if (isManualTriggerDisplayed) - return `Upload ${files.length} file${files.length === 1 ? "" : "s"}`; - if (fileTypes.length === 0) return "Loading..."; - return `Choose File${multiple ? `(s)` : ``}`; - }; + if (state === "readying") { + return "Loading..."; + } - const getUploadButtonContents = (fileTypes: string[]) => { if (state !== "uploading") { - return getUploadButtonText(fileTypes); + if (mode === "manual" && files.length > 0) { + return `Upload ${files.length} file${files.length === 1 ? "" : "s"}`; + } + return `Choose File${inputProps.multiple ? `(s)` : ``}`; } + if (uploadProgress === 100) { return ; } + return {uploadProgress}%; }; - const inputProps = useMemo( - () => ({ - ...getInputProps({ mode }), - ref: fileInputRef, - disabled: buttonDisabled, - tabIndex: buttonDisabled ? -1 : 0, - }), - [getInputProps, mode, buttonDisabled], - ); - - const styleFieldArg = { - ready: ready, - isUploading: $props.__internal_state === "uploading" || isUploading, - uploadProgress, - fileTypes, - } as ButtonStyleFieldCallbackArgs; - - const state = (() => { - if ($props.__internal_state) return $props.__internal_state; - if (!ready) return "readying"; - if (ready && !isUploading) return "ready"; - - return "uploading"; - })(); - const renderClearButton = () => ( + + +
+ {files.map((file) => ( + + + setFiles((files) => files.filter((f) => f !== file)) + } + /> + + ))} +
+ + ); +} + +function PreviewCard(props: { file: File; deselect: () => void }) { + const data = use(fileToDataURL(props.file)); + + return ( + +
+ {props.file.name} + +
+ {`Preview +
+ ); +} diff --git a/examples/custom-components/src/components/ui/button.tsx b/examples/custom-components/src/components/ui/button.tsx new file mode 100644 index 000000000..9c9d496e6 --- /dev/null +++ b/examples/custom-components/src/components/ui/button.tsx @@ -0,0 +1,58 @@ +import * as React from "react"; +import { Slot } from "@radix-ui/react-slot"; +import { cva, type VariantProps } from "class-variance-authority"; + +import { cn } from "~/lib/utils"; + +const buttonVariants = cva( + "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-white transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-950 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 dark:ring-offset-gray-950 dark:focus-visible:ring-gray-300", + { + variants: { + variant: { + default: + "bg-gray-900 text-gray-50 hover:bg-gray-900/90 dark:bg-gray-50 dark:text-gray-900 dark:hover:bg-gray-50/90", + destructive: + "bg-red-500 text-gray-50 hover:bg-red-500/90 dark:bg-red-900 dark:text-gray-50 dark:hover:bg-red-900/90", + outline: + "border border-gray-200 bg-white hover:bg-gray-100 hover:text-gray-900 dark:border-gray-800 dark:bg-gray-950 dark:hover:bg-gray-800 dark:hover:text-gray-50", + secondary: + "bg-gray-100 text-gray-900 hover:bg-gray-100/80 dark:bg-gray-800 dark:text-gray-50 dark:hover:bg-gray-800/80", + ghost: + "hover:bg-gray-100 hover:text-gray-900 dark:hover:bg-gray-800 dark:hover:text-gray-50", + link: "text-gray-900 underline-offset-4 hover:underline dark:text-gray-50", + }, + size: { + default: "h-10 px-4 py-2", + sm: "h-9 rounded-md px-3", + lg: "h-11 rounded-md px-8", + icon: "h-10 w-10", + }, + }, + defaultVariants: { + variant: "default", + size: "default", + }, + }, +); + +export interface ButtonProps + extends React.ButtonHTMLAttributes, + VariantProps { + asChild?: boolean; +} + +const Button = React.forwardRef( + ({ className, variant, size, asChild = false, ...props }, ref) => { + const Comp = asChild ? Slot : "button"; + return ( + + ); + }, +); +Button.displayName = "Button"; + +export { Button, buttonVariants }; diff --git a/examples/custom-components/src/components/ui/card.tsx b/examples/custom-components/src/components/ui/card.tsx new file mode 100644 index 000000000..5f5a1a530 --- /dev/null +++ b/examples/custom-components/src/components/ui/card.tsx @@ -0,0 +1,86 @@ +import * as React from "react"; + +import { cn } from "~/lib/utils"; + +const Card = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)); +Card.displayName = "Card"; + +const CardHeader = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)); +CardHeader.displayName = "CardHeader"; + +const CardTitle = React.forwardRef< + HTMLParagraphElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +

+)); +CardTitle.displayName = "CardTitle"; + +const CardDescription = React.forwardRef< + HTMLParagraphElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +

+)); +CardDescription.displayName = "CardDescription"; + +const CardContent = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +

+)); +CardContent.displayName = "CardContent"; + +const CardFooter = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)); +CardFooter.displayName = "CardFooter"; + +export { + Card, + CardHeader, + CardFooter, + CardTitle, + CardDescription, + CardContent, +}; diff --git a/examples/custom-components/src/components/ui/input.tsx b/examples/custom-components/src/components/ui/input.tsx new file mode 100644 index 000000000..e92ac0df6 --- /dev/null +++ b/examples/custom-components/src/components/ui/input.tsx @@ -0,0 +1,25 @@ +import * as React from "react"; + +import { cn } from "~/lib/utils"; + +export interface InputProps + extends React.InputHTMLAttributes {} + +const Input = React.forwardRef( + ({ className, type, ...props }, ref) => { + return ( + + ); + }, +); +Input.displayName = "Input"; + +export { Input }; diff --git a/examples/custom-components/src/components/ui/label.tsx b/examples/custom-components/src/components/ui/label.tsx new file mode 100644 index 000000000..38dc5adf8 --- /dev/null +++ b/examples/custom-components/src/components/ui/label.tsx @@ -0,0 +1,26 @@ +"use client"; + +import * as React from "react"; +import * as LabelPrimitive from "@radix-ui/react-label"; +import { cva, type VariantProps } from "class-variance-authority"; + +import { cn } from "~/lib/utils"; + +const labelVariants = cva( + "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70", +); + +const Label = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & + VariantProps +>(({ className, ...props }, ref) => ( + +)); +Label.displayName = LabelPrimitive.Root.displayName; + +export { Label }; diff --git a/examples/custom-components/src/lib/utils.ts b/examples/custom-components/src/lib/utils.ts new file mode 100644 index 000000000..d084ccade --- /dev/null +++ b/examples/custom-components/src/lib/utils.ts @@ -0,0 +1,6 @@ +import { type ClassValue, clsx } from "clsx" +import { twMerge } from "tailwind-merge" + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)) +} diff --git a/examples/custom-components/src/server/uploadthing.ts b/examples/custom-components/src/server/uploadthing.ts new file mode 100644 index 000000000..306321ca8 --- /dev/null +++ b/examples/custom-components/src/server/uploadthing.ts @@ -0,0 +1,49 @@ +import { createUploadthing } from "uploadthing/next"; +import type { FileRouter } from "uploadthing/next"; + +const f = createUploadthing({ + /** + * Log out more information about the error, but don't return it to the client + * @see https://docs.uploadthing.com/errors#error-formatting + */ + errorFormatter: (err) => { + console.log("Error uploading file", err.message); + console.log(" - Above error caused by:", err.cause); + + return { message: err.message }; + }, +}); + +/** + * This is your Uploadthing file router. For more information: + * @see https://docs.uploadthing.com/api-reference/server#file-routes + */ +export const uploadRouter = { + videoAndImage: f({ + image: { + maxFileSize: "4MB", + maxFileCount: 4, + }, + video: { + maxFileSize: "16MB", + }, + }) + .middleware(({ req }) => { + // Check some condition based on the incoming requrest + req; + //^? + // if (!req.headers.get("x-some-header")) { + // throw new Error("x-some-header is required"); + // } + + // Return some metadata to be stored with the file + return { foo: "bar" as const }; + }) + .onUploadComplete(({ file, metadata }) => { + metadata; + // ^? + console.log("upload completed", file); + }), +} satisfies FileRouter; + +export type OurFileRouter = typeof uploadRouter; diff --git a/examples/custom-components/src/utils/uploadthing.ts b/examples/custom-components/src/utils/uploadthing.ts new file mode 100644 index 000000000..cd9510b3d --- /dev/null +++ b/examples/custom-components/src/utils/uploadthing.ts @@ -0,0 +1,12 @@ +import { + generateReactHelpers, + generateUploadButton, + generateUploadDropzone, +} from "@uploadthing/react"; + +import type { OurFileRouter } from "~/server/uploadthing"; + +export const UploadButton = generateUploadButton(); +export const UploadDropzone = generateUploadDropzone(); + +export const { useUploadThing } = generateReactHelpers(); diff --git a/examples/custom-components/tailwind.config.ts b/examples/custom-components/tailwind.config.ts new file mode 100644 index 000000000..6dc718008 --- /dev/null +++ b/examples/custom-components/tailwind.config.ts @@ -0,0 +1,17 @@ +import { fontFamily } from "tailwindcss/defaultTheme"; + +import { withUt } from "uploadthing/tw"; + +/** + * @see https://docs.uploadthing.com/theming#with-tailwindcss + */ +export default withUt({ + content: ["src/**/*.tsx"], + theme: { + extend: { + fontFamily: { + sans: ["var(--font-sans)", ...fontFamily.sans], + }, + }, + }, +}); diff --git a/examples/custom-components/tsconfig.json b/examples/custom-components/tsconfig.json new file mode 100644 index 000000000..8c65152fd --- /dev/null +++ b/examples/custom-components/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [{ "name": "next" }], + "paths": { + "~/*": ["./src/*"] + } + }, + "include": [".next/types/**/*.ts", "next-env.d.ts", "src", "*.mjs"], + "exclude": ["node_modules"] +} diff --git a/examples/with-tailwindcss/src/app/my-upload-button.tsx b/examples/with-tailwindcss/src/app/my-upload-button.tsx new file mode 100644 index 000000000..c7c8623e8 --- /dev/null +++ b/examples/with-tailwindcss/src/app/my-upload-button.tsx @@ -0,0 +1,13 @@ +import { useUploadThing } from "~/utils/uploadthing"; + +export const MyUploadButton = (props: {}) => { + const { getInputProps, files, isUploading, uploadProgress } = + useUploadThing("videoAndImage"); + + return ( + + ); +}; diff --git a/examples/with-tailwindcss/src/app/page.tsx b/examples/with-tailwindcss/src/app/page.tsx index 4807afe2c..029651f43 100644 --- a/examples/with-tailwindcss/src/app/page.tsx +++ b/examples/with-tailwindcss/src/app/page.tsx @@ -5,6 +5,7 @@ import { UploadDropzone, useUploadThing, } from "~/utils/uploadthing"; +import { MyUploadButton } from "./my-upload-button"; export default function Home() { const { startUpload } = useUploadThing("videoAndImage", { @@ -15,6 +16,7 @@ export default function Home() { return (
+ { diff --git a/packages/react/src/hooks/use-uploadthing.ts b/packages/react/src/hooks/use-uploadthing.ts index 751ddb97d..3e0c2a69d 100644 --- a/packages/react/src/hooks/use-uploadthing.ts +++ b/packages/react/src/hooks/use-uploadthing.ts @@ -184,6 +184,7 @@ export const INTERNAL_uploadthingHookGen = < isUploading, permittedFileInfo, getInputProps, + uploadProgress: uploadProgress.current, } as const; }; From 2435570146f8a269331f4478787816c714ae8286 Mon Sep 17 00:00:00 2001 From: juliusmarminge Date: Sat, 13 Apr 2024 12:15:53 +0200 Subject: [PATCH 06/50] merge --- examples/custom-components/package.json | 4 +- pnpm-lock.yaml | 129 +++++++++++++++++++----- 2 files changed, 108 insertions(+), 25 deletions(-) diff --git a/examples/custom-components/package.json b/examples/custom-components/package.json index 24ebca528..65b3af473 100644 --- a/examples/custom-components/package.json +++ b/examples/custom-components/package.json @@ -12,7 +12,7 @@ "@radix-ui/react-icons": "^1.3.0", "@radix-ui/react-label": "^2.0.2", "@radix-ui/react-slot": "^1.0.2", - "@uploadthing/react": "workspace:6.4.1", + "@uploadthing/react": "workspace:6.4.4", "class-variance-authority": "^0.7.0", "clsx": "^2.1.0", "lucide-react": "^0.365.0", @@ -21,7 +21,7 @@ "react-dom": "18.2.0", "tailwind-merge": "^2.2.2", "tailwindcss-animate": "^1.0.7", - "uploadthing": "workspace:6.7.0" + "uploadthing": "workspace:6.9.0" }, "devDependencies": { "@types/node": "^20.11.21", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2ae7987d1..eb0e4baae 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -219,6 +219,67 @@ importers: specifier: ^3.30.0 version: 3.49.0(@cloudflare/workers-types@4.20240405.0) + examples/custom-components: + dependencies: + '@radix-ui/react-icons': + specifier: ^1.3.0 + version: 1.3.0(react@18.2.0) + '@radix-ui/react-label': + specifier: ^2.0.2 + version: 2.0.2(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': + specifier: ^1.0.2 + version: 1.0.2(@types/react@18.2.60)(react@18.2.0) + '@uploadthing/react': + specifier: workspace:6.4.4 + version: link:../../packages/react + class-variance-authority: + specifier: ^0.7.0 + version: 0.7.0 + clsx: + specifier: ^2.1.0 + version: 2.1.0 + lucide-react: + specifier: ^0.365.0 + version: 0.365.0(react@18.2.0) + next: + specifier: 14.1.0 + version: 14.1.0(@babel/core@7.24.4)(react-dom@18.2.0)(react@18.2.0) + react: + specifier: 18.2.0 + version: 18.2.0 + react-dom: + specifier: 18.2.0 + version: 18.2.0(react@18.2.0) + tailwind-merge: + specifier: ^2.2.2 + version: 2.2.2 + tailwindcss-animate: + specifier: ^1.0.7 + version: 1.0.7(tailwindcss@3.4.3) + uploadthing: + specifier: workspace:6.9.0 + version: link:../../packages/uploadthing + devDependencies: + '@types/node': + specifier: ^20.11.21 + version: 20.12.7 + '@types/react': + specifier: 18.2.60 + version: 18.2.60 + '@types/react-dom': + specifier: 18.2.19 + version: 18.2.19 + postcss: + specifier: 8.4.38 + version: 8.4.38 + tailwindcss: + specifier: ^3.4.1 + version: 3.4.3 + typescript: + specifier: ^5.4.2 + version: 5.4.5 + examples/minimal-appdir: dependencies: '@uploadthing/react': @@ -1120,7 +1181,6 @@ packages: /@alloc/quick-lru@5.2.0: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} - dev: true /@ampproject/remapping@2.3.0: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} @@ -4016,6 +4076,14 @@ packages: react: 18.2.0 dev: false + /@radix-ui/react-icons@1.3.0(react@18.2.0): + resolution: {integrity: sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==} + peerDependencies: + react: ^16.x || ^17.x || ^18.x + dependencies: + react: 18.2.0 + dev: false + /@radix-ui/react-id@1.0.1(@types/react@18.2.60)(react@18.2.0): resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==} peerDependencies: @@ -4031,6 +4099,27 @@ packages: react: 18.2.0 dev: false + /@radix-ui/react-label@2.0.2(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-N5ehvlM7qoTLx7nWPodsPYPgMzA5WM8zZChQg8nyFJKnDO5WHdba1vv5/H6IO5LtJMfD2Q3wh1qHFGNtK0w3bQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.60 + '@types/react-dom': 18.2.19 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + /@radix-ui/react-presence@1.0.1(@types/react-dom@18.2.19)(@types/react@18.2.60)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==} peerDependencies: @@ -6048,7 +6137,6 @@ packages: /any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - dev: true /anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} @@ -6107,7 +6195,6 @@ packages: /arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} - dev: true /argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} @@ -6757,7 +6844,6 @@ packages: /camelcase-css@2.0.1: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} engines: {node: '>= 6'} - dev: true /camelcase-keys@6.2.2: resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} @@ -7083,7 +7169,6 @@ packages: /commander@4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} - dev: true /commander@7.2.0: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} @@ -7882,7 +7967,6 @@ packages: /didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - dev: true /diff-sequences@29.6.3: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} @@ -9594,7 +9678,6 @@ packages: minimatch: 9.0.4 minipass: 7.0.4 path-scurry: 1.10.2 - dev: true /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} @@ -10867,7 +10950,6 @@ packages: /lilconfig@3.1.1: resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} engines: {node: '>=14'} - dev: true /lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} @@ -11033,6 +11115,14 @@ packages: es5-ext: 0.10.64 dev: true + /lucide-react@0.365.0(react@18.2.0): + resolution: {integrity: sha512-sJYpPyyzGHI4B3pys+XSFnE4qtSWc68rFnDLxbNNKjkLST5XSx9DNn5+1Z3eFgFiw39PphNRiVBSVb+AL3oKwA==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 + dev: false + /magic-string@0.25.9: resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} dependencies: @@ -12376,7 +12466,6 @@ packages: any-promise: 1.3.0 object-assign: 4.1.1 thenify-all: 1.6.0 - dev: true /nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} @@ -12829,7 +12918,6 @@ packages: /object-hash@3.0.0: resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} engines: {node: '>= 6'} - dev: true /object-inspect@1.13.1: resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} @@ -13248,7 +13336,6 @@ packages: /pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} - dev: true /pify@4.0.1: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} @@ -13283,7 +13370,6 @@ packages: /pirates@4.0.6: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} - dev: true /pkg-dir@4.2.0: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} @@ -13330,7 +13416,6 @@ packages: postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 - dev: true /postcss-js@4.0.1(postcss@8.4.38): resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} @@ -13340,7 +13425,6 @@ packages: dependencies: camelcase-css: 2.0.1 postcss: 8.4.38 - dev: true /postcss-load-config@3.1.4(postcss@8.4.38): resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} @@ -13374,7 +13458,6 @@ packages: lilconfig: 3.1.1 postcss: 8.4.38 yaml: 2.4.1 - dev: true /postcss-load-config@5.0.3(postcss@8.4.38): resolution: {integrity: sha512-90pBBI5apUVruIEdCxZic93Wm+i9fTrp7TXbgdUCH+/L+2WnfpITSpq5dFU/IPvbv7aNiMlQISpUkAm3fEcvgQ==} @@ -13429,7 +13512,6 @@ packages: /postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - dev: true /postcss@8.4.31: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} @@ -13775,7 +13857,6 @@ packages: resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} dependencies: pify: 2.3.0 - dev: true /read-pkg-up@7.0.1: resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} @@ -15149,7 +15230,6 @@ packages: mz: 2.7.0 pirates: 4.0.6 ts-interface-checker: 0.1.13 - dev: true /superjson@2.2.1: resolution: {integrity: sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA==} @@ -15356,6 +15436,14 @@ packages: '@babel/runtime': 7.24.4 dev: false + /tailwindcss-animate@1.0.7(tailwindcss@3.4.3): + resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} + peerDependencies: + tailwindcss: '>=3.0.0 || insiders' + dependencies: + tailwindcss: 3.4.3 + dev: false + /tailwindcss@3.4.3: resolution: {integrity: sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==} engines: {node: '>=14.0.0'} @@ -15385,7 +15473,6 @@ packages: sucrase: 3.35.0 transitivePeerDependencies: - ts-node - dev: true /tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} @@ -15487,13 +15574,11 @@ packages: engines: {node: '>=0.8'} dependencies: thenify: 3.3.1 - dev: true /thenify@3.3.1: resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} dependencies: any-promise: 1.3.0 - dev: true /thread-stream@2.4.1: resolution: {integrity: sha512-d/Ex2iWd1whipbT681JmTINKw0ZwOUBZm7+Gjs64DHuX34mmw8vJL2bFAaNacaW72zYiTJxSHi5abUuOi5nsfg==} @@ -15647,7 +15732,6 @@ packages: /ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - dev: true /ts-json-schema-generator@1.5.1: resolution: {integrity: sha512-apX5qG2+NA66j7b4AJm8q/DpdTeOsjfh7A3LpKsUiil0FepkNwtN28zYgjrsiiya2/OPhsr/PSjX5FUYg79rCg==} @@ -17168,7 +17252,6 @@ packages: resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} engines: {node: '>= 14'} hasBin: true - dev: true /yargs-parser@18.1.3: resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} From abd83c5d8ced915df65112203e9c5d27d82cc6f2 Mon Sep 17 00:00:00 2001 From: juliusmarminge Date: Sat, 13 Apr 2024 12:44:17 +0200 Subject: [PATCH 07/50] init demo --- examples/custom-components/.env.example | 4 +- examples/custom-components/README.md | 18 - examples/custom-components/components.json | 16 - examples/custom-components/next-env.d.ts | 5 - examples/custom-components/next.config.js | 16 +- examples/custom-components/package.json | 37 +- examples/custom-components/postcss.config.cjs | 7 + examples/custom-components/postcss.config.js | 5 - .../app/_components/basic-uploader-demo.tsx | 25 + .../app/_components/react-hook-form-demo.tsx | 98 ++ .../app/_components/uploaded-files-card.tsx | 55 + .../src/app/api/uploadthing/route.ts | 8 +- .../custom-components/src/app/globals.css | 79 ++ examples/custom-components/src/app/layout.tsx | 8 +- examples/custom-components/src/app/page.tsx | 10 +- .../custom-components/src/app/uploader.tsx | 106 -- .../src/components/empty-card.tsx | 37 + .../components/file-uploader-primitive.tsx | 396 ++++++ .../src/components/file-uploader.tsx | 315 +++++ .../src/components/loading-button.tsx | 48 + .../src/components/ui/button.tsx | 23 +- .../src/components/ui/card.tsx | 9 +- .../src/components/ui/form.tsx | 177 +++ .../src/components/ui/input.tsx | 2 +- .../src/components/ui/progress.tsx | 28 + .../src/components/ui/scroll-area.tsx | 48 + .../src/hooks/use-callback-ref.ts | 27 + .../src/hooks/use-controllable-state.ts | 67 + .../src/hooks/use-upload-file.ts | 61 + .../src/hooks/use-upload-thingy.ts | 28 + .../custom-components/src/lib/handle-error.ts | 25 + examples/custom-components/src/lib/utils.ts | 26 +- .../src/server/uploadthing.ts | 49 - .../src/uploadthing/client.ts | 6 + .../src/uploadthing/server.ts | 51 + .../src/utils/uploadthing.ts | 12 - examples/custom-components/tailwind.config.ts | 68 +- examples/custom-components/tsconfig.json | 35 +- packages/react/src/components/button.tsx | 2 +- .../{utils/useEvent.ts => hooks/use-event.ts} | 0 .../{utils/useFetch.ts => hooks/use-fetch.ts} | 0 .../useClipboard.ts => hooks/use-paste.ts} | 2 +- packages/react/src/hooks/use-uploadthing.ts | 4 +- pnpm-lock.yaml | 1210 +++++++++++++++-- 44 files changed, 2830 insertions(+), 423 deletions(-) delete mode 100644 examples/custom-components/README.md delete mode 100644 examples/custom-components/components.json delete mode 100644 examples/custom-components/next-env.d.ts create mode 100644 examples/custom-components/postcss.config.cjs delete mode 100644 examples/custom-components/postcss.config.js create mode 100644 examples/custom-components/src/app/_components/basic-uploader-demo.tsx create mode 100644 examples/custom-components/src/app/_components/react-hook-form-demo.tsx create mode 100644 examples/custom-components/src/app/_components/uploaded-files-card.tsx delete mode 100644 examples/custom-components/src/app/uploader.tsx create mode 100644 examples/custom-components/src/components/empty-card.tsx create mode 100644 examples/custom-components/src/components/file-uploader-primitive.tsx create mode 100644 examples/custom-components/src/components/file-uploader.tsx create mode 100644 examples/custom-components/src/components/loading-button.tsx create mode 100644 examples/custom-components/src/components/ui/form.tsx create mode 100644 examples/custom-components/src/components/ui/progress.tsx create mode 100644 examples/custom-components/src/components/ui/scroll-area.tsx create mode 100644 examples/custom-components/src/hooks/use-callback-ref.ts create mode 100644 examples/custom-components/src/hooks/use-controllable-state.ts create mode 100644 examples/custom-components/src/hooks/use-upload-file.ts create mode 100644 examples/custom-components/src/hooks/use-upload-thingy.ts create mode 100644 examples/custom-components/src/lib/handle-error.ts delete mode 100644 examples/custom-components/src/server/uploadthing.ts create mode 100644 examples/custom-components/src/uploadthing/client.ts create mode 100644 examples/custom-components/src/uploadthing/server.ts delete mode 100644 examples/custom-components/src/utils/uploadthing.ts rename packages/react/src/{utils/useEvent.ts => hooks/use-event.ts} (100%) rename packages/react/src/{utils/useFetch.ts => hooks/use-fetch.ts} (100%) rename packages/react/src/{utils/useClipboard.ts => hooks/use-paste.ts} (90%) diff --git a/examples/custom-components/.env.example b/examples/custom-components/.env.example index 28193d986..0f9ee6d1f 100644 --- a/examples/custom-components/.env.example +++ b/examples/custom-components/.env.example @@ -1,3 +1 @@ -# Go to https://uploadthing.com/dashboard to get your API secret -UPLOADTHING_SECRET='sk_live_xxx' -UPLOADTHING_APP_ID='xxx' \ No newline at end of file +UPLOADTHING_SECRET="sk_live_" diff --git a/examples/custom-components/README.md b/examples/custom-components/README.md deleted file mode 100644 index 3fe98e82c..000000000 --- a/examples/custom-components/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# Minimal Next.js App Router example for UploadThing - - - - - -## QuickStart - -1. Grab an API key from the UploadThing dashboard: - https://uploadthing.com/dashboard -2. `cp .env.example .env` and paste in your API key in the newly created `.env` - file -3. `bun dev` -4. Upload files! - -## Further reference - -Check out the docs at: https://docs.uploadthing.com/getting-started/appdir diff --git a/examples/custom-components/components.json b/examples/custom-components/components.json deleted file mode 100644 index 874c6999c..000000000 --- a/examples/custom-components/components.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "$schema": "https://ui.shadcn.com/schema.json", - "style": "default", - "rsc": true, - "tsx": true, - "tailwind": { - "config": "tailwind.config.ts", - "css": "src/app/globals.css", - "baseColor": "gray", - "cssVariables": false - }, - "aliases": { - "utils": "~/lib/utils", - "components": "~/components" - } -} \ No newline at end of file diff --git a/examples/custom-components/next-env.d.ts b/examples/custom-components/next-env.d.ts deleted file mode 100644 index 4f11a03dc..000000000 --- a/examples/custom-components/next-env.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -/// -/// - -// NOTE: This file should not be edited -// see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/examples/custom-components/next.config.js b/examples/custom-components/next.config.js index 2cfc5e736..c443272dc 100644 --- a/examples/custom-components/next.config.js +++ b/examples/custom-components/next.config.js @@ -1,7 +1,11 @@ -/** @type {import('next').NextConfig} */ -const nextConfig = { - eslint: { ignoreDuringBuilds: true }, - typescript: { ignoreBuildErrors: true }, +/** @type {import("next").NextConfig} */ +export default { + images: { + remotePatterns: [ + { + protocol: "https", + hostname: "utfs.io", + }, + ], + }, }; - -module.exports = nextConfig; diff --git a/examples/custom-components/package.json b/examples/custom-components/package.json index 65b3af473..33e6e5af2 100644 --- a/examples/custom-components/package.json +++ b/examples/custom-components/package.json @@ -1,6 +1,7 @@ { "name": "@example/custom-components", "private": true, + "type": "module", "scripts": { "dev": "next dev", "clean": "git clean -xdf .next node_modules", @@ -9,26 +10,38 @@ "typecheck": "tsc --noEmit" }, "dependencies": { + "@hookform/resolvers": "^3.3.4", + "@radix-ui/react-dialog": "^1.0.5", + "@radix-ui/react-dropdown-menu": "^2.0.6", "@radix-ui/react-icons": "^1.3.0", "@radix-ui/react-label": "^2.0.2", + "@radix-ui/react-progress": "^1.0.3", + "@radix-ui/react-scroll-area": "^1.0.5", "@radix-ui/react-slot": "^1.0.2", - "@uploadthing/react": "workspace:6.4.4", + "@radix-ui/react-tabs": "^1.0.4", + "@radix-ui/react-tooltip": "^1.0.7", + "@uploadthing/react": "6.4.4", "class-variance-authority": "^0.7.0", - "clsx": "^2.1.0", - "lucide-react": "^0.365.0", - "next": "14.1.0", + "next": "14.2.0", "react": "18.2.0", "react-dom": "18.2.0", + "react-hook-form": "^7.51.2", + "sonner": "^1.4.41", "tailwind-merge": "^2.2.2", "tailwindcss-animate": "^1.0.7", - "uploadthing": "workspace:6.9.0" + "uploadthing": "6.9.0", + "zod": "^3.22.4" }, "devDependencies": { - "@types/node": "^20.11.21", - "@types/react": "18.2.60", - "@types/react-dom": "18.2.19", - "postcss": "8.4.38", - "tailwindcss": "^3.4.1", - "typescript": "^5.4.2" - } + "@types/node": "^20.12.5", + "@types/react": "^18.2.74", + "@types/react-dom": "^18.2.24", + "postcss": "^8.4.38", + "tailwindcss": "^3.4.3", + "typescript": "^5.4.4" + }, + "ct3aMetadata": { + "initVersion": "7.30.0" + }, + "packageManager": "pnpm@8.15.6" } diff --git a/examples/custom-components/postcss.config.cjs b/examples/custom-components/postcss.config.cjs new file mode 100644 index 000000000..4cdb2f430 --- /dev/null +++ b/examples/custom-components/postcss.config.cjs @@ -0,0 +1,7 @@ +const config = { + plugins: { + tailwindcss: {}, + }, +}; + +module.exports = config; diff --git a/examples/custom-components/postcss.config.js b/examples/custom-components/postcss.config.js deleted file mode 100644 index ee5f90b30..000000000 --- a/examples/custom-components/postcss.config.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - plugins: { - tailwindcss: {}, - }, -}; diff --git a/examples/custom-components/src/app/_components/basic-uploader-demo.tsx b/examples/custom-components/src/app/_components/basic-uploader-demo.tsx new file mode 100644 index 000000000..c2cbb56ef --- /dev/null +++ b/examples/custom-components/src/app/_components/basic-uploader-demo.tsx @@ -0,0 +1,25 @@ +"use client"; + +import { FileUploader } from "~/components/file-uploader"; +import { useUploadFile } from "~/hooks/use-upload-file"; +import { UploadedFilesCard } from "./uploaded-files-card"; + +export function BasicUploaderDemo() { + const { uploadFiles, progresses, uploadedFiles, isUploading } = useUploadFile( + "imageUploader", + { defaultUploadedFiles: [] }, + ); + + return ( +
+ + +
+ ); +} diff --git a/examples/custom-components/src/app/_components/react-hook-form-demo.tsx b/examples/custom-components/src/app/_components/react-hook-form-demo.tsx new file mode 100644 index 000000000..3900fcaca --- /dev/null +++ b/examples/custom-components/src/app/_components/react-hook-form-demo.tsx @@ -0,0 +1,98 @@ +"use client"; + +import * as React from "react"; +import { zodResolver } from "@hookform/resolvers/zod"; +import { useForm } from "react-hook-form"; +import { toast } from "sonner"; +import { z } from "zod"; + +import { FileUploader } from "~/components/file-uploader"; +import { Button } from "~/components/ui/button"; +import { + Form, + FormControl, + FormField, + FormItem, + FormLabel, + FormMessage, +} from "~/components/ui/form"; +import { useUploadFile } from "~/hooks/use-upload-file"; +import { getErrorMessage } from "~/lib/handle-error"; +import { UploadedFilesCard } from "./uploaded-files-card"; + +const schema = z.object({ + images: z.array(z.instanceof(File)), +}); + +type Schema = z.infer; + +export function ReactHookFormDemo() { + const [loading, setLoading] = React.useState(false); + const { uploadFiles, progresses, uploadedFiles, isUploading } = useUploadFile( + "imageUploader", + { defaultUploadedFiles: [] }, + ); + const form = useForm({ + resolver: zodResolver(schema), + defaultValues: { + images: [], + }, + }); + + function onSubmit(input: Schema) { + setLoading(true); + + toast.promise(uploadFiles(input.images), { + loading: "Uploading images...", + success: () => { + form.reset(); + setLoading(false); + return "Images uploaded"; + }, + error: (err) => { + setLoading(false); + return getErrorMessage(err); + }, + }); + } + + return ( +
+ + ( +
+ + Images + + + + + + {uploadedFiles.length > 0 ? ( + + ) : null} +
+ )} + /> + + + + ); +} diff --git a/examples/custom-components/src/app/_components/uploaded-files-card.tsx b/examples/custom-components/src/app/_components/uploaded-files-card.tsx new file mode 100644 index 000000000..92f8035ab --- /dev/null +++ b/examples/custom-components/src/app/_components/uploaded-files-card.tsx @@ -0,0 +1,55 @@ +import Image from "next/image"; + +import type { ClientUploadedFileData } from "uploadthing/types"; + +import { EmptyCard } from "~/components/empty-card"; +import { + Card, + CardContent, + CardDescription, + CardHeader, + CardTitle, +} from "~/components/ui/card"; +import { ScrollArea, ScrollBar } from "~/components/ui/scroll-area"; + +interface UploadedFilesCardProps { + uploadedFiles: ClientUploadedFileData[]; +} + +export function UploadedFilesCard({ uploadedFiles }: UploadedFilesCardProps) { + return ( + + + Uploaded files + View the uploaded files here + + + {uploadedFiles.length > 0 ? ( + +
+ {uploadedFiles.map((file) => ( +
+ {file.name} +
+ ))} +
+ +
+ ) : ( + + )} +
+
+ ); +} diff --git a/examples/custom-components/src/app/api/uploadthing/route.ts b/examples/custom-components/src/app/api/uploadthing/route.ts index e2c22be78..67a4d8241 100644 --- a/examples/custom-components/src/app/api/uploadthing/route.ts +++ b/examples/custom-components/src/app/api/uploadthing/route.ts @@ -1,9 +1,11 @@ import { createRouteHandler } from "uploadthing/next"; -import { uploadRouter } from "~/server/uploadthing"; - -// export const runtime = "edge"; +import { uploadRouter } from "~/uploadthing/server"; +// Export routes for Next App Router export const { GET, POST } = createRouteHandler({ router: uploadRouter, + + // Apply an (optional) custom config: + // config: { ... }, }); diff --git a/examples/custom-components/src/app/globals.css b/examples/custom-components/src/app/globals.css index b5c61c956..0bbddf74e 100644 --- a/examples/custom-components/src/app/globals.css +++ b/examples/custom-components/src/app/globals.css @@ -1,3 +1,82 @@ @tailwind base; @tailwind components; @tailwind utilities; + +@layer base { + :root { + --background: 0 0% 100%; + --foreground: 240 10% 3.9%; + + --card: 0 0% 100%; + --card-foreground: 240 10% 3.9%; + + --popover: 0 0% 100%; + --popover-foreground: 240 10% 3.9%; + + --primary: 240 5.9% 10%; + --primary-foreground: 0 0% 98%; + + --secondary: 240 4.8% 95.9%; + --secondary-foreground: 240 5.9% 10%; + + --muted: 240 4.8% 95.9%; + --muted-foreground: 240 3.8% 46.1%; + + --accent: 240 4.8% 95.9%; + --accent-foreground: 240 5.9% 10%; + + --destructive: 0 84.2% 60.2%; + --destructive-foreground: 0 0% 98%; + + --border: 240 5.9% 90%; + --input: 240 5.9% 90%; + --ring: 240 10% 3.9%; + + --radius: 0.5rem; + } + + .dark { + --background: 240 10% 3.9%; + --foreground: 0 0% 98%; + + --card: 240 10% 3.9%; + --card-foreground: 0 0% 98%; + + --popover: 240 10% 3.9%; + --popover-foreground: 0 0% 98%; + + --primary: 0 0% 98%; + --primary-foreground: 240 5.9% 10%; + + --secondary: 240 3.7% 15.9%; + --secondary-foreground: 0 0% 98%; + + --muted: 240 3.7% 15.9%; + --muted-foreground: 240 5% 64.9%; + + --accent: 240 3.7% 15.9%; + --accent-foreground: 0 0% 98%; + + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 0 0% 98%; + + --border: 240 3.7% 15.9%; + --input: 240 3.7% 15.9%; + --ring: 240 4.9% 83.9%; + } +} + +@layer base { + * { + @apply border-border; + } + body { + @apply bg-background text-foreground; + } +} + +@media (max-width: 640px) { + .container { + @apply px-4; + } +} diff --git a/examples/custom-components/src/app/layout.tsx b/examples/custom-components/src/app/layout.tsx index 076b5b012..6f8faf0b4 100644 --- a/examples/custom-components/src/app/layout.tsx +++ b/examples/custom-components/src/app/layout.tsx @@ -2,10 +2,13 @@ import { Inter } from "next/font/google"; import "./globals.css"; +import { Toaster } from "sonner"; + import { NextSSRPlugin } from "@uploadthing/react/next-ssr-plugin"; import { extractRouterConfig } from "uploadthing/server"; -import { uploadRouter } from "~/server/uploadthing"; +import { cn } from "~/lib/utils"; +import { uploadRouter } from "~/uploadthing/server"; const inter = Inter({ subsets: ["latin"], variable: "--font-sans" }); @@ -16,9 +19,10 @@ export default function RootLayout({ }) { return ( - + {children} + ); diff --git a/examples/custom-components/src/app/page.tsx b/examples/custom-components/src/app/page.tsx index d4766cc10..a0524f282 100644 --- a/examples/custom-components/src/app/page.tsx +++ b/examples/custom-components/src/app/page.tsx @@ -1,9 +1,3 @@ -import { Uploader } from "./uploader"; - -export default function Home() { - return ( -
- -
- ); +export default function IndexPage() { + return
Hello
; } diff --git a/examples/custom-components/src/app/uploader.tsx b/examples/custom-components/src/app/uploader.tsx deleted file mode 100644 index 1d2c6ce3a..000000000 --- a/examples/custom-components/src/app/uploader.tsx +++ /dev/null @@ -1,106 +0,0 @@ -"use client"; - -import { Suspense, use } from "react"; -import { Loader2, UploadIcon, XIcon } from "lucide-react"; - -import { generatePermittedFileTypes } from "@uploadthing/shared"; - -import { Button } from "~/components/ui/button"; -import { Card } from "~/components/ui/card"; -import { Input } from "~/components/ui/input"; -import { Label } from "~/components/ui/label"; -import { useUploadThing } from "~/utils/uploadthing"; - -const fileToDataURL = async (file: File) => { - const reader = new FileReader(); - return new Promise((resolve, reject) => { - reader.onload = () => resolve(reader.result as string); - reader.onerror = reject; - reader.readAsDataURL(file); - }); -}; - -export function Uploader() { - const { - startUpload, - getInputProps, - files, - setFiles, - isUploading, - uploadProgress, - permittedFileInfo, - } = useUploadThing("videoAndImage"); - const { fileTypes } = generatePermittedFileTypes(permittedFileInfo?.config); - - return ( -
-
-
-
- -

- Supported file types: {fileTypes.join(", ")} -

-
-
- -
- -
- {files.map((file) => ( - - - setFiles((files) => files.filter((f) => f !== file)) - } - /> - - ))} -
-
- ); -} - -function PreviewCard(props: { file: File; deselect: () => void }) { - const data = use(fileToDataURL(props.file)); - - return ( - -
- {props.file.name} - -
- {`Preview -
- ); -} diff --git a/examples/custom-components/src/components/empty-card.tsx b/examples/custom-components/src/components/empty-card.tsx new file mode 100644 index 000000000..5b87c1be9 --- /dev/null +++ b/examples/custom-components/src/components/empty-card.tsx @@ -0,0 +1,37 @@ +import { ImageIcon } from "@radix-ui/react-icons"; + +import { cn } from "~/lib/utils"; +import { Card, CardDescription, CardTitle } from "./ui/card"; + +interface EmptyCardProps extends React.ComponentPropsWithoutRef { + title: string; + description?: string; + + icon?: React.ComponentType<{ className?: string }>; +} + +export function EmptyCard({ + title, + description, + icon: Icon = ImageIcon, + className, + ...props +}: EmptyCardProps) { + return ( + +
+
+
+ {title} + {description ? {description} : null} +
+
+ ); +} diff --git a/examples/custom-components/src/components/file-uploader-primitive.tsx b/examples/custom-components/src/components/file-uploader-primitive.tsx new file mode 100644 index 000000000..ce7cae0f4 --- /dev/null +++ b/examples/custom-components/src/components/file-uploader-primitive.tsx @@ -0,0 +1,396 @@ +"use client"; + +import * as React from "react"; +import Image from "next/image"; +import { Cross2Icon, UploadIcon } from "@radix-ui/react-icons"; +import { cva, type VariantProps } from "class-variance-authority"; +import { + useDropzone, + type DropzoneOptions, + type DropzoneState, + type FileRejection, +} from "react-dropzone"; +import { toast } from "sonner"; + +import { Button } from "~/components/ui/button"; +import { Input } from "~/components/ui/input"; +import { Progress } from "~/components/ui/progress"; +import { useControllableState } from "~/hooks/use-controllable-state"; +import { cn, formatBytes } from "~/lib/utils"; + +interface FileUploaderProps extends React.HTMLAttributes { + /** + * Value of the uploader. + * @type File[] + * @default undefined + * @example value={files} + */ + value?: File[]; + + /** + * Function to be called when the value changes. + * @type React.Dispatch> + * @default undefined + * @example onValueChange={(files) => setFiles(files)} + */ + onValueChange?: React.Dispatch>; + + /** + * Function to be called when files are uploaded. + * @type (files: File[]) => Promise + * @default undefined + * @example onUpload={(files) => uploadFiles(files)} + */ + onUpload?: (files: File[]) => Promise; + + /** + * Progress of the uploaded files. + * @type Record | undefined + * @default undefined + * @example progresses={{ "file1.png": 50 }} + */ + progresses?: Record; + + /** + * Options for the dropzone. + * @type DropzoneOptions | undefined + * @default undefined + * @example opts={{ maxFiles: 3, multiple: true }} + */ + opts?: DropzoneOptions; +} + +interface FileUploaderContextProps extends DropzoneState { + files: File[]; + maxFiles: number; + maxSize: number; + setFiles: (files: File[]) => void; + onRemove: (index: number) => void; + progresses?: Record; + disabled: boolean; +} + +const FileUploaderContext = + React.createContext(null); + +function useFileUploader() { + const context = React.useContext(FileUploaderContext); + + if (!context) { + throw new Error("useFileUploader must be used within a "); + } + + return context; +} + +function isFileWithPreview(file: File): file is File & { preview: string } { + return "preview" in file && typeof file.preview === "string"; +} + +const FileUploader = React.forwardRef( + ( + { + value: valueProp, + onValueChange, + onUpload, + progresses, + opts, + children, + className, + ...props + }, + ref, + ) => { + const { + accept = { "image/*": [] }, + maxSize = 1024 * 1024 * 4, + maxFiles = 1, + multiple = false, + disabled = false, + ...dropzoneProps + } = opts ?? {}; + + const [files, setFiles] = useControllableState({ + prop: valueProp, + onChange: onValueChange, + }); + + const onDrop = React.useCallback( + (acceptedFiles: File[], rejectedFiles: FileRejection[]) => { + if (!multiple && maxFiles === 1 && acceptedFiles.length > 1) { + toast.error("Cannot upload more than 1 file at a time"); + return; + } + + if ((files?.length ?? 0) + acceptedFiles.length > maxFiles) { + toast.error(`Cannot upload more than ${maxFiles} files`); + return; + } + + const newFiles = acceptedFiles.map((file) => + Object.assign(file, { + preview: URL.createObjectURL(file), + }), + ); + + const updatedFiles = files ? [...files, ...newFiles] : newFiles; + + setFiles(updatedFiles); + + if (rejectedFiles.length > 0) { + rejectedFiles.forEach(({ file }) => { + toast.error(`File ${file.name} was rejected`); + }); + } + + if ( + onUpload && + updatedFiles.length > 0 && + updatedFiles.length <= maxFiles + ) { + const target = + updatedFiles.length > 0 ? `${updatedFiles.length} files` : `file`; + + toast.promise(onUpload(updatedFiles), { + loading: `Uploading ${target}...`, + success: () => { + setFiles([]); + return `${target} uploaded`; + }, + error: `Failed to upload ${target}`, + }); + } + }, + + [files, maxFiles, multiple, onUpload, setFiles], + ); + + function onRemove(index: number) { + if (!files) return; + const newFiles = files.filter((_, i) => i !== index); + setFiles(newFiles); + onValueChange?.(newFiles); + } + + // Revoke preview url when component unmounts + React.useEffect(() => { + return () => { + if (!files) return; + files.forEach((file) => { + if (isFileWithPreview(file)) { + URL.revokeObjectURL(file.preview); + } + }); + }; + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + + const isDisabled = disabled || (files?.length ?? 0) >= maxFiles; + + const dropzone = useDropzone({ + onDrop, + accept, + maxSize, + maxFiles, + multiple, + disabled: isDisabled, + ...dropzoneProps, + }); + + return ( + +
+ {children} +
+
+ ); + }, +); +FileUploader.displayName = "FileUploader"; + +const FileUploaderContent = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ children, className, ...props }, ref) => { + return ( +
+ {children} +
+ ); +}); +FileUploaderContent.displayName = "FileUploaderContent"; + +const fileUploaderInputVariants = cva( + "group relative cursor-pointer focus-visible:outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50", + { + variants: { + variant: { + default: + "grid h-52 w-full place-items-center rounded-lg border-2 border-dashed border-muted-foreground/25 px-5 py-2.5 text-center ring-offset-background transition hover:bg-muted/25 focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 data-[state=active]:border-muted-foreground/50", + button: + "inline-flex h-9 items-center justify-center gap-2 rounded-md bg-primary px-4 text-sm font-medium text-primary-foreground shadow hover:bg-primary/90", + headless: "", + }, + }, + defaultVariants: { + variant: "default", + }, + }, +); + +const FileUploaderTrigger = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes & + VariantProps +>(({ children, className, variant, ...props }, ref) => { + const { + getRootProps, + getInputProps, + isDragActive, + isDragAccept, + isDragReject, + maxFiles, + maxSize, + disabled, + } = useFileUploader(); + + return ( +
+ + {isDragActive ? ( +
+
+
+

+ Drop the files here +

+
+ ) : ( +
+
+
+
+

+ Drag {`'n'`} drop files here, or click to select files +

+

+ You can upload + {maxFiles > 1 + ? ` ${maxFiles === Infinity ? "multiple" : maxFiles} + files (up to ${formatBytes(maxSize)} each)` + : ` a file with ${formatBytes(maxSize)}`} +

+
+
+ )} + {children} +
+ ); +}); +FileUploaderTrigger.displayName = "FileUploaderTrigger"; + +interface FileUploaderItemProps extends React.HTMLAttributes { + file: File; + index: number; + progress?: number; +} + +const FileUploaderItem = React.forwardRef< + HTMLDivElement, + FileUploaderItemProps +>(({ file, index, progress, className, ...props }, ref) => { + const { onRemove } = useFileUploader(); + + return ( +
+
+ {isFileWithPreview(file) ? ( + {file.name} + ) : null} +
+
+

+ {file.name} +

+

+ {formatBytes(file.size)} +

+
+ {progress ? : null} +
+
+
+ +
+
+ ); +}); +FileUploaderItem.displayName = "FileUploaderItem"; + +export { + FileUploader, + FileUploaderContent, + FileUploaderItem, + FileUploaderTrigger, +}; diff --git a/examples/custom-components/src/components/file-uploader.tsx b/examples/custom-components/src/components/file-uploader.tsx new file mode 100644 index 000000000..9fa9d2cce --- /dev/null +++ b/examples/custom-components/src/components/file-uploader.tsx @@ -0,0 +1,315 @@ +"use client"; + +import * as React from "react"; +import Image from "next/image"; +import { Cross2Icon, UploadIcon } from "@radix-ui/react-icons"; +import Dropzone, { + type DropzoneProps, + type FileRejection, +} from "react-dropzone"; +import { toast } from "sonner"; + +import { Button } from "~/components/ui/button"; +import { Progress } from "~/components/ui/progress"; +import { ScrollArea } from "~/components/ui/scroll-area"; +import { useControllableState } from "~/hooks/use-controllable-state"; +import { cn, formatBytes } from "~/lib/utils"; + +interface FileUploaderProps extends React.HTMLAttributes { + /** + * Value of the uploader. + * @type File[] + * @default undefined + * @example value={files} + */ + value?: File[]; + + /** + * Function to be called when the value changes. + * @type React.Dispatch> + * @default undefined + * @example onValueChange={(files) => setFiles(files)} + */ + onValueChange?: React.Dispatch>; + + /** + * Function to be called when files are uploaded. + * @type (files: File[]) => Promise + * @default undefined + * @example onUpload={(files) => uploadFiles(files)} + */ + onUpload?: (files: File[]) => Promise; + + /** + * Progress of the uploaded files. + * @type Record | undefined + * @default undefined + * @example progresses={{ "file1.png": 50 }} + */ + progresses?: Record; + + /** + * Accepted file types for the uploader. + * @type { [key: string]: string[]} + * @default + * ```ts + * { "image/*": [] } + * ``` + * @example accept={["image/png", "image/jpeg"]} + */ + accept?: DropzoneProps["accept"]; + + /** + * Maximum file size for the uploader. + * @type number | undefined + * @default 1024 * 1024 * 2 // 2MB + * @example maxSize={1024 * 1024 * 2} // 2MB + */ + maxSize?: DropzoneProps["maxSize"]; + + /** + * Maximum number of files for the uploader. + * @type number | undefined + * @default 1 + * @example maxFiles={5} + */ + maxFiles?: DropzoneProps["maxFiles"]; + + /** + * Whether the uploader should accept multiple files. + * @type boolean + * @default false + * @example multiple + */ + multiple?: boolean; + + /** + * Whether the uploader is disabled. + * @type boolean + * @default false + * @example disabled + */ + disabled?: boolean; +} + +export function FileUploader(props: FileUploaderProps) { + const { + value: valueProp, + onValueChange, + onUpload, + progresses, + accept = { "image/*": [] }, + maxSize = 1024 * 1024 * 2, + maxFiles = 1, + multiple = false, + disabled = false, + className, + ...dropzoneProps + } = props; + + const [files, setFiles] = useControllableState({ + prop: valueProp, + onChange: onValueChange, + }); + + const onDrop = React.useCallback( + (acceptedFiles: File[], rejectedFiles: FileRejection[]) => { + if (!multiple && maxFiles === 1 && acceptedFiles.length > 1) { + toast.error("Cannot upload more than 1 file at a time"); + return; + } + + if ((files?.length ?? 0) + acceptedFiles.length > maxFiles) { + toast.error(`Cannot upload more than ${maxFiles} files`); + return; + } + + const newFiles = acceptedFiles.map((file) => + Object.assign(file, { + preview: URL.createObjectURL(file), + }), + ); + + const updatedFiles = files ? [...files, ...newFiles] : newFiles; + + setFiles(updatedFiles); + + if (rejectedFiles.length > 0) { + rejectedFiles.forEach(({ file }) => { + toast.error(`File ${file.name} was rejected`); + }); + } + + if ( + onUpload && + updatedFiles.length > 0 && + updatedFiles.length <= maxFiles + ) { + const target = + updatedFiles.length > 0 ? `${updatedFiles.length} files` : `file`; + + toast.promise(onUpload(updatedFiles), { + loading: `Uploading ${target}...`, + success: () => { + setFiles([]); + return `${target} uploaded`; + }, + error: `Failed to upload ${target}`, + }); + } + }, + + [files, maxFiles, multiple, onUpload, setFiles], + ); + + function onRemove(index: number) { + if (!files) return; + const newFiles = files.filter((_, i) => i !== index); + setFiles(newFiles); + onValueChange?.(newFiles); + } + + // Revoke preview url when component unmounts + React.useEffect(() => { + return () => { + if (!files) return; + files.forEach((file) => { + if (isFileWithPreview(file)) { + URL.revokeObjectURL(file.preview); + } + }); + }; + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + + const isDisabled = disabled || (files?.length ?? 0) >= maxFiles; + + return ( +
+ 1 || multiple} + disabled={isDisabled} + > + {({ getRootProps, getInputProps, isDragActive }) => ( +
+ + {isDragActive ? ( +
+
+
+

+ Drop the files here +

+
+ ) : ( +
+
+
+
+

+ Drag {`'n'`} drop files here, or click to select files +

+

+ You can upload + {maxFiles > 1 + ? ` ${maxFiles === Infinity ? "multiple" : maxFiles} + files (up to ${formatBytes(maxSize)} each)` + : ` a file with ${formatBytes(maxSize)}`} +

+
+
+ )} +
+ )} +
+ {files?.length ? ( + +
+ {files?.map((file, index) => ( + onRemove(index)} + progress={progresses?.[file.name]} + /> + ))} +
+
+ ) : null} +
+ ); +} + +interface FileCardProps { + file: File; + onRemove: () => void; + progress?: number; +} + +function FileCard({ file, progress, onRemove }: FileCardProps) { + return ( +
+
+ {isFileWithPreview(file) ? ( + {file.name} + ) : null} +
+
+

+ {file.name} +

+

+ {formatBytes(file.size)} +

+
+ {progress ? : null} +
+
+
+ +
+
+ ); +} + +function isFileWithPreview(file: File): file is File & { preview: string } { + return "preview" in file && typeof file.preview === "string"; +} diff --git a/examples/custom-components/src/components/loading-button.tsx b/examples/custom-components/src/components/loading-button.tsx new file mode 100644 index 000000000..25684facc --- /dev/null +++ b/examples/custom-components/src/components/loading-button.tsx @@ -0,0 +1,48 @@ +"use client"; + +import * as React from "react"; +import { ReloadIcon } from "@radix-ui/react-icons"; +import { useFormStatus } from "react-dom"; + +import { + Button, + buttonVariants, + type ButtonProps, +} from "~/components/ui/button"; +import { cn, composeEventHandlers } from "~/lib/utils"; + +interface LoadingButtonProps extends ButtonProps { + action: "create" | "update" | "delete"; +} + +const LoadingButton = React.forwardRef( + ({ children, className, variant, size, action, ...props }, ref) => { + const { pending } = useFormStatus(); + const [buttonAction, setButtonAction] = React.useState< + "update" | "delete" | "create" + >("create"); + + return ( + + ); + }, +); +LoadingButton.displayName = "LoadingButton"; + +export { LoadingButton }; diff --git a/examples/custom-components/src/components/ui/button.tsx b/examples/custom-components/src/components/ui/button.tsx index 9c9d496e6..4ee730855 100644 --- a/examples/custom-components/src/components/ui/button.tsx +++ b/examples/custom-components/src/components/ui/button.tsx @@ -5,27 +5,26 @@ import { cva, type VariantProps } from "class-variance-authority"; import { cn } from "~/lib/utils"; const buttonVariants = cva( - "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-white transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-950 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 dark:ring-offset-gray-950 dark:focus-visible:ring-gray-300", + "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50", { variants: { variant: { default: - "bg-gray-900 text-gray-50 hover:bg-gray-900/90 dark:bg-gray-50 dark:text-gray-900 dark:hover:bg-gray-50/90", + "bg-primary text-primary-foreground shadow hover:bg-primary/90", destructive: - "bg-red-500 text-gray-50 hover:bg-red-500/90 dark:bg-red-900 dark:text-gray-50 dark:hover:bg-red-900/90", + "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90", outline: - "border border-gray-200 bg-white hover:bg-gray-100 hover:text-gray-900 dark:border-gray-800 dark:bg-gray-950 dark:hover:bg-gray-800 dark:hover:text-gray-50", + "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground", secondary: - "bg-gray-100 text-gray-900 hover:bg-gray-100/80 dark:bg-gray-800 dark:text-gray-50 dark:hover:bg-gray-800/80", - ghost: - "hover:bg-gray-100 hover:text-gray-900 dark:hover:bg-gray-800 dark:hover:text-gray-50", - link: "text-gray-900 underline-offset-4 hover:underline dark:text-gray-50", + "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80", + ghost: "hover:bg-accent hover:text-accent-foreground", + link: "text-primary underline-offset-4 hover:underline", }, size: { - default: "h-10 px-4 py-2", - sm: "h-9 rounded-md px-3", - lg: "h-11 rounded-md px-8", - icon: "h-10 w-10", + default: "h-9 px-4 py-2", + sm: "h-8 rounded-md px-3 text-xs", + lg: "h-10 rounded-md px-8", + icon: "size-9", }, }, defaultVariants: { diff --git a/examples/custom-components/src/components/ui/card.tsx b/examples/custom-components/src/components/ui/card.tsx index 5f5a1a530..f226b2438 100644 --- a/examples/custom-components/src/components/ui/card.tsx +++ b/examples/custom-components/src/components/ui/card.tsx @@ -9,7 +9,7 @@ const Card = React.forwardRef<
(({ className, ...props }, ref) => (

)); @@ -50,7 +47,7 @@ const CardDescription = React.forwardRef< >(({ className, ...props }, ref) => (

)); diff --git a/examples/custom-components/src/components/ui/form.tsx b/examples/custom-components/src/components/ui/form.tsx new file mode 100644 index 000000000..69480f2e7 --- /dev/null +++ b/examples/custom-components/src/components/ui/form.tsx @@ -0,0 +1,177 @@ +import * as React from "react"; +import type * as LabelPrimitive from "@radix-ui/react-label"; +import { Slot } from "@radix-ui/react-slot"; +import { + Controller, + FormProvider, + useFormContext, + type ControllerProps, + type FieldPath, + type FieldValues, +} from "react-hook-form"; + +import { Label } from "~/components/ui/label"; +import { cn } from "~/lib/utils"; + +const Form = FormProvider; + +type FormFieldContextValue< + TFieldValues extends FieldValues = FieldValues, + TName extends FieldPath = FieldPath, +> = { + name: TName; +}; + +const FormFieldContext = React.createContext( + {} as FormFieldContextValue, +); + +const FormField = < + TFieldValues extends FieldValues = FieldValues, + TName extends FieldPath = FieldPath, +>({ + ...props +}: ControllerProps) => { + return ( + + + + ); +}; + +const useFormField = () => { + const fieldContext = React.useContext(FormFieldContext); + const itemContext = React.useContext(FormItemContext); + const { getFieldState, formState } = useFormContext(); + + const fieldState = getFieldState(fieldContext.name, formState); + + if (!fieldContext) { + throw new Error("useFormField should be used within "); + } + + const { id } = itemContext; + + return { + id, + name: fieldContext.name, + formItemId: `${id}-form-item`, + formDescriptionId: `${id}-form-item-description`, + formMessageId: `${id}-form-item-message`, + ...fieldState, + }; +}; + +type FormItemContextValue = { + id: string; +}; + +const FormItemContext = React.createContext( + {} as FormItemContextValue, +); + +const FormItem = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => { + const id = React.useId(); + + return ( + +

+ + ); +}); +FormItem.displayName = "FormItem"; + +const FormLabel = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => { + const { error, formItemId } = useFormField(); + + return ( +
)} /> - diff --git a/examples/custom-components/src/app/_components/uploaded-files-card.tsx b/examples/custom-components/src/app/_components/uploaded-files-card.tsx deleted file mode 100644 index 92f8035ab..000000000 --- a/examples/custom-components/src/app/_components/uploaded-files-card.tsx +++ /dev/null @@ -1,55 +0,0 @@ -import Image from "next/image"; - -import type { ClientUploadedFileData } from "uploadthing/types"; - -import { EmptyCard } from "~/components/empty-card"; -import { - Card, - CardContent, - CardDescription, - CardHeader, - CardTitle, -} from "~/components/ui/card"; -import { ScrollArea, ScrollBar } from "~/components/ui/scroll-area"; - -interface UploadedFilesCardProps { - uploadedFiles: ClientUploadedFileData[]; -} - -export function UploadedFilesCard({ uploadedFiles }: UploadedFilesCardProps) { - return ( - - - Uploaded files - View the uploaded files here - - - {uploadedFiles.length > 0 ? ( - -
- {uploadedFiles.map((file) => ( -
- {file.name} -
- ))} -
- -
- ) : ( - - )} -
-
- ); -} diff --git a/examples/custom-components/src/app/layout.tsx b/examples/custom-components/src/app/layout.tsx index 6f8faf0b4..35e3bbc89 100644 --- a/examples/custom-components/src/app/layout.tsx +++ b/examples/custom-components/src/app/layout.tsx @@ -3,11 +3,11 @@ import { Inter } from "next/font/google"; import "./globals.css"; import { Toaster } from "sonner"; +import { twMerge } from "tailwind-merge"; import { NextSSRPlugin } from "@uploadthing/react/next-ssr-plugin"; import { extractRouterConfig } from "uploadthing/server"; -import { cn } from "~/lib/utils"; import { uploadRouter } from "~/uploadthing/server"; const inter = Inter({ subsets: ["latin"], variable: "--font-sans" }); @@ -19,7 +19,7 @@ export default function RootLayout({ }) { return ( - + {children} diff --git a/examples/custom-components/src/app/page.tsx b/examples/custom-components/src/app/page.tsx index a0524f282..bff77111d 100644 --- a/examples/custom-components/src/app/page.tsx +++ b/examples/custom-components/src/app/page.tsx @@ -1,3 +1,60 @@ -export default function IndexPage() { - return
Hello
; +import { EmptyCard, FilePreview } from "~/components/file-preview"; +import { LoadMore } from "~/components/load-more"; +import { + Card, + CardContent, + CardDescription, + CardHeader, + CardTitle, +} from "~/components/ui/card"; +import { utapi } from "~/uploadthing/server"; +import { ReactHookFormDemo } from "./_components/react-hook-form-demo"; + +const PAGE_SIZE = 20; + +const UploadFilesList = (props: { + uploadedFiles: { key: string; name: string }[]; +}) => { + if (props.uploadedFiles.length === 0) + return ( + + ); + return props.uploadedFiles.map((file) => ); +}; + +const loadUploadedFiles = async (offset = 0) => { + "use server"; + + const files = await utapi.listFiles({ offset, limit: PAGE_SIZE }); + const nextOffset = files.length >= PAGE_SIZE ? offset + PAGE_SIZE : null; + + return [, nextOffset] as const; +}; + +export default async function HomePage() { + const uploadedFiles = await utapi.listFiles({ offset: 0, limit: PAGE_SIZE }); + + return ( +
+ + + + Uploaded files + View the uploaded files here + + + + + + + +
+ ); } diff --git a/examples/custom-components/src/components/empty-card.tsx b/examples/custom-components/src/components/empty-card.tsx deleted file mode 100644 index 5b87c1be9..000000000 --- a/examples/custom-components/src/components/empty-card.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import { ImageIcon } from "@radix-ui/react-icons"; - -import { cn } from "~/lib/utils"; -import { Card, CardDescription, CardTitle } from "./ui/card"; - -interface EmptyCardProps extends React.ComponentPropsWithoutRef { - title: string; - description?: string; - - icon?: React.ComponentType<{ className?: string }>; -} - -export function EmptyCard({ - title, - description, - icon: Icon = ImageIcon, - className, - ...props -}: EmptyCardProps) { - return ( - -
-
-
- {title} - {description ? {description} : null} -
-
- ); -} diff --git a/examples/custom-components/src/components/file-preview.tsx b/examples/custom-components/src/components/file-preview.tsx new file mode 100644 index 000000000..989921df2 --- /dev/null +++ b/examples/custom-components/src/components/file-preview.tsx @@ -0,0 +1,85 @@ +"use client"; + +import React from "react"; +import Image from "next/image"; +import { ImageIcon } from "@radix-ui/react-icons"; +import { toast } from "sonner"; +import { twMerge } from "tailwind-merge"; + +import { Card, CardDescription, CardTitle } from "./ui/card"; + +interface EmptyCardProps extends React.ComponentPropsWithoutRef { + title: string; + description?: string; + Icon?: React.ComponentType<{ className?: string }>; +} + +export const EmptyCard = ({ + title, + description, + Icon = ImageIcon, + className, + ...props +}: EmptyCardProps) => { + return ( + +
+
+
+ {title} + {description ? {description} : null} +
+
+ ); +}; + +export const FilePreview = ({ + file, +}: { + file: { key: string; name: string }; +}) => { + const [errored, setErrored] = React.useState(false); + + const ext = file.name.split(".")!.pop()!; + if (errored || !["png", "jpg", "jpeg", "gif"].includes(ext)) { + const Icon = ImageIcon; // TODO: Dynamic icon + + return ( +
+
+ ); + } + + return ( +
+ {file.name} { + setErrored(true); + toast.error(`Failed to load file ${file.name}`); + }} + /> +
+ ); +}; diff --git a/examples/custom-components/src/components/file-uploader-primitive.tsx b/examples/custom-components/src/components/file-uploader-primitive.tsx deleted file mode 100644 index ce7cae0f4..000000000 --- a/examples/custom-components/src/components/file-uploader-primitive.tsx +++ /dev/null @@ -1,396 +0,0 @@ -"use client"; - -import * as React from "react"; -import Image from "next/image"; -import { Cross2Icon, UploadIcon } from "@radix-ui/react-icons"; -import { cva, type VariantProps } from "class-variance-authority"; -import { - useDropzone, - type DropzoneOptions, - type DropzoneState, - type FileRejection, -} from "react-dropzone"; -import { toast } from "sonner"; - -import { Button } from "~/components/ui/button"; -import { Input } from "~/components/ui/input"; -import { Progress } from "~/components/ui/progress"; -import { useControllableState } from "~/hooks/use-controllable-state"; -import { cn, formatBytes } from "~/lib/utils"; - -interface FileUploaderProps extends React.HTMLAttributes { - /** - * Value of the uploader. - * @type File[] - * @default undefined - * @example value={files} - */ - value?: File[]; - - /** - * Function to be called when the value changes. - * @type React.Dispatch> - * @default undefined - * @example onValueChange={(files) => setFiles(files)} - */ - onValueChange?: React.Dispatch>; - - /** - * Function to be called when files are uploaded. - * @type (files: File[]) => Promise - * @default undefined - * @example onUpload={(files) => uploadFiles(files)} - */ - onUpload?: (files: File[]) => Promise; - - /** - * Progress of the uploaded files. - * @type Record | undefined - * @default undefined - * @example progresses={{ "file1.png": 50 }} - */ - progresses?: Record; - - /** - * Options for the dropzone. - * @type DropzoneOptions | undefined - * @default undefined - * @example opts={{ maxFiles: 3, multiple: true }} - */ - opts?: DropzoneOptions; -} - -interface FileUploaderContextProps extends DropzoneState { - files: File[]; - maxFiles: number; - maxSize: number; - setFiles: (files: File[]) => void; - onRemove: (index: number) => void; - progresses?: Record; - disabled: boolean; -} - -const FileUploaderContext = - React.createContext(null); - -function useFileUploader() { - const context = React.useContext(FileUploaderContext); - - if (!context) { - throw new Error("useFileUploader must be used within a "); - } - - return context; -} - -function isFileWithPreview(file: File): file is File & { preview: string } { - return "preview" in file && typeof file.preview === "string"; -} - -const FileUploader = React.forwardRef( - ( - { - value: valueProp, - onValueChange, - onUpload, - progresses, - opts, - children, - className, - ...props - }, - ref, - ) => { - const { - accept = { "image/*": [] }, - maxSize = 1024 * 1024 * 4, - maxFiles = 1, - multiple = false, - disabled = false, - ...dropzoneProps - } = opts ?? {}; - - const [files, setFiles] = useControllableState({ - prop: valueProp, - onChange: onValueChange, - }); - - const onDrop = React.useCallback( - (acceptedFiles: File[], rejectedFiles: FileRejection[]) => { - if (!multiple && maxFiles === 1 && acceptedFiles.length > 1) { - toast.error("Cannot upload more than 1 file at a time"); - return; - } - - if ((files?.length ?? 0) + acceptedFiles.length > maxFiles) { - toast.error(`Cannot upload more than ${maxFiles} files`); - return; - } - - const newFiles = acceptedFiles.map((file) => - Object.assign(file, { - preview: URL.createObjectURL(file), - }), - ); - - const updatedFiles = files ? [...files, ...newFiles] : newFiles; - - setFiles(updatedFiles); - - if (rejectedFiles.length > 0) { - rejectedFiles.forEach(({ file }) => { - toast.error(`File ${file.name} was rejected`); - }); - } - - if ( - onUpload && - updatedFiles.length > 0 && - updatedFiles.length <= maxFiles - ) { - const target = - updatedFiles.length > 0 ? `${updatedFiles.length} files` : `file`; - - toast.promise(onUpload(updatedFiles), { - loading: `Uploading ${target}...`, - success: () => { - setFiles([]); - return `${target} uploaded`; - }, - error: `Failed to upload ${target}`, - }); - } - }, - - [files, maxFiles, multiple, onUpload, setFiles], - ); - - function onRemove(index: number) { - if (!files) return; - const newFiles = files.filter((_, i) => i !== index); - setFiles(newFiles); - onValueChange?.(newFiles); - } - - // Revoke preview url when component unmounts - React.useEffect(() => { - return () => { - if (!files) return; - files.forEach((file) => { - if (isFileWithPreview(file)) { - URL.revokeObjectURL(file.preview); - } - }); - }; - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []); - - const isDisabled = disabled || (files?.length ?? 0) >= maxFiles; - - const dropzone = useDropzone({ - onDrop, - accept, - maxSize, - maxFiles, - multiple, - disabled: isDisabled, - ...dropzoneProps, - }); - - return ( - -
- {children} -
-
- ); - }, -); -FileUploader.displayName = "FileUploader"; - -const FileUploaderContent = React.forwardRef< - HTMLDivElement, - React.HTMLAttributes ->(({ children, className, ...props }, ref) => { - return ( -
- {children} -
- ); -}); -FileUploaderContent.displayName = "FileUploaderContent"; - -const fileUploaderInputVariants = cva( - "group relative cursor-pointer focus-visible:outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50", - { - variants: { - variant: { - default: - "grid h-52 w-full place-items-center rounded-lg border-2 border-dashed border-muted-foreground/25 px-5 py-2.5 text-center ring-offset-background transition hover:bg-muted/25 focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 data-[state=active]:border-muted-foreground/50", - button: - "inline-flex h-9 items-center justify-center gap-2 rounded-md bg-primary px-4 text-sm font-medium text-primary-foreground shadow hover:bg-primary/90", - headless: "", - }, - }, - defaultVariants: { - variant: "default", - }, - }, -); - -const FileUploaderTrigger = React.forwardRef< - HTMLDivElement, - React.HTMLAttributes & - VariantProps ->(({ children, className, variant, ...props }, ref) => { - const { - getRootProps, - getInputProps, - isDragActive, - isDragAccept, - isDragReject, - maxFiles, - maxSize, - disabled, - } = useFileUploader(); - - return ( -
- - {isDragActive ? ( -
-
-
-

- Drop the files here -

-
- ) : ( -
-
-
-
-

- Drag {`'n'`} drop files here, or click to select files -

-

- You can upload - {maxFiles > 1 - ? ` ${maxFiles === Infinity ? "multiple" : maxFiles} - files (up to ${formatBytes(maxSize)} each)` - : ` a file with ${formatBytes(maxSize)}`} -

-
-
- )} - {children} -
- ); -}); -FileUploaderTrigger.displayName = "FileUploaderTrigger"; - -interface FileUploaderItemProps extends React.HTMLAttributes { - file: File; - index: number; - progress?: number; -} - -const FileUploaderItem = React.forwardRef< - HTMLDivElement, - FileUploaderItemProps ->(({ file, index, progress, className, ...props }, ref) => { - const { onRemove } = useFileUploader(); - - return ( -
-
- {isFileWithPreview(file) ? ( - {file.name} - ) : null} -
-
-

- {file.name} -

-

- {formatBytes(file.size)} -

-
- {progress ? : null} -
-
-
- -
-
- ); -}); -FileUploaderItem.displayName = "FileUploaderItem"; - -export { - FileUploader, - FileUploaderContent, - FileUploaderItem, - FileUploaderTrigger, -}; diff --git a/examples/custom-components/src/components/file-uploader.tsx b/examples/custom-components/src/components/file-uploader.tsx index 9fa9d2cce..02deff380 100644 --- a/examples/custom-components/src/components/file-uploader.tsx +++ b/examples/custom-components/src/components/file-uploader.tsx @@ -1,129 +1,47 @@ -"use client"; +import "client-only"; import * as React from "react"; import Image from "next/image"; import { Cross2Icon, UploadIcon } from "@radix-ui/react-icons"; -import Dropzone, { - type DropzoneProps, - type FileRejection, -} from "react-dropzone"; import { toast } from "sonner"; +import { twMerge } from "tailwind-merge"; + +import { useDropzone } from "@uploadthing/react"; +import { bytesToHumanReadable } from "@uploadthing/shared"; +import { + generateClientDropzoneAccept, + generatePermittedFileTypes, +} from "uploadthing/client"; import { Button } from "~/components/ui/button"; import { Progress } from "~/components/ui/progress"; -import { ScrollArea } from "~/components/ui/scroll-area"; -import { useControllableState } from "~/hooks/use-controllable-state"; -import { cn, formatBytes } from "~/lib/utils"; +import { useUploadThing } from "~/uploadthing/client"; interface FileUploaderProps extends React.HTMLAttributes { - /** - * Value of the uploader. - * @type File[] - * @default undefined - * @example value={files} - */ - value?: File[]; - - /** - * Function to be called when the value changes. - * @type React.Dispatch> - * @default undefined - * @example onValueChange={(files) => setFiles(files)} - */ - onValueChange?: React.Dispatch>; - - /** - * Function to be called when files are uploaded. - * @type (files: File[]) => Promise - * @default undefined - * @example onUpload={(files) => uploadFiles(files)} - */ - onUpload?: (files: File[]) => Promise; - - /** - * Progress of the uploaded files. - * @type Record | undefined - * @default undefined - * @example progresses={{ "file1.png": 50 }} - */ - progresses?: Record; - - /** - * Accepted file types for the uploader. - * @type { [key: string]: string[]} - * @default - * ```ts - * { "image/*": [] } - * ``` - * @example accept={["image/png", "image/jpeg"]} - */ - accept?: DropzoneProps["accept"]; - - /** - * Maximum file size for the uploader. - * @type number | undefined - * @default 1024 * 1024 * 2 // 2MB - * @example maxSize={1024 * 1024 * 2} // 2MB - */ - maxSize?: DropzoneProps["maxSize"]; - - /** - * Maximum number of files for the uploader. - * @type number | undefined - * @default 1 - * @example maxFiles={5} - */ - maxFiles?: DropzoneProps["maxFiles"]; - - /** - * Whether the uploader should accept multiple files. - * @type boolean - * @default false - * @example multiple - */ - multiple?: boolean; - - /** - * Whether the uploader is disabled. - * @type boolean - * @default false - * @example disabled - */ - disabled?: boolean; + files: File[]; + onFilesChange: (files: File[]) => void; } -export function FileUploader(props: FileUploaderProps) { - const { - value: valueProp, - onValueChange, - onUpload, - progresses, - accept = { "image/*": [] }, - maxSize = 1024 * 1024 * 2, - maxFiles = 1, - multiple = false, - disabled = false, - className, - ...dropzoneProps - } = props; - - const [files, setFiles] = useControllableState({ - prop: valueProp, - onChange: onValueChange, - }); +export function FileUploader({ + files, + onFilesChange, + className, + ...dropzoneProps +}: FileUploaderProps) { + const { permittedFileInfo, progresses, startUpload } = useUploadThing( + "imageUploader", + { + files, + onFilesChange, + skipPolling: true, + }, + ); + const { fileTypes, multiple } = generatePermittedFileTypes( + permittedFileInfo?.config, + ); const onDrop = React.useCallback( - (acceptedFiles: File[], rejectedFiles: FileRejection[]) => { - if (!multiple && maxFiles === 1 && acceptedFiles.length > 1) { - toast.error("Cannot upload more than 1 file at a time"); - return; - } - - if ((files?.length ?? 0) + acceptedFiles.length > maxFiles) { - toast.error(`Cannot upload more than ${maxFiles} files`); - return; - } - + (acceptedFiles: File[]) => { const newFiles = acceptedFiles.map((file) => Object.assign(file, { preview: URL.createObjectURL(file), @@ -131,43 +49,16 @@ export function FileUploader(props: FileUploaderProps) { ); const updatedFiles = files ? [...files, ...newFiles] : newFiles; - - setFiles(updatedFiles); - - if (rejectedFiles.length > 0) { - rejectedFiles.forEach(({ file }) => { - toast.error(`File ${file.name} was rejected`); - }); - } - - if ( - onUpload && - updatedFiles.length > 0 && - updatedFiles.length <= maxFiles - ) { - const target = - updatedFiles.length > 0 ? `${updatedFiles.length} files` : `file`; - - toast.promise(onUpload(updatedFiles), { - loading: `Uploading ${target}...`, - success: () => { - setFiles([]); - return `${target} uploaded`; - }, - error: `Failed to upload ${target}`, - }); - } + onFilesChange?.(updatedFiles); }, - - [files, maxFiles, multiple, onUpload, setFiles], + [files], ); - function onRemove(index: number) { - if (!files) return; - const newFiles = files.filter((_, i) => i !== index); - setFiles(newFiles); - onValueChange?.(newFiles); - } + const { getRootProps, getInputProps, isDragActive } = useDropzone({ + onDrop, + accept: generateClientDropzoneAccept(fileTypes), + multiple, + }); // Revoke preview url when component unmounts React.useEffect(() => { @@ -179,84 +70,67 @@ export function FileUploader(props: FileUploaderProps) { } }); }; - // eslint-disable-next-line react-hooks/exhaustive-deps }, []); - const isDisabled = disabled || (files?.length ?? 0) >= maxFiles; - return (
- 1 || multiple} - disabled={isDisabled} +
- {({ getRootProps, getInputProps, isDragActive }) => ( -
- - {isDragActive ? ( -
-
-
-

- Drop the files here -

-
- ) : ( -
-
-
-
-

- Drag {`'n'`} drop files here, or click to select files -

-

- You can upload - {maxFiles > 1 - ? ` ${maxFiles === Infinity ? "multiple" : maxFiles} - files (up to ${formatBytes(maxSize)} each)` - : ` a file with ${formatBytes(maxSize)}`} -

-
-
- )} + + {isDragActive ? ( +
+
+
+

+ Drop the files here +

- )} - - {files?.length ? ( - -
- {files?.map((file, index) => ( - onRemove(index)} - progress={progresses?.[file.name]} + ) : ( +
+
+
+
+

+ Drag {`'n'`} drop files here, or click to select files +

+

You can upload

+
- + )} +
+ + {files?.length ? ( +
+ {files?.map((file, index) => ( + { + if (!files) return; + const newFiles = files.filter((_, i) => i !== index); + onFilesChange?.(newFiles); + }} + progress={progresses.get(file.name)} + /> + ))} +
) : null}
); @@ -288,10 +162,10 @@ function FileCard({ file, progress, onRemove }: FileCardProps) { {file.name}

- {formatBytes(file.size)} + {bytesToHumanReadable(file.size)}

- {progress ? : null} +

diff --git a/examples/custom-components/src/components/load-more.tsx b/examples/custom-components/src/components/load-more.tsx new file mode 100644 index 000000000..5f8c7434b --- /dev/null +++ b/examples/custom-components/src/components/load-more.tsx @@ -0,0 +1,93 @@ +"use client"; + +/** + * Shamlessly stolen from Gabriel + * @see https://github.com/gabrielelpidio/next-infinite-scroll-server-actions/blob/main/src/components/loadMore.tsx + */ +import * as React from "react"; +import { twMerge } from "tailwind-merge"; + +import { LoadingDots } from "./ui/loading"; + +type LoadMoreAction = ( + offset: number, +) => Promise; + +const LoadMore = ({ + children, + initialOffset, + loadMoreAction, +}: React.PropsWithChildren<{ + initialOffset: number; + loadMoreAction: LoadMoreAction; +}>) => { + const ref = React.useRef(null); + const [elements, setElements] = React.useState([] as React.ReactNode[]); + + const currentOffset = React.useRef(initialOffset); + const [loading, setLoading] = React.useState(false); + + const loadMore = React.useCallback( + async (abortController?: AbortController) => { + if (currentOffset.current === null) return; + + setLoading(true); + loadMoreAction(currentOffset.current) + .then(([node, next]) => { + if (abortController?.signal.aborted) return; + + setElements((prev) => [...prev, node]); + currentOffset.current = next; + }) + .catch(() => {}) + .finally(() => setLoading(false)); + }, + [loadMoreAction], + ); + + React.useEffect(() => { + const signal = new AbortController(); + + const element = ref.current; + + const observer = new IntersectionObserver(([entry]) => { + if (entry?.isIntersecting && !loading) { + loadMore(signal); + } + }); + + if (element) { + observer.observe(element); + } + + return () => { + signal.abort(); + if (element) { + observer.unobserve(element); + } + }; + }, [loadMore]); + + return ( + <> +
+ {children} + {elements} +
+
+ {currentOffset.current === null && ( + No more files + )} + {loading && } +
+ + ); +}; + +export { LoadMore }; diff --git a/examples/custom-components/src/components/loading-button.tsx b/examples/custom-components/src/components/loading-button.tsx deleted file mode 100644 index 25684facc..000000000 --- a/examples/custom-components/src/components/loading-button.tsx +++ /dev/null @@ -1,48 +0,0 @@ -"use client"; - -import * as React from "react"; -import { ReloadIcon } from "@radix-ui/react-icons"; -import { useFormStatus } from "react-dom"; - -import { - Button, - buttonVariants, - type ButtonProps, -} from "~/components/ui/button"; -import { cn, composeEventHandlers } from "~/lib/utils"; - -interface LoadingButtonProps extends ButtonProps { - action: "create" | "update" | "delete"; -} - -const LoadingButton = React.forwardRef( - ({ children, className, variant, size, action, ...props }, ref) => { - const { pending } = useFormStatus(); - const [buttonAction, setButtonAction] = React.useState< - "update" | "delete" | "create" - >("create"); - - return ( - - ); - }, -); -LoadingButton.displayName = "LoadingButton"; - -export { LoadingButton }; diff --git a/examples/custom-components/src/components/ui/button.tsx b/examples/custom-components/src/components/ui/button.tsx index 4ee730855..3865f6830 100644 --- a/examples/custom-components/src/components/ui/button.tsx +++ b/examples/custom-components/src/components/ui/button.tsx @@ -1,8 +1,7 @@ import * as React from "react"; import { Slot } from "@radix-ui/react-slot"; import { cva, type VariantProps } from "class-variance-authority"; - -import { cn } from "~/lib/utils"; +import { twMerge } from "tailwind-merge"; const buttonVariants = cva( "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50", @@ -45,7 +44,7 @@ const Button = React.forwardRef( const Comp = asChild ? Slot : "button"; return ( diff --git a/examples/custom-components/src/components/ui/card.tsx b/examples/custom-components/src/components/ui/card.tsx index f226b2438..03de6dc9f 100644 --- a/examples/custom-components/src/components/ui/card.tsx +++ b/examples/custom-components/src/components/ui/card.tsx @@ -1,6 +1,5 @@ import * as React from "react"; - -import { cn } from "~/lib/utils"; +import { twMerge } from "tailwind-merge"; const Card = React.forwardRef< HTMLDivElement, @@ -8,7 +7,7 @@ const Card = React.forwardRef< >(({ className, ...props }, ref) => (
(({ className, ...props }, ref) => (
)); @@ -35,7 +34,7 @@ const CardTitle = React.forwardRef< >(({ className, ...props }, ref) => (

)); @@ -47,7 +46,7 @@ const CardDescription = React.forwardRef< >(({ className, ...props }, ref) => (

)); @@ -57,7 +56,7 @@ const CardContent = React.forwardRef< HTMLDivElement, React.HTMLAttributes >(({ className, ...props }, ref) => ( -

+
)); CardContent.displayName = "CardContent"; @@ -67,7 +66,7 @@ const CardFooter = React.forwardRef< >(({ className, ...props }, ref) => (
)); diff --git a/examples/custom-components/src/components/ui/form.tsx b/examples/custom-components/src/components/ui/form.tsx index 69480f2e7..ed68e4c3b 100644 --- a/examples/custom-components/src/components/ui/form.tsx +++ b/examples/custom-components/src/components/ui/form.tsx @@ -1,17 +1,34 @@ import * as React from "react"; +import { zodResolver } from "@hookform/resolvers/zod"; import type * as LabelPrimitive from "@radix-ui/react-label"; import { Slot } from "@radix-ui/react-slot"; import { Controller, FormProvider, useFormContext, + useForm as useFormHook, + UseFormProps, type ControllerProps, type FieldPath, type FieldValues, } from "react-hook-form"; +import { twMerge } from "tailwind-merge"; +import { ZodType } from "zod"; import { Label } from "~/components/ui/label"; -import { cn } from "~/lib/utils"; + +export const useForm = ( + props: Omit, "resolver"> & { + schema: TSchema; + }, +) => { + const form = useFormHook({ + ...props, + resolver: zodResolver(props.schema, undefined), + }); + + return form; +}; const Form = FormProvider; @@ -78,7 +95,7 @@ const FormItem = React.forwardRef< return ( -
+
); }); @@ -93,7 +110,7 @@ const FormLabel = React.forwardRef< return (
); diff --git a/packages/react/src/components/dropzone.tsx b/packages/react/src/components/dropzone.tsx index 5fbd32a0e..f426d5285 100644 --- a/packages/react/src/components/dropzone.tsx +++ b/packages/react/src/components/dropzone.tsx @@ -7,7 +7,6 @@ import { useDropzone } from "@uploadthing/dropzone/react"; import { allowedContentTextLabelGenerator, contentFieldToContent, - generateClientDropzoneAccept, generatePermittedFileTypes, resolveMaybeUrlArg, styleFieldToClassName, @@ -110,7 +109,7 @@ export function UploadDropzone< ); const uploadProgress = $props.__internal_upload_progress ?? uploadProgressState; - const { startUpload, isUploading, permittedFileInfo } = useUploadThing( + const { startUpload, isUploading, routeConfig } = useUploadThing( $props.endpoint, { files, @@ -132,9 +131,7 @@ export function UploadDropzone< }, ); - const { fileTypes, multiple } = generatePermittedFileTypes( - permittedFileInfo?.config, - ); + const { fileTypes, multiple } = generatePermittedFileTypes(routeConfig); const onDrop = useCallback( (acceptedFiles: File[]) => { @@ -152,8 +149,7 @@ export function UploadDropzone< const { getRootProps, getInputProps, isDragActive, rootRef } = useDropzone({ onDrop, - multiple, - accept: fileTypes ? generateClientDropzoneAccept(fileTypes) : undefined, + routeConfig, disabled: $props.__internal_dropzone_disabled, }); @@ -296,7 +292,7 @@ export function UploadDropzone< data-state={state} > {contentFieldToContent($props.content?.allowedContent, styleFieldArg) ?? - allowedContentTextLabelGenerator(permittedFileInfo?.config)} + allowedContentTextLabelGenerator(routeConfig)}
); diff --git a/packages/solid/src/components/dropzone.tsx b/packages/solid/src/components/dropzone.tsx index fc8da2af8..abfbcf27e 100644 --- a/packages/solid/src/components/dropzone.tsx +++ b/packages/solid/src/components/dropzone.tsx @@ -5,7 +5,6 @@ import { createDropzone } from "@uploadthing/dropzone/solid"; import { allowedContentTextLabelGenerator, contentFieldToContent, - generateClientDropzoneAccept, generatePermittedFileTypes, resolveMaybeUrlArg, styleFieldToClassName, @@ -113,16 +112,12 @@ export const UploadDropzone = < return; } }; - const fileInfo = () => - generatePermittedFileTypes(uploadThing.permittedFileInfo()?.config); + const fileInfo = () => generatePermittedFileTypes(uploadThing.routeConfig()); const { getRootProps, getInputProps, isDragActive } = createDropzone({ onDrop, - multiple: fileInfo().multiple, - get accept() { - return fileInfo().fileTypes - ? generateClientDropzoneAccept(fileInfo()?.fileTypes ?? []) - : undefined; + get routeConfig() { + return uploadThing.routeConfig(); }, }); @@ -208,9 +203,7 @@ export const UploadDropzone = < data-state={state()} > {contentFieldToContent($props.content?.allowedContent, styleFieldArg) ?? - allowedContentTextLabelGenerator( - uploadThing.permittedFileInfo()?.config, - )} + allowedContentTextLabelGenerator(uploadThing.routeConfig())}
{files().length > 0 && (

{/if} diff --git a/packages/svelte/src/lib/component/UploadDropzone.svelte b/packages/svelte/src/lib/component/UploadDropzone.svelte index d7aa9b72a..538f1cae4 100644 --- a/packages/svelte/src/lib/component/UploadDropzone.svelte +++ b/packages/svelte/src/lib/component/UploadDropzone.svelte @@ -75,7 +75,7 @@ const createUploadThing = INTERNAL_createUploadThingGen({ url: resolveMaybeUrlArg(uploader.url), }); - const { startUpload, isUploading, permittedFileInfo } = createUploadThing( + const { startUpload, isUploading, routeConfig } = createUploadThing( uploader.endpoint, { skipPolling: !uploader?.onClientUploadComplete @@ -99,7 +99,7 @@ $: ({ mode = "auto", appendOnPaste = false } = uploader.config ?? {}); $: uploadProgress = __internal_upload_progress ?? uploadProgress; $: ({ fileTypes, multiple } = generatePermittedFileTypes( - $permittedFileInfo?.config, + $routeConfig, )); $: ready = __internal_ready ?? (__internal_state === "ready" || fileTypes.length > 0); @@ -118,8 +118,7 @@ $: dropzoneOptions = { onDrop, - multiple, - accept: fileTypes ? generateClientDropzoneAccept(fileTypes) : undefined, + routeConfig: $routeConfig, disabled: __internal_dropzone_disabled, }; @@ -236,7 +235,7 @@ data-state={state} > - {allowedContentTextLabelGenerator($permittedFileInfo?.config)} + {allowedContentTextLabelGenerator($routeConfig)}
+
+        Form: {JSON.stringify(form.watch(), null, 4)}
+      
+
+        Errors: {JSON.stringify(form.formState.errors, null, 4)}
+      
); } diff --git a/examples/custom-components/src/app/rhf/page.tsx b/examples/custom-components/src/app/rhf/page.tsx new file mode 100644 index 000000000..bc3288942 --- /dev/null +++ b/examples/custom-components/src/app/rhf/page.tsx @@ -0,0 +1,5 @@ +import { SimpleRHFDemo } from "./simple-rhf"; + +export default function DemoPage() { + return ; +} diff --git a/examples/custom-components/src/app/rhf/simple-rhf.tsx b/examples/custom-components/src/app/rhf/simple-rhf.tsx new file mode 100644 index 000000000..9031acd57 --- /dev/null +++ b/examples/custom-components/src/app/rhf/simple-rhf.tsx @@ -0,0 +1,71 @@ +"use client"; + +import { toast } from "sonner"; +import { z } from "zod"; + +import { Button } from "~/components/ui/button"; +import { Form, FormField, FormItem, useForm } from "~/components/ui/form"; +import { UploadButton } from "~/uploadthing/client"; +import { fileWithStateValidator } from "~/utils"; + +/** + * A demo using RHF with built-in components from UT + */ +export const SimpleRHFDemo = () => { + const form = useForm({ + schema: z.object({ + images: fileWithStateValidator.array(), + }), + }); + + const onSubmit = form.handleSubmit((data) => { + toast( +
+        {JSON.stringify(data, null, 4)}
+      
, + ); + form.reset(); + }); + + const disabled = form + .getValues("images") + ?.some((f) => f.status !== "uploaded"); + + return ( +
+
+ + ( + + { + console.log("files", files); + return field.onChange(files); + }} + /> + + )} + /> + + + + +
+        Form: {JSON.stringify(form.watch(), null, 4)}
+      
+
+        Errors: {JSON.stringify(form.formState.errors, null, 4)}
+      
+
+ ); +}; diff --git a/examples/custom-components/src/components/file-uploader.tsx b/examples/custom-components/src/components/file-uploader.tsx index 3759e3eda..54fcfd94b 100644 --- a/examples/custom-components/src/components/file-uploader.tsx +++ b/examples/custom-components/src/components/file-uploader.tsx @@ -7,15 +7,17 @@ import { toast } from "sonner"; import { twMerge } from "tailwind-merge"; import { useDropzone } from "@uploadthing/react"; +import { FileWithState } from "@uploadthing/shared"; import { bytesToHumanReadable } from "uploadthing/client"; import { Button } from "~/components/ui/button"; import { Progress } from "~/components/ui/progress"; import { useUploadThing } from "~/uploadthing/client"; +import { LoadingSpinner } from "./ui/loading"; interface FileUploaderProps extends React.HTMLAttributes { - files: File[]; - onFilesChange: (files: File[]) => void; + files: FileWithState[]; + onFilesChange: (files: FileWithState[]) => void; } export function FileUploader({ @@ -24,17 +26,20 @@ export function FileUploader({ className, ...dropzoneProps }: FileUploaderProps) { - const { routeConfig, progresses, startUpload } = useUploadThing( - "imageUploader", - { - files, - onFilesChange, - skipPolling: true, + const [progresses, setProgresses] = React.useState(new Map()); + const { routeConfig, startUpload } = useUploadThing("imageUploader", { + files, + onFilesChange, + skipPolling: true, + onUploadError: (e) => console.error(e), + onUploadProgress: (_, e) => { + if (!e) return; + setProgresses((p) => new Map(p).set(e?.file, e?.progress)); }, - ); + }); const onDrop = React.useCallback( - (acceptedFiles: File[]) => { + async (acceptedFiles: FileWithState[]) => { const newFiles = acceptedFiles.map((file) => Object.assign(file, { preview: URL.createObjectURL(file), @@ -42,7 +47,8 @@ export function FileUploader({ ); const updatedFiles = files ? [...files, ...newFiles] : newFiles; - onFilesChange?.(updatedFiles); + onFilesChange(updatedFiles); + await startUpload(updatedFiles); }, [files], ); @@ -129,12 +135,12 @@ export function FileUploader({ } interface FileCardProps { - file: File; + file: FileWithState; onRemove: () => void; progress?: number; } -function FileCard({ file, progress, onRemove }: FileCardProps) { +function FileCard({ file, progress = 0, onRemove }: FileCardProps) { return (
@@ -149,18 +155,26 @@ function FileCard({ file, progress, onRemove }: FileCardProps) { /> ) : null}
-
-

- {file.name} -

-

- {bytesToHumanReadable(file.size)} -

+
+
+

+ {file.name} +

+

+ {bytesToHumanReadable(file.size)} +

+
+ {file.status === "uploading" && ( +
+ {progress < 100 ? : null} + {progress}% +
+ )}
-
+ {file.status === "pending" && ( -
+ )}
); } diff --git a/examples/custom-components/src/components/ui/loading.tsx b/examples/custom-components/src/components/ui/loading.tsx index a5053813e..089fd1371 100644 --- a/examples/custom-components/src/components/ui/loading.tsx +++ b/examples/custom-components/src/components/ui/loading.tsx @@ -39,3 +39,35 @@ export function LoadingDots(props: ComponentProps<"svg">) { ); } + +export function LoadingSpinner( + props: ComponentProps<"div"> & { size?: number }, +) { + const { size = 30 } = props; + + return ( +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ); +} diff --git a/examples/custom-components/src/uploadthing/client.ts b/examples/custom-components/src/uploadthing/client.ts index 24b5885e0..e8202f405 100644 --- a/examples/custom-components/src/uploadthing/client.ts +++ b/examples/custom-components/src/uploadthing/client.ts @@ -1,6 +1,7 @@ -import { generateReactHelpers } from "@uploadthing/react"; +import { generateReactHelpers, generateUploadButton } from "@uploadthing/react"; import type { UploadRouter } from "~/uploadthing/server"; +export const UploadButton = generateUploadButton(); export const { useUploadThing, uploadFiles } = generateReactHelpers(); diff --git a/examples/custom-components/src/utils.ts b/examples/custom-components/src/utils.ts new file mode 100644 index 000000000..1430dcaa0 --- /dev/null +++ b/examples/custom-components/src/utils.ts @@ -0,0 +1,8 @@ +import { z } from "zod"; + +import { FileWithState } from "@uploadthing/shared"; + +export const fileWithStateValidator = z.custom((value) => { + if (!(value instanceof File)) return false; + return "status" in value && "url" in value; +}); diff --git a/packages/dropzone/src/core.ts b/packages/dropzone/src/core.ts index 5bcad4a2f..57577a48f 100644 --- a/packages/dropzone/src/core.ts +++ b/packages/dropzone/src/core.ts @@ -5,7 +5,7 @@ * The original package is licensed under the MIT license. */ -import type { ExpandedRouteConfig } from "@uploadthing/shared"; +import type { ExpandedRouteConfig, FileWithState } from "@uploadthing/shared"; import { fileSizeToBytes, generateClientDropzoneAccept, @@ -218,7 +218,7 @@ export const initialState = { isDragActive: false, isDragAccept: false, isDragReject: false, - acceptedFiles: [] as File[], + acceptedFiles: [] as FileWithState[], }; export function reducer( diff --git a/packages/dropzone/src/react.tsx b/packages/dropzone/src/react.tsx index 70b5d8607..c8943f962 100644 --- a/packages/dropzone/src/react.tsx +++ b/packages/dropzone/src/react.tsx @@ -15,6 +15,8 @@ import type { import { useCallback, useEffect, useMemo, useReducer, useRef } from "react"; import { fromEvent } from "file-selector"; +import type { FileWithState } from "@uploadthing/shared"; + import { allFilesAccepted, initialState, @@ -203,14 +205,18 @@ export function useDropzone({ const setFiles = useCallback( (files: File[]) => { - const acceptedFiles: File[] = []; + const acceptedFiles: FileWithState[] = []; files.forEach((file) => { const accepted = isFileAccepted(file, accept); const sizeMatch = isValidSize(file, minSize, maxSize); if (accepted && sizeMatch) { - acceptedFiles.push(file); + const fileWithState: FileWithState = Object.assign(file, { + status: "pending" as const, + url: null, + }); + acceptedFiles.push(fileWithState); } }); @@ -241,7 +247,16 @@ export function useDropzone({ Promise.resolve(fromEvent(event)) .then((files) => { if (event.isPropagationStopped()) return; - setFiles(files as File[]); + + console.log("files in onDrop", files); + + const filesWithState = (files as File[]).map((file) => + Object.assign(file, { + status: "pending" as const, + url: null, + }), + ); + setFiles(filesWithState); }) .catch(noop); } diff --git a/packages/dropzone/src/solid.tsx b/packages/dropzone/src/solid.tsx index 4a2f9de07..cd4189368 100644 --- a/packages/dropzone/src/solid.tsx +++ b/packages/dropzone/src/solid.tsx @@ -192,9 +192,10 @@ export function createDropzone(_props: DropzoneOptions) { } setState({ + // @ts-expect-error - FIXME LATER acceptedFiles, }); - + // @ts-expect-error - FIXME LATER props.onDrop?.(acceptedFiles); }; diff --git a/packages/dropzone/src/svelte.ts b/packages/dropzone/src/svelte.ts index 773eac5c3..91a898c89 100644 --- a/packages/dropzone/src/svelte.ts +++ b/packages/dropzone/src/svelte.ts @@ -206,10 +206,11 @@ export function createDropzone(_props: DropzoneOptions) { dispatch({ type: "setFiles", payload: { + // @ts-expect-error - FIXME LATER acceptedFiles, }, }); - + // @ts-expect-error - FIXME LATER get(props).onDrop(acceptedFiles); }; diff --git a/packages/dropzone/src/types.ts b/packages/dropzone/src/types.ts index cd0abf55d..7a7d2e789 100644 --- a/packages/dropzone/src/types.ts +++ b/packages/dropzone/src/types.ts @@ -1,4 +1,4 @@ -import type { ExpandedRouteConfig } from "@uploadthing/shared"; +import type { ExpandedRouteConfig, FileWithState } from "@uploadthing/shared"; export type AcceptProp = Record; @@ -6,7 +6,7 @@ export type DropzoneOptions = { routeConfig: ExpandedRouteConfig | undefined; minSize?: number; disabled?: boolean; - onDrop: (acceptedFiles: T[]) => void; + onDrop: (acceptedFiles: FileWithState[]) => void; }; export type DropzoneState = { @@ -15,5 +15,5 @@ export type DropzoneState = { isDragAccept: boolean; isDragReject: boolean; isFileDialogActive: boolean; - acceptedFiles: File[]; + acceptedFiles: FileWithState[]; }; diff --git a/packages/react/src/components/button.tsx b/packages/react/src/components/button.tsx index f64b3469b..5fb4e98bc 100644 --- a/packages/react/src/components/button.tsx +++ b/packages/react/src/components/button.tsx @@ -117,6 +117,8 @@ export function UploadButton< routeConfig, getInputProps, } = useUploadThing($props.endpoint, { + files: $props.files, + onFilesChange: $props.onFilesChange, headers: $props.headers, skipPolling: !$props?.onClientUploadComplete ? true : $props?.skipPolling, onClientUploadComplete: (res) => { @@ -126,9 +128,9 @@ export function UploadButton< $props.onClientUploadComplete?.(res); setUploadProgress(0); }, - onUploadProgress: (p) => { + onUploadProgress: (p, e) => { setUploadProgress(p); - $props.onUploadProgress?.(p); + $props.onUploadProgress?.(p, e); }, onUploadError: $props.onUploadError, onUploadBegin: $props.onUploadBegin, diff --git a/packages/react/src/components/dropzone.tsx b/packages/react/src/components/dropzone.tsx index db59d62ea..84f1ae235 100644 --- a/packages/react/src/components/dropzone.tsx +++ b/packages/react/src/components/dropzone.tsx @@ -16,6 +16,7 @@ import { import type { ContentField, ErrorMessage, + FileWithState, StyleField, } from "@uploadthing/shared"; import type { FileRouter } from "uploadthing/types"; @@ -103,7 +104,7 @@ export function UploadDropzone< url: resolveMaybeUrlArg($props.url), }); - const [files, setFiles] = useState([]); + const [files, setFiles] = useState([]); const [uploadProgressState, setUploadProgress] = useState( $props.__internal_upload_progress ?? 0, @@ -122,9 +123,9 @@ export function UploadDropzone< $props.onClientUploadComplete?.(res); setUploadProgress(0); }, - onUploadProgress: (p) => { + onUploadProgress: (p, e) => { setUploadProgress(p); - $props.onUploadProgress?.(p); + $props.onUploadProgress?.(p, e); }, onUploadError: $props.onUploadError, onUploadBegin: $props.onUploadBegin, @@ -136,7 +137,11 @@ export function UploadDropzone< const onDrop = useCallback( (acceptedFiles: File[]) => { - setFiles(acceptedFiles); + setFiles( + acceptedFiles.map((file) => + Object.assign(file, { status: "pending" as const, url: null }), + ), + ); // If mode is auto, start upload immediately if (mode === "auto") { diff --git a/packages/react/src/hooks/use-uploadthing.ts b/packages/react/src/hooks/use-uploadthing.ts index 730818681..972d8c429 100644 --- a/packages/react/src/hooks/use-uploadthing.ts +++ b/packages/react/src/hooks/use-uploadthing.ts @@ -29,7 +29,6 @@ import type { UseUploadthingProps, } from "../types"; import { useControllableState } from "./use-controllable-state"; -import { useEvent } from "./use-event"; import useFetch from "./use-fetch"; declare const globalThis: { @@ -82,8 +81,11 @@ export const INTERNAL_uploadthingHookGen = < onChange: opts?.onFilesChange, defaultProp: [], }); + + console.log("[TOP LEVEL HOOK] files", files); + const [isUploading, setUploading] = useState(false); - const [progresses, setProgresses] = useState(new Map()); + const progresses = useRef(new Map()); const totalProgress = useRef(0); const routeConfig = useRouteConfig(initOpts.url, endpoint as string); @@ -95,66 +97,86 @@ export const INTERNAL_uploadthingHookGen = < ? [files: File[], input?: undefined] : [files: File[], input: InferredInput]; - const startUpload = useEvent(async (...args: FuncInput) => { - const filesToUpload = - (await opts?.onBeforeUploadBegin?.(args[0])) ?? args[0]; - const input = args[1]; - - setUploading(true); - opts?.onUploadProgress?.(0); - try { - const res = await uploadFiles(endpoint, { - headers: opts?.headers, - files: filesToUpload, - skipPolling: opts?.skipPolling, - onUploadProgress: (progress) => { - // Update progress for the file that triggered the event - setProgresses((p) => - new Map(p).set(progress.file, progress.progress), - ); - - // Update total progress - let sum = 0; - progresses.forEach((p) => (sum += p)); + const startUpload = useCallback( + async (...args: FuncInput) => { + const filesToUpload = + (await opts?.onBeforeUploadBegin?.(args[0])) ?? args[0]; + const input = args[1]; - if (!opts?.onUploadProgress) return; - // Run callback on 10, 20, 30, 40... - const even10 = Math.floor(sum / progresses.size / 10) * 10; - if (even10 !== totalProgress.current) { - opts?.onUploadProgress?.(even10); - totalProgress.current = even10; - } - }, - onUploadBegin({ file }) { - if (!opts?.onUploadBegin) return; - - opts.onUploadBegin(file); - }, - // @ts-expect-error - input may not be defined on the type - input, - }); - - setFiles([]); - opts?.onClientUploadComplete?.(res); - return res; - } catch (e) { - let error: UploadThingError>; - if (e instanceof UploadThingError) { - error = e as UploadThingError>; - } else { - error = INTERNAL_DO_NOT_USE__fatalClientError(e as Error); - console.error( - "Something went wrong. Please contact UploadThing and provide the following cause:", - error.cause instanceof Error ? error.cause.toString() : error.cause, + setUploading(true); + for (const file of filesToUpload) { + progresses.current.set(file.name, 0); + } + opts?.onUploadProgress?.(0, undefined); + try { + const res = await uploadFiles(endpoint, { + headers: opts?.headers, + files: filesToUpload, + skipPolling: opts?.skipPolling, + onUploadProgress: (progress) => { + // Update progress for the file that triggered the event + progresses.current.set(progress.file, progress.progress); + + // Update total progress + let sum = 0; + progresses.current.forEach((p) => (sum += p)); + + // Run callback on 10, 20, 30, 40... + const even10 = + Math.floor(sum / progresses.current.size / 10) * 10; + if (even10 !== totalProgress.current) { + totalProgress.current = even10; + opts?.onUploadProgress?.(even10, progress); + } + }, + onUploadComplete: (res) => { + console.log("onUploadComplete", res); + progresses.current.delete(res.name); + + let sum = 0; + progresses.current.forEach((p) => (sum += p)); + }, + onUploadBegin({ file }) { + if (!opts?.onUploadBegin) return; + + opts.onUploadBegin(file); + }, + // @ts-expect-error - input may not be defined on the type + input, + }); + + setFiles( + filesToUpload.map((file, index) => + Object.assign(file, { + status: "uploaded" as const, + url: res[index].url, + }), + ), ); + opts?.onClientUploadComplete?.(res); + return res; + } catch (e) { + let error: UploadThingError>; + if (e instanceof UploadThingError) { + error = e as UploadThingError>; + } else { + error = INTERNAL_DO_NOT_USE__fatalClientError(e as Error); + console.error( + "Something went wrong. Please contact UploadThing and provide the following cause:", + error.cause instanceof Error + ? error.cause.toString() + : error.cause, + ); + } + opts?.onUploadError?.(error); + } finally { + setUploading(false); + // setProgresses(new Map()); + // totalProgress.current = 0; } - opts?.onUploadError?.(error); - } finally { - setUploading(false); - setProgresses(new Map()); - totalProgress.current = 0; - } - }); + }, + [endpoint, opts, progresses, setFiles], + ); const getInputProps = useCallback( (opts?: { @@ -179,13 +201,18 @@ export const INTERNAL_uploadthingHookGen = < if (!e.target.files) return; const selectedFiles = Array.from(e.target.files); - if (mode === "manual") { - setFiles(selectedFiles); - return; - } + const filesWithState = selectedFiles.map((file) => + Object.assign(file, { + status: "pending" as const, + url: null, + }), + ); + setFiles(filesWithState); - const input = undefined; // how to get input? - void startUpload(selectedFiles, input); + if (mode === "auto") { + const input = undefined; // how to get input? + void startUpload(selectedFiles, input); + } }, }; }, diff --git a/packages/react/src/types.ts b/packages/react/src/types.ts index 1d5fee377..29eec0f8d 100644 --- a/packages/react/src/types.ts +++ b/packages/react/src/types.ts @@ -1,5 +1,6 @@ import type { ExtendObjectIf, + FileWithState, MaybePromise, UploadThingError, } from "@uploadthing/shared"; @@ -35,11 +36,11 @@ export type UseUploadthingProps< /** * Controllable state for the files to upload */ - files?: File[]; + files?: FileWithState[]; /** * Called when the files are changed */ - onFilesChange?: (files: File[]) => void; + onFilesChange?: (files: FileWithState[]) => void; /** * Called when the upload is submitted and the server is about to be queried for presigned URLs * Can be used to modify the files before they are uploaded, e.g. renaming them @@ -52,7 +53,17 @@ export type UseUploadthingProps< /** * Called continuously as the file is uploaded to the storage provider */ - onUploadProgress?: (p: number) => void; + onUploadProgress?: ( + /** + * The overall progress of the upload + */ + p: number, + /** + * The event that triggered the progress update + * with the filename and that file's progress + */ + e: { file: string; progress: number } | undefined, + ) => void; /** * Skip polling for server data after upload is complete * Useful if you want faster response times and don't need diff --git a/packages/shared/src/component-utils.ts b/packages/shared/src/component-utils.ts index 910192f42..ce94b7622 100644 --- a/packages/shared/src/component-utils.ts +++ b/packages/shared/src/component-utils.ts @@ -163,14 +163,34 @@ export const contentFieldToContent = ( } }; +export type FileWithState = File & + ( + | { + status: "pending" | "uploading"; + url: null; + } + | { + status: "uploaded"; + url: string; + } + ); + export function getFilesFromClipboardEvent(event: ClipboardEvent) { const dataTransferItems = event.clipboardData?.items; if (!dataTransferItems) return; - const files = Array.from(dataTransferItems).reduce((acc, curr) => { - const f = curr.getAsFile(); - return f ? [...acc, f] : acc; - }, []); + const files = Array.from(dataTransferItems).reduce( + (acc, curr) => { + const f = curr.getAsFile(); + if (!f) return acc; + const fileWithState = Object.assign(f, { + status: "pending" as const, + url: null, + }); + return [...acc, fileWithState]; + }, + [], + ); return files; } diff --git a/packages/uploadthing/src/client.ts b/packages/uploadthing/src/client.ts index 3dbecc8f6..3fefb0ba5 100644 --- a/packages/uploadthing/src/client.ts +++ b/packages/uploadthing/src/client.ts @@ -117,8 +117,7 @@ const uploadFilesInternal = async < return res.status === "done" ? res.callbackData : undefined; }); } - - return { + const res: ClientUploadedFileData = { name: file.name, size: file.size, type: file.type, @@ -128,6 +127,11 @@ const uploadFilesInternal = async < serverData: serverData as any, customId: presigned.customId, }; + console.log("calling onUploadComplete", res); + // eslint-disable-next-line @typescript-eslint/no-unsafe-argument + opts.onUploadComplete?.(res as any); + + return res; }); return Promise.all(fileUploadPromises); diff --git a/packages/uploadthing/src/types.ts b/packages/uploadthing/src/types.ts index 12b3d5311..51ad8058a 100644 --- a/packages/uploadthing/src/types.ts +++ b/packages/uploadthing/src/types.ts @@ -1,6 +1,10 @@ import type { ExtendObjectIf, MaybePromise } from "@uploadthing/shared"; -import type { FileRouter, inferEndpointInput } from "./internal/types"; +import type { + FileRouter, + inferEndpointInput, + inferEndpointOutput, +} from "./internal/types"; export type { inferEndpointInput, @@ -15,6 +19,9 @@ export type UploadFilesOptions< TRouter extends FileRouter, TEndpoint extends keyof TRouter, TSkipPolling extends boolean = false, + TServerOutput = false extends TSkipPolling + ? inferEndpointOutput + : null, > = { /** * The files to upload @@ -35,6 +42,10 @@ export type UploadFilesOptions< * @default false */ skipPolling?: TSkipPolling; + /** + * Called when the upload is complete + */ + onUploadComplete?: (res: ClientUploadedFileData) => void; /** * URL to the UploadThing API endpoint * @example URL { http://localhost:3000/api/uploadthing } From c0c15c47b63a0b7e254c6aef891eb2c6632cc0f0 Mon Sep 17 00:00:00 2001 From: juliusmarminge Date: Mon, 15 Apr 2024 22:41:26 +0200 Subject: [PATCH 22/50] rhf tests --- .../src/app/{rhf => rhf-builtin}/page.tsx | 0 .../app/{rhf => rhf-builtin}/simple-rhf.tsx | 15 +-- .../src/app/rhf-custom/page.tsx | 5 + .../app/rhf-custom/rhf-custom-dropzone.tsx | 109 ++++++++++++++++++ .../src/uploadthing/client.ts | 7 +- examples/custom-components/src/utils.ts | 2 +- packages/dropzone/src/react.tsx | 4 +- packages/react/src/components/dropzone.tsx | 60 ++++------ packages/react/src/hooks/use-uploadthing.ts | 4 +- packages/shared/src/component-utils.ts | 10 +- 10 files changed, 161 insertions(+), 55 deletions(-) rename examples/custom-components/src/app/{rhf => rhf-builtin}/page.tsx (100%) rename examples/custom-components/src/app/{rhf => rhf-builtin}/simple-rhf.tsx (87%) create mode 100644 examples/custom-components/src/app/rhf-custom/page.tsx create mode 100644 examples/custom-components/src/app/rhf-custom/rhf-custom-dropzone.tsx diff --git a/examples/custom-components/src/app/rhf/page.tsx b/examples/custom-components/src/app/rhf-builtin/page.tsx similarity index 100% rename from examples/custom-components/src/app/rhf/page.tsx rename to examples/custom-components/src/app/rhf-builtin/page.tsx diff --git a/examples/custom-components/src/app/rhf/simple-rhf.tsx b/examples/custom-components/src/app/rhf-builtin/simple-rhf.tsx similarity index 87% rename from examples/custom-components/src/app/rhf/simple-rhf.tsx rename to examples/custom-components/src/app/rhf-builtin/simple-rhf.tsx index 9031acd57..ace4b606e 100644 --- a/examples/custom-components/src/app/rhf/simple-rhf.tsx +++ b/examples/custom-components/src/app/rhf-builtin/simple-rhf.tsx @@ -5,7 +5,7 @@ import { z } from "zod"; import { Button } from "~/components/ui/button"; import { Form, FormField, FormItem, useForm } from "~/components/ui/form"; -import { UploadButton } from "~/uploadthing/client"; +import { UploadDropzone } from "~/uploadthing/client"; import { fileWithStateValidator } from "~/utils"; /** @@ -16,6 +16,7 @@ export const SimpleRHFDemo = () => { schema: z.object({ images: fileWithStateValidator.array(), }), + mode: "onChange", }); const onSubmit = form.handleSubmit((data) => { @@ -27,10 +28,6 @@ export const SimpleRHFDemo = () => { form.reset(); }); - const disabled = form - .getValues("images") - ?.some((f) => f.status !== "uploaded"); - return (
@@ -43,7 +40,7 @@ export const SimpleRHFDemo = () => { name="images" render={({ field }) => ( - { @@ -55,7 +52,11 @@ export const SimpleRHFDemo = () => { )} /> - diff --git a/examples/custom-components/src/app/rhf-custom/page.tsx b/examples/custom-components/src/app/rhf-custom/page.tsx new file mode 100644 index 000000000..f5f7e8107 --- /dev/null +++ b/examples/custom-components/src/app/rhf-custom/page.tsx @@ -0,0 +1,5 @@ +import { SimpleRHFDemo } from "./rhf-custom-dropzone"; + +export default function DemoPage() { + return ; +} diff --git a/examples/custom-components/src/app/rhf-custom/rhf-custom-dropzone.tsx b/examples/custom-components/src/app/rhf-custom/rhf-custom-dropzone.tsx new file mode 100644 index 000000000..1b4287926 --- /dev/null +++ b/examples/custom-components/src/app/rhf-custom/rhf-custom-dropzone.tsx @@ -0,0 +1,109 @@ +"use client"; + +import { UploadIcon } from "@radix-ui/react-icons"; +import { toast } from "sonner"; +import { twMerge } from "tailwind-merge"; +import { z } from "zod"; + +import { useDropzone } from "@uploadthing/react"; + +import { Button } from "~/components/ui/button"; +import { Form, FormField, FormItem, useForm } from "~/components/ui/form"; +import { useUploadThing } from "~/uploadthing/client"; +import { fileWithStateValidator } from "~/utils"; + +/** + * A demo using RHF with built-in components from UT + */ +export const SimpleRHFDemo = () => { + const form = useForm({ + schema: z.object({ + images: fileWithStateValidator.array(), + }), + }); + + const { routeConfig, startUpload } = useUploadThing("imageUploader", { + files: form.getValues("images"), + onFilesChange: (files) => { + form.setValue("images", files, { shouldValidate: true }); + }, + }); + const { getRootProps, getInputProps, isDragActive } = useDropzone({ + routeConfig, + onDrop: (files) => { + const updatedFiles = [...form.getValues("images"), ...files]; + form.setValue("images", updatedFiles); + startUpload(updatedFiles); + }, + }); + + const onSubmit = form.handleSubmit((data) => { + toast( +
+        {JSON.stringify(data, null, 4)}
+      
, + ); + form.reset(); + }); + + return ( +
+
+ + ( + +
+ +
+
+
+
+

+ Drag {`'n'`} drop files here, or click to select files +

+

+ You can upload:{" "} + {Object.keys(routeConfig ?? {}).join(", ")} +

+
+
+
+
+ )} + /> + + + + +
+        Form: {JSON.stringify(form.watch(), null, 4)}
+      
+
+        formstate: {JSON.stringify(form.formState, null, 4)}
+      
+
+ ); +}; diff --git a/examples/custom-components/src/uploadthing/client.ts b/examples/custom-components/src/uploadthing/client.ts index e8202f405..9286533db 100644 --- a/examples/custom-components/src/uploadthing/client.ts +++ b/examples/custom-components/src/uploadthing/client.ts @@ -1,7 +1,10 @@ -import { generateReactHelpers, generateUploadButton } from "@uploadthing/react"; +import { + generateReactHelpers, + generateUploadDropzone, +} from "@uploadthing/react"; import type { UploadRouter } from "~/uploadthing/server"; -export const UploadButton = generateUploadButton(); +export const UploadDropzone = generateUploadDropzone(); export const { useUploadThing, uploadFiles } = generateReactHelpers(); diff --git a/examples/custom-components/src/utils.ts b/examples/custom-components/src/utils.ts index 1430dcaa0..aa36a56ae 100644 --- a/examples/custom-components/src/utils.ts +++ b/examples/custom-components/src/utils.ts @@ -4,5 +4,5 @@ import { FileWithState } from "@uploadthing/shared"; export const fileWithStateValidator = z.custom((value) => { if (!(value instanceof File)) return false; - return "status" in value && "url" in value; + return "status" in value && value.status === "uploaded"; }); diff --git a/packages/dropzone/src/react.tsx b/packages/dropzone/src/react.tsx index c8943f962..30fd2e346 100644 --- a/packages/dropzone/src/react.tsx +++ b/packages/dropzone/src/react.tsx @@ -214,7 +214,7 @@ export function useDropzone({ if (accepted && sizeMatch) { const fileWithState: FileWithState = Object.assign(file, { status: "pending" as const, - url: null, + key: null, }); acceptedFiles.push(fileWithState); } @@ -253,7 +253,7 @@ export function useDropzone({ const filesWithState = (files as File[]).map((file) => Object.assign(file, { status: "pending" as const, - url: null, + key: null, }), ); setFiles(filesWithState); diff --git a/packages/react/src/components/dropzone.tsx b/packages/react/src/components/dropzone.tsx index 84f1ae235..f2dcc4b1e 100644 --- a/packages/react/src/components/dropzone.tsx +++ b/packages/react/src/components/dropzone.tsx @@ -1,6 +1,6 @@ "use client"; -import { useCallback, useEffect, useState } from "react"; +import { useCallback, useState } from "react"; import { twMerge } from "tailwind-merge"; import { useDropzone } from "@uploadthing/dropzone/react"; @@ -16,11 +16,11 @@ import { import type { ContentField, ErrorMessage, - FileWithState, StyleField, } from "@uploadthing/shared"; import type { FileRouter } from "uploadthing/types"; +import { usePaste } from "../hooks/use-paste"; import { INTERNAL_uploadthingHookGen } from "../hooks/use-uploadthing"; import type { UploadthingComponentProps } from "../types"; import { progressWidths, Spinner } from "./shared"; @@ -104,22 +104,18 @@ export function UploadDropzone< url: resolveMaybeUrlArg($props.url), }); - const [files, setFiles] = useState([]); - const [uploadProgressState, setUploadProgress] = useState( $props.__internal_upload_progress ?? 0, ); const uploadProgress = $props.__internal_upload_progress ?? uploadProgressState; - const { startUpload, isUploading, routeConfig } = useUploadThing( - $props.endpoint, - { - files, - onFilesChange: setFiles, + const { files, setFiles, startUpload, isUploading, routeConfig } = + useUploadThing($props.endpoint, { + files: $props.files, + onFilesChange: $props.onFilesChange, headers: $props.headers, skipPolling: !$props?.onClientUploadComplete ? true : $props?.skipPolling, onClientUploadComplete: (res) => { - setFiles([]); $props.onClientUploadComplete?.(res); setUploadProgress(0); }, @@ -130,8 +126,7 @@ export function UploadDropzone< onUploadError: $props.onUploadError, onUploadBegin: $props.onUploadBegin, onBeforeUploadBegin: $props.onBeforeUploadBegin, - }, - ); + }); const { fileTypes, multiple } = generatePermittedFileTypes(routeConfig); @@ -139,7 +134,7 @@ export function UploadDropzone< (acceptedFiles: File[]) => { setFiles( acceptedFiles.map((file) => - Object.assign(file, { status: "pending" as const, url: null }), + Object.assign(file, { status: "pending" as const, key: null }), ), ); @@ -150,7 +145,7 @@ export function UploadDropzone< return; } }, - [$props, mode, startUpload], + [$props, mode, startUpload, setFiles], ); const { getRootProps, getInputProps, isDragActive, rootRef } = useDropzone({ @@ -174,31 +169,24 @@ export function UploadDropzone< void startUpload(files, input); }; - useEffect(() => { - const handlePaste = (event: ClipboardEvent) => { - if (!appendOnPaste) return; - if (document.activeElement !== rootRef.current) return; + usePaste((event) => { + if (!appendOnPaste) return; + if (document.activeElement !== rootRef.current) return; - const pastedFiles = getFilesFromClipboardEvent(event); - if (!pastedFiles?.length) return; + const pastedFiles = getFilesFromClipboardEvent(event); + if (!pastedFiles?.length) return; - let filesToUpload = pastedFiles; - setFiles((prev) => { - filesToUpload = [...prev, ...pastedFiles]; - return filesToUpload; - }); + let filesToUpload = pastedFiles; + setFiles((prev) => { + filesToUpload = [...prev, ...pastedFiles]; + return filesToUpload; + }); - if (mode === "auto") { - const input = "input" in $props ? $props.input : undefined; - void startUpload(filesToUpload, input); - } - }; - - window.addEventListener("paste", handlePaste); - return () => { - window.removeEventListener("paste", handlePaste); - }; - }, [startUpload, $props, appendOnPaste, mode, fileTypes, rootRef, files]); + if (mode === "auto") { + const input = "input" in $props ? $props.input : undefined; + void startUpload(filesToUpload, input); + } + }); const getUploadButtonText = (fileTypes: string[]) => { if (files.length > 0) diff --git a/packages/react/src/hooks/use-uploadthing.ts b/packages/react/src/hooks/use-uploadthing.ts index 972d8c429..b3840b970 100644 --- a/packages/react/src/hooks/use-uploadthing.ts +++ b/packages/react/src/hooks/use-uploadthing.ts @@ -149,7 +149,7 @@ export const INTERNAL_uploadthingHookGen = < filesToUpload.map((file, index) => Object.assign(file, { status: "uploaded" as const, - url: res[index].url, + key: res[index].key, }), ), ); @@ -204,7 +204,7 @@ export const INTERNAL_uploadthingHookGen = < const filesWithState = selectedFiles.map((file) => Object.assign(file, { status: "pending" as const, - url: null, + key: null, }), ); setFiles(filesWithState); diff --git a/packages/shared/src/component-utils.ts b/packages/shared/src/component-utils.ts index ce94b7622..78bbb33c0 100644 --- a/packages/shared/src/component-utils.ts +++ b/packages/shared/src/component-utils.ts @@ -166,12 +166,12 @@ export const contentFieldToContent = ( export type FileWithState = File & ( | { - status: "pending" | "uploading"; - url: null; + status: "pending"; + key: null; } | { - status: "uploaded"; - url: string; + status: "uploading" | "uploaded"; + key: string; } ); @@ -185,7 +185,7 @@ export function getFilesFromClipboardEvent(event: ClipboardEvent) { if (!f) return acc; const fileWithState = Object.assign(f, { status: "pending" as const, - url: null, + key: null, }); return [...acc, fileWithState]; }, From fa3d69bc8b6395d04f3921e627a0ab067bf94459 Mon Sep 17 00:00:00 2001 From: juliusmarminge Date: Mon, 15 Apr 2024 23:11:35 +0200 Subject: [PATCH 23/50] break out --- .../app/rhf-custom/rhf-custom-dropzone.tsx | 110 +++++++++++------- 1 file changed, 67 insertions(+), 43 deletions(-) diff --git a/examples/custom-components/src/app/rhf-custom/rhf-custom-dropzone.tsx b/examples/custom-components/src/app/rhf-custom/rhf-custom-dropzone.tsx index 1b4287926..0f67fa32a 100644 --- a/examples/custom-components/src/app/rhf-custom/rhf-custom-dropzone.tsx +++ b/examples/custom-components/src/app/rhf-custom/rhf-custom-dropzone.tsx @@ -6,35 +6,79 @@ import { twMerge } from "tailwind-merge"; import { z } from "zod"; import { useDropzone } from "@uploadthing/react"; +import { FileWithState } from "@uploadthing/shared"; import { Button } from "~/components/ui/button"; -import { Form, FormField, FormItem, useForm } from "~/components/ui/form"; +import { + Form, + FormControl, + FormField, + FormItem, + FormLabel, + useForm, +} from "~/components/ui/form"; import { useUploadThing } from "~/uploadthing/client"; import { fileWithStateValidator } from "~/utils"; +const MyDropzone = (props: { + files: FileWithState[]; + onFilesChange: (files: FileWithState[]) => void; +}) => { + const { routeConfig, startUpload } = useUploadThing("imageUploader", { + files: props.files, + onFilesChange: props.onFilesChange, + }); + const { getRootProps, getInputProps, isDragActive } = useDropzone({ + routeConfig, + onDrop: (files) => { + const updatedFiles = [...props.files, ...files]; + props.onFilesChange(updatedFiles); + startUpload(updatedFiles); + }, + }); + + return ( +
+ +
+
+
+
+

+ Drag {`'n'`} drop files here, or click to select files +

+

+ You can upload: {Object.keys(routeConfig ?? {}).join(", ")} +

+
+
+
+ ); +}; + /** - * A demo using RHF with built-in components from UT + * A demo using RHF with a custom dropzone components */ export const SimpleRHFDemo = () => { const form = useForm({ schema: z.object({ images: fileWithStateValidator.array(), }), - }); - - const { routeConfig, startUpload } = useUploadThing("imageUploader", { - files: form.getValues("images"), - onFilesChange: (files) => { - form.setValue("images", files, { shouldValidate: true }); - }, - }); - const { getRootProps, getInputProps, isDragActive } = useDropzone({ - routeConfig, - onDrop: (files) => { - const updatedFiles = [...form.getValues("images"), ...files]; - form.setValue("images", updatedFiles); - startUpload(updatedFiles); + defaultValues: { + images: [], }, + mode: "onChange", }); const onSubmit = form.handleSubmit((data) => { @@ -58,33 +102,13 @@ export const SimpleRHFDemo = () => { name="images" render={({ field }) => ( -
- -
-
-
-
-

- Drag {`'n'`} drop files here, or click to select files -

-

- You can upload:{" "} - {Object.keys(routeConfig ?? {}).join(", ")} -

-
-
-
+ Images + + +
)} /> From 6839f2f9727db665ea616427559c0dbe6b2e47ea Mon Sep 17 00:00:00 2001 From: juliusmarminge Date: Mon, 15 Apr 2024 23:12:27 +0200 Subject: [PATCH 24/50] check dirty --- examples/custom-components/src/app/rhf-builtin/simple-rhf.tsx | 2 +- .../src/app/rhf-custom/rhf-custom-dropzone.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/custom-components/src/app/rhf-builtin/simple-rhf.tsx b/examples/custom-components/src/app/rhf-builtin/simple-rhf.tsx index ace4b606e..f99c25158 100644 --- a/examples/custom-components/src/app/rhf-builtin/simple-rhf.tsx +++ b/examples/custom-components/src/app/rhf-builtin/simple-rhf.tsx @@ -55,7 +55,7 @@ export const SimpleRHFDemo = () => { diff --git a/examples/custom-components/src/app/rhf-custom/rhf-custom-dropzone.tsx b/examples/custom-components/src/app/rhf-custom/rhf-custom-dropzone.tsx index 0f67fa32a..960bfc5a9 100644 --- a/examples/custom-components/src/app/rhf-custom/rhf-custom-dropzone.tsx +++ b/examples/custom-components/src/app/rhf-custom/rhf-custom-dropzone.tsx @@ -116,7 +116,7 @@ export const SimpleRHFDemo = () => { From 21767896af5282e9c54ebe8dcf0ad89662463849 Mon Sep 17 00:00:00 2001 From: juliusmarminge Date: Mon, 15 Apr 2024 23:13:17 +0200 Subject: [PATCH 25/50] skippolling --- examples/custom-components/src/app/rhf-builtin/simple-rhf.tsx | 1 + .../custom-components/src/app/rhf-custom/rhf-custom-dropzone.tsx | 1 + 2 files changed, 2 insertions(+) diff --git a/examples/custom-components/src/app/rhf-builtin/simple-rhf.tsx b/examples/custom-components/src/app/rhf-builtin/simple-rhf.tsx index f99c25158..4ee24209c 100644 --- a/examples/custom-components/src/app/rhf-builtin/simple-rhf.tsx +++ b/examples/custom-components/src/app/rhf-builtin/simple-rhf.tsx @@ -42,6 +42,7 @@ export const SimpleRHFDemo = () => { { console.log("files", files); diff --git a/examples/custom-components/src/app/rhf-custom/rhf-custom-dropzone.tsx b/examples/custom-components/src/app/rhf-custom/rhf-custom-dropzone.tsx index 960bfc5a9..f40b1c682 100644 --- a/examples/custom-components/src/app/rhf-custom/rhf-custom-dropzone.tsx +++ b/examples/custom-components/src/app/rhf-custom/rhf-custom-dropzone.tsx @@ -25,6 +25,7 @@ const MyDropzone = (props: { onFilesChange: (files: FileWithState[]) => void; }) => { const { routeConfig, startUpload } = useUploadThing("imageUploader", { + skipPolling: true, files: props.files, onFilesChange: props.onFilesChange, }); From 84eab1fc813df0a1a43bef512e04ce045b475c5d Mon Sep 17 00:00:00 2001 From: juliusmarminge Date: Mon, 15 Apr 2024 23:15:43 +0200 Subject: [PATCH 26/50] auto mode --- .../src/app/rhf-builtin/simple-rhf.tsx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/examples/custom-components/src/app/rhf-builtin/simple-rhf.tsx b/examples/custom-components/src/app/rhf-builtin/simple-rhf.tsx index 4ee24209c..03f342a7c 100644 --- a/examples/custom-components/src/app/rhf-builtin/simple-rhf.tsx +++ b/examples/custom-components/src/app/rhf-builtin/simple-rhf.tsx @@ -4,7 +4,14 @@ import { toast } from "sonner"; import { z } from "zod"; import { Button } from "~/components/ui/button"; -import { Form, FormField, FormItem, useForm } from "~/components/ui/form"; +import { + Form, + FormField, + FormItem, + FormLabel, + FormMessage, + useForm, +} from "~/components/ui/form"; import { UploadDropzone } from "~/uploadthing/client"; import { fileWithStateValidator } from "~/utils"; @@ -40,6 +47,7 @@ export const SimpleRHFDemo = () => { name="images" render={({ field }) => ( + Upload images { console.log("files", files); return field.onChange(files); }} + config={{ mode: "auto" }} /> )} From 9567b3ac1aabf093c8af503f854af804177c2a73 Mon Sep 17 00:00:00 2001 From: juliusmarminge Date: Mon, 15 Apr 2024 23:17:07 +0200 Subject: [PATCH 27/50] nice --- examples/custom-components/src/app/rhf-builtin/simple-rhf.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/examples/custom-components/src/app/rhf-builtin/simple-rhf.tsx b/examples/custom-components/src/app/rhf-builtin/simple-rhf.tsx index 03f342a7c..5bfbb587a 100644 --- a/examples/custom-components/src/app/rhf-builtin/simple-rhf.tsx +++ b/examples/custom-components/src/app/rhf-builtin/simple-rhf.tsx @@ -23,6 +23,9 @@ export const SimpleRHFDemo = () => { schema: z.object({ images: fileWithStateValidator.array(), }), + defaultValues: { + images: [], + }, mode: "onChange", }); From 3df628c916c9d77371d8477edcb71db4225dd8ce Mon Sep 17 00:00:00 2001 From: juliusmarminge Date: Mon, 15 Apr 2024 23:20:32 +0200 Subject: [PATCH 28/50] simple nav --- examples/custom-components/src/app/layout.tsx | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/examples/custom-components/src/app/layout.tsx b/examples/custom-components/src/app/layout.tsx index 35e3bbc89..6d5c1d2cf 100644 --- a/examples/custom-components/src/app/layout.tsx +++ b/examples/custom-components/src/app/layout.tsx @@ -2,12 +2,14 @@ import { Inter } from "next/font/google"; import "./globals.css"; +import Link from "next/link"; import { Toaster } from "sonner"; import { twMerge } from "tailwind-merge"; import { NextSSRPlugin } from "@uploadthing/react/next-ssr-plugin"; import { extractRouterConfig } from "uploadthing/server"; +import { buttonVariants } from "~/components/ui/button"; import { uploadRouter } from "~/uploadthing/server"; const inter = Inter({ subsets: ["latin"], variable: "--font-sans" }); @@ -21,6 +23,23 @@ export default function RootLayout({ + {children} From 66e0cbf907f1cca544e4d2217f9bdd2e2d0ce592 Mon Sep 17 00:00:00 2001 From: juliusmarminge Date: Tue, 16 Apr 2024 00:23:16 +0200 Subject: [PATCH 29/50] nice --- .../src/app/react-hook-form-demo.tsx | 25 +++++++++++++------ .../src/components/file-uploader.tsx | 5 ++-- examples/custom-components/src/utils.ts | 2 +- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/examples/custom-components/src/app/react-hook-form-demo.tsx b/examples/custom-components/src/app/react-hook-form-demo.tsx index 0aaa75505..c57d61634 100644 --- a/examples/custom-components/src/app/react-hook-form-demo.tsx +++ b/examples/custom-components/src/app/react-hook-form-demo.tsx @@ -1,6 +1,7 @@ "use client"; import * as React from "react"; +import { useRouter } from "next/navigation"; import { toast } from "sonner"; import { z } from "zod"; @@ -22,8 +23,15 @@ export function ReactHookFormDemo() { schema: z.object({ images: fileWithStateValidator.array(), }), + defaultValues: { + images: [], + }, + mode: "onChange", }); + console.log("Form Errors", JSON.stringify(form.formState.errors, null, 4)); + + const router = useRouter(); const onSubmit = form.handleSubmit((data) => { toast(
@@ -31,6 +39,7 @@ export function ReactHookFormDemo() {
       
, ); form.reset(); + router.refresh(); }); return ( @@ -52,21 +61,21 @@ export function ReactHookFormDemo() { }} /> -
)} /> - -
-        Form: {JSON.stringify(form.watch(), null, 4)}
-      
-
-        Errors: {JSON.stringify(form.formState.errors, null, 4)}
-      
); } diff --git a/examples/custom-components/src/components/file-uploader.tsx b/examples/custom-components/src/components/file-uploader.tsx index 54fcfd94b..6e3afe432 100644 --- a/examples/custom-components/src/components/file-uploader.tsx +++ b/examples/custom-components/src/components/file-uploader.tsx @@ -2,6 +2,7 @@ import "client-only"; import * as React from "react"; import Image from "next/image"; +import { useRouter } from "next/navigation"; import { Cross2Icon, UploadIcon } from "@radix-ui/react-icons"; import { toast } from "sonner"; import { twMerge } from "tailwind-merge"; @@ -39,7 +40,7 @@ export function FileUploader({ }); const onDrop = React.useCallback( - async (acceptedFiles: FileWithState[]) => { + (acceptedFiles: FileWithState[]) => { const newFiles = acceptedFiles.map((file) => Object.assign(file, { preview: URL.createObjectURL(file), @@ -48,7 +49,7 @@ export function FileUploader({ const updatedFiles = files ? [...files, ...newFiles] : newFiles; onFilesChange(updatedFiles); - await startUpload(updatedFiles); + void startUpload(updatedFiles); }, [files], ); diff --git a/examples/custom-components/src/utils.ts b/examples/custom-components/src/utils.ts index aa36a56ae..11320ffc1 100644 --- a/examples/custom-components/src/utils.ts +++ b/examples/custom-components/src/utils.ts @@ -5,4 +5,4 @@ import { FileWithState } from "@uploadthing/shared"; export const fileWithStateValidator = z.custom((value) => { if (!(value instanceof File)) return false; return "status" in value && value.status === "uploaded"; -}); +}, "File must be uploaded"); From f6c6d3ba1d56afec940dbce745d224d90524017c Mon Sep 17 00:00:00 2001 From: juliusmarminge Date: Tue, 16 Apr 2024 00:27:02 +0200 Subject: [PATCH 30/50] rm unused --- examples/custom-components/src/components/file-uploader.tsx | 2 -- 1 file changed, 2 deletions(-) diff --git a/examples/custom-components/src/components/file-uploader.tsx b/examples/custom-components/src/components/file-uploader.tsx index 6e3afe432..ce235136a 100644 --- a/examples/custom-components/src/components/file-uploader.tsx +++ b/examples/custom-components/src/components/file-uploader.tsx @@ -2,9 +2,7 @@ import "client-only"; import * as React from "react"; import Image from "next/image"; -import { useRouter } from "next/navigation"; import { Cross2Icon, UploadIcon } from "@radix-ui/react-icons"; -import { toast } from "sonner"; import { twMerge } from "tailwind-merge"; import { useDropzone } from "@uploadthing/react"; From 8f9e82305fbde8b9c41ab381f3224658add2748a Mon Sep 17 00:00:00 2001 From: juliusmarminge Date: Tue, 16 Apr 2024 00:28:39 +0200 Subject: [PATCH 31/50] rm log --- examples/custom-components/src/app/react-hook-form-demo.tsx | 2 -- 1 file changed, 2 deletions(-) diff --git a/examples/custom-components/src/app/react-hook-form-demo.tsx b/examples/custom-components/src/app/react-hook-form-demo.tsx index c57d61634..6a9c602be 100644 --- a/examples/custom-components/src/app/react-hook-form-demo.tsx +++ b/examples/custom-components/src/app/react-hook-form-demo.tsx @@ -29,8 +29,6 @@ export function ReactHookFormDemo() { mode: "onChange", }); - console.log("Form Errors", JSON.stringify(form.formState.errors, null, 4)); - const router = useRouter(); const onSubmit = form.handleSubmit((data) => { toast( From bff3a885b4abe2e03bea7f57993dc3aba968d319 Mon Sep 17 00:00:00 2001 From: juliusmarminge Date: Tue, 16 Apr 2024 00:29:00 +0200 Subject: [PATCH 32/50] simplify --- examples/custom-components/src/app/react-hook-form-demo.tsx | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/examples/custom-components/src/app/react-hook-form-demo.tsx b/examples/custom-components/src/app/react-hook-form-demo.tsx index 6a9c602be..2921d8fea 100644 --- a/examples/custom-components/src/app/react-hook-form-demo.tsx +++ b/examples/custom-components/src/app/react-hook-form-demo.tsx @@ -53,10 +53,7 @@ export function ReactHookFormDemo() { { - console.trace(files); - field.onChange(files); - }} + onFilesChange={field.onChange} /> From 5573faa7ce558cd343e840819258ab00759f169e Mon Sep 17 00:00:00 2001 From: juliusmarminge Date: Tue, 16 Apr 2024 00:30:33 +0200 Subject: [PATCH 33/50] nice --- .../src/app/gallery/page.tsx | 60 ++++++++++++++++++ .../rhf.tsx} | 0 examples/custom-components/src/app/layout.tsx | 4 +- examples/custom-components/src/app/page.tsx | 61 +------------------ .../src/app/rhf-builtin/page.tsx | 2 +- .../rhf-builtin/{simple-rhf.tsx => rhf.tsx} | 0 .../src/app/rhf-custom/page.tsx | 2 +- .../{rhf-custom-dropzone.tsx => rhf.tsx} | 0 8 files changed, 66 insertions(+), 63 deletions(-) create mode 100644 examples/custom-components/src/app/gallery/page.tsx rename examples/custom-components/src/app/{react-hook-form-demo.tsx => gallery/rhf.tsx} (100%) rename examples/custom-components/src/app/rhf-builtin/{simple-rhf.tsx => rhf.tsx} (100%) rename examples/custom-components/src/app/rhf-custom/{rhf-custom-dropzone.tsx => rhf.tsx} (100%) diff --git a/examples/custom-components/src/app/gallery/page.tsx b/examples/custom-components/src/app/gallery/page.tsx new file mode 100644 index 000000000..a76a53bc4 --- /dev/null +++ b/examples/custom-components/src/app/gallery/page.tsx @@ -0,0 +1,60 @@ +import { EmptyCard, FilePreview } from "~/components/file-preview"; +import { LoadMore } from "~/components/load-more"; +import { + Card, + CardContent, + CardDescription, + CardHeader, + CardTitle, +} from "~/components/ui/card"; +import { utapi } from "~/uploadthing/server"; +import { ReactHookFormDemo } from "./rhf"; + +const PAGE_SIZE = 20; + +const UploadFilesList = (props: { + uploadedFiles: { key: string; name: string }[]; +}) => { + if (props.uploadedFiles.length === 0) + return ( + + ); + return props.uploadedFiles.map((file) => ); +}; + +const loadUploadedFiles = async (offset = 0) => { + "use server"; + + const files = await utapi.listFiles({ offset, limit: PAGE_SIZE }); + const nextOffset = files.length >= PAGE_SIZE ? offset + PAGE_SIZE : null; + + return [, nextOffset] as const; +}; + +export default async function HomePage() { + const uploadedFiles = await utapi.listFiles({ offset: 0, limit: PAGE_SIZE }); + + return ( +
+ + + + Uploaded files + View the uploaded files here + + + + + + + +
+ ); +} diff --git a/examples/custom-components/src/app/react-hook-form-demo.tsx b/examples/custom-components/src/app/gallery/rhf.tsx similarity index 100% rename from examples/custom-components/src/app/react-hook-form-demo.tsx rename to examples/custom-components/src/app/gallery/rhf.tsx diff --git a/examples/custom-components/src/app/layout.tsx b/examples/custom-components/src/app/layout.tsx index 6d5c1d2cf..6318c813c 100644 --- a/examples/custom-components/src/app/layout.tsx +++ b/examples/custom-components/src/app/layout.tsx @@ -24,8 +24,8 @@ export default function RootLayout({
); diff --git a/examples/backend-adapters/client/src/uploadthing.ts b/examples/backend-adapters/client-react/src/uploadthing.ts similarity index 100% rename from examples/backend-adapters/client/src/uploadthing.ts rename to examples/backend-adapters/client-react/src/uploadthing.ts diff --git a/examples/backend-adapters/client/tsconfig.json b/examples/backend-adapters/client-react/tsconfig.json similarity index 100% rename from examples/backend-adapters/client/tsconfig.json rename to examples/backend-adapters/client-react/tsconfig.json diff --git a/examples/backend-adapters/client/tsconfig.node.json b/examples/backend-adapters/client-react/tsconfig.node.json similarity index 100% rename from examples/backend-adapters/client/tsconfig.node.json rename to examples/backend-adapters/client-react/tsconfig.node.json diff --git a/examples/backend-adapters/client/vite.config.ts b/examples/backend-adapters/client-react/vite.config.ts similarity index 100% rename from examples/backend-adapters/client/vite.config.ts rename to examples/backend-adapters/client-react/vite.config.ts diff --git a/examples/backend-adapters/client-vanilla/index.html b/examples/backend-adapters/client-vanilla/index.html new file mode 100644 index 000000000..44a933506 --- /dev/null +++ b/examples/backend-adapters/client-vanilla/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite + TS + + +
+ + + diff --git a/examples/backend-adapters/client-vanilla/package.json b/examples/backend-adapters/client-vanilla/package.json new file mode 100644 index 000000000..dfb7a91a7 --- /dev/null +++ b/examples/backend-adapters/client-vanilla/package.json @@ -0,0 +1,18 @@ +{ + "name": "@example/backend-adapters-client-vanilla", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "uploadthing": "6.10.3" + }, + "devDependencies": { + "typescript": "^5.4.5", + "vite": "^5.1.4" + } +} diff --git a/examples/backend-adapters/client-vanilla/src/main.ts b/examples/backend-adapters/client-vanilla/src/main.ts new file mode 100644 index 000000000..cf5a2e5bc --- /dev/null +++ b/examples/backend-adapters/client-vanilla/src/main.ts @@ -0,0 +1,16 @@ +import "./style.css"; + +import { setupUploader } from "./uploader"; + +document.querySelector("#app")!.innerHTML = ` +
+

UploadThing x Vanilla JS

+
+
+ + +
+
+`; + +setupUploader(document.querySelector("#upload-form")!); diff --git a/examples/backend-adapters/client-vanilla/src/style.css b/examples/backend-adapters/client-vanilla/src/style.css new file mode 100644 index 000000000..a9f762e50 --- /dev/null +++ b/examples/backend-adapters/client-vanilla/src/style.css @@ -0,0 +1,95 @@ +:root { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +#app { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.card { + padding: 2em; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} +button:disabled { + pointer-events: none; +} + +input { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-family: inherit; + background-color: #f9f9f9; + border-color: #ccc; + transition: border-color 0.25s; +} + +input:hover, +input:focus { + border-color: #646cff; +} + +input[type="file"] { + background: transparent; + font-size: 0.8em; + font-weight: 500; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + button { + background-color: #f9f9f9; + } + input { + background-color: #f9f9f9; + } +} diff --git a/examples/backend-adapters/client-vanilla/src/uploader.ts b/examples/backend-adapters/client-vanilla/src/uploader.ts new file mode 100644 index 000000000..7a786c256 --- /dev/null +++ b/examples/backend-adapters/client-vanilla/src/uploader.ts @@ -0,0 +1,43 @@ +import { + generateMimeTypes, + generatePermittedFileTypes, + genUploader, +} from "uploadthing/client"; +import { EndpointMetadata } from "uploadthing/types"; + +import type { OurFileRouter } from "../../server/src/router"; + +const BASE_URL = "http://localhost:3000"; + +export const uploadFiles = genUploader({ + url: BASE_URL, + package: "vanilla", +}); + +export const setupUploader = (el: HTMLFormElement) => { + const form = el; + const input = form.querySelector("input[type=file]")!; + const button = form.querySelector("button")!; + + // Hook up form submission + form.addEventListener("submit", async (e) => { + e.preventDefault(); + const files = Array.from(input.files || []); + button.disabled = true; + const res = await uploadFiles("videoAndImage", { files }); + form.reset(); + alert(`Upload complete! ${res.length} files uploaded`); + button.disabled = false; + }); + + // Sync accept and multiple attributes with the server state + fetch(new URL("/api/uploadthing", BASE_URL)) + .then((res) => res.json() as Promise) + .then((json) => json.find(({ slug }) => slug === "videoAndImage")?.config) + .then((config) => { + const { fileTypes, multiple } = generatePermittedFileTypes(config); + const mimes = generateMimeTypes(fileTypes); + input.accept = mimes.join(", "); + input.multiple = multiple; + }); +}; diff --git a/examples/backend-adapters/client-vanilla/tsconfig.json b/examples/backend-adapters/client-vanilla/tsconfig.json new file mode 100644 index 000000000..b8afdc0bd --- /dev/null +++ b/examples/backend-adapters/client-vanilla/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + "types": ["vite/client"], + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} diff --git a/examples/backend-adapters/client-vue/README.md b/examples/backend-adapters/client-vue/README.md new file mode 100644 index 000000000..961797d4b --- /dev/null +++ b/examples/backend-adapters/client-vue/README.md @@ -0,0 +1,17 @@ +# Vue 3 + TypeScript + Vite + +This template should help get you started developing with Vue 3 and TypeScript +in Vite. The template uses Vue 3 ` + UploadThing + Backend Adapters + + +
+ + + diff --git a/examples/backend-adapters/client-vue/package.json b/examples/backend-adapters/client-vue/package.json new file mode 100644 index 000000000..94c454f4f --- /dev/null +++ b/examples/backend-adapters/client-vue/package.json @@ -0,0 +1,21 @@ +{ + "name": "@example/backend-adapters-client-vue", + "private": true, + "type": "module", + "scripts": { + "dev": "vite", + "build": "vue-tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@uploadthing/vue": "6.5.3", + "uploadthing": "6.10.3", + "vue": "^3.4.21" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^5.0.4", + "typescript": "^5.4.5", + "vite": "^5.1.4", + "vue-tsc": "^2.0.6" + } +} diff --git a/examples/backend-adapters/client-vue/src/App.vue b/examples/backend-adapters/client-vue/src/App.vue new file mode 100644 index 000000000..579e9fa6b --- /dev/null +++ b/examples/backend-adapters/client-vue/src/App.vue @@ -0,0 +1,51 @@ + + + diff --git a/examples/backend-adapters/client-vue/src/constants.ts b/examples/backend-adapters/client-vue/src/constants.ts new file mode 100644 index 000000000..1cc46964d --- /dev/null +++ b/examples/backend-adapters/client-vue/src/constants.ts @@ -0,0 +1 @@ +export const BACKEND_URL = "http://localhost:3000"; diff --git a/examples/backend-adapters/client-vue/src/main.ts b/examples/backend-adapters/client-vue/src/main.ts new file mode 100644 index 000000000..455730794 --- /dev/null +++ b/examples/backend-adapters/client-vue/src/main.ts @@ -0,0 +1,5 @@ +import { createApp } from "vue"; + +import App from "./App.vue"; + +createApp(App).mount("#app"); diff --git a/examples/backend-adapters/client-vue/src/uploadthing.ts b/examples/backend-adapters/client-vue/src/uploadthing.ts new file mode 100644 index 000000000..87ad130bc --- /dev/null +++ b/examples/backend-adapters/client-vue/src/uploadthing.ts @@ -0,0 +1,18 @@ +import { + generateUploadButton, + generateUploadDropzone, + generateVueHelpers, + type GenerateTypedHelpersOptions, +} from "@uploadthing/vue"; + +import type { OurFileRouter } from "../../server/src/router"; +import { BACKEND_URL } from "./constants"; + +const initOpts = { + url: BACKEND_URL, +} satisfies GenerateTypedHelpersOptions; + +export const UploadButton = generateUploadButton(initOpts); +export const UploadDropzone = generateUploadDropzone(initOpts); + +export const { useUploadThing } = generateVueHelpers(initOpts); diff --git a/examples/backend-adapters/client-vue/tsconfig.json b/examples/backend-adapters/client-vue/tsconfig.json new file mode 100644 index 000000000..1dd8e13e2 --- /dev/null +++ b/examples/backend-adapters/client-vue/tsconfig.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + "types": ["vite/client"], + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "preserve", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/examples/backend-adapters/client-vue/tsconfig.node.json b/examples/backend-adapters/client-vue/tsconfig.node.json new file mode 100644 index 000000000..97ede7ee6 --- /dev/null +++ b/examples/backend-adapters/client-vue/tsconfig.node.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true, + "strict": true + }, + "include": ["vite.config.ts"] +} diff --git a/examples/backend-adapters/client-vue/vite.config.ts b/examples/backend-adapters/client-vue/vite.config.ts new file mode 100644 index 000000000..34e097107 --- /dev/null +++ b/examples/backend-adapters/client-vue/vite.config.ts @@ -0,0 +1,7 @@ +import vue from "@vitejs/plugin-vue"; +import { defineConfig } from "vite"; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [vue()], +}); diff --git a/examples/backend-adapters/package.json b/examples/backend-adapters/package.json index ee6cecad4..c3874dc59 100644 --- a/examples/backend-adapters/package.json +++ b/examples/backend-adapters/package.json @@ -7,22 +7,24 @@ "server" ], "scripts": { - "clean": "git clean -xdf node_modules client/node_modules client/dist server/node_modules server/dist", - "dev:cf": "concurrently \"npm run -w client dev\" \"npm run -w server dev:cf\"", - "dev:elysia": "concurrently \"npm run -w client dev\" \"npm run -w server dev:elysia\"", - "dev:express": "concurrently \"npm run -w client dev\" \"npm run -w server dev:express\"", - "dev:fastify": "concurrently \"npm run -w client dev\" \"npm run -w server dev:fastify\"", - "dev:hono": "concurrently \"npm run -w client dev\" \"npm run -w server dev:hono\"", - "dev:h3": "concurrently \"npm run -w client dev\" \"npm run -w server dev:h3\"", - "build": "npm run -w client build && npm run -w server build", - "start": "concurrently \"npm run -w client start\" \"npm run -w server start\"", + "clean": "git clean -xdf node_modules client-react/node_modules client-react/dist client-vanilla/node_modules client-vanilla/dist client-vue/node_modules client-vue/dist server/node_modules server/dist", + "dev:cf": "concurrently \"npm run -w client-react dev\" \"npm run -w server dev:cf\"", + "dev:elysia": "concurrently \"npm run -w client-react dev\" \"npm run -w server dev:elysia\"", + "dev:express": "concurrently \"npm run -w client-react dev\" \"npm run -w server dev:express\"", + "dev:fastify": "concurrently \"npm run -w client-react dev\" \"npm run -w server dev:fastify\"", + "dev:hono": "concurrently \"npm run -w client-react dev\" \"npm run -w server dev:hono\"", + "dev:h3": "concurrently \"npm run -w client-react dev\" \"npm run -w server dev:h3\"", + "dev:h3-vue": "concurrently \"npm run -w client-vue dev\" \"npm run -w server dev:h3\"", + "dev:h3-vanilla": "concurrently \"npm run -w client-vanilla dev\" \"npm run -w server dev:h3\"", + "build": "npm run -w client-react build && npm run -w server build", + "start": "concurrently \"npm run -w client-react start\" \"npm run -w server start\"", "test": "playwright test" }, "dependencies": { - "@uploadthing/react": "6.4.4", + "@uploadthing/react": "6.5.3", "concurrently": "^8.2.2", "typescript": "^5.4.5", - "uploadthing": "6.9.0" + "uploadthing": "6.10.3" }, "devDependencies": { "@playwright/test": "1.42.1" diff --git a/examples/backend-adapters/server/package.json b/examples/backend-adapters/server/package.json index 0b23dc26a..6393c2afa 100644 --- a/examples/backend-adapters/server/package.json +++ b/examples/backend-adapters/server/package.json @@ -22,7 +22,7 @@ "h3": "^1.11.1", "hono": "^4.0.8", "listhen": "^1.7.2", - "uploadthing": "6.9.0" + "uploadthing": "6.10.3" }, "devDependencies": { "@cloudflare/workers-types": "^4.20240222.0", diff --git a/examples/minimal-appdir/next.config.js b/examples/minimal-appdir/next.config.js index 2cfc5e736..8d68e22f1 100644 --- a/examples/minimal-appdir/next.config.js +++ b/examples/minimal-appdir/next.config.js @@ -1,7 +1,11 @@ +const analyze = require("@next/bundle-analyzer")({ + enabled: process.env.ANALYZE === "true", +}); + /** @type {import('next').NextConfig} */ const nextConfig = { eslint: { ignoreDuringBuilds: true }, typescript: { ignoreBuildErrors: true }, }; -module.exports = nextConfig; +module.exports = analyze(nextConfig); diff --git a/examples/minimal-appdir/package.json b/examples/minimal-appdir/package.json index 74218a90a..4f12b4b92 100644 --- a/examples/minimal-appdir/package.json +++ b/examples/minimal-appdir/package.json @@ -9,13 +9,14 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@uploadthing/react": "6.4.4", + "@uploadthing/react": "6.5.3", "next": "14.2.1", "react": "18.2.0", "react-dom": "18.2.0", - "uploadthing": "6.9.0" + "uploadthing": "6.10.3" }, "devDependencies": { + "@next/bundle-analyzer": "14.2.1", "@types/node": "^20.11.21", "@types/react": "18.2.78", "@types/react-dom": "18.2.25", diff --git a/examples/minimal-astro-react/package.json b/examples/minimal-astro-react/package.json index 55e1e3286..8369b365d 100644 --- a/examples/minimal-astro-react/package.json +++ b/examples/minimal-astro-react/package.json @@ -12,11 +12,11 @@ "dependencies": { "@astrojs/node": "^8.2.1", "@astrojs/react": "^3.0.10", - "@uploadthing/react": "6.4.4", + "@uploadthing/react": "6.5.3", "astro": "^4.4.5", "react": "18.2.0", "react-dom": "18.2.0", - "uploadthing": "6.9.0" + "uploadthing": "6.10.3" }, "devDependencies": { "@types/react": "18.2.78", diff --git a/examples/minimal-nuxt/.env.example b/examples/minimal-nuxt/.env.example new file mode 100644 index 000000000..dc605e266 --- /dev/null +++ b/examples/minimal-nuxt/.env.example @@ -0,0 +1,3 @@ +# Go to https://uploadthing.com/dashboard to get your API secret +NUXT_UPLOADTHING_SECRET='sk_live_xxx' +NUXT_UPLOADTHING_APP_ID='xxx' \ No newline at end of file diff --git a/examples/minimal-nuxt/README.md b/examples/minimal-nuxt/README.md new file mode 100644 index 000000000..db0203038 --- /dev/null +++ b/examples/minimal-nuxt/README.md @@ -0,0 +1,18 @@ +# Minimal Nuxt example for UploadThing + + + + + +## QuickStart + +1. Grab an API key from the UploadThing dashboard: + https://uploadthing.com/dashboard +2. `cp .env.example .env` and paste in your API key in the newly created `.env` + file +3. `pnpm i && pnpm generate && pnpm dev` +4. Upload files! + +## Further reference + +Check out the docs at: https://docs.uploadthing.com/getting-started/appdir diff --git a/examples/minimal-nuxt/app.vue b/examples/minimal-nuxt/app.vue new file mode 100644 index 000000000..2a4de8a35 --- /dev/null +++ b/examples/minimal-nuxt/app.vue @@ -0,0 +1,61 @@ + + + diff --git a/examples/minimal-nuxt/nuxt.config.ts b/examples/minimal-nuxt/nuxt.config.ts new file mode 100644 index 000000000..bf513a9c9 --- /dev/null +++ b/examples/minimal-nuxt/nuxt.config.ts @@ -0,0 +1,5 @@ +// https://nuxt.com/docs/api/configuration/nuxt-config +export default defineNuxtConfig({ + devtools: { enabled: true }, + modules: ["@uploadthing/nuxt"], +}); diff --git a/examples/minimal-nuxt/package.json b/examples/minimal-nuxt/package.json new file mode 100644 index 000000000..9ca29cd61 --- /dev/null +++ b/examples/minimal-nuxt/package.json @@ -0,0 +1,18 @@ +{ + "name": "@example/minimal-nuxt", + "private": true, + "type": "module", + "scripts": { + "build": "nuxt build", + "dev": "nuxt dev", + "generate": "nuxt generate", + "preview": "nuxt preview" + }, + "dependencies": { + "@uploadthing/nuxt": "6.5.4", + "nuxt": "^3.11.2", + "uploadthing": "6.10.3", + "vue": "^3.4.21", + "vue-router": "^4.3.0" + } +} diff --git a/examples/minimal-nuxt/server/tsconfig.json b/examples/minimal-nuxt/server/tsconfig.json new file mode 100644 index 000000000..b9ed69c19 --- /dev/null +++ b/examples/minimal-nuxt/server/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "../.nuxt/tsconfig.server.json" +} diff --git a/examples/minimal-nuxt/server/uploadthing.ts b/examples/minimal-nuxt/server/uploadthing.ts new file mode 100644 index 000000000..5e2aab3d8 --- /dev/null +++ b/examples/minimal-nuxt/server/uploadthing.ts @@ -0,0 +1,58 @@ +import { createUploadthing } from "uploadthing/h3"; +import type { FileRouter } from "uploadthing/h3"; + +const f = createUploadthing(); +/** + * This is your Uploadthing file router. For more information: + * @see https://docs.uploadthing.com/api-reference/server#file-routes + */ + +export const uploadRouter = { + videoAndImage: f({ + image: { + maxFileSize: "4MB", + maxFileCount: 4, + }, + video: { + maxFileSize: "16MB", + }, + }) + .middleware(({ event }) => { + event; + //^? + + // Return some metadata to be stored with the file + return { foo: "bar" as const }; + }) + .onUploadComplete(({ file, metadata }) => { + metadata; + // ^? + console.log("upload completed", file); + return { foo: "bar" as const }; + }), + e2: f({ + image: { + maxFileSize: "4MB", + maxFileCount: 4, + }, + video: { + maxFileSize: "16MB", + }, + }) + .middleware(({ event }) => { + event; + //^? + + // Return some metadata to be stored with the file + return { foo: "bar" as const }; + }) + .onUploadComplete(({ file, metadata }) => { + metadata; + // ^? + console.log("upload completed", file); + + return { bar: "baz" as const }; + }), +} satisfies FileRouter; + +export type UploadRouter = typeof uploadRouter; diff --git a/examples/minimal-nuxt/tsconfig.json b/examples/minimal-nuxt/tsconfig.json new file mode 100644 index 000000000..a746f2a70 --- /dev/null +++ b/examples/minimal-nuxt/tsconfig.json @@ -0,0 +1,4 @@ +{ + // https://nuxt.com/docs/guide/concepts/typescript + "extends": "./.nuxt/tsconfig.json" +} diff --git a/examples/minimal-pagedir/package.json b/examples/minimal-pagedir/package.json index 40dee78b5..830d46faa 100644 --- a/examples/minimal-pagedir/package.json +++ b/examples/minimal-pagedir/package.json @@ -9,11 +9,11 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@uploadthing/react": "6.4.4", + "@uploadthing/react": "6.5.3", "next": "14.2.1", "react": "18.2.0", "react-dom": "18.2.0", - "uploadthing": "6.9.0" + "uploadthing": "6.10.3" }, "devDependencies": { "@types/node": "^20.11.21", diff --git a/examples/minimal-solidstart/package.json b/examples/minimal-solidstart/package.json index 59f33dab9..c5fb4136d 100644 --- a/examples/minimal-solidstart/package.json +++ b/examples/minimal-solidstart/package.json @@ -12,9 +12,9 @@ "@solidjs/meta": "^0.29.3", "@solidjs/router": "^0.12.4", "@solidjs/start": "^0.6.0", - "@uploadthing/solid": "6.3.4", + "@uploadthing/solid": "6.4.3", "solid-js": "^1.8.15", - "uploadthing": "6.9.0", + "uploadthing": "6.10.3", "vinxi": "0.3.11" }, "devDependencies": { diff --git a/examples/minimal-sveltekit/package.json b/examples/minimal-sveltekit/package.json index 5f35e9d6f..90af37777 100644 --- a/examples/minimal-sveltekit/package.json +++ b/examples/minimal-sveltekit/package.json @@ -13,8 +13,8 @@ }, "dependencies": { "@fontsource-variable/inter": "^5.0.17", - "@uploadthing/svelte": "6.4.1", - "uploadthing": "6.9.0" + "@uploadthing/svelte": "6.5.3", + "uploadthing": "6.10.3" }, "devDependencies": { "@sveltejs/adapter-auto": "^3.1.1", diff --git a/examples/with-clerk-appdir/package.json b/examples/with-clerk-appdir/package.json index f90a08184..87cec2cef 100644 --- a/examples/with-clerk-appdir/package.json +++ b/examples/with-clerk-appdir/package.json @@ -11,12 +11,12 @@ }, "dependencies": { "@clerk/nextjs": "^4.29.8", - "@t3-oss/env-nextjs": "^0.9.2", - "@uploadthing/react": "6.4.4", + "@t3-oss/env-nextjs": "^0.10.1", + "@uploadthing/react": "6.5.3", "next": "14.2.1", "react": "18.2.0", "react-dom": "18.2.0", - "uploadthing": "6.9.0", + "uploadthing": "6.10.3", "zod": "^3.22.4" }, "devDependencies": { diff --git a/examples/with-clerk-pagesdir/package.json b/examples/with-clerk-pagesdir/package.json index e50961299..2bd08b93b 100644 --- a/examples/with-clerk-pagesdir/package.json +++ b/examples/with-clerk-pagesdir/package.json @@ -11,12 +11,12 @@ }, "dependencies": { "@clerk/nextjs": "^4.29.8", - "@t3-oss/env-nextjs": "^0.9.2", - "@uploadthing/react": "6.4.4", + "@t3-oss/env-nextjs": "^0.10.1", + "@uploadthing/react": "6.5.3", "next": "14.2.1", "react": "18.2.0", "react-dom": "18.2.0", - "uploadthing": "6.9.0", + "uploadthing": "6.10.3", "zod": "^3.22.4" }, "devDependencies": { diff --git a/examples/with-drizzle-appdir/.env.example b/examples/with-drizzle-appdir/.env.example index b5636922e..321c1c352 100644 --- a/examples/with-drizzle-appdir/.env.example +++ b/examples/with-drizzle-appdir/.env.example @@ -1,2 +1,3 @@ UPLOADTHING_SECRET='sk_live_xxx' UPLOADTHING_APP_ID='xxx' +DATABASE_URL=file:.data/sqlite.db \ No newline at end of file diff --git a/examples/with-drizzle-appdir/drizzle.config.ts b/examples/with-drizzle-appdir/drizzle.config.ts index 978acc91c..399ef3d6b 100644 --- a/examples/with-drizzle-appdir/drizzle.config.ts +++ b/examples/with-drizzle-appdir/drizzle.config.ts @@ -1,10 +1,12 @@ import { type Config } from "drizzle-kit"; +import { env } from "./src/env.mjs"; + export default { schema: "./src/server/db/schema.ts", - driver: "better-sqlite", + driver: "libsql", dbCredentials: { - url: "./.data/sqlite.db", + url: env.DATABASE_URL, }, tablesFilter: ["with-drizzle_*"], } satisfies Config; diff --git a/examples/with-drizzle-appdir/package.json b/examples/with-drizzle-appdir/package.json index 30eeb4afa..11c3f574b 100644 --- a/examples/with-drizzle-appdir/package.json +++ b/examples/with-drizzle-appdir/package.json @@ -10,25 +10,24 @@ "start": "next start" }, "dependencies": { - "@t3-oss/env-nextjs": "^0.9.2", - "@uploadthing/react": "6.4.4", - "better-sqlite3": "^9.4.3", - "drizzle-orm": "^0.29.4", + "@libsql/client": "^0.6.0", + "@t3-oss/env-nextjs": "^0.10.1", + "@uploadthing/react": "6.5.3", + "drizzle-orm": "^0.30.10", "next": "14.2.1", "react": "18.2.0", "react-dom": "18.2.0", - "uploadthing": "6.9.0", + "uploadthing": "6.10.3", "zod": "^3.22.4" }, "devDependencies": { - "@types/better-sqlite3": "^7.6.9", "@types/eslint": "^8.56.4", "@types/node": "^20.11.21", "@types/react": "18.2.78", "@types/react-dom": "18.2.25", "@typescript-eslint/eslint-plugin": "^7.6.0", "@typescript-eslint/parser": "^7.6.0", - "drizzle-kit": "^0.20.14", + "drizzle-kit": "^0.20.18", "eslint": "^8.57.0", "eslint-config-next": "^14.2.1", "typescript": "^5.4.5" diff --git a/examples/with-drizzle-appdir/src/env.mjs b/examples/with-drizzle-appdir/src/env.mjs index d27128a9e..2308f3486 100644 --- a/examples/with-drizzle-appdir/src/env.mjs +++ b/examples/with-drizzle-appdir/src/env.mjs @@ -7,11 +7,12 @@ export const env = createEnv({ * isn't built with invalid env vars. */ server: { - UPLOADTHING_APP_ID: z.string().min(1), - UPLOADTHING_SECRET: z.string().min(1), + UPLOADTHING_APP_ID: z.string(), + UPLOADTHING_SECRET: z.string(), NODE_ENV: z .enum(["development", "test", "production"]) .default("development"), + DATABASE_URL: z.string(), }, /** @@ -20,16 +21,14 @@ export const env = createEnv({ * `NEXT_PUBLIC_`. */ client: { - // NEXT_PUBLIC_CLIENTVAR: z.string().min(1), + // NEXT_PUBLIC_CLIENTVAR: z.string(), }, /** * You can't destruct `process.env` as a regular object in the Next.js edge runtimes (e.g. * middlewares) or client-side so we need to destruct manually. */ - runtimeEnv: { - UPLOADTHING_APP_ID: process.env.UPLOADTHING_APP_ID, - UPLOADTHING_SECRET: process.env.UPLOADTHING_SECRET, + experimental__runtimeEnv: { NODE_ENV: process.env.NODE_ENV, // NEXT_PUBLIC_CLIENTVAR: process.env.NEXT_PUBLIC_CLIENTVAR, }, @@ -38,4 +37,5 @@ export const env = createEnv({ * useful for Docker builds. */ skipValidation: !!process.env.SKIP_ENV_VALIDATION, + emptyStringAsUndefined: true, }); diff --git a/examples/with-drizzle-appdir/src/server/db/index.ts b/examples/with-drizzle-appdir/src/server/db/index.ts index 1ba782a30..9f86be014 100644 --- a/examples/with-drizzle-appdir/src/server/db/index.ts +++ b/examples/with-drizzle-appdir/src/server/db/index.ts @@ -1,7 +1,8 @@ -import Database from "better-sqlite3"; -import { drizzle } from "drizzle-orm/better-sqlite3"; +import { createClient } from "@libsql/client"; +import { drizzle } from "drizzle-orm/libsql"; +import { env } from "~/env.mjs"; import * as schema from "./schema"; -const sqlite = new Database(".data/sqlite.db"); +const sqlite = createClient({ url: env.DATABASE_URL }); export const db = drizzle(sqlite, { schema }); diff --git a/examples/with-drizzle-appdir/tsconfig.json b/examples/with-drizzle-appdir/tsconfig.json index 8c65152fd..9a7b0f182 100644 --- a/examples/with-drizzle-appdir/tsconfig.json +++ b/examples/with-drizzle-appdir/tsconfig.json @@ -2,6 +2,7 @@ "compilerOptions": { "lib": ["dom", "dom.iterable", "esnext"], "allowJs": true, + "checkJs": true, "skipLibCheck": true, "strict": true, "noEmit": true, diff --git a/examples/with-drizzle-pagesdir/.env.example b/examples/with-drizzle-pagesdir/.env.example index b5636922e..321c1c352 100644 --- a/examples/with-drizzle-pagesdir/.env.example +++ b/examples/with-drizzle-pagesdir/.env.example @@ -1,2 +1,3 @@ UPLOADTHING_SECRET='sk_live_xxx' UPLOADTHING_APP_ID='xxx' +DATABASE_URL=file:.data/sqlite.db \ No newline at end of file diff --git a/examples/with-drizzle-pagesdir/drizzle.config.ts b/examples/with-drizzle-pagesdir/drizzle.config.ts index 978acc91c..399ef3d6b 100644 --- a/examples/with-drizzle-pagesdir/drizzle.config.ts +++ b/examples/with-drizzle-pagesdir/drizzle.config.ts @@ -1,10 +1,12 @@ import { type Config } from "drizzle-kit"; +import { env } from "./src/env.mjs"; + export default { schema: "./src/server/db/schema.ts", - driver: "better-sqlite", + driver: "libsql", dbCredentials: { - url: "./.data/sqlite.db", + url: env.DATABASE_URL, }, tablesFilter: ["with-drizzle_*"], } satisfies Config; diff --git a/examples/with-drizzle-pagesdir/package.json b/examples/with-drizzle-pagesdir/package.json index 561f3cfc3..2ca071d4a 100644 --- a/examples/with-drizzle-pagesdir/package.json +++ b/examples/with-drizzle-pagesdir/package.json @@ -10,26 +10,25 @@ "start": "next start" }, "dependencies": { - "@t3-oss/env-nextjs": "^0.9.2", - "@uploadthing/react": "6.4.4", - "better-sqlite3": "^9.4.3", - "drizzle-orm": "^0.29.4", + "@libsql/client": "^0.6.0", + "@t3-oss/env-nextjs": "^0.10.1", + "@uploadthing/react": "6.5.3", + "drizzle-orm": "^0.30.10", "next": "14.2.1", "react": "18.2.0", "react-dom": "18.2.0", "swr": "^2.2.5", - "uploadthing": "6.9.0", + "uploadthing": "6.10.3", "zod": "^3.22.4" }, "devDependencies": { - "@types/better-sqlite3": "^7.6.9", "@types/eslint": "^8.56.4", "@types/node": "^20.11.21", "@types/react": "18.2.78", "@types/react-dom": "18.2.25", "@typescript-eslint/eslint-plugin": "^7.6.0", "@typescript-eslint/parser": "^7.6.0", - "drizzle-kit": "^0.20.14", + "drizzle-kit": "^0.20.18", "eslint": "^8.57.0", "eslint-config-next": "^14.2.1", "typescript": "^5.4.5" diff --git a/examples/with-drizzle-pagesdir/src/env.mjs b/examples/with-drizzle-pagesdir/src/env.mjs index d27128a9e..2308f3486 100644 --- a/examples/with-drizzle-pagesdir/src/env.mjs +++ b/examples/with-drizzle-pagesdir/src/env.mjs @@ -7,11 +7,12 @@ export const env = createEnv({ * isn't built with invalid env vars. */ server: { - UPLOADTHING_APP_ID: z.string().min(1), - UPLOADTHING_SECRET: z.string().min(1), + UPLOADTHING_APP_ID: z.string(), + UPLOADTHING_SECRET: z.string(), NODE_ENV: z .enum(["development", "test", "production"]) .default("development"), + DATABASE_URL: z.string(), }, /** @@ -20,16 +21,14 @@ export const env = createEnv({ * `NEXT_PUBLIC_`. */ client: { - // NEXT_PUBLIC_CLIENTVAR: z.string().min(1), + // NEXT_PUBLIC_CLIENTVAR: z.string(), }, /** * You can't destruct `process.env` as a regular object in the Next.js edge runtimes (e.g. * middlewares) or client-side so we need to destruct manually. */ - runtimeEnv: { - UPLOADTHING_APP_ID: process.env.UPLOADTHING_APP_ID, - UPLOADTHING_SECRET: process.env.UPLOADTHING_SECRET, + experimental__runtimeEnv: { NODE_ENV: process.env.NODE_ENV, // NEXT_PUBLIC_CLIENTVAR: process.env.NEXT_PUBLIC_CLIENTVAR, }, @@ -38,4 +37,5 @@ export const env = createEnv({ * useful for Docker builds. */ skipValidation: !!process.env.SKIP_ENV_VALIDATION, + emptyStringAsUndefined: true, }); diff --git a/examples/with-drizzle-pagesdir/src/server/db/index.ts b/examples/with-drizzle-pagesdir/src/server/db/index.ts index 1ba782a30..9f86be014 100644 --- a/examples/with-drizzle-pagesdir/src/server/db/index.ts +++ b/examples/with-drizzle-pagesdir/src/server/db/index.ts @@ -1,7 +1,8 @@ -import Database from "better-sqlite3"; -import { drizzle } from "drizzle-orm/better-sqlite3"; +import { createClient } from "@libsql/client"; +import { drizzle } from "drizzle-orm/libsql"; +import { env } from "~/env.mjs"; import * as schema from "./schema"; -const sqlite = new Database(".data/sqlite.db"); +const sqlite = createClient({ url: env.DATABASE_URL }); export const db = drizzle(sqlite, { schema }); diff --git a/examples/with-novel/package.json b/examples/with-novel/package.json index dd6a47e20..dbe54b2a1 100644 --- a/examples/with-novel/package.json +++ b/examples/with-novel/package.json @@ -13,7 +13,7 @@ "@radix-ui/react-popover": "^1.0.6", "@radix-ui/react-slot": "^1.0.2", "@tailwindcss/typography": "^0.5.10", - "@uploadthing/react": "^6.4.4", + "@uploadthing/react": "^6.5.3", "class-variance-authority": "^0.7.0", "cmdk": "^0.2.1", "lucide-react": "^0.368.0", @@ -24,7 +24,7 @@ "react-dom": "18.2.0", "sonner": "^1.4.41", "tailwind-merge": "^2.2.1", - "uploadthing": "^6.9.0", + "uploadthing": "6.10.3", "use-debounce": "^9.0.3" }, "devDependencies": { diff --git a/examples/with-react-image-crop/package.json b/examples/with-react-image-crop/package.json index 02e725bc1..93ce92ad1 100644 --- a/examples/with-react-image-crop/package.json +++ b/examples/with-react-image-crop/package.json @@ -9,12 +9,12 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@uploadthing/react": "6.4.4", + "@uploadthing/react": "6.5.3", "next": "14.2.1", "react": "18.2.0", "react-dom": "18.2.0", "react-image-crop": "^11.0.5", - "uploadthing": "6.9.0" + "uploadthing": "6.10.3" }, "devDependencies": { "@types/node": "^20.11.21", diff --git a/examples/with-serveractions/package.json b/examples/with-serveractions/package.json index 91299017e..cef903068 100644 --- a/examples/with-serveractions/package.json +++ b/examples/with-serveractions/package.json @@ -12,7 +12,7 @@ "next": "14.2.1", "react": "18.2.0", "react-dom": "18.2.0", - "uploadthing": "6.9.0" + "uploadthing": "6.10.3" }, "devDependencies": { "@types/node": "^20.11.21", diff --git a/examples/with-tailwindcss/package.json b/examples/with-tailwindcss/package.json index 72e9a0734..e5cafc61f 100644 --- a/examples/with-tailwindcss/package.json +++ b/examples/with-tailwindcss/package.json @@ -9,11 +9,11 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@uploadthing/react": "6.4.4", + "@uploadthing/react": "6.5.3", "next": "14.2.1", "react": "18.2.0", "react-dom": "18.2.0", - "uploadthing": "6.9.0" + "uploadthing": "6.10.3" }, "devDependencies": { "@types/node": "^20.11.21", diff --git a/package.json b/package.json index 8ebcd9a5b..dd17153c9 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "examples/*", "examples/backend-adapters/*", "packages/*", + "packages/nuxt/*", "tooling/*" ], "scripts": { @@ -20,6 +21,7 @@ "clean": "turbo run clean && git clean -xdf node_modules", "dev:all": "turbo run dev", "dev": "turbo run dev --filter \"./packages/*\"", + "dev:react": "turbo run dev --filter @uploadthing/react...", "lint": "turbo run lint && manypkg check", "format:check": "prettier --check .", "format": "prettier --write . --list-different", diff --git a/packages/dropzone/CHANGELOG.md b/packages/dropzone/CHANGELOG.md index 7c0352b06..0b23d0115 100644 --- a/packages/dropzone/CHANGELOG.md +++ b/packages/dropzone/CHANGELOG.md @@ -1,5 +1,17 @@ # @uploadthing/dropzone +## 0.4.0 + +### Minor Changes + +- [#457](https://github.com/pingdotgg/uploadthing/pull/457) [`ea7e41b`](https://github.com/pingdotgg/uploadthing/commit/ea7e41b5d9d85135540d9b51fa5551859fbe7623) Thanks [@markflorkowski](https://github.com/markflorkowski)! - Effect rewrite + +- [#293](https://github.com/pingdotgg/uploadthing/pull/293) [`09870e4`](https://github.com/pingdotgg/uploadthing/commit/09870e43f310c15e48f0089e875c6d9663fd305b) Thanks [@markflorkowski](https://github.com/markflorkowski)! - feat: vue and nuxt support! + +### Patch Changes + +- [#753](https://github.com/pingdotgg/uploadthing/pull/753) [`9b93886`](https://github.com/pingdotgg/uploadthing/commit/9b938860d49a1a593e38804f81c759925d713605) Thanks [@juliusmarminge](https://github.com/juliusmarminge)! - fix: solid event propagations in `createDropzone` + ## 0.3.1 ### Patch Changes diff --git a/packages/dropzone/package.json b/packages/dropzone/package.json index 82016f084..9710aad00 100644 --- a/packages/dropzone/package.json +++ b/packages/dropzone/package.json @@ -1,6 +1,6 @@ { "name": "@uploadthing/dropzone", - "version": "0.3.1", + "version": "0.4.0", "type": "module", "license": "MIT", "exports": { @@ -44,13 +44,24 @@ "types": "./svelte/index.d.cts", "default": "./svelte/index.cjs" } + }, + "./vue": { + "import": { + "types": "./vue/index.d.ts", + "default": "./vue/index.js" + }, + "require": { + "types": "./vue/index.d.cts", + "default": "./vue/index.cjs" + } } }, "files": [ "core", "react", "solid", - "svelte" + "svelte", + "vue" ], "publishConfig": { "access": "public" @@ -76,12 +87,14 @@ "react": "18.2.0", "solid-js": "^1.8.15", "svelte": "^4.2.12", - "typescript": "^5.4.5" + "typescript": "^5.4.5", + "vue": "^3.4.21" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0", "solid-js": "^1.7.11", - "svelte": "^4.2.12" + "svelte": "^4.2.12", + "vue": "^3.4.0" }, "peerDependenciesMeta": { "react": { @@ -92,6 +105,9 @@ }, "svelte": { "optional": true + }, + "vue": { + "optional": true } }, "eslintConfig": { @@ -104,8 +120,19 @@ "error", { "patterns": [ - "@uploadthing/dropzone", - "@uploadthing/dropzone/*" + { + "group": [ + "@uploadthing/dropzone", + "@uploadthing/dropzone/*" + ], + "message": "Use relative src imports instead" + } + ], + "paths": [ + { + "name": "effect", + "message": "Use alias imports instead (import * as X from \"effect/X\")" + } ] } ] diff --git a/packages/dropzone/src/core.ts b/packages/dropzone/src/core.ts index 57577a48f..cfaffbcce 100644 --- a/packages/dropzone/src/core.ts +++ b/packages/dropzone/src/core.ts @@ -41,7 +41,12 @@ function accepts(file: File, acceptedFiles: string | string[]): boolean { return true; } -export const isPropagationStopped = (event: Event) => { +export const isPropagationStopped = ( + event: Event & { isPropagationStopped?: () => boolean }, +) => { + if (typeof event.isPropagationStopped === "function") { + return event.isPropagationStopped(); + } if (typeof event.cancelBubble !== "undefined") { return event.cancelBubble; } diff --git a/packages/dropzone/src/types.ts b/packages/dropzone/src/types.ts index 7a7d2e789..ffd6acf2a 100644 --- a/packages/dropzone/src/types.ts +++ b/packages/dropzone/src/types.ts @@ -5,7 +5,7 @@ export type AcceptProp = Record; export type DropzoneOptions = { routeConfig: ExpandedRouteConfig | undefined; minSize?: number; - disabled?: boolean; + disabled?: boolean | undefined; onDrop: (acceptedFiles: FileWithState[]) => void; }; diff --git a/packages/dropzone/src/vue.ts b/packages/dropzone/src/vue.ts new file mode 100644 index 000000000..cfd6ed48f --- /dev/null +++ b/packages/dropzone/src/vue.ts @@ -0,0 +1,290 @@ +import { fromEvent } from "file-selector"; +import type { HTMLAttributes, InputHTMLAttributes, ReservedProps } from "vue"; +import { + computed, + onMounted, + onUnmounted, + reactive, + ref, + toRefs, + watch, +} from "vue"; + +import { + acceptPropAsAcceptAttr, + allFilesAccepted, + initialState, + isEnterOrSpace, + isEventWithFiles, + isFileAccepted, + isIeOrEdge, + isPropagationStopped, + isValidQuantity, + isValidSize, + noop, +} from "./core"; +import type { DropzoneOptions } from "./types"; + +export type * from "./types"; + +export type DropEvent = InputEvent | DragEvent | Event; + +export function useDropzone(options: DropzoneOptions) { + const optionsRef = ref({ + disabled: false, + maxSize: Number.POSITIVE_INFINITY, + minSize: 0, + multiple: true, + maxFiles: 0, + ...options, + }); + watch( + () => ({ ...options }), + (value) => { + optionsRef.value = { ...optionsRef.value, ...value }; + }, + ); + + const acceptAttr = computed(() => + acceptPropAsAcceptAttr(optionsRef.value.accept), + ); + + const rootRef = ref(); + const inputRef = ref(); + const dragTargets = ref([]); + + const state = reactive(initialState); + + const onWindowFocus = () => { + if (state.isFileDialogActive) { + setTimeout(() => { + if (inputRef.value) { + const { files } = inputRef.value; + + if (!files?.length) { + state.isFileDialogActive = false; + } + } + }, 300); + } + }; + + const onDocumentDrop = (event: DropEvent) => { + if (rootRef.value?.contains(event.target as Node)) { + // If we intercepted an event for our instance, let it propagate down to the instance's onDrop handler + return; + } + event.preventDefault(); + dragTargets.value = []; + }; + + const onDocumentDragOver = (e: Pick) => { + e.preventDefault(); + }; + + onMounted(() => { + window.addEventListener("focus", onWindowFocus, false); + document.addEventListener("dragover", onDocumentDragOver, false); + document.addEventListener("drop", onDocumentDrop, false); + }); + onUnmounted(() => { + window.removeEventListener("focus", onWindowFocus, false); + document.removeEventListener("dragover", onDocumentDragOver, false); + document.removeEventListener("drop", onDocumentDrop, false); + }); + + const onDragenter = (event: DragEvent) => { + event.preventDefault(); + + dragTargets.value = [...dragTargets.value, event.target as HTMLElement]; + + if (isEventWithFiles(event)) { + Promise.resolve(fromEvent(event)) + .then((files) => { + if (isPropagationStopped(event)) return; + + const fileCount = files.length; + const isDragAccept = + fileCount > 0 && + allFilesAccepted({ + files: files as File[], + accept: acceptAttr.value!, + minSize: optionsRef.value.minSize, + maxSize: optionsRef.value.maxSize, + multiple: optionsRef.value.multiple, + maxFiles: optionsRef.value.maxFiles, + }); + const isDragReject = fileCount > 0 && !isDragAccept; + + state.isDragAccept = isDragAccept; + state.isDragReject = isDragReject; + state.isDragActive = true; + }) + .catch(noop); + } + }; + + const onDragover = (event: DragEvent) => { + event.preventDefault(); + event.stopPropagation(); + + const hasFiles = isEventWithFiles(event); + if (hasFiles && event.dataTransfer) { + try { + event.dataTransfer.dropEffect = "copy"; + } catch (err) { + noop(); + } + } + + return false; + }; + + const onDragleave = (event: DragEvent) => { + event.preventDefault(); + event.stopPropagation(); + + // Only deactivate once the dropzone and all children have been lef + const targets = dragTargets.value.filter((target) => + rootRef.value?.contains(target), + ); + + // Make sure to remove a target present multiple times only once + // (Firefox may fire dragenter/dragleave multiple times on the same element) + const targetIdx = targets.indexOf(event.target as HTMLElement); + if (targetIdx !== -1) { + targets.splice(targetIdx, 1); + } + dragTargets.value = targets; + if (targets.length > 0) { + return; + } + + state.isDragActive = false; + state.isDragAccept = false; + state.isDragReject = false; + }; + + const setFiles = (files: File[]) => { + const acceptedFiles: File[] = []; + + files.forEach((file) => { + const accepted = isFileAccepted(file, acceptAttr.value!); + const sizeMatch = isValidSize( + file, + optionsRef.value.minSize, + optionsRef.value.maxSize, + ); + + if (accepted && sizeMatch) { + acceptedFiles.push(file); + } + }); + + if ( + !isValidQuantity( + acceptedFiles, + optionsRef.value.multiple, + optionsRef.value.maxFiles, + ) + ) { + acceptedFiles.splice(0); + } + + state.acceptedFiles = acceptedFiles; + optionsRef.value.onDrop?.(acceptedFiles); + }; + + const onDrop = (event: DropEvent) => { + event.preventDefault(); + + dragTargets.value = []; + + if (isEventWithFiles(event)) { + Promise.resolve(fromEvent(event)) + .then((files) => { + if (isPropagationStopped(event)) { + return; + } + setFiles(files as File[]); + }) + .catch(noop); + } + + Object.assign(state, initialState); + }; + + const openFileDialog = () => { + if (inputRef.value) { + state.isFileDialogActive = true; + inputRef.value.value = ""; + inputRef.value.click(); + } + }; + + const onKeydown = (event: KeyboardEvent) => { + // Ignore keyboard events bubbling up the DOM tree + if (!rootRef.value?.isEqualNode(event.target as Node)) { + return; + } + + if (isEnterOrSpace(event)) { + event.preventDefault(); + openFileDialog(); + } + }; + + const onInputElementClick = (event: MouseEvent) => { + event.stopPropagation(); + }; + + const onFocus = () => (state.isFocused = true); + const onBlur = () => (state.isFocused = false); + const onClick = () => { + // In IE11/Edge the file-browser dialog is blocking, therefore, use setTimeout() + // to ensure React can handle state changes + // See: https://github.com/react-dropzone/react-dropzone/issues/450 + isIeOrEdge() ? setTimeout(openFileDialog, 0) : openFileDialog(); + }; + + const getRootProps = (): HTMLAttributes & ReservedProps => ({ + ref: rootRef, + role: "presentation" as const, + ...(!optionsRef.value.disabled + ? ({ + tabindex: 0, + onKeydown, + onFocus, + onBlur, + onClick, + onDragenter, + onDragover, + onDragleave, + onDrop, + } satisfies HTMLAttributes & ReservedProps) + : {}), + }); + + const getInputProps = (): InputHTMLAttributes & ReservedProps => ({ + ref: inputRef, + type: "file", + style: "display: none", + accept: acceptAttr.value ?? "", // exactOptionalPropertyTypes: true + multiple: optionsRef.value.multiple, + tabindex: -1, + ...(!optionsRef.value.disabled + ? ({ + onChange: onDrop, + onClick: onInputElementClick, + } satisfies InputHTMLAttributes & ReservedProps) + : {}), + }); + + return { + ...toRefs(state), + getInputProps, + getRootProps, + rootRef, + inputRef, + }; +} diff --git a/packages/dropzone/turbo.json b/packages/dropzone/turbo.json index da525a7b9..34738dbdc 100644 --- a/packages/dropzone/turbo.json +++ b/packages/dropzone/turbo.json @@ -3,7 +3,7 @@ "extends": ["//"], "pipeline": { "build": { - "outputs": ["core/**", "react/**", "solid/**", "svelte/**"] + "outputs": ["core/**", "react/**", "solid/**", "svelte/**", "vue/**"] } } } diff --git a/packages/mime-types/CHANGELOG.md b/packages/mime-types/CHANGELOG.md index 722fed78f..d08acf31c 100644 --- a/packages/mime-types/CHANGELOG.md +++ b/packages/mime-types/CHANGELOG.md @@ -1,5 +1,19 @@ # @uploadthing/mime-types +## 0.2.9 + +### Patch Changes + +- [#773](https://github.com/pingdotgg/uploadthing/pull/773) [`6906254`](https://github.com/pingdotgg/uploadthing/commit/690625458338a70df5927f1d2405de0de4a58d8f) Thanks [@Bodykudo](https://github.com/Bodykudo)! - Extend supported filetypes by adding dcm (DICOM files) mime type + +## 0.2.8 + +### Patch Changes + +- [#758](https://github.com/pingdotgg/uploadthing/pull/758) [`e637c43`](https://github.com/pingdotgg/uploadthing/commit/e637c43d203b72dabfeb17755b6d22d03c05ea3c) Thanks [@ertucode](https://github.com/ertucode)! - dont initialize exported value in the global scope to improve treeshaking + +- [#764](https://github.com/pingdotgg/uploadthing/pull/764) [`5efcdda`](https://github.com/pingdotgg/uploadthing/commit/5efcddafe9aa11993e16824dae4822bd7a8c8199) Thanks [@juliusmarminge](https://github.com/juliusmarminge)! - chore: update jpeg file extensions + ## 0.2.7 ### Patch Changes diff --git a/packages/mime-types/package.json b/packages/mime-types/package.json index 740bb3923..7df7e37bc 100644 --- a/packages/mime-types/package.json +++ b/packages/mime-types/package.json @@ -1,6 +1,6 @@ { "name": "@uploadthing/mime-types", - "version": "0.2.7", + "version": "0.2.9", "type": "module", "license": "MIT", "main": "./dist/index.cjs", @@ -47,8 +47,19 @@ "error", { "patterns": [ - "@uploadthing/mime-types", - "@uploadthing/mime-types/*" + { + "group": [ + "@uploadthing/mime-types", + "@uploadthing/mime-types/*" + ], + "message": "Use relative src imports instead" + } + ], + "paths": [ + { + "name": "effect", + "message": "Use alias imports instead (import * as X from \"effect/X\")" + } ] } ] diff --git a/packages/mime-types/src/db.ts b/packages/mime-types/src/db.ts index 311a55eb6..6fee9d56d 100644 --- a/packages/mime-types/src/db.ts +++ b/packages/mime-types/src/db.ts @@ -109,6 +109,11 @@ const mimeTypesInternal = { compressible: true, extensions: ["davmount"], }, + "application/dicom": { + source: "iana", + compressible: false, + extensions: ["dcm"], + }, "application/docbook+xml": { source: "apache", compressible: true, @@ -3643,7 +3648,7 @@ const mimeTypesInternal = { "image/jpeg": { source: "iana", compressible: false, - extensions: ["jpeg", "jpg", "jpe"], + extensions: ["jpeg", "jpg", "jpe", "jfif", "pjpeg", "pjp"], }, "image/jph": { source: "iana", diff --git a/packages/nuxt/.nuxtrc b/packages/nuxt/.nuxtrc new file mode 100644 index 000000000..8dd806eee --- /dev/null +++ b/packages/nuxt/.nuxtrc @@ -0,0 +1,3 @@ +imports.autoImport=false +typescript.includeWorkspace=true +experimental.typescriptBundlerResolution=true diff --git a/packages/nuxt/CHANGELOG.md b/packages/nuxt/CHANGELOG.md new file mode 100644 index 000000000..7657f8b04 --- /dev/null +++ b/packages/nuxt/CHANGELOG.md @@ -0,0 +1,39 @@ +# @uploadthing/nuxt + +## 6.5.4 + +### Patch Changes + +- Updated dependencies []: + - @uploadthing/vue@6.5.3 + +## 6.5.3 + +### Patch Changes + +- Updated dependencies []: + - @uploadthing/vue@6.5.2 + +## 6.5.2 + +### Patch Changes + +- Updated dependencies []: + - @uploadthing/vue@6.5.1 + +## 6.5.1 + +### Patch Changes + +- [#767](https://github.com/pingdotgg/uploadthing/pull/767) [`2133e57`](https://github.com/pingdotgg/uploadthing/commit/2133e5710e4265b9da4417771eccc5ef9ad8c2ca) Thanks [@juliusmarminge](https://github.com/juliusmarminge)! - fix bad release artifacts + +## 6.5.0 + +### Minor Changes + +- [#293](https://github.com/pingdotgg/uploadthing/pull/293) [`09870e4`](https://github.com/pingdotgg/uploadthing/commit/09870e43f310c15e48f0089e875c6d9663fd305b) Thanks [@markflorkowski](https://github.com/markflorkowski)! - feat: vue and nuxt support! + +### Patch Changes + +- Updated dependencies [[`09870e4`](https://github.com/pingdotgg/uploadthing/commit/09870e43f310c15e48f0089e875c6d9663fd305b)]: + - @uploadthing/vue@6.5.0 diff --git a/packages/nuxt/README.md b/packages/nuxt/README.md new file mode 100644 index 000000000..1ebf32b7a --- /dev/null +++ b/packages/nuxt/README.md @@ -0,0 +1,155 @@ +# Nuxt UploadThing Module + +[![npm version][npm-version-src]][npm-version-href] +[![npm downloads][npm-downloads-src]][npm-downloads-href] +[![License][license-src]][license-href] [![Nuxt][nuxt-src]][nuxt-href] + +Nuxt module for getting started with UploadThing in your Nuxt app. + +- [✨  Release Notes](/CHANGELOG.md) + +## Quick Setup + +1. Add `@uploadthing/nuxt` and `uploadthing` dependencies to your project + +```bash +# Using pnpm +pnpm add -D @uploadthing/nuxt +pnpm add uploadthing + +# Using yarn +yarn add --dev @uploadthing/nuxt +yarn add uploadthing + +# Using npm +npm install --save-dev @uploadthing/nuxt +npm install uploadthing + +# Using bun +bun add -D @uploadthing/nuxt +bun add uploadthing +``` + +2. Add `@uploadthing/nuxt` to the `modules` section of `nuxt.config.ts` + +```js +export default defineNuxtConfig({ + modules: ["@uploadthing/nuxt"], +}); +``` + +That's it! You can now use @uploadthing/nuxt in your Nuxt app ✨ + +## Usage + +> For full documentation, see the +> [UploadThing docs](https://docs.uploadthing.com/getting-started/nuxt) + +1. Create an upload router in your app: + +```js +// server/uploadthing.ts +import { createUploadthing, UTFiles } from "uploadthing/h3"; +import type { FileRouter } from "uploadthing/h3"; + +const f = createUploadthing(); + +/** + * This is your Uploadthing file router. For more information: + * @see https://docs.uploadthing.com/api-reference/server#file-routes + */ +export const uploadRouter = { + videoAndImage: f({ + image: { + maxFileSize: "4MB", + maxFileCount: 4, + acl: "public-read", + }, + video: { + maxFileSize: "16MB", + }, + }) + .middleware(({ event, files }) => { + // ^? H3Event + + // Return some metadata to be stored with the file + return { foo: "bar" as const }; + }) + .onUploadComplete(({ file, metadata }) => { + // ^? { foo: "bar" } + console.log("upload completed", file); + }), +} satisfies FileRouter; + +export type UploadRouter = typeof uploadRouter; +``` + +2. Mount a component in your app and start uploading files: + +```vue + + + +``` + +Wow, that was easy! + +## Development + +From workspace root: + +```bash +# Install dependencies +pnpm install + +# Develop with the playground +pnpm dev + +# Run ESLint +pnpm lint +``` + + + +[npm-version-src]: + https://img.shields.io/npm/v/@uploadthing/nuxt/latest.svg?style=flat&colorA=18181B&colorB=28CF8D +[npm-version-href]: https://npmjs.com/package/@uploadthing/nuxt +[npm-downloads-src]: + https://img.shields.io/npm/dm/@uploadthing/nuxt.svg?style=flat&colorA=18181B&colorB=28CF8D +[npm-downloads-href]: https://npmjs.com/package/@uploadthing/nuxt +[license-src]: + https://img.shields.io/npm/l/@uploadthing/nuxt.svg?style=flat&colorA=18181B&colorB=28CF8D +[license-href]: https://npmjs.com/package/@uploadthing/nuxt +[nuxt-src]: https://img.shields.io/badge/Nuxt-18181B?logo=nuxt.js +[nuxt-href]: https://nuxt.com diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json new file mode 100644 index 000000000..221d8cff7 --- /dev/null +++ b/packages/nuxt/package.json @@ -0,0 +1,77 @@ +{ + "name": "@uploadthing/nuxt", + "version": "6.5.4", + "type": "module", + "license": "MIT", + "exports": { + ".": { + "types": "./dist/types.d.ts", + "import": "./dist/module.mjs", + "require": "./dist/module.cjs" + } + }, + "main": "./dist/module.cjs", + "types": "./dist/types.d.ts", + "files": [ + "dist" + ], + "scripts": { + "lint": "eslint src --max-warnings 0", + "build": "nuxt-module-build build && tsc && bun run postbuild.ts", + "clean": "git clean -xdf .nuxt dist node_modules", + "dev": "nuxi dev playground --port 3010", + "dev:build": "nuxi build playground", + "dev:prepare": "nuxt-module-build build --stub && nuxt-module-build prepare && nuxi prepare playground", + "prepack": "bun ../../.github/replace-workspace-protocol.ts", + "FIXME__test": "vitest run", + "test:watch": "vitest watch" + }, + "dependencies": { + "@nuxt/kit": "^3.11.2", + "@uploadthing/vue": "workspace:*", + "defu": "^6.1.4" + }, + "devDependencies": { + "@nuxt/devtools": "latest", + "@nuxt/module-builder": "^0.5.5", + "@nuxt/schema": "^3.11.2", + "@nuxt/test-utils": "^3.12.0", + "@uploadthing/eslint-config": "workspace:*", + "eslint": "^8.57.0", + "h3": "^1.11.1", + "nuxt": "^3.11.2", + "uploadthing": "workspace:*" + }, + "peerDependencies": { + "uploadthing": "^6.10.0" + }, + "eslintConfig": { + "root": true, + "extends": [ + "@uploadthing/eslint-config/base" + ], + "rules": { + "@typescript-eslint/no-unused-vars": "off", + "no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": [ + "@uploadthing/nuxt", + "@uploadthing/nuxt/*" + ], + "message": "Use relative src imports instead" + } + ], + "paths": [ + { + "name": "effect", + "message": "Use alias imports instead (import * as X from \"effect/X\")" + } + ] + } + ] + } + } +} diff --git a/packages/nuxt/playground/.env.example b/packages/nuxt/playground/.env.example new file mode 100644 index 000000000..dc605e266 --- /dev/null +++ b/packages/nuxt/playground/.env.example @@ -0,0 +1,3 @@ +# Go to https://uploadthing.com/dashboard to get your API secret +NUXT_UPLOADTHING_SECRET='sk_live_xxx' +NUXT_UPLOADTHING_APP_ID='xxx' \ No newline at end of file diff --git a/packages/nuxt/playground/app.vue b/packages/nuxt/playground/app.vue new file mode 100644 index 000000000..4121cd861 --- /dev/null +++ b/packages/nuxt/playground/app.vue @@ -0,0 +1,61 @@ + + + diff --git a/packages/nuxt/playground/nuxt.config.ts b/packages/nuxt/playground/nuxt.config.ts new file mode 100644 index 000000000..f702f89fe --- /dev/null +++ b/packages/nuxt/playground/nuxt.config.ts @@ -0,0 +1,5 @@ +// https://nuxt.com/docs/api/configuration/nuxt-config +export default defineNuxtConfig({ + devtools: { enabled: true }, + modules: ["../src/module"], +}); diff --git a/packages/nuxt/playground/package.json b/packages/nuxt/playground/package.json new file mode 100644 index 000000000..b89e19f84 --- /dev/null +++ b/packages/nuxt/playground/package.json @@ -0,0 +1,14 @@ +{ + "private": true, + "name": "nuxt-uploadthing-playground", + "type": "module", + "scripts": { + "build": "nuxi build", + "clean": "git clean -xdf .nuxt .output node_modules", + "dev": "nuxi dev --port 3010", + "generate": "nuxi generate" + }, + "devDependencies": { + "nuxt": "^3.11.2" + } +} diff --git a/packages/nuxt/playground/server/tsconfig.json b/packages/nuxt/playground/server/tsconfig.json new file mode 100644 index 000000000..b9ed69c19 --- /dev/null +++ b/packages/nuxt/playground/server/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "../.nuxt/tsconfig.server.json" +} diff --git a/packages/nuxt/playground/server/uploadthing.ts b/packages/nuxt/playground/server/uploadthing.ts new file mode 100644 index 000000000..9d74caeb3 --- /dev/null +++ b/packages/nuxt/playground/server/uploadthing.ts @@ -0,0 +1,49 @@ +import { createUploadthing } from "uploadthing/h3"; +import type { FileRouter } from "uploadthing/h3"; + +const f = createUploadthing({ + /** + * Log out more information about the error, but don't return it to the client + * @see https://docs.uploadthing.com/errors#error-formatting + */ + errorFormatter: (err) => { + console.log("Error uploading file", err.message); + console.log(" - Above error caused by:", err.cause); + + return { message: err.message }; + }, +}); + +/** + * This is your Uploadthing file router. For more information: + * @see https://docs.uploadthing.com/api-reference/server#file-routes + */ +export const uploadRouter = { + videoAndImage: f({ + image: { + maxFileSize: "4MB", + maxFileCount: 4, + }, + video: { + maxFileSize: "16MB", + }, + }) + .middleware(({ req }) => { + // Check some condition based on the incoming requrest + req; + //^? + // if (!req.headers.get("x-some-header")) { + // throw new Error("x-some-header is required"); + // } + + // Return some metadata to be stored with the file + return { foo: "bar" as const }; + }) + .onUploadComplete(({ file, metadata }) => { + metadata; + // ^? + console.log("upload completed", file); + }), +} satisfies FileRouter; + +export type OurFileRouter = typeof uploadRouter; diff --git a/packages/nuxt/playground/tsconfig.json b/packages/nuxt/playground/tsconfig.json new file mode 100644 index 000000000..8710d0a15 --- /dev/null +++ b/packages/nuxt/playground/tsconfig.json @@ -0,0 +1,6 @@ +{ + "extends": "./.nuxt/tsconfig.json", + "compilerOptions": { + "declaration": false + } +} diff --git a/packages/nuxt/postbuild.ts b/packages/nuxt/postbuild.ts new file mode 100644 index 000000000..799cfab44 --- /dev/null +++ b/packages/nuxt/postbuild.ts @@ -0,0 +1,37 @@ +/** + * this fixes up the types in the dist folder caused by a bug in nuxt's module builder + */ + +const filesToPatch = [ + "dist/runtime/components/button.d.ts", + "dist/runtime/components/dropzone.d.ts", + "dist/runtime/composables/useUploadThing.d.ts", +]; + +// - Insert import-shim at the top of each file +// - Replace refernces to `{}[TEndpoint]` with `UploadRouter[TEndpoint]` +// - Replace `TEndpoint extends never` with `TEndpoint extends keyof UploadRouter` +// - Replace `TEndpoint extends string | number | symbol` with `TEndpoint extends keyof UploadRouter` +for (const file of filesToPatch) { + let content = await Bun.file(file).text(); + content = [ + 'import type { UploadRouter } from "#uploadthing-router"', + content, + ].join(";\n"); + content = content + .replaceAll( + "TEndpoint extends string | number | symbol", + "TEndpoint extends keyof UploadRouter", + ) + .replaceAll( + "TEndpoint extends never", + "TEndpoint extends keyof UploadRouter", + ) + .replaceAll("{}[TEndpoint]", "UploadRouter[TEndpoint]") + .replaceAll("<{}, TEndpoint", "; + +// Module options TypeScript interface definition +export type ModuleOptions = HandlerConfig & { + routerPath: string; + secret?: string; + appId?: string; +}; + +export default defineNuxtModule({ + meta: { + name: "@uploadthing/nuxt", + configKey: "uploadthing", + compatibility: { + nuxt: "^3.0.0", + }, + }, + defaults: { + routerPath: "~/server/uploadthing", + }, + async setup(options, nuxt) { + const logger = useLogger("uploadthing"); + const resolver = createResolver(import.meta.url); + + nuxt.options.runtimeConfig.uploadthing = defu( + nuxt.options.runtimeConfig.uploadthing as any, + { + secret: options.secret, + appId: options.appId, + logLevel: options.logLevel, + }, + ); + + // Set path to router + const routerPath = await resolvePath(options.routerPath); + nuxt.options.alias["#uploadthing-router"] = routerPath; + if (!existsSync(routerPath)) { + logger.warn( + `To use uploadthing, please create a router file at \`${options.routerPath}\`.`, + ); + // Default 'empty' router for typing `useUploadThing` + nuxt.options.alias["#uploadthing-router"] = resolver.resolve( + "./runtime/server/router", + ); + } + + // Restart when router file is added or removed + nuxt.hook("builder:watch", (event, path) => { + if (event !== "add" && event !== "unlink") { + return; + } + path = resolve(nuxt.options.srcDir, path); + if (path === routerPath || path.startsWith(routerPath)) { + void nuxt.hooks.callHook("restart", { hard: true }); + } + }); + + await addComponent({ + name: "UploadButton", + filePath: resolver.resolve("./runtime/components/button"), + }); + await addComponent({ + name: "UploadDropzone", + filePath: resolver.resolve("./runtime/components/dropzone"), + }); + // FIXME: Use Tailwind Wrapper if the user has Tailwind installed + nuxt.options.css.push("@uploadthing/vue/styles.css"); + + addImports({ + name: "useUploadThing", + as: "useUploadThing", + from: resolver.resolve("./runtime/composables/useUploadThing"), + }); + + addServerHandler({ + route: "/api/uploadthing", + handler: resolver.resolve("./runtime/server/api/uploadthing"), + }); + }, +}); diff --git a/packages/nuxt/src/runtime/components/button.ts b/packages/nuxt/src/runtime/components/button.ts new file mode 100644 index 000000000..b090730a7 --- /dev/null +++ b/packages/nuxt/src/runtime/components/button.ts @@ -0,0 +1,7 @@ +import type { UploadRouter } from "#uploadthing-router"; + +import { generateUploadButton } from "@uploadthing/vue"; + +const UploadButton = generateUploadButton(); + +export default UploadButton; diff --git a/packages/nuxt/src/runtime/components/dropzone.ts b/packages/nuxt/src/runtime/components/dropzone.ts new file mode 100644 index 000000000..99e0c5fea --- /dev/null +++ b/packages/nuxt/src/runtime/components/dropzone.ts @@ -0,0 +1,7 @@ +import type { UploadRouter } from "#uploadthing-router"; + +import { generateUploadDropzone } from "@uploadthing/vue"; + +const UploadDropzone = generateUploadDropzone(); + +export default UploadDropzone; diff --git a/packages/nuxt/src/runtime/composables/useUploadThing.ts b/packages/nuxt/src/runtime/composables/useUploadThing.ts new file mode 100644 index 000000000..78e8be257 --- /dev/null +++ b/packages/nuxt/src/runtime/composables/useUploadThing.ts @@ -0,0 +1,5 @@ +import type { UploadRouter } from "#uploadthing-router"; + +import { generateVueHelpers } from "@uploadthing/vue"; + +export const { useUploadThing } = generateVueHelpers(); diff --git a/packages/nuxt/src/runtime/server/api/uploadthing.ts b/packages/nuxt/src/runtime/server/api/uploadthing.ts new file mode 100644 index 000000000..b2deeec0f --- /dev/null +++ b/packages/nuxt/src/runtime/server/api/uploadthing.ts @@ -0,0 +1,20 @@ +/* eslint-disable @typescript-eslint/no-unsafe-member-access */ +/* eslint-disable @typescript-eslint/no-unsafe-assignment */ +import { useRuntimeConfig } from "#imports"; +import { uploadRouter } from "#uploadthing-router"; +import { defineEventHandler } from "h3"; + +import { createRouteHandler } from "uploadthing/h3"; + +export default defineEventHandler((event) => { + const runtime = useRuntimeConfig() as any; + + return createRouteHandler({ + router: uploadRouter, + config: { + ...runtime.uploadthing, + uploadthingSecret: runtime.uploadthing?.secret, + uploadthingId: runtime.uploadthing?.appId, + }, + })(event); +}); diff --git a/packages/nuxt/src/runtime/server/router.ts b/packages/nuxt/src/runtime/server/router.ts new file mode 100644 index 000000000..397ce0162 --- /dev/null +++ b/packages/nuxt/src/runtime/server/router.ts @@ -0,0 +1,8 @@ +import { createUploadthing } from "uploadthing/h3"; +import type { FileRouter } from "uploadthing/h3"; + +const f = createUploadthing(); + +export const uploadRouter = {} satisfies FileRouter; + +export type UploadRouter = typeof uploadRouter; diff --git a/packages/nuxt/tsconfig.json b/packages/nuxt/tsconfig.json new file mode 100644 index 000000000..85f7d7d94 --- /dev/null +++ b/packages/nuxt/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "./.nuxt/tsconfig.json", + "include": ["src"], + "compilerOptions": { + "declaration": true, + "noEmit": false, + "emitDeclarationOnly": false, + "outDir": "dist" + } +} diff --git a/packages/nuxt/turbo.json b/packages/nuxt/turbo.json new file mode 100644 index 000000000..aa47fc0b5 --- /dev/null +++ b/packages/nuxt/turbo.json @@ -0,0 +1,31 @@ +{ + "$schema": "https://turbo.build/schema.json", + "extends": ["//"], + "pipeline": { + "dev:prepare": { + "dependsOn": ["^build"], + "outputs": [ + "dist/**", + ".nuxt/**", + "playground/dist/**", + "playground/.nuxt/**" + ], + "cache": false + }, + "dev": { + "dependsOn": ["dev:prepare"], + "cache": false, + "persistent": true + }, + "build": { + "dependsOn": ["^build", "dev:prepare"], + "outputs": ["dist/**", ".nuxt/**"], + "cache": false + }, + "lint": { + "dependsOn": ["^topo", "^build", "dev:prepare"], + "outputs": [], + "cache": false + } + } +} diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md index 2b9bc30dd..d6c94fcc7 100644 --- a/packages/react/CHANGELOG.md +++ b/packages/react/CHANGELOG.md @@ -1,5 +1,38 @@ # @uploadthing/react +## 6.5.3 + +### Patch Changes + +- Updated dependencies [[`a1481a2`](https://github.com/pingdotgg/uploadthing/commit/a1481a2ae1221dc7e1091a364c8efd7fa3035544)]: + - @uploadthing/shared@6.7.3 + +## 6.5.2 + +### Patch Changes + +- Updated dependencies [[`69165fc`](https://github.com/pingdotgg/uploadthing/commit/69165fc4b4e4b02fe27e02d1991ea2cd3ae45c8a), [`6da018b`](https://github.com/pingdotgg/uploadthing/commit/6da018bfd4f2812ad81f36a7e3c9e3567c435b0b)]: + - @uploadthing/shared@6.7.2 + +## 6.5.1 + +### Patch Changes + +- Updated dependencies [[`594ae8a`](https://github.com/pingdotgg/uploadthing/commit/594ae8ae214ff717937c4787a3b8d1bd40b832cc), [`594ae8a`](https://github.com/pingdotgg/uploadthing/commit/594ae8ae214ff717937c4787a3b8d1bd40b832cc), [`0abfa03`](https://github.com/pingdotgg/uploadthing/commit/0abfa031d108edead78d9b71a61d2bfb7ad53a64)]: + - @uploadthing/shared@6.7.1 + +## 6.5.0 + +### Minor Changes + +- [#457](https://github.com/pingdotgg/uploadthing/pull/457) [`ea7e41b`](https://github.com/pingdotgg/uploadthing/commit/ea7e41b5d9d85135540d9b51fa5551859fbe7623) Thanks [@markflorkowski](https://github.com/markflorkowski)! - Effect rewrite + +### Patch Changes + +- Updated dependencies [[`9b93886`](https://github.com/pingdotgg/uploadthing/commit/9b938860d49a1a593e38804f81c759925d713605), [`ea7e41b`](https://github.com/pingdotgg/uploadthing/commit/ea7e41b5d9d85135540d9b51fa5551859fbe7623), [`41de3c5`](https://github.com/pingdotgg/uploadthing/commit/41de3c55c8bd808166449c09e9006650178067d5), [`09870e4`](https://github.com/pingdotgg/uploadthing/commit/09870e43f310c15e48f0089e875c6d9663fd305b)]: + - @uploadthing/dropzone@0.4.0 + - @uploadthing/shared@6.7.0 + ## 6.4.4 ### Patch Changes diff --git a/packages/react/package.json b/packages/react/package.json index 78b2ec4da..c6aee2940 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@uploadthing/react", - "version": "6.4.4", + "version": "6.5.3", "type": "module", "license": "MIT", "main": "./dist/index.cjs", @@ -69,7 +69,7 @@ "peerDependencies": { "next": "*", "react": "^17.0.2 || ^18.0.0", - "uploadthing": "^6.5.1" + "uploadthing": "^6.10.0" }, "peerDependenciesMeta": { "next": { @@ -100,8 +100,19 @@ "error", { "patterns": [ - "@uploadthing/react", - "@uploadthing/react/*" + { + "group": [ + "@uploadthing/react", + "@uploadthing/react/*" + ], + "message": "Use relative src imports instead" + } + ], + "paths": [ + { + "name": "effect", + "message": "Use alias imports instead (import * as X from \"effect/X\")" + } ] } ] diff --git a/packages/react/src/hooks/use-fetch.ts b/packages/react/src/hooks/use-fetch.ts index 40c874d10..af7353e9c 100644 --- a/packages/react/src/hooks/use-fetch.ts +++ b/packages/react/src/hooks/use-fetch.ts @@ -4,8 +4,8 @@ import { useEffect, useReducer, useRef } from "react"; import { safeParseJSON } from "@uploadthing/shared"; interface State { - data?: T; - error?: Error; + data?: T | undefined; + error?: Error | undefined; } type Cache = Record; diff --git a/packages/react/src/hooks/use-uploadthing.ts b/packages/react/src/hooks/use-uploadthing.ts index 15e0bede7..ea29abdc3 100644 --- a/packages/react/src/hooks/use-uploadthing.ts +++ b/packages/react/src/hooks/use-uploadthing.ts @@ -109,7 +109,7 @@ export const INTERNAL_uploadthingHookGen = < } opts?.onUploadProgress?.(0, undefined); try { - const res = await uploadFiles(endpoint, { + const res = await uploadFiles(endpoint, { headers: opts?.headers, files: filesToUpload, skipPolling: opts?.skipPolling, diff --git a/packages/react/src/types.ts b/packages/react/src/types.ts index 29eec0f8d..6e4a1e18c 100644 --- a/packages/react/src/types.ts +++ b/packages/react/src/types.ts @@ -36,41 +36,45 @@ export type UseUploadthingProps< /** * Controllable state for the files to upload */ - files?: FileWithState[]; + files?: FileWithState[] | undefined; /** * Called when the files are changed */ - onFilesChange?: (files: FileWithState[]) => void; + onFilesChange?: ((files: FileWithState[]) => void) | undefined; /** * Called when the upload is submitted and the server is about to be queried for presigned URLs * Can be used to modify the files before they are uploaded, e.g. renaming them */ - onBeforeUploadBegin?: (files: File[]) => Promise | File[]; + onBeforeUploadBegin?: + | ((files: File[]) => Promise | File[]) + | undefined; /** * Called when presigned URLs have been retrieved and the file upload is about to begin */ - onUploadBegin?: (fileName: string) => void; + onUploadBegin?: ((fileName: string) => void) | undefined; /** * Called continuously as the file is uploaded to the storage provider */ - onUploadProgress?: ( - /** - * The overall progress of the upload - */ - p: number, - /** - * The event that triggered the progress update - * with the filename and that file's progress - */ - e: { file: string; progress: number } | undefined, - ) => void; + onUploadProgress?: + | (( + /** + * The overall progress of the upload + */ + p: number, + /** + * The event that triggered the progress update + * with the filename and that file's progress + */ + e: { file: string; progress: number } | undefined, + ) => void) + | undefined; /** * Skip polling for server data after upload is complete * Useful if you want faster response times and don't need * any data returned from the server `onUploadComplete` callback * @default false */ - skipPolling?: TSkipPolling; + skipPolling?: TSkipPolling | undefined; /** * Called when the file uploads are completed * - If `skipPolling` is `true`, this will be called once @@ -78,18 +82,20 @@ export type UseUploadthingProps< * - If `skipPolling` is `false`, this will be called after * the serverside `onUploadComplete` callback has finished */ - onClientUploadComplete?: ( - res: ClientUploadedFileData[], - ) => void; + onClientUploadComplete?: + | ((res: ClientUploadedFileData[]) => void) + | undefined; /** * Called if the upload fails */ - onUploadError?: (e: UploadThingError>) => void; + onUploadError?: + | ((e: UploadThingError>) => void) + | undefined; /** * Set custom headers that'll get sent with requests * to your server */ - headers?: HeadersInit | (() => MaybePromise); + headers?: HeadersInit | (() => MaybePromise) | undefined; }; export type UploadthingComponentProps< diff --git a/packages/shared/CHANGELOG.md b/packages/shared/CHANGELOG.md index 641d8e768..867439778 100644 --- a/packages/shared/CHANGELOG.md +++ b/packages/shared/CHANGELOG.md @@ -1,5 +1,41 @@ # @uploadthing/shared +## 6.7.3 + +### Patch Changes + +- [#792](https://github.com/pingdotgg/uploadthing/pull/792) [`a1481a2`](https://github.com/pingdotgg/uploadthing/commit/a1481a2ae1221dc7e1091a364c8efd7fa3035544) Thanks [@juliusmarminge](https://github.com/juliusmarminge)! - fix: isPollingResponse was not checking against response json + +## 6.7.2 + +### Patch Changes + +- [#791](https://github.com/pingdotgg/uploadthing/pull/791) [`69165fc`](https://github.com/pingdotgg/uploadthing/commit/69165fc4b4e4b02fe27e02d1991ea2cd3ae45c8a) Thanks [@juliusmarminge](https://github.com/juliusmarminge)! - fix: catch FiberFailure's and squash them to the original error + +- [#783](https://github.com/pingdotgg/uploadthing/pull/783) [`6da018b`](https://github.com/pingdotgg/uploadthing/commit/6da018bfd4f2812ad81f36a7e3c9e3567c435b0b) Thanks [@datner](https://github.com/datner)! - refactoring small parts of uploadFile and related utils + +## 6.7.1 + +### Patch Changes + +- [#770](https://github.com/pingdotgg/uploadthing/pull/770) [`594ae8a`](https://github.com/pingdotgg/uploadthing/commit/594ae8ae214ff717937c4787a3b8d1bd40b832cc) Thanks [@juliusmarminge](https://github.com/juliusmarminge)! - fix: add missing `fast-check` peer dependency from `@effect/schema` + +- [#770](https://github.com/pingdotgg/uploadthing/pull/770) [`594ae8a`](https://github.com/pingdotgg/uploadthing/commit/594ae8ae214ff717937c4787a3b8d1bd40b832cc) Thanks [@juliusmarminge](https://github.com/juliusmarminge)! - fix: better error logging for bad requests + +- [#775](https://github.com/pingdotgg/uploadthing/pull/775) [`0abfa03`](https://github.com/pingdotgg/uploadthing/commit/0abfa031d108edead78d9b71a61d2bfb7ad53a64) Thanks [@tim-smart](https://github.com/tim-smart)! - update "effect" & switch to alias imports + +## 6.7.0 + +### Minor Changes + +- [#457](https://github.com/pingdotgg/uploadthing/pull/457) [`ea7e41b`](https://github.com/pingdotgg/uploadthing/commit/ea7e41b5d9d85135540d9b51fa5551859fbe7623) Thanks [@markflorkowski](https://github.com/markflorkowski)! - Effect rewrite + +- [#293](https://github.com/pingdotgg/uploadthing/pull/293) [`09870e4`](https://github.com/pingdotgg/uploadthing/commit/09870e43f310c15e48f0089e875c6d9663fd305b) Thanks [@markflorkowski](https://github.com/markflorkowski)! - feat: vue and nuxt support! + +### Patch Changes + +- [`41de3c5`](https://github.com/pingdotgg/uploadthing/commit/41de3c55c8bd808166449c09e9006650178067d5) Thanks [@juliusmarminge](https://github.com/juliusmarminge)! - chore: force dependency bumps + ## 6.6.0 ### Minor Changes diff --git a/packages/shared/package.json b/packages/shared/package.json index 729e23842..a45e84da6 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -1,6 +1,6 @@ { "name": "@uploadthing/shared", - "version": "6.6.0", + "version": "6.7.3", "type": "module", "license": "MIT", "main": "dist/index.cjs", @@ -33,6 +33,10 @@ "prepack": "bun ../../.github/replace-workspace-protocol.ts", "typecheck": "tsc --noEmit" }, + "dependencies": { + "effect": "^3.1.0", + "std-env": "^3.7.0" + }, "devDependencies": { "@types/react": "18.2.78", "@uploadthing/eslint-config": "workspace:", @@ -43,6 +47,7 @@ "react": "18.2.0", "solid-js": "^1.8.15", "typescript": "^5.4.5", + "vue": "^3.4.21", "wait-on": "^7.2.0" }, "peerDependencies": { @@ -55,22 +60,30 @@ }, "eslintConfig": { "root": true, + "extends": [ + "@uploadthing/eslint-config/base" + ], "rules": { "no-restricted-imports": [ "error", { "patterns": [ - "@uploadthing/shared", - "@uploadthing/shared/*" + { + "group": [ + "@uploadthing/shared", + "@uploadthing/shared/*" + ], + "message": "Use relative src imports instead" + } + ], + "paths": [ + { + "name": "effect", + "message": "Use alias imports instead (import * as X from \"effect/X\")" + } ] } ] - }, - "extends": [ - "@uploadthing/eslint-config/base" - ] - }, - "dependencies": { - "std-env": "^3.7.0" + } } } diff --git a/packages/shared/src/component-utils.ts b/packages/shared/src/component-utils.ts index 78bbb33c0..43fac0e5d 100644 --- a/packages/shared/src/component-utils.ts +++ b/packages/shared/src/component-utils.ts @@ -1,5 +1,6 @@ import type { CSSProperties, ReactNode } from "react"; import type { JSX } from "solid-js/jsx-runtime"; +import type { RenderFunction, StyleValue } from "vue"; import type { ExpandedRouteConfig } from "./types"; import { objectKeys } from "./utils"; @@ -13,19 +14,28 @@ export const generateMimeTypes = (fileTypes: string[]) => { }); if (accepted.includes("blob")) { - return undefined; + return []; } return accepted; }; export const generateClientDropzoneAccept = (fileTypes: string[]) => { const mimeTypes = generateMimeTypes(fileTypes); - - if (!mimeTypes) return undefined; - return Object.fromEntries(mimeTypes.map((type) => [type, []])); }; +export function getFilesFromClipboardEvent(event: ClipboardEvent) { + const dataTransferItems = event.clipboardData?.items; + if (!dataTransferItems) return; + + const files = Array.from(dataTransferItems).reduce((acc, curr) => { + const f = curr.getAsFile(); + return f ? [...acc, f] : acc; + }, []); + + return files; +} + /** * Shared helpers for our premade components that's reusable by multiple frameworks */ @@ -84,7 +94,7 @@ export const allowedContentTextLabelGenerator = ( return capitalizeStart(INTERNAL_doFormatting(config)); }; -type AnyRuntime = "react" | "solid" | "svelte"; +type AnyRuntime = "react" | "solid" | "svelte" | "vue"; type MinCallbackArg = { __runtime: AnyRuntime }; type inferRuntime = T["__runtime"] extends "react" ? "react" @@ -92,18 +102,24 @@ type inferRuntime = T["__runtime"] extends "react" ? "solid" : T["__runtime"] extends "svelte" ? "svelte" - : never; + : T["__runtime"] extends "vue" + ? "vue" + : never; type ElementEsque = TRuntime extends "react" ? ReactNode - : JSX.Element; + : TRuntime extends "solid" + ? JSX.Element + : ReturnType; type CSSPropertiesEsque = TRuntime extends "react" ? CSSProperties : TRuntime extends "solid" ? JSX.CSSProperties : TRuntime extends "svelte" ? string - : never; + : TRuntime extends "vue" + ? StyleValue + : never; export type StyleField< CallbackArg extends MinCallbackArg, diff --git a/packages/shared/src/effect.ts b/packages/shared/src/effect.ts new file mode 100644 index 000000000..f36e0e89a --- /dev/null +++ b/packages/shared/src/effect.ts @@ -0,0 +1,93 @@ +import * as Context from "effect/Context"; +import * as Duration from "effect/Duration"; +import * as Effect from "effect/Effect"; +import { pipe } from "effect/Function"; +import * as Schedule from "effect/Schedule"; + +import { BadRequestError, FetchError, InvalidJsonError } from "./tagged-errors"; +import type { FetchEsque, ResponseEsque } from "./types"; +import { filterObjectValues } from "./utils"; + +export type FetchContextService = { + fetch: FetchEsque; + baseHeaders: Record & { + "x-uploadthing-version": string; + "x-uploadthing-api-key": string | undefined; + "x-uploadthing-fe-package": string | undefined; + "x-uploadthing-be-adapter": string | undefined; + }; +}; +export class FetchContext extends Context.Tag("uploadthing/FetchContext")< + FetchContext, + FetchContextService +>() {} + +interface ResponseWithURL extends ResponseEsque { + requestUrl: string; +} + +// Temporary Effect wrappers below. +// TODO should be refactored with much love +// TODO handle error properly +export const fetchEff = ( + input: string | URL, + init?: RequestInit, +): Effect.Effect => + Effect.flatMap(FetchContext, ({ fetch, baseHeaders }) => { + const reqInfo = { + url: input.toString(), + method: init?.method, + body: init?.body, + headers: { + ...filterObjectValues(baseHeaders, (v): v is string => v != null), + ...init?.headers, + }, + }; + return Effect.tryPromise({ + try: () => fetch(input, { ...init, headers: reqInfo.headers }), + catch: (error) => new FetchError({ error, input: reqInfo }), + }).pipe( + Effect.map((res) => Object.assign(res, { requestUrl: reqInfo.url })), + Effect.withSpan("fetch", { attributes: { reqInfo } }), + ); + }); + +export const parseResponseJson = ( + res: ResponseWithURL, +): Effect.Effect => + Effect.tryPromise({ + try: async () => { + const json = await res.json(); + return { json, ok: res.ok, status: res.status }; + }, + catch: (error) => new InvalidJsonError({ error, input: res.requestUrl }), + }).pipe( + Effect.filterOrFail( + ({ ok }) => ok, + ({ json, status }) => + new BadRequestError({ + status, + message: `Request to ${res.requestUrl} failed with status ${status}`, + json, + }), + ), + Effect.map(({ json }) => json), + Effect.withSpan("parseJson"), + ); + +export const parseRequestJson = (req: Request) => + Effect.tryPromise({ + try: () => req.json() as Promise, + catch: (error) => new InvalidJsonError({ error, input: req.url }), + }).pipe(Effect.withSpan("parseRequestJson")); + +/** + * Schedule that retries with exponential backoff, up to 1 minute. + * 10ms * 4^n, where n is the number of retries. + */ +export const exponentialBackoff = pipe( + Schedule.exponential(Duration.millis(10), 4), // 10ms, 40ms, 160ms, 640ms... + Schedule.andThenEither(Schedule.spaced(Duration.seconds(1))), + Schedule.compose(Schedule.elapsed), + Schedule.whileOutput(Duration.lessThanOrEqualTo(Duration.minutes(1))), +); diff --git a/packages/shared/src/error.ts b/packages/shared/src/error.ts index 3083104a4..31c64f41b 100644 --- a/packages/shared/src/error.ts +++ b/packages/shared/src/error.ts @@ -1,5 +1,7 @@ -import type { Json, ResponseEsque } from "./types"; -import { isObject, safeParseJSON } from "./utils"; +import { TaggedError } from "effect/Data"; + +import type { Json } from "./types"; +import { isObject } from "./utils"; const ERROR_CODES = { // Generic @@ -25,7 +27,7 @@ const ERROR_CODES = { type ErrorCode = keyof typeof ERROR_CODES; type UploadThingErrorOptions = { code: keyof typeof ERROR_CODES; - message?: string; + message?: string | undefined; cause?: unknown; data?: T; }; @@ -56,10 +58,10 @@ export interface SerializedUploadThingError { export class UploadThingError< TShape extends Json = { message: string }, -> extends Error { +> extends TaggedError("UploadThingError")<{ message: string }> { public readonly cause?: unknown; public readonly code: ErrorCode; - public readonly data?: TShape; + public readonly data: TShape | undefined; constructor(initOpts: UploadThingErrorOptions | string) { const opts: UploadThingErrorOptions = @@ -68,13 +70,17 @@ export class UploadThingError< : initOpts; const message = opts.message ?? messageFromUnknown(opts.cause, opts.code); - super(message); + super({ message }); this.code = opts.code; this.data = opts.data; if (opts.cause instanceof Error) { this.cause = opts.cause; - } else if (opts.cause instanceof Response) { + } else if ( + isObject(opts.cause) && + typeof opts.cause.status === "number" && + typeof opts.cause.statusText === "string" + ) { this.cause = new Error( `Response ${opts.cause.status} ${opts.cause.statusText}`, ); @@ -85,32 +91,6 @@ export class UploadThingError< } } - public static async fromResponse(response: ResponseEsque) { - const jsonOrError = await safeParseJSON(response); - if (jsonOrError instanceof Error) { - return new UploadThingError({ - message: jsonOrError.message, - code: getErrorTypeFromStatusCode(response.status), - cause: response, - }); - } - - let message: string | undefined = undefined; - if (isObject(jsonOrError)) { - if (typeof jsonOrError.message === "string") { - message = jsonOrError.message; - } else if (typeof jsonOrError.error === "string") { - message = jsonOrError.error; - } - } - return new UploadThingError({ - message, - code: getErrorTypeFromStatusCode(response.status), - cause: response, - data: jsonOrError, - }); - } - public static toObject(error: UploadThingError): SerializedUploadThingError { return { code: error.code, @@ -124,11 +104,7 @@ export class UploadThingError< } } -export function getStatusCodeFromError(error: UploadThingError) { - return ERROR_CODES[error.code] ?? 500; -} - -function getErrorTypeFromStatusCode(statusCode: number): ErrorCode { +export function getErrorTypeFromStatusCode(statusCode: number): ErrorCode { for (const [code, status] of Object.entries(ERROR_CODES)) { if (status === statusCode) { return code as ErrorCode; @@ -137,6 +113,10 @@ function getErrorTypeFromStatusCode(statusCode: number): ErrorCode { return "INTERNAL_SERVER_ERROR"; } +export function getStatusCodeFromError(error: UploadThingError) { + return ERROR_CODES[error.code] ?? 500; +} + export const INTERNAL_DO_NOT_USE__fatalClientError = (e: Error) => new UploadThingError({ code: "INTERNAL_CLIENT_ERROR", diff --git a/packages/shared/src/index.ts b/packages/shared/src/index.ts index 0e56fc132..ec6392eed 100644 --- a/packages/shared/src/index.ts +++ b/packages/shared/src/index.ts @@ -2,5 +2,7 @@ export * from "./types"; export * from "./utils"; export * from "./file-types"; export * from "./error"; +export * from "./effect"; export * from "./component-utils"; export * from "./crypto"; +export * from "./tagged-errors"; diff --git a/packages/shared/src/tagged-errors.ts b/packages/shared/src/tagged-errors.ts new file mode 100644 index 000000000..2ec8a196d --- /dev/null +++ b/packages/shared/src/tagged-errors.ts @@ -0,0 +1,91 @@ +import { TaggedError } from "effect/Data"; + +import { isObject } from "./utils"; + +export class InvalidRouteConfigError extends TaggedError("InvalidRouteConfig")<{ + reason: string; +}> { + constructor(type: string, field?: string) { + const reason = field + ? `Expected route config to have a ${field} for key ${type} but none was found.` + : `Encountered an invalid route config during backfilling. ${type} was not found.`; + super({ reason }); + } +} + +export class UnknownFileTypeError extends TaggedError("UnknownFileType")<{ + reason: string; +}> { + constructor(fileName: string) { + const reason = `Could not determine type for ${fileName}`; + super({ reason }); + } +} + +export class InvalidFileTypeError extends TaggedError("InvalidFileType")<{ + reason: string; +}> { + constructor(fileType: string, fileName: string) { + const reason = `File type ${fileType} not allowed for ${fileName}`; + super({ reason }); + } +} + +export class InvalidFileSizeError extends TaggedError("InvalidFileSize")<{ + reason: string; +}> { + constructor(fileSize: string) { + const reason = `Invalid file size: ${fileSize}`; + super({ reason }); + } +} + +export class InvalidURLError extends TaggedError("InvalidURL")<{ + reason: string; +}> { + constructor(attemptedUrl: string) { + super({ reason: `Failed to parse '${attemptedUrl}' as a URL.` }); + } +} + +export class RetryError extends TaggedError("RetryError") {} + +/** + * @internal + */ +export const getRequestUrl = (input: RequestInfo | URL) => { + if (input instanceof Request) { + return input.url; + } + return input.toString(); +}; + +export class FetchError extends TaggedError("FetchError")<{ + readonly input: { + url: string; + method: string | undefined; + body: unknown; + headers: Record; + }; + readonly error: unknown; +}> {} + +export class InvalidJsonError extends TaggedError("InvalidJsonError")<{ + readonly input: unknown; + readonly error: unknown; +}> {} + +export class BadRequestError extends TaggedError( + "BadRequestError", +)<{ + readonly message: string; + readonly status: number; + readonly json: T; +}> { + getMessage() { + if (isObject(this.json)) { + if (typeof this.json.message === "string") return this.json.message; + } + return this.message; + } +} diff --git a/packages/shared/src/types.ts b/packages/shared/src/types.ts index b63bee9ba..2ed664f82 100644 --- a/packages/shared/src/types.ts +++ b/packages/shared/src/types.ts @@ -16,7 +16,6 @@ export type MaybePromise = TType | Promise; export type Either = | { data: TData; error: null } | { data: null; error: TError }; - export type ExtendObjectIf = undefined extends Predicate ? // eslint-disable-next-line @typescript-eslint/ban-types {} @@ -49,6 +48,7 @@ export interface RequestInitEsque { */ export interface ResponseEsque { status: number; + statusText: string; ok: boolean; /** * @remarks @@ -92,8 +92,11 @@ export type Time = | `1 ${TimeLong}` | `${AutoCompleteableNumber} ${TimeLong}s`; -export type ContentDisposition = "inline" | "attachment"; -export type ACL = "public-read" | "private"; +export const ValidContentDispositions = ["inline", "attachment"] as const; +export type ContentDisposition = (typeof ValidContentDispositions)[number]; + +export const ValidACLs = ["public-read", "private"] as const; +export type ACL = (typeof ValidACLs)[number]; type RouteConfig = { maxFileSize: FileSize; diff --git a/packages/shared/src/utils.ts b/packages/shared/src/utils.ts index 148dcaf0f..76cbd4fe6 100644 --- a/packages/shared/src/utils.ts +++ b/packages/shared/src/utils.ts @@ -1,12 +1,19 @@ +import * as Effect from "effect/Effect"; import { process } from "std-env"; import { lookup } from "@uploadthing/mime-types"; import type { AllowedFileType } from "./file-types"; +import { + InvalidFileSizeError, + InvalidFileTypeError, + InvalidRouteConfigError, + InvalidURLError, + UnknownFileTypeError, +} from "./tagged-errors"; import type { ContentDisposition, ExpandedRouteConfig, - FetchEsque, FileRouterInputConfig, FileRouterInputKey, FileSize, @@ -38,29 +45,31 @@ export function getDefaultSizeForType(fileType: FileRouterInputKey): FileSize { * ["image"] => { image: { maxFileSize: "4MB", limit: 1 } } * ``` */ -export function fillInputRouteConfig( + +export const fillInputRouteConfig = ( routeConfig: FileRouterInputConfig, -): ExpandedRouteConfig { +): Effect.Effect => { // If array, apply defaults if (isRouteArray(routeConfig)) { - return routeConfig.reduce((acc, fileType) => { - acc[fileType] = { - // Apply defaults - maxFileSize: getDefaultSizeForType(fileType), - maxFileCount: 1, - minFileCount: 1, - contentDisposition: "inline", - }; - return acc; - }, {}); + return Effect.succeed( + routeConfig.reduce((acc, fileType) => { + acc[fileType] = { + // Apply defaults + maxFileSize: getDefaultSizeForType(fileType), + maxFileCount: 1, + minFileCount: 1, + contentDisposition: "inline" as const, + }; + return acc; + }, {}), + ); } // Backfill defaults onto config const newConfig: ExpandedRouteConfig = {}; - const inputKeys = objectKeys(routeConfig); - inputKeys.forEach((key) => { + for (const key of objectKeys(routeConfig)) { const value = routeConfig[key]; - if (!value) throw new Error("Invalid config during fill"); + if (!value) return Effect.fail(new InvalidRouteConfigError(key)); const defaultValues = { maxFileSize: getDefaultSizeForType(key), @@ -70,27 +79,28 @@ export function fillInputRouteConfig( }; newConfig[key] = { ...defaultValues, ...value }; - }, {} as ExpandedRouteConfig); + } - return newConfig; -} + return Effect.succeed(newConfig); +}; -export function getTypeFromFileName( +export const getTypeFromFileName = ( fileName: string, allowedTypes: FileRouterInputKey[], -) { +): Effect.Effect< + FileRouterInputKey, + UnknownFileTypeError | InvalidFileTypeError +> => { const mimeType = lookup(fileName); if (!mimeType) { - if (allowedTypes.includes("blob")) return "blob"; - throw new Error( - `Could not determine type for ${fileName}, presigned URL generation failed`, - ); + if (allowedTypes.includes("blob")) return Effect.succeed("blob"); + return Effect.fail(new UnknownFileTypeError(fileName)); } // If the user has specified a specific mime type, use that if (allowedTypes.some((type) => type.includes("/"))) { if (allowedTypes.includes(mimeType)) { - return mimeType; + return Effect.succeed(mimeType); } } @@ -104,14 +114,14 @@ export function getTypeFromFileName( if (!allowedTypes.includes(type)) { // Blob is a catch-all for any file type not explicitly supported if (allowedTypes.includes("blob")) { - return "blob"; + return Effect.succeed("blob"); } else { - throw new Error(`File type ${type} not allowed for ${fileName}`); + return Effect.fail(new InvalidFileTypeError(type, fileName)); } } - return type; -} + return Effect.succeed(type); +}; export function generateUploadThingURL(path: `/${string}`) { let host = "https://uploadthing.com"; @@ -121,100 +131,35 @@ export function generateUploadThingURL(path: `/${string}`) { return `${host}${path}`; } -/** - * RETURN UNDEFINED TO KEEP GOING - * SO MAKE SURE YOUR FUNCTION RETURNS SOMETHING - * OTHERWISE IT'S AN IMPLICIT UNDEFINED AND WILL CAUSE - * AN INFINITE LOOP - */ -export const withExponentialBackoff = async ( - doTheThing: () => Promise, - MAXIMUM_BACKOFF_MS = 64 * 1000, - MAX_RETRIES = 20, -): Promise => { - let tries = 0; - let backoffMs = 500; - let backoffFuzzMs = 0; - - let result = undefined; - while (tries <= MAX_RETRIES) { - result = await doTheThing(); - if (result !== undefined) return result; - - tries += 1; - backoffMs = Math.min(MAXIMUM_BACKOFF_MS, backoffMs * 2); - backoffFuzzMs = Math.floor(Math.random() * 500); - - if (tries > 3) { - console.error( - `[UT] Call unsuccessful after ${tries} tries. Retrying in ${Math.floor( - backoffMs / 1000, - )} seconds...`, - ); - } - - await new Promise((r) => setTimeout(r, backoffMs + backoffFuzzMs)); - } - - return null; -}; - -export async function pollForFileData( - opts: { - url: string; - // no apikey => no filedata will be returned, just status - apiKey: string | null; - sdkVersion: string; - fetch: FetchEsque; - }, - callback?: (json: any) => Promise, -) { - return withExponentialBackoff(async () => { - const res = await opts.fetch(opts.url, { - headers: { - ...(opts.apiKey && { "x-uploadthing-api-key": opts.apiKey }), - "x-uploadthing-version": opts.sdkVersion, - }, - }); - const maybeJson = await safeParseJSON< - { status: "done"; fileData?: any } | { status: "something else" } - >(res); - - if (maybeJson instanceof Error) { - console.error( - `[UT] Error polling for file data for ${opts.url}: ${maybeJson.message}`, - ); - return null; - } - - if (maybeJson.status !== "done") return undefined; - await callback?.(maybeJson); - - return Symbol("backoff done without response"); - }); -} - export const FILESIZE_UNITS = ["B", "KB", "MB", "GB"] as const; export type FileSizeUnit = (typeof FILESIZE_UNITS)[number]; -export const fileSizeToBytes = (input: string) => { +export const fileSizeToBytes = ( + fileSize: FileSize, +): Effect.Effect => { const regex = new RegExp( `^(\\d+)(\\.\\d+)?\\s*(${FILESIZE_UNITS.join("|")})$`, "i", ); - const match = input.match(regex); + // make sure the string is in the format of 123KB + const match = fileSize.match(regex); if (!match) { - throw new Error("Invalid file size format"); + return Effect.fail(new InvalidFileSizeError(fileSize)); } const sizeValue = parseFloat(match[1]); const sizeUnit = match[3].toUpperCase() as FileSizeUnit; + const bytes = sizeValue * Math.pow(1024, FILESIZE_UNITS.indexOf(sizeUnit)); + return Effect.succeed(Math.floor(bytes)); +}; - if (!FILESIZE_UNITS.includes(sizeUnit)) { - throw new Error("Invalid file size unit"); +export const bytesToFileSize = (bytes: number) => { + if (bytes === 0 || bytes === -1) { + return "0B"; } - const bytes = sizeValue * Math.pow(1024, FILESIZE_UNITS.indexOf(sizeUnit)); - return Math.floor(bytes); + + const i = Math.floor(Math.log(bytes) / Math.log(1000)); + return `${(bytes / Math.pow(1000, i)).toFixed(2)}${FILESIZE_UNITS[i]}`; }; /** @@ -268,6 +213,21 @@ export function asArray(val: T | T[]): T[] { return Array.isArray(val) ? val : [val]; } +/** + * Filters an object's values based on a predicate + * @example + * filterObjectValues({ a: "a", b: null }, (v): v is string => v != null) + * // ^? Record { a: "a" } + */ +export const filterObjectValues = , D extends V>( + obj: T, + predicate: (val: V) => val is D, +) => { + return Object.fromEntries( + Object.entries(obj).filter(([_, v]) => predicate(v)), + ) as Record; +}; + /** construct content-disposition header */ export function contentDisposition( contentDisposition: ContentDisposition, @@ -313,25 +273,26 @@ export function semverLite(required: string, toCheck: string) { return rMajor === cMajor && rMinor === cMinor && rPatch === cPatch; } -function getFullApiUrl(maybeUrl?: string): URL { - const base = (() => { - if (typeof window !== "undefined") return window.location.origin; - if (process.env?.VERCEL_URL) return `https://${process.env.VERCEL_URL}`; - return "http://localhost:3000"; - })(); +export const getFullApiUrl = ( + maybeUrl?: string, +): Effect.Effect => + Effect.gen(function* () { + const base = (() => { + if (typeof window !== "undefined") return window.location.origin; + if (process.env?.VERCEL_URL) return `https://${process.env.VERCEL_URL}`; + return "http://localhost:3000"; + })(); + + const url = yield* Effect.try({ + try: () => new URL(maybeUrl ?? "/api/uploadthing", base), + catch: () => new InvalidURLError(maybeUrl ?? "/api/uploadthing"), + }); - try { - const url = new URL(maybeUrl ?? "/api/uploadthing", base); if (url.pathname === "/") { url.pathname = "/api/uploadthing"; } return url; - } catch (err) { - throw new Error( - `Failed to parse '${maybeUrl}' as a URL. Make sure it's a valid URL or path`, - ); - } -} + }); /* * Returns a full URL to the dev's uploadthing endpoint @@ -339,6 +300,8 @@ function getFullApiUrl(maybeUrl?: string): URL { * and will return the "closest" url matching the default * `/api/uploadthing` */ -export function resolveMaybeUrlArg(maybeUrl: string | URL | undefined) { - return maybeUrl instanceof URL ? maybeUrl : getFullApiUrl(maybeUrl); -} +export const resolveMaybeUrlArg = (maybeUrl: string | URL | undefined): URL => { + return maybeUrl instanceof URL + ? maybeUrl + : Effect.runSync(getFullApiUrl(maybeUrl)); +}; diff --git a/packages/solid/CHANGELOG.md b/packages/solid/CHANGELOG.md index 0037e72ad..9d8327f90 100644 --- a/packages/solid/CHANGELOG.md +++ b/packages/solid/CHANGELOG.md @@ -1,5 +1,38 @@ # @uploadthing/solid +## 6.4.3 + +### Patch Changes + +- Updated dependencies [[`a1481a2`](https://github.com/pingdotgg/uploadthing/commit/a1481a2ae1221dc7e1091a364c8efd7fa3035544)]: + - @uploadthing/shared@6.7.3 + +## 6.4.2 + +### Patch Changes + +- Updated dependencies [[`69165fc`](https://github.com/pingdotgg/uploadthing/commit/69165fc4b4e4b02fe27e02d1991ea2cd3ae45c8a), [`6da018b`](https://github.com/pingdotgg/uploadthing/commit/6da018bfd4f2812ad81f36a7e3c9e3567c435b0b)]: + - @uploadthing/shared@6.7.2 + +## 6.4.1 + +### Patch Changes + +- Updated dependencies [[`594ae8a`](https://github.com/pingdotgg/uploadthing/commit/594ae8ae214ff717937c4787a3b8d1bd40b832cc), [`594ae8a`](https://github.com/pingdotgg/uploadthing/commit/594ae8ae214ff717937c4787a3b8d1bd40b832cc), [`0abfa03`](https://github.com/pingdotgg/uploadthing/commit/0abfa031d108edead78d9b71a61d2bfb7ad53a64)]: + - @uploadthing/shared@6.7.1 + +## 6.4.0 + +### Minor Changes + +- [#457](https://github.com/pingdotgg/uploadthing/pull/457) [`ea7e41b`](https://github.com/pingdotgg/uploadthing/commit/ea7e41b5d9d85135540d9b51fa5551859fbe7623) Thanks [@markflorkowski](https://github.com/markflorkowski)! - Effect rewrite + +### Patch Changes + +- Updated dependencies [[`9b93886`](https://github.com/pingdotgg/uploadthing/commit/9b938860d49a1a593e38804f81c759925d713605), [`ea7e41b`](https://github.com/pingdotgg/uploadthing/commit/ea7e41b5d9d85135540d9b51fa5551859fbe7623), [`41de3c5`](https://github.com/pingdotgg/uploadthing/commit/41de3c55c8bd808166449c09e9006650178067d5), [`09870e4`](https://github.com/pingdotgg/uploadthing/commit/09870e43f310c15e48f0089e875c6d9663fd305b)]: + - @uploadthing/dropzone@0.4.0 + - @uploadthing/shared@6.7.0 + ## 6.3.4 ### Patch Changes diff --git a/packages/solid/package.json b/packages/solid/package.json index 9d689aa28..e727d35c8 100644 --- a/packages/solid/package.json +++ b/packages/solid/package.json @@ -3,7 +3,7 @@ "type": "module", "author": "OrJDev", "license": "MIT", - "version": "6.3.4", + "version": "6.4.3", "main": "./dist/server.cjs", "module": "./dist/server.js", "types": "./dist/index.d.ts", @@ -126,7 +126,7 @@ }, "peerDependencies": { "solid-js": "^1.5.3", - "uploadthing": "^6.5.1" + "uploadthing": "^6.10.0" }, "keywords": [ "SolidJS", @@ -139,8 +139,19 @@ "error", { "patterns": [ - "@uploadthing/solid", - "@uploadthing/solid/*" + { + "group": [ + "@uploadthing/solid", + "@uploadthing/solid/*" + ], + "message": "Use relative src imports instead" + } + ], + "paths": [ + { + "name": "effect", + "message": "Use alias imports instead (import * as X from \"effect/X\")" + } ] } ] diff --git a/packages/solid/src/components/button.tsx b/packages/solid/src/components/button.tsx index 73a5a1247..1ffa1d6b7 100644 --- a/packages/solid/src/components/button.tsx +++ b/packages/solid/src/components/button.tsx @@ -158,7 +158,7 @@ export function UploadButton< ref={inputRef!} type="file" multiple={fileInfo().multiple} - accept={generateMimeTypes(fileInfo().fileTypes ?? [])?.join(", ")} + accept={generateMimeTypes(fileInfo().fileTypes).join(", ")} onChange={(e) => { if (!e.target.files) return; const input = "input" in $props ? $props.input : undefined; diff --git a/packages/solid/src/types.ts b/packages/solid/src/types.ts index 5300092be..86297a179 100644 --- a/packages/solid/src/types.ts +++ b/packages/solid/src/types.ts @@ -36,22 +36,24 @@ export type UseUploadthingProps< * Called when the upload is submitted and the server is about to be queried for presigned URLs * Can be used to modify the files before they are uploaded, e.g. renaming them */ - onBeforeUploadBegin?: (files: File[]) => Promise | File[]; + onBeforeUploadBegin?: + | ((files: File[]) => Promise | File[]) + | undefined; /** * Called when presigned URLs have been retrieved and the file upload is about to begin */ - onUploadBegin?: (fileName: string) => void; + onUploadBegin?: ((fileName: string) => void) | undefined; /** * Called continuously as the file is uploaded to the storage provider */ - onUploadProgress?: (p: number) => void; + onUploadProgress?: ((p: number) => void) | undefined; /** * Skip polling for server data after upload is complete * Useful if you want faster response times and don't need * any data returned from the server `onUploadComplete` callback * @default false */ - skipPolling?: TSkipPolling; + skipPolling?: TSkipPolling | undefined; /** * Called when the file uploads are completed * - If `skipPolling` is `true`, this will be called once @@ -59,18 +61,20 @@ export type UseUploadthingProps< * - If `skipPolling` is `false`, this will be called after * the serverside `onUploadComplete` callback has finished */ - onClientUploadComplete?: ( - res: ClientUploadedFileData[], - ) => void; + onClientUploadComplete?: + | ((res: ClientUploadedFileData[]) => void) + | undefined; /** * Called if the upload fails */ - onUploadError?: (e: UploadThingError>) => void; + onUploadError?: + | ((e: UploadThingError>) => void) + | undefined; /** * Set custom headers that'll get sent with requests * to your server */ - headers?: HeadersInit | (() => MaybePromise); + headers?: HeadersInit | (() => MaybePromise) | undefined; }; export type UploadthingComponentProps< diff --git a/packages/solid/src/useUploadThing.ts b/packages/solid/src/useUploadThing.ts index 8ff5db2c4..ba87e9b92 100644 --- a/packages/solid/src/useUploadThing.ts +++ b/packages/solid/src/useUploadThing.ts @@ -62,7 +62,7 @@ export const INTERNAL_uploadthingHookGen = < setUploading(true); opts?.onUploadProgress?.(0); try { - const res = await uploadFiles(endpoint, { + const res = await uploadFiles(endpoint, { headers: opts?.headers, files, skipPolling: opts?.skipPolling, diff --git a/packages/svelte/CHANGELOG.md b/packages/svelte/CHANGELOG.md index 606008816..24b7202cd 100644 --- a/packages/svelte/CHANGELOG.md +++ b/packages/svelte/CHANGELOG.md @@ -1,5 +1,38 @@ # @uploadthing/svelte +## 6.5.3 + +### Patch Changes + +- Updated dependencies [[`a1481a2`](https://github.com/pingdotgg/uploadthing/commit/a1481a2ae1221dc7e1091a364c8efd7fa3035544)]: + - @uploadthing/shared@6.7.3 + +## 6.5.2 + +### Patch Changes + +- Updated dependencies [[`69165fc`](https://github.com/pingdotgg/uploadthing/commit/69165fc4b4e4b02fe27e02d1991ea2cd3ae45c8a), [`6da018b`](https://github.com/pingdotgg/uploadthing/commit/6da018bfd4f2812ad81f36a7e3c9e3567c435b0b)]: + - @uploadthing/shared@6.7.2 + +## 6.5.1 + +### Patch Changes + +- Updated dependencies [[`594ae8a`](https://github.com/pingdotgg/uploadthing/commit/594ae8ae214ff717937c4787a3b8d1bd40b832cc), [`594ae8a`](https://github.com/pingdotgg/uploadthing/commit/594ae8ae214ff717937c4787a3b8d1bd40b832cc), [`0abfa03`](https://github.com/pingdotgg/uploadthing/commit/0abfa031d108edead78d9b71a61d2bfb7ad53a64)]: + - @uploadthing/shared@6.7.1 + +## 6.5.0 + +### Minor Changes + +- [#457](https://github.com/pingdotgg/uploadthing/pull/457) [`ea7e41b`](https://github.com/pingdotgg/uploadthing/commit/ea7e41b5d9d85135540d9b51fa5551859fbe7623) Thanks [@markflorkowski](https://github.com/markflorkowski)! - Effect rewrite + +### Patch Changes + +- Updated dependencies [[`9b93886`](https://github.com/pingdotgg/uploadthing/commit/9b938860d49a1a593e38804f81c759925d713605), [`ea7e41b`](https://github.com/pingdotgg/uploadthing/commit/ea7e41b5d9d85135540d9b51fa5551859fbe7623), [`41de3c5`](https://github.com/pingdotgg/uploadthing/commit/41de3c55c8bd808166449c09e9006650178067d5), [`09870e4`](https://github.com/pingdotgg/uploadthing/commit/09870e43f310c15e48f0089e875c6d9663fd305b)]: + - @uploadthing/dropzone@0.4.0 + - @uploadthing/shared@6.7.0 + ## 6.4.1 ### Patch Changes diff --git a/packages/svelte/package.json b/packages/svelte/package.json index f05096392..321e096ea 100644 --- a/packages/svelte/package.json +++ b/packages/svelte/package.json @@ -1,6 +1,6 @@ { "name": "@uploadthing/svelte", - "version": "6.4.1", + "version": "6.5.3", "license": "MIT", "scripts": { "dev": "vite dev", @@ -30,7 +30,7 @@ ], "peerDependencies": { "svelte": "^4.0.0", - "uploadthing": "^6.9.0" + "uploadthing": "^6.10.0" }, "dependencies": { "@uploadthing/dropzone": "workspace:*", @@ -64,6 +64,28 @@ ], "ignorePatterns": [ "*.config.*" - ] + ], + "rules": { + "no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": [ + "@uploadthing/svelte", + "@uploadthing/svelte/*" + ], + "message": "Use relative src imports instead" + } + ], + "paths": [ + { + "name": "effect", + "message": "Use alias imports instead (import * as X from \"effect/X\")" + } + ] + } + ] + } } } diff --git a/packages/svelte/src/lib/component/UploadButton.svelte b/packages/svelte/src/lib/component/UploadButton.svelte index d64e6c92e..6450d383c 100644 --- a/packages/svelte/src/lib/component/UploadButton.svelte +++ b/packages/svelte/src/lib/component/UploadButton.svelte @@ -199,7 +199,7 @@ Example: bind:this={fileInputRef} class="sr-only" type="file" - accept={generateMimeTypes(fileTypes ?? [])?.join(", ")} + accept={generateMimeTypes(fileTypes ).join(", ")} disabled={__internal_button_disabled ?? !ready} {multiple} on:change={(e) => { diff --git a/packages/uploadthing/CHANGELOG.md b/packages/uploadthing/CHANGELOG.md index 9cccaf33e..6c32fc780 100644 --- a/packages/uploadthing/CHANGELOG.md +++ b/packages/uploadthing/CHANGELOG.md @@ -1,5 +1,53 @@ # uploadthing +## 6.10.3 + +### Patch Changes + +- [#792](https://github.com/pingdotgg/uploadthing/pull/792) [`a1481a2`](https://github.com/pingdotgg/uploadthing/commit/a1481a2ae1221dc7e1091a364c8efd7fa3035544) Thanks [@juliusmarminge](https://github.com/juliusmarminge)! - fix: isPollingResponse was not checking against response json + +- Updated dependencies [[`a1481a2`](https://github.com/pingdotgg/uploadthing/commit/a1481a2ae1221dc7e1091a364c8efd7fa3035544)]: + - @uploadthing/shared@6.7.3 + +## 6.10.2 + +### Patch Changes + +- [#791](https://github.com/pingdotgg/uploadthing/pull/791) [`69165fc`](https://github.com/pingdotgg/uploadthing/commit/69165fc4b4e4b02fe27e02d1991ea2cd3ae45c8a) Thanks [@juliusmarminge](https://github.com/juliusmarminge)! - fix: catch FiberFailure's and squash them to the original error + +- [#783](https://github.com/pingdotgg/uploadthing/pull/783) [`6da018b`](https://github.com/pingdotgg/uploadthing/commit/6da018bfd4f2812ad81f36a7e3c9e3567c435b0b) Thanks [@datner](https://github.com/datner)! - refactoring small parts of uploadFile and related utils + +- Updated dependencies [[`69165fc`](https://github.com/pingdotgg/uploadthing/commit/69165fc4b4e4b02fe27e02d1991ea2cd3ae45c8a), [`6da018b`](https://github.com/pingdotgg/uploadthing/commit/6da018bfd4f2812ad81f36a7e3c9e3567c435b0b)]: + - @uploadthing/shared@6.7.2 + +## 6.10.1 + +### Patch Changes + +- [#770](https://github.com/pingdotgg/uploadthing/pull/770) [`594ae8a`](https://github.com/pingdotgg/uploadthing/commit/594ae8ae214ff717937c4787a3b8d1bd40b832cc) Thanks [@juliusmarminge](https://github.com/juliusmarminge)! - fix: add missing `fast-check` peer dependency from `@effect/schema` + +- [#770](https://github.com/pingdotgg/uploadthing/pull/770) [`594ae8a`](https://github.com/pingdotgg/uploadthing/commit/594ae8ae214ff717937c4787a3b8d1bd40b832cc) Thanks [@juliusmarminge](https://github.com/juliusmarminge)! - fix: better error logging for bad requests + +- [#775](https://github.com/pingdotgg/uploadthing/pull/775) [`0abfa03`](https://github.com/pingdotgg/uploadthing/commit/0abfa031d108edead78d9b71a61d2bfb7ad53a64) Thanks [@tim-smart](https://github.com/tim-smart)! - update "effect" & switch to alias imports + +- Updated dependencies [[`6906254`](https://github.com/pingdotgg/uploadthing/commit/690625458338a70df5927f1d2405de0de4a58d8f), [`594ae8a`](https://github.com/pingdotgg/uploadthing/commit/594ae8ae214ff717937c4787a3b8d1bd40b832cc), [`594ae8a`](https://github.com/pingdotgg/uploadthing/commit/594ae8ae214ff717937c4787a3b8d1bd40b832cc), [`0abfa03`](https://github.com/pingdotgg/uploadthing/commit/0abfa031d108edead78d9b71a61d2bfb7ad53a64)]: + - @uploadthing/mime-types@0.2.9 + - @uploadthing/shared@6.7.1 + +## 6.10.0 + +### Minor Changes + +- [#457](https://github.com/pingdotgg/uploadthing/pull/457) [`ea7e41b`](https://github.com/pingdotgg/uploadthing/commit/ea7e41b5d9d85135540d9b51fa5551859fbe7623) Thanks [@markflorkowski](https://github.com/markflorkowski)! - Effect rewrite + +- [#293](https://github.com/pingdotgg/uploadthing/pull/293) [`09870e4`](https://github.com/pingdotgg/uploadthing/commit/09870e43f310c15e48f0089e875c6d9663fd305b) Thanks [@markflorkowski](https://github.com/markflorkowski)! - feat: vue and nuxt support! + +### Patch Changes + +- Updated dependencies [[`e637c43`](https://github.com/pingdotgg/uploadthing/commit/e637c43d203b72dabfeb17755b6d22d03c05ea3c), [`ea7e41b`](https://github.com/pingdotgg/uploadthing/commit/ea7e41b5d9d85135540d9b51fa5551859fbe7623), [`41de3c5`](https://github.com/pingdotgg/uploadthing/commit/41de3c55c8bd808166449c09e9006650178067d5), [`5efcdda`](https://github.com/pingdotgg/uploadthing/commit/5efcddafe9aa11993e16824dae4822bd7a8c8199), [`09870e4`](https://github.com/pingdotgg/uploadthing/commit/09870e43f310c15e48f0089e875c6d9663fd305b)]: + - @uploadthing/mime-types@0.2.8 + - @uploadthing/shared@6.7.0 + ## 6.9.0 ### Minor Changes diff --git a/packages/uploadthing/package.json b/packages/uploadthing/package.json index c414f076d..c2645fe20 100644 --- a/packages/uploadthing/package.json +++ b/packages/uploadthing/package.json @@ -1,6 +1,6 @@ { "name": "uploadthing", - "version": "6.9.0", + "version": "6.10.3", "type": "module", "engines": { "node": ">=18.13.0" @@ -127,9 +127,12 @@ "typecheck": "tsc --noEmit" }, "dependencies": { + "@effect/schema": "^0.66.12", "@uploadthing/mime-types": "workspace:*", "@uploadthing/shared": "workspace:*", "consola": "^3.2.3", + "effect": "^3.1.0", + "fast-check": "^3.18.0", "std-env": "^3.7.0" }, "devDependencies": { @@ -146,11 +149,13 @@ "fastify": "^4.26.1", "h3": "^1.11.1", "next": "14.2.1", + "nuxt": "^3.11.2", "solid-js": "^1.8.15", "tailwindcss": "^3.4.1", "type-fest": "^4.10.3", "typescript": "^5.4.5", "undici": "^6.6.2", + "vue": "^3.4.21", "wait-on": "^7.2.0", "zod": "^3.22.4" }, @@ -200,8 +205,19 @@ "error", { "patterns": [ - "uploadthing", - "uploadthing/*" + { + "group": [ + "uploadthing", + "uploadthing/*" + ], + "message": "Use relative src imports instead" + } + ], + "paths": [ + { + "name": "effect", + "message": "Use alias imports instead (import * as X from \"effect/X\")" + } ] } ] diff --git a/packages/uploadthing/src/client.ts b/packages/uploadthing/src/client.ts index 91854e994..7ba075218 100644 --- a/packages/uploadthing/src/client.ts +++ b/packages/uploadthing/src/client.ts @@ -1,38 +1,55 @@ -// Don't want to ship our logger to the client, keep size down -/* eslint-disable no-console */ +import * as Arr from "effect/Array"; +import * as Cause from "effect/Cause"; +import * as Console from "effect/Console"; +import * as Effect from "effect/Effect"; +import { unsafeCoerce } from "effect/Function"; +import * as Option from "effect/Option"; +import * as Runtime from "effect/Runtime"; -import type { ExpandedRouteConfig } from "@uploadthing/shared"; +import type { + ExpandedRouteConfig, + FetchError, + InvalidJsonError, +} from "@uploadthing/shared"; import { + exponentialBackoff, + FetchContext, + fetchEff, fileSizeToBytes, + getErrorTypeFromStatusCode, getTypeFromFileName, + isObject, objectKeys, + parseResponseJson, resolveMaybeUrlArg, + RetryError, UploadThingError, - withExponentialBackoff, } from "@uploadthing/shared"; import * as pkgJson from "../package.json"; -import { uploadPartWithProgress } from "./internal/multi-part"; +import { UPLOADTHING_VERSION } from "./internal/constants"; +import { uploadMultipartWithProgress } from "./internal/multi-part.browser"; +import { uploadPresignedPostWithProgress } from "./internal/presigned-post.browser"; import type { FileRouter, inferEndpointOutput, - MPUResponse, - PSPResponse, + PresignedURLs, } from "./internal/types"; import type { UTReporter } from "./internal/ut-reporter"; import { createUTReporter } from "./internal/ut-reporter"; import type { ClientUploadedFileData, GenerateUploaderOptions, + inferEndpointInput, UploadFilesOptions, } from "./types"; export { - /** @public */ - generateMimeTypes, /** @public */ generateClientDropzoneAccept, /** @public */ + generateMimeTypes, + /** @public */ generatePermittedFileTypes, /** @public */ bytesToHumanReadable, @@ -47,7 +64,9 @@ export const isValidFileType = ( routeConfig: ExpandedRouteConfig, ) => { try { - const type = getTypeFromFileName(file.name, objectKeys(routeConfig)); + const type = Effect.runSync( + getTypeFromFileName(file.name, objectKeys(routeConfig)), + ); return file.type.includes(type); } catch { return false; @@ -63,8 +82,12 @@ export const isValidFileSize = ( routeConfig: ExpandedRouteConfig, ) => { try { - const type = getTypeFromFileName(file.name, objectKeys(routeConfig)); - const maxFileSize = fileSizeToBytes(routeConfig[type]!.maxFileSize); + const type = Effect.runSync( + getTypeFromFileName(file.name, objectKeys(routeConfig)), + ); + const maxFileSize = Effect.runSync( + fileSizeToBytes(routeConfig[type]!.maxFileSize), + ); return file.size <= maxFileSize; } catch { return false; @@ -73,7 +96,7 @@ export const isValidFileSize = ( export const version = pkgJson.version; -const uploadFilesInternal = async < +const uploadFilesInternal = < TRouter extends FileRouter, TEndpoint extends keyof TRouter, TSkipPolling extends boolean = false, @@ -83,95 +106,39 @@ const uploadFilesInternal = async < >( endpoint: TEndpoint, opts: UploadFilesOptions, -): Promise[]> => { - // Fine to use global fetch in browser - const fetch = globalThis.fetch.bind(globalThis); - +): Effect.Effect< + ClientUploadedFileData[], + // TODO: Handle these errors instead of letting them bubble + UploadThingError | RetryError | FetchError | InvalidJsonError, + FetchContext +> => { + // classic service right here const reportEventToUT = createUTReporter({ endpoint: String(endpoint), - url: opts.url, package: opts.package, - fetch, + url: resolveMaybeUrlArg(opts.url), headers: opts.headers, }); - // Get presigned URL for S3 upload - const s3ConnectionRes = await reportEventToUT("upload", { - input: "input" in opts ? opts.input : null, - files: opts.files.map((f) => ({ - name: f.name, - size: f.size, - type: f.type, - })), - }); - - if (!s3ConnectionRes || !Array.isArray(s3ConnectionRes)) { - throw new UploadThingError({ - code: "BAD_REQUEST", - message: "No URL. How did you even get here?", - cause: s3ConnectionRes, - }); - } - - const fileUploadPromises = s3ConnectionRes.map(async (presigned) => { - const file = opts.files.find((f) => f.name === presigned.fileName); - - if (!file) { - console.error("No file found for presigned URL", presigned); - throw new UploadThingError({ - code: "NOT_FOUND", - message: "No file found for presigned URL", - cause: `Expected file with name ${ - presigned.fileName - } but got '${opts.files.join(",")}'`, - }); - } - - opts.onUploadBegin?.({ file: file.name }); - if ("urls" in presigned) { - await uploadMultipart(file, presigned, { reportEventToUT, ...opts }); - // wait a bit as it's unsreasonable to expect the server to be done by now - await new Promise((r) => setTimeout(r, 750)); - } else { - await uploadPresignedPost(file, presigned, { reportEventToUT, ...opts }); - } - - let serverData: inferEndpointOutput | null = null; - if (!opts.skipPolling) { - serverData = await withExponentialBackoff(async () => { - type PollingResponse = - | { - status: "done"; - callbackData: inferEndpointOutput; - } - | { status: "still waiting" }; - - const res = await fetch(presigned.pollingUrl, { - headers: { authorization: presigned.pollingJwt }, - }).then((r) => r.json() as Promise); - - // eslint-disable-next-line @typescript-eslint/no-unsafe-return - return res.status === "done" ? res.callbackData : undefined; - }); - } - const res: ClientUploadedFileData = { - name: file.name, - size: file.size, - type: file.type, - key: presigned.key, - url: "https://utfs.io/f/" + presigned.key, - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - serverData: serverData as any, - customId: presigned.customId, - }; - console.log("calling onUploadComplete", res); - // eslint-disable-next-line @typescript-eslint/no-unsafe-argument - opts.onUploadComplete?.(res as any); - - return res; - }); - - return Promise.all(fileUploadPromises); + return Effect.flatMap( + reportEventToUT("upload", { + input: "input" in opts ? opts.input : null, + files: opts.files.map((f) => ({ + name: f.name, + size: f.size, + type: f.type, + })), + }), + Effect.forEach( + (presigned) => + uploadFile( + String(endpoint), + { ...opts, reportEventToUT }, + presigned, + ), + { concurrency: 6 }, + ), + ); }; export const genUploader = ( @@ -187,116 +154,113 @@ export const genUploader = ( keyof GenerateUploaderOptions >, ) => - // eslint-disable-next-line @typescript-eslint/no-unsafe-argument uploadFilesInternal(endpoint, { ...opts, url: resolveMaybeUrlArg(initOpts?.url), package: initOpts.package, - } as any); + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access + input: (opts as any).input as inferEndpointInput, + }) + .pipe( + Effect.provideService(FetchContext, { + fetch: globalThis.fetch.bind(globalThis), + baseHeaders: { + "x-uploadthing-version": UPLOADTHING_VERSION, + "x-uploadthing-api-key": undefined, + "x-uploadthing-fe-package": initOpts.package, + "x-uploadthing-be-adapter": undefined, + }, + }), + Effect.runPromise, + ) + .catch((error) => { + if (!Runtime.isFiberFailure(error)) throw error; + throw Cause.squash(error[Runtime.FiberFailureCauseId]); + }); }; -async function uploadMultipart( - file: File, - presigned: MPUResponse, - opts: { - reportEventToUT: UTReporter; - onUploadProgress?: UploadFilesOptions["onUploadProgress"]; - }, -) { - let etags: { tag: string; partNumber: number }[]; - let uploadedBytes = 0; - - try { - etags = await Promise.all( - presigned.urls.map(async (url, index) => { - const offset = presigned.chunkSize * index; - const end = Math.min(offset + presigned.chunkSize, file.size); - const chunk = file.slice(offset, end); +type Done = { status: "done"; callbackData: unknown }; +type StillWaiting = { status: "still waiting" }; +type PollingResponse = Done | StillWaiting; - const etag = await uploadPartWithProgress({ - url, - chunk: chunk, - contentDisposition: presigned.contentDisposition, - fileType: file.type, - fileName: file.name, - maxRetries: 10, - onProgress: (delta) => { - uploadedBytes += delta; - const percent = (uploadedBytes / file.size) * 100; - opts.onUploadProgress?.({ file: file.name, progress: percent }); - }, - }); - - return { tag: etag, partNumber: index + 1 }; - }), - ); - } catch (error) { - await opts.reportEventToUT("failure", { - fileKey: presigned.key, - uploadId: presigned.uploadId, - fileName: file.name, - s3Error: (error as Error).toString(), - }); - throw "unreachable"; // failure event will throw for us - } +const isPollingResponse = (input: unknown): input is PollingResponse => { + if (!isObject(input)) return false; + if (input.status === "done") return "callbackData" in input; + return input.status === "still waiting"; +}; - // Tell the server that the upload is complete - await opts - .reportEventToUT("multipart-complete", { - uploadId: presigned.uploadId, - fileKey: presigned.key, - etags, - }) - .catch((res) => { - console.log("Failed to alert UT of upload completion"); - throw new UploadThingError({ - code: "UPLOAD_FAILED", - message: "Failed to alert UT of upload completion", - cause: res, - }); - }); -} +const isPollingDone = (input: PollingResponse): input is Done => { + return input.status === "done"; +}; -async function uploadPresignedPost( - file: File, - presigned: PSPResponse, - opts: { +const uploadFile = < + TRouter extends FileRouter, + TEndpoint extends keyof TRouter, + TSkipPolling extends boolean = false, + TServerOutput = false extends TSkipPolling + ? inferEndpointOutput + : null, +>( + slug: string, + opts: UploadFilesOptions & { reportEventToUT: UTReporter; - onUploadProgress?: UploadFilesOptions["onUploadProgress"]; }, -) { - const formData = new FormData(); - Object.entries(presigned.fields).forEach(([k, v]) => formData.append(k, v)); - formData.append("file", file); // File data **MUST GO LAST** - - const response = await new Promise<{ status: number }>((resolve, reject) => { - const xhr = new XMLHttpRequest(); - xhr.open("POST", presigned.url); - xhr.setRequestHeader("Accept", "application/xml"); - xhr.upload.onprogress = (p) => { - opts.onUploadProgress?.({ - file: file.name, - progress: (p.loaded / p.total) * 100, - }); - }; - xhr.onload = () => resolve({ status: xhr.status }); - xhr.onerror = (e) => reject(e); - xhr.send(formData); - }).catch(async (error) => { - await opts.reportEventToUT("failure", { - fileKey: presigned.key, - uploadId: null, - fileName: file.name, - s3Error: (error as Error).toString(), - }); - throw "unreachable"; // failure event will throw for us - }); - - if (response.status > 299 || response.status < 200) { - await opts.reportEventToUT("failure", { - fileKey: presigned.key, - uploadId: null, - fileName: file.name, - }); - } -} + presigned: PresignedURLs[number], +) => + Arr.findFirst(opts.files, (file) => file.name === presigned.fileName).pipe( + Effect.tapError(() => + Console.error("No file found for presigned URL", presigned), + ), + Effect.mapError( + () => + new UploadThingError({ + code: "NOT_FOUND", + message: "No file found for presigned URL", + cause: `Expected file with name ${presigned.fileName} but got '${opts.files.join(",")}'`, + }), + ), + Effect.tap((file) => opts.onUploadBegin?.({ file: file.name })), + Effect.tap((file) => + "urls" in presigned + ? uploadMultipartWithProgress(file, presigned, opts) + : uploadPresignedPostWithProgress(file, presigned, opts), + ), + Effect.zip( + fetchEff(presigned.pollingUrl, { + headers: { authorization: presigned.pollingJwt }, + }).pipe( + Effect.flatMap(parseResponseJson), + Effect.catchTag("BadRequestError", (e) => + Effect.fail( + new UploadThingError({ + code: getErrorTypeFromStatusCode(e.status), + message: e.message, + cause: e, + }), + ), + ), + Effect.filterOrDieMessage( + isPollingResponse, + "received a non PollingResponse from the polling endpoint", + ), + Effect.filterOrFail(isPollingDone, () => new RetryError()), + Effect.map(({ callbackData }) => callbackData), + Effect.retry({ + while: (res) => res instanceof RetryError, + schedule: exponentialBackoff, + }), + Effect.when(() => !opts.skipPolling), + Effect.map(Option.getOrNull), + Effect.map(unsafeCoerce), + ), + ), + Effect.map(([file, serverData]) => ({ + name: file.name, + size: file.size, + key: presigned.key, + serverData, + url: "https://utfs.io/f/" + presigned.key, + customId: presigned.customId, + type: file.type, + })), + ); diff --git a/packages/uploadthing/src/express.ts b/packages/uploadthing/src/express.ts index b1da8fd18..d96ed5bd1 100644 --- a/packages/uploadthing/src/express.ts +++ b/packages/uploadthing/src/express.ts @@ -1,28 +1,28 @@ -import { Router as ExpressRouter } from "express"; +import * as Effect from "effect/Effect"; import type { Request as ExpressRequest, Response as ExpressResponse, } from "express"; +import { Router as ExpressRouter } from "express"; import type { Json } from "@uploadthing/shared"; -import { getStatusCodeFromError, UploadThingError } from "@uploadthing/shared"; +import { getStatusCodeFromError } from "@uploadthing/shared"; import { UPLOADTHING_VERSION } from "./internal/constants"; import { formatError } from "./internal/error-formatter"; import { buildPermissionsInfoHandler, buildRequestHandler, + runRequestHandlerAsync, } from "./internal/handler"; import { incompatibleNodeGuard } from "./internal/incompat-node-guard"; -import { initLogger, logger } from "./internal/logger"; -import { getPostBody } from "./internal/node-http/getBody"; -import { toWebRequest } from "./internal/node-http/toWebRequest"; +import { getPostBody, toWebRequest } from "./internal/to-web-request"; import type { FileRouter, RouteHandlerOptions } from "./internal/types"; import type { CreateBuilderOptions } from "./internal/upload-builder"; import { createBuilder } from "./internal/upload-builder"; -export type { FileRouter }; export { UTFiles } from "./internal/types"; +export type { FileRouter }; type MiddlewareArgs = { req: ExpressRequest; @@ -37,7 +37,6 @@ export const createUploadthing = ( export const createRouteHandler = ( opts: RouteHandlerOptions, ): ExpressRouter => { - initLogger(opts.config?.logLevel); incompatibleNodeGuard(); const requestHandler = buildRequestHandler( @@ -49,46 +48,24 @@ export const createRouteHandler = ( // eslint-disable-next-line @typescript-eslint/no-misused-promises router.post("/", async (req, res) => { - const bodyResult = await getPostBody({ req }); - - if (!bodyResult.ok) { - logger.error( - "Error parsing body. UploadThing expects a raw JSON body, make sure any body-parsing middlewares are registered after uploadthing.", - ); - res.status(400); - res.setHeader("x-uploadthing-version", UPLOADTHING_VERSION); - res.send( - JSON.stringify({ - error: "BAD_REQUEST", - message: bodyResult.error.message, - }), - ); - - return; - } - - const response = await requestHandler({ - req: toWebRequest(req, bodyResult.data), - middlewareArgs: { req, res, event: undefined }, - }); - - if (response instanceof UploadThingError) { - res.status(getStatusCodeFromError(response)); - res.setHeader("x-uploadthing-version", UPLOADTHING_VERSION); - res.send(JSON.stringify(formatError(response, opts.router))); - return; - } - - if (response.status !== 200) { - // We messed up - this should never happen - res.status(500); + const response = await runRequestHandlerAsync( + requestHandler, + { + req: getPostBody({ req }).pipe( + Effect.andThen((body) => toWebRequest(req, body)), + ), + middlewareArgs: { req, res, event: undefined }, + }, + opts.config, + ); + + if (response.success === false) { + res.status(getStatusCodeFromError(response.error)); res.setHeader("x-uploadthing-version", UPLOADTHING_VERSION); - res.send("An unknown error occurred"); - + res.send(JSON.stringify(formatError(response.error, opts.router))); return; } - res.status(response.status); res.setHeader("x-uploadthing-version", UPLOADTHING_VERSION); res.send(JSON.stringify(response.body)); }); diff --git a/packages/uploadthing/src/fastify.ts b/packages/uploadthing/src/fastify.ts index 87e9dd1af..7326714c0 100644 --- a/packages/uploadthing/src/fastify.ts +++ b/packages/uploadthing/src/fastify.ts @@ -6,23 +6,23 @@ import type { } from "fastify"; import type { Json } from "@uploadthing/shared"; -import { getStatusCodeFromError, UploadThingError } from "@uploadthing/shared"; +import { getStatusCodeFromError } from "@uploadthing/shared"; import { UPLOADTHING_VERSION } from "./internal/constants"; import { formatError } from "./internal/error-formatter"; import { buildPermissionsInfoHandler, buildRequestHandler, + runRequestHandlerAsync, } from "./internal/handler"; import { incompatibleNodeGuard } from "./internal/incompat-node-guard"; -import { initLogger } from "./internal/logger"; -import { toWebRequest } from "./internal/node-http/toWebRequest"; +import { toWebRequest } from "./internal/to-web-request"; import type { FileRouter, RouteHandlerOptions } from "./internal/types"; import type { CreateBuilderOptions } from "./internal/upload-builder"; import { createBuilder } from "./internal/upload-builder"; -export type { FileRouter }; export { UTFiles } from "./internal/types"; +export type { FileRouter }; type MiddlewareArgs = { req: FastifyRequest; @@ -39,7 +39,6 @@ export const createRouteHandler = ( opts: RouteHandlerOptions, done: (err?: Error) => void, ) => { - initLogger(opts.config?.logLevel); incompatibleNodeGuard(); const requestHandler = buildRequestHandler( @@ -49,37 +48,25 @@ export const createRouteHandler = ( const getBuildPerms = buildPermissionsInfoHandler(opts); const POST: RouteHandlerMethod = async (req, res) => { - const response = await requestHandler({ - req: toWebRequest(req), - middlewareArgs: { req, res, event: undefined }, - }); + const response = await runRequestHandlerAsync( + requestHandler, + { + req: toWebRequest(req), + middlewareArgs: { req, res, event: undefined }, + }, + opts.config, + ); - if (response instanceof UploadThingError) { + if (response.success === false) { void res - .status(getStatusCodeFromError(response)) - .headers({ - "x-uploadthing-version": UPLOADTHING_VERSION, - }) - .send(formatError(response, opts.router)); - return; - } - - if (response.status !== 200) { - // We messed up - this should never happen - void res - .status(500) - .headers({ - "x-uploadthing-version": UPLOADTHING_VERSION, - }) - .send("An unknown error occurred"); + .status(getStatusCodeFromError(response.error)) + .headers({ "x-uploadthing-version": UPLOADTHING_VERSION }) + .send(formatError(response.error, opts.router)); return; } void res - .status(response.status) - .headers({ - "x-uploadthing-version": UPLOADTHING_VERSION, - }) + .headers({ "x-uploadthing-version": UPLOADTHING_VERSION }) .send(response.body); }; diff --git a/packages/uploadthing/src/h3.ts b/packages/uploadthing/src/h3.ts index 3010cab29..d0e103c0d 100644 --- a/packages/uploadthing/src/h3.ts +++ b/packages/uploadthing/src/h3.ts @@ -8,22 +8,22 @@ import { } from "h3"; import type { Json } from "@uploadthing/shared"; -import { getStatusCodeFromError, UploadThingError } from "@uploadthing/shared"; +import { getStatusCodeFromError } from "@uploadthing/shared"; import { UPLOADTHING_VERSION } from "./internal/constants"; -import { defaultErrorFormatter } from "./internal/error-formatter"; +import { formatError } from "./internal/error-formatter"; import { buildPermissionsInfoHandler, buildRequestHandler, + runRequestHandlerAsync, } from "./internal/handler"; import { incompatibleNodeGuard } from "./internal/incompat-node-guard"; -import { initLogger } from "./internal/logger"; import type { FileRouter, RouteHandlerOptions } from "./internal/types"; import type { CreateBuilderOptions } from "./internal/upload-builder"; import { createBuilder } from "./internal/upload-builder"; -export type { FileRouter }; export { UTFiles } from "./internal/types"; +export type { FileRouter }; type MiddlewareArgs = { req: undefined; res: undefined; event: H3Event }; @@ -34,7 +34,6 @@ export const createUploadthing = ( export const createRouteHandler = ( opts: RouteHandlerOptions, ) => { - initLogger(opts.config?.logLevel); incompatibleNodeGuard(); const requestHandler = buildRequestHandler( @@ -53,23 +52,18 @@ export const createRouteHandler = ( } // POST - const response = await requestHandler({ - req: toWebRequest(event), - middlewareArgs: { req: undefined, res: undefined, event }, - }); - - if (response instanceof UploadThingError) { - setResponseStatus(event, getStatusCodeFromError(response)); - const errorFormatter = - opts.router[Object.keys(opts.router)[0]]?._def.errorFormatter ?? - defaultErrorFormatter; - return errorFormatter(response) as unknown; - } + const response = await runRequestHandlerAsync( + requestHandler, + { + req: toWebRequest(event), + middlewareArgs: { req: undefined, res: undefined, event }, + }, + opts.config, + ); - if (response.status !== 200) { - // We messed up - this should never happen - setResponseStatus(event, 500); - return "An unknown error occurred"; + if (response.success === false) { + setResponseStatus(event, getStatusCodeFromError(response.error)); + return formatError(response.error, opts.router); } return response.body ?? "OK"; diff --git a/packages/uploadthing/src/internal/dev-hook.ts b/packages/uploadthing/src/internal/dev-hook.ts index 7fde16005..f313ee2ab 100644 --- a/packages/uploadthing/src/internal/dev-hook.ts +++ b/packages/uploadthing/src/internal/dev-hook.ts @@ -1,14 +1,19 @@ +import * as S from "@effect/schema/Schema"; +import * as Effect from "effect/Effect"; + import { + exponentialBackoff, + fetchEff, generateUploadThingURL, - pollForFileData, + parseResponseJson, + RetryError, signPayload, UploadThingError, } from "@uploadthing/shared"; -import type { FetchEsque, ResponseEsque } from "@uploadthing/shared"; +import type { ResponseEsque } from "@uploadthing/shared"; -import type { UploadedFileData } from "../types"; -import { UPLOADTHING_VERSION } from "./constants"; -import { logger } from "./logger"; +import { PollUploadResponseSchema } from "./shared-schemas"; +import type { UploadedFileData } from "./shared-schemas"; const isValidResponse = (response: ResponseEsque) => { if (!response.ok) return false; @@ -18,90 +23,92 @@ const isValidResponse = (response: ResponseEsque) => { return true; }; -export const conditionalDevServer = async (opts: { - fileKey: string; - apiKey: string; - fetch: FetchEsque; -}) => { - const fileData = await pollForFileData( - { - url: generateUploadThingURL(`/api/pollUpload/${opts.fileKey}`), - apiKey: opts.apiKey, - sdkVersion: UPLOADTHING_VERSION, - fetch: opts.fetch, - }, - async (json: { - fileData: { - callbackUrl: string; - callbackSlug: string; - metadata: string | null; - fileName: string; - fileSize: number; - fileType: string; - customId: string | null; - }; - }) => { - const file = json.fileData; +export const conditionalDevServer = (fileKey: string, apiKey: string) => { + return Effect.gen(function* () { + const file = yield* fetchEff( + generateUploadThingURL(`/api/pollUpload/${fileKey}`), + ).pipe( + Effect.andThen(parseResponseJson), + Effect.andThen(S.decodeUnknown(PollUploadResponseSchema)), + Effect.andThen((res) => + res.status === "done" + ? Effect.succeed(res.fileData) + : Effect.fail(new RetryError()), + ), + Effect.retry({ + while: (err) => err instanceof RetryError, + schedule: exponentialBackoff, + }), + Effect.catchTag("RetryError", (e) => Effect.die(e)), + ); - let callbackUrl = file.callbackUrl + `?slug=${file.callbackSlug}`; - if (!callbackUrl.startsWith("http")) - callbackUrl = "http://" + callbackUrl; + if (file === undefined) { + yield* Effect.logError(`Failed to simulate callback for file ${fileKey}`); + return yield* new UploadThingError({ + code: "UPLOAD_FAILED", + message: "File took too long to upload", + }); + } - logger.info("SIMULATING FILE UPLOAD WEBHOOK CALLBACK", callbackUrl); + let callbackUrl = file.callbackUrl + `?slug=${file.callbackSlug}`; + if (!callbackUrl.startsWith("http")) callbackUrl = "http://" + callbackUrl; - const payload = JSON.stringify({ - status: "uploaded", - metadata: JSON.parse(file.metadata ?? "{}") as unknown, - file: { - url: `https://utfs.io/f/${encodeURIComponent(opts.fileKey)}`, - key: opts.fileKey, - name: file.fileName, - size: file.fileSize, - type: file.fileType, - customId: file.customId, - } satisfies UploadedFileData, - }); + yield* Effect.logInfo( + `SIMULATING FILE UPLOAD WEBHOOK CALLBACK`, + callbackUrl, + ); - const signature = await signPayload(payload, opts.apiKey); + const payload = JSON.stringify({ + status: "uploaded", + metadata: JSON.parse(file.metadata ?? "{}") as unknown, + file: { + url: `https://utfs.io/f/${encodeURIComponent(fileKey)}`, + key: fileKey, + name: file.fileName, + size: file.fileSize, + customId: file.customId, + type: file.fileType, + } satisfies UploadedFileData, + }); - try { - const response = await opts.fetch(callbackUrl, { - method: "POST", - body: payload, - headers: { - "content-type": "application/json", - "uploadthing-hook": "callback", - "x-uploadthing-signature": signature, - }, - }); - if (isValidResponse(response)) { - logger.success( - "Successfully simulated callback for file", - opts.fileKey, - ); - } else { - throw new Error("Invalid response"); - } - } catch (e) { - logger.error( - `Failed to simulate callback for file '${opts.fileKey}'. Is your webhook configured correctly?`, - ); - logger.error( - ` - Make sure the URL '${callbackUrl}' is accessible without any authentication. You can verify this by running 'curl -X POST ${callbackUrl}' in your terminal`, - ); - logger.error( - ` - Still facing issues? Read https://docs.uploadthing.com/faq for common issues`, - ); - } - return file; - }, - ); + const signature = yield* Effect.tryPromise({ + try: () => signPayload(payload, apiKey), + catch: (e) => + new UploadThingError({ + code: "INTERNAL_SERVER_ERROR", + message: "Failed to sign payload", + cause: e, + }), + }); - if (fileData !== undefined) return fileData; + const callbackResponse = yield* fetchEff(callbackUrl, { + method: "POST", + body: payload, + headers: { + "Content-Type": "application/json", + "uploadthing-hook": "callback", + "x-uploadthing-signature": signature, + }, + }).pipe( + Effect.catchTag("FetchError", () => + Effect.succeed(new Response(null, { status: 500 })), + ), + ); - logger.error(`Failed to simulate callback for file ${opts.fileKey}`); - throw new UploadThingError({ - code: "UPLOAD_FAILED", - message: "File took too long to upload", + if (isValidResponse(callbackResponse)) { + yield* Effect.logInfo( + "Successfully simulated callback for file", + fileKey, + ); + } else { + yield* Effect.logError( + ` +Failed to simulate callback for file '${file.fileKey}'. Is your webhook configured correctly? + - Make sure the URL '${callbackUrl}' is accessible without any authentication. You can verify this by running 'curl -X POST ${callbackUrl}' in your terminal + - Still facing issues? Read https://docs.uploadthing.com/faq for common issues +`.trim(), + ); + } + return file; }); }; diff --git a/packages/uploadthing/src/internal/get-api-key.ts b/packages/uploadthing/src/internal/get-api-key.ts new file mode 100644 index 000000000..50b572399 --- /dev/null +++ b/packages/uploadthing/src/internal/get-api-key.ts @@ -0,0 +1,20 @@ +import { process } from "std-env"; + +import { UploadThingError } from "@uploadthing/shared"; + +export const getApiKey = (apiKey?: string) => { + if (apiKey) return apiKey; + if (process.env.UPLOADTHING_SECRET) return process.env.UPLOADTHING_SECRET; + return undefined; +}; + +export const getApiKeyOrThrow = (apiKey?: string) => { + const key = getApiKey(apiKey); + if (!key?.startsWith("sk_")) { + throw new UploadThingError({ + code: "MISSING_ENV", + message: "Missing or invalid API key. API keys must start with `sk_`.", + }); + } + return key; +}; diff --git a/packages/uploadthing/src/internal/handler.ts b/packages/uploadthing/src/internal/handler.ts index b741f08c1..d13b5a313 100644 --- a/packages/uploadthing/src/internal/handler.ts +++ b/packages/uploadthing/src/internal/handler.ts @@ -1,682 +1,489 @@ -import { isDevelopment, process } from "std-env"; +import * as S from "@effect/schema/Schema"; +import * as Effect from "effect/Effect"; import { + FetchContext, + fetchEff, + fillInputRouteConfig, generateUploadThingURL, - getTypeFromFileName, - isObject, objectKeys, - fillInputRouteConfig as parseAndExpandInputConfig, - resolveMaybeUrlArg, - safeParseJSON, + parseRequestJson, + parseResponseJson, UploadThingError, verifySignature, } from "@uploadthing/shared"; -import type { - ExpandedRouteConfig, - FetchEsque, - FileRouterInputKey, - Json, -} from "@uploadthing/shared"; -import type { UploadedFileData } from "../types"; import { UPLOADTHING_VERSION } from "./constants"; import { conditionalDevServer } from "./dev-hook"; -import { logger } from "./logger"; +import { ConsolaLogger, withMinimalLogLevel } from "./logger"; +import { + abortMultipartUpload, + completeMultipartUpload, +} from "./multi-part.server"; import { getParseFn } from "./parser"; -import { UTFiles, VALID_ACTION_TYPES } from "./types"; +import { resolveCallbackUrl } from "./resolve-url"; +import { + FailureActionPayload, + MultipartCompleteActionPayload, + PresignedURLResponseSchema, + ServerCallbackPostResponseSchema, + UploadActionPayload, + UploadedFileDataSchema, +} from "./shared-schemas"; import type { - ActionType, FileRouter, MiddlewareFnArgs, - PresignedURLs, RequestHandler, + RequestHandlerInput, + RequestHandlerOutput, + RequestHandlerSuccess, RouteHandlerConfig, RouteHandlerOptions, UTEvents, ValidMiddlewareObject, } from "./types"; +import { UTFiles } from "./types"; +import { + assertFilesMeetConfig, + parseAndValidateRequest, + RequestInput, +} from "./validate-request-input"; /** - * Creates a wrapped fetch that will always forward a few headers to the server. + * Allows adapters to be fully async/await instead of providing services and running Effect programs */ - -const createUTFetch = ( - apiKey: string, - fetch: FetchEsque, - fePackage: string, - beAdapter: string, -) => { - return async (endpoint: `/${string}`, payload: unknown) => { - const response = await fetch(generateUploadThingURL(endpoint), { - method: "POST", - body: JSON.stringify(payload), - headers: { - "Content-Type": "application/json", - "x-uploadthing-api-key": apiKey, +export const runRequestHandlerAsync = < + TArgs extends MiddlewareFnArgs, +>( + handler: RequestHandler, + args: RequestHandlerInput, + config?: RouteHandlerConfig | undefined, +) => + handler(args).pipe( + withMinimalLogLevel(config?.logLevel), + Effect.provide(ConsolaLogger), + Effect.provideService(FetchContext, { + fetch: config?.fetch ?? globalThis.fetch, + baseHeaders: { "x-uploadthing-version": UPLOADTHING_VERSION, - "x-uploadthing-fe-package": fePackage, - "x-uploadthing-be-adapter": beAdapter, + // These are filled in later in `parseAndValidateRequest` + "x-uploadthing-api-key": undefined, + "x-uploadthing-be-adapter": undefined, + "x-uploadthing-fe-package": undefined, }, - }); - - return response; - }; -}; - -const fileCountBoundsCheck = ( - files: { name: string }[], - routeConfig: ExpandedRouteConfig, -) => { - const counts = files.reduce>((acc, file) => { - const type = getTypeFromFileName(file.name, objectKeys(routeConfig)); - acc[type] = (acc[type] || 0) + 1; - return acc; - }, {}); - - for (const _key in counts) { - const key = _key as FileRouterInputKey; - const config = routeConfig[key]; - if (!config) { - throw new UploadThingError({ - code: "BAD_REQUEST", - message: `Invalid config during file count - missing ${key}`, - cause: `Expected route config to have a config for key ${key} but none was found.`, - }); + }), + asHandlerOutput, + Effect.runPromise, + ); + +const asHandlerOutput = ( + effect: Effect.Effect, +): Effect.Effect => + Effect.catchAll(effect, (error) => Effect.succeed({ success: false, error })); + +const handleRequest = RequestInput.pipe( + Effect.andThen(({ action, hook }) => { + if (hook === "callback") return handleCallbackRequest; + switch (action) { + case "upload": + return handleUploadAction; + case "multipart-complete": + return handleMultipartCompleteAction; + case "failure": + return handleMultipartFailureAction; } + }), + Effect.map((output): RequestHandlerSuccess => ({ success: true, ...output })), +); + +export const buildRequestHandler = + >( + opts: RouteHandlerOptions, + adapter: string, + ): RequestHandler => + (input) => + handleRequest.pipe( + Effect.provideServiceEffect( + RequestInput, + parseAndValidateRequest(input, opts, adapter), + ), + Effect.catchTags({ + InvalidJsonError: (e) => + new UploadThingError({ + code: "INTERNAL_SERVER_ERROR", + message: "An error occured while parsing input/output", + cause: e, + }), + BadRequestError: (e) => + Effect.fail( + new UploadThingError({ + code: "INTERNAL_SERVER_ERROR", + message: e.getMessage(), + cause: e, + data: e.json as never, + }), + ), + FetchError: (e) => + new UploadThingError({ + code: "INTERNAL_SERVER_ERROR", + message: typeof e.error === "string" ? e.error : e.message, + cause: e, + data: e.error as never, + }), + ParseError: (e) => + new UploadThingError({ + code: "INTERNAL_SERVER_ERROR", + message: "An error occured while parsing input/output", + cause: e, + }), + }), + Effect.tapError((e) => Effect.logError(e.message)), + ); - const count = counts[key]; - const min = config.minFileCount; - const max = config.maxFileCount; - - if (min > max) { - throw new UploadThingError({ +const handleCallbackRequest = Effect.gen(function* () { + const { req, uploadable, apiKey } = yield* RequestInput; + const verified = yield* Effect.tryPromise({ + try: async () => + verifySignature( + await req.clone().text(), + req.headers.get("x-uploadthing-signature"), + apiKey, + ), + catch: () => + new UploadThingError({ code: "BAD_REQUEST", - message: - "Invalid config during file count - minFileCount > maxFileCount", - cause: `minFileCount must be less than maxFileCount for key ${key}. got: ${min} > ${max}`, - }); - } - - if (count < min || count > max) { - return { - minCount: min, - minCountHit: count < min, - maxCount: max, - maxCountHit: count > max, - count, - type: key, - }; - } + message: "Invalid signature", + }), + }); + yield* Effect.logDebug("Signature verified:", verified); + if (!verified) { + yield* Effect.logError("Invalid signature"); + return yield* new UploadThingError({ + code: "BAD_REQUEST", + message: "Invalid signature", + }); } - return { minCountHit: false, maxCountHit: false }; -}; - -export const buildRequestHandler = < - TRouter extends FileRouter, - Args extends MiddlewareFnArgs, ->( - opts: RouteHandlerOptions, - adapter: string, -): RequestHandler => { - return async (input) => { - const isDev = opts.config?.isDev ?? isDevelopment; - const fetch = opts.config?.fetch ?? globalThis.fetch; - - if (isDev) { - logger.info("UploadThing dev server is now running!"); - } - - const { router, config } = opts; - const preferredOrEnvSecret = - config?.uploadthingSecret ?? process.env.UPLOADTHING_SECRET; - - const req = input.req; - const url = new URL(req.url); - - // Get inputs from query and params - const params = url.searchParams; - const uploadthingHook = req.headers.get("uploadthing-hook") ?? undefined; - const slug = params.get("slug") ?? undefined; - const actionType = (params.get("actionType") as ActionType) ?? undefined; - const utFrontendPackage = - req.headers.get("x-uploadthing-package") ?? "unknown"; - - const clientVersion = req.headers.get("x-uploadthing-version"); - if (clientVersion != null && clientVersion !== UPLOADTHING_VERSION) { - logger.error("Client version mismatch"); - return new UploadThingError({ - code: "BAD_REQUEST", - message: "Client version mismatch", - cause: `Server version: ${UPLOADTHING_VERSION}, Client version: ${clientVersion}`, - }); - } - - // Validate inputs - if (!slug) { - logger.error("No slug provided in params:", params); - return new UploadThingError({ - code: "BAD_REQUEST", - message: "No slug provided in params", - }); - } - - if (slug && typeof slug !== "string") { - const msg = `Expected slug to be of type 'string', got '${typeof slug}'`; - logger.error(msg); - return new UploadThingError({ - code: "BAD_REQUEST", - message: "`slug` must be a string", - cause: msg, - }); - } - if (actionType && typeof actionType !== "string") { - const msg = `Expected actionType to be of type 'string', got '${typeof actionType}'`; - logger.error(msg); - return new UploadThingError({ - code: "BAD_REQUEST", - message: "`actionType` must be a string", - cause: msg, - }); - } - if (uploadthingHook && typeof uploadthingHook !== "string") { - const msg = `Expected uploadthingHook to be of type 'string', got '${typeof uploadthingHook}'`; - return new UploadThingError({ - code: "BAD_REQUEST", - message: "`uploadthingHook` must be a string", - cause: msg, - }); - } - - if (!preferredOrEnvSecret) { - const msg = `No secret provided, please set UPLOADTHING_SECRET in your env file or in the config`; - logger.error(msg); - return new UploadThingError({ - code: "MISSING_ENV", - message: `No secret provided`, - cause: msg, - }); - } - - if (!preferredOrEnvSecret.startsWith("sk_")) { - const msg = `Invalid secret provided, UPLOADTHING_SECRET must start with 'sk_'`; - logger.error(msg); - return new UploadThingError({ - code: "MISSING_ENV", - message: "Invalid API key. API keys must start with 'sk_'.", - cause: msg, - }); - } - - if (utFrontendPackage && typeof utFrontendPackage !== "string") { - const msg = `Expected x-uploadthing-package to be of type 'string', got '${typeof utFrontendPackage}'`; - logger.error(msg); - return new UploadThingError({ - code: "BAD_REQUEST", - message: - "`x-uploadthing-package` must be a string. eg. '@uploadthing/react'", - cause: msg, - }); - } - - const uploadable = router[slug]; - if (!uploadable) { - const msg = `No file route found for slug ${slug}`; - logger.error(msg); - return new UploadThingError({ - code: "NOT_FOUND", - message: msg, - }); - } - - const utFetch = createUTFetch( - preferredOrEnvSecret, - fetch, - utFrontendPackage, - adapter, + const requestInput = yield* Effect.flatMap( + parseRequestJson(req), + S.decodeUnknown( + S.Struct({ + status: S.String, + file: UploadedFileDataSchema, + metadata: S.Record(S.String, S.Unknown), + }), + ), + ); + yield* Effect.logDebug("Handling callback request with input:", requestInput); + + const serverData = yield* Effect.tryPromise({ + try: async () => + uploadable.resolver({ + file: requestInput.file, + metadata: requestInput.metadata, + }) as Promise, + catch: (error) => + new UploadThingError({ + code: "INTERNAL_SERVER_ERROR", + message: "Failed to run onUploadComplete", + cause: error, + }), + }).pipe( + Effect.tapError((error) => + Effect.logError( + "Failed to run onUploadComplete. You probably shouldn't be throwing errors here.", + error, + ), + ), + ); + const payload = { + fileKey: requestInput.file.key, + callbackData: serverData ?? null, + }; + yield* Effect.logDebug( + "'onUploadComplete' callback finished. Sending response to UploadThing:", + payload, + ); + + yield* fetchEff(generateUploadThingURL("/api/serverCallback"), { + method: "POST", + body: JSON.stringify(payload), + headers: { "Content-Type": "application/json" }, + }).pipe( + Effect.andThen(parseResponseJson), + Effect.andThen(S.decodeUnknown(ServerCallbackPostResponseSchema)), + ); + return { body: null }; +}); + +const runRouteMiddleware = (opts: S.Schema.Type) => + Effect.gen(function* () { + const { uploadable, middlewareArgs } = yield* RequestInput; + const { files, input } = opts; + + yield* Effect.logDebug("Running middleware"); + const metadata: ValidMiddlewareObject = yield* Effect.tryPromise({ + try: async () => + uploadable._def.middleware({ ...middlewareArgs, input, files }), + catch: (error) => + error instanceof UploadThingError + ? error + : new UploadThingError({ + code: "INTERNAL_SERVER_ERROR", + message: "Failed to run middleware", + cause: error, + }), + }).pipe( + Effect.tapError((error) => + Effect.logError("An error occured in your middleware function", error), + ), ); - logger.debug("All request input is valid", { - slug, - actionType, - uploadthingHook, - }); - if (uploadthingHook === "callback") { - // This is when we receive the webhook from uploadthing - const maybeReqBody = await safeParseJSON<{ - file: UploadedFileData; - metadata: Record; - input?: Json; - }>(req); - - logger.debug("Handling callback request with input:", maybeReqBody); - - if (maybeReqBody instanceof Error) { - logger.error("Invalid request body", maybeReqBody); - return new UploadThingError({ - code: "BAD_REQUEST", - message: "Invalid request body", - cause: maybeReqBody, - }); - } - - const verified = await verifySignature( - JSON.stringify(maybeReqBody), - req.headers.get("x-uploadthing-signature"), - preferredOrEnvSecret, - ); - logger.debug("Signature verified:", verified); - if (!verified) { - logger.error("Invalid signature"); - return new UploadThingError({ - code: "BAD_REQUEST", - message: "Invalid signature", - }); - } - - const resolverArgs = { - file: maybeReqBody.file, - metadata: maybeReqBody.metadata, - }; - logger.debug( - "Running 'onUploadComplete' callback with input:", - resolverArgs, - ); - const res = (await uploadable.resolver(resolverArgs)) as unknown; - const payload = { - fileKey: maybeReqBody.file.key, - callbackData: res ?? null, - }; - logger.debug( - "'onUploadComplete' callback finished. Sending response to UploadThing:", - payload, - ); - const callbackResponse = await utFetch("/api/serverCallback", payload); - logger.debug( - "UploadThing responded with status:", - callbackResponse.status, - ); - return { status: 200, body: null }; - } - - if (!actionType || !VALID_ACTION_TYPES.includes(actionType)) { - // This would either be someone spamming or the AWS webhook - const msg = `Expected ${VALID_ACTION_TYPES.map((x) => `"${x}"`) - .join(", ") - .replace(/,(?!.*,)/, " or")} but got "${actionType}"`; - logger.error("Invalid action type.", msg); - return new UploadThingError({ + if (metadata[UTFiles] && metadata[UTFiles].length !== files.length) { + const msg = `Expected files override to have the same length as original files, got ${metadata[UTFiles].length} but expected ${files.length}`; + yield* Effect.logError(msg); + return yield* new UploadThingError({ code: "BAD_REQUEST", - cause: `Invalid action type ${actionType}`, - message: msg, + message: "Files override must have the same length as files", + cause: msg, }); } - switch (actionType) { - case "upload": { - const maybeInput = await safeParseJSON(req); - - if (maybeInput instanceof Error) { - logger.error("Invalid request body", maybeInput); - return new UploadThingError({ - code: "BAD_REQUEST", - message: "Invalid request body", - cause: maybeInput, - }); - } - - logger.debug("Handling upload request with input:", maybeInput); - const { files, input: userInput } = maybeInput; - - // Validate without Zod (for now) - if ( - !Array.isArray(files) || - !files.every( - (f) => - isObject(f) && - typeof f.name === "string" && - typeof f.size === "number" && - typeof f.type === "string", - ) - ) { - const msg = `Expected files to be of type '{name:string, size:number, type:string}[]', got '${JSON.stringify( - files, - )}'`; - logger.error(msg); - return new UploadThingError({ - code: "BAD_REQUEST", - message: "Files must be an array of objects with name and size", - cause: msg, - }); - } - - // validate the input - let parsedInput: Json = {}; - try { - logger.debug("Parsing input"); - const inputParser = uploadable._def.inputParser; - parsedInput = await getParseFn(inputParser)(userInput); - logger.debug("Input parsed successfully", parsedInput); - } catch (error) { - logger.error("An error occurred trying to parse input:", error); - return new UploadThingError({ - code: "BAD_REQUEST", - message: "Invalid input.", - cause: error, - }); - } - - let metadata: ValidMiddlewareObject = {}; - try { - logger.debug("Running middleware"); - metadata = await uploadable._def.middleware({ - ...input.middlewareArgs, - input: parsedInput, - files, - }); - logger.debug("Middleware finished successfully with:", metadata); - } catch (error) { - logger.error("An error occurred in your middleware function:", error); - if (error instanceof UploadThingError) return error; - return new UploadThingError({ - code: "INTERNAL_SERVER_ERROR", - message: "Failed to run middleware.", - cause: error, - }); - } - - if (metadata[UTFiles] && metadata[UTFiles].length !== files.length) { - const msg = `Expected files override to have the same length as original files, got ${metadata[UTFiles].length} but expected ${files.length}`; - logger.error(msg); - return new UploadThingError({ - code: "BAD_REQUEST", - message: "Files override must have the same length as files", - cause: msg, - }); - } - - // Attach customIds from middleware to the files - const filesWithCustomIds = files.map((file, idx) => { - const theirs = metadata[UTFiles]?.[idx]; - if (theirs && theirs.size !== file.size) { - logger.warn("File size mismatch. Reverting to original size"); - } - return { - name: theirs?.name ?? file.name, - size: file.size, - customId: theirs?.customId, - }; - }); - - // FILL THE ROUTE CONFIG so the server only has one happy path - let parsedConfig: ExpandedRouteConfig; - try { - logger.debug("Parsing route config", uploadable._def.routerConfig); - parsedConfig = parseAndExpandInputConfig( - uploadable._def.routerConfig, - ); - logger.debug("Route config parsed successfully", parsedConfig); - } catch (error) { - logger.error("Invalid route config", error); - return new UploadThingError({ - code: "BAD_REQUEST", - message: "Invalid config.", - cause: error, - }); - } - - try { - logger.debug("Checking file count bounds", files); - - const { minCount, minCountHit, maxCount, maxCountHit, count, type } = - fileCountBoundsCheck(files, parsedConfig); - - if (maxCountHit || minCountHit) { - const errorMessage = maxCountHit - ? `You uploaded ${count} file(s) of type '${type}', but the limit for that type is ${maxCount}` - : `You uploaded ${count} file(s) of type '${type}', but the minimum for that type is ${minCount}`; - - logger.error(errorMessage); - - return new UploadThingError({ - code: "BAD_REQUEST", - message: maxCountHit - ? "Maximum file count not met" - : "Minimum file count not met", - cause: errorMessage, - }); - } - - logger.debug("File count bounds check passed"); - } catch (error) { - logger.error("Invalid route config", error); - return new UploadThingError({ - code: "BAD_REQUEST", - message: "Invalid config.", - cause: error, - }); - } - - const callbackUrl = resolveCallbackUrl({ config, req, url, isDev }); - logger.debug( - "Retrieving presigned URLs from UploadThing. Callback URL is:", - callbackUrl.href, - ); - const uploadthingApiResponse = await utFetch("/api/prepareUpload", { - files: filesWithCustomIds, - - routeConfig: parsedConfig, - - metadata, - callbackUrl: callbackUrl.origin + callbackUrl.pathname, - callbackSlug: slug, - }); - - // This is when we send the response back to the user's form so they can submit the files - const parsedResponse = await safeParseJSON( - uploadthingApiResponse, - ); - - if (!uploadthingApiResponse.ok || parsedResponse instanceof Error) { - logger.error("Unable to get presigned URLs", parsedResponse); - return new UploadThingError({ - code: "URL_GENERATION_FAILED", - message: "Unable to get presigned urls", - cause: parsedResponse, - }); - } - - logger.debug("UploadThing responded with:", parsedResponse); - logger.debug("Sending presigned URLs to client"); - - // This is when we send the response back to the user's form so they can submit the files - - let promise: Promise | undefined = undefined; - if (isDev) { - promise = Promise.all( - parsedResponse.map((file) => - conditionalDevServer({ - fileKey: file.key, - apiKey: preferredOrEnvSecret, - fetch, - }).catch((error) => { - logger.error("Err", error); - }), - ), - ); - } - - return { - cleanup: promise, - body: parsedResponse satisfies UTEvents["upload"]["out"], - status: 200, - }; - } - case "multipart-complete": { - const maybeReqBody = - await safeParseJSON(req); - if (maybeReqBody instanceof Error) { - logger.error("Invalid request body", maybeReqBody); - return new UploadThingError({ - code: "BAD_REQUEST", - message: "Invalid request body", - cause: maybeReqBody, - }); - } - - logger.debug( - "Handling multipart-complete request with input:", - maybeReqBody, - ); - logger.debug("Notifying UploadThing that multipart upload is complete"); - - const completeRes = await utFetch("/api/completeMultipart", { - fileKey: maybeReqBody.fileKey, - uploadId: maybeReqBody.uploadId, - etags: maybeReqBody.etags, - }); - if (!completeRes.ok) { - logger.error( - "Failed to notify UploadThing that multipart upload is complete", + // Attach customIds from middleware to the files + const filesWithCustomIds = yield* Effect.forEach(files, (file, idx) => + Effect.gen(function* () { + const theirs = metadata[UTFiles]?.[idx]; + if (theirs && theirs.size !== file.size) { + yield* Effect.logWarning( + "File size mismatch. Reverting to original size", ); - return new UploadThingError({ - code: "UPLOAD_FAILED", - message: "Failed to complete multipart upload", - cause: completeRes, - }); } - - logger.debug("UploadThing responded with:", completeRes.status); - return { - status: 200, - body: null satisfies UTEvents["multipart-complete"]["out"], + name: theirs?.name ?? file.name, + size: file.size, + customId: theirs?.customId, }; - } - case "failure": { - const maybeReqBody = - await safeParseJSON(req); - if (maybeReqBody instanceof Error) { - logger.error("Invalid request body", maybeReqBody); - return new UploadThingError({ - code: "BAD_REQUEST", - message: "Invalid request body", - cause: maybeReqBody, - }); - } - const { fileKey, uploadId } = maybeReqBody; - logger.debug("Handling failure request with input:", maybeReqBody); - logger.debug("Notifying UploadThing that upload failed"); - - // Tell uploadthing to mark the upload as failed - const uploadthingApiResponse = await utFetch("/api/failureCallback", { - fileKey, - uploadId, - }); - - if (!uploadthingApiResponse.ok) { - const parsedResponse = await safeParseJSON(uploadthingApiResponse); - logger.error("Failed to mark upload as failed", parsedResponse); - - return new UploadThingError({ - code: "INTERNAL_SERVER_ERROR", - message: "Unable to mark upload as failed", - cause: parsedResponse, - }); - } - - logger.debug("UploadThing responded with:", uploadthingApiResponse); - logger.debug("Running 'onUploadError' callback"); - - try { - // Run the onUploadError callback - uploadable._def.onUploadError({ - error: new UploadThingError({ - code: "UPLOAD_FAILED", - message: `Upload failed for ${fileKey}`, - }), - fileKey, - }); - } catch (error) { - logger.error( - "Failed to run onUploadError callback. You probably shouldn't be throwing errors in your callback.", - error, - ); - - return new UploadThingError({ - code: "INTERNAL_SERVER_ERROR", - message: "Failed to run onUploadError callback", - cause: error, - }); - } + }), + ); - return { status: 200, body: null satisfies UTEvents["failure"]["out"] }; - } - default: { - // This should never happen - return new UploadThingError({ + return { metadata, filesWithCustomIds }; + }); + +const handleUploadAction = Effect.gen(function* () { + const opts = yield* RequestInput; + const { files, input } = yield* Effect.flatMap( + parseRequestJson(opts.req), + S.decodeUnknown(UploadActionPayload), + ); + yield* Effect.logDebug("Handling upload request with input:", { + files, + input, + }); + + // validate the input + yield* Effect.logDebug("Parsing user input"); + const inputParser = opts.uploadable._def.inputParser; + const parsedInput = yield* Effect.tryPromise({ + try: async () => getParseFn(inputParser)(input), + catch: (error) => + new UploadThingError({ + code: "BAD_REQUEST", + message: "Invalid input", + cause: error, + }), + }).pipe( + Effect.tapError((error) => + Effect.logError("An error occured trying to parse input", error), + ), + ); + yield* Effect.logDebug("Input parsed successfully", parsedInput); + + const { metadata, filesWithCustomIds } = yield* runRouteMiddleware({ + input: parsedInput, + files, + }); + + yield* Effect.logDebug( + "Parsing route config", + opts.uploadable._def.routerConfig, + ); + const parsedConfig = yield* fillInputRouteConfig( + opts.uploadable._def.routerConfig, + ).pipe( + Effect.catchTag( + "InvalidRouteConfig", + (err) => + new UploadThingError({ code: "BAD_REQUEST", - message: `Invalid action type`, - }); - } - } - }; -}; - -function resolveCallbackUrl(opts: { - config: RouteHandlerConfig | undefined; - req: Request; - url: URL; - isDev: boolean; -}): URL { - let callbackUrl = opts.url; - if (opts.config?.callbackUrl) { - callbackUrl = resolveMaybeUrlArg(opts.config.callbackUrl); - } else if (process.env.UPLOADTHING_URL) { - callbackUrl = resolveMaybeUrlArg(process.env.UPLOADTHING_URL); - } - - if (opts.isDev || !callbackUrl.host.includes("localhost")) { - return callbackUrl; - } - - // Production builds have to have a public URL so UT can send webhook - // Parse the URL from the headers - const headers = opts.req.headers; - let parsedFromHeaders = - headers.get("origin") ?? - headers.get("referer") ?? - headers.get("host") ?? - headers.get("x-forwarded-host"); - - if (parsedFromHeaders && !parsedFromHeaders.includes("http")) { - parsedFromHeaders = - (headers.get("x-forwarded-proto") ?? "https") + "://" + parsedFromHeaders; - } - - if (!parsedFromHeaders || parsedFromHeaders.includes("localhost")) { - // Didn't find a valid URL in the headers, log a warning and use the original url anyway - logger.warn( - "You are using a localhost callback url in production which is not supported.", - "Read more and learn how to fix it here: https://docs.uploadthing.com/faq#my-callback-runs-in-development-but-not-in-production", + message: "Invalid config", + cause: err, + }), + ), + ); + yield* Effect.logDebug("Route config parsed successfully", parsedConfig); + + yield* Effect.logDebug( + "Validating files meet the config requirements", + files, + ); + yield* assertFilesMeetConfig(files, parsedConfig).pipe( + Effect.catchAll( + (e) => + new UploadThingError({ + code: "BAD_REQUEST", + message: `Invalid config: ${e._tag}`, + cause: "reason" in e ? e.reason : e.message, + }), + ), + ); + + const callbackUrl = yield* resolveCallbackUrl.pipe( + Effect.tapError((error) => + Effect.logError("Failed to resolve callback URL", error), + ), + Effect.catchTag( + "InvalidURL", + (err) => + new UploadThingError({ + code: "INTERNAL_SERVER_ERROR", + message: err.message, + }), + ), + ); + yield* Effect.logDebug( + "Retrieving presigned URLs from UploadThing. Callback URL is:", + callbackUrl.href, + ); + + const presignedUrls = yield* fetchEff( + generateUploadThingURL("/api/prepareUpload"), + { + method: "POST", + body: JSON.stringify({ + files: filesWithCustomIds, + routeConfig: parsedConfig, + metadata, + callbackUrl: callbackUrl.origin + callbackUrl.pathname, + callbackSlug: opts.slug, + }), + headers: { "Content-Type": "application/json" }, + }, + ).pipe( + Effect.andThen(parseResponseJson), + Effect.andThen(S.decodeUnknown(PresignedURLResponseSchema)), + ); + + yield* Effect.logDebug("UploadThing responded with:", presignedUrls); + yield* Effect.logDebug("Sending presigned URLs to client"); + + let promise: Promise | undefined = undefined; + if (opts.isDev) { + const fetchContext = yield* FetchContext; + promise = Effect.forEach( + presignedUrls, + (file) => conditionalDevServer(file.key, opts.apiKey), + { concurrency: 10 }, + ).pipe( + Effect.provide(ConsolaLogger), + Effect.provideService(FetchContext, fetchContext), + Effect.runPromise, ); - return callbackUrl; } - return resolveMaybeUrlArg(parsedFromHeaders); -} + return { + body: presignedUrls satisfies UTEvents["upload"]["out"], + cleanup: promise, + }; +}); + +const handleMultipartCompleteAction = Effect.gen(function* () { + const opts = yield* RequestInput; + const requestInput = yield* Effect.flatMap( + parseRequestJson(opts.req), + S.decodeUnknown(MultipartCompleteActionPayload), + ); + yield* Effect.logDebug( + "Handling multipart-complete request with input:", + requestInput, + ); + yield* Effect.logDebug( + "Notifying UploadThing that multipart upload is complete", + ); + + const completionResponse = yield* completeMultipartUpload( + { + key: requestInput.fileKey, + uploadId: requestInput.uploadId, + }, + requestInput.etags, + ); + yield* Effect.logDebug("UploadThing responded with:", completionResponse); + + return { + body: null satisfies UTEvents["multipart-complete"]["out"], + }; +}); + +const handleMultipartFailureAction = Effect.gen(function* () { + const { req, uploadable } = yield* RequestInput; + const { fileKey, uploadId } = yield* Effect.flatMap( + parseRequestJson(req), + S.decodeUnknown(FailureActionPayload), + ); + yield* Effect.logDebug("Handling failure request with input:", { + fileKey, + uploadId, + }); + yield* Effect.logDebug("Notifying UploadThing that upload failed"); + + const failureResponse = yield* abortMultipartUpload({ + key: fileKey, + uploadId, + }); + yield* Effect.logDebug("UploadThing responded with:", failureResponse); + yield* Effect.logDebug("Running 'onUploadError' callback"); + + yield* Effect.try({ + try: () => { + uploadable._def.onUploadError({ + error: new UploadThingError({ + code: "UPLOAD_FAILED", + message: `Upload failed for ${fileKey}`, + }), + fileKey, + }); + }, + catch: (error) => + new UploadThingError({ + code: "INTERNAL_SERVER_ERROR", + message: "Failed to run onUploadError", + cause: error, + }), + }).pipe( + Effect.tapError((error) => + Effect.logError( + "Failed to run onUploadError. You probably shouldn't be throwing errors here.", + error, + ), + ), + ); + + return { + body: null satisfies UTEvents["failure"]["out"], + }; +}); export const buildPermissionsInfoHandler = ( opts: RouteHandlerOptions, ) => { return () => { - const r = opts.router; - - const permissions = Object.keys(r).map((k) => { - const route = r[k]; - const config = parseAndExpandInputConfig(route._def.routerConfig); + const permissions = objectKeys(opts.router).map((slug) => { + const route = opts.router[slug]; + const config = Effect.runSync( + fillInputRouteConfig(route._def.routerConfig), + ); return { - slug: k as keyof TRouter, + slug, config, }; }); diff --git a/packages/uploadthing/src/internal/incompat-node-guard.ts b/packages/uploadthing/src/internal/incompat-node-guard.ts index 25689bab1..523a16e1e 100644 --- a/packages/uploadthing/src/internal/incompat-node-guard.ts +++ b/packages/uploadthing/src/internal/incompat-node-guard.ts @@ -1,7 +1,6 @@ +import * as Effect from "effect/Effect"; import { process } from "std-env"; -import { logger } from "./logger"; - export function incompatibleNodeGuard() { if (typeof process === "undefined") return; @@ -30,10 +29,11 @@ export function incompatibleNodeGuard() { if (major > 18) return; if (major === 18 && minor >= 13) return; - logger.fatal( - `YOU ARE USING A LEGACY (${major}.${minor}) NODE VERSION WHICH ISN'T OFFICIALLY SUPPORTED. PLEASE UPGRADE TO NODE ^18.13.`, + Effect.runSync( + Effect.logError( + `YOU ARE USING A LEGACY (${major}.${minor}) NODE VERSION WHICH ISN'T OFFICIALLY SUPPORTED. PLEASE UPGRADE TO NODE ^18.13.`, + ), ); - // Kill the process if it isn't going to work correctly anyway // If we've gotten this far we know we have a Node.js runtime so exit is defined. Override std-env type. // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call diff --git a/packages/uploadthing/src/internal/logger.ts b/packages/uploadthing/src/internal/logger.ts index 00a2d6fb2..39ea22316 100644 --- a/packages/uploadthing/src/internal/logger.ts +++ b/packages/uploadthing/src/internal/logger.ts @@ -1,9 +1,14 @@ import type { LogObject, LogType } from "consola/core"; -import { createConsola, LogLevels } from "consola/core"; +import { createConsola } from "consola/core"; +import * as Logger from "effect/Logger"; +import * as EffectLogLevel from "effect/LogLevel"; import { process } from "std-env"; import { isObject } from "@uploadthing/shared"; +/** + * All the public log levels users can set. + */ export type LogLevel = "error" | "warn" | "info" | "debug" | "trace"; const colorize = (str: string, level: LogType) => { @@ -77,7 +82,7 @@ function formatArgs(args: any[]) { }); } -export const logger = createConsola({ +const logger = createConsola({ reporters: [ { log: (logObj: LogObject) => { @@ -104,7 +109,36 @@ export const logger = createConsola({ }, }); -export const initLogger = (level: LogLevel | undefined) => { - // logger.wrapConsole(); - logger.level = LogLevels[level ?? "info"]; +const effectLoggerLevelToConsolaLevel: Record = + { + All: "verbose", + Fatal: "error", + Error: "error", + Info: "info", + Debug: "debug", + Trace: "trace", + Warning: "warn", + None: "silent", + }; + +export const withMinimalLogLevel = (level: LogLevel = "info") => { + return Logger.withMinimumLogLevel( + { + silent: EffectLogLevel.None, + error: EffectLogLevel.Error, + warn: EffectLogLevel.Warning, + info: EffectLogLevel.Info, + debug: EffectLogLevel.Debug, + trace: EffectLogLevel.Trace, + verbose: EffectLogLevel.All, + }[level], + ); }; + +export const ConsolaLogger = Logger.replace( + Logger.defaultLogger, + Logger.make(({ logLevel, message }) => { + // FIXME: Probably log other stuff than just message? + logger[effectLoggerLevelToConsolaLevel[logLevel._tag]](message); + }), +); diff --git a/packages/uploadthing/src/internal/multi-part.browser.ts b/packages/uploadthing/src/internal/multi-part.browser.ts new file mode 100644 index 000000000..69a39133a --- /dev/null +++ b/packages/uploadthing/src/internal/multi-part.browser.ts @@ -0,0 +1,111 @@ +import * as Cause from "effect/Cause"; +import * as Effect from "effect/Effect"; +import { isTest } from "std-env"; + +import { + contentDisposition, + exponentialBackoff, + RetryError, +} from "@uploadthing/shared"; +import type { ContentDisposition, UploadThingError } from "@uploadthing/shared"; + +import type { MPUResponse } from "./types"; +import type { UTReporter } from "./ut-reporter"; + +export const uploadMultipartWithProgress = ( + file: File, + presigned: MPUResponse, + opts: { + reportEventToUT: UTReporter; + onUploadProgress?: + | ((opts: { file: string; progress: number }) => void) + | undefined; + }, +) => + Effect.gen(function* () { + let uploadedBytes = 0; + const etags = yield* Effect.forEach( + presigned.urls, + (url, index) => { + const offset = presigned.chunkSize * index; + const end = Math.min(offset + presigned.chunkSize, file.size); + const chunk = file.slice(offset, end); + + return uploadPart({ + url, + chunk: chunk, + contentDisposition: presigned.contentDisposition, + fileType: file.type, + fileName: file.name, + onProgress: (delta) => { + uploadedBytes += delta; + const percent = (uploadedBytes / file.size) * 100; + opts.onUploadProgress?.({ file: file.name, progress: percent }); + }, + }).pipe( + Effect.andThen((tag) => ({ tag, partNumber: index + 1 })), + Effect.retry({ + while: (error) => error instanceof RetryError, + times: isTest ? 3 : 10, // less retries in tests just to make it faster + schedule: exponentialBackoff, + }), + ); + }, + { concurrency: "inherit" }, + ).pipe( + Effect.tapErrorCause((error) => + opts.reportEventToUT("failure", { + fileKey: presigned.key, + uploadId: presigned.uploadId, + fileName: file.name, + storageProviderError: Cause.pretty(error).toString(), + }), + ), + ); + + // Tell the server that the upload is complete + yield* opts.reportEventToUT("multipart-complete", { + uploadId: presigned.uploadId, + fileKey: presigned.key, + etags, + }); + }); + +interface UploadPartOptions { + url: string; + chunk: Blob; + fileType: string; + fileName: string; + contentDisposition: ContentDisposition; + onProgress: (progressDelta: number) => void; +} + +const uploadPart = (opts: UploadPartOptions) => + Effect.async((resume) => { + const xhr = new XMLHttpRequest(); + + xhr.open("PUT", opts.url, true); + xhr.setRequestHeader("Content-Type", opts.fileType); + xhr.setRequestHeader( + "Content-Disposition", + contentDisposition(opts.contentDisposition, opts.fileName), + ); + + xhr.addEventListener("load", () => { + const etag = xhr.getResponseHeader("Etag"); + if (xhr.status >= 200 && xhr.status <= 299 && etag) { + return resume(Effect.succeed(etag)); + } + return resume(Effect.fail(new RetryError())); + }); + xhr.addEventListener("error", () => resume(Effect.fail(new RetryError()))); + + let lastProgress = 0; + xhr.upload.addEventListener("progress", (e) => { + const delta = e.loaded - lastProgress; + lastProgress += delta; + opts.onProgress(delta); + }); + + xhr.send(opts.chunk); + }); diff --git a/packages/uploadthing/src/internal/multi-part.server.ts b/packages/uploadthing/src/internal/multi-part.server.ts new file mode 100644 index 000000000..a647d1109 --- /dev/null +++ b/packages/uploadthing/src/internal/multi-part.server.ts @@ -0,0 +1,151 @@ +import * as S from "@effect/schema/Schema"; +import * as Effect from "effect/Effect"; + +import { + contentDisposition, + exponentialBackoff, + fetchEff, + generateUploadThingURL, + parseResponseJson, + RetryError, + UploadThingError, +} from "@uploadthing/shared"; +import type { ContentDisposition } from "@uploadthing/shared"; + +import type { FileEsque } from "../sdk/types"; +import { FailureCallbackResponseSchema } from "./shared-schemas"; +import type { MPUResponse } from "./types"; + +export const uploadMultipart = (file: FileEsque, presigned: MPUResponse) => + Effect.gen(function* () { + yield* Effect.logDebug( + `Uploading file ${file.name} with ${presigned.urls.length} chunks of size ${presigned.chunkSize} bytes each`, + ); + + const etags = yield* Effect.forEach( + presigned.urls, + (url, index) => { + const offset = presigned.chunkSize * index; + const end = Math.min(offset + presigned.chunkSize, file.size); + const chunk = file.slice(offset, end); + + return uploadPart({ + url, + chunk: chunk as Blob, + contentDisposition: presigned.contentDisposition, + contentType: file.type, + fileName: file.name, + maxRetries: 10, + key: presigned.key, + uploadId: presigned.uploadId, + }).pipe( + Effect.andThen((etag) => ({ tag: etag, partNumber: index + 1 })), + Effect.catchTag("RetryError", (e) => Effect.die(e)), + ); + }, + { concurrency: "inherit" }, + ); + + yield* Effect.logDebug("File", file.name, "uploaded successfully."); + yield* Effect.logDebug("Completing multipart upload..."); + yield* completeMultipartUpload(presigned, etags); + yield* Effect.logDebug("Multipart upload complete."); + }); + +/** + * Used by server uploads where progress is not needed. + * Uses normal fetch API. + */ +const uploadPart = (opts: { + url: string; + key: string; + uploadId: string; + chunk: Blob; + contentType: string; + contentDisposition: ContentDisposition; + fileName: string; + maxRetries: number; +}) => + fetchEff(opts.url, { + method: "PUT", + body: opts.chunk, + headers: { + "Content-Type": opts.contentType, + "Content-Disposition": contentDisposition( + opts.contentDisposition, + opts.fileName, + ), + }, + }).pipe( + Effect.andThen((res) => + res.ok && res.headers.get("Etag") + ? Effect.succeed(res.headers.get("Etag")!) + : Effect.fail(new RetryError()), + ), + Effect.retry({ + while: (res) => res instanceof RetryError, + schedule: exponentialBackoff, + times: opts.maxRetries, + }), + Effect.tapErrorTag("RetryError", () => + // Max retries exceeded, tell UT server that upload failed + abortMultipartUpload({ key: opts.key, uploadId: opts.uploadId }).pipe( + Effect.andThen((res) => { + Effect.fail( + new UploadThingError({ + code: "UPLOAD_FAILED", + message: `Failed to upload file ${opts.fileName} to S3`, + cause: res, + }), + ); + }), + ), + ), + ); + +export const completeMultipartUpload = ( + presigned: { key: string; uploadId: string }, + etags: readonly { tag: string; partNumber: number }[], +) => + fetchEff(generateUploadThingURL("/api/completeMultipart"), { + method: "POST", + body: JSON.stringify({ + fileKey: presigned.key, + uploadId: presigned.uploadId, + etags, + }), + headers: { "Content-Type": "application/json" }, + }).pipe( + Effect.andThen(parseResponseJson), + Effect.andThen( + S.decodeUnknown( + S.Struct({ success: S.Boolean, message: S.optional(S.String) }), + ), + ), + Effect.withSpan("completeMultipartUpload", { + attributes: { etags, presigned }, + }), + ); + +export const abortMultipartUpload = (presigned: { + key: string; + uploadId: string | null; +}) => + fetchEff( + generateUploadThingURL("/api/failureCallback"), + + { + method: "POST", + body: JSON.stringify({ + fileKey: presigned.key, + uploadId: presigned.uploadId, + }), + headers: { "Content-Type": "application/json" }, + }, + ).pipe( + Effect.andThen(parseResponseJson), + Effect.andThen(S.decodeUnknown(FailureCallbackResponseSchema)), + Effect.withSpan("abortMultipartUpload", { + attributes: { presigned }, + }), + ); diff --git a/packages/uploadthing/src/internal/multi-part.ts b/packages/uploadthing/src/internal/multi-part.ts deleted file mode 100644 index e5d4a727f..000000000 --- a/packages/uploadthing/src/internal/multi-part.ts +++ /dev/null @@ -1,144 +0,0 @@ -import { - contentDisposition, - generateUploadThingURL, - UploadThingError, -} from "@uploadthing/shared"; -import type { ContentDisposition, FetchEsque } from "@uploadthing/shared"; - -import { maybeParseResponseXML } from "./s3-error-parser"; - -/** - * Used by server uploads where progress is not needed. - * Uses normal fetch API. - */ -export async function uploadPart( - opts: { - fetch: FetchEsque; - url: string; - key: string; - chunk: Blob; - contentType: string; - contentDisposition: ContentDisposition; - fileName: string; - maxRetries: number; - utRequestHeaders: Record; - }, - retryCount = 0, -) { - const s3Res = await opts.fetch(opts.url, { - method: "PUT", - body: opts.chunk, - headers: { - "Content-Type": opts.contentType, - "Content-Disposition": contentDisposition( - opts.contentDisposition, - opts.fileName, - ), - }, - }); - - if (s3Res.ok) { - const etag = s3Res.headers.get("Etag"); - if (!etag) { - throw new UploadThingError({ - code: "UPLOAD_FAILED", - message: "Missing Etag header from uploaded part", - }); - } - return etag.replace(/"/g, ""); - } - - if (retryCount < opts.maxRetries) { - // Retry after exponential backoff - const delay = 2 ** retryCount * 1000; - await new Promise((r) => setTimeout(r, delay)); - return uploadPart(opts, retryCount++); - } - - // Max retries exceeded, tell UT server that upload failed - await opts.fetch(generateUploadThingURL("/api/failureCallback"), { - method: "POST", - body: JSON.stringify({ - fileKey: opts.key, - }), - headers: opts.utRequestHeaders, - }); - - const text = await s3Res.text(); - const parsed = maybeParseResponseXML(text); - if (parsed?.message) { - throw new UploadThingError({ - code: "UPLOAD_FAILED", - message: parsed.message, - }); - } - throw new UploadThingError({ - code: "UPLOAD_FAILED", - message: "Failed to upload file to storage provider", - cause: s3Res, - }); -} - -/** - * Used by client uploads where progress is needed. - * Uses XMLHttpRequest. - */ -export async function uploadPartWithProgress( - opts: { - url: string; - chunk: Blob; - fileType: string; - fileName: string; - contentDisposition: ContentDisposition; - maxRetries: number; - onProgress: (progressDelta: number) => void; - }, - retryCount = 0, -) { - return new Promise((resolve, reject) => { - const xhr = new XMLHttpRequest(); - - xhr.open("PUT", opts.url, true); - xhr.setRequestHeader("Content-Type", opts.fileType); - xhr.setRequestHeader( - "Content-Disposition", - contentDisposition(opts.contentDisposition, opts.fileName), - ); - - xhr.onload = async () => { - if (xhr.status >= 200 && xhr.status < 300) { - const etag = xhr.getResponseHeader("Etag"); - etag ? resolve(etag) : reject("NO ETAG"); - } else if (retryCount < opts.maxRetries) { - // Add a delay before retrying (exponential backoff can be used) - const delay = Math.pow(2, retryCount) * 1000; - await new Promise((res) => setTimeout(res, delay)); - resolve(await uploadPartWithProgress(opts, retryCount + 1)); // Retry the request - } else { - reject("Max retries exceeded"); - } - }; - - let lastProgress = 0; - - xhr.onerror = async () => { - lastProgress = 0; - if (retryCount < opts.maxRetries) { - // Add a delay before retrying (exponential backoff can be used) - const delay = Math.pow(2, retryCount) * 100; - await new Promise((res) => setTimeout(res, delay)); - await uploadPartWithProgress(opts, retryCount + 1); // Retry the request - } else { - reject("Max retries exceeded"); - } - }; - - xhr.upload.onprogress = (e) => { - const delta = e.loaded - lastProgress; - lastProgress += delta; - opts.onProgress(delta); - }; - - xhr.send(opts.chunk); - }); -} diff --git a/packages/uploadthing/src/internal/node-http/getBody.ts b/packages/uploadthing/src/internal/node-http/getBody.ts deleted file mode 100644 index cb1a24db1..000000000 --- a/packages/uploadthing/src/internal/node-http/getBody.ts +++ /dev/null @@ -1,107 +0,0 @@ -import type { IncomingMessage } from "node:http"; - -import { UploadThingError } from "@uploadthing/shared"; - -import { logger } from "../logger"; - -export type BodyResult = - | { - ok: true; - data: unknown; - } - | { ok: false; error: Error }; -export type NodeHTTPRequest = IncomingMessage & { - body?: unknown; -}; -export async function getPostBody(opts: { - req: NodeHTTPRequest; - maxBodySize?: number; -}): Promise { - const { req, maxBodySize = Infinity } = opts; - return new Promise((resolve) => { - if ("body" in req) { - const contentType = req.headers["content-type"]; - - if (contentType !== "application/json") { - logger.error("Expected JSON content type, got:", contentType); - resolve({ - ok: false, - error: new UploadThingError({ - code: "BAD_REQUEST", - message: "INVALID_CONTENT_TYPE", - }), - }); - return; - } - - if (typeof req.body !== "object") { - logger.error( - "Expected body to be of type 'object', got:", - typeof req.body, - ); - resolve({ - ok: false, - error: new UploadThingError({ - code: "BAD_REQUEST", - message: "INVALID_BODY", - }), - }); - return; - } - - logger.debug("Body parsed successfully.", req.body); - resolve({ - ok: true, - data: req.body, - }); - return; - } - let body = ""; - let hasBody = false; - req.on("data", function (data) { - body += data; - hasBody = true; - if (body.length > maxBodySize) { - logger.error( - "Body too large, max size is", - maxBodySize, - "bytes but received", - body.length, - "bytes", - ); - resolve({ - ok: false, - error: new UploadThingError({ - code: "BAD_REQUEST", - message: "PAYLOAD_TOO_LARGE", - }), - }); - req.socket.destroy(); - } - }); - req.on("end", () => { - let parsedBody: unknown; - try { - logger.debug("Finished reading body, parsing as JSON", body); - parsedBody = JSON.parse(body); - } catch (e) { - logger.error("Error parsing JSON:", body); - resolve({ - ok: false, - error: new UploadThingError({ - code: "BAD_REQUEST", - message: "INVALID_JSON", - cause: e, - }), - }); - return; - } - - logger.debug("Body parsed successfully.", parsedBody); - resolve({ - ok: true, - data: hasBody ? parsedBody : undefined, - }); - }); - }); -} diff --git a/packages/uploadthing/src/internal/node-http/toWebRequest.ts b/packages/uploadthing/src/internal/node-http/toWebRequest.ts deleted file mode 100644 index 6083b1566..000000000 --- a/packages/uploadthing/src/internal/node-http/toWebRequest.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { process } from "std-env"; - -import { logger } from "../logger"; - -type IncomingMessageLike = { - url?: string; - method?: string; - headers?: Record; - body?: any; -}; - -function parseURL(req: IncomingMessageLike): URL { - const headers = req.headers; - let relativeUrl = req.url ?? "/"; - if ("baseUrl" in req && typeof req.baseUrl === "string") { - relativeUrl = req.baseUrl + relativeUrl; - } - - const proto = headers?.["x-forwarded-proto"] ?? "http"; - const host = headers?.["x-forwarded-host"] ?? headers?.host; - - if (typeof proto !== "string" || typeof host !== "string") { - try { - return new URL(relativeUrl, process.env.UPLOADTHING_URL); - } catch (e) { - logger.error( - `Failed to parse URL from request. No headers found and env.UPLOADTHING_URL is not a valid URL.`, - ); - throw e; - } - } - - try { - return new URL(`${proto}://${host}${relativeUrl}`); - } catch (e) { - logger.error( - `Failed to parse URL from request. '${proto}://${host}${relativeUrl}' is not a valid URL.`, - ); - throw e; - } -} - -export function toWebRequest(req: IncomingMessageLike, body?: any) { - body ??= req.body; - const bodyStr = typeof body === "string" ? body : JSON.stringify(body); - const method = req.method ?? "GET"; - const allowsBody = ["POST", "PUT", "PATCH"].includes(method); - return new Request(parseURL(req), { - method, - headers: req.headers as HeadersInit, - ...(allowsBody ? { body: bodyStr } : {}), - }); -} diff --git a/packages/uploadthing/src/internal/parser.ts b/packages/uploadthing/src/internal/parser.ts index d473aa5cf..ab01f22b7 100644 --- a/packages/uploadthing/src/internal/parser.ts +++ b/packages/uploadthing/src/internal/parser.ts @@ -1,5 +1,9 @@ import type { Json, MaybePromise } from "@uploadthing/shared"; +/** + * TODO: Do we wanna support effect/schema parsers now?? + */ + // Don't want to use Zod cause it's an optional dependency export type ParseFn = (input: unknown) => MaybePromise; export type ParserZodEsque = { diff --git a/packages/uploadthing/src/internal/presigned-post.browser.ts b/packages/uploadthing/src/internal/presigned-post.browser.ts new file mode 100644 index 000000000..f96494626 --- /dev/null +++ b/packages/uploadthing/src/internal/presigned-post.browser.ts @@ -0,0 +1,59 @@ +import * as Effect from "effect/Effect"; + +import type { FetchContext, UploadThingError } from "@uploadthing/shared"; + +import type { PSPResponse, UTEvents } from "./types"; +import type { UTReporter } from "./ut-reporter"; + +export const uploadPresignedPostWithProgress = ( + file: File, + presigned: PSPResponse, + opts: { + reportEventToUT: UTReporter; + onUploadProgress?: + | ((opts: { file: string; progress: number }) => void) + | undefined; + }, +) => + Effect.async( + (resume) => { + const xhr = new XMLHttpRequest(); + xhr.open("POST", presigned.url); + xhr.setRequestHeader("Accept", "application/xml"); + + xhr.upload.addEventListener("progress", ({ loaded, total }) => { + opts.onUploadProgress?.({ + file: file.name, + progress: (loaded / total) * 100, + }); + }); + xhr.addEventListener("load", () => + resume( + xhr.status >= 200 && xhr.status < 300 + ? Effect.succeed(null) + : opts.reportEventToUT("failure", { + fileKey: presigned.key, + uploadId: null, + fileName: file.name, + storageProviderError: xhr.responseText, + }), + ), + ); + xhr.addEventListener("error", () => + resume( + opts.reportEventToUT("failure", { + fileKey: presigned.key, + uploadId: null, + fileName: file.name, + }), + ), + ); + + const formData = new FormData(); + Object.entries(presigned.fields).forEach(([k, v]) => + formData.append(k, v), + ); + formData.append("file", file); // File data **MUST GO LAST** + xhr.send(formData); + }, + ); diff --git a/packages/uploadthing/src/internal/presigned-post.server.ts b/packages/uploadthing/src/internal/presigned-post.server.ts new file mode 100644 index 000000000..fe27a8d32 --- /dev/null +++ b/packages/uploadthing/src/internal/presigned-post.server.ts @@ -0,0 +1,59 @@ +import * as S from "@effect/schema/Schema"; +import * as Effect from "effect/Effect"; + +import { + fetchEff, + generateUploadThingURL, + parseResponseJson, + UploadThingError, +} from "@uploadthing/shared"; + +import type { FileEsque } from "../sdk/types"; +import { FailureCallbackResponseSchema } from "./shared-schemas"; +import type { PSPResponse } from "./types"; + +export const uploadPresignedPost = (file: FileEsque, presigned: PSPResponse) => + Effect.gen(function* () { + yield* Effect.logDebug( + `Uploading file ${file.name} using presigned POST URL`, + ); + const formData = new FormData(); + Object.entries(presigned.fields).forEach(([k, v]) => formData.append(k, v)); + formData.append("file", file as Blob); // File data **MUST GO LAST** + + const res = yield* fetchEff(presigned.url, { + method: "POST", + body: formData, + headers: new Headers({ + Accept: "application/xml", + }), + }).pipe( + Effect.tapErrorCause(() => + fetchEff(generateUploadThingURL("/api/failureCallback"), { + method: "POST", + body: JSON.stringify({ + fileKey: presigned.key, + uploadId: null, + }), + headers: { "Content-Type": "application/json" }, + }).pipe( + Effect.andThen(parseResponseJson), + Effect.andThen(S.decodeUnknown(FailureCallbackResponseSchema)), + ), + ), + ); + + if (!res.ok) { + const text = yield* Effect.promise(res.text); + yield* Effect.logError( + `Failed to upload file ${file.name} to presigned POST URL. Response: ${text}`, + ); + return yield* new UploadThingError({ + code: "UPLOAD_FAILED", + message: "Failed to upload file", + cause: text, + }); + } + + yield* Effect.logDebug("File", file.name, "uploaded successfully"); + }); diff --git a/packages/uploadthing/src/internal/resolve-url.ts b/packages/uploadthing/src/internal/resolve-url.ts new file mode 100644 index 000000000..6e5e1465e --- /dev/null +++ b/packages/uploadthing/src/internal/resolve-url.ts @@ -0,0 +1,46 @@ +import * as Effect from "effect/Effect"; +import { process } from "std-env"; + +import { getFullApiUrl } from "@uploadthing/shared"; + +import { RequestInput } from "./validate-request-input"; + +export const resolveCallbackUrl = Effect.gen(function* () { + const { config, req, isDev } = yield* RequestInput; + let callbackUrl = new URL(req.url); + if (config?.callbackUrl) { + callbackUrl = yield* getFullApiUrl(config.callbackUrl); + } else if (process.env.UPLOADTHING_URL) { + callbackUrl = yield* getFullApiUrl(process.env.UPLOADTHING_URL); + } + + if (isDev || !callbackUrl.host.includes("localhost")) { + return callbackUrl; + } + + // Production builds have to have a public URL so UT can send webhook + // Parse the URL from the headers + let parsedFromHeaders = + req.headers.get("origin") ?? + req.headers.get("referer") ?? + req.headers.get("host") ?? + req.headers.get("x-forwarded-host"); + + if (parsedFromHeaders && !parsedFromHeaders.includes("http")) { + parsedFromHeaders = + (req.headers.get("x-forwarded-proto") ?? "https") + + "://" + + parsedFromHeaders; + } + + if (!parsedFromHeaders || parsedFromHeaders.includes("localhost")) { + // Didn't find a valid URL in the headers, log a warning and use the original url anyway + Effect.logWarning( + "You are using a localhost callback url in production which is not supported.", + "Read more and learn how to fix it here: https://docs.uploadthing.com/faq#my-callback-runs-in-development-but-not-in-production", + ); + return callbackUrl; + } + + return yield* getFullApiUrl(parsedFromHeaders); +}); diff --git a/packages/uploadthing/src/internal/shared-schemas.ts b/packages/uploadthing/src/internal/shared-schemas.ts new file mode 100644 index 000000000..6d95af343 --- /dev/null +++ b/packages/uploadthing/src/internal/shared-schemas.ts @@ -0,0 +1,152 @@ +import * as S from "@effect/schema/Schema"; + +import type { FileRouterInputKey, Json } from "@uploadthing/shared"; +import { ValidACLs, ValidContentDispositions } from "@uploadthing/shared"; + +export const ContentDispositionSchema = S.Literal(...ValidContentDispositions); +export const ACLSchema = S.Literal(...ValidACLs); + +/** + * ============================================================================= + * ======================== File Type Hierarchy =============================== + * ============================================================================= + */ + +export const FileUploadDataSchema = S.Struct({ + name: S.String, + size: S.Number, + type: S.String, +}); +/** + * Properties from the web File object, this is what the client sends when initiating an upload + */ +export type FileUploadData = S.Schema.Type; + +export const FileUploadDataWithCustomIdSchema = S.extend( + FileUploadDataSchema, + S.Struct({ + customId: S.NullOr(S.String), + }), +); +/** + * `.middleware()` can add a customId to the incoming file data + */ +export type FileUploadDataWithCustomId = S.Schema.Type< + typeof FileUploadDataWithCustomIdSchema +>; + +export const UploadedFileDataSchema = S.extend( + FileUploadDataWithCustomIdSchema, + S.Struct({ + key: S.String, + url: S.String, + }), +); +/** + * When files are uploaded, we get back a key and a URL for the file + */ +export type UploadedFileData = S.Schema.Type; + +/** + * When the client has uploaded a file and polled for data returned by `.onUploadComplete()` + */ +export interface ClientUploadedFileData extends UploadedFileData { + /** + * Matches what's returned from the serverside `onUploadComplete` callback + */ + readonly serverData: T; +} + +/** + * ============================================================================= + * ======================== Server Response Schemas ============================ + * ============================================================================= + */ + +export const PresignedBaseSchema = S.Struct({ + key: S.String, + fileName: S.String, + fileType: S.String as S.Schema, + fileUrl: S.String, + pollingJwt: S.String, + pollingUrl: S.String, + contentDisposition: ContentDispositionSchema, + customId: S.NullOr(S.String), +}); + +export const MPUResponseSchema = S.extend( + PresignedBaseSchema, + S.Struct({ + urls: S.Array(S.String), + uploadId: S.String, + chunkSize: S.Number, + chunkCount: S.Number, + }), +); + +export const PSPResponseSchema = S.extend( + PresignedBaseSchema, + S.Struct({ + url: S.String, + fields: S.Record(S.String, S.String), + }), +); + +export const PresignedURLResponseSchema = S.Array( + S.Union(PSPResponseSchema, MPUResponseSchema), +); + +export const PollUploadResponseSchema = S.Struct({ + status: S.String, + fileData: S.optional( + S.Struct({ + fileKey: S.NullOr(S.String), + fileName: S.String, + fileSize: S.Number, + fileType: S.String, + metadata: S.NullOr(S.String), + customId: S.NullOr(S.String), + + callbackUrl: S.optional(S.String), + callbackSlug: S.optional(S.String), + }), + ), +}); + +export const FailureCallbackResponseSchema = S.Struct({ + success: S.Boolean, + message: S.optional(S.String), +}); + +export const ServerCallbackPostResponseSchema = S.Struct({ + status: S.String, +}); + +/** + * ============================================================================= + * ======================== Client Action Payloads ============================ + * ============================================================================= + */ + +export const UploadActionPayload = S.Struct({ + files: S.Array(FileUploadDataSchema), + input: S.Unknown as S.Schema, +}); + +export const FailureActionPayload = S.Struct({ + fileKey: S.String, + uploadId: S.NullOr(S.String), + storageProviderError: S.optional(S.String), + fileName: S.String, +}); + +export const MultipartCompleteActionPayload = S.Struct({ + fileKey: S.String, + uploadId: S.String, + etags: S.Array( + S.Struct({ + tag: S.String, + partNumber: S.Number, + }), + ), +}); diff --git a/packages/uploadthing/src/internal/to-web-request.ts b/packages/uploadthing/src/internal/to-web-request.ts new file mode 100644 index 000000000..bd85f2de4 --- /dev/null +++ b/packages/uploadthing/src/internal/to-web-request.ts @@ -0,0 +1,136 @@ +import { TaggedError } from "effect/Data"; +import * as Effect from "effect/Effect"; +import { process } from "std-env"; + +import { filterObjectValues, UploadThingError } from "@uploadthing/shared"; + +type IncomingMessageLike = { + method?: string | undefined; + url?: string | undefined; + headers?: Record; + body?: any; +}; + +class InvalidURL extends TaggedError("InvalidURL")<{ + reason: string; +}> { + constructor(attemptedUrl: string, base?: string) { + Effect.runSync( + Effect.logError( + `Failed to parse URL from request. '${attemptedUrl}' is not a valid URL with base '${base}'.`, + ), + ); + super({ + reason: `Failed to parse URL from request. '${attemptedUrl}' is not a valid URL with base '${base}'.`, + }); + } +} + +const parseURL = (req: IncomingMessageLike): Effect.Effect => { + const headers = req.headers; + let relativeUrl = req.url ?? "/"; + if ("baseUrl" in req && typeof req.baseUrl === "string") { + relativeUrl = req.baseUrl + relativeUrl; + } + + const proto = headers?.["x-forwarded-proto"] ?? "http"; + const host = headers?.["x-forwarded-host"] ?? headers?.host; + + if (typeof proto !== "string" || typeof host !== "string") { + return Effect.try({ + try: () => new URL(relativeUrl, process.env.UPLOADTHING_URL), + catch: () => new InvalidURL(relativeUrl, process.env.UPLOADTHING_URL), + }); + } + + return Effect.try({ + try: () => new URL(`${proto}://${host}${relativeUrl}`), + catch: () => new InvalidURL(`${proto}://${host}${relativeUrl}`), + }); +}; + +export const getPostBody = (opts: { + req: IncomingMessageLike & { + on: (event: string, listener: (data: any) => void) => void; + }; +}) => + Effect.async((resume) => { + const { req } = opts; + const contentType = req.headers?.["content-type"]; + + if ("body" in req) { + if (contentType !== "application/json") { + Effect.runSync( + Effect.logError("Expected JSON content type, got:", contentType), + ); + return resume( + Effect.fail( + new UploadThingError({ + code: "BAD_REQUEST", + message: "INVALID_CONTENT_TYPE", + }), + ), + ); + } + + if (typeof req.body !== "object") { + Effect.runSync( + Effect.logError( + "Expected body to be of type 'object', got:", + typeof req.body, + ), + ); + return resume( + Effect.fail( + new UploadThingError({ + code: "BAD_REQUEST", + message: "INVALID_BODY", + }), + ), + ); + } + + Effect.runSync(Effect.logDebug("Body parsed successfully.", req.body)); + return resume(Effect.succeed(req.body as TBody)); + } + + let body = ""; + req.on("data", (data) => (body += data)); + req.on("end", () => { + const parsedBody = Effect.try({ + try: () => JSON.parse(body) as TBody, + catch: (err) => + new UploadThingError({ + code: "BAD_REQUEST", + message: "INVALID_JSON", + cause: err, + }), + }); + return resume(parsedBody); + }); + }); + +export const toWebRequest = ( + req: IncomingMessageLike, + body?: any, +): Effect.Effect => { + body ??= req.body; + const bodyStr = typeof body === "string" ? body : JSON.stringify(body); + const method = req.method ?? "GET"; + const allowsBody = ["POST", "PUT", "PATCH"].includes(method); + + return parseURL(req).pipe( + Effect.catchTag("InvalidURL", (e) => Effect.die(e)), + Effect.andThen( + (url) => + new Request(url, { + method, + headers: filterObjectValues( + req.headers ?? {}, + (v): v is string => typeof v === "string", + ), + ...(allowsBody ? { body: bodyStr } : {}), + }), + ), + ); +}; diff --git a/packages/uploadthing/src/internal/types.ts b/packages/uploadthing/src/internal/types.ts index 88042b635..42a8edb9d 100644 --- a/packages/uploadthing/src/internal/types.ts +++ b/packages/uploadthing/src/internal/types.ts @@ -1,50 +1,38 @@ +import type { Schema } from "@effect/schema/Schema"; +import type * as S from "@effect/schema/Schema"; +import type * as Effect from "effect/Effect"; + import type { - ContentDisposition, ErrorMessage, + FetchContext, FetchEsque, FileRouterInputConfig, - FileRouterInputKey, Json, MaybePromise, Simplify, UploadThingError, } from "@uploadthing/shared"; -import type { - FileUploadData, - FileUploadDataWithCustomId, - UploadedFileData, -} from "../types"; +import type { FileUploadDataWithCustomId, UploadedFileData } from "../types"; import type { LogLevel } from "./logger"; import type { JsonParser } from "./parser"; - -export interface PresignedBase { - key: string; - fileName: string; - fileType: FileRouterInputKey; - fileUrl: string; - contentDisposition: ContentDisposition; - pollingJwt: string; - pollingUrl: string; - customId: string | null; -} - -export interface PSPResponse extends PresignedBase { - url: string; - fields: Record; -} - -export interface MPUResponse extends PresignedBase { - urls: string[]; - uploadId: string; - chunkSize: number; - chunkCount: number; -} +import type { + FailureActionPayload, + MPUResponseSchema, + MultipartCompleteActionPayload, + PresignedBaseSchema, + PresignedURLResponseSchema, + PSPResponseSchema, + UploadActionPayload, +} from "./shared-schemas"; /** * Returned by `/api/prepareUpload` and `/api/uploadFiles` */ -export type PresignedURLs = (PSPResponse | MPUResponse)[]; +export type PresignedBase = S.Schema.Type; +export type PSPResponse = S.Schema.Type; +export type MPUResponse = S.Schema.Type; +export type PresignedURLs = S.Schema.Type; /** * Marker used to append a `customId` to the incoming file data in `.middleware()` @@ -106,7 +94,7 @@ type MiddlewareFn< TArgs extends MiddlewareFnArgs, > = ( opts: TArgs & { - files: FileUploadData[]; + files: Schema.Type["files"]; input: TInput extends UnsetMarker ? undefined : TInput; }, ) => MaybePromise; @@ -182,6 +170,7 @@ export interface Uploader { _def: TParams & UploadBuilderDef; resolver: ResolverFn; } +export type AnyUploader = Uploader; export type FileRouter = Record< string, @@ -210,29 +199,32 @@ export type RouteHandlerOptions = { config?: RouteHandlerConfig; }; -type RequestHandlerInput> = { - req: Request; - middlewareArgs: TArgs; +export type RequestHandlerInput> = + { + req: Request | Effect.Effect; + middlewareArgs: TArgs; + }; +export type RequestHandlerSuccess = { + success: true; + body: UTEvents[keyof UTEvents]["out"]; + cleanup?: Promise | undefined; }; -type RequestHandlerOutput = Promise< - | { - status: number; - body: UTEvents[keyof UTEvents]["out"]; - cleanup?: Promise; - } - | UploadThingError ->; +export type RequestHandlerError = { + success: false; + error: UploadThingError; +}; +export type RequestHandlerOutput = RequestHandlerSuccess | RequestHandlerError; export type RequestHandler> = ( input: RequestHandlerInput, -) => RequestHandlerOutput; +) => Effect.Effect; export type inferEndpointInput> = TUploader["_def"]["_input"] extends UnsetMarker ? undefined : TUploader["_def"]["_input"]; -export type inferEndpointOutput> = +export type inferEndpointOutput = TUploader["_def"]["_output"] extends UnsetMarker | void | undefined ? null : TUploader["_def"]["_output"]; @@ -249,36 +241,34 @@ export const VALID_ACTION_TYPES = [ "multipart-complete", ] as const; export type ActionType = (typeof VALID_ACTION_TYPES)[number]; +export const isActionType = (input: unknown): input is ActionType => + typeof input === "string" && VALID_ACTION_TYPES.includes(input as ActionType); + +/** + * Valid options for the `uploadthing-hook` header + * for requests coming from UT server + */ +export const VALID_UT_HOOKS = ["callback"] as const; +export type UploadThingHook = (typeof VALID_UT_HOOKS)[number]; +export const isUploadThingHook = (input: unknown): input is UploadThingHook => + typeof input === "string" && + VALID_UT_HOOKS.includes(input as UploadThingHook); /** * Map actionType to the required payload for that action + * @todo Look into using @effect/rpc :thinking: */ export type UTEvents = { upload: { - in: { - files: FileUploadData[]; - input: Json; - }; - out: PresignedURLs; + in: S.Schema.Type; + out: S.Schema.Type; }; failure: { - in: { - fileKey: string; - uploadId: string | null; - s3Error?: string; - fileName: string; - }; + in: S.Schema.Type; out: null; }; "multipart-complete": { - in: { - fileKey: string; - uploadId: string; - etags: { - tag: string; - partNumber: number; - }[]; - }; + in: S.Schema.Type; out: null; }; }; diff --git a/packages/uploadthing/src/internal/ut-reporter.ts b/packages/uploadthing/src/internal/ut-reporter.ts index 9aa25cde1..4271d8f90 100644 --- a/packages/uploadthing/src/internal/ut-reporter.ts +++ b/packages/uploadthing/src/internal/ut-reporter.ts @@ -1,5 +1,13 @@ -import type { FetchEsque, MaybePromise } from "@uploadthing/shared"; -import { safeParseJSON, UploadThingError } from "@uploadthing/shared"; +import * as Effect from "effect/Effect"; +import { unsafeCoerce } from "effect/Function"; + +import type { FetchContext, MaybePromise } from "@uploadthing/shared"; +import { + fetchEff, + getErrorTypeFromStatusCode, + parseResponseJson, + UploadThingError, +} from "@uploadthing/shared"; import { UPLOADTHING_VERSION } from "./constants"; import { maybeParseResponseXML } from "./s3-error-parser"; @@ -28,76 +36,90 @@ const createAPIRequestUrl = (config: { export type UTReporter = ( type: TEvent, payload: UTEvents[TEvent]["in"], - headers?: HeadersInit, -) => Promise; +) => Effect.Effect; /** * Creates a "client" for reporting events to the UploadThing server via the user's API endpoint. - * Events are handled in "./handler.ts starting at L200" + * Events are handled in "./handler.ts starting at L112" */ -export const createUTReporter = (cfg: { - url: URL; - endpoint: string; - package: string; - fetch: FetchEsque; - headers: HeadersInit | (() => MaybePromise) | undefined; -}): UTReporter => { - return async (type, payload) => { - const url = createAPIRequestUrl({ - url: cfg.url, - slug: cfg.endpoint, - actionType: type, - }); - let customHeaders = - typeof cfg.headers === "function" ? cfg.headers() : cfg.headers; - if (customHeaders instanceof Promise) customHeaders = await customHeaders; +export const createUTReporter = + (cfg: { + url: URL; + endpoint: string; + package: string; + headers: HeadersInit | (() => MaybePromise) | undefined; + }): UTReporter => + (type, payload) => + Effect.gen(function* () { + const url = createAPIRequestUrl({ + url: cfg.url, + slug: cfg.endpoint, + actionType: type, + }); + let headers = + typeof cfg.headers === "function" ? cfg.headers() : cfg.headers; + if (headers instanceof Promise) { + headers = yield* Effect.promise(() => headers as Promise); + } - const response = await cfg.fetch(url, { - method: "POST", - body: JSON.stringify(payload), - headers: { - "Content-Type": "application/json", - "x-uploadthing-package": cfg.package, - "x-uploadthing-version": UPLOADTHING_VERSION, - ...customHeaders, - }, - }); + const response = yield* fetchEff(url, { + method: "POST", + body: JSON.stringify(payload), + headers: { + "Content-Type": "application/json", + "x-uploadthing-package": cfg.package, + "x-uploadthing-version": UPLOADTHING_VERSION, + ...headers, + }, + }).pipe( + Effect.andThen(parseResponseJson), + /** + * We don't _need_ to validate the response here, just cast it for now. + * As of now, @effect/schema includes quite a few bytes we cut out by this... + * We have "strong typing" on the backend that ensures the shape should match. + */ + Effect.map(unsafeCoerce), + Effect.catchTags({ + FetchError: (e) => + new UploadThingError({ + code: "INTERNAL_CLIENT_ERROR", + message: `Failed to report event "${type}" to UploadThing server`, + cause: e, + }), + BadRequestError: (e) => + new UploadThingError({ + code: getErrorTypeFromStatusCode(e.status), + message: e.getMessage(), + cause: e.json, + }), + InvalidJsonError: (e) => + new UploadThingError({ + code: "INTERNAL_CLIENT_ERROR", + message: "Failed to parse response from UploadThing server", + cause: e, + }), + }), + ); - switch (type) { - case "failure": { - // why isn't this narrowed automatically? - const p = payload as UTEvents["failure"]["in"]; - const parsed = maybeParseResponseXML(p.s3Error ?? ""); - if (parsed?.message) { - throw new UploadThingError({ - code: parsed.code, - message: parsed.message, - }); - } else { - throw new UploadThingError({ - code: "UPLOAD_FAILED", - message: `Failed to upload file ${p.fileName} to S3`, - cause: p.s3Error, - }); + switch (type) { + case "failure": { + // why isn't this narrowed automatically? + const p = payload as UTEvents["failure"]["in"]; + const parsed = maybeParseResponseXML(p.storageProviderError ?? ""); + if (parsed?.message) { + return yield* new UploadThingError({ + code: parsed.code, + message: parsed.message, + }); + } else { + return yield* new UploadThingError({ + code: "UPLOAD_FAILED", + message: `Failed to upload file ${p.fileName} to S3`, + cause: p.storageProviderError, + }); + } } } - } - if (!response.ok) { - const error = await UploadThingError.fromResponse(response); - throw error; - } - - const jsonOrError = - await safeParseJSON(response); - if (jsonOrError instanceof Error) { - throw new UploadThingError({ - code: "BAD_REQUEST", - message: jsonOrError.message, - cause: response, - }); - } - - return jsonOrError; - }; -}; + return response; + }); diff --git a/packages/uploadthing/src/internal/validate-request-input.ts b/packages/uploadthing/src/internal/validate-request-input.ts new file mode 100644 index 000000000..2508174ea --- /dev/null +++ b/packages/uploadthing/src/internal/validate-request-input.ts @@ -0,0 +1,308 @@ +import type * as S from "@effect/schema/Schema"; +import * as Context from "effect/Context"; +import { TaggedError } from "effect/Data"; +import * as Effect from "effect/Effect"; +import { isDevelopment } from "std-env"; + +import type { + ExpandedRouteConfig, + FileRouterInputKey, + FileSize, + InvalidFileSizeError, + InvalidFileTypeError, + UnknownFileTypeError, +} from "@uploadthing/shared"; +import { + bytesToFileSize, + FetchContext, + fileSizeToBytes, + getTypeFromFileName, + InvalidRouteConfigError, + objectKeys, + UploadThingError, +} from "@uploadthing/shared"; + +import { UPLOADTHING_VERSION } from "./constants"; +import { getApiKey } from "./get-api-key"; +import type { UploadActionPayload } from "./shared-schemas"; +import type { + ActionType, + AnyParams, + FileRouter, + MiddlewareFnArgs, + RequestHandlerInput, + RouteHandlerConfig, + RouteHandlerOptions, + Uploader, + UploadThingHook, +} from "./types"; +import { + isActionType, + isUploadThingHook, + VALID_ACTION_TYPES, + VALID_UT_HOOKS, +} from "./types"; + +class FileSizeMismatch extends TaggedError("FileSizeMismatch")<{ + reason: string; +}> { + constructor(type: FileRouterInputKey, max: FileSize, actual: number) { + const reason = `You uploaded a ${type} file that was ${bytesToFileSize(actual)}, but the limit for that type is ${max}`; + super({ reason }); + } +} + +class FileCountMismatch extends TaggedError("FileCountMismatch")<{ + reason: string; +}> { + constructor( + type: FileRouterInputKey, + boundtype: "minimum" | "maximum", + bound: number, + actual: number, + ) { + const reason = `You uploaded ${actual} file(s) of type '${type}', but the ${boundtype} for that type is ${bound}`; + + super({ reason }); + } +} + +// Verify that the uploaded files doesn't violate the route config, +// e.g. uploading more videos than allowed, or a file that is larger than allowed. +// This is double-checked on infra side, but we want to fail early to avoid network latency. +export const assertFilesMeetConfig = ( + files: S.Schema.Type["files"], + routeConfig: ExpandedRouteConfig, +): Effect.Effect< + null, + | UploadThingError + | FileSizeMismatch + | FileCountMismatch + | InvalidRouteConfigError + | UnknownFileTypeError + | InvalidFileTypeError + | InvalidFileSizeError +> => + Effect.gen(function* () { + const counts: Record = {}; + + for (const file of files) { + const type = yield* getTypeFromFileName( + file.name, + objectKeys(routeConfig), + ); + counts[type] = (counts[type] ?? 0) + 1; + + const sizeLimit = routeConfig[type]?.maxFileSize; + if (!sizeLimit) { + return yield* new InvalidRouteConfigError(type, "maxFileSize"); + } + const sizeLimitBytes = yield* fileSizeToBytes(sizeLimit); + + if (file.size > sizeLimitBytes) { + return yield* new FileSizeMismatch(type, sizeLimit, file.size); + } + } + + for (const _key in counts) { + const key = _key as FileRouterInputKey; + const config = routeConfig[key]; + if (!config) return yield* new InvalidRouteConfigError(key); + + const count = counts[key]; + const min = config.minFileCount; + const max = config.maxFileCount; + + if (min > max) { + return yield* new UploadThingError({ + code: "BAD_REQUEST", + message: + "Invalid config during file count - minFileCount > maxFileCount", + cause: `minFileCount must be less than maxFileCount for key ${key}. got: ${min} > ${max}`, + }); + } + + if (count < min) { + return yield* new FileCountMismatch(key, "minimum", min, count); + } + if (count > max) { + return yield* new FileCountMismatch(key, "maximum", max, count); + } + } + + return null; + }); + +type RequestInputBase = { + req: Request; + config: RouteHandlerConfig; + middlewareArgs: MiddlewareFnArgs; + isDev: boolean; + apiKey: string; + slug: string; + uploadable: Uploader; +}; + +type RequestInputService = RequestInputBase & + ( + | { hook: null; action: ActionType } + | { hook: UploadThingHook; action: null } + ); + +export class RequestInput extends Context.Tag("uploadthing/RequestInput")< + RequestInput, + RequestInputService +>() {} + +export const parseAndValidateRequest = ( + input: RequestHandlerInput>, + opts: RouteHandlerOptions, + adapter: string, +): Effect.Effect => + Effect.gen(function* () { + const req = yield* Effect.isEffect(input.req) + ? input.req + : Effect.succeed(input.req); + // Get inputs from query and params + const url = new URL(req.url); + const headers = req.headers; + const params = url.searchParams; + const action = params.get("actionType"); + const slug = params.get("slug"); + const hook = headers.get("uploadthing-hook"); + const utFrontendPackage = headers.get("x-uploadthing-package") ?? "unknown"; + const clientVersion = headers.get("x-uploadthing-version"); + const apiKey = getApiKey(opts.config?.uploadthingSecret); + + if (clientVersion != null && clientVersion !== UPLOADTHING_VERSION) { + yield* Effect.logError( + `Client version mismatch. Server version: ${UPLOADTHING_VERSION}, Client version: ${clientVersion}`, + ); + return yield* new UploadThingError({ + code: "BAD_REQUEST", + message: "Client version mismatch", + cause: `Server version: ${UPLOADTHING_VERSION}, Client version: ${clientVersion}`, + }); + } + + if (!slug) { + yield* Effect.logError("No slug provided in params:", params); + return yield* new UploadThingError({ + code: "BAD_REQUEST", + message: "No slug provided in params", + }); + } + + if (slug && typeof slug !== "string") { + const msg = `Expected slug to be of type 'string', got '${typeof slug}'`; + yield* Effect.logError(msg); + return yield* new UploadThingError({ + code: "BAD_REQUEST", + message: "`slug` must be a string", + cause: msg, + }); + } + + if (!apiKey) { + const msg = `No secret provided, please set UPLOADTHING_SECRET in your env file or in the config`; + yield* Effect.logError(msg); + return yield* new UploadThingError({ + code: "MISSING_ENV", + message: `No secret provided`, + cause: msg, + }); + } + + if (!apiKey.startsWith("sk_")) { + const msg = `Invalid secret provided, UPLOADTHING_SECRET must start with 'sk_'`; + yield* Effect.logError(msg); + return yield* new UploadThingError({ + code: "MISSING_ENV", + message: "Invalid API key. API keys must start with 'sk_'.", + cause: msg, + }); + } + + if (utFrontendPackage && typeof utFrontendPackage !== "string") { + const msg = `Expected x-uploadthing-package to be of type 'string', got '${typeof utFrontendPackage}'`; + yield* Effect.logError(msg); + return yield* new UploadThingError({ + code: "BAD_REQUEST", + message: + "`x-uploadthing-package` must be a string. eg. '@uploadthing/react'", + cause: msg, + }); + } + + const uploadable = opts.router[slug]; + if (!uploadable) { + const msg = `No file route found for slug ${slug}`; + yield* Effect.logError(msg); + return yield* new UploadThingError({ + code: "NOT_FOUND", + message: msg, + }); + } + + if (action && !isActionType(action)) { + const msg = `Expected ${VALID_ACTION_TYPES.map((x) => `"${x}"`) + .join(", ") + .replace(/,(?!.*,)/, " or")} but got "${action}"`; + yield* Effect.logError("Invalid action type", msg); + return yield* new UploadThingError({ + code: "BAD_REQUEST", + cause: `Invalid action type ${action}`, + message: msg, + }); + } + + if (hook && !isUploadThingHook(hook)) { + const msg = `Expected ${VALID_UT_HOOKS.map((x) => `"${x}"`) + .join(", ") + .replace(/,(?!.*,)/, " or")} but got "${hook}"`; + yield* Effect.logError("Invalid uploadthing hook", msg); + return yield* new UploadThingError({ + code: "BAD_REQUEST", + cause: `Invalid uploadthing hook ${hook}`, + message: msg, + }); + } + + if ((!action && !hook) || (action && hook)) { + const msg = `Exactly one of 'actionType' or 'uploadthing-hook' must be provided`; + yield* Effect.logError(msg); + return yield* new UploadThingError({ + code: "BAD_REQUEST", + message: msg, + }); + } + + yield* Effect.logDebug("✔︎ All request input is valid"); + + // FIXME: This should probably provide the full context at once instead of + // partially in the `runRequestHandlerAsync` and partially in here... + // Ref: https://discord.com/channels/@me/1201977154577891369/1207441839972548669 + const contextValue = yield* FetchContext; + contextValue.baseHeaders["x-uploadthing-api-key"] = apiKey; + contextValue.baseHeaders["x-uploadthing-fe-package"] = utFrontendPackage; + contextValue.baseHeaders["x-uploadthing-be-adapter"] = adapter; + + const { isDev = isDevelopment } = opts.config ?? {}; + if (isDev) yield* Effect.logInfo("UploadThing dev server is now running!"); + + const base = { + req, + config: opts.config ?? {}, + middlewareArgs: input.middlewareArgs, + isDev, + apiKey, + slug, + uploadable, + hook: null, + action: null, + }; + + return action + ? { ...base, action: action as ActionType } + : { ...base, hook: hook as UploadThingHook }; + }); diff --git a/packages/uploadthing/src/next-legacy.ts b/packages/uploadthing/src/next-legacy.ts index dafdfa940..c517c9351 100644 --- a/packages/uploadthing/src/next-legacy.ts +++ b/packages/uploadthing/src/next-legacy.ts @@ -2,24 +2,24 @@ // https://vercel.com/docs/functions/edge-functions/edge-runtime#compatible-node.js-modules import type { NextApiRequest, NextApiResponse } from "next"; -import { getStatusCodeFromError, UploadThingError } from "@uploadthing/shared"; import type { Json } from "@uploadthing/shared"; +import { getStatusCodeFromError } from "@uploadthing/shared"; import { UPLOADTHING_VERSION } from "./internal/constants"; import { formatError } from "./internal/error-formatter"; import { buildPermissionsInfoHandler, buildRequestHandler, + runRequestHandlerAsync, } from "./internal/handler"; import { incompatibleNodeGuard } from "./internal/incompat-node-guard"; -import { initLogger } from "./internal/logger"; -import { toWebRequest } from "./internal/node-http/toWebRequest"; +import { toWebRequest } from "./internal/to-web-request"; import type { FileRouter, RouteHandlerOptions } from "./internal/types"; import type { CreateBuilderOptions } from "./internal/upload-builder"; import { createBuilder } from "./internal/upload-builder"; -export type { FileRouter }; export { UTFiles } from "./internal/types"; +export type { FileRouter }; type MiddlewareArgs = { req: NextApiRequest; @@ -34,7 +34,6 @@ export const createUploadthing = ( export const createRouteHandler = ( opts: RouteHandlerOptions, ) => { - initLogger(opts.config?.logLevel); incompatibleNodeGuard(); const requestHandler = buildRequestHandler( @@ -51,26 +50,23 @@ export const createRouteHandler = ( return; } - const response = await requestHandler({ - req: toWebRequest(req), - middlewareArgs: { req, res, event: undefined }, - }); + const response = await runRequestHandlerAsync( + requestHandler, + { + req: toWebRequest(req), + middlewareArgs: { req, res, event: undefined }, + }, + opts.config, + ); res.setHeader("x-uploadthing-version", UPLOADTHING_VERSION); - if (response instanceof UploadThingError) { - res.status(getStatusCodeFromError(response)); + if (response.success === false) { + res.status(getStatusCodeFromError(response.error)); res.setHeader("x-uploadthing-version", UPLOADTHING_VERSION); - return res.json(formatError(response, opts.router)); - } - - if (response.status !== 200) { - // We messed up - this should never happen - res.status(500); - return res.send("An unknown error occurred"); + return res.json(formatError(response.error, opts.router)); } - res.status(response.status); return res.json(response.body); }; }; diff --git a/packages/uploadthing/src/sdk/index.ts b/packages/uploadthing/src/sdk/index.ts index 12ecbda9b..ce4a8074b 100644 --- a/packages/uploadthing/src/sdk/index.ts +++ b/packages/uploadthing/src/sdk/index.ts @@ -1,22 +1,28 @@ -import { process } from "std-env"; +import * as S from "@effect/schema/Schema"; +import * as Effect from "effect/Effect"; -import { lookup } from "@uploadthing/mime-types"; import type { ACL, + FetchContextService, FetchEsque, MaybeUrl, SerializedUploadThingError, } from "@uploadthing/shared"; import { asArray, + FetchContext, + fetchEff, + filterObjectValues, generateUploadThingURL, - isObject, + parseResponseJson, UploadThingError, } from "@uploadthing/shared"; import { UPLOADTHING_VERSION } from "../internal/constants"; +import { getApiKeyOrThrow } from "../internal/get-api-key"; import { incompatibleNodeGuard } from "../internal/incompat-node-guard"; -import { initLogger, logger } from "../internal/logger"; +import type { LogLevel } from "../internal/logger"; +import { ConsolaLogger, withMinimalLogLevel } from "../internal/logger"; import type { ACLUpdateOptions, DeleteFilesOptions, @@ -30,105 +36,90 @@ import type { UrlWithOverrides, UTApiOptions, } from "./types"; +import { UTFile } from "./ut-file"; import { - getApiKeyOrThrow, + downloadFiles, guardServerOnly, parseTimeToSeconds, uploadFilesInternal, } from "./utils"; -interface UTFilePropertyBag extends BlobPropertyBag { - lastModified?: number; - customId?: string; -} - -/** - * Extension of the Blob class that simplifies setting the `name` and `customId` properties, - * similar to the built-in File class from Node > 20. - */ -export class UTFile extends Blob { - name: string; - lastModified: number; - customId?: string; - - constructor(parts: BlobPart[], name: string, options?: UTFilePropertyBag) { - const optionsWithDefaults = { - ...options, - type: options?.type ?? (lookup(name) || undefined), - lastModified: options?.lastModified ?? Date.now(), - }; - super(parts, optionsWithDefaults); - this.name = name; - this.customId = optionsWithDefaults.customId; - this.lastModified = optionsWithDefaults.lastModified; - } -} +export { UTFile }; export class UTApi { private fetch: FetchEsque; - private apiKey: string | undefined; - private defaultHeaders: Record; + private defaultHeaders: FetchContextService["baseHeaders"]; private defaultKeyType: "fileKey" | "customId"; - + private logLevel: LogLevel | undefined; constructor(opts?: UTApiOptions) { + // Assert some stuff + guardServerOnly(); + incompatibleNodeGuard(); + const apiKey = getApiKeyOrThrow(opts?.apiKey); + this.fetch = opts?.fetch ?? globalThis.fetch; - this.apiKey = opts?.apiKey ?? process.env.UPLOADTHING_SECRET; this.defaultHeaders = { - "Content-Type": "application/json", - "x-uploadthing-api-key": this.apiKey!, + "x-uploadthing-api-key": apiKey, "x-uploadthing-version": UPLOADTHING_VERSION, "x-uploadthing-be-adapter": "server-sdk", + "x-uploadthing-fe-package": undefined, }; this.defaultKeyType = opts?.defaultKeyType ?? "fileKey"; - - initLogger(opts?.logLevel); - - // Assert some stuff - guardServerOnly(); - getApiKeyOrThrow(this.apiKey); - if (!this.apiKey?.startsWith("sk_")) { - throw new UploadThingError({ - code: "MISSING_ENV", - message: "Invalid API key. API keys must start with `sk_`.", - }); - } - incompatibleNodeGuard(); + this.logLevel = opts?.logLevel; } - private async requestUploadThing>( + private requestUploadThing = ( pathname: `/${string}`, body: Record, - fallbackErrorMessage: string, - ) { + responseSchema: S.Schema, + ) => { const url = generateUploadThingURL(pathname); - logger.debug("Requesting UploadThing:", { - url, - body, - headers: this.defaultHeaders, - }); - const res = await this.fetch(url, { + Effect.runSync( + Effect.logDebug("Requesting UploadThing:", { + url, + body, + headers: this.defaultHeaders, + }), + ); + + return fetchEff(url, { method: "POST", cache: "no-store", - headers: this.defaultHeaders, body: JSON.stringify(body), - }); - logger.debug("UploadThing responsed with status:", res.status); - - const json = await res.json(); - if (!res.ok || "error" in json) { - logger.error("Error:", json); - throw new UploadThingError({ - code: "INTERNAL_SERVER_ERROR", - message: - "error" in json && typeof json.error === "string" - ? json.error - : fallbackErrorMessage, - }); - } + headers: { + ...filterObjectValues( + this.defaultHeaders, + (v): v is string => typeof v === "string", + ), + "Content-Type": "application/json", + }, + }).pipe( + Effect.andThen(parseResponseJson), + Effect.andThen(S.decodeUnknown(responseSchema)), + Effect.catchTag("FetchError", (err) => + Effect.logError("Request failed:", err).pipe( + Effect.andThen(() => Effect.die(err)), + ), + ), + Effect.catchTag("ParseError", (err) => + Effect.logError("Response parsing failed:", err).pipe( + Effect.andThen(() => Effect.die(err)), + ), + ), + Effect.tap((res) => Effect.logDebug("UploadThing response:", res)), + ); + }; - logger.debug("UploadThing response:", json); - return json; - } + private executeAsync = (program: Effect.Effect) => + program.pipe( + withMinimalLogLevel(this.logLevel), + Effect.provide(ConsolaLogger), + Effect.provideService(FetchContext, { + fetch: this.fetch, + baseHeaders: this.defaultHeaders, + }), + Effect.runPromise, + ); /** * Upload files to UploadThing storage. @@ -156,22 +147,17 @@ export class UTApi { ): Promise { guardServerOnly(); - const uploads = await uploadFilesInternal( - { + const uploads = await this.executeAsync( + uploadFilesInternal({ files: asArray(files), - metadata: opts?.metadata ?? {}, contentDisposition: opts?.contentDisposition ?? "inline", + metadata: opts?.metadata ?? {}, acl: opts?.acl, - }, - { - fetch: this.fetch, - utRequestHeaders: this.defaultHeaders, - }, + }), ); const uploadFileResponse = Array.isArray(files) ? uploads : uploads[0]; - logger.debug("Finished uploading:", uploadFileResponse); - + Effect.runSync(Effect.logDebug("Finished uploading:", uploadFileResponse)); return uploadFileResponse; } @@ -202,69 +188,20 @@ export class UTApi { ): Promise { guardServerOnly(); - const formData = new FormData(); - formData.append("metadata", JSON.stringify(opts?.metadata ?? {})); - const downloadErrors: Record = {}; - const files = await Promise.all( - asArray(urls).map(async (_url, index) => { - let url = isObject(_url) ? _url.url : _url; - - if (typeof url === "string") { - // since dataurls will result in name being too long, tell the user - // to use uploadFiles instead. - if (url.startsWith("data:")) { - downloadErrors[index] = UploadThingError.toObject( - new UploadThingError({ - code: "BAD_REQUEST", - message: - "Please use uploadFiles() for data URLs. uploadFilesFromUrl() is intended for use with remote URLs only.", - }), - ); - return undefined; - } - url = new URL(url); - } - - const { - name = url.pathname.split("/").pop() ?? "unknown-filename", - customId = undefined, - } = isObject(_url) ? _url : {}; - - // Download the file on the user's server to avoid egress charges - logger.debug("Downloading file:", url); - const fileResponse = await this.fetch(url); - if (!fileResponse.ok) { - downloadErrors[index] = UploadThingError.toObject( - new UploadThingError({ - code: "BAD_REQUEST", - message: "Failed to download requested file.", - cause: fileResponse, - }), - ); - return undefined; - } - logger.debug("Finished downloading file. Reading blob..."); - const blob = await fileResponse.blob(); - logger.debug("Finished reading blob."); - return new UTFile([blob], name, { customId }); - }), - ).then((files) => files.filter((x): x is UTFile => x !== undefined)); - - logger.debug("Uploading files:", files); - - const uploads = await uploadFilesInternal( - { - files, - metadata: opts?.metadata ?? {}, - contentDisposition: opts?.contentDisposition ?? "inline", - acl: opts?.acl, - }, - { - fetch: this.fetch, - utRequestHeaders: this.defaultHeaders, - }, + const uploads = await this.executeAsync( + downloadFiles(asArray(urls), downloadErrors).pipe( + Effect.andThen((files) => files.filter((f): f is UTFile => f != null)), + Effect.andThen((files) => + uploadFilesInternal({ + files, + contentDisposition: opts?.contentDisposition ?? "inline", + metadata: opts?.metadata ?? {}, + acl: opts?.acl, + }), + ), + ), ); /** Put it all back together, preserve the order of files */ @@ -278,7 +215,7 @@ export class UTApi { /** Return single object or array based on input urls */ const uploadFileResponse = Array.isArray(urls) ? responses : responses[0]; - logger.debug("Finished uploading:", uploadFileResponse); + Effect.runSync(Effect.logDebug("Finished uploading:", uploadFileResponse)); return uploadFileResponse; } @@ -299,12 +236,18 @@ export class UTApi { guardServerOnly(); const { keyType = this.defaultKeyType } = opts ?? {}; - return this.requestUploadThing<{ success: boolean }>( - "/api/deleteFile", - keyType === "fileKey" - ? { fileKeys: asArray(keys) } - : { customIds: asArray(keys) }, - "An unknown error occurred while deleting files.", + const responseSchema = S.Struct({ + success: S.Boolean, + }); + + return await this.executeAsync( + this.requestUploadThing( + "/api/deleteFiles", + keyType === "fileKey" + ? { fileKeys: asArray(keys) } + : { customIds: asArray(keys) }, + responseSchema, + ), ); }; @@ -322,19 +265,25 @@ export class UTApi { */ getFileUrls = async (keys: string[] | string, opts?: GetFileUrlsOptions) => { guardServerOnly(); + const { keyType = this.defaultKeyType } = opts ?? {}; - const json = await this.requestUploadThing<{ - data: { key: string; url: string }[]; - }>( - "/api/getFileUrl", - keyType === "fileKey" - ? { fileKeys: asArray(keys) } - : { customIds: asArray(keys) }, - "An unknown error occurred while retrieving file URLs.", - ); + const responseSchema = S.Struct({ + data: S.Array( + S.Struct({ + key: S.String, + url: S.String, + }), + ), + }); - return json.data; + return await this.executeAsync( + this.requestUploadThing( + "/api/getFileUrl", + keyType === "fileKey" ? { fileKeys: keys } : { customIds: keys }, + responseSchema, + ), + ); }; /** @@ -350,50 +299,61 @@ export class UTApi { listFiles = async (opts?: ListFilesOptions) => { guardServerOnly(); - const json = await this.requestUploadThing<{ - files: { - id: string; - customId: string | null; - key: string; - name: string; - status: "Deletion Pending" | "Failed" | "Uploaded" | "Uploading"; - }[]; - }>( - "/api/listFiles", - { ...opts }, - "An unknown error occurred while listing files.", - ); + const responseSchema = S.Struct({ + files: S.Array( + S.Struct({ + id: S.String, + key: S.String, + name: S.String, + status: S.Literal( + "Deletion Pending", + "Failed", + "Uploaded", + "Uploading", + ), + }), + ), + }); - return json.files; + return await this.executeAsync( + this.requestUploadThing("/api/listFiles", { ...opts }, responseSchema), + ); }; renameFiles = async (updates: RenameFileUpdate | RenameFileUpdate[]) => { guardServerOnly(); - return this.requestUploadThing<{ success: true }>( - "/api/renameFiles", - { updates: asArray(updates) }, - "An unknown error occurred while renaming files.", + const responseSchema = S.Struct({ + success: S.Boolean, + }); + + return await this.executeAsync( + this.requestUploadThing( + "/api/renameFiles", + { updates: asArray(updates) }, + responseSchema, + ), ); }; + /** @deprecated Use {@link renameFiles} instead. */ public renameFile = this.renameFiles; getUsageInfo = async () => { guardServerOnly(); - return this.requestUploadThing<{ - totalBytes: number; - totalReadable: string; - appTotalBytes: number; - appTotalReadable: string; - filesUploaded: number; - limitBytes: number; - limitReadable: string; - }>( - "/api/getUsageInfo", - {}, - "An unknown error occurred while getting usage info.", + const responseSchema = S.Struct({ + totalBytes: S.Number, + totalReadable: S.String, + appTotalBytes: S.Number, + appTotalReadable: S.String, + filesUploaded: S.Number, + limitBytes: S.Number, + limitReadable: S.String, + }); + + return await this.executeAsync( + this.requestUploadThing("/api/getUsageInfo", {}, responseSchema), ); }; @@ -420,15 +380,19 @@ export class UTApi { }); } - const json = await this.requestUploadThing<{ url: string }>( - "/api/requestFileAccess", - keyType === "fileKey" - ? { fileKey: key, expiresIn } - : { customId: key, expiresIn }, - "An unknown error occurred while retrieving presigned URLs.", - ); + const responseSchema = S.Struct({ + url: S.String, + }); - return json.url; + return await this.executeAsync( + this.requestUploadThing( + "/api/requestFileAccess", + keyType === "fileKey" + ? { fileKey: key, expiresIn } + : { customId: key, expiresIn }, + responseSchema, + ), + ); }; /** @@ -447,7 +411,11 @@ export class UTApi { * "private", * ); */ - updateACL = (keys: string | string[], acl: ACL, opts?: ACLUpdateOptions) => { + updateACL = async ( + keys: string | string[], + acl: ACL, + opts?: ACLUpdateOptions, + ) => { guardServerOnly(); const { keyType = this.defaultKeyType } = opts ?? {}; @@ -457,10 +425,12 @@ export class UTApi { : { customId: key, acl }; }); - return this.requestUploadThing<{ success: true }>( - "/api/updateACL", - { updates }, - "An unknown error occurred while updating ACLs.", + const responseSchema = S.Struct({ + success: S.Boolean, + }); + + return await this.executeAsync( + this.requestUploadThing("/api/updateACL", { updates }, responseSchema), ); }; } diff --git a/packages/uploadthing/src/sdk/types.ts b/packages/uploadthing/src/sdk/types.ts index 20053265a..57e70cc2f 100644 --- a/packages/uploadthing/src/sdk/types.ts +++ b/packages/uploadthing/src/sdk/types.ts @@ -48,7 +48,7 @@ export type UrlWithOverrides = { type BlobEsque = NodeBlob | Blob; export type FileEsque = BlobEsque & { name: string; - customId?: string | null; + customId?: string | null | undefined; }; export interface UploadFilesOptions { diff --git a/packages/uploadthing/src/sdk/ut-file.ts b/packages/uploadthing/src/sdk/ut-file.ts new file mode 100644 index 000000000..110645e72 --- /dev/null +++ b/packages/uploadthing/src/sdk/ut-file.ts @@ -0,0 +1,28 @@ +import { lookup } from "@uploadthing/mime-types"; + +interface UTFilePropertyBag extends BlobPropertyBag { + lastModified?: number | undefined; + customId?: string | undefined; +} + +/** + * Extension of the Blob class that simplifies setting the `name` and `customId` properties, + * similar to the built-in File class from Node > 20. + */ +export class UTFile extends Blob { + name: string; + lastModified: number; + customId: string | undefined; + + constructor(parts: BlobPart[], name: string, options?: UTFilePropertyBag) { + const optionsWithDefaults = { + ...options, + type: options?.type ?? (lookup(name) || "application/octet-stream"), + lastModified: options?.lastModified ?? Date.now(), + }; + super(parts, optionsWithDefaults); + this.name = name; + this.customId = optionsWithDefaults.customId; + this.lastModified = optionsWithDefaults.lastModified; + } +} diff --git a/packages/uploadthing/src/sdk/utils.ts b/packages/uploadthing/src/sdk/utils.ts index 2c863249b..ee3c41dfc 100644 --- a/packages/uploadthing/src/sdk/utils.ts +++ b/packages/uploadthing/src/sdk/utils.ts @@ -1,28 +1,34 @@ -import { process } from "std-env"; +import * as S from "@effect/schema/Schema"; +import * as Effect from "effect/Effect"; +import { + exponentialBackoff, + fetchEff, + generateUploadThingURL, + isObject, + parseResponseJson, + RetryError, + UploadThingError, +} from "@uploadthing/shared"; import type { - FetchEsque, + ACL, + ContentDisposition, + Json, + MaybeUrl, SerializedUploadThingError, Time, TimeShort, } from "@uploadthing/shared"; -import { - generateUploadThingURL, - pollForFileData, - UploadThingError, -} from "@uploadthing/shared"; -import { UPLOADTHING_VERSION } from "../internal/constants"; -import { logger } from "../internal/logger"; -import { uploadPart } from "../internal/multi-part"; -import type { - MPUResponse, - PresignedURLs, - PSPResponse, - UTEvents, -} from "../internal/types"; +import { uploadMultipart } from "../internal/multi-part.server"; +import { uploadPresignedPost } from "../internal/presigned-post.server"; +import { + PollUploadResponseSchema, + PresignedURLResponseSchema, +} from "../internal/shared-schemas"; import type { UploadedFileData } from "../types"; -import type { FileEsque, UploadFilesOptions } from "./types"; +import type { FileEsque, UrlWithOverrides } from "./types"; +import { UTFile } from "./ut-file"; export function guardServerOnly() { if (typeof window !== "undefined") { @@ -33,215 +39,177 @@ export function guardServerOnly() { } } -export function getApiKeyOrThrow(apiKey?: string) { - if (apiKey) return apiKey; - if (process.env.UPLOADTHING_SECRET) return process.env.UPLOADTHING_SECRET; - - throw new UploadThingError({ - code: "MISSING_ENV", - message: "Missing `UPLOADTHING_SECRET` env variable.", - }); -} - -export const uploadFilesInternal = async ( - data: UploadFilesOptions & { - files: FileEsque[]; - }, - opts: { - fetch: FetchEsque; - utRequestHeaders: Record; - }, -) => { - // Request presigned URLs for each file - const fileData = data.files.map((file) => ({ - name: file.name ?? "unnamed-blob", - type: file.type, - size: file.size, - ...("customId" in file ? { customId: file.customId } : {}), - })); - logger.debug("Getting presigned URLs for files", fileData); - const res = await opts.fetch(generateUploadThingURL("/api/uploadFiles"), { - method: "POST", - headers: opts.utRequestHeaders, - cache: "no-store", - body: JSON.stringify({ - files: fileData, - metadata: data.metadata, - contentDisposition: data.contentDisposition, - acl: data.acl, - }), - }); - - if (!res.ok) { - const error = await UploadThingError.fromResponse(res); - logger.debug("Failed getting presigned URLs:", error); - throw error; - } - - const json = await res.json<{ - data: PresignedURLs; - }>(); - - logger.debug("Got presigned URLs:", json.data); - logger.debug("Starting uploads..."); - - // Upload each file to S3 in chunks using multi-part uploads - const uploads = await Promise.allSettled( - data.files.map(async (file, i) => { - const presigned = json.data[i]; - - if (!presigned) { - logger.error( - "Failed to generate presigned URL for file:", - file, - presigned, - ); - throw new UploadThingError({ - code: "URL_GENERATION_FAILED", - message: "Failed to generate presigned URL", - cause: JSON.stringify(presigned), - }); - } - - if ("urls" in presigned) { - await uploadMultipart(file, presigned, { ...opts }); - } else { - await uploadPresignedPost(file, presigned, { ...opts }); - } - - // Poll for file to be available - logger.debug("Polling for file data..."); - await pollForFileData({ - url: generateUploadThingURL(`/api/pollUpload/${presigned.key}`), - apiKey: opts.utRequestHeaders["x-uploadthing-api-key"], - sdkVersion: UPLOADTHING_VERSION, - fetch: opts.fetch, - }); - logger.debug("Polling complete."); - - return { - key: presigned.key, - url: presigned.fileUrl, - name: file.name, - size: file.size, - type: file.type, - customId: "customId" in file ? file.customId ?? null : null, - }; - }), - ); - - logger.debug("All uploads complete, aggregating results..."); - - return uploads.map((upload) => { - if (upload.status === "fulfilled") { - const data: UploadedFileData = upload.value; - return { data, error: null }; - } - // We only throw UploadThingErrors, so this is safe - const reason = upload.reason as UploadThingError; - const error: SerializedUploadThingError = UploadThingError.toObject(reason); - return { data: null, error }; - }); +type UploadFilesInternalOptions = { + files: FileEsque[]; + metadata: Json; + contentDisposition: ContentDisposition; + acl: ACL | undefined; }; -async function uploadMultipart( - file: FileEsque, - presigned: MPUResponse, - opts: { - fetch: FetchEsque; - utRequestHeaders: Record; - }, -) { - logger.debug( - "Uploading file", - file.name, - "with", - presigned.urls.length, - "chunks of size", - presigned.chunkSize, - "bytes each", +export const uploadFilesInternal = (input: UploadFilesInternalOptions) => + getPresignedUrls(input).pipe( + Effect.andThen((presigneds) => + Effect.forEach( + presigneds, + (file) => + uploadFile(file).pipe( + Effect.match({ + onFailure: (error) => ({ + data: null, + error: UploadThingError.toObject( + error instanceof UploadThingError + ? error + : new UploadThingError({ + message: "Failed to upload file.", + code: "BAD_REQUEST", + cause: error, + }), + ), + }), + onSuccess: (data: UploadedFileData) => ({ data, error: null }), + }), + ), + { concurrency: 10 }, + ), + ), ); - const etags = await Promise.all( - presigned.urls.map(async (url, index) => { - const offset = presigned.chunkSize * index; - const end = Math.min(offset + presigned.chunkSize, file.size); - const chunk = file.slice(offset, end); - - const etag = await uploadPart({ - fetch: opts.fetch, - url, - chunk: chunk as Blob, - contentDisposition: presigned.contentDisposition, - contentType: file.type, - fileName: file.name, - maxRetries: 10, - key: presigned.key, - utRequestHeaders: opts.utRequestHeaders, - }); - - logger.debug("Part", index + 1, "uploaded successfully:", etag); - - return { tag: etag, partNumber: index + 1 }; - }), - ); - - logger.debug( - "File", - file.name, - "uploaded successfully. Notifying UploadThing to complete multipart upload.", - ); - - // Complete multipart upload - const completionRes = await opts.fetch( - generateUploadThingURL("/api/completeMultipart"), - { - method: "POST", - body: JSON.stringify({ - fileKey: presigned.key, - uploadId: presigned.uploadId, - etags, - } satisfies UTEvents["multipart-complete"]["in"]), - headers: opts.utRequestHeaders, - }, +/** + * FIXME: downloading everything into memory and then upload + * isn't the best. We should support streams so we can download + * just as much as we need at any time. + */ +export const downloadFiles = ( + urls: (MaybeUrl | UrlWithOverrides)[], + downloadErrors: Record, +) => + Effect.forEach( + urls, + (_url, idx) => + Effect.gen(function* () { + let url = isObject(_url) ? _url.url : _url; + if (typeof url === "string") { + // since dataurls will result in name being too long, tell the user + // to use uploadFiles instead. + if (url.startsWith("data:")) { + downloadErrors[idx] = UploadThingError.toObject( + new UploadThingError({ + code: "BAD_REQUEST", + message: + "Please use uploadFiles() for data URLs. uploadFilesFromUrl() is intended for use with remote URLs only.", + }), + ); + return null; + } + } + url = new URL(url); + + const { + name = url.pathname.split("/").pop() ?? "unknown-filename", + customId = undefined, + } = isObject(_url) ? _url : {}; + + const response = yield* fetchEff(url); + if (!response.ok) { + downloadErrors[idx] = UploadThingError.toObject( + new UploadThingError({ + code: "BAD_REQUEST", + message: "Failed to download requested file.", + cause: response, + }), + ); + return undefined; + } + + return yield* Effect.promise(() => response.blob()).pipe( + Effect.andThen((blob) => new UTFile([blob], name, { customId })), + ); + }), + { concurrency: 10 }, ); - logger.debug("UploadThing responsed with status:", completionRes.status); -} +const getPresignedUrls = (input: UploadFilesInternalOptions) => + Effect.gen(function* () { + const { files, metadata, contentDisposition, acl } = input; -async function uploadPresignedPost( - file: FileEsque, - presigned: PSPResponse, - opts: { - fetch: FetchEsque; - }, -) { - logger.debug("Uploading file", file.name, "using presigned POST URL"); + const fileData = files.map((file) => ({ + name: file.name ?? "unnamed-blob", + type: file.type, + size: file.size, + ...("customId" in file ? { customId: file.customId } : {}), + })); + yield* Effect.logDebug("Getting presigned URLs for files", fileData); - const formData = new FormData(); - Object.entries(presigned.fields).forEach(([k, v]) => formData.append(k, v)); - formData.append("file", file as Blob); // File data **MUST GO LAST** + const responseSchema = S.Struct({ + data: PresignedURLResponseSchema, + }); - const res = await opts.fetch(presigned.url, { - method: "POST", - body: formData, - headers: new Headers({ - Accept: "application/xml", - }), + const presigneds = yield* fetchEff( + generateUploadThingURL("/api/uploadFiles"), + { + method: "POST", + cache: "no-store", + body: JSON.stringify({ + files: fileData, + metadata, + contentDisposition, + acl, + }), + headers: { "Content-Type": "application/json" }, + }, + ).pipe( + Effect.andThen(parseResponseJson), + Effect.andThen(S.decodeUnknown(responseSchema)), + Effect.catchTag("ParseError", (e) => Effect.die(e)), + Effect.catchTag("FetchError", (e) => Effect.die(e)), + ); + yield* Effect.logDebug("Got presigned URLs:", presigneds.data); + + return files.map((file, i) => ({ + file, + presigned: presigneds.data[i], + })); }); - if (!res.ok) { - const text = await res.text(); - logger.error("Failed to upload file:", text); - throw new UploadThingError({ - code: "UPLOAD_FAILED", - message: "Failed to upload file", - cause: text, - }); - } +const uploadFile = ( + input: Effect.Effect.Success>[number], +) => + Effect.gen(function* () { + const { file, presigned } = input; - logger.debug("File", file.name, "uploaded successfully"); -} + if ("urls" in presigned) { + yield* uploadMultipart(file, presigned); + } else { + yield* uploadPresignedPost(file, presigned); + } + + yield* fetchEff( + generateUploadThingURL(`/api/pollUpload/${presigned.key}`), + ).pipe( + Effect.andThen(parseResponseJson), + Effect.andThen(S.decodeUnknown(PollUploadResponseSchema)), + Effect.tap(Effect.logDebug("Polled upload", presigned.key)), + Effect.andThen((res) => + res.status === "done" + ? Effect.succeed(undefined) + : Effect.fail(new RetryError()), + ), + Effect.retry({ + while: (err) => err instanceof RetryError, + schedule: exponentialBackoff, + }), + Effect.catchTag("RetryError", (e) => Effect.die(e)), + ); + + return { + key: presigned.key, + url: presigned.fileUrl, + name: file.name, + size: file.size, + type: file.type, + customId: "customId" in file ? file.customId ?? null : null, + }; + }); export function parseTimeToSeconds(time: Time) { const match = time.toString().split(/(\d+)/).filter(Boolean); diff --git a/packages/uploadthing/src/server.ts b/packages/uploadthing/src/server.ts index 17b86f6f4..9e2af55a1 100644 --- a/packages/uploadthing/src/server.ts +++ b/packages/uploadthing/src/server.ts @@ -1,20 +1,21 @@ -import { getStatusCodeFromError, UploadThingError } from "@uploadthing/shared"; import type { Json } from "@uploadthing/shared"; +import { getStatusCodeFromError, UploadThingError } from "@uploadthing/shared"; import { UPLOADTHING_VERSION } from "./internal/constants"; import { formatError } from "./internal/error-formatter"; import { buildPermissionsInfoHandler, buildRequestHandler, + runRequestHandlerAsync, } from "./internal/handler"; import { incompatibleNodeGuard } from "./internal/incompat-node-guard"; -import { initLogger } from "./internal/logger"; import type { FileRouter, RouteHandlerOptions } from "./internal/types"; import type { CreateBuilderOptions } from "./internal/upload-builder"; import { createBuilder } from "./internal/upload-builder"; export { UTFiles } from "./internal/types"; -export { UTApi, UTFile } from "./sdk"; +export { UTApi } from "./sdk"; +export { UTFile } from "./sdk/ut-file"; export { UploadThingError, type FileRouter }; type MiddlewareArgs = { req: Request; res: undefined; event: undefined }; @@ -35,7 +36,6 @@ export const INTERNAL_DO_NOT_USE_createRouteHandlerCore = < opts: RouteHandlerOptions, adapter: string, ) => { - initLogger(opts.config?.logLevel); incompatibleNodeGuard(); const requestHandler = buildRequestHandler( @@ -48,34 +48,24 @@ export const INTERNAL_DO_NOT_USE_createRouteHandlerCore = < request: Request | { request: Request }, ): Promise => { const req = request instanceof Request ? request : request.request; - const response = await requestHandler({ - req, - middlewareArgs: { req, res: undefined, event: undefined }, - }); + const response = await runRequestHandlerAsync( + requestHandler, + { + req, + middlewareArgs: { req, event: undefined, res: undefined }, + }, + opts.config, + ); - if (response instanceof UploadThingError) { - return new Response(JSON.stringify(formatError(response, opts.router)), { - status: getStatusCodeFromError(response), - headers: { - "x-uploadthing-version": UPLOADTHING_VERSION, - }, - }); - } - if (response.status !== 200) { - // We messed up - this should never happen - return new Response("An unknown error occurred", { - status: 500, - headers: { - "x-uploadthing-version": UPLOADTHING_VERSION, - }, + if (response.success === false) { + return Response.json(formatError(response.error, opts.router), { + status: getStatusCodeFromError(response.error), + headers: { "x-uploadthing-version": UPLOADTHING_VERSION }, }); } - const res = new Response(JSON.stringify(response.body), { - status: response.status, - headers: { - "x-uploadthing-version": UPLOADTHING_VERSION, - }, + const res = Response.json(response.body, { + headers: { "x-uploadthing-version": UPLOADTHING_VERSION }, }); // @ts-expect-error - this is a custom property res.cleanup = response.cleanup; @@ -85,11 +75,8 @@ export const INTERNAL_DO_NOT_USE_createRouteHandlerCore = < const GET = (request: Request | { request: Request }) => { const _req = request instanceof Request ? request : request.request; - return new Response(JSON.stringify(getBuildPerms()), { - status: 200, - headers: { - "x-uploadthing-version": UPLOADTHING_VERSION, - }, + return Response.json(getBuildPerms(), { + headers: { "x-uploadthing-version": UPLOADTHING_VERSION }, }); }; diff --git a/packages/uploadthing/src/tw.ts b/packages/uploadthing/src/tw.ts index 1fcbfaef0..2c48369b9 100644 --- a/packages/uploadthing/src/tw.ts +++ b/packages/uploadthing/src/tw.ts @@ -5,7 +5,7 @@ import plugin from "tailwindcss/plugin"; /** * Add more here when additional UI packages are added */ -const PACKAGES = ["react", "solid", "svelte"]; +const PACKAGES = ["react", "solid", "svelte", "vue"]; export function withUt(twConfig: Config) { const contentPaths = PACKAGES.map((pkg) => { diff --git a/packages/uploadthing/src/types.ts b/packages/uploadthing/src/types.ts index 51ad8058a..ece4b0aca 100644 --- a/packages/uploadthing/src/types.ts +++ b/packages/uploadthing/src/types.ts @@ -15,6 +15,15 @@ export type { export * from "./sdk/types"; +export type { EndpointMetadata } from "@uploadthing/shared"; + +export type { + FileUploadData, + FileUploadDataWithCustomId, + UploadedFileData, + ClientUploadedFileData, +} from "./internal/shared-schemas"; + export type UploadFilesOptions< TRouter extends FileRouter, TEndpoint extends keyof TRouter, @@ -30,18 +39,20 @@ export type UploadFilesOptions< /** * Called when presigned URLs have been retrieved and the file upload is about to begin */ - onUploadBegin?: (opts: { file: string }) => void; + onUploadBegin?: ((opts: { file: string }) => void) | undefined; /** * Called continuously as the file is uploaded to the storage provider */ - onUploadProgress?: (opts: { file: string; progress: number }) => void; + onUploadProgress?: + | ((opts: { file: string; progress: number }) => void) + | undefined; /** * Skip polling for server data after upload is complete * Useful if you want faster response times and don't need * any data returned from the server `onUploadComplete` callback * @default false */ - skipPolling?: TSkipPolling; + skipPolling?: TSkipPolling | undefined; /** * Called when the upload is complete */ @@ -57,7 +68,7 @@ export type UploadFilesOptions< * Set custom headers that'll get sent with requests * to your server */ - headers?: HeadersInit | (() => MaybePromise); + headers?: HeadersInit | (() => MaybePromise) | undefined; /** * The uploadthing package that is making this request, used to identify the client in the server logs * @example "@uploadthing/react" @@ -88,40 +99,3 @@ export type GenerateUploaderOptions = { */ package: string; }; - -/** - * Properties from the web File object, this is what the client sends when initiating an upload - */ -export interface FileUploadData { - name: string; - size: number; - type: string; -} - -/** - * `.middleware()` can add a customId to the incoming file data - */ -export interface FileUploadDataWithCustomId extends FileUploadData { - /** - * As set by `.middleware()` using @link {UTFiles} - */ - customId: string | null; -} - -/** - * When files are uploaded, we get back a key and a URL for the file - */ -export interface UploadedFileData extends FileUploadDataWithCustomId { - key: string; - url: string; -} - -/** - * When the client has uploaded a file and polled for data returned by `.onUploadComplete()` - */ -export interface ClientUploadedFileData extends UploadedFileData { - /** - * Matches what's returned from the serverside `onUploadComplete` callback - */ - serverData: T; -} diff --git a/packages/uploadthing/test/__test-helpers.ts b/packages/uploadthing/test/__test-helpers.ts index 283f8ac2f..b7d4527d0 100644 --- a/packages/uploadthing/test/__test-helpers.ts +++ b/packages/uploadthing/test/__test-helpers.ts @@ -1,7 +1,9 @@ +import { createHash } from "node:crypto"; import type { StrictRequest } from "msw"; import { delay, http, HttpResponse } from "msw"; import { setupServer } from "msw/node"; -import { afterAll, beforeAll, beforeEach, it as itBase, vi } from "vitest"; +import type { Test } from "vitest"; +import { afterAll, beforeAll, it as itBase, vi } from "vitest"; import { lookup } from "@uploadthing/mime-types"; import { generateUploadThingURL } from "@uploadthing/shared"; @@ -34,6 +36,14 @@ export const baseHeaders = { "x-uploadthing-package": "vitest", }; +export const genPort = (test: Test) => { + const str = `${test.id}-${test.name}-${Date.now()}`; + const hashedValue = createHash("sha256").update(str).digest("hex"); + const hashedInteger = parseInt(hashedValue, 16); + const port = 1024 + (hashedInteger % (65535 - 1024 + 1)); + return port; +}; + const mockPresigned = (file: { name: string; size: number; @@ -144,16 +154,19 @@ export const it = itBase.extend({ const presigned = mockPresigned(file); db.insertFile({ ...file, + customId: file.customId ?? null, + type: presigned.fileType, key: presigned.key, callbackUrl: body.callbackUrl, callbackSlug: body.callbackSlug, + metadata: JSON.stringify(body.metadata ?? "{}"), }); return presigned; }); return HttpResponse.json(presigneds); }, ), - http.post( + http.post( "https://uploadthing.com/api/uploadFiles", async ({ request }) => { await callRequestSpy(request); @@ -162,8 +175,10 @@ export const it = itBase.extend({ const presigneds = body?.files.map((file) => { const presigned = mockPresigned(file); db.insertFile({ - ...file, key: presigned.key, + metadata: JSON.stringify(body.metadata ?? "{}"), + customId: file.customId ?? null, + ...file, }); return presigned; }); @@ -189,13 +204,24 @@ export const it = itBase.extend({ // @ts-expect-error - https://github.com/mswjs/msw/pull/2108 async function* ({ request, params }) { await callRequestSpy(request); + let file = null; - // Simulate polling + // Simulate polling - at least once yield HttpResponse.json({ status: "still waiting" }); + if (!file) { + file = db.getFileByKey(params.key); + yield HttpResponse.json({ status: "still waiting" }); + } return HttpResponse.json({ status: "done", - fileData: db.getFileByKey(params.key), + fileData: { + ...file, + fileName: file.name, + fileSize: file.size, + fileType: file.type, + fileKey: file.key, + }, }); }, ), @@ -212,7 +238,7 @@ export const it = itBase.extend({ "https://uploadthing.com/api/serverCallback", async ({ request }) => { await callRequestSpy(request); - return HttpResponse.json({ success: true }); + return HttpResponse.json({ status: "ok" }); }, ), http.get( @@ -253,6 +279,13 @@ export const useBadS3 = () => }), ); +export const useBadUTApi = () => + msw.use( + http.post("https://uploadthing.com/api/*", async () => { + return HttpResponse.json({ error: "Not found" }, { status: 404 }); + }), + ); + /** * Call this in your test to make the S3 requests fail a couple times before succeeding */ diff --git a/packages/uploadthing/test/adapters.test.ts b/packages/uploadthing/test/adapters.test.ts index 9e92c39df..511a6331a 100644 --- a/packages/uploadthing/test/adapters.test.ts +++ b/packages/uploadthing/test/adapters.test.ts @@ -318,7 +318,7 @@ describe("adapters:next-legacy", async () => { const { res, status } = mockRes(); await handler(req, res); - expect(status).toHaveBeenCalledWith(200); + expect(status).not.toHaveBeenCalled(); // implicit 200 expect(middlewareMock).toHaveBeenCalledOnce(); expect(middlewareMock).toHaveBeenCalledWith( diff --git a/packages/uploadthing/test/client.test.ts b/packages/uploadthing/test/client.test.ts index e0899ce1d..304c7cbf4 100644 --- a/packages/uploadthing/test/client.test.ts +++ b/packages/uploadthing/test/client.test.ts @@ -1,6 +1,7 @@ // @vitest-environment happy-dom import express from "express"; +import type { Test } from "vitest"; import { describe, expect, vi } from "vitest"; import { generateUploadThingURL } from "@uploadthing/shared"; @@ -8,6 +9,7 @@ import { generateUploadThingURL } from "@uploadthing/shared"; import { genUploader } from "../src/client"; import { createRouteHandler, createUploadthing } from "../src/express"; import { + genPort, it, middlewareMock, onErrorMock, @@ -18,14 +20,14 @@ import { useHalfBadS3, } from "./__test-helpers"; -export const setupUTServer = () => { +export const setupUTServer = (task: Test) => { const f = createUploadthing({ errorFormatter(err) { return { message: err.message }; }, }); const router = { - foo: f({ text: {} }) + foo: f({ text: { maxFileSize: "16MB" } }) .middleware((opts) => { middlewareMock(opts); return {}; @@ -46,8 +48,8 @@ export const setupUTServer = () => { }), ); - const server = app.listen(); - const port = (server.address() as { port: number }).port; + const port = genPort(task); + const server = app.listen(port); const uploadFiles = genUploader({ package: "vitest", @@ -58,8 +60,8 @@ export const setupUTServer = () => { }; describe("uploadFiles", () => { - it("uploads with presigned post", async ({ db }) => { - const { uploadFiles, close } = setupUTServer(); + it("uploads with presigned post", async ({ db, task }) => { + const { uploadFiles, close } = setupUTServer(task); const file = new File(["foo"], "foo.txt", { type: "text/plain" }); await expect( @@ -97,8 +99,8 @@ describe("uploadFiles", () => { close(); }); - it("uploads with multipart upload", async ({ db }) => { - const { uploadFiles, close } = setupUTServer(); + it("uploads with multipart upload", async ({ db, task }) => { + const { uploadFiles, close } = setupUTServer(task); const bigFile = new File([new ArrayBuffer(10 * 1024 * 1024)], "foo.txt", { type: "text/plain", }); @@ -138,8 +140,8 @@ describe("uploadFiles", () => { close(); }); - it("sends custom headers if set (static object)", async ({ db }) => { - const { uploadFiles, close } = setupUTServer(); + it("sends custom headers if set (static object)", async ({ db, task }) => { + const { uploadFiles, close } = setupUTServer(task); const file = new File(["foo"], "foo.txt", { type: "text/plain" }); await expect( @@ -171,8 +173,8 @@ describe("uploadFiles", () => { close(); }); - it("sends custom headers if set (async function)", async ({ db }) => { - const { uploadFiles, close } = setupUTServer(); + it("sends custom headers if set (async function)", async ({ db, task }) => { + const { uploadFiles, close } = setupUTServer(task); const file = new File(["foo"], "foo.txt", { type: "text/plain" }); await expect( @@ -234,41 +236,45 @@ describe("uploadFiles", () => { // close(); // }); - it("succeeds after retries (MPU)", { timeout: 15e3 }, async ({ db }) => { - const { uploadFiles, close } = setupUTServer(); - useHalfBadS3(); + it( + "succeeds after retries (MPU)", + { timeout: 15e3 }, + async ({ db, task }) => { + const { uploadFiles, close } = setupUTServer(task); + useHalfBadS3(); - const bigFile = new File([new ArrayBuffer(10 * 1024 * 1024)], "foo.txt", { - type: "text/plain", - }); - - await expect( - uploadFiles("foo", { - files: [bigFile], - skipPolling: true, - }), - ).resolves.toEqual([ - { - name: "foo.txt", - size: 10485760, + const bigFile = new File([new ArrayBuffer(10 * 1024 * 1024)], "foo.txt", { type: "text/plain", - customId: null, - serverData: null, - key: "abc-123.txt", - url: "https://utfs.io/f/abc-123.txt", - }, - ]); + }); - expect(onErrorMock).not.toHaveBeenCalled(); - await vi.waitUntil(() => uploadCompleteMock.mock.calls.length > 0, { - timeout: 5000, - }); + await expect( + uploadFiles("foo", { + files: [bigFile], + skipPolling: true, + }), + ).resolves.toEqual([ + { + name: "foo.txt", + size: 10485760, + type: "text/plain", + customId: null, + serverData: null, + key: "abc-123.txt", + url: "https://utfs.io/f/abc-123.txt", + }, + ]); - close(); - }); + expect(onErrorMock).not.toHaveBeenCalled(); + await vi.waitUntil(() => uploadCompleteMock.mock.calls.length > 0, { + timeout: 5000, + }); + + close(); + }, + ); - it("reports of failed post upload", async ({ db }) => { - const { uploadFiles, close } = setupUTServer(); + it("reports of failed post upload", async ({ db, task }) => { + const { uploadFiles, close } = setupUTServer(task); useBadS3(); const file = new File(["foo"], "foo.txt", { type: "text/plain" }); @@ -279,7 +285,7 @@ describe("uploadFiles", () => { skipPolling: true, }), ).rejects.toThrowErrorMatchingInlineSnapshot( - `[Error: Failed to upload file foo.txt to S3]`, + `[UploadThingError: Failed to upload file foo.txt to S3]`, ); expect(requestsToDomain("amazonaws.com")).toHaveLength(1); @@ -302,8 +308,8 @@ describe("uploadFiles", () => { close(); }); - it("reports of failed multipart upload", async ({ db }) => { - const { uploadFiles, close } = setupUTServer(); + it("reports of failed multipart upload", async ({ db, task }) => { + const { uploadFiles, close } = setupUTServer(task); useBadS3(); const bigFile = new File([new ArrayBuffer(10 * 1024 * 1024)], "foo.txt", { @@ -316,10 +322,10 @@ describe("uploadFiles", () => { skipPolling: true, }), ).rejects.toThrowErrorMatchingInlineSnapshot( - `[Error: Failed to upload file foo.txt to S3]`, + `[UploadThingError: Failed to upload file foo.txt to S3]`, ); - expect(requestsToDomain("amazonaws.com")).toHaveLength(2); + expect(requestsToDomain("amazonaws.com")).toHaveLength(7); expect(onErrorMock).toHaveBeenCalledOnce(); expect(requestSpy).toHaveBeenCalledWith( generateUploadThingURL("/api/failureCallback"), @@ -338,4 +344,40 @@ describe("uploadFiles", () => { close(); }); + + it("handles too big file size errors", async ({ db, task }) => { + const { uploadFiles, close } = setupUTServer(task); + + const tooBigFile = new File( + [new ArrayBuffer(20 * 1024 * 1024)], + "foo.txt", + { + type: "text/plain", + }, + ); + + await expect( + uploadFiles("foo", { + files: [tooBigFile], + skipPolling: true, + }), + ).rejects.toThrowErrorMatchingInlineSnapshot( + `[UploadThingError: Invalid config: FileSizeMismatch]`, + ); + }); + + it("handles invalid file type errors", async ({ db, task }) => { + const { uploadFiles, close } = setupUTServer(task); + + const file = new File(["foo"], "foo.png", { type: "image/png" }); + + await expect( + uploadFiles("foo", { + files: [file], + skipPolling: true, + }), + ).rejects.toThrowErrorMatchingInlineSnapshot( + `[UploadThingError: Invalid config: InvalidFileType]`, + ); + }); }); diff --git a/packages/uploadthing/test/request-handler.test.ts b/packages/uploadthing/test/request-handler.test.ts index f9dc82279..15ed1e140 100644 --- a/packages/uploadthing/test/request-handler.test.ts +++ b/packages/uploadthing/test/request-handler.test.ts @@ -12,11 +12,13 @@ import { middlewareMock, requestSpy, uploadCompleteMock, + useBadUTApi, } from "./__test-helpers"; const f = createUploadthing({ errorFormatter: (e) => ({ message: e.message, + data: e.data, cause: e.cause instanceof z.ZodError ? e.cause.flatten() @@ -131,13 +133,11 @@ describe("file route config", () => { expect(res.status).toBe(400); await expect(res.json()).resolves.toEqual({ cause: "Error: File type text not allowed for foo.txt", - message: "Invalid config.", + message: "Invalid config: InvalidFileType", }); }); - it.skip("CURR HANDLED ON INFRA SIDE - blocks for too big files", async ({ - db, - }) => { + it("blocks for too big files", async ({ db }) => { const res = await handlers.POST( new Request(createApiUrl("imageUploader", "upload"), { method: "POST", @@ -152,7 +152,11 @@ describe("file route config", () => { expect(requestSpy).toHaveBeenCalledTimes(0); expect(res.status).toBe(400); - await expect(res.json()).resolves.toEqual({}); + await expect(res.json()).resolves.toEqual({ + cause: + "Error: You uploaded a image file that was 3.15MB, but the limit for that type is 2MB", + message: "Invalid config: FileSizeMismatch", + }); }); it("blocks for too many files", async ({ db }) => { @@ -173,8 +177,8 @@ describe("file route config", () => { expect(res.status).toBe(400); await expect(res.json()).resolves.toEqual({ cause: - "Error: You uploaded 2 file(s) of type 'image', but the limit for that type is 1", - message: "Maximum file count not met", + "Error: You uploaded 2 file(s) of type 'image', but the maximum for that type is 1", + message: "Invalid config: FileCountMismatch", }); }); @@ -194,7 +198,7 @@ describe("file route config", () => { await expect(res.json()).resolves.toEqual({ cause: "Error: You uploaded 1 file(s) of type 'image', but the minimum for that type is 2", - message: "Minimum file count not met", + message: "Invalid config: FileCountMismatch", }); }); }); @@ -215,7 +219,7 @@ describe(".input()", () => { expect(requestSpy).toHaveBeenCalledTimes(0); expect(res.status).toBe(400); await expect(res.json()).resolves.toEqual({ - message: "Invalid input.", + message: "Invalid input", cause: { fieldErrors: {}, formErrors: ["Required"], @@ -239,7 +243,7 @@ describe(".input()", () => { expect(requestSpy).toHaveBeenCalledTimes(0); expect(res.status).toBe(400); await expect(res.json()).resolves.toEqual({ - message: "Invalid input.", + message: "Invalid input", cause: { fieldErrors: { foo: ["Invalid enum value. Expected 'BAR' | 'BAZ', received 'QUX'"], @@ -316,7 +320,7 @@ describe(".middleware()", () => { await expect(res.json()).resolves.toEqual({ cause: 'TypeError: Headers.get: "i dont exist" is an invalid header name.', - message: "Failed to run middleware.", + message: "Failed to run middleware", }); }); }); @@ -428,3 +432,29 @@ describe(".onUploadComplete()", () => { expect(uploadCompleteMock).not.toHaveBeenCalled(); }); }); + +describe("bad request handling", () => { + it("throws a more descriptive error instead of ParseError for bad request", async ({ + db, + }) => { + useBadUTApi(); + + const res = await handlers.POST( + new Request(createApiUrl("imageUploader", "upload"), { + method: "POST", + headers: baseHeaders, + body: JSON.stringify({ + files: [{ name: "foo.png", size: 48, type: "image/png" }], + }), + }), + ); + expect(res.status).toBe(500); + await expect(res.json()).resolves.toEqual({ + message: + "Request to https://uploadthing.com/api/prepareUpload failed with status 404", + data: { error: "Not found" }, + cause: + "BadRequestError: Request to https://uploadthing.com/api/prepareUpload failed with status 404", + }); + }); +}); diff --git a/packages/uploadthing/test/sdk.test.ts b/packages/uploadthing/test/sdk.test.ts index e0cfcbe78..ef9b370c1 100644 --- a/packages/uploadthing/test/sdk.test.ts +++ b/packages/uploadthing/test/sdk.test.ts @@ -5,24 +5,6 @@ import { UTApi, UTFile } from "../src/sdk"; import type { UploadFileResult } from "../src/sdk/types"; import { it, requestSpy } from "./__test-helpers"; -describe("UTFile", () => { - it("can be constructed using Blob", async () => { - const blob = new Blob(["foo"], { type: "text/plain" }); - const file = new UTFile([blob], "foo.txt"); - expect(file.type).toBe("text/plain"); - await expect(file.text()).resolves.toBe("foo"); - - const fileWithId = new UTFile([blob], "foo.txt", { customId: "foo" }); - expect(fileWithId.customId).toBe("foo"); - }); - - it("can be constructed using string", async () => { - const file = new UTFile(["foo"], "foo.txt"); - expect(file.type).toBe("text/plain"); - await expect(file.text()).resolves.toBe("foo"); - }); -}); - describe("uploadFiles", () => { const fooFile = new File(["foo"], "foo.txt", { type: "text/plain" }); @@ -64,6 +46,7 @@ describe("uploadFiles", () => { body: null, headers: { "x-uploadthing-api-key": "sk_foo", + "x-uploadthing-be-adapter": "server-sdk", "x-uploadthing-version": expect.stringMatching(/\d+\.\d+\.\d+/), }, method: "GET", @@ -339,7 +322,7 @@ describe("uploadFilesFromUrl", () => { describe("constructor throws if no apiKey or secret is set", () => { it("no secret or apikey", () => { expect(() => new UTApi()).toThrowErrorMatchingInlineSnapshot( - `[Error: Missing \`UPLOADTHING_SECRET\` env variable.]`, + `[UploadThingError: Missing or invalid API key. API keys must start with \`sk_\`.]`, ); }); it("env is set", () => { @@ -418,7 +401,7 @@ describe("getSignedURL", () => { // @ts-expect-error - intentionally passing invalid expiresIn utapi.getSignedURL("foo", { expiresIn: "something" }), ).rejects.toThrowErrorMatchingInlineSnapshot( - `[Error: expiresIn must be a valid time string, for example '1d', '2 days', or a number of seconds.]`, + `[UploadThingError: expiresIn must be a valid time string, for example '1d', '2 days', or a number of seconds.]`, ); expect(requestSpy).toHaveBeenCalledTimes(0); }); @@ -428,7 +411,7 @@ describe("getSignedURL", () => { await expect(() => utapi.getSignedURL("foo", { expiresIn: "10 days" }), ).rejects.toThrowErrorMatchingInlineSnapshot( - `[Error: expiresIn must be less than 7 days (604800 seconds).]`, + `[UploadThingError: expiresIn must be less than 7 days (604800 seconds).]`, ); expect(requestSpy).toHaveBeenCalledTimes(0); }); diff --git a/packages/uploadthing/test/upload-builder.test.ts b/packages/uploadthing/test/upload-builder.test.ts index 8148473da..e9fd69662 100644 --- a/packages/uploadthing/test/upload-builder.test.ts +++ b/packages/uploadthing/test/upload-builder.test.ts @@ -141,7 +141,7 @@ it("smoke", async () => { .middleware((opts) => { expect(opts.input).toEqual({ foo: "bar" }); expectTypeOf<{ foo: string }>(opts.input); - expectTypeOf<{ name: string; size: number }[]>(opts.files); + expectTypeOf(opts.files); const header1 = opts.req.headers.get("header1"); diff --git a/packages/uploadthing/test/ut-file.test.ts b/packages/uploadthing/test/ut-file.test.ts new file mode 100644 index 000000000..2a4133291 --- /dev/null +++ b/packages/uploadthing/test/ut-file.test.ts @@ -0,0 +1,21 @@ +import { describe, expect, it } from "vitest"; + +import { UTFile } from "../src/sdk/ut-file"; + +describe("UTFile", () => { + it("can be constructed using Blob", async () => { + const blob = new Blob(["foo"], { type: "text/plain" }); + const file = new UTFile([blob], "foo.txt"); + expect(file.type).toBe("text/plain"); + await expect(file.text()).resolves.toBe("foo"); + + const fileWithId = new UTFile([blob], "foo.txt", { customId: "foo" }); + expect(fileWithId.customId).toBe("foo"); + }); + + it("can be constructed using string", async () => { + const file = new UTFile(["foo"], "foo.txt"); + expect(file.type).toBe("text/plain"); + await expect(file.text()).resolves.toBe("foo"); + }); +}); diff --git a/packages/vue/CHANGELOG.md b/packages/vue/CHANGELOG.md new file mode 100644 index 000000000..310c83726 --- /dev/null +++ b/packages/vue/CHANGELOG.md @@ -0,0 +1,34 @@ +# @uploadthing/vue + +## 6.5.3 + +### Patch Changes + +- Updated dependencies [[`a1481a2`](https://github.com/pingdotgg/uploadthing/commit/a1481a2ae1221dc7e1091a364c8efd7fa3035544)]: + - @uploadthing/shared@6.7.3 + +## 6.5.2 + +### Patch Changes + +- Updated dependencies [[`69165fc`](https://github.com/pingdotgg/uploadthing/commit/69165fc4b4e4b02fe27e02d1991ea2cd3ae45c8a), [`6da018b`](https://github.com/pingdotgg/uploadthing/commit/6da018bfd4f2812ad81f36a7e3c9e3567c435b0b)]: + - @uploadthing/shared@6.7.2 + +## 6.5.1 + +### Patch Changes + +- Updated dependencies [[`594ae8a`](https://github.com/pingdotgg/uploadthing/commit/594ae8ae214ff717937c4787a3b8d1bd40b832cc), [`594ae8a`](https://github.com/pingdotgg/uploadthing/commit/594ae8ae214ff717937c4787a3b8d1bd40b832cc), [`0abfa03`](https://github.com/pingdotgg/uploadthing/commit/0abfa031d108edead78d9b71a61d2bfb7ad53a64)]: + - @uploadthing/shared@6.7.1 + +## 6.5.0 + +### Minor Changes + +- [#293](https://github.com/pingdotgg/uploadthing/pull/293) [`09870e4`](https://github.com/pingdotgg/uploadthing/commit/09870e43f310c15e48f0089e875c6d9663fd305b) Thanks [@markflorkowski](https://github.com/markflorkowski)! - feat: vue and nuxt support! + +### Patch Changes + +- Updated dependencies [[`9b93886`](https://github.com/pingdotgg/uploadthing/commit/9b938860d49a1a593e38804f81c759925d713605), [`ea7e41b`](https://github.com/pingdotgg/uploadthing/commit/ea7e41b5d9d85135540d9b51fa5551859fbe7623), [`41de3c5`](https://github.com/pingdotgg/uploadthing/commit/41de3c55c8bd808166449c09e9006650178067d5), [`09870e4`](https://github.com/pingdotgg/uploadthing/commit/09870e43f310c15e48f0089e875c6d9663fd305b)]: + - @uploadthing/dropzone@0.4.0 + - @uploadthing/shared@6.7.0 diff --git a/packages/vue/README.md b/packages/vue/README.md new file mode 100644 index 000000000..65d10e38a --- /dev/null +++ b/packages/vue/README.md @@ -0,0 +1,55 @@ +# @uploadthing/vue + +Learn more: [docs.uploadthing.com](https://docs.uploadthing.com) + +## Example + +```ts +// utils/uploadthing.ts +import { + generateUploadButton, + generateUploadDropzone, + generateVueHelpers, +} from "@uploadthing/vue"; + +export const UploadButton = generateUploadButton(); +export const UploadDropzone = generateUploadDropzone(); + +export const { useUploadThing } = generateVueHelpers(); +``` + +```vue + + + +``` diff --git a/packages/vue/package.json b/packages/vue/package.json new file mode 100644 index 000000000..435c4e42f --- /dev/null +++ b/packages/vue/package.json @@ -0,0 +1,91 @@ +{ + "name": "@uploadthing/vue", + "version": "6.5.3", + "type": "module", + "license": "MIT", + "main": "./dist/index.cjs", + "module": "./dist/index.js", + "types": "./dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + "./styles.css": "./dist/index.css", + ".": { + "import": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + }, + "require": { + "types": "./dist/index.d.cts", + "default": "./dist/index.cjs" + } + } + }, + "files": [ + "dist" + ], + "publishConfig": { + "access": "public" + }, + "scripts": { + "build:css": "tailwindcss -i ./src/styles.css -o ./dist/index.css --minify", + "build:js": "bunchee --tsconfig tsconfig.build.json && bun build:css", + "build": "bun build:js && bun build:css", + "dev:css": "tailwindcss -i ./src/styles.css -o ./dist/index.css --watch", + "dev:js": "wait-on ../uploadthing/server/index.d.ts && bunchee -w --tsconfig tsconfig.build.json --no-clean", + "dev": "conc npm:dev:*", + "clean": "git clean -xdf dist node_modules", + "lint": "eslint src --max-warnings 0", + "prepack": "bun ../../.github/replace-workspace-protocol.ts", + "typecheck": "tsc --noEmit" + }, + "dependencies": { + "@uploadthing/dropzone": "workspace:*", + "@uploadthing/shared": "workspace:*", + "@vueuse/core": "^10.9.0", + "file-selector": "^0.6.0", + "tailwind-merge": "^2.2.1" + }, + "devDependencies": { + "@uploadthing/eslint-config": "workspace:*", + "@uploadthing/tsconfig": "workspace:*", + "bunchee": "^5.1.2", + "concurrently": "^8.2.2", + "tailwindcss": "^3.4.1", + "typescript": "^5.4.5", + "uploadthing": "workspace:*", + "vue": "^3.4.21", + "wait-on": "^7.2.0" + }, + "peerDependencies": { + "uploadthing": "^6.10.0", + "vue": "^3.4.0" + }, + "eslintConfig": { + "root": true, + "rules": { + "no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": [ + "@uploadthing/vue", + "@uploadthing/vue/*" + ], + "message": "Use relative src imports instead" + } + ], + "paths": [ + { + "name": "effect", + "message": "Use alias imports instead (import * as X from \"effect/X\")" + } + ] + } + ] + }, + "extends": [ + "@uploadthing/eslint-config/base" + ] + } +} diff --git a/packages/vue/src/components/button.tsx b/packages/vue/src/components/button.tsx new file mode 100644 index 000000000..6f43f41ab --- /dev/null +++ b/packages/vue/src/components/button.tsx @@ -0,0 +1,329 @@ +import { twMerge } from "tailwind-merge"; +import * as Vue from "vue"; +import { computed, reactive, ref } from "vue"; + +import type { ContentField, StyleField } from "@uploadthing/shared"; +import { + allowedContentTextLabelGenerator, + contentFieldToContent, + generateMimeTypes, + generatePermittedFileTypes, + getFilesFromClipboardEvent, + resolveMaybeUrlArg, + styleFieldToClassName, + styleFieldToCssObject, +} from "@uploadthing/shared"; +import type { FileRouter } from "uploadthing/server"; + +import type { + GenerateTypedHelpersOptions, + UploadthingComponentProps, + UseUploadthingProps, +} from "../types"; +import { INTERNAL_uploadthingHookGen } from "../useUploadThing"; +import { progressWidths, Spinner, usePaste } from "./shared"; + +export type ButtonStyleFieldCallbackArgs = { + __runtime: "vue"; + ready: boolean; + isUploading: boolean; + uploadProgress: number; + fileTypes: string[]; +}; + +export type ButtonAppearance = { + container?: StyleField; + button?: StyleField; + allowedContent?: StyleField; + clearBtn?: StyleField; +}; + +export type ButtonContent = { + button?: ContentField; + allowedContent?: ContentField; + clearBtn?: ContentField; +}; + +export type UploadButtonProps< + TRouter extends FileRouter, + TEndpoint extends keyof TRouter, + TSkipPolling extends boolean = false, +> = UploadthingComponentProps & { + /** + * @see https://docs.uploadthing.com/theming#style-using-the-classname-prop + */ + class?: string; + /** + * @see https://docs.uploadthing.com/theming#style-using-the-appearance-prop + */ + appearance?: ButtonAppearance; + /** + * @see https://docs.uploadthing.com/theming#content-customisation + */ + content?: ButtonContent; +}; + +export const generateUploadButton = ( + initOpts?: GenerateTypedHelpersOptions, +) => { + const useUploadThing = INTERNAL_uploadthingHookGen({ + url: resolveMaybeUrlArg(initOpts?.url), + }); + + return Vue.defineComponent( + < + TEndpoint extends keyof TRouter, + TSkipPolling extends boolean = false, + >(props: { + config: UploadButtonProps; + }) => { + const $props = props.config; + + const { mode = "auto", appendOnPaste = false } = $props.config ?? {}; + + const fileInputRef = ref(null); + const uploadProgress = ref(0); + const files = ref([]); + + const useUploadthingProps: UseUploadthingProps< + TRouter, + TEndpoint, + TSkipPolling + > = reactive({ + headers: $props.headers, + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + skipPolling: !$props?.onClientUploadComplete + ? true + : ($props?.skipPolling as any), + onClientUploadComplete: (res) => { + if (fileInputRef.value) { + fileInputRef.value.value = ""; + } + files.value = []; + $props.onClientUploadComplete?.(res); + uploadProgress.value = 0; + }, + onUploadProgress: (p) => { + uploadProgress.value = p; + $props.onUploadProgress?.(p); + }, + onUploadError: $props.onUploadError, + onUploadBegin: $props.onUploadBegin, + onBeforeUploadBegin: $props.onBeforeUploadBegin, + }); + + const { startUpload, isUploading, permittedFileInfo } = useUploadThing( + $props.endpoint, + useUploadthingProps, + ); + + const permittedFileTypes = computed(() => + generatePermittedFileTypes(permittedFileInfo.value?.config), + ); + + const inputProps = computed(() => ({ + type: "file", + ref: fileInputRef, + multiple: permittedFileTypes.value.multiple, + accept: generateMimeTypes(permittedFileTypes.value.fileTypes).join( + ", ", + ), + disabled: permittedFileTypes.value.fileTypes.length === 0, + tabindex: permittedFileTypes.value.fileTypes.length === 0 ? -1 : 0, + onChange: (e: Event) => { + if (!e.target) return; + const { files: selectedFiles } = e.target as HTMLInputElement; + if (!selectedFiles) return; + + if (mode === "manual") { + files.value = Array.from(selectedFiles); + return; + } + + const input = "input" in $props ? $props.input : undefined; + void startUpload(files.value, input); + }, + })); + + const state = computed(() => { + if (inputProps.value.disabled) return "readying"; + if (!inputProps.value.disabled && !isUploading.value) return "ready"; + return "uploading"; + }); + + usePaste((event) => { + if (!appendOnPaste) return; + if (document.activeElement !== fileInputRef.value) return; + + const pastedFiles = getFilesFromClipboardEvent(event); + if (!pastedFiles) return; + + files.value = [...files.value, ...pastedFiles]; + + if (mode === "auto") { + const input = "input" in $props ? $props.input : undefined; + void startUpload(files.value, input); + } + }); + + const styleFieldArg = computed( + () => + ({ + ready: state.value === "ready", + isUploading: state.value === "uploading", + uploadProgress: uploadProgress.value, + fileTypes: permittedFileTypes.value.fileTypes, + }) as ButtonStyleFieldCallbackArgs, + ); + + const renderButton = () => { + const customContent = contentFieldToContent( + $props.content?.button, + styleFieldArg.value, + ); + if (customContent) return customContent; + + if (state.value === "readying") { + return "Loading..."; + } + + if (state.value !== "uploading") { + if (mode === "manual" && files.value.length > 0) { + return `Upload ${files.value.length} file${ + files.value.length > 1 ? "s" : "" + }`; + } + return `Choose File${permittedFileTypes.value.multiple ? `(s)` : ``}`; + } + + if (uploadProgress.value === 100) { + return ; + } + + return {uploadProgress.value}%; + }; + + const renderClearButton = () => ( + + ); + + const renderAllowedContent = () => ( +
+ {contentFieldToContent( + $props.content?.allowedContent, + styleFieldArg.value, + ) ?? + allowedContentTextLabelGenerator(permittedFileInfo.value?.config)} +
+ ); + + const labelClass = computed(() => + twMerge( + "relative flex h-10 w-36 cursor-pointer items-center justify-center overflow-hidden rounded-md text-white after:transition-[width] after:duration-500 focus-within:ring-2 focus-within:ring-blue-600 focus-within:ring-offset-2", + state.value === "readying" && "cursor-not-allowed bg-blue-400", + state.value === "uploading" && + `bg-blue-400 after:absolute after:left-0 after:h-full after:bg-blue-600 after:content-[''] ${ + progressWidths[uploadProgress.value] + }`, + state.value === "ready" && "bg-blue-600", + styleFieldToClassName($props.appearance?.button, styleFieldArg.value), + ), + ); + const containerClass = computed(() => + twMerge( + "flex flex-col items-center justify-center gap-1", + $props.class, + styleFieldToClassName( + $props.appearance?.container, + styleFieldArg.value, + ), + ), + ); + + const containerStyle = computed(() => + styleFieldToCssObject( + $props.appearance?.container, + styleFieldArg.value, + ), + ); + const labelStyle = computed(() => + styleFieldToCssObject($props.appearance?.button, styleFieldArg.value), + ); + + return () => { + return ( +
+ + {mode === "manual" && files.value.length > 0 + ? renderClearButton() + : renderAllowedContent()} +
+ ); + }; + }, + { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + props: ["config"] as any, + }, + ); +}; diff --git a/packages/vue/src/components/dropzone.tsx b/packages/vue/src/components/dropzone.tsx new file mode 100644 index 000000000..ab701a98a --- /dev/null +++ b/packages/vue/src/components/dropzone.tsx @@ -0,0 +1,390 @@ +import { twMerge } from "tailwind-merge"; +import * as Vue from "vue"; +import { computed, reactive, ref, watch } from "vue"; + +import type { DropzoneOptions } from "@uploadthing/dropzone/vue"; +import { useDropzone } from "@uploadthing/dropzone/vue"; +import type { ContentField, StyleField } from "@uploadthing/shared"; +import { + allowedContentTextLabelGenerator, + contentFieldToContent, + generateClientDropzoneAccept, + generatePermittedFileTypes, + getFilesFromClipboardEvent, + resolveMaybeUrlArg, + styleFieldToClassName, + styleFieldToCssObject, +} from "@uploadthing/shared"; +import type { FileRouter } from "uploadthing/server"; + +import type { + GenerateTypedHelpersOptions, + UploadthingComponentProps, + UseUploadthingProps, +} from "../types"; +import { INTERNAL_uploadthingHookGen } from "../useUploadThing"; +import { progressWidths, Spinner, usePaste } from "./shared"; + +export type DropzoneStyleFieldCallbackArgs = { + __runtime: "vue"; + ready: boolean; + isUploading: boolean; + uploadProgress: number; + fileTypes: string[]; + isDragActive: boolean; +}; + +export type DropzoneAppearance = { + container?: StyleField; + uploadIcon?: StyleField; + label?: StyleField; + allowedContent?: StyleField; + button?: StyleField; +}; + +export type DropzoneContent = { + uploadIcon?: ContentField; + label?: ContentField; + allowedContent?: ContentField; + button?: ContentField; +}; + +export type UploadDropzoneProps< + TRouter extends FileRouter, + TEndpoint extends keyof TRouter, + TSkipPolling extends boolean = false, +> = UploadthingComponentProps & { + /** + * @see https://docs.uploadthing.com/theming#style-using-the-classname-prop + */ + class?: string; + /** + * @see https://docs.uploadthing.com/theming#style-using-the-appearance-prop + */ + appearance?: DropzoneAppearance; + /** + * @see https://docs.uploadthing.com/theming#content-customisation + */ + content?: DropzoneContent; +}; + +export const generateUploadDropzone = ( + initOpts?: GenerateTypedHelpersOptions, +) => { + const useUploadThing = INTERNAL_uploadthingHookGen({ + url: resolveMaybeUrlArg(initOpts?.url), + }); + + return Vue.defineComponent( + < + TEndpoint extends keyof TRouter, + TSkipPolling extends boolean = false, + >(props: { + config: UploadDropzoneProps; + }) => { + const $props = props.config; + + const { mode = "auto", appendOnPaste = false } = $props.config ?? {}; + + const files = ref([]); + const uploadProgress = ref(0); + + const useUploadthingProps: UseUploadthingProps< + TRouter, + TEndpoint, + TSkipPolling + > = reactive({ + headers: $props.headers, + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + skipPolling: !$props?.onClientUploadComplete + ? true + : ($props?.skipPolling as any), + onClientUploadComplete: (res) => { + files.value = []; + $props.onClientUploadComplete?.(res); + uploadProgress.value = 0; + }, + onUploadProgress: (p) => { + uploadProgress.value = p; + $props.onUploadProgress?.(p); + }, + onUploadError: $props.onUploadError, + onUploadBegin: $props.onUploadBegin, + onBeforeUploadBegin: $props.onBeforeUploadBegin, + }); + const { startUpload, isUploading, permittedFileInfo } = useUploadThing( + $props.endpoint, + useUploadthingProps, + ); + + const permittedFileTypes = computed(() => + generatePermittedFileTypes(permittedFileInfo.value?.config), + ); + const acceptedFileTypes = computed(() => + generateClientDropzoneAccept(permittedFileTypes.value.fileTypes), + ); + + const onDrop = (acceptedFiles: File[]) => { + if (acceptedFiles === null) return; + files.value = acceptedFiles; + + // If mode is auto, start upload immediately. + if (mode === "auto") { + const input = "input" in $props ? $props.input : undefined; + void startUpload(acceptedFiles, input); + return; + } + }; + + const dropzoneOptions: DropzoneOptions = reactive({ + onDrop: onDrop, + accept: acceptedFileTypes.value, + multiple: permittedFileTypes.value.multiple, + disabled: permittedFileTypes.value.fileTypes.length === 0, + }); + watch( + () => acceptedFileTypes.value, + (newVal) => { + dropzoneOptions.accept = newVal; + }, + ); + watch( + () => permittedFileTypes.value, + (newVal) => { + dropzoneOptions.multiple = newVal.multiple; + dropzoneOptions.disabled = newVal.fileTypes.length === 0; + }, + ); + const { getRootProps, getInputProps, isDragActive, rootRef } = + useDropzone(dropzoneOptions); + + const state = computed(() => { + if (dropzoneOptions.disabled) return "readying"; + if (!dropzoneOptions.disabled && !isUploading.value) return "ready"; + return "uploading"; + }); + + usePaste((event) => { + if (!appendOnPaste) return; + if (document.activeElement !== rootRef.value) return; + + const pastedFiles = getFilesFromClipboardEvent(event); + if (!pastedFiles) return; + + files.value = [...files.value, ...pastedFiles]; + + if (mode === "auto") { + const input = "input" in $props ? $props.input : undefined; + void startUpload(files.value, input); + } + }); + + const styleFieldArg = computed( + () => + ({ + ready: state.value === "ready", + isUploading: state.value === "uploading", + uploadProgress: uploadProgress.value, + fileTypes: permittedFileTypes.value.fileTypes, + isDragActive: isDragActive.value, + }) as DropzoneStyleFieldCallbackArgs, + ); + + const renderUploadIcon = () => { + const customContent = contentFieldToContent( + $props.content?.uploadIcon, + styleFieldArg.value, + ); + if (customContent) return customContent; + + return ( + + + + ); + }; + + const labelContent = computed(() => { + const customContent = contentFieldToContent( + $props.content?.label, + styleFieldArg.value, + ); + if (customContent) return customContent; + + if (state.value === "readying") { + return `Loading...`; + } + + return `Choose files or drag and drop`; + }); + + const renderAllowedContent = () => { + const customContent = contentFieldToContent( + $props.content?.allowedContent, + styleFieldArg.value, + ); + if (customContent) return customContent; + + return ( + allowedContentTextLabelGenerator(permittedFileInfo.value?.config) || + " " // ensure no empty string + ); + }; + + const buttonContent = computed(() => { + const customContent = contentFieldToContent( + $props.content?.button, + styleFieldArg.value, + ); + if (customContent) return customContent; + + if (state.value !== "uploading") { + if (files.value.length > 0) { + return `Upload ${files.value.length} file${files.value.length === 1 ? "" : "s"}`; + } + if (permittedFileTypes.value.fileTypes.length === 0) { + return "Loading..."; + } + return `Choose File${permittedFileTypes.value.multiple ? `(s)` : ``}`; + } + + if (uploadProgress.value === 100) { + return ; + } + + return {`${uploadProgress.value}%`}; + }); + + const containerClass = computed(() => + twMerge( + "mt-2 flex flex-col items-center justify-center rounded-lg border border-dashed border-gray-900/25 px-6 py-10 text-center", + isDragActive.value && "bg-blue-600/10", + $props.class, + styleFieldToClassName( + $props.appearance?.container, + styleFieldArg.value, + ), + ), + ); + const labelClass = computed(() => + twMerge( + "relative mt-4 flex w-64 cursor-pointer items-center justify-center text-sm font-semibold leading-6 text-gray-600 focus-within:outline-none focus-within:ring-2 focus-within:ring-blue-600 focus-within:ring-offset-2 hover:text-blue-500", + state.value === "ready" ? "text-blue-600" : "text-gray-500", + styleFieldToClassName($props.appearance?.label, styleFieldArg.value), + ), + ); + const allowedContentClass = computed(() => + twMerge( + "m-0 h-[1.25rem] text-xs leading-5 text-gray-600", + styleFieldToClassName( + $props.appearance?.allowedContent, + styleFieldArg.value, + ), + ), + ); + const buttonClass = computed(() => + twMerge( + "relative mt-4 flex h-10 w-36 cursor-pointer items-center justify-center overflow-hidden rounded-md border-none text-base text-white after:transition-[width] after:duration-500 focus-within:ring-2 focus-within:ring-blue-600 focus-within:ring-offset-2", + state.value === "readying" && "cursor-not-allowed bg-blue-400", + state.value === "uploading" && + `bg-blue-400 after:absolute after:left-0 after:h-full after:bg-blue-600 after:content-[''] ${progressWidths[uploadProgress.value]}`, + state.value === "ready" && "bg-blue-600", + "disabled:pointer-events-none", + styleFieldToClassName($props.appearance?.button, styleFieldArg.value), + ), + ); + + const containerStyle = computed(() => + styleFieldToCssObject( + $props.appearance?.container, + styleFieldArg.value, + ), + ); + const labelStyle = computed(() => + styleFieldToCssObject($props.appearance?.label, styleFieldArg.value), + ); + const allowedContentStyle = computed(() => + styleFieldToCssObject( + $props.appearance?.allowedContent, + styleFieldArg.value, + ), + ); + const buttonStyle = computed(() => + styleFieldToCssObject($props.appearance?.button, styleFieldArg.value), + ); + + return () => { + return ( +
+ {renderUploadIcon()} + +
+ {renderAllowedContent()} +
+ + +
+ ); + }; + }, + { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + props: ["config"] as any, + }, + ); +}; diff --git a/packages/vue/src/components/shared.tsx b/packages/vue/src/components/shared.tsx new file mode 100644 index 000000000..2a03a108d --- /dev/null +++ b/packages/vue/src/components/shared.tsx @@ -0,0 +1,41 @@ +import * as Vue from "vue"; +import { onMounted, onUnmounted } from "vue"; + +export const usePaste = (callback: (e: ClipboardEvent) => void) => { + onMounted(() => { + document.addEventListener("paste", callback); + }); + onUnmounted(() => { + document.removeEventListener("paste", callback); + }); +}; + +export const Spinner = Vue.defineComponent(() => () => { + return ( + + + + ); +}); + +export const progressWidths: Record = { + 0: "after:w-0", + 10: "after:w-[10%]", + 20: "after:w-[20%]", + 30: "after:w-[30%]", + 40: "after:w-[40%]", + 50: "after:w-[50%]", + 60: "after:w-[60%]", + 70: "after:w-[70%]", + 80: "after:w-[80%]", + 90: "after:w-[90%]", + 100: "after:w-[100%]", +}; diff --git a/packages/vue/src/index.ts b/packages/vue/src/index.ts new file mode 100644 index 000000000..707a133c6 --- /dev/null +++ b/packages/vue/src/index.ts @@ -0,0 +1,8 @@ +export * from "./components/button"; +export * from "./components/dropzone"; +export * from "./useUploadThing"; + +export type * from "./types"; + +export { useDropzone } from "@uploadthing/dropzone/vue"; +export type * from "@uploadthing/dropzone/vue"; diff --git a/packages/vue/src/styles.css b/packages/vue/src/styles.css new file mode 100644 index 000000000..b5c61c956 --- /dev/null +++ b/packages/vue/src/styles.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/packages/vue/src/types.ts b/packages/vue/src/types.ts new file mode 100644 index 000000000..0b011cf41 --- /dev/null +++ b/packages/vue/src/types.ts @@ -0,0 +1,102 @@ +import type { + ExtendObjectIf, + MaybePromise, + UploadThingError, +} from "@uploadthing/shared"; +import type { + ClientUploadedFileData, + FileRouter, + inferEndpointInput, + inferEndpointOutput, + inferErrorShape, +} from "uploadthing/types"; + +export interface GenerateTypedHelpersOptions { + /** + * URL to the UploadThing API endpoint + * @example "/api/uploadthing" + * @example "https://www.example.com/api/uploadthing" + * + * If relative, host will be inferred from either the `VERCEL_URL` environment variable or `window.location.origin` + * + * @default (VERCEL_URL ?? window.location.origin) + "/api/uploadthing" + */ + url?: string | URL; +} + +export type UseUploadthingProps< + TRouter extends FileRouter, + TEndpoint extends keyof TRouter, + TSkipPolling extends boolean = false, + TServerOutput = false extends TSkipPolling + ? inferEndpointOutput + : null, +> = { + /** + * Called when the upload is submitted and the server is about to be queried for presigned URLs + * Can be used to modify the files before they are uploaded, e.g. renaming them + */ + onBeforeUploadBegin?: + | ((files: File[]) => Promise | File[]) + | undefined; + /** + * Called when presigned URLs have been retrieved and the file upload is about to begin + */ + onUploadBegin?: ((fileName: string) => void) | undefined; + /** + * Called continuously as the file is uploaded to the storage provider + */ + onUploadProgress?: ((p: number) => void) | undefined; + /** + * Skip polling for server data after upload is complete + * Useful if you want faster response times and don't need + * any data returned from the server `onUploadComplete` callback + * @default false + */ + skipPolling?: TSkipPolling; + /** + * Called when the file uploads are completed + * - If `skipPolling` is `true`, this will be called once + * all the files are uploaded to the storage provider. + * - If `skipPolling` is `false`, this will be called after + * the serverside `onUploadComplete` callback has finished + */ + onClientUploadComplete?: + | ((res: ClientUploadedFileData[]) => void) + | undefined; + /** + * Called if the upload fails + */ + onUploadError?: + | ((e: UploadThingError>) => void) + | undefined; + /** + * Set custom headers that'll get sent with requests + * to your server + */ + headers?: (HeadersInit | (() => MaybePromise)) | undefined; +}; + +export type UploadthingComponentProps< + TRouter extends FileRouter, + TEndpoint extends keyof TRouter, + TSkipPolling extends boolean = false, +> = UseUploadthingProps & { + /** + * The endpoint from your FileRouter to use for the upload + */ + endpoint: TEndpoint; + config?: { + mode?: "auto" | "manual"; + appendOnPaste?: boolean; + }; +} & ExtendObjectIf< + inferEndpointInput, + { + /** + * The input to the endpoint, as defined using `.input()` on the FileRouter endpoint + * @see https://docs.uploadthing.com/api-reference/server#input + */ + input: inferEndpointInput; + } + >; diff --git a/packages/vue/src/useUploadThing.ts b/packages/vue/src/useUploadThing.ts new file mode 100644 index 000000000..f1937fd01 --- /dev/null +++ b/packages/vue/src/useUploadThing.ts @@ -0,0 +1,151 @@ +import { useFetch } from "@vueuse/core"; +import { computed, ref } from "vue"; + +import type { EndpointMetadata } from "@uploadthing/shared"; +import { + INTERNAL_DO_NOT_USE__fatalClientError, + resolveMaybeUrlArg, + UploadThingError, +} from "@uploadthing/shared"; +import { genUploader } from "uploadthing/client"; +import type { + FileRouter, + inferEndpointInput, + inferErrorShape, +} from "uploadthing/types"; + +import type { GenerateTypedHelpersOptions, UseUploadthingProps } from "./types"; +import { useEvent } from "./utils/useEvent"; + +export type { + EndpointMetadata, + ExpandedRouteConfig, +} from "@uploadthing/shared"; + +const useEndpointMetadata = (url: URL, endpoint: string) => { + // TODO: useState with server-inserted data to skip fetch on client + const { data } = useFetch(url.href); + return computed(() => { + if (!data.value) return undefined; + const endpointData = + typeof data.value === "string" + ? (JSON.parse(data.value) as EndpointMetadata) + : (data.value as EndpointMetadata); + return endpointData?.find((x) => x.slug === endpoint); + }); +}; + +export const INTERNAL_uploadthingHookGen = < + TRouter extends FileRouter, +>(initOpts: { + /** + * URL to the UploadThing API endpoint + * @example URL { http://localhost:3000/api/uploadthing } + * @example URL { https://www.example.com/api/uploadthing } + */ + url: URL; +}) => { + const uploadFiles = genUploader({ + url: initOpts.url, + package: "@uploadthing/vue", + }); + + const useUploadThing = < + TEndpoint extends keyof TRouter, + TSkipPolling extends boolean = false, + >( + endpoint: TEndpoint, + opts?: UseUploadthingProps, + ) => { + const isUploading = ref(false); + const uploadProgress = ref(0); + const fileProgress = ref(new Map()); + + const permittedFileInfo = useEndpointMetadata( + initOpts.url, + endpoint as string, + ); + + type InferredInput = inferEndpointInput; + type FuncInput = undefined extends InferredInput + ? [files: File[], input?: undefined] + : [files: File[], input: InferredInput]; + + const startUpload = useEvent(async (...args: FuncInput) => { + const files = (await opts?.onBeforeUploadBegin?.(args[0])) ?? args[0]; + const input = args[1]; + + isUploading.value = true; + opts?.onUploadProgress?.(0); + try { + const res = await uploadFiles(endpoint, { + headers: opts?.headers, + files, + skipPolling: opts?.skipPolling, + onUploadProgress: (progress) => { + if (!opts?.onUploadProgress) return; + fileProgress.value.set(progress.file, progress.progress); + let sum = 0; + fileProgress.value.forEach((p) => { + sum += p; + }); + const averageProgress = + Math.floor(sum / fileProgress.value.size / 10) * 10; + if (averageProgress !== uploadProgress.value) { + opts.onUploadProgress(averageProgress); + uploadProgress.value = averageProgress; + } + }, + onUploadBegin({ file }) { + if (!opts?.onUploadBegin) return; + + opts.onUploadBegin(file); + }, + // @ts-expect-error - input may not be defined on the type + input, + }); + + opts?.onClientUploadComplete?.(res); + return res; + } catch (e) { + let error: UploadThingError>; + if (e instanceof UploadThingError) { + error = e as UploadThingError>; + } else { + error = INTERNAL_DO_NOT_USE__fatalClientError(e as Error); + console.error( + "Something went wrong. Please contact UploadThing and provide the following cause:", + error.cause instanceof Error ? error.cause.toString() : error.cause, + ); + } + opts?.onUploadError?.(error); + } finally { + isUploading.value = false; + fileProgress.value = new Map(); + uploadProgress.value = 0; + } + }); + + return { + startUpload, + isUploading, + permittedFileInfo, + } as const; + }; + + return useUploadThing; +}; + +export const generateVueHelpers = ( + initOpts?: GenerateTypedHelpersOptions, +) => { + const url = resolveMaybeUrlArg(initOpts?.url); + + return { + useUploadThing: INTERNAL_uploadthingHookGen({ url }), + uploadFiles: genUploader({ + url, + package: "@uploadthing/vue", + }), + }; +}; diff --git a/packages/vue/src/utils/useEvent.ts b/packages/vue/src/utils/useEvent.ts new file mode 100644 index 000000000..8d0a236b5 --- /dev/null +++ b/packages/vue/src/utils/useEvent.ts @@ -0,0 +1,23 @@ +import { onMounted, ref, watch } from "vue"; + +type AnyFunction = (...args: any[]) => any; + +export function useEvent(callback: TCallback) { + const callbackRef = ref(callback); + + // Watch the callbackRef and create a stable reference + watch(callbackRef, () => { + // noop + }); + + // Throw an error if the callback is invoked before mounting + onMounted(() => { + if (callbackRef.value === null) { + throw new Error( + "INVALID_USE_EVENT_INVOCATION: The callback from useEvent cannot be invoked before the component has mounted.", + ); + } + }); + + return callbackRef.value; +} diff --git a/packages/vue/tailwind.config.ts b/packages/vue/tailwind.config.ts new file mode 100644 index 000000000..1077fb8c6 --- /dev/null +++ b/packages/vue/tailwind.config.ts @@ -0,0 +1,8 @@ +import type { Config } from "tailwindcss"; + +export default { + content: ["./src/**/*.{js,ts,jsx,tsx,mdx}"], + corePlugins: { + preflight: false, + }, +} satisfies Config; diff --git a/packages/vue/tsconfig.build.json b/packages/vue/tsconfig.build.json new file mode 100644 index 000000000..d57a38903 --- /dev/null +++ b/packages/vue/tsconfig.build.json @@ -0,0 +1,10 @@ +{ + "extends": "@uploadthing/tsconfig/base.build", + "compilerOptions": { + "jsx": "preserve", + "jsxImportSource": "vue", + "jsxFactory": "Vue.h" + }, + "include": ["src/**/*", "*.ts", "test"], + "exclude": ["node_modules"] +} diff --git a/packages/vue/tsconfig.json b/packages/vue/tsconfig.json new file mode 100644 index 000000000..4326635f5 --- /dev/null +++ b/packages/vue/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "@uploadthing/tsconfig/base", + "compilerOptions": { + "jsx": "preserve", + "jsxImportSource": "vue", + "jsxFactory": "Vue.h" + }, + "include": ["src/**/*", "*.ts", "test"], + "exclude": ["node_modules"] +} diff --git a/playground/package.json b/playground/package.json index 681dc3197..7f6b5a462 100644 --- a/playground/package.json +++ b/playground/package.json @@ -20,8 +20,8 @@ "@radix-ui/react-slot": "^1.0.2", "@radix-ui/react-tabs": "^1.0.4", "@radix-ui/react-tooltip": "^1.0.7", - "@uploadthing/shared": "^6.6.0", - "@uploadthing/react": "6.4.4", + "@uploadthing/shared": "^6.7.3", + "@uploadthing/react": "6.5.3", "class-variance-authority": "^0.7.0", "client-only": "^0.0.1", "next": "14.2.1", @@ -32,7 +32,7 @@ "sonner": "^1.4.41", "tailwind-merge": "^2.2.1", "tailwindcss-animate": "^1.0.7", - "uploadthing": "6.9.0", + "uploadthing": "6.10.3", "zod": "^3.22.4" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b07b79880..9eb01fdae 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -27,13 +27,13 @@ importers: version: 4.2.1(prettier@3.2.5) '@manypkg/cli': specifier: ^0.21.3 - version: 0.21.3 + version: 0.21.4 '@prettier/sync': specifier: ^0.5.1 - version: 0.5.1(prettier@3.2.5) + version: 0.5.2(prettier@3.2.5) '@types/bun': specifier: ^1.0.8 - version: 1.0.12 + version: 1.1.0 '@types/node': specifier: ^20.11.21 version: 20.12.7 @@ -42,7 +42,7 @@ importers: version: link:tooling/eslint-config '@vitest/coverage-v8': specifier: ^1.3.1 - version: 1.4.0(vitest@1.4.0) + version: 1.5.0(vitest@1.5.0) happy-dom: specifier: ^13.6.2 version: 13.10.1 @@ -54,7 +54,7 @@ importers: version: 3.2.5 prettier-plugin-tailwindcss: specifier: ^0.5.11 - version: 0.5.13(@ianvs/prettier-plugin-sort-imports@4.2.1)(prettier@3.2.5) + version: 0.5.14(@ianvs/prettier-plugin-sort-imports@4.2.1)(prettier@3.2.5) turbo: specifier: ^1.13.2 version: 1.13.2 @@ -66,7 +66,7 @@ importers: version: 4.3.2(typescript@5.4.5) vitest: specifier: ^1.3.1 - version: 1.4.0(@types/node@20.12.7)(happy-dom@13.10.1) + version: 1.5.0(@types/node@20.12.7)(happy-dom@13.10.1) docs: dependencies: @@ -75,7 +75,7 @@ importers: version: 1.1.2(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) '@scalar/api-reference-react': specifier: 0.0.4 - version: 0.0.4(postcss@8.4.38)(react@18.2.0)(typescript@5.4.5)(unified@11.0.4)(vue@3.4.21)(yjs@13.6.14) + version: 0.0.4(postcss@8.4.38)(react@18.2.0)(typescript@5.4.5)(unified@11.0.4)(vue@3.4.25)(yjs@13.6.15) '@uploadthing/react': specifier: workspace:* version: link:../packages/react @@ -114,7 +114,7 @@ importers: examples/backend-adapters: dependencies: '@uploadthing/react': - specifier: 6.4.4 + specifier: 6.5.3 version: link:../../packages/react concurrently: specifier: ^8.2.2 @@ -123,17 +123,17 @@ importers: specifier: ^5.4.5 version: 5.4.5 uploadthing: - specifier: 6.9.0 + specifier: 6.10.3 version: link:../../packages/uploadthing devDependencies: '@playwright/test': specifier: 1.42.1 version: 1.42.1 - examples/backend-adapters/client: + examples/backend-adapters/client-react: dependencies: '@uploadthing/react': - specifier: 6.4.4 + specifier: 6.5.3 version: link:../../../packages/react react: specifier: 18.2.0 @@ -142,7 +142,7 @@ importers: specifier: 18.2.0 version: 18.2.0(react@18.2.0) uploadthing: - specifier: 6.9.0 + specifier: 6.10.3 version: link:../../../packages/uploadthing devDependencies: '@types/react': @@ -153,13 +153,51 @@ importers: version: 18.2.25 '@vitejs/plugin-react-swc': specifier: ^3.6.0 - version: 3.6.0(vite@5.2.8) + version: 3.6.0(vite@5.2.10) typescript: specifier: ^5.4.5 version: 5.4.5 vite: specifier: ^5.1.4 - version: 5.2.8(@types/node@20.12.7) + version: 5.2.10(@types/node@20.12.7) + + examples/backend-adapters/client-vanilla: + dependencies: + uploadthing: + specifier: 6.10.3 + version: link:../../../packages/uploadthing + devDependencies: + typescript: + specifier: ^5.4.5 + version: 5.4.5 + vite: + specifier: ^5.1.4 + version: 5.2.10(@types/node@20.12.7) + + examples/backend-adapters/client-vue: + dependencies: + '@uploadthing/vue': + specifier: 6.5.3 + version: link:../../../packages/vue + uploadthing: + specifier: 6.10.3 + version: link:../../../packages/uploadthing + vue: + specifier: ^3.4.21 + version: 3.4.24(typescript@5.4.5) + devDependencies: + '@vitejs/plugin-vue': + specifier: ^5.0.4 + version: 5.0.4(vite@5.2.10)(vue@3.4.24) + typescript: + specifier: ^5.4.5 + version: 5.4.5 + vite: + specifier: ^5.1.4 + version: 5.2.10(@types/node@20.12.7) + vue-tsc: + specifier: ^2.0.6 + version: 2.0.14(typescript@5.4.5) examples/backend-adapters/server: dependencies: @@ -171,7 +209,7 @@ importers: version: 9.0.1 '@hono/node-server': specifier: ^1.8.2 - version: 1.9.1 + version: 1.11.0 cors: specifier: ^2.8.5 version: 2.8.5 @@ -192,17 +230,17 @@ importers: version: 1.11.1 hono: specifier: ^4.0.8 - version: 4.2.3 + version: 4.2.6 listhen: specifier: ^1.7.2 version: 1.7.2 uploadthing: - specifier: 6.9.0 + specifier: 6.10.3 version: link:../../../packages/uploadthing devDependencies: '@cloudflare/workers-types': specifier: ^4.20240222.0 - version: 4.20240405.0 + version: 4.20240419.0 '@types/cors': specifier: ^2.8.17 version: 2.8.17 @@ -217,12 +255,12 @@ importers: version: 5.4.5 wrangler: specifier: ^3.30.0 - version: 3.49.0(@cloudflare/workers-types@4.20240405.0) + version: 3.51.2(@cloudflare/workers-types@4.20240419.0) examples/minimal-appdir: dependencies: '@uploadthing/react': - specifier: 6.4.4 + specifier: 6.5.3 version: link:../../packages/react next: specifier: 14.2.1 @@ -234,9 +272,12 @@ importers: specifier: 18.2.0 version: 18.2.0(react@18.2.0) uploadthing: - specifier: 6.9.0 + specifier: 6.10.3 version: link:../../packages/uploadthing devDependencies: + '@next/bundle-analyzer': + specifier: 14.2.1 + version: 14.2.1 '@types/node': specifier: ^20.11.21 version: 20.12.7 @@ -254,16 +295,16 @@ importers: dependencies: '@astrojs/node': specifier: ^8.2.1 - version: 8.2.5(astro@4.5.18) + version: 8.2.5(astro@4.6.3) '@astrojs/react': specifier: ^3.0.10 - version: 3.2.0(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0)(vite@5.2.8) + version: 3.3.0(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0)(vite@5.2.10) '@uploadthing/react': - specifier: 6.4.4 + specifier: 6.5.3 version: link:../../packages/react astro: specifier: ^4.4.5 - version: 4.5.18(@types/node@20.12.7)(typescript@5.4.5) + version: 4.6.3(@types/node@20.12.7)(typescript@5.4.5) react: specifier: 18.2.0 version: 18.2.0 @@ -271,7 +312,7 @@ importers: specifier: 18.2.0 version: 18.2.0(react@18.2.0) uploadthing: - specifier: 6.9.0 + specifier: 6.10.3 version: link:../../packages/uploadthing devDependencies: '@types/react': @@ -281,10 +322,28 @@ importers: specifier: 18.2.25 version: 18.2.25 + examples/minimal-nuxt: + dependencies: + '@uploadthing/nuxt': + specifier: 6.5.4 + version: link:../../packages/nuxt + nuxt: + specifier: ^3.11.2 + version: 3.11.2(@types/node@20.12.7)(@unocss/reset@0.59.4)(floating-vue@5.2.2)(typescript@5.4.5)(unocss@0.59.4)(vite@5.2.10) + uploadthing: + specifier: 6.10.3 + version: link:../../packages/uploadthing + vue: + specifier: ^3.4.21 + version: 3.4.24(typescript@5.4.5) + vue-router: + specifier: ^4.3.0 + version: 4.3.2(vue@3.4.24) + examples/minimal-pagedir: dependencies: '@uploadthing/react': - specifier: 6.4.4 + specifier: 6.5.3 version: link:../../packages/react next: specifier: 14.2.1 @@ -296,7 +355,7 @@ importers: specifier: 18.2.0 version: 18.2.0(react@18.2.0) uploadthing: - specifier: 6.9.0 + specifier: 6.10.3 version: link:../../packages/uploadthing devDependencies: '@types/node': @@ -322,15 +381,15 @@ importers: version: 0.12.5(solid-js@1.8.16) '@solidjs/start': specifier: ^0.6.0 - version: 0.6.1(solid-js@1.8.16)(vinxi@0.3.11)(vite@5.2.8) + version: 0.6.1(solid-js@1.8.16)(vinxi@0.3.11)(vite@4.5.3) '@uploadthing/solid': - specifier: 6.3.4 + specifier: 6.4.3 version: link:../../packages/solid solid-js: specifier: ^1.8.15 version: 1.8.16 uploadthing: - specifier: 6.9.0 + specifier: 6.10.3 version: link:../../packages/uploadthing vinxi: specifier: 0.3.11 @@ -353,29 +412,29 @@ importers: dependencies: '@fontsource-variable/inter': specifier: ^5.0.17 - version: 5.0.17 + version: 5.0.18 '@uploadthing/svelte': - specifier: 6.4.1 + specifier: 6.5.3 version: link:../../packages/svelte uploadthing: - specifier: 6.9.0 + specifier: 6.10.3 version: link:../../packages/uploadthing devDependencies: '@sveltejs/adapter-auto': specifier: ^3.1.1 - version: 3.2.0(@sveltejs/kit@2.5.5) + version: 3.2.0(@sveltejs/kit@2.5.7) '@sveltejs/kit': specifier: ^2.5.4 - version: 2.5.5(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.13)(vite@5.2.8) + version: 2.5.7(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.15)(vite@5.2.10) '@sveltejs/vite-plugin-svelte': specifier: ^3.1.0 - version: 3.1.0(svelte@4.2.13)(vite@5.2.8) + version: 3.1.0(svelte@4.2.15)(vite@5.2.10) svelte: specifier: ^4.2.12 - version: 4.2.13 + version: 4.2.15 svelte-check: specifier: ^3.6.7 - version: 3.6.9(@babel/core@7.24.4)(postcss-load-config@5.0.3)(postcss@8.4.38)(svelte@4.2.13) + version: 3.6.9(@babel/core@7.24.4)(postcss-load-config@5.0.3)(postcss@8.4.38)(svelte@4.2.15) tslib: specifier: ^2.6.2 version: 2.6.2 @@ -384,18 +443,18 @@ importers: version: 5.4.5 vite: specifier: ^5.1.4 - version: 5.2.8(@types/node@20.12.7) + version: 5.2.10(@types/node@20.12.7) examples/with-clerk-appdir: dependencies: '@clerk/nextjs': specifier: ^4.29.8 - version: 4.29.12(next@14.2.1)(react-dom@18.2.0)(react@18.2.0) + version: 4.30.0(next@14.2.1)(react-dom@18.2.0)(react@18.2.0) '@t3-oss/env-nextjs': - specifier: ^0.9.2 - version: 0.9.2(typescript@5.4.5)(zod@3.22.4) + specifier: ^0.10.1 + version: 0.10.1(typescript@5.4.5)(zod@3.23.0) '@uploadthing/react': - specifier: 6.4.4 + specifier: 6.5.3 version: link:../../packages/react next: specifier: 14.2.1 @@ -407,15 +466,15 @@ importers: specifier: 18.2.0 version: 18.2.0(react@18.2.0) uploadthing: - specifier: 6.9.0 + specifier: 6.10.3 version: link:../../packages/uploadthing zod: specifier: ^3.22.4 - version: 3.22.4 + version: 3.23.0 devDependencies: '@types/eslint': specifier: ^8.56.4 - version: 8.56.7 + version: 8.56.10 '@types/node': specifier: ^20.11.21 version: 20.12.7 @@ -427,16 +486,16 @@ importers: version: 18.2.25 '@typescript-eslint/eslint-plugin': specifier: ^7.6.0 - version: 7.6.0(@typescript-eslint/parser@7.6.0)(eslint@8.57.0)(typescript@5.4.5) + version: 7.7.1(@typescript-eslint/parser@7.7.1)(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': specifier: ^7.6.0 - version: 7.6.0(eslint@8.57.0)(typescript@5.4.5) + version: 7.7.1(eslint@8.57.0)(typescript@5.4.5) eslint: specifier: ^8.57.0 version: 8.57.0 eslint-config-next: specifier: ^14.2.1 - version: 14.2.1(eslint@8.57.0)(typescript@5.4.5) + version: 14.2.2(eslint@8.57.0)(typescript@5.4.5) typescript: specifier: ^5.4.5 version: 5.4.5 @@ -445,12 +504,12 @@ importers: dependencies: '@clerk/nextjs': specifier: ^4.29.8 - version: 4.29.12(next@14.2.1)(react-dom@18.2.0)(react@18.2.0) + version: 4.30.0(next@14.2.1)(react-dom@18.2.0)(react@18.2.0) '@t3-oss/env-nextjs': - specifier: ^0.9.2 - version: 0.9.2(typescript@5.4.5)(zod@3.22.4) + specifier: ^0.10.1 + version: 0.10.1(typescript@5.4.5)(zod@3.23.0) '@uploadthing/react': - specifier: 6.4.4 + specifier: 6.5.3 version: link:../../packages/react next: specifier: 14.2.1 @@ -462,15 +521,15 @@ importers: specifier: 18.2.0 version: 18.2.0(react@18.2.0) uploadthing: - specifier: 6.9.0 + specifier: 6.10.3 version: link:../../packages/uploadthing zod: specifier: ^3.22.4 - version: 3.22.4 + version: 3.23.0 devDependencies: '@types/eslint': specifier: ^8.56.4 - version: 8.56.7 + version: 8.56.10 '@types/node': specifier: ^20.11.21 version: 20.12.7 @@ -482,34 +541,34 @@ importers: version: 18.2.25 '@typescript-eslint/eslint-plugin': specifier: ^7.6.0 - version: 7.6.0(@typescript-eslint/parser@7.6.0)(eslint@8.57.0)(typescript@5.4.5) + version: 7.7.1(@typescript-eslint/parser@7.7.1)(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': specifier: ^7.6.0 - version: 7.6.0(eslint@8.57.0)(typescript@5.4.5) + version: 7.7.1(eslint@8.57.0)(typescript@5.4.5) eslint: specifier: ^8.57.0 version: 8.57.0 eslint-config-next: specifier: ^14.2.1 - version: 14.2.1(eslint@8.57.0)(typescript@5.4.5) + version: 14.2.2(eslint@8.57.0)(typescript@5.4.5) typescript: specifier: ^5.4.5 version: 5.4.5 examples/with-drizzle-appdir: dependencies: + '@libsql/client': + specifier: ^0.6.0 + version: 0.6.0 '@t3-oss/env-nextjs': - specifier: ^0.9.2 - version: 0.9.2(typescript@5.4.5)(zod@3.22.4) + specifier: ^0.10.1 + version: 0.10.1(typescript@5.4.5)(zod@3.23.0) '@uploadthing/react': - specifier: 6.4.4 + specifier: 6.5.3 version: link:../../packages/react - better-sqlite3: - specifier: ^9.4.3 - version: 9.5.0 drizzle-orm: - specifier: ^0.29.4 - version: 0.29.5(@types/better-sqlite3@7.6.9)(@types/react@18.2.78)(better-sqlite3@9.5.0)(react@18.2.0) + specifier: ^0.30.10 + version: 0.30.10(@libsql/client@0.6.0)(@types/react@18.2.78)(react@18.2.0) next: specifier: 14.2.1 version: 14.2.1(@babel/core@7.24.4)(react-dom@18.2.0)(react@18.2.0) @@ -520,18 +579,15 @@ importers: specifier: 18.2.0 version: 18.2.0(react@18.2.0) uploadthing: - specifier: 6.9.0 + specifier: 6.10.3 version: link:../../packages/uploadthing zod: specifier: ^3.22.4 - version: 3.22.4 + version: 3.23.0 devDependencies: - '@types/better-sqlite3': - specifier: ^7.6.9 - version: 7.6.9 '@types/eslint': specifier: ^8.56.4 - version: 8.56.7 + version: 8.56.10 '@types/node': specifier: ^20.11.21 version: 20.12.7 @@ -543,37 +599,37 @@ importers: version: 18.2.25 '@typescript-eslint/eslint-plugin': specifier: ^7.6.0 - version: 7.6.0(@typescript-eslint/parser@7.6.0)(eslint@8.57.0)(typescript@5.4.5) + version: 7.7.1(@typescript-eslint/parser@7.7.1)(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': specifier: ^7.6.0 - version: 7.6.0(eslint@8.57.0)(typescript@5.4.5) + version: 7.7.1(eslint@8.57.0)(typescript@5.4.5) drizzle-kit: - specifier: ^0.20.14 - version: 0.20.14 + specifier: ^0.20.18 + version: 0.20.18 eslint: specifier: ^8.57.0 version: 8.57.0 eslint-config-next: specifier: ^14.2.1 - version: 14.2.1(eslint@8.57.0)(typescript@5.4.5) + version: 14.2.2(eslint@8.57.0)(typescript@5.4.5) typescript: specifier: ^5.4.5 version: 5.4.5 examples/with-drizzle-pagesdir: dependencies: + '@libsql/client': + specifier: ^0.6.0 + version: 0.6.0 '@t3-oss/env-nextjs': - specifier: ^0.9.2 - version: 0.9.2(typescript@5.4.5)(zod@3.22.4) + specifier: ^0.10.1 + version: 0.10.1(typescript@5.4.5)(zod@3.23.0) '@uploadthing/react': - specifier: 6.4.4 + specifier: 6.5.3 version: link:../../packages/react - better-sqlite3: - specifier: ^9.4.3 - version: 9.5.0 drizzle-orm: - specifier: ^0.29.4 - version: 0.29.5(@types/better-sqlite3@7.6.9)(@types/react@18.2.78)(better-sqlite3@9.5.0)(react@18.2.0) + specifier: ^0.30.10 + version: 0.30.10(@libsql/client@0.6.0)(@types/react@18.2.78)(react@18.2.0) next: specifier: 14.2.1 version: 14.2.1(@babel/core@7.24.4)(react-dom@18.2.0)(react@18.2.0) @@ -587,18 +643,15 @@ importers: specifier: ^2.2.5 version: 2.2.5(react@18.2.0) uploadthing: - specifier: 6.9.0 + specifier: 6.10.3 version: link:../../packages/uploadthing zod: specifier: ^3.22.4 - version: 3.22.4 + version: 3.23.0 devDependencies: - '@types/better-sqlite3': - specifier: ^7.6.9 - version: 7.6.9 '@types/eslint': specifier: ^8.56.4 - version: 8.56.7 + version: 8.56.10 '@types/node': specifier: ^20.11.21 version: 20.12.7 @@ -610,19 +663,19 @@ importers: version: 18.2.25 '@typescript-eslint/eslint-plugin': specifier: ^7.6.0 - version: 7.6.0(@typescript-eslint/parser@7.6.0)(eslint@8.57.0)(typescript@5.4.5) + version: 7.7.1(@typescript-eslint/parser@7.7.1)(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': specifier: ^7.6.0 - version: 7.6.0(eslint@8.57.0)(typescript@5.4.5) + version: 7.7.1(eslint@8.57.0)(typescript@5.4.5) drizzle-kit: - specifier: ^0.20.14 - version: 0.20.14 + specifier: ^0.20.18 + version: 0.20.18 eslint: specifier: ^8.57.0 version: 8.57.0 eslint-config-next: specifier: ^14.2.1 - version: 14.2.1(eslint@8.57.0)(typescript@5.4.5) + version: 14.2.2(eslint@8.57.0)(typescript@5.4.5) typescript: specifier: ^5.4.5 version: 5.4.5 @@ -642,7 +695,7 @@ importers: specifier: ^0.5.10 version: 0.5.12(tailwindcss@3.4.3) '@uploadthing/react': - specifier: ^6.4.4 + specifier: ^6.5.3 version: link:../../packages/react class-variance-authority: specifier: ^0.7.0 @@ -673,9 +726,9 @@ importers: version: 1.4.41(react-dom@18.2.0)(react@18.2.0) tailwind-merge: specifier: ^2.2.1 - version: 2.2.2 + version: 2.3.0 uploadthing: - specifier: ^6.9.0 + specifier: 6.10.3 version: link:../../packages/uploadthing use-debounce: specifier: ^9.0.3 @@ -703,7 +756,7 @@ importers: examples/with-react-image-crop: dependencies: '@uploadthing/react': - specifier: 6.4.4 + specifier: 6.5.3 version: link:../../packages/react next: specifier: 14.2.1 @@ -718,7 +771,7 @@ importers: specifier: ^11.0.5 version: 11.0.5(react@18.2.0) uploadthing: - specifier: 6.9.0 + specifier: 6.10.3 version: link:../../packages/uploadthing devDependencies: '@types/node': @@ -746,7 +799,7 @@ importers: specifier: 18.2.0 version: 18.2.0(react@18.2.0) uploadthing: - specifier: 6.9.0 + specifier: 6.10.3 version: link:../../packages/uploadthing devDependencies: '@types/node': @@ -765,7 +818,7 @@ importers: examples/with-tailwindcss: dependencies: '@uploadthing/react': - specifier: 6.4.4 + specifier: 6.5.3 version: link:../../packages/react next: specifier: 14.2.1 @@ -777,7 +830,7 @@ importers: specifier: 18.2.0 version: 18.2.0(react@18.2.0) uploadthing: - specifier: 6.9.0 + specifier: 6.10.3 version: link:../../packages/uploadthing devDependencies: '@types/node': @@ -831,10 +884,13 @@ importers: version: 1.8.16 svelte: specifier: ^4.2.12 - version: 4.2.13 + version: 4.2.15 typescript: specifier: ^5.4.5 version: 5.4.5 + vue: + specifier: ^3.4.21 + version: 3.4.24(typescript@5.4.5) packages/mime-types: devDependencies: @@ -854,6 +910,46 @@ importers: specifier: ^5.4.5 version: 5.4.5 + packages/nuxt: + dependencies: + '@nuxt/kit': + specifier: ^3.11.2 + version: 3.11.2(rollup@3.29.4) + '@uploadthing/vue': + specifier: workspace:* + version: link:../vue + defu: + specifier: ^6.1.4 + version: 6.1.4 + devDependencies: + '@nuxt/devtools': + specifier: latest + version: 1.2.0(@unocss/reset@0.59.4)(floating-vue@5.2.2)(nuxt@3.11.2)(rollup@3.29.4)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.25) + '@nuxt/module-builder': + specifier: ^0.5.5 + version: 0.5.5(@nuxt/kit@3.11.2)(nuxi@3.11.1)(typescript@5.4.5) + '@nuxt/schema': + specifier: ^3.11.2 + version: 3.11.2(rollup@3.29.4) + '@nuxt/test-utils': + specifier: ^3.12.0 + version: 3.12.1(h3@1.11.1)(happy-dom@13.10.1)(rollup@3.29.4)(vite@5.2.10)(vitest@1.5.0)(vue-router@4.3.2)(vue@3.4.25) + '@uploadthing/eslint-config': + specifier: workspace:* + version: link:../../tooling/eslint-config + eslint: + specifier: ^8.57.0 + version: 8.57.0 + h3: + specifier: ^1.11.1 + version: 1.11.1 + nuxt: + specifier: ^3.11.2 + version: 3.11.2(@types/node@20.12.7)(@unocss/reset@0.59.4)(eslint@8.57.0)(floating-vue@5.2.2)(rollup@3.29.4)(typescript@5.4.5)(unocss@0.59.4)(vite@5.2.10) + uploadthing: + specifier: workspace:* + version: link:../uploadthing + packages/react: dependencies: '@uploadthing/dropzone': @@ -867,7 +963,7 @@ importers: version: 0.6.0 tailwind-merge: specifier: ^2.2.1 - version: 2.2.2 + version: 2.3.0 devDependencies: '@types/node': specifier: ^20.11.21 @@ -913,10 +1009,13 @@ importers: version: 7.2.0 zod: specifier: ^3.22.4 - version: 3.22.4 + version: 3.23.0 packages/shared: dependencies: + effect: + specifier: ^3.1.0 + version: 3.1.0 std-env: specifier: ^3.7.0 version: 3.7.0 @@ -948,6 +1047,9 @@ importers: typescript: specifier: ^5.4.5 version: 5.4.5 + vue: + specifier: ^3.4.21 + version: 3.4.24(typescript@5.4.5) wait-on: specifier: ^7.2.0 version: 7.2.0 @@ -962,7 +1064,7 @@ importers: version: link:../shared tailwind-merge: specifier: ^2.2.1 - version: 2.2.2 + version: 2.3.0 devDependencies: postcss: specifier: 8.4.38 @@ -999,20 +1101,20 @@ importers: version: link:../shared tailwind-merge: specifier: ^2.2.1 - version: 2.2.2 + version: 2.3.0 devDependencies: '@sveltejs/adapter-auto': specifier: ^3.1.1 - version: 3.2.0(@sveltejs/kit@2.5.5) + version: 3.2.0(@sveltejs/kit@2.5.7) '@sveltejs/kit': specifier: ^2.5.4 - version: 2.5.5(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.13)(vite@5.2.8) + version: 2.5.7(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.15)(vite@5.2.10) '@sveltejs/package': specifier: ^2.3.0 - version: 2.3.1(svelte@4.2.13)(typescript@5.4.5) + version: 2.3.1(svelte@4.2.15)(typescript@5.4.5) '@sveltejs/vite-plugin-svelte': specifier: ^3.1.0 - version: 3.1.0(svelte@4.2.13)(vite@5.2.8) + version: 3.1.0(svelte@4.2.15)(vite@5.2.10) postcss: specifier: 8.4.38 version: 8.4.38 @@ -1024,10 +1126,10 @@ importers: version: 0.2.7 svelte: specifier: ^4.2.12 - version: 4.2.13 + version: 4.2.15 svelte-check: specifier: ^3.6.7 - version: 3.6.9(@babel/core@7.24.4)(postcss-load-config@5.0.3)(postcss@8.4.38)(svelte@4.2.13) + version: 3.6.9(@babel/core@7.24.4)(postcss-load-config@5.0.3)(postcss@8.4.38)(svelte@4.2.15) tailwindcss: specifier: ^3.4.1 version: 3.4.3 @@ -1042,10 +1144,13 @@ importers: version: link:../uploadthing vite: specifier: ^5.1.4 - version: 5.2.8(@types/node@20.12.7) + version: 5.2.10(@types/node@20.12.7) packages/uploadthing: dependencies: + '@effect/schema': + specifier: ^0.66.12 + version: 0.66.12(effect@3.1.0)(fast-check@3.18.0) '@uploadthing/mime-types': specifier: workspace:* version: link:../mime-types @@ -1055,6 +1160,12 @@ importers: consola: specifier: ^3.2.3 version: 3.2.3 + effect: + specifier: ^3.1.0 + version: 3.1.0 + fast-check: + specifier: ^3.18.0 + version: 3.18.0 std-env: specifier: ^3.7.0 version: 3.7.0 @@ -1098,6 +1209,9 @@ importers: next: specifier: 14.2.1 version: 14.2.1(@babel/core@7.24.4)(react-dom@18.2.0)(react@18.2.0) + nuxt: + specifier: ^3.11.2 + version: 3.11.2(@types/node@20.12.7)(@unocss/reset@0.59.4)(eslint@8.57.0)(floating-vue@5.2.2)(rollup@4.16.2)(typescript@5.4.5)(unocss@0.59.4)(vite@5.2.10) solid-js: specifier: ^1.8.15 version: 1.8.16 @@ -1106,19 +1220,68 @@ importers: version: 3.4.3 type-fest: specifier: ^4.10.3 - version: 4.15.0 + version: 4.16.0 typescript: specifier: ^5.4.5 version: 5.4.5 undici: specifier: ^6.6.2 - version: 6.12.0 + version: 6.14.0 + vue: + specifier: ^3.4.21 + version: 3.4.24(typescript@5.4.5) wait-on: specifier: ^7.2.0 version: 7.2.0 zod: specifier: ^3.22.4 - version: 3.22.4 + version: 3.23.0 + + packages/vue: + dependencies: + '@uploadthing/dropzone': + specifier: workspace:* + version: link:../dropzone + '@uploadthing/shared': + specifier: workspace:* + version: link:../shared + '@vueuse/core': + specifier: ^10.9.0 + version: 10.9.0(vue@3.4.24) + file-selector: + specifier: ^0.6.0 + version: 0.6.0 + tailwind-merge: + specifier: ^2.2.1 + version: 2.3.0 + devDependencies: + '@uploadthing/eslint-config': + specifier: workspace:* + version: link:../../tooling/eslint-config + '@uploadthing/tsconfig': + specifier: workspace:* + version: link:../../tooling/tsconfig + bunchee: + specifier: ^5.1.2 + version: 5.1.2(typescript@5.4.5) + concurrently: + specifier: ^8.2.2 + version: 8.2.2 + tailwindcss: + specifier: ^3.4.1 + version: 3.4.3 + typescript: + specifier: ^5.4.5 + version: 5.4.5 + uploadthing: + specifier: workspace:* + version: link:../uploadthing + vue: + specifier: ^3.4.21 + version: 3.4.24(typescript@5.4.5) + wait-on: + specifier: ^7.2.0 + version: 7.2.0 playground: dependencies: @@ -1153,10 +1316,10 @@ importers: specifier: ^1.0.7 version: 1.0.7(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) '@uploadthing/react': - specifier: 6.4.4 + specifier: 6.5.3 version: link:../packages/react '@uploadthing/shared': - specifier: ^6.6.0 + specifier: ^6.7.3 version: link:../packages/shared class-variance-authority: specifier: ^0.7.0 @@ -1184,16 +1347,16 @@ importers: version: 1.4.41(react-dom@18.2.0)(react@18.2.0) tailwind-merge: specifier: ^2.2.1 - version: 2.2.2 + version: 2.3.0 tailwindcss-animate: specifier: ^1.0.7 version: 1.0.7(tailwindcss@3.4.3) uploadthing: - specifier: 6.9.0 + specifier: 6.10.3 version: link:../packages/uploadthing zod: specifier: ^3.22.4 - version: 3.22.4 + version: 3.23.0 devDependencies: '@types/node': specifier: ^20.11.21 @@ -1218,16 +1381,16 @@ importers: dependencies: '@next/eslint-plugin-next': specifier: ^14.2.1 - version: 14.2.1 + version: 14.2.2 '@types/eslint': specifier: ^8.56.4 - version: 8.56.7 + version: 8.56.10 '@typescript-eslint/eslint-plugin': specifier: ^7.6.0 - version: 7.6.0(@typescript-eslint/parser@7.6.0)(eslint@8.57.0)(typescript@5.4.5) + version: 7.7.1(@typescript-eslint/parser@7.7.1)(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': specifier: ^7.6.0 - version: 7.6.0(eslint@8.57.0)(typescript@5.4.5) + version: 7.7.1(eslint@8.57.0)(typescript@5.4.5) '@uploadthing/eslint-plugin': specifier: ^0.1.0 version: link:../eslint-plugin @@ -1239,7 +1402,7 @@ importers: version: 1.13.2(eslint@8.57.0) eslint-plugin-import: specifier: ^2.29.1 - version: 2.29.1(@typescript-eslint/parser@7.6.0)(eslint@8.57.0) + version: 2.29.1(@typescript-eslint/parser@7.7.1)(eslint@8.57.0) eslint-plugin-react: specifier: ^7.33.2 version: 7.34.1(eslint@8.57.0) @@ -1248,7 +1411,7 @@ importers: version: 4.6.0(eslint@8.57.0) eslint-plugin-svelte: specifier: ^2.35.1 - version: 2.36.0(eslint@8.57.0) + version: 2.37.0(eslint@8.57.0) devDependencies: eslint: specifier: ^8.57.0 @@ -1261,14 +1424,14 @@ importers: dependencies: '@typescript-eslint/parser': specifier: ^7.6.0 - version: 7.6.0(eslint@8.57.0)(typescript@5.4.5) + version: 7.7.1(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/utils': specifier: ^7.6.0 - version: 7.6.0(eslint@8.57.0)(typescript@5.4.5) + version: 7.7.1(eslint@8.57.0)(typescript@5.4.5) devDependencies: '@types/eslint': specifier: ^8.56.4 - version: 8.56.7 + version: 8.56.10 '@uploadthing/tsconfig': specifier: 0.1.0 version: link:../tsconfig @@ -1291,6 +1454,13 @@ packages: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} + /@ampproject/remapping@2.2.1: + resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.19 + /@ampproject/remapping@2.3.0: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} @@ -1298,9 +1468,18 @@ packages: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 + /@antfu/install-pkg@0.1.1: + resolution: {integrity: sha512-LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ==} + dependencies: + execa: 5.1.1 + find-up: 5.0.0 + + /@antfu/utils@0.7.6: + resolution: {integrity: sha512-pvFiLP2BeOKA/ZOS6jxx4XhKzdVLHDhGlFEaZ2flWWYf2xOqVniqpk38I04DFRyz+L0ASggl7SkItTc+ZLju4w==} + dev: false + /@antfu/utils@0.7.7: resolution: {integrity: sha512-gFPqTG7otEJ8uP6wrhDv6mqwGWYZKNvAcCq6u9hOj0c+IKCEsY4L1oC9trPq2SaWIzAfHvqfBDxF591JkMf+kg==} - dev: false /@apidevtools/json-schema-ref-parser@9.0.6: resolution: {integrity: sha512-M3YgsLjI0lZxvrpeGVk9Ap032W6TPQkH6pRAZz81Ac3WUNF79VQooAFnp8umjvVzUmD93NkogxEwbSce7qMsUg==} @@ -1342,13 +1521,13 @@ packages: resolution: {integrity: sha512-6B13lz5n6BrbTqCTwhXjJXuR1sqiX/H6rTxzlXx+lN1NnV4jgnq/KJldCQaUWJzPL5SiWahQyinxAbxQtwgPHA==} dev: false - /@astrojs/markdown-remark@5.0.0: - resolution: {integrity: sha512-QBXbxXZamVRoqCNN2gjDXa7qYPUkJZq7KYFfg3DX7rze3QL6xiz4N+Wg202dNPRaIkQa16BV6D8+EHibQFubRg==} + /@astrojs/markdown-remark@5.1.0: + resolution: {integrity: sha512-S6Z3K2hOB7MfjeDoHsotnP/q2UsnEDB8NlNAaCjMDsGBZfTUbWxyLW3CaphEWw08f6KLZi2ibK9yC3BaMhh2NQ==} dependencies: - '@astrojs/prism': 3.0.0 + '@astrojs/prism': 3.1.0 github-slugger: 2.0.0 hast-util-from-html: 2.0.1 - hast-util-to-text: 4.0.1 + hast-util-to-text: 4.0.2 import-meta-resolve: 4.0.0 mdast-util-definitions: 6.0.0 rehype-raw: 7.0.0 @@ -1367,28 +1546,28 @@ packages: - supports-color dev: false - /@astrojs/node@8.2.5(astro@4.5.18): + /@astrojs/node@8.2.5(astro@4.6.3): resolution: {integrity: sha512-IdVD4dBNyg+ScmCATZ0FM7vNLAHq0TSdiJ3LpR4jcWIUhpN1ps5Jg+9CfzMaLmCCe/SJUZejK5EnzqUJdnGYyg==} peerDependencies: astro: ^4.2.0 dependencies: - astro: 4.5.18(@types/node@20.12.7)(typescript@5.4.5) + astro: 4.6.3(@types/node@20.12.7)(typescript@5.4.5) send: 0.18.0 server-destroy: 1.0.1 transitivePeerDependencies: - supports-color dev: false - /@astrojs/prism@3.0.0: - resolution: {integrity: sha512-g61lZupWq1bYbcBnYZqdjndShr/J3l/oFobBKPA3+qMat146zce3nz2kdO4giGbhYDt4gYdhmoBz0vZJ4sIurQ==} - engines: {node: '>=18.14.1'} + /@astrojs/prism@3.1.0: + resolution: {integrity: sha512-Z9IYjuXSArkAUx3N6xj6+Bnvx8OdUSHA8YoOgyepp3+zJmtVYJIl/I18GozdJVW1p5u/CNpl3Km7/gwTJK85cw==} + engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} dependencies: prismjs: 1.29.0 dev: false - /@astrojs/react@3.2.0(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0)(vite@5.2.8): - resolution: {integrity: sha512-27ISrGBM7Sh5CV0IeIiv3OOJwSF6l+Zo+fD1PZI8A81g+cPO/NgaYBjrYhCtg2ZCAuJzN3NFYG14NIAbxVu+2w==} - engines: {node: '>=18.14.1'} + /@astrojs/react@3.3.0(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0)(vite@5.2.10): + resolution: {integrity: sha512-IKHizDgYPTl9TTKcEB+PwmqHqYgCwD3jqd9hGBRITYiMmeiHVMRr2zNNXSmOOv0uWL3/EwsISsrUnjwuxIVZUA==} + engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} peerDependencies: '@types/react': ^17.0.50 || ^18.0.21 '@types/react-dom': ^17.0.17 || ^18.0.6 @@ -1397,20 +1576,20 @@ packages: dependencies: '@types/react': 18.2.78 '@types/react-dom': 18.2.25 - '@vitejs/plugin-react': 4.2.1(vite@5.2.8) + '@vitejs/plugin-react': 4.2.1(vite@5.2.10) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - ultrahtml: 1.5.3 + ultrahtml: 1.3.0 transitivePeerDependencies: - supports-color - vite dev: false - /@astrojs/telemetry@3.0.4: - resolution: {integrity: sha512-A+0c7k/Xy293xx6odsYZuXiaHO0PL+bnDoXOc47sGDF5ffIKdKQGRPFl2NMlCF4L0NqN4Ynbgnaip+pPF0s7pQ==} - engines: {node: '>=18.14.1'} + /@astrojs/telemetry@3.1.0: + resolution: {integrity: sha512-/ca/+D8MIKEC8/A9cSaPUqQNZm+Es/ZinRv0ZAzvu2ios7POQSsVD+VOj7/hypWNsNM3T7RpfgNq7H2TU1KEHA==} + engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} dependencies: - ci-info: 3.9.0 + ci-info: 4.0.0 debug: 4.3.4 dlv: 1.1.3 dset: 3.1.3 @@ -1421,6 +1600,13 @@ packages: - supports-color dev: false + /@babel/code-frame@7.22.10: + resolution: {integrity: sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.22.10 + chalk: 2.4.2 + /@babel/code-frame@7.24.2: resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} engines: {node: '>=6.9.0'} @@ -1428,15 +1614,43 @@ packages: '@babel/highlight': 7.24.2 picocolors: 1.0.0 + /@babel/compat-data@7.22.9: + resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==} + engines: {node: '>=6.9.0'} + dev: true + /@babel/compat-data@7.24.4: resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==} engines: {node: '>=6.9.0'} + /@babel/core@7.22.10: + resolution: {integrity: sha512-fTmqbbUBAwCcre6zPzNngvsI0aNrPZe77AeqvDxWM9Nm+04RrJ3CAmGHA9f7lJQY6ZMhRztNemy4uslDxTX4Qw==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.22.10 + '@babel/generator': 7.22.10 + '@babel/helper-compilation-targets': 7.22.10 + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.10) + '@babel/helpers': 7.22.10 + '@babel/parser': 7.22.10 + '@babel/template': 7.22.5 + '@babel/traverse': 7.22.10 + '@babel/types': 7.22.10 + convert-source-map: 1.9.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/core@7.24.4: resolution: {integrity: sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==} engines: {node: '>=6.9.0'} dependencies: - '@ampproject/remapping': 2.3.0 + '@ampproject/remapping': 2.2.1 '@babel/code-frame': 7.24.2 '@babel/generator': 7.24.4 '@babel/helper-compilation-targets': 7.23.6 @@ -1454,6 +1668,15 @@ packages: transitivePeerDependencies: - supports-color + /@babel/generator@7.22.10: + resolution: {integrity: sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.10 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.19 + jsesc: 2.5.2 + /@babel/generator@7.24.4: resolution: {integrity: sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==} engines: {node: '>=6.9.0'} @@ -1469,6 +1692,17 @@ packages: dependencies: '@babel/types': 7.24.0 + /@babel/helper-compilation-targets@7.22.10: + resolution: {integrity: sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': 7.22.9 + '@babel/helper-validator-option': 7.22.5 + browserslist: 4.21.10 + lru-cache: 5.1.1 + semver: 6.3.1 + dev: true + /@babel/helper-compilation-targets@7.23.6: resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} engines: {node: '>=6.9.0'} @@ -1479,6 +1713,24 @@ packages: lru-cache: 5.1.1 semver: 6.3.1 + /@babel/helper-create-class-features-plugin@7.22.10(@babel/core@7.22.10): + resolution: {integrity: sha512-5IBb77txKYQPpOEdUdIhBx8VrZyDCQ+H82H0+5dX1TmuscP5vJKEE3cKurjtIw/vFwzbVH48VweE78kVDBrqjA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.10 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-function-name': 7.22.5 + '@babel/helper-member-expression-to-functions': 7.22.5 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.10) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + semver: 6.3.1 + dev: true + /@babel/helper-create-class-features-plugin@7.24.4(@babel/core@7.24.4): resolution: {integrity: sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ==} engines: {node: '>=6.9.0'} @@ -1495,12 +1747,22 @@ packages: '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 - dev: true /@babel/helper-environment-visitor@7.22.20: resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} engines: {node: '>=6.9.0'} + /@babel/helper-environment-visitor@7.22.5: + resolution: {integrity: sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==} + engines: {node: '>=6.9.0'} + + /@babel/helper-function-name@7.22.5: + resolution: {integrity: sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.5 + '@babel/types': 7.22.10 + /@babel/helper-function-name@7.23.0: resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} engines: {node: '>=6.9.0'} @@ -1514,18 +1776,30 @@ packages: dependencies: '@babel/types': 7.24.0 + /@babel/helper-member-expression-to-functions@7.22.5: + resolution: {integrity: sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.10 + dev: true + /@babel/helper-member-expression-to-functions@7.23.0: resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.0 - dev: true /@babel/helper-module-imports@7.18.6: resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.22.10 + + /@babel/helper-module-imports@7.22.5: + resolution: {integrity: sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.10 /@babel/helper-module-imports@7.24.3: resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} @@ -1533,6 +1807,20 @@ packages: dependencies: '@babel/types': 7.24.0 + /@babel/helper-module-transforms@7.22.9(@babel/core@7.22.10): + resolution: {integrity: sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.10 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-module-imports': 7.22.5 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.5 + dev: true + /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.4): resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} @@ -1550,13 +1838,28 @@ packages: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.0 - dev: true + '@babel/types': 7.22.10 + + /@babel/helper-plugin-utils@7.22.5: + resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} + engines: {node: '>=6.9.0'} /@babel/helper-plugin-utils@7.24.0: resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} engines: {node: '>=6.9.0'} + /@babel/helper-replace-supers@7.22.9(@babel/core@7.22.10): + resolution: {integrity: sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.10 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-member-expression-to-functions': 7.22.5 + '@babel/helper-optimise-call-expression': 7.22.5 + dev: true + /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} engines: {node: '>=6.9.0'} @@ -1567,7 +1870,6 @@ packages: '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 - dev: true /@babel/helper-simple-access@7.22.5: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} @@ -1579,8 +1881,7 @@ packages: resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.0 - dev: true + '@babel/types': 7.22.10 /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} @@ -1588,6 +1889,10 @@ packages: dependencies: '@babel/types': 7.24.0 + /@babel/helper-string-parser@7.22.5: + resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} + engines: {node: '>=6.9.0'} + /@babel/helper-string-parser@7.24.1: resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} engines: {node: '>=6.9.0'} @@ -1596,10 +1901,30 @@ packages: resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} + /@babel/helper-validator-identifier@7.22.5: + resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-option@7.22.5: + resolution: {integrity: sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==} + engines: {node: '>=6.9.0'} + dev: true + /@babel/helper-validator-option@7.23.5: resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} engines: {node: '>=6.9.0'} + /@babel/helpers@7.22.10: + resolution: {integrity: sha512-a41J4NW8HyZa1I1vAndrraTlPZ/eZoga2ZgS7fEr0tZJGVU4xqdE80CEm0CcNjha5EZ8fTBYLKHF0kqDUuAwQw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.5 + '@babel/traverse': 7.22.10 + '@babel/types': 7.22.10 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/helpers@7.24.4: resolution: {integrity: sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==} engines: {node: '>=6.9.0'} @@ -1610,6 +1935,14 @@ packages: transitivePeerDependencies: - supports-color + /@babel/highlight@7.22.10: + resolution: {integrity: sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.5 + chalk: 2.4.2 + js-tokens: 4.0.0 + /@babel/highlight@7.24.2: resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} engines: {node: '>=6.9.0'} @@ -1619,6 +1952,13 @@ packages: js-tokens: 4.0.0 picocolors: 1.0.0 + /@babel/parser@7.22.10: + resolution: {integrity: sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.22.10 + /@babel/parser@7.24.4: resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==} engines: {node: '>=6.0.0'} @@ -1626,17 +1966,19 @@ packages: dependencies: '@babel/types': 7.24.0 - /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.4): - resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} + /@babel/plugin-proposal-decorators@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-zPEvzFijn+hRvJuX2Vu3KbEBN39LN3f7tW3MQO2LsIs57B26KU+kUc82BdAktS1VCM6libzh45eKGI65lg0cpA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 + '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-decorators': 7.24.1(@babel/core@7.24.4) - /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.4): - resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} + /@babel/plugin-syntax-decorators@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-05RJdO/cCrtVWuAaSn1tS3bH8jbsJa/Y1uD186u6J4C/1mnHFxseeuWpsqr9anvo7TUulev7tm7GDwRV+VuhDw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1644,84 +1986,218 @@ packages: '@babel/core': 7.24.4 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.4): - resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} + /@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.24.4): + resolution: {integrity: sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-simple-access': 7.22.5 - dev: true + '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-react-jsx-self@7.24.1(@babel/core@7.24.4): - resolution: {integrity: sha512-kDJgnPujTmAZ/9q2CN4m2/lRsUUPDvsG3+tSHWUJIzMGTt5U/b/fwWd3RO3n+5mjLrsBrVa5eKFRVSQbi3dF1w==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.4): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: false + '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-react-jsx-source@7.24.1(@babel/core@7.24.4): - resolution: {integrity: sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA==} + /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.22.10): + resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - dev: false + '@babel/core': 7.22.10 + '@babel/helper-plugin-utils': 7.22.5 + dev: true - /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.4): - resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} + /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.24.4): + resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.4) - '@babel/types': 7.24.0 - dev: false + '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-typescript@7.24.4(@babel/core@7.24.4): - resolution: {integrity: sha512-79t3CQ8+oBGk/80SQ8MN3Bs3obf83zJ0YZjDmDaEZN8MqhMI760apl5z6a20kFeMXBwJX99VpKT8CKxEBp5H1g==} + /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.4) - dev: true - /@babel/preset-typescript@7.24.1(@babel/core@7.24.4): - resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==} + /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.22.10): + resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-typescript': 7.24.4(@babel/core@7.24.4) + '@babel/core': 7.22.10 + '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/runtime@7.24.4: - resolution: {integrity: sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==} + /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.24.4): + resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==} engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + dev: false + + /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-transform-modules-commonjs@7.22.5(@babel/core@7.22.10): + resolution: {integrity: sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.10 + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.10) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-simple-access': 7.22.5 + dev: true + + /@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-simple-access': 7.22.5 + + /@babel/plugin-transform-react-jsx-self@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-kDJgnPujTmAZ/9q2CN4m2/lRsUUPDvsG3+tSHWUJIzMGTt5U/b/fwWd3RO3n+5mjLrsBrVa5eKFRVSQbi3dF1w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + dev: false + + /@babel/plugin-transform-react-jsx-source@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + dev: false + + /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.4): + resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-module-imports': 7.24.3 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.4) + '@babel/types': 7.24.0 + dev: false + + /@babel/plugin-transform-typescript@7.22.10(@babel/core@7.22.10): + resolution: {integrity: sha512-7++c8I/ymsDo4QQBAgbraXLzIM6jmfao11KgIBEYZRReWzNWH9NtNgJcyrZiXsOPh523FQm6LfpLyy/U5fn46A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.10 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.22.10(@babel/core@7.22.10) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.22.10) + dev: true + + /@babel/plugin-transform-typescript@7.24.4(@babel/core@7.24.4): + resolution: {integrity: sha512-79t3CQ8+oBGk/80SQ8MN3Bs3obf83zJ0YZjDmDaEZN8MqhMI760apl5z6a20kFeMXBwJX99VpKT8CKxEBp5H1g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.4) + + /@babel/preset-typescript@7.22.5(@babel/core@7.22.10): + resolution: {integrity: sha512-YbPaal9LxztSGhmndR46FmAbkJ/1fAsw293tSU+I5E5h+cnJ3d4GTwyUgGYmOXJYdGA+uNePle4qbaRzj2NISQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.10 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.22.5 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-modules-commonjs': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-transform-typescript': 7.22.10(@babel/core@7.22.10) + dev: true + + /@babel/preset-typescript@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - regenerator-runtime: 0.14.1 + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-typescript': 7.24.4(@babel/core@7.24.4) + + /@babel/runtime@7.22.10: + resolution: {integrity: sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.0 + dev: false + + /@babel/runtime@7.24.4: + resolution: {integrity: sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.0 + + /@babel/standalone@7.22.10: + resolution: {integrity: sha512-VmK2sWxUTfDDh9mPfCtFJPIehZToteqK+Zpwq8oJUjJ+WeeKIFTTQIrDzH7jEdom+cAaaguU7FI/FBsBWFkIeQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/standalone@7.24.4: + resolution: {integrity: sha512-V4uqWeedadiuiCx5P5OHYJZ1PehdMpcBccNCEptKFGPiZIY3FI5f2ClxUl4r5wZ5U+ohcQ+4KW6jX2K6xXzq4Q==} + engines: {node: '>=6.9.0'} + + /@babel/template@7.22.5: + resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.22.10 + '@babel/parser': 7.22.10 + '@babel/types': 7.22.10 /@babel/template@7.24.0: resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} @@ -1731,6 +2207,23 @@ packages: '@babel/parser': 7.24.4 '@babel/types': 7.24.0 + /@babel/traverse@7.22.10: + resolution: {integrity: sha512-Q/urqV4pRByiNNpb/f5OSv28ZlGJiFiiTh+GAHktbIrkPhPbl90+uW6SmpoLyZqutrg9AEaEf3Q/ZBRHBXgxig==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.22.10 + '@babel/generator': 7.22.10 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-function-name': 7.22.5 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.22.10 + '@babel/types': 7.22.10 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + /@babel/traverse@7.24.1: resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} engines: {node: '>=6.9.0'} @@ -1748,6 +2241,14 @@ packages: transitivePeerDependencies: - supports-color + /@babel/types@7.22.10: + resolution: {integrity: sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.22.5 + '@babel/helper-validator-identifier': 7.22.5 + to-fast-properties: 2.0.0 + /@babel/types@7.24.0: resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} engines: {node: '>=6.9.0'} @@ -1797,7 +2298,7 @@ packages: outdent: 0.5.0 prettier: 2.8.8 resolve-from: 5.0.0 - semver: 7.6.0 + semver: 7.5.4 dev: false /@changesets/assemble-release-plan@6.0.0: @@ -1808,7 +2309,7 @@ packages: '@changesets/get-dependents-graph': 2.0.0 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 - semver: 7.6.0 + semver: 7.5.4 dev: false /@changesets/changelog-git@0.2.0: @@ -1831,7 +2332,7 @@ packages: resolution: {integrity: sha512-iJ91xlvRnnrJnELTp4eJJEOPjgpF3NOh4qeQehM6Ugiz9gJPRZ2t+TsXun6E3AMN4hScZKjqVXl0TX+C7AB3ZQ==} hasBin: true dependencies: - '@babel/runtime': 7.24.4 + '@babel/runtime': 7.22.10 '@changesets/apply-release-plan': 7.0.0 '@changesets/assemble-release-plan': 6.0.0 '@changesets/changelog-git': 0.2.0 @@ -1846,10 +2347,10 @@ packages: '@changesets/types': 6.0.0 '@changesets/write': 0.3.0 '@manypkg/get-packages': 1.1.3 - '@types/semver': 7.5.8 + '@types/semver': 7.5.0 ansi-colors: 4.1.3 chalk: 2.4.2 - ci-info: 3.9.0 + ci-info: 3.8.0 enquirer: 2.4.1 external-editor: 3.1.0 fs-extra: 7.0.1 @@ -1857,12 +2358,12 @@ packages: meow: 6.1.1 outdent: 0.5.0 p-limit: 2.3.0 - preferred-pm: 3.1.3 + preferred-pm: 3.0.3 resolve-from: 5.0.0 - semver: 7.6.0 + semver: 7.5.4 spawndamnit: 2.0.0 term-size: 2.2.1 - tty-table: 4.2.3 + tty-table: 4.2.1 dev: false /@changesets/config@3.0.0: @@ -1890,14 +2391,14 @@ packages: '@manypkg/get-packages': 1.1.3 chalk: 2.4.2 fs-extra: 7.0.1 - semver: 7.6.0 + semver: 7.5.4 dev: false /@changesets/get-github-info@0.6.0: resolution: {integrity: sha512-v/TSnFVXI8vzX9/w3DU2Ol+UlTZcu3m0kXTjTT4KlAdwSvwutcByYwyYn9hwerPWfPkT2JfpoX0KgvCEi8Q/SA==} dependencies: dataloader: 1.4.0 - node-fetch: 2.7.0 + node-fetch: 2.6.12 transitivePeerDependencies: - encoding dev: false @@ -1984,12 +2485,12 @@ packages: prettier: 2.8.8 dev: false - /@clerk/backend@0.38.6(react@18.2.0): - resolution: {integrity: sha512-dQJzOrDW24KR2ovYUSoTh2iGX1bK0L4odQ5DFi5HJ3Uam3VlJgXk17CQV9VRnokJ7kfRlO3PVAQ6gxd+hCbx5Q==} + /@clerk/backend@0.38.7(react@18.2.0): + resolution: {integrity: sha512-Zv3aKNVKSfr16bA98or5fOAQuFXw5sBRgOII5FhKFHU8GR1INjf3z0mWilo1AyYIYkh15I6nCPlJtWe+v8CzYg==} engines: {node: '>=14'} dependencies: '@clerk/shared': 1.4.1(react@18.2.0) - '@clerk/types': 3.63.1 + '@clerk/types': 3.64.0 '@peculiar/webcrypto': 1.4.1 '@types/node': 16.18.6 cookie: 0.5.0 @@ -2001,25 +2502,25 @@ packages: - react dev: false - /@clerk/clerk-react@4.30.10(react@18.2.0): - resolution: {integrity: sha512-c2X0grf7Vo6LrycvYbVyIyU7Gtyb47mf0/fnQdmF5zL8PIF1Ih5Yn9ZkbNeVjCLQrVRLeSRBgrrEIzlIenbuaQ==} + /@clerk/clerk-react@4.31.0(react@18.2.0): + resolution: {integrity: sha512-jKr+wyCN5H14KQhzLjg9KFj9c021yfAf1+D4bfG3rSH4psUF4Cv99C2tezmCyX98KM+4tBouj79/XZwK2IXQgw==} engines: {node: '>=14'} peerDependencies: react: '>=16' dependencies: '@clerk/shared': 1.4.1(react@18.2.0) - '@clerk/types': 3.63.1 + '@clerk/types': 3.64.0 react: 18.2.0 tslib: 2.4.1 dev: false - /@clerk/clerk-sdk-node@4.13.14(react@18.2.0): - resolution: {integrity: sha512-ECQEiMi/7xQZx0U9IyFKDazFLS+eyZnah+ZClwjMGDxAA1KR6xF13Vd9mbGzTov7IlvwfsNmUPOSXvjORufvqg==} + /@clerk/clerk-sdk-node@4.13.15(react@18.2.0): + resolution: {integrity: sha512-+6abejj+5Q8Yg7nhcth53MUxGV++YHnvjjsW2nH7xUTpY/BOLDKcPRBMELzXMOhSSibffrQ8yNS9LwZZEmazAg==} engines: {node: '>=14'} dependencies: - '@clerk/backend': 0.38.6(react@18.2.0) + '@clerk/backend': 0.38.7(react@18.2.0) '@clerk/shared': 1.4.1(react@18.2.0) - '@clerk/types': 3.63.1 + '@clerk/types': 3.64.0 '@types/cookies': 0.7.7 '@types/express': 4.17.14 '@types/node-fetch': 2.6.2 @@ -2030,19 +2531,19 @@ packages: - react dev: false - /@clerk/nextjs@4.29.12(next@14.2.1)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-9pB6s4E50OjUjySVhQpSHu9DC0zIGqVJdneMXcL26fk48+U7lq9XCAZEFNIYUVQeMMvEI1elWSgNmi2Xmpr8ug==} + /@clerk/nextjs@4.30.0(next@14.2.1)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-M60Oyq0m9z+mRpUIAONfvQEQG15AcFgbdWO7kfhTirmT84xMXjQ/5DIdZCScPalNzlQP33qQ1AOX7qCsSgjdrQ==} engines: {node: '>=14'} peerDependencies: next: '>=10' react: ^17.0.2 || ^18.0.0-0 react-dom: ^17.0.2 || ^18.0.0-0 dependencies: - '@clerk/backend': 0.38.6(react@18.2.0) - '@clerk/clerk-react': 4.30.10(react@18.2.0) - '@clerk/clerk-sdk-node': 4.13.14(react@18.2.0) + '@clerk/backend': 0.38.7(react@18.2.0) + '@clerk/clerk-react': 4.31.0(react@18.2.0) + '@clerk/clerk-sdk-node': 4.13.15(react@18.2.0) '@clerk/shared': 1.4.1(react@18.2.0) - '@clerk/types': 3.63.1 + '@clerk/types': 3.64.0 next: 14.2.1(@babel/core@7.24.4)(react-dom@18.2.0)(react@18.2.0) path-to-regexp: 6.2.1 react: 18.2.0 @@ -2064,8 +2565,8 @@ packages: swr: 2.2.0(react@18.2.0) dev: false - /@clerk/types@3.63.1: - resolution: {integrity: sha512-PeZrRzWApJl1BYsT/wQPtEzhDmwfqeMKWuSRcHe3Kh0Itc5Gp7w9HrrKkyMnRuzebVj4z5gX4rwJOmTD/P1DhQ==} + /@clerk/types@3.64.0: + resolution: {integrity: sha512-fthhIAXaNIYQZ+82kUA00IUR8fwjewb/9sQI1J1NhoGbLp5rtxjKmNa6EQGKfcSG0svJyQ56kdSUUfawxRm5fw==} engines: {node: '>=14'} dependencies: csstype: 3.1.1 @@ -2121,12 +2622,12 @@ packages: dev: true optional: true - /@cloudflare/workers-types@4.20240405.0: - resolution: {integrity: sha512-sEVOhyOgXUwfLkgHqbLZa/sfkSYrh7/zLmI6EZNibPaVPvAnAcItbNNl3SAlLyLKuwf8m4wAIAgu9meKWCvXjg==} + /@cloudflare/workers-types@4.20240419.0: + resolution: {integrity: sha512-UM16sr4HEe0mDj6C5OFcodzdj/CnEp0bfncAq3g7OpDsoZ1sBrfsMrb7Yc4f8J81EemvmQZyE6sSanpURtVkcQ==} dev: true - /@codemirror/autocomplete@6.15.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.2)(@lezer/common@1.2.1): - resolution: {integrity: sha512-G2Zm0mXznxz97JhaaOdoEG2cVupn4JjPaS4AcNvZzhOsnnG9YVN68VzfoUw6dYTsIxT6a/cmoFEN47KAWhXaOg==} + /@codemirror/autocomplete@6.16.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.3)(@lezer/common@1.2.1): + resolution: {integrity: sha512-P/LeCTtZHRTCU4xQsa89vSKWecYv1ZqwzOd5topheGRf+qtacFgBeIMQi3eL8Kt/BUNvxUWkx+5qP2jlGoARrg==} peerDependencies: '@codemirror/language': ^6.0.0 '@codemirror/state': ^6.0.0 @@ -2135,23 +2636,23 @@ packages: dependencies: '@codemirror/language': 6.10.1 '@codemirror/state': 6.4.1 - '@codemirror/view': 6.26.2 + '@codemirror/view': 6.26.3 '@lezer/common': 1.2.1 dev: false - /@codemirror/commands@6.3.3: - resolution: {integrity: sha512-dO4hcF0fGT9tu1Pj1D2PvGvxjeGkbC6RGcZw6Qs74TH+Ed1gw98jmUgd2axWvIZEqTeTuFrg1lEB1KV6cK9h1A==} + /@codemirror/commands@6.5.0: + resolution: {integrity: sha512-rK+sj4fCAN/QfcY9BEzYMgp4wwL/q5aj/VfNSoH1RWPF9XS/dUwBkvlL3hpWgEjOqlpdN1uLC9UkjJ4tmyjJYg==} dependencies: '@codemirror/language': 6.10.1 '@codemirror/state': 6.4.1 - '@codemirror/view': 6.26.2 + '@codemirror/view': 6.26.3 '@lezer/common': 1.2.1 dev: false - /@codemirror/lang-css@6.2.1(@codemirror/view@6.26.2): + /@codemirror/lang-css@6.2.1(@codemirror/view@6.26.3): resolution: {integrity: sha512-/UNWDNV5Viwi/1lpr/dIXJNWiwDxpw13I4pTUAsNxZdg6E0mI2kTQb0P2iHczg1Tu+H4EBgJR+hYhKiHKko7qg==} dependencies: - '@codemirror/autocomplete': 6.15.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.2)(@lezer/common@1.2.1) + '@codemirror/autocomplete': 6.16.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.3)(@lezer/common@1.2.1) '@codemirror/language': 6.10.1 '@codemirror/state': 6.4.1 '@lezer/common': 1.2.1 @@ -2160,15 +2661,15 @@ packages: - '@codemirror/view' dev: false - /@codemirror/lang-html@6.4.8: - resolution: {integrity: sha512-tE2YK7wDlb9ZpAH6mpTPiYm6rhfdQKVDa5r9IwIFlwwgvVaKsCfuKKZoJGWsmMZIf3FQAuJ5CHMPLymOtg1hXw==} + /@codemirror/lang-html@6.4.9: + resolution: {integrity: sha512-aQv37pIMSlueybId/2PVSP6NPnmurFDVmZwzc7jszd2KAF8qd4VBbvNYPXWQq90WIARjsdVkPbw29pszmHws3Q==} dependencies: - '@codemirror/autocomplete': 6.15.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.2)(@lezer/common@1.2.1) - '@codemirror/lang-css': 6.2.1(@codemirror/view@6.26.2) + '@codemirror/autocomplete': 6.16.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.3)(@lezer/common@1.2.1) + '@codemirror/lang-css': 6.2.1(@codemirror/view@6.26.3) '@codemirror/lang-javascript': 6.2.2 '@codemirror/language': 6.10.1 '@codemirror/state': 6.4.1 - '@codemirror/view': 6.26.2 + '@codemirror/view': 6.26.3 '@lezer/common': 1.2.1 '@lezer/css': 1.1.8 '@lezer/html': 1.3.9 @@ -2177,11 +2678,11 @@ packages: /@codemirror/lang-javascript@6.2.2: resolution: {integrity: sha512-VGQfY+FCc285AhWuwjYxQyUQcYurWlxdKYT4bqwr3Twnd5wP5WSeu52t4tvvuWmljT4EmgEgZCqSieokhtY8hg==} dependencies: - '@codemirror/autocomplete': 6.15.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.2)(@lezer/common@1.2.1) + '@codemirror/autocomplete': 6.16.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.3)(@lezer/common@1.2.1) '@codemirror/language': 6.10.1 '@codemirror/lint': 6.5.0 '@codemirror/state': 6.4.1 - '@codemirror/view': 6.26.2 + '@codemirror/view': 6.26.3 '@lezer/common': 1.2.1 '@lezer/javascript': 1.4.14 dev: false @@ -2193,10 +2694,10 @@ packages: '@lezer/json': 1.0.2 dev: false - /@codemirror/lang-yaml@6.1.0(@codemirror/view@6.26.2): - resolution: {integrity: sha512-QQEEOWjHplNScULb0NCMVUcp+TPTpg42vmTcH62UMLVBkvAEFuVkhqH11f50m/pnai7qUfSLv6ZJoPv76Ky3QA==} + /@codemirror/lang-yaml@6.1.1(@codemirror/view@6.26.3): + resolution: {integrity: sha512-HV2NzbK9bbVnjWxwObuZh5FuPCowx51mEfoFT9y3y+M37fA3+pbxx4I7uePuygFzDsAmCTwQSc/kXh/flab4uw==} dependencies: - '@codemirror/autocomplete': 6.15.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.2)(@lezer/common@1.2.1) + '@codemirror/autocomplete': 6.16.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.3)(@lezer/common@1.2.1) '@codemirror/language': 6.10.1 '@codemirror/state': 6.4.1 '@lezer/common': 1.2.1 @@ -2210,7 +2711,7 @@ packages: resolution: {integrity: sha512-5GrXzrhq6k+gL5fjkAwt90nYDmjlzTIJV8THnxNFtNKWotMIlzzN+CpqxqwXOECnUdOndmSeWntVrVcv5axWRQ==} dependencies: '@codemirror/state': 6.4.1 - '@codemirror/view': 6.26.2 + '@codemirror/view': 6.26.3 '@lezer/common': 1.2.1 '@lezer/highlight': 1.2.0 '@lezer/lr': 1.4.0 @@ -2221,7 +2722,7 @@ packages: resolution: {integrity: sha512-+5YyicIaaAZKU8K43IQi8TBy6mF6giGeWAH7N96Z5LC30Wm5JMjqxOYIE9mxwMG1NbhT2mA3l9hA4uuKUM3E5g==} dependencies: '@codemirror/state': 6.4.1 - '@codemirror/view': 6.26.2 + '@codemirror/view': 6.26.3 crelt: 1.0.6 dev: false @@ -2229,7 +2730,7 @@ packages: resolution: {integrity: sha512-rpMgcsh7o0GuCDUXKPvww+muLA1pDJaFrpq/CCHtpQJYz8xopu4D1hPcKRoDD0YlF8gZaqTNIRa4VRBWyhyy7Q==} dependencies: '@codemirror/state': 6.4.1 - '@codemirror/view': 6.26.2 + '@codemirror/view': 6.26.3 crelt: 1.0.6 dev: false @@ -2237,8 +2738,8 @@ packages: resolution: {integrity: sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A==} dev: false - /@codemirror/view@6.26.2: - resolution: {integrity: sha512-j6V48PlFC/O7ERAR5vRW5QKDdchzmyyfojDdt+zPsB0YXoWgcjlC1IWjmlYfx08aQZ3HN5BtALcgGgtSKGMe7A==} + /@codemirror/view@6.26.3: + resolution: {integrity: sha512-gmqxkPALZjkgSxIeeweY/wGQXBfwTUaLs8h7OKtSwfbj9Ct3L11lD+u1sS7XHppxFQoMDiMDp07P9f3I2jWOHw==} dependencies: '@codemirror/state': 6.4.1 style-mod: 4.1.2 @@ -2267,12 +2768,21 @@ packages: which: 4.0.0 dev: false - /@drizzle-team/studio@0.0.39: - resolution: {integrity: sha512-c5Hkm7MmQC2n5qAsKShjQrHoqlfGslB8+qWzsGGZ+2dHMRTNG60UuzalF0h0rvBax5uzPXuGkYLGaQ+TUX3yMw==} - dependencies: - superjson: 2.2.1 + /@discoveryjs/json-ext@0.5.7: + resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} + engines: {node: '>=10.0.0'} dev: true + /@effect/schema@0.66.12(effect@3.1.0)(fast-check@3.18.0): + resolution: {integrity: sha512-14X3D2FxTFDtll41MWw5OkLQCWqcs6pLYhs38oRK1o7rQ9gM2fdL4sw/gJu4dayAqv122GMgoIEOrzO5PyBuYA==} + peerDependencies: + effect: ^3.1.0 + fast-check: ^3.13.2 + dependencies: + effect: 3.1.0 + fast-check: 3.18.0 + dev: false + /@egjs/agent@2.4.3: resolution: {integrity: sha512-XvksSENe8wPeFlEVouvrOhKdx8HMniJ3by7sro2uPF3M6QqWwjzVcmvwoPtdjiX8O1lfRoLhQMp1a7NGlVTdIA==} dev: false @@ -2299,17 +2809,17 @@ packages: elysia: 0.8.17(typescript@5.4.5) dev: false - /@esbuild-kit/core-utils@3.3.2: - resolution: {integrity: sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==} + /@esbuild-kit/core-utils@3.1.0: + resolution: {integrity: sha512-Uuk8RpCg/7fdHSceR1M6XbSZFSuMrxcePFuGgyvsBn+u339dk5OeL4jv2EojwTN2st/unJGsVm4qHWjWNmJ/tw==} dependencies: - esbuild: 0.18.20 + esbuild: 0.17.19 source-map-support: 0.5.21 dev: true - /@esbuild-kit/esm-loader@2.6.5: - resolution: {integrity: sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA==} + /@esbuild-kit/esm-loader@2.5.5: + resolution: {integrity: sha512-Qwfvj/qoPbClxCRNuac1Du01r9gvNOT+pMYtJDapfB1eoGN1YlJ1BixLyL9WVENRx5RXgNLdfYdx/CuswlGhMw==} dependencies: - '@esbuild-kit/core-utils': 3.3.2 + '@esbuild-kit/core-utils': 3.1.0 get-tsconfig: 4.7.3 dev: true @@ -2362,6 +2872,7 @@ packages: cpu: [arm64] os: [android] requiresBuild: true + dev: false optional: true /@esbuild/android-arm64@0.19.12: @@ -2372,6 +2883,15 @@ packages: requiresBuild: true optional: true + /@esbuild/android-arm64@0.19.2: + resolution: {integrity: sha512-lsB65vAbe90I/Qe10OjkmrdxSX4UJDjosDgb8sZUKcg3oefEuW2OT2Vozz8ef7wrJbMcmhvCC+hciF8jY/uAkw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + /@esbuild/android-arm64@0.20.2: resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} engines: {node: '>=12'} @@ -2395,6 +2915,7 @@ packages: cpu: [arm] os: [android] requiresBuild: true + dev: false optional: true /@esbuild/android-arm@0.19.12: @@ -2405,6 +2926,15 @@ packages: requiresBuild: true optional: true + /@esbuild/android-arm@0.19.2: + resolution: {integrity: sha512-tM8yLeYVe7pRyAu9VMi/Q7aunpLwD139EY1S99xbQkT4/q2qa6eA4ige/WJQYdJ8GBL1K33pPFhPfPdJ/WzT8Q==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + /@esbuild/android-arm@0.20.2: resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} engines: {node: '>=12'} @@ -2428,6 +2958,7 @@ packages: cpu: [x64] os: [android] requiresBuild: true + dev: false optional: true /@esbuild/android-x64@0.19.12: @@ -2438,6 +2969,15 @@ packages: requiresBuild: true optional: true + /@esbuild/android-x64@0.19.2: + resolution: {integrity: sha512-qK/TpmHt2M/Hg82WXHRc/W/2SGo/l1thtDHZWqFq7oi24AjZ4O/CpPSu6ZuYKFkEgmZlFoa7CooAyYmuvnaG8w==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + /@esbuild/android-x64@0.20.2: resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} engines: {node: '>=12'} @@ -2461,6 +3001,7 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true + dev: false optional: true /@esbuild/darwin-arm64@0.19.12: @@ -2471,6 +3012,15 @@ packages: requiresBuild: true optional: true + /@esbuild/darwin-arm64@0.19.2: + resolution: {integrity: sha512-Ora8JokrvrzEPEpZO18ZYXkH4asCdc1DLdcVy8TGf5eWtPO1Ie4WroEJzwI52ZGtpODy3+m0a2yEX9l+KUn0tA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /@esbuild/darwin-arm64@0.20.2: resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} engines: {node: '>=12'} @@ -2494,6 +3044,7 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true + dev: false optional: true /@esbuild/darwin-x64@0.19.12: @@ -2504,6 +3055,15 @@ packages: requiresBuild: true optional: true + /@esbuild/darwin-x64@0.19.2: + resolution: {integrity: sha512-tP+B5UuIbbFMj2hQaUr6EALlHOIOmlLM2FK7jeFBobPy2ERdohI4Ka6ZFjZ1ZYsrHE/hZimGuU90jusRE0pwDw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /@esbuild/darwin-x64@0.20.2: resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} engines: {node: '>=12'} @@ -2527,6 +3087,7 @@ packages: cpu: [arm64] os: [freebsd] requiresBuild: true + dev: false optional: true /@esbuild/freebsd-arm64@0.19.12: @@ -2537,6 +3098,15 @@ packages: requiresBuild: true optional: true + /@esbuild/freebsd-arm64@0.19.2: + resolution: {integrity: sha512-YbPY2kc0acfzL1VPVK6EnAlig4f+l8xmq36OZkU0jzBVHcOTyQDhnKQaLzZudNJQyymd9OqQezeaBgkTGdTGeQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/freebsd-arm64@0.20.2: resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} engines: {node: '>=12'} @@ -2560,6 +3130,7 @@ packages: cpu: [x64] os: [freebsd] requiresBuild: true + dev: false optional: true /@esbuild/freebsd-x64@0.19.12: @@ -2570,6 +3141,15 @@ packages: requiresBuild: true optional: true + /@esbuild/freebsd-x64@0.19.2: + resolution: {integrity: sha512-nSO5uZT2clM6hosjWHAsS15hLrwCvIWx+b2e3lZ3MwbYSaXwvfO528OF+dLjas1g3bZonciivI8qKR/Hm7IWGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/freebsd-x64@0.20.2: resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} engines: {node: '>=12'} @@ -2593,6 +3173,7 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true + dev: false optional: true /@esbuild/linux-arm64@0.19.12: @@ -2603,6 +3184,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-arm64@0.19.2: + resolution: {integrity: sha512-ig2P7GeG//zWlU0AggA3pV1h5gdix0MA3wgB+NsnBXViwiGgY77fuN9Wr5uoCrs2YzaYfogXgsWZbm+HGr09xg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-arm64@0.20.2: resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} engines: {node: '>=12'} @@ -2626,6 +3216,7 @@ packages: cpu: [arm] os: [linux] requiresBuild: true + dev: false optional: true /@esbuild/linux-arm@0.19.12: @@ -2636,6 +3227,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-arm@0.19.2: + resolution: {integrity: sha512-Odalh8hICg7SOD7XCj0YLpYCEc+6mkoq63UnExDCiRA2wXEmGlK5JVrW50vZR9Qz4qkvqnHcpH+OFEggO3PgTg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-arm@0.20.2: resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} engines: {node: '>=12'} @@ -2659,6 +3259,7 @@ packages: cpu: [ia32] os: [linux] requiresBuild: true + dev: false optional: true /@esbuild/linux-ia32@0.19.12: @@ -2669,6 +3270,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-ia32@0.19.2: + resolution: {integrity: sha512-mLfp0ziRPOLSTek0Gd9T5B8AtzKAkoZE70fneiiyPlSnUKKI4lp+mGEnQXcQEHLJAcIYDPSyBvsUbKUG2ri/XQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-ia32@0.20.2: resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} engines: {node: '>=12'} @@ -2692,6 +3302,7 @@ packages: cpu: [loong64] os: [linux] requiresBuild: true + dev: false optional: true /@esbuild/linux-loong64@0.19.12: @@ -2702,6 +3313,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-loong64@0.19.2: + resolution: {integrity: sha512-hn28+JNDTxxCpnYjdDYVMNTR3SKavyLlCHHkufHV91fkewpIyQchS1d8wSbmXhs1fiYDpNww8KTFlJ1dHsxeSw==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-loong64@0.20.2: resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} engines: {node: '>=12'} @@ -2725,6 +3345,7 @@ packages: cpu: [mips64el] os: [linux] requiresBuild: true + dev: false optional: true /@esbuild/linux-mips64el@0.19.12: @@ -2735,6 +3356,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-mips64el@0.19.2: + resolution: {integrity: sha512-KbXaC0Sejt7vD2fEgPoIKb6nxkfYW9OmFUK9XQE4//PvGIxNIfPk1NmlHmMg6f25x57rpmEFrn1OotASYIAaTg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-mips64el@0.20.2: resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} engines: {node: '>=12'} @@ -2758,6 +3388,7 @@ packages: cpu: [ppc64] os: [linux] requiresBuild: true + dev: false optional: true /@esbuild/linux-ppc64@0.19.12: @@ -2768,6 +3399,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-ppc64@0.19.2: + resolution: {integrity: sha512-dJ0kE8KTqbiHtA3Fc/zn7lCd7pqVr4JcT0JqOnbj4LLzYnp+7h8Qi4yjfq42ZlHfhOCM42rBh0EwHYLL6LEzcw==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-ppc64@0.20.2: resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} engines: {node: '>=12'} @@ -2791,6 +3431,7 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true + dev: false optional: true /@esbuild/linux-riscv64@0.19.12: @@ -2801,8 +3442,17 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-riscv64@0.20.2: - resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} + /@esbuild/linux-riscv64@0.19.2: + resolution: {integrity: sha512-7Z/jKNFufZ/bbu4INqqCN6DDlrmOTmdw6D0gH+6Y7auok2r02Ur661qPuXidPOJ+FSgbEeQnnAGgsVynfLuOEw==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.20.2: + resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -2824,6 +3474,7 @@ packages: cpu: [s390x] os: [linux] requiresBuild: true + dev: false optional: true /@esbuild/linux-s390x@0.19.12: @@ -2834,6 +3485,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-s390x@0.19.2: + resolution: {integrity: sha512-U+RinR6aXXABFCcAY4gSlv4CL1oOVvSSCdseQmGO66H+XyuQGZIUdhG56SZaDJQcLmrSfRmx5XZOWyCJPRqS7g==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-s390x@0.20.2: resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} engines: {node: '>=12'} @@ -2857,6 +3517,7 @@ packages: cpu: [x64] os: [linux] requiresBuild: true + dev: false optional: true /@esbuild/linux-x64@0.19.12: @@ -2867,6 +3528,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-x64@0.19.2: + resolution: {integrity: sha512-oxzHTEv6VPm3XXNaHPyUTTte+3wGv7qVQtqaZCrgstI16gCuhNOtBXLEBkBREP57YTd68P0VgDgG73jSD8bwXQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-x64@0.20.2: resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} engines: {node: '>=12'} @@ -2890,6 +3560,7 @@ packages: cpu: [x64] os: [netbsd] requiresBuild: true + dev: false optional: true /@esbuild/netbsd-x64@0.19.12: @@ -2900,6 +3571,15 @@ packages: requiresBuild: true optional: true + /@esbuild/netbsd-x64@0.19.2: + resolution: {integrity: sha512-WNa5zZk1XpTTwMDompZmvQLHszDDDN7lYjEHCUmAGB83Bgs20EMs7ICD+oKeT6xt4phV4NDdSi/8OfjPbSbZfQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/netbsd-x64@0.20.2: resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} engines: {node: '>=12'} @@ -2923,6 +3603,7 @@ packages: cpu: [x64] os: [openbsd] requiresBuild: true + dev: false optional: true /@esbuild/openbsd-x64@0.19.12: @@ -2933,6 +3614,15 @@ packages: requiresBuild: true optional: true + /@esbuild/openbsd-x64@0.19.2: + resolution: {integrity: sha512-S6kI1aT3S++Dedb7vxIuUOb3oAxqxk2Rh5rOXOTYnzN8JzW1VzBd+IqPiSpgitu45042SYD3HCoEyhLKQcDFDw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/openbsd-x64@0.20.2: resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} engines: {node: '>=12'} @@ -2956,6 +3646,7 @@ packages: cpu: [x64] os: [sunos] requiresBuild: true + dev: false optional: true /@esbuild/sunos-x64@0.19.12: @@ -2966,6 +3657,15 @@ packages: requiresBuild: true optional: true + /@esbuild/sunos-x64@0.19.2: + resolution: {integrity: sha512-VXSSMsmb+Z8LbsQGcBMiM+fYObDNRm8p7tkUDMPG/g4fhFX5DEFmjxIEa3N8Zr96SjsJ1woAhF0DUnS3MF3ARw==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + /@esbuild/sunos-x64@0.20.2: resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} engines: {node: '>=12'} @@ -2989,6 +3689,7 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true + dev: false optional: true /@esbuild/win32-arm64@0.19.12: @@ -2999,6 +3700,15 @@ packages: requiresBuild: true optional: true + /@esbuild/win32-arm64@0.19.2: + resolution: {integrity: sha512-5NayUlSAyb5PQYFAU9x3bHdsqB88RC3aM9lKDAz4X1mo/EchMIT1Q+pSeBXNgkfNmRecLXA0O8xP+x8V+g/LKg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@esbuild/win32-arm64@0.20.2: resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} engines: {node: '>=12'} @@ -3022,6 +3732,7 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true + dev: false optional: true /@esbuild/win32-ia32@0.19.12: @@ -3032,6 +3743,15 @@ packages: requiresBuild: true optional: true + /@esbuild/win32-ia32@0.19.2: + resolution: {integrity: sha512-47gL/ek1v36iN0wL9L4Q2MFdujR0poLZMJwhO2/N3gA89jgHp4MR8DKCmwYtGNksbfJb9JoTtbkoe6sDhg2QTA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@esbuild/win32-ia32@0.20.2: resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} engines: {node: '>=12'} @@ -3055,6 +3775,7 @@ packages: cpu: [x64] os: [win32] requiresBuild: true + dev: false optional: true /@esbuild/win32-x64@0.19.12: @@ -3065,6 +3786,15 @@ packages: requiresBuild: true optional: true + /@esbuild/win32-x64@0.19.2: + resolution: {integrity: sha512-tcuhV7ncXBqbt/Ybf0IyrMcwVOAPDckMK9rXNHtF17UTK18OKLpg08glminN06pt2WCoALhXdLfSPbVvK/6fxw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@esbuild/win32-x64@0.20.2: resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} engines: {node: '>=12'} @@ -3086,6 +3816,10 @@ packages: resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + /@eslint-community/regexpp@4.6.2: + resolution: {integrity: sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + /@eslint/eslintrc@2.1.4: resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3093,8 +3827,8 @@ packages: ajv: 6.12.6 debug: 4.3.4 espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.1 + globals: 13.21.0 + ignore: 5.2.4 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -3147,6 +3881,16 @@ packages: '@floating-ui/utils': 0.2.1 dev: false + /@floating-ui/core@1.6.1: + resolution: {integrity: sha512-42UH54oPZHPdRHdw6BgoBD6cg/eVTmVrFcgeRDM3jbO7uxSoipVcmcIGFcA5jmOHO5apcyvBhkSKES3fQJnu7A==} + dependencies: + '@floating-ui/utils': 0.2.2 + + /@floating-ui/dom@1.1.1: + resolution: {integrity: sha512-TpIO93+DIujg3g7SykEAGZMDtbJRrmnYRCNYSjJlvIbGhBjRSNTLVbNeDQBrzy9qDgUbiWdc7KA0uZHZ2tJmiw==} + dependencies: + '@floating-ui/core': 1.6.1 + /@floating-ui/dom@1.6.3: resolution: {integrity: sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==} dependencies: @@ -3169,19 +3913,22 @@ packages: resolution: {integrity: sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==} dev: false - /@floating-ui/vue@1.0.6(vue@3.4.21): + /@floating-ui/utils@0.2.2: + resolution: {integrity: sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==} + + /@floating-ui/vue@1.0.6(vue@3.4.25): resolution: {integrity: sha512-EdrOljjkpkkqZnrpqUcPoz9NvHxuTjUtSInh6GMv3+Mcy+giY2cE2pHh9rpacRcZ2eMSCxel9jWkWXTjLmY55w==} dependencies: '@floating-ui/dom': 1.6.3 '@floating-ui/utils': 0.2.1 - vue-demi: 0.14.7(vue@3.4.21) + vue-demi: 0.14.5(vue@3.4.25) transitivePeerDependencies: - '@vue/composition-api' - vue dev: false - /@fontsource-variable/inter@5.0.17: - resolution: {integrity: sha512-sa80nNnqF8kzhBvqusWiL9vlPMVpdmOwMmDBup46Jggsr1VBqo+YuzwB36Ls+X6uHJtb8Yv3ALBHL/zGmT862A==} + /@fontsource-variable/inter@5.0.18: + resolution: {integrity: sha512-rJzSrtJ3b7djiGFvRuTe6stDfbYJGhdQSfn2SI2WfXviee7Er0yKAHE5u7FU7OWVQQQ1x3+cxdmx9NdiAkcrcA==} dev: false /@hapi/hoek@9.3.0: @@ -3194,33 +3941,42 @@ packages: '@hapi/hoek': 9.3.0 dev: true - /@headlessui/react@1.7.18(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-4i5DOrzwN4qSgNsL4Si61VMkUcWbcSKueUV7sFhpHzQcSShdlHENE5+QBntMSRvHt8NyoFO2AGG8si9lq+w4zQ==} + /@headlessui/react@1.7.19(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Ll+8q3OlMJfJbAKM/+/Y2q6PPYbryqNTXDbryx7SXLIDamkF6iQFbriYHga0dY44PvDhvvBWCx1Xj4U5+G4hOw==} engines: {node: '>=10'} peerDependencies: react: ^16 || ^17 || ^18 react-dom: ^16 || ^17 || ^18 dependencies: - '@tanstack/react-virtual': 3.2.0(react-dom@18.2.0)(react@18.2.0) + '@tanstack/react-virtual': 3.4.0(react-dom@18.2.0)(react@18.2.0) client-only: 0.0.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@headlessui/vue@1.7.19(vue@3.4.21): - resolution: {integrity: sha512-VFjKPybogux/5/QYGSq4zgG/x3RcxId15W8uguAJAjPBxelI23dwjOjTx/mIiMkM/Hd3rzFxcf2aIp56eEWRcA==} + /@headlessui/vue@1.7.20(vue@3.4.25): + resolution: {integrity: sha512-y83833wFo/+0FOrblgESiuvGwcHnfu8T2XQHb3iVA9GVSUVs3VLptp2bXlF5IR4IFD3Klr+jQEfreF6bSJNdOA==} engines: {node: '>=10'} peerDependencies: vue: ^3.2.0 dependencies: - '@tanstack/vue-virtual': 3.2.0(vue@3.4.21) - vue: 3.4.21(typescript@5.4.5) + '@tanstack/vue-virtual': 3.4.0(vue@3.4.25) + vue: 3.4.25(typescript@5.4.5) dev: false - /@hono/node-server@1.9.1: - resolution: {integrity: sha512-XBru0xbtRlTZJyAiFJLn7XDKbCVXBaRhVQAQhB9TwND2gwj8jf9SDWIj/7VxVtNAjURJf7Ofcz58DRA6DPYiWA==} + /@hono/node-server@1.11.0: + resolution: {integrity: sha512-TLIJq9TMtD1NEG1mVoqNUn1Ita0qSaB5XboZErjFBcO/GJYXwWY4dVdTi9G0lbxtu0x+hJXDItcLaFHb7rlFTw==} engines: {node: '>=18.14.1'} - dev: false + + /@hono/zod-validator@0.2.1(hono@4.2.6)(zod@3.23.0): + resolution: {integrity: sha512-HFoxln7Q6JsE64qz2WBS28SD33UB2alp3aRKmcWnNLDzEL1BLsWfbdX6e1HIiUprHYTIXf5y7ax8eYidKUwyaA==} + peerDependencies: + hono: '>=3.9.0' + zod: ^3.19.1 + dependencies: + hono: 4.2.6 + zod: 3.23.0 + dev: true /@hookform/resolvers@3.3.4(react-hook-form@7.51.3): resolution: {integrity: sha512-o5cgpGOuJYrd+iMKvkttOclgwRW86EsWJZZRC23prf0uU2i48Htq4PuT73AVb9ionFyZrwYEITuOFGF+BydEtQ==} @@ -3262,24 +4018,41 @@ packages: '@babel/traverse': 7.24.1 '@babel/types': 7.24.0 prettier: 3.2.5 - semver: 7.6.0 + semver: 7.5.4 transitivePeerDependencies: - supports-color dev: false - /@inquirer/confirm@3.1.2: - resolution: {integrity: sha512-xQeRxRpVOQdBinIyOHX9+/nTrvt84NnaP8hym5ARdLr6a5T1ckowx70sEaItgULBHlxSIJL970BoRfFxlzO2IA==} + /@iconify/types@2.0.0: + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} + + /@iconify/utils@2.1.23: + resolution: {integrity: sha512-YGNbHKM5tyDvdWZ92y2mIkrfvm5Fvhe6WJSkWu7vvOFhMtYDP0casZpoRz0XEHZCrYsR4stdGT3cZ52yp5qZdQ==} + dependencies: + '@antfu/install-pkg': 0.1.1 + '@antfu/utils': 0.7.7 + '@iconify/types': 2.0.0 + debug: 4.3.4 + kolorist: 1.8.0 + local-pkg: 0.5.0 + mlly: 1.6.1 + transitivePeerDependencies: + - supports-color + + /@inquirer/confirm@3.1.5: + resolution: {integrity: sha512-6+dwZrpko5vr5EFEQmUbfBVhtu6IsnB8lQNsLHgO9S9fbfS5J6MuUj+NY0h98pPpYZXEazLR7qzypEDqVzf6aQ==} engines: {node: '>=18'} dependencies: - '@inquirer/core': 7.1.2 - '@inquirer/type': 1.2.1 + '@inquirer/core': 8.0.1 + '@inquirer/type': 1.3.0 dev: false - /@inquirer/core@7.1.2: - resolution: {integrity: sha512-ne5VhDqruYYzx8mmjDZ9F58ymrLJGxmSHJUcJGiW3tifzvl3goAm6gNX11w6+zUnGE54vgQ6ALDXL3IOSezMRw==} + /@inquirer/core@8.0.1: + resolution: {integrity: sha512-qJRk1y51Os2ARc11Bg2N6uIwiQ9qBSrmZeuMonaQ/ntFpb4+VlcQ8Gl1TFH67mJLz3HA2nvuave0nbv6Lu8pbg==} engines: {node: '>=18'} dependencies: - '@inquirer/type': 1.2.1 + '@inquirer/figures': 1.0.1 + '@inquirer/type': 1.3.0 '@types/mute-stream': 0.0.4 '@types/node': 20.12.7 '@types/wrap-ansi': 3.0.0 @@ -3287,21 +4060,24 @@ packages: chalk: 4.1.2 cli-spinners: 2.9.2 cli-width: 4.1.0 - figures: 3.2.0 mute-stream: 1.0.0 signal-exit: 4.1.0 strip-ansi: 6.0.1 wrap-ansi: 6.2.0 dev: false - /@inquirer/type@1.2.1: - resolution: {integrity: sha512-xwMfkPAxeo8Ji/IxfUSqzRi0/+F2GIqJmpc5/thelgMGsjNZcjDDRBO9TLXT1s/hdx/mK5QbVIvgoLIFgXhTMQ==} + /@inquirer/figures@1.0.1: + resolution: {integrity: sha512-mtup3wVKia3ZwULPHcbs4Mor8Voi+iIXEWD7wCNbIO6lYR62oPCTQyrddi5OMYVXHzeCSoneZwJuS8sBvlEwDw==} + engines: {node: '>=18'} + dev: false + + /@inquirer/type@1.3.0: + resolution: {integrity: sha512-RW4Zf6RCTnInRaOZuRHTqAUl+v6VJuQGglir7nW2BkT3OXOphMhkIFhvFRjorBx2l0VwtC/M4No8vYR65TdN9Q==} engines: {node: '>=18'} dev: false /@ioredis/commands@1.2.0: resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==} - dev: false /@isaacs/cliui@8.0.2: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} @@ -3324,7 +4100,14 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@sinclair/typebox': 0.27.8 - dev: false + + /@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.19 /@jridgewell/gen-mapping@0.3.5: resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} @@ -3334,34 +4117,43 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.25 - /@jridgewell/resolve-uri@3.1.2: - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + engines: {node: '>=6.0.0'} + + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} engines: {node: '>=6.0.0'} /@jridgewell/set-array@1.2.1: resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} engines: {node: '>=6.0.0'} - /@jridgewell/source-map@0.3.6: - resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + /@jridgewell/source-map@0.3.5: + resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - dev: false + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.19 /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + /@jridgewell/trace-mapping@0.3.19: + resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + /@jridgewell/trace-mapping@0.3.25: resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} dependencies: - '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 /@jridgewell/trace-mapping@0.3.9: resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} dependencies: - '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 dev: true @@ -3369,6 +4161,16 @@ packages: resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==} dev: false + /@kwsites/file-exists@1.1.1: + resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + + /@kwsites/promise-deferred@1.1.1: + resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==} + /@lezer/common@1.2.1: resolution: {integrity: sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==} dev: false @@ -3425,8 +4227,108 @@ packages: '@lezer/lr': 1.4.0 dev: false - /@manypkg/cli@0.21.3: - resolution: {integrity: sha512-ro6j5b+44dN2AfId23voWxdlOqUCSbCwUHrUwq0LpoN/oZy6zQFAHDwYHbw50j2nL9EgpwIA03ZjaBceuUcMrw==} + /@libsql/client@0.6.0: + resolution: {integrity: sha512-qhQzTG/y2IEVbL3+9PULDvlQFWJ/RnjFXECr/Nc3nRngGiiMysDaOV5VUzYk7DulUX98EA4wi+z3FspKrUplUA==} + dependencies: + '@libsql/core': 0.6.0 + '@libsql/hrana-client': 0.6.0 + js-base64: 3.7.7 + libsql: 0.3.18 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /@libsql/core@0.6.0: + resolution: {integrity: sha512-affAB8vSqQwqI9NBDJ5uJCVaHoOAS2pOpbv1kWConh1SBbmJBnHHd4KG73RAJ2sgd2+NbT9WA+XJBqxgp28YSw==} + dependencies: + js-base64: 3.7.7 + dev: false + + /@libsql/darwin-arm64@0.3.18: + resolution: {integrity: sha512-Zt49dt+cwhPCkuoWgvjbQd4ckNfCJR5xzIAyhgHl3CBZqZaEuaXTOGKLNQT7bnFRPuQcdLt5PBT1cenKu2N6pA==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@libsql/darwin-x64@0.3.18: + resolution: {integrity: sha512-faq6HUGDaNaueeqPei5cypHaD/hhazUyfHo094CXiEeRZq6ZKtNl5PHdlr8jE/Uw8USNpVVQaLdnvSgKcpRPHw==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@libsql/hrana-client@0.6.0: + resolution: {integrity: sha512-k+fqzdjqg3IvWfKmVJK5StsbjeTcyNAXFelUbXbGNz3yH1gEVT9mZ6kmhsIXP30ZSyVV0AE1Gi25p82mxC9hwg==} + dependencies: + '@libsql/isomorphic-fetch': 0.2.1 + '@libsql/isomorphic-ws': 0.1.5 + js-base64: 3.7.7 + node-fetch: 3.3.2 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /@libsql/isomorphic-fetch@0.2.1: + resolution: {integrity: sha512-Sv07QP1Aw8A5OOrmKgRUBKe2fFhF2hpGJhtHe3d1aRnTESZCGkn//0zDycMKTGamVWb3oLYRroOsCV8Ukes9GA==} + dev: false + + /@libsql/isomorphic-ws@0.1.5: + resolution: {integrity: sha512-DtLWIH29onUYR00i0GlQ3UdcTRC6EP4u9w/h9LxpUZJWRMARk6dQwZ6Jkd+QdwVpuAOrdxt18v0K2uIYR3fwFg==} + dependencies: + '@types/ws': 8.5.10 + ws: 8.16.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /@libsql/linux-arm64-gnu@0.3.18: + resolution: {integrity: sha512-5m9xtDAhoyLSV54tho9uQ2ZIDeJWc0vU3Xpe/VK4+6bpURISs23qNhXiCrZnnq3oV0hFlBfcIgQUIATmb6jD2A==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@libsql/linux-arm64-musl@0.3.18: + resolution: {integrity: sha512-oYD5+oM2gPEalp+EoR5DVQBRtdGjLsocjsRbQs5O2m4WOBJKER7VUfDYZHsifLGZoBSc11Yo6s9IR9rjGWy20w==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@libsql/linux-x64-gnu@0.3.18: + resolution: {integrity: sha512-QDSSP60nS8KIldGE7H3bpEflQHiL1erwED6huoVJdmDFxsyDJX2CYdWUWW8Za0ZUOvUbnEWAOyMhp6j1dBbZqw==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@libsql/linux-x64-musl@0.3.18: + resolution: {integrity: sha512-5SXwTlaLCUPzxYyq+P0c7Ko7tcEjpd1X6RZKe1DuRFmJPg6f7j2+LrPEhMSIbqKcrl5ACUUAyoKmGZqNYwz23w==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@libsql/win32-x64-msvc@0.3.18: + resolution: {integrity: sha512-9EEIHz+e8tTbx9TMkb8ByZnzxc0pYFirK1nSbqC6cFEST95fiY0NCfQ/zAzJxe90KckbjifX6BbO69eWIi3TAg==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@manypkg/cli@0.21.4: + resolution: {integrity: sha512-EACxxb+c/t6G0l1FrlyewZeBnyR5V1cLkXjnBfsay5TN1UgbilFpG6POglzn+lVJet9NqnEKe3RLHABzkIDZ0Q==} engines: {node: '>=14.18.0'} hasBin: true dependencies: @@ -3496,25 +4398,24 @@ packages: resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} hasBin: true dependencies: - detect-libc: 2.0.3 + detect-libc: 2.0.2 https-proxy-agent: 5.0.1 make-dir: 3.1.0 - node-fetch: 2.7.0 + node-fetch: 2.6.12 nopt: 5.0.0 npmlog: 5.0.1 rimraf: 3.0.2 semver: 7.6.0 - tar: 6.2.1 + tar: 6.1.15 transitivePeerDependencies: - encoding - supports-color - dev: false /@mdx-js/mdx@2.3.0: resolution: {integrity: sha512-jLuwRlz8DQfQNiUCJR50Y09CGPq3fLtmtUQfVrj79E0JWu3dvsVcxVIcfhR5h0iXu+/z++zDrYeiJqifRynJkA==} dependencies: - '@types/estree-jsx': 1.0.5 - '@types/mdx': 2.0.12 + '@types/estree-jsx': 1.0.0 + '@types/mdx': 2.0.6 estree-util-build-jsx: 2.2.2 estree-util-is-identifier-name: 2.1.0 estree-util-to-js: 1.2.0 @@ -3539,7 +4440,7 @@ packages: peerDependencies: react: '>=16' dependencies: - '@types/mdx': 2.0.12 + '@types/mdx': 2.0.6 '@types/react': 18.2.78 react: 18.2.0 dev: false @@ -3678,17 +4579,19 @@ packages: '@napi-rs/simple-git-win32-x64-msvc': 0.1.16 dev: false + /@neon-rs/load@0.0.4: + resolution: {integrity: sha512-kTPhdZyTQxB+2wpiRcFWrDcejc4JI6tkPuS7UZCG4l6Zvc5kU/gGQ/ozvHTh1XR5tS+UlfAfGuPajjzQjCiHCw==} + dev: false + /@netlify/functions@2.6.0: resolution: {integrity: sha512-vU20tij0fb4nRGACqb+5SQvKd50JYyTyEhQetCMHdakcJFzjLDivvRR16u1G2Oy4A7xNAtGJF1uz8reeOtTVcQ==} engines: {node: '>=14.0.0'} dependencies: '@netlify/serverless-functions-api': 1.14.0 - dev: false /@netlify/node-cookies@0.1.0: resolution: {integrity: sha512-OAs1xG+FfLX0LoRASpqzVntVV/RpYkgpI0VrUnw2u0Q1qiZUzcPffxRK8HF3gc4GjuhG5ahOEMJ9bswBiZPq0g==} engines: {node: ^14.16.0 || >=16.0.0} - dev: false /@netlify/serverless-functions-api@1.14.0: resolution: {integrity: sha512-HUNETLNvNiC2J+SB/YuRwJA9+agPrc0azSoWVk8H85GC+YE114hcS5JW+dstpKwVerp2xILE3vNWN7IMXP5Q5Q==} @@ -3696,13 +4599,21 @@ packages: dependencies: '@netlify/node-cookies': 0.1.0 urlpattern-polyfill: 8.0.2 - dev: false + + /@next/bundle-analyzer@14.2.1: + resolution: {integrity: sha512-Qwy3Mu/dfnu4rs2xzCy7gKZlwzZzYtiq/rjPcK/7xq3BHSyLthkHf1NAF8NNfjVTouDwo2KchisHrmAamUNWWw==} + dependencies: + webpack-bundle-analyzer: 4.10.1 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: true /@next/env@14.2.1: resolution: {integrity: sha512-qsHJle3GU3CmVx7pUoXcghX4sRN+vINkbLdH611T8ZlsP//grzqVW87BSUgOZeSAD4q7ZdZicdwNe/20U2janA==} - /@next/eslint-plugin-next@14.2.1: - resolution: {integrity: sha512-Fp+mthEBjkn8r9qd6o4JgxKp0IDEzW0VYHD8ZC05xS5/lFNwHKuOdr2kVhWG7BQCO9L6eeepshM1Wbs2T+LgSg==} + /@next/eslint-plugin-next@14.2.2: + resolution: {integrity: sha512-q+Ec2648JtBpKiu/FSJm8HAsFXlNvioHeBCbTP12T1SGcHYwhqHULSfQgFkPgHDu3kzNp2Kem4J54bK4rPQ5SQ==} dependencies: glob: 10.3.10 @@ -3794,10974 +4705,14917 @@ packages: engines: {node: '>= 8'} dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 + fastq: 1.15.0 - /@open-draft/deferred-promise@2.2.0: - resolution: {integrity: sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==} - dev: false + /@npmcli/agent@2.2.2: + resolution: {integrity: sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + agent-base: 7.1.0 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.1 + lru-cache: 10.0.1 + socks-proxy-agent: 8.0.3 + transitivePeerDependencies: + - supports-color - /@open-draft/logger@0.3.0: - resolution: {integrity: sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==} + /@npmcli/fs@3.1.0: + resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - is-node-process: 1.2.0 - outvariant: 1.4.2 - dev: false + semver: 7.6.0 - /@open-draft/until@2.1.0: - resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} - dev: false + /@npmcli/git@5.0.6: + resolution: {integrity: sha512-4x/182sKXmQkf0EtXxT26GEsaOATpD7WVtza5hrYivWZeo6QefC6xq9KAXrnjtFKBZ4rZwR7aX/zClYYXgtwLw==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + '@npmcli/promise-spawn': 7.0.1 + lru-cache: 10.0.1 + npm-pick-manifest: 9.0.0 + proc-log: 4.2.0 + promise-inflight: 1.0.1 + promise-retry: 2.0.1 + semver: 7.6.0 + which: 4.0.0 + transitivePeerDependencies: + - bluebird - /@parcel/watcher-android-arm64@2.4.1: - resolution: {integrity: sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: false - optional: true + /@npmcli/installed-package-contents@2.0.2: + resolution: {integrity: sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true + dependencies: + npm-bundled: 3.0.0 + npm-normalize-package-bin: 3.0.1 - /@parcel/watcher-darwin-arm64@2.4.1: - resolution: {integrity: sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false - optional: true + /@npmcli/node-gyp@3.0.0: + resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - /@parcel/watcher-darwin-x64@2.4.1: - resolution: {integrity: sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false - optional: true + /@npmcli/package-json@5.0.3: + resolution: {integrity: sha512-cgsjCvld2wMqkUqvY+SZI+1ZJ7umGBYc9IAKfqJRKJCcs7hCQYxScUgdsyrRINk3VmdCYf9TXiLBHQ6ECTxhtg==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + '@npmcli/git': 5.0.6 + glob: 10.3.12 + hosted-git-info: 7.0.1 + json-parse-even-better-errors: 3.0.0 + normalize-package-data: 6.0.0 + proc-log: 4.2.0 + semver: 7.6.0 + transitivePeerDependencies: + - bluebird - /@parcel/watcher-freebsd-x64@2.4.1: - resolution: {integrity: sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: false - optional: true - - /@parcel/watcher-linux-arm-glibc@2.4.1: - resolution: {integrity: sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==} - engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@parcel/watcher-linux-arm64-glibc@2.4.1: - resolution: {integrity: sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@parcel/watcher-linux-arm64-musl@2.4.1: - resolution: {integrity: sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@parcel/watcher-linux-x64-glibc@2.4.1: - resolution: {integrity: sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@parcel/watcher-linux-x64-musl@2.4.1: - resolution: {integrity: sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@parcel/watcher-wasm@2.3.0: - resolution: {integrity: sha512-ejBAX8H0ZGsD8lSICDNyMbSEtPMWgDL0WFCt/0z7hyf5v8Imz4rAM8xY379mBsECkq/Wdqa5WEDLqtjZ+6NxfA==} - engines: {node: '>= 10.0.0'} - dependencies: - is-glob: 4.0.3 - micromatch: 4.0.5 - dev: false - bundledDependencies: - - napi-wasm - - /@parcel/watcher-wasm@2.4.1: - resolution: {integrity: sha512-/ZR0RxqxU/xxDGzbzosMjh4W6NdYFMqq2nvo2b8SLi7rsl/4jkL8S5stIikorNkdR50oVDvqb/3JT05WM+CRRA==} - engines: {node: '>= 10.0.0'} + /@npmcli/promise-spawn@7.0.1: + resolution: {integrity: sha512-P4KkF9jX3y+7yFUxgcUdDtLy+t4OlDGuEBLNs57AZsfSfg+uV6MLndqGpnl4831ggaEdXwR50XFoZP4VFtHolg==} + engines: {node: ^16.14.0 || >=18.0.0} dependencies: - is-glob: 4.0.3 - micromatch: 4.0.5 - dev: false - bundledDependencies: - - napi-wasm + which: 4.0.0 - /@parcel/watcher-win32-arm64@2.4.1: - resolution: {integrity: sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false - optional: true + /@npmcli/redact@1.1.0: + resolution: {integrity: sha512-PfnWuOkQgu7gCbnSsAisaX7hKOdZ4wSAhAzH3/ph5dSGau52kCRrMMGbiSQLwyTZpgldkZ49b0brkOr1AzGBHQ==} + engines: {node: ^16.14.0 || >=18.0.0} - /@parcel/watcher-win32-ia32@2.4.1: - resolution: {integrity: sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==} - engines: {node: '>= 10.0.0'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false - optional: true + /@npmcli/run-script@8.0.0: + resolution: {integrity: sha512-5noc+eCQmX1W9nlFUe65n5MIteikd3vOA2sEPdXtlUv68KWyHNFZnT/LDRXu/E4nZ5yxjciP30pADr/GQ97W1w==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + '@npmcli/node-gyp': 3.0.0 + '@npmcli/package-json': 5.0.3 + '@npmcli/promise-spawn': 7.0.1 + node-gyp: 10.1.0 + proc-log: 4.2.0 + which: 4.0.0 + transitivePeerDependencies: + - bluebird + - supports-color - /@parcel/watcher-win32-x64@2.4.1: - resolution: {integrity: sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false - optional: true + /@nuxt/devalue@2.0.2: + resolution: {integrity: sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA==} - /@parcel/watcher@2.4.1: - resolution: {integrity: sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==} - engines: {node: '>= 10.0.0'} + /@nuxt/devtools-kit@1.2.0(nuxt@3.11.2)(rollup@3.29.4)(vite@5.2.10): + resolution: {integrity: sha512-T81TQuaN6hbQFzgvQeRAMJjcL4mgWtYvlGTAvtuvd3TFuHV7bMK+tFZaxgJXzIu1/UPO7/aO4VLCB0xl5sSwZw==} + peerDependencies: + nuxt: ^3.9.0 + vite: '*' dependencies: - detect-libc: 1.0.3 - is-glob: 4.0.3 - micromatch: 4.0.5 - node-addon-api: 7.1.0 - optionalDependencies: - '@parcel/watcher-android-arm64': 2.4.1 - '@parcel/watcher-darwin-arm64': 2.4.1 - '@parcel/watcher-darwin-x64': 2.4.1 - '@parcel/watcher-freebsd-x64': 2.4.1 - '@parcel/watcher-linux-arm-glibc': 2.4.1 - '@parcel/watcher-linux-arm64-glibc': 2.4.1 - '@parcel/watcher-linux-arm64-musl': 2.4.1 - '@parcel/watcher-linux-x64-glibc': 2.4.1 - '@parcel/watcher-linux-x64-musl': 2.4.1 - '@parcel/watcher-win32-arm64': 2.4.1 - '@parcel/watcher-win32-ia32': 2.4.1 - '@parcel/watcher-win32-x64': 2.4.1 - dev: false + '@nuxt/kit': 3.11.2(rollup@3.29.4) + '@nuxt/schema': 3.11.2(rollup@3.29.4) + execa: 7.2.0 + nuxt: 3.11.2(@types/node@20.12.7)(@unocss/reset@0.59.4)(eslint@8.57.0)(floating-vue@5.2.2)(rollup@3.29.4)(typescript@5.4.5)(unocss@0.59.4)(vite@5.2.10) + vite: 5.2.10(@types/node@20.12.7) + transitivePeerDependencies: + - rollup + - supports-color + dev: true - /@peculiar/asn1-schema@2.3.8: - resolution: {integrity: sha512-ULB1XqHKx1WBU/tTFIA+uARuRoBVZ4pNdOA878RDrRbBfBGcSzi5HBkdScC6ZbHn8z7L8gmKCgPC1LHRrP46tA==} + /@nuxt/devtools-kit@1.2.0(nuxt@3.11.2)(rollup@4.16.2)(vite@5.2.10): + resolution: {integrity: sha512-T81TQuaN6hbQFzgvQeRAMJjcL4mgWtYvlGTAvtuvd3TFuHV7bMK+tFZaxgJXzIu1/UPO7/aO4VLCB0xl5sSwZw==} + peerDependencies: + nuxt: ^3.9.0 + vite: '*' dependencies: - asn1js: 3.0.5 - pvtsutils: 1.3.5 - tslib: 2.6.2 - dev: false + '@nuxt/kit': 3.11.2(rollup@4.16.2) + '@nuxt/schema': 3.11.2(rollup@4.16.2) + execa: 7.2.0 + nuxt: 3.11.2(@types/node@20.12.7)(@unocss/reset@0.59.4)(eslint@8.57.0)(floating-vue@5.2.2)(rollup@4.16.2)(typescript@5.4.5)(unocss@0.59.4)(vite@5.2.10) + vite: 5.2.10(@types/node@20.12.7) + transitivePeerDependencies: + - rollup + - supports-color + dev: true - /@peculiar/json-schema@1.1.12: - resolution: {integrity: sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==} - engines: {node: '>=8.0.0'} + /@nuxt/devtools-kit@1.2.0(nuxt@3.11.2)(vite@5.2.10): + resolution: {integrity: sha512-T81TQuaN6hbQFzgvQeRAMJjcL4mgWtYvlGTAvtuvd3TFuHV7bMK+tFZaxgJXzIu1/UPO7/aO4VLCB0xl5sSwZw==} + peerDependencies: + nuxt: ^3.9.0 + vite: '*' dependencies: - tslib: 2.6.2 + '@nuxt/kit': 3.11.2 + '@nuxt/schema': 3.11.2 + execa: 7.2.0 + nuxt: 3.11.2(@types/node@20.12.7)(@unocss/reset@0.59.4)(floating-vue@5.2.2)(typescript@5.4.5)(unocss@0.59.4)(vite@5.2.10) + vite: 5.2.10(@types/node@20.12.7) + transitivePeerDependencies: + - rollup + - supports-color dev: false - /@peculiar/webcrypto@1.4.1: - resolution: {integrity: sha512-eK4C6WTNYxoI7JOabMoZICiyqRRtJB220bh0Mbj5RwRycleZf9BPyZoxsTvpP0FpmVS2aS13NKOuh5/tN3sIRw==} - engines: {node: '>=10.12.0'} + /@nuxt/devtools-wizard@1.2.0: + resolution: {integrity: sha512-qGepEgm7m1q9fmnwcrbijpRgdprPbczStmVlKcONYE/9PrGn+MHeHthJHD0im30FHBVQytbN11jor1sHEauGhA==} + hasBin: true dependencies: - '@peculiar/asn1-schema': 2.3.8 - '@peculiar/json-schema': 1.1.12 - pvtsutils: 1.3.5 - tslib: 2.6.2 - webcrypto-core: 1.7.9 - dev: false - - /@pkgjs/parseargs@0.11.0: - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - requiresBuild: true - optional: true + consola: 3.2.3 + diff: 5.2.0 + execa: 7.2.0 + global-directory: 4.0.1 + magicast: 0.3.4 + pathe: 1.1.2 + pkg-types: 1.1.0 + prompts: 2.4.2 + rc9: 2.1.2 + semver: 7.6.0 - /@playwright/test@1.42.1: - resolution: {integrity: sha512-Gq9rmS54mjBL/7/MvBaNOBwbfnh7beHvS6oS4srqXFcQHpQCV1+c8JXWE8VLPyRDhgS3H8x8A7hztqI9VnwrAQ==} - engines: {node: '>=16'} + /@nuxt/devtools@1.2.0(@unocss/reset@0.59.4)(floating-vue@5.2.2)(nuxt@3.11.2)(rollup@3.29.4)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.24): + resolution: {integrity: sha512-pdEvZJqovqxJp9E1BJAaGeFdFPEpCKwuuy9l9k4exBvwvxjTfjLeyW7oPD5RUTCGGxhOswgbXwuDrO4k+x2zpA==} hasBin: true + peerDependencies: + nuxt: ^3.9.0 + vite: '*' dependencies: - playwright: 1.42.1 + '@antfu/utils': 0.7.7 + '@nuxt/devtools-kit': 1.2.0(nuxt@3.11.2)(rollup@3.29.4)(vite@5.2.10) + '@nuxt/devtools-wizard': 1.2.0 + '@nuxt/kit': 3.11.2(rollup@3.29.4) + '@vue/devtools-applet': 7.0.27(@unocss/reset@0.59.4)(floating-vue@5.2.2)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.24) + '@vue/devtools-core': 7.0.27(vite@5.2.10)(vue@3.4.24) + '@vue/devtools-kit': 7.0.27(vue@3.4.24) + birpc: 0.2.17 + consola: 3.2.3 + cronstrue: 2.49.0 + destr: 2.0.3 + error-stack-parser-es: 0.1.1 + execa: 7.2.0 + fast-glob: 3.3.2 + flatted: 3.3.1 + get-port-please: 3.1.2 + hookable: 5.5.3 + image-meta: 0.2.0 + is-installed-globally: 1.0.0 + launch-editor: 2.6.1 + local-pkg: 0.5.0 + magicast: 0.3.4 + nuxt: 3.11.2(@types/node@20.12.7)(@unocss/reset@0.59.4)(eslint@8.57.0)(floating-vue@5.2.2)(rollup@3.29.4)(typescript@5.4.5)(unocss@0.59.4)(vite@5.2.10) + nypm: 0.3.8 + ohash: 1.1.3 + pacote: 18.0.0 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.1.0 + rc9: 2.1.2 + scule: 1.3.0 + semver: 7.6.0 + simple-git: 3.24.0 + sirv: 2.0.4 + unimport: 3.7.1(rollup@3.29.4) + vite: 5.2.10(@types/node@20.12.7) + vite-plugin-inspect: 0.8.4(@nuxt/kit@3.11.2)(rollup@3.29.4)(vite@5.2.10) + vite-plugin-vue-inspector: 4.0.2(vite@5.2.10) + which: 3.0.1 + ws: 8.16.0 + transitivePeerDependencies: + - '@unocss/reset' + - '@vue/composition-api' + - async-validator + - axios + - bluebird + - bufferutil + - change-case + - drauu + - floating-vue + - fuse.js + - idb-keyval + - jwt-decode + - nprogress + - qrcode + - rollup + - sortablejs + - supports-color + - universal-cookie + - unocss + - utf-8-validate + - vue dev: true - /@pnpm/config.env-replace@1.1.0: - resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} - engines: {node: '>=12.22.0'} - dev: false - - /@pnpm/network.ca-file@1.0.2: - resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} - engines: {node: '>=12.22.0'} + /@nuxt/devtools@1.2.0(@unocss/reset@0.59.4)(floating-vue@5.2.2)(nuxt@3.11.2)(rollup@3.29.4)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.25): + resolution: {integrity: sha512-pdEvZJqovqxJp9E1BJAaGeFdFPEpCKwuuy9l9k4exBvwvxjTfjLeyW7oPD5RUTCGGxhOswgbXwuDrO4k+x2zpA==} + hasBin: true + peerDependencies: + nuxt: ^3.9.0 + vite: '*' dependencies: - graceful-fs: 4.2.10 - dev: false + '@antfu/utils': 0.7.7 + '@nuxt/devtools-kit': 1.2.0(nuxt@3.11.2)(rollup@3.29.4)(vite@5.2.10) + '@nuxt/devtools-wizard': 1.2.0 + '@nuxt/kit': 3.11.2(rollup@3.29.4) + '@vue/devtools-applet': 7.0.27(@unocss/reset@0.59.4)(floating-vue@5.2.2)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.25) + '@vue/devtools-core': 7.0.27(vite@5.2.10)(vue@3.4.25) + '@vue/devtools-kit': 7.0.27(vue@3.4.25) + birpc: 0.2.17 + consola: 3.2.3 + cronstrue: 2.49.0 + destr: 2.0.3 + error-stack-parser-es: 0.1.1 + execa: 7.2.0 + fast-glob: 3.3.2 + flatted: 3.3.1 + get-port-please: 3.1.2 + hookable: 5.5.3 + image-meta: 0.2.0 + is-installed-globally: 1.0.0 + launch-editor: 2.6.1 + local-pkg: 0.5.0 + magicast: 0.3.4 + nuxt: 3.11.2(@types/node@20.12.7)(@unocss/reset@0.59.4)(eslint@8.57.0)(floating-vue@5.2.2)(rollup@3.29.4)(typescript@5.4.5)(unocss@0.59.4)(vite@5.2.10) + nypm: 0.3.8 + ohash: 1.1.3 + pacote: 18.0.0 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.1.0 + rc9: 2.1.2 + scule: 1.3.0 + semver: 7.6.0 + simple-git: 3.24.0 + sirv: 2.0.4 + unimport: 3.7.1(rollup@3.29.4) + vite: 5.2.10(@types/node@20.12.7) + vite-plugin-inspect: 0.8.4(@nuxt/kit@3.11.2)(rollup@3.29.4)(vite@5.2.10) + vite-plugin-vue-inspector: 4.0.2(vite@5.2.10) + which: 3.0.1 + ws: 8.16.0 + transitivePeerDependencies: + - '@unocss/reset' + - '@vue/composition-api' + - async-validator + - axios + - bluebird + - bufferutil + - change-case + - drauu + - floating-vue + - fuse.js + - idb-keyval + - jwt-decode + - nprogress + - qrcode + - rollup + - sortablejs + - supports-color + - universal-cookie + - unocss + - utf-8-validate + - vue + dev: true - /@pnpm/npm-conf@2.2.2: - resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==} - engines: {node: '>=12'} + /@nuxt/devtools@1.2.0(@unocss/reset@0.59.4)(floating-vue@5.2.2)(nuxt@3.11.2)(rollup@4.16.2)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.24): + resolution: {integrity: sha512-pdEvZJqovqxJp9E1BJAaGeFdFPEpCKwuuy9l9k4exBvwvxjTfjLeyW7oPD5RUTCGGxhOswgbXwuDrO4k+x2zpA==} + hasBin: true + peerDependencies: + nuxt: ^3.9.0 + vite: '*' dependencies: - '@pnpm/config.env-replace': 1.1.0 - '@pnpm/network.ca-file': 1.0.2 - config-chain: 1.1.13 - dev: false - - /@polka/url@1.0.0-next.25: - resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} - - /@popperjs/core@2.11.8: - resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} - dev: false + '@antfu/utils': 0.7.7 + '@nuxt/devtools-kit': 1.2.0(nuxt@3.11.2)(rollup@4.16.2)(vite@5.2.10) + '@nuxt/devtools-wizard': 1.2.0 + '@nuxt/kit': 3.11.2(rollup@4.16.2) + '@vue/devtools-applet': 7.0.27(@unocss/reset@0.59.4)(floating-vue@5.2.2)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.24) + '@vue/devtools-core': 7.0.27(vite@5.2.10)(vue@3.4.24) + '@vue/devtools-kit': 7.0.27(vue@3.4.24) + birpc: 0.2.17 + consola: 3.2.3 + cronstrue: 2.49.0 + destr: 2.0.3 + error-stack-parser-es: 0.1.1 + execa: 7.2.0 + fast-glob: 3.3.2 + flatted: 3.3.1 + get-port-please: 3.1.2 + hookable: 5.5.3 + image-meta: 0.2.0 + is-installed-globally: 1.0.0 + launch-editor: 2.6.1 + local-pkg: 0.5.0 + magicast: 0.3.4 + nuxt: 3.11.2(@types/node@20.12.7)(@unocss/reset@0.59.4)(eslint@8.57.0)(floating-vue@5.2.2)(rollup@4.16.2)(typescript@5.4.5)(unocss@0.59.4)(vite@5.2.10) + nypm: 0.3.8 + ohash: 1.1.3 + pacote: 18.0.0 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.1.0 + rc9: 2.1.2 + scule: 1.3.0 + semver: 7.6.0 + simple-git: 3.24.0 + sirv: 2.0.4 + unimport: 3.7.1(rollup@4.16.2) + vite: 5.2.10(@types/node@20.12.7) + vite-plugin-inspect: 0.8.4(@nuxt/kit@3.11.2)(rollup@4.16.2)(vite@5.2.10) + vite-plugin-vue-inspector: 4.0.2(vite@5.2.10) + which: 3.0.1 + ws: 8.16.0 + transitivePeerDependencies: + - '@unocss/reset' + - '@vue/composition-api' + - async-validator + - axios + - bluebird + - bufferutil + - change-case + - drauu + - floating-vue + - fuse.js + - idb-keyval + - jwt-decode + - nprogress + - qrcode + - rollup + - sortablejs + - supports-color + - universal-cookie + - unocss + - utf-8-validate + - vue + dev: true - /@prettier/sync@0.5.1(prettier@3.2.5): - resolution: {integrity: sha512-tpF+A1e4ynO2U4fTH21Sjgm9EYENmqg4zmJCMLrmLVfzIzuDc1cKGXyxrxbFgcH8qQRfowyDCZFAUukwhiZlsw==} + /@nuxt/devtools@1.2.0(@unocss/reset@0.59.4)(floating-vue@5.2.2)(nuxt@3.11.2)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.24): + resolution: {integrity: sha512-pdEvZJqovqxJp9E1BJAaGeFdFPEpCKwuuy9l9k4exBvwvxjTfjLeyW7oPD5RUTCGGxhOswgbXwuDrO4k+x2zpA==} + hasBin: true peerDependencies: - prettier: '*' + nuxt: ^3.9.0 + vite: '*' dependencies: - make-synchronized: 0.2.8 - prettier: 3.2.5 + '@antfu/utils': 0.7.7 + '@nuxt/devtools-kit': 1.2.0(nuxt@3.11.2)(vite@5.2.10) + '@nuxt/devtools-wizard': 1.2.0 + '@nuxt/kit': 3.11.2 + '@vue/devtools-applet': 7.0.27(@unocss/reset@0.59.4)(floating-vue@5.2.2)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.24) + '@vue/devtools-core': 7.0.27(vite@5.2.10)(vue@3.4.24) + '@vue/devtools-kit': 7.0.27(vue@3.4.24) + birpc: 0.2.17 + consola: 3.2.3 + cronstrue: 2.49.0 + destr: 2.0.3 + error-stack-parser-es: 0.1.1 + execa: 7.2.0 + fast-glob: 3.3.2 + flatted: 3.3.1 + get-port-please: 3.1.2 + hookable: 5.5.3 + image-meta: 0.2.0 + is-installed-globally: 1.0.0 + launch-editor: 2.6.1 + local-pkg: 0.5.0 + magicast: 0.3.4 + nuxt: 3.11.2(@types/node@20.12.7)(@unocss/reset@0.59.4)(floating-vue@5.2.2)(typescript@5.4.5)(unocss@0.59.4)(vite@5.2.10) + nypm: 0.3.8 + ohash: 1.1.3 + pacote: 18.0.0 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.1.0 + rc9: 2.1.2 + scule: 1.3.0 + semver: 7.6.0 + simple-git: 3.24.0 + sirv: 2.0.4 + unimport: 3.7.1(rollup@3.29.4) + vite: 5.2.10(@types/node@20.12.7) + vite-plugin-inspect: 0.8.4(@nuxt/kit@3.11.2)(vite@5.2.10) + vite-plugin-vue-inspector: 4.0.2(vite@5.2.10) + which: 3.0.1 + ws: 8.16.0 + transitivePeerDependencies: + - '@unocss/reset' + - '@vue/composition-api' + - async-validator + - axios + - bluebird + - bufferutil + - change-case + - drauu + - floating-vue + - fuse.js + - idb-keyval + - jwt-decode + - nprogress + - qrcode + - rollup + - sortablejs + - supports-color + - universal-cookie + - unocss + - utf-8-validate + - vue dev: false - /@radix-ui/number@1.0.1: - resolution: {integrity: sha512-T5gIdVO2mmPW3NNhjNgEP3cqMXjXL9UbO0BzWcXfvdBs+BohbQxvd/K5hSVKmn9/lbTdsQVKbUcP5WLCwvUbBg==} + /@nuxt/kit@3.11.2: + resolution: {integrity: sha512-yiYKP0ZWMW7T3TCmsv4H8+jEsB/nFriRAR8bKoSqSV9bkVYWPE36sf7JDux30dQ91jSlQG6LQkB3vCHYTS2cIg==} + engines: {node: ^14.18.0 || >=16.10.0} dependencies: - '@babel/runtime': 7.24.4 + '@nuxt/schema': 3.11.2 + c12: 1.10.0 + consola: 3.2.3 + defu: 6.1.4 + globby: 14.0.1 + hash-sum: 2.0.0 + ignore: 5.3.1 + jiti: 1.21.0 + knitwork: 1.1.0 + mlly: 1.6.1 + pathe: 1.1.2 + pkg-types: 1.0.3 + scule: 1.3.0 + semver: 7.6.0 + ufo: 1.5.3 + unctx: 2.3.1 + unimport: 3.7.1(rollup@3.29.4) + untyped: 1.4.2 + transitivePeerDependencies: + - rollup + - supports-color dev: false - /@radix-ui/primitive@1.0.0: - resolution: {integrity: sha512-3e7rn8FDMin4CgeL7Z/49smCA3rFYY3Ha2rUQ7HRWFadS5iCRw08ZgVT1LaNTCNqgvrUiyczLflrVrF0SRQtNA==} + /@nuxt/kit@3.11.2(rollup@3.29.4): + resolution: {integrity: sha512-yiYKP0ZWMW7T3TCmsv4H8+jEsB/nFriRAR8bKoSqSV9bkVYWPE36sf7JDux30dQ91jSlQG6LQkB3vCHYTS2cIg==} + engines: {node: ^14.18.0 || >=16.10.0} dependencies: - '@babel/runtime': 7.24.4 - dev: false + '@nuxt/schema': 3.11.2(rollup@3.29.4) + c12: 1.10.0 + consola: 3.2.3 + defu: 6.1.4 + globby: 14.0.1 + hash-sum: 2.0.0 + ignore: 5.3.1 + jiti: 1.21.0 + knitwork: 1.1.0 + mlly: 1.6.1 + pathe: 1.1.2 + pkg-types: 1.0.3 + scule: 1.3.0 + semver: 7.6.0 + ufo: 1.5.3 + unctx: 2.3.1 + unimport: 3.7.1(rollup@3.29.4) + untyped: 1.4.2 + transitivePeerDependencies: + - rollup + - supports-color - /@radix-ui/primitive@1.0.1: - resolution: {integrity: sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==} + /@nuxt/kit@3.11.2(rollup@4.16.2): + resolution: {integrity: sha512-yiYKP0ZWMW7T3TCmsv4H8+jEsB/nFriRAR8bKoSqSV9bkVYWPE36sf7JDux30dQ91jSlQG6LQkB3vCHYTS2cIg==} + engines: {node: ^14.18.0 || >=16.10.0} dependencies: - '@babel/runtime': 7.24.4 - dev: false + '@nuxt/schema': 3.11.2(rollup@4.16.2) + c12: 1.10.0 + consola: 3.2.3 + defu: 6.1.4 + globby: 14.0.1 + hash-sum: 2.0.0 + ignore: 5.3.1 + jiti: 1.21.0 + knitwork: 1.1.0 + mlly: 1.6.1 + pathe: 1.1.2 + pkg-types: 1.0.3 + scule: 1.3.0 + semver: 7.6.0 + ufo: 1.5.3 + unctx: 2.3.1 + unimport: 3.7.1(rollup@4.16.2) + untyped: 1.4.2 + transitivePeerDependencies: + - rollup + - supports-color + dev: true - /@radix-ui/react-accordion@1.1.2(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-fDG7jcoNKVjSK6yfmuAs0EnPDro0WMXIhMtXdTBWqEioVW206ku+4Lw07e+13lUkFkpoEQ2PdeMIAGpdqEAmDg==} + /@nuxt/module-builder@0.5.5(@nuxt/kit@3.11.2)(nuxi@3.11.1)(typescript@5.4.5): + resolution: {integrity: sha512-ifFfwA1rbSXSae25RmqA2kAbV3xoShZNrq1yK8VXB/EnIcDn4WiaYR1PytaSxIt5zsvWPn92BJXiIUBiMQZ0hw==} + hasBin: true peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@nuxt/kit': ^3.8.2 + nuxi: ^3.10.0 dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collapsible': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false + '@nuxt/kit': 3.11.2(rollup@3.29.4) + citty: 0.1.6 + consola: 3.2.3 + mlly: 1.6.1 + nuxi: 3.11.1 + pathe: 1.1.1 + unbuild: 2.0.0(typescript@5.4.5) + transitivePeerDependencies: + - sass + - supports-color + - typescript + dev: true - /@radix-ui/react-arrow@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + /@nuxt/schema@3.11.2: + resolution: {integrity: sha512-Z0bx7N08itD5edtpkstImLctWMNvxTArsKXzS35ZuqyAyKBPcRjO1CU01slH0ahO30Gg9kbck3/RKNZPwfOjJg==} + engines: {node: ^14.18.0 || >=16.10.0} dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@nuxt/ui-templates': 1.3.3 + consola: 3.2.3 + defu: 6.1.4 + hookable: 5.5.3 + pathe: 1.1.2 + pkg-types: 1.0.3 + scule: 1.3.0 + std-env: 3.7.0 + ufo: 1.5.3 + unimport: 3.7.1(rollup@3.29.4) + untyped: 1.4.2 + transitivePeerDependencies: + - rollup + - supports-color dev: false - /@radix-ui/react-collapsible@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-UBmVDkmR6IvDsloHVN+3rtx4Mi5TFvylYXpluuv0f37dtaz3H99bp8No0LGXRigVpl3UAT4l9j6bIchh42S/Gg==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + /@nuxt/schema@3.11.2(rollup@3.29.4): + resolution: {integrity: sha512-Z0bx7N08itD5edtpkstImLctWMNvxTArsKXzS35ZuqyAyKBPcRjO1CU01slH0ahO30Gg9kbck3/RKNZPwfOjJg==} + engines: {node: ^14.18.0 || >=16.10.0} dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false + '@nuxt/ui-templates': 1.3.3 + consola: 3.2.3 + defu: 6.1.4 + hookable: 5.5.3 + pathe: 1.1.2 + pkg-types: 1.0.3 + scule: 1.3.0 + std-env: 3.7.0 + ufo: 1.5.3 + unimport: 3.7.1(rollup@3.29.4) + untyped: 1.4.2 + transitivePeerDependencies: + - rollup + - supports-color - /@radix-ui/react-collection@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + /@nuxt/schema@3.11.2(rollup@4.16.2): + resolution: {integrity: sha512-Z0bx7N08itD5edtpkstImLctWMNvxTArsKXzS35ZuqyAyKBPcRjO1CU01slH0ahO30Gg9kbck3/RKNZPwfOjJg==} + engines: {node: ^14.18.0 || >=16.10.0} dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.78)(react@18.2.0) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /@radix-ui/react-compose-refs@1.0.0(react@18.2.0): - resolution: {integrity: sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.24.4 - react: 18.2.0 - dev: false - - /@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.78)(react@18.2.0): - resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.24.4 - '@types/react': 18.2.78 - react: 18.2.0 - dev: false + '@nuxt/ui-templates': 1.3.3 + consola: 3.2.3 + defu: 6.1.4 + hookable: 5.5.3 + pathe: 1.1.2 + pkg-types: 1.0.3 + scule: 1.3.0 + std-env: 3.7.0 + ufo: 1.5.3 + unimport: 3.7.1(rollup@4.16.2) + untyped: 1.4.2 + transitivePeerDependencies: + - rollup + - supports-color + dev: true - /@radix-ui/react-context@1.0.0(react@18.2.0): - resolution: {integrity: sha512-1pVM9RfOQ+n/N5PJK33kRSKsr1glNxomxONs5c49MliinBY6Yw2Q995qfBUUo0/Mbg05B/sGA0gkgPI7kmSHBg==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + /@nuxt/telemetry@2.5.4: + resolution: {integrity: sha512-KH6wxzsNys69daSO0xUv0LEBAfhwwjK1M+0Cdi1/vxmifCslMIY7lN11B4eywSfscbyVPAYJvANyc7XiVPImBQ==} + hasBin: true dependencies: - '@babel/runtime': 7.24.4 - react: 18.2.0 + '@nuxt/kit': 3.11.2 + ci-info: 4.0.0 + consola: 3.2.3 + create-require: 1.1.1 + defu: 6.1.4 + destr: 2.0.3 + dotenv: 16.4.5 + git-url-parse: 14.0.0 + is-docker: 3.0.0 + jiti: 1.21.0 + mri: 1.2.0 + nanoid: 5.0.7 + ofetch: 1.3.4 + parse-git-config: 3.0.0 + pathe: 1.1.2 + rc9: 2.1.2 + std-env: 3.7.0 + transitivePeerDependencies: + - rollup + - supports-color dev: false - /@radix-ui/react-context@1.0.1(@types/react@18.2.78)(react@18.2.0): - resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true + /@nuxt/telemetry@2.5.4(rollup@3.29.4): + resolution: {integrity: sha512-KH6wxzsNys69daSO0xUv0LEBAfhwwjK1M+0Cdi1/vxmifCslMIY7lN11B4eywSfscbyVPAYJvANyc7XiVPImBQ==} + hasBin: true dependencies: - '@babel/runtime': 7.24.4 - '@types/react': 18.2.78 - react: 18.2.0 - dev: false + '@nuxt/kit': 3.11.2(rollup@3.29.4) + ci-info: 4.0.0 + consola: 3.2.3 + create-require: 1.1.1 + defu: 6.1.4 + destr: 2.0.3 + dotenv: 16.4.5 + git-url-parse: 14.0.0 + is-docker: 3.0.0 + jiti: 1.21.0 + mri: 1.2.0 + nanoid: 5.0.7 + ofetch: 1.3.4 + parse-git-config: 3.0.0 + pathe: 1.1.2 + rc9: 2.1.2 + std-env: 3.7.0 + transitivePeerDependencies: + - rollup + - supports-color + dev: true - /@radix-ui/react-dialog@1.0.0(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-Yn9YU+QlHYLWwV1XfKiqnGVpWYWk6MeBVM6x/bcoyPvxgjQGoeT35482viLPctTMWoMw0PoHgqfSox7Ig+957Q==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + /@nuxt/telemetry@2.5.4(rollup@4.16.2): + resolution: {integrity: sha512-KH6wxzsNys69daSO0xUv0LEBAfhwwjK1M+0Cdi1/vxmifCslMIY7lN11B4eywSfscbyVPAYJvANyc7XiVPImBQ==} + hasBin: true dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/primitive': 1.0.0 - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-context': 1.0.0(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.0(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-focus-guards': 1.0.0(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.0(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-id': 1.0.0(react@18.2.0) - '@radix-ui/react-portal': 1.0.0(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.0(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) - aria-hidden: 1.2.4 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.4(@types/react@18.2.78)(react@18.2.0) + '@nuxt/kit': 3.11.2(rollup@4.16.2) + ci-info: 4.0.0 + consola: 3.2.3 + create-require: 1.1.1 + defu: 6.1.4 + destr: 2.0.3 + dotenv: 16.4.5 + git-url-parse: 14.0.0 + is-docker: 3.0.0 + jiti: 1.21.0 + mri: 1.2.0 + nanoid: 5.0.7 + ofetch: 1.3.4 + parse-git-config: 3.0.0 + pathe: 1.1.2 + rc9: 2.1.2 + std-env: 3.7.0 transitivePeerDependencies: - - '@types/react' - dev: false + - rollup + - supports-color + dev: true - /@radix-ui/react-dialog@1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==} + /@nuxt/test-utils@3.12.1(h3@1.11.1)(happy-dom@13.10.1)(rollup@3.29.4)(vite@5.2.10)(vitest@1.5.0)(vue-router@4.3.2)(vue@3.4.25): + resolution: {integrity: sha512-VRLNcDz9Ad/4pjHdNRVLPs5DVIO5IJ0ij81PLmsE/lt+5oeeIQld+AgHgcqM4BM1YKsXTBuavbk1mEBqj7h/+A==} + engines: {node: ^14.18.0 || >=16.10.0} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + '@cucumber/cucumber': ^10.3.1 + '@jest/globals': ^29.5.0 + '@playwright/test': ^1.42.1 + '@testing-library/vue': ^7.0.0 || ^8.0.1 + '@vitest/ui': ^0.34.6 || ^1.0.0 + '@vue/test-utils': ^2.4.2 + h3: '*' + happy-dom: ^9.10.9 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0 + jsdom: ^22.0.0 || ^23.0.0 || ^24.0.0 + playwright-core: ^1.34.3 + vite: '*' + vitest: ^0.34.6 || ^1.0.0 + vue: ^3.3.4 + vue-router: ^4.0.0 peerDependenciesMeta: - '@types/react': + '@cucumber/cucumber': optional: true - '@types/react-dom': + '@jest/globals': + optional: true + '@playwright/test': + optional: true + '@testing-library/vue': + optional: true + '@vitest/ui': + optional: true + '@vue/test-utils': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + playwright-core: + optional: true + vitest: optional: true dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 - aria-hidden: 1.2.4 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.5(@types/react@18.2.78)(react@18.2.0) - dev: false + '@nuxt/kit': 3.11.2(rollup@3.29.4) + '@nuxt/schema': 3.11.2(rollup@3.29.4) + c12: 1.10.0 + consola: 3.2.3 + defu: 6.1.4 + destr: 2.0.3 + estree-walker: 3.0.3 + execa: 8.0.1 + fake-indexeddb: 5.0.2 + get-port-please: 3.1.2 + h3: 1.11.1 + happy-dom: 13.10.1 + local-pkg: 0.5.0 + magic-string: 0.30.10 + node-fetch-native: 1.6.4 + ofetch: 1.3.4 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + radix3: 1.1.2 + scule: 1.3.0 + std-env: 3.7.0 + ufo: 1.5.3 + unenv: 1.9.0 + unplugin: 1.10.1 + vite: 5.2.10(@types/node@20.12.7) + vitest: 1.5.0(@types/node@20.12.7)(happy-dom@13.10.1) + vitest-environment-nuxt: 1.0.0(h3@1.11.1)(happy-dom@13.10.1)(rollup@3.29.4)(vite@5.2.10)(vitest@1.5.0)(vue-router@4.3.2)(vue@3.4.25) + vue: 3.4.25(typescript@5.4.5) + vue-router: 4.3.2(vue@3.4.25) + transitivePeerDependencies: + - rollup + - supports-color + dev: true - /@radix-ui/react-direction@1.0.1(@types/react@18.2.78)(react@18.2.0): - resolution: {integrity: sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==} + /@nuxt/ui-templates@1.3.3: + resolution: {integrity: sha512-3BG5doAREcD50dbKyXgmjD4b1GzY8CUy3T41jMhHZXNDdaNwOd31IBq+D6dV00OSrDVhzrTVj0IxsUsnMyHvIQ==} + + /@nuxt/vite-builder@3.11.2(@types/node@20.12.7)(eslint@8.57.0)(rollup@3.29.4)(typescript@5.4.5)(vue@3.4.24): + resolution: {integrity: sha512-eXTZsAAN4dPz4eA2UD5YU2kD/DqgfyQp1UYsIdCe6+PAVe1ifkUboBjbc0piR5+3qI/S/eqk3nzxRGbiYF7Ccg==} + engines: {node: ^14.18.0 || >=16.10.0} peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true + vue: ^3.3.4 dependencies: - '@babel/runtime': 7.24.4 - '@types/react': 18.2.78 - react: 18.2.0 - dev: false + '@nuxt/kit': 3.11.2(rollup@3.29.4) + '@rollup/plugin-replace': 5.0.5(rollup@3.29.4) + '@vitejs/plugin-vue': 5.0.4(vite@5.2.10)(vue@3.4.24) + '@vitejs/plugin-vue-jsx': 3.1.0(vite@5.2.10)(vue@3.4.24) + autoprefixer: 10.4.19(postcss@8.4.38) + clear: 0.1.0 + consola: 3.2.3 + cssnano: 6.1.2(postcss@8.4.38) + defu: 6.1.4 + esbuild: 0.20.2 + escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 + externality: 1.0.2 + fs-extra: 11.2.0 + get-port-please: 3.1.2 + h3: 1.11.1 + knitwork: 1.1.0 + magic-string: 0.30.10 + mlly: 1.6.1 + ohash: 1.1.3 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.0.3 + postcss: 8.4.38 + rollup-plugin-visualizer: 5.12.0(rollup@3.29.4) + std-env: 3.7.0 + strip-literal: 2.1.0 + ufo: 1.5.3 + unenv: 1.9.0 + unplugin: 1.10.1 + vite: 5.2.10(@types/node@20.12.7) + vite-node: 1.5.0(@types/node@20.12.7) + vite-plugin-checker: 0.6.4(eslint@8.57.0)(typescript@5.4.5)(vite@5.2.10) + vue: 3.4.24(typescript@5.4.5) + vue-bundle-renderer: 2.0.0 + transitivePeerDependencies: + - '@types/node' + - eslint + - less + - lightningcss + - meow + - optionator + - rollup + - sass + - stylelint + - stylus + - sugarss + - supports-color + - terser + - typescript + - uWebSockets.js + - vls + - vti + - vue-tsc + dev: true - /@radix-ui/react-dismissable-layer@1.0.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-n7kDRfx+LB1zLueRDvZ1Pd0bxdJWDUZNQ/GWoxDn2prnuJKRdxsjulejX/ePkOsLi2tTm6P24mDqlMSgQpsT6g==} + /@nuxt/vite-builder@3.11.2(@types/node@20.12.7)(eslint@8.57.0)(rollup@4.16.2)(typescript@5.4.5)(vue@3.4.24): + resolution: {integrity: sha512-eXTZsAAN4dPz4eA2UD5YU2kD/DqgfyQp1UYsIdCe6+PAVe1ifkUboBjbc0piR5+3qI/S/eqk3nzxRGbiYF7Ccg==} + engines: {node: ^14.18.0 || >=16.10.0} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + vue: ^3.3.4 dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/primitive': 1.0.0 - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) - '@radix-ui/react-use-escape-keydown': 1.0.0(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - + '@nuxt/kit': 3.11.2(rollup@4.16.2) + '@rollup/plugin-replace': 5.0.5(rollup@4.16.2) + '@vitejs/plugin-vue': 5.0.4(vite@5.2.10)(vue@3.4.24) + '@vitejs/plugin-vue-jsx': 3.1.0(vite@5.2.10)(vue@3.4.24) + autoprefixer: 10.4.19(postcss@8.4.38) + clear: 0.1.0 + consola: 3.2.3 + cssnano: 6.1.2(postcss@8.4.38) + defu: 6.1.4 + esbuild: 0.20.2 + escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 + externality: 1.0.2 + fs-extra: 11.2.0 + get-port-please: 3.1.2 + h3: 1.11.1 + knitwork: 1.1.0 + magic-string: 0.30.10 + mlly: 1.6.1 + ohash: 1.1.3 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.0.3 + postcss: 8.4.38 + rollup-plugin-visualizer: 5.12.0(rollup@4.16.2) + std-env: 3.7.0 + strip-literal: 2.1.0 + ufo: 1.5.3 + unenv: 1.9.0 + unplugin: 1.10.1 + vite: 5.2.10(@types/node@20.12.7) + vite-node: 1.5.0(@types/node@20.12.7) + vite-plugin-checker: 0.6.4(eslint@8.57.0)(typescript@5.4.5)(vite@5.2.10) + vue: 3.4.24(typescript@5.4.5) + vue-bundle-renderer: 2.0.0 + transitivePeerDependencies: + - '@types/node' + - eslint + - less + - lightningcss + - meow + - optionator + - rollup + - sass + - stylelint + - stylus + - sugarss + - supports-color + - terser + - typescript + - uWebSockets.js + - vls + - vti + - vue-tsc + dev: true + + /@nuxt/vite-builder@3.11.2(@types/node@20.12.7)(typescript@5.4.5)(vue@3.4.24): + resolution: {integrity: sha512-eXTZsAAN4dPz4eA2UD5YU2kD/DqgfyQp1UYsIdCe6+PAVe1ifkUboBjbc0piR5+3qI/S/eqk3nzxRGbiYF7Ccg==} + engines: {node: ^14.18.0 || >=16.10.0} + peerDependencies: + vue: ^3.3.4 + dependencies: + '@nuxt/kit': 3.11.2 + '@rollup/plugin-replace': 5.0.5(rollup@3.29.4) + '@vitejs/plugin-vue': 5.0.4(vite@5.2.10)(vue@3.4.24) + '@vitejs/plugin-vue-jsx': 3.1.0(vite@5.2.10)(vue@3.4.24) + autoprefixer: 10.4.19(postcss@8.4.38) + clear: 0.1.0 + consola: 3.2.3 + cssnano: 6.1.2(postcss@8.4.38) + defu: 6.1.4 + esbuild: 0.20.2 + escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 + externality: 1.0.2 + fs-extra: 11.2.0 + get-port-please: 3.1.2 + h3: 1.11.1 + knitwork: 1.1.0 + magic-string: 0.30.10 + mlly: 1.6.1 + ohash: 1.1.3 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.0.3 + postcss: 8.4.38 + rollup-plugin-visualizer: 5.12.0(rollup@3.29.4) + std-env: 3.7.0 + strip-literal: 2.1.0 + ufo: 1.5.3 + unenv: 1.9.0 + unplugin: 1.10.1 + vite: 5.2.10(@types/node@20.12.7) + vite-node: 1.5.0(@types/node@20.12.7) + vite-plugin-checker: 0.6.4(eslint@8.57.0)(typescript@5.4.5)(vite@5.2.10) + vue: 3.4.24(typescript@5.4.5) + vue-bundle-renderer: 2.0.0 + transitivePeerDependencies: + - '@types/node' + - eslint + - less + - lightningcss + - meow + - optionator + - rollup + - sass + - stylelint + - stylus + - sugarss + - supports-color + - terser + - typescript + - uWebSockets.js + - vls + - vti + - vue-tsc + dev: false + + /@open-draft/deferred-promise@2.2.0: + resolution: {integrity: sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==} + dev: false + + /@open-draft/logger@0.3.0: + resolution: {integrity: sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==} + dependencies: + is-node-process: 1.2.0 + outvariant: 1.4.2 + dev: false + + /@open-draft/until@2.1.0: + resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} + dev: false + + /@parcel/watcher-android-arm64@2.4.1: + resolution: {integrity: sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [android] + requiresBuild: true + optional: true + + /@parcel/watcher-darwin-arm64@2.4.1: + resolution: {integrity: sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + optional: true + + /@parcel/watcher-darwin-x64@2.4.1: + resolution: {integrity: sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [darwin] + requiresBuild: true + optional: true + + /@parcel/watcher-freebsd-x64@2.4.1: + resolution: {integrity: sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + optional: true + + /@parcel/watcher-linux-arm-glibc@2.4.1: + resolution: {integrity: sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + requiresBuild: true + optional: true + + /@parcel/watcher-linux-arm64-glibc@2.4.1: + resolution: {integrity: sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + + /@parcel/watcher-linux-arm64-musl@2.4.1: + resolution: {integrity: sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + + /@parcel/watcher-linux-x64-glibc@2.4.1: + resolution: {integrity: sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + + /@parcel/watcher-linux-x64-musl@2.4.1: + resolution: {integrity: sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + + /@parcel/watcher-wasm@2.3.0: + resolution: {integrity: sha512-ejBAX8H0ZGsD8lSICDNyMbSEtPMWgDL0WFCt/0z7hyf5v8Imz4rAM8xY379mBsECkq/Wdqa5WEDLqtjZ+6NxfA==} + engines: {node: '>= 10.0.0'} + dependencies: + is-glob: 4.0.3 + micromatch: 4.0.5 + dev: false + bundledDependencies: + - napi-wasm + + /@parcel/watcher-wasm@2.4.1: + resolution: {integrity: sha512-/ZR0RxqxU/xxDGzbzosMjh4W6NdYFMqq2nvo2b8SLi7rsl/4jkL8S5stIikorNkdR50oVDvqb/3JT05WM+CRRA==} + engines: {node: '>= 10.0.0'} + dependencies: + is-glob: 4.0.3 + micromatch: 4.0.5 + bundledDependencies: + - napi-wasm + + /@parcel/watcher-win32-arm64@2.4.1: + resolution: {integrity: sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [win32] + requiresBuild: true + optional: true + + /@parcel/watcher-win32-ia32@2.4.1: + resolution: {integrity: sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==} + engines: {node: '>= 10.0.0'} + cpu: [ia32] + os: [win32] + requiresBuild: true + optional: true + + /@parcel/watcher-win32-x64@2.4.1: + resolution: {integrity: sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true + + /@parcel/watcher@2.4.1: + resolution: {integrity: sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==} + engines: {node: '>= 10.0.0'} + dependencies: + detect-libc: 1.0.3 + is-glob: 4.0.3 + micromatch: 4.0.5 + node-addon-api: 7.0.0 + optionalDependencies: + '@parcel/watcher-android-arm64': 2.4.1 + '@parcel/watcher-darwin-arm64': 2.4.1 + '@parcel/watcher-darwin-x64': 2.4.1 + '@parcel/watcher-freebsd-x64': 2.4.1 + '@parcel/watcher-linux-arm-glibc': 2.4.1 + '@parcel/watcher-linux-arm64-glibc': 2.4.1 + '@parcel/watcher-linux-arm64-musl': 2.4.1 + '@parcel/watcher-linux-x64-glibc': 2.4.1 + '@parcel/watcher-linux-x64-musl': 2.4.1 + '@parcel/watcher-win32-arm64': 2.4.1 + '@parcel/watcher-win32-ia32': 2.4.1 + '@parcel/watcher-win32-x64': 2.4.1 + + /@peculiar/asn1-schema@2.3.8: + resolution: {integrity: sha512-ULB1XqHKx1WBU/tTFIA+uARuRoBVZ4pNdOA878RDrRbBfBGcSzi5HBkdScC6ZbHn8z7L8gmKCgPC1LHRrP46tA==} + dependencies: + asn1js: 3.0.5 + pvtsutils: 1.3.5 + tslib: 2.6.2 + dev: false + + /@peculiar/json-schema@1.1.12: + resolution: {integrity: sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==} + engines: {node: '>=8.0.0'} + dependencies: + tslib: 2.6.2 + dev: false + + /@peculiar/webcrypto@1.4.1: + resolution: {integrity: sha512-eK4C6WTNYxoI7JOabMoZICiyqRRtJB220bh0Mbj5RwRycleZf9BPyZoxsTvpP0FpmVS2aS13NKOuh5/tN3sIRw==} + engines: {node: '>=10.12.0'} + dependencies: + '@peculiar/asn1-schema': 2.3.8 + '@peculiar/json-schema': 1.1.12 + pvtsutils: 1.3.5 + tslib: 2.6.2 + webcrypto-core: 1.7.9 + dev: false + + /@pkgjs/parseargs@0.11.0: + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + requiresBuild: true + optional: true + + /@playwright/test@1.42.1: + resolution: {integrity: sha512-Gq9rmS54mjBL/7/MvBaNOBwbfnh7beHvS6oS4srqXFcQHpQCV1+c8JXWE8VLPyRDhgS3H8x8A7hztqI9VnwrAQ==} + engines: {node: '>=16'} + hasBin: true + dependencies: + playwright: 1.42.1 + dev: true + + /@pnpm/config.env-replace@1.1.0: + resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} + engines: {node: '>=12.22.0'} + dev: false + + /@pnpm/network.ca-file@1.0.2: + resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} + engines: {node: '>=12.22.0'} + dependencies: + graceful-fs: 4.2.10 + dev: false + + /@pnpm/npm-conf@2.2.2: + resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==} + engines: {node: '>=12'} + dependencies: + '@pnpm/config.env-replace': 1.1.0 + '@pnpm/network.ca-file': 1.0.2 + config-chain: 1.1.13 + dev: false + + /@polka/url@1.0.0-next.25: + resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} + + /@popperjs/core@2.11.8: + resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} + dev: false + + /@prettier/sync@0.5.2(prettier@3.2.5): + resolution: {integrity: sha512-Yb569su456XNx5BsH/Vyem7xD6g/y9iLmLUzRKM1a/dhU/D7HqqvkAG72znulXlMXztbV0iiu9O5AL8K98TzZQ==} + peerDependencies: + prettier: '*' + dependencies: + make-synchronized: 0.2.9 + prettier: 3.2.5 + dev: false + + /@radix-ui/number@1.0.1: + resolution: {integrity: sha512-T5gIdVO2mmPW3NNhjNgEP3cqMXjXL9UbO0BzWcXfvdBs+BohbQxvd/K5hSVKmn9/lbTdsQVKbUcP5WLCwvUbBg==} + dependencies: + '@babel/runtime': 7.24.4 + dev: false + + /@radix-ui/primitive@1.0.0: + resolution: {integrity: sha512-3e7rn8FDMin4CgeL7Z/49smCA3rFYY3Ha2rUQ7HRWFadS5iCRw08ZgVT1LaNTCNqgvrUiyczLflrVrF0SRQtNA==} + dependencies: + '@babel/runtime': 7.24.4 + dev: false + + /@radix-ui/primitive@1.0.1: + resolution: {integrity: sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==} + dependencies: + '@babel/runtime': 7.22.10 + dev: false + + /@radix-ui/react-accordion@1.1.2(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-fDG7jcoNKVjSK6yfmuAs0EnPDro0WMXIhMtXdTBWqEioVW206ku+4Lw07e+13lUkFkpoEQ2PdeMIAGpdqEAmDg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.22.10 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-collapsible': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@types/react': 18.2.78 + '@types/react-dom': 18.2.25 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-arrow@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.78 + '@types/react-dom': 18.2.25 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-collapsible@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-UBmVDkmR6IvDsloHVN+3rtx4Mi5TFvylYXpluuv0f37dtaz3H99bp8No0LGXRigVpl3UAT4l9j6bIchh42S/Gg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.22.10 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@types/react': 18.2.78 + '@types/react-dom': 18.2.25 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-collection@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.22.10 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.78)(react@18.2.0) + '@types/react': 18.2.78 + '@types/react-dom': 18.2.25 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-compose-refs@1.0.0(react@18.2.0): + resolution: {integrity: sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + react: 18.2.0 + dev: false + + /@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.78)(react@18.2.0): + resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@types/react': 18.2.78 + react: 18.2.0 + dev: false + + /@radix-ui/react-context@1.0.0(react@18.2.0): + resolution: {integrity: sha512-1pVM9RfOQ+n/N5PJK33kRSKsr1glNxomxONs5c49MliinBY6Yw2Q995qfBUUo0/Mbg05B/sGA0gkgPI7kmSHBg==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + react: 18.2.0 + dev: false + + /@radix-ui/react-context@1.0.1(@types/react@18.2.78)(react@18.2.0): + resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@types/react': 18.2.78 + react: 18.2.0 + dev: false + + /@radix-ui/react-dialog@1.0.0(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Yn9YU+QlHYLWwV1XfKiqnGVpWYWk6MeBVM6x/bcoyPvxgjQGoeT35482viLPctTMWoMw0PoHgqfSox7Ig+957Q==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-context': 1.0.0(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.0(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.0(react@18.2.0) + '@radix-ui/react-portal': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.0(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) + aria-hidden: 1.2.4 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.4(@types/react@18.2.78)(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + dev: false + + /@radix-ui/react-dialog@1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@types/react': 18.2.78 + '@types/react-dom': 18.2.25 + aria-hidden: 1.2.4 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.2.78)(react@18.2.0) + dev: false + + /@radix-ui/react-direction@1.0.1(@types/react@18.2.78)(react@18.2.0): + resolution: {integrity: sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.22.10 + '@types/react': 18.2.78 + react: 18.2.0 + dev: false + + /@radix-ui/react-dismissable-layer@1.0.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-n7kDRfx+LB1zLueRDvZ1Pd0bxdJWDUZNQ/GWoxDn2prnuJKRdxsjulejX/ePkOsLi2tTm6P24mDqlMSgQpsT6g==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) + '@radix-ui/react-use-escape-keydown': 1.0.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + /@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.2.78)(react@18.2.0) + '@types/react': 18.2.78 + '@types/react-dom': 18.2.25 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-dropdown-menu@2.0.6(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-i6TuFOoWmLWq+M/eCLGd/bQ2HfAX1RJgvrBQ6AQLmzfvsLdefxbWu8G9zczcPFfcSPehz9GcpF6K9QYreFV8hA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-menu': 2.0.6(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@types/react': 18.2.78 + '@types/react-dom': 18.2.25 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-focus-guards@1.0.0(react@18.2.0): + resolution: {integrity: sha512-UagjDk4ijOAnGu4WMUPj9ahi7/zJJqNZ9ZAiGPp7waUWJO0O1aWXi/udPphI0IUjvrhBsZJGSN66dR2dsueLWQ==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + react: 18.2.0 + dev: false + + /@radix-ui/react-focus-guards@1.0.1(@types/react@18.2.78)(react@18.2.0): + resolution: {integrity: sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@types/react': 18.2.78 + react: 18.2.0 + dev: false + + /@radix-ui/react-focus-scope@1.0.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-C4SWtsULLGf/2L4oGeIHlvWQx7Rf+7cX/vKOAD2dXW0A1b5QXwi3wWeaEgW+wn+SEVrraMUk05vLU9fZZz5HbQ==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@types/react': 18.2.78 + '@types/react-dom': 18.2.25 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-icons@1.3.0(react@18.2.0): + resolution: {integrity: sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==} + peerDependencies: + react: ^16.x || ^17.x || ^18.x + dependencies: + react: 18.2.0 + dev: false + + /@radix-ui/react-id@1.0.0(react@18.2.0): + resolution: {integrity: sha512-Q6iAB/U7Tq3NTolBBQbHTgclPmGWE3OlktGGqrClPozSw4vkQ1DfQAOtzgRPecKsMdJINE05iaoDUG8tRzCBjw==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@radix-ui/react-id@1.0.1(@types/react@18.2.78)(react@18.2.0): + resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@types/react': 18.2.78 + react: 18.2.0 + dev: false + + /@radix-ui/react-label@2.0.2(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-N5ehvlM7qoTLx7nWPodsPYPgMzA5WM8zZChQg8nyFJKnDO5WHdba1vv5/H6IO5LtJMfD2Q3wh1qHFGNtK0w3bQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.78 + '@types/react-dom': 18.2.25 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-menu@2.0.6(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-BVkFLS+bUC8HcImkRKPSiVumA1VPOOEC5WBMiT+QAVsPzW1FJzI9KnqgGxVDPBcql5xXrHkD3JOVoXWEXD8SYA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@types/react': 18.2.78 + '@types/react-dom': 18.2.25 + aria-hidden: 1.2.4 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.2.78)(react@18.2.0) + dev: false + + /@radix-ui/react-popover@1.0.7(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-shtvVnlsxT6faMnK/a7n0wptwBD23xc1Z5mdrtKLwVEfsEMXodS0r5s0/g5P0hX//EKYZS2sxUjqfzlg52ZSnQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@types/react': 18.2.78 + '@types/react-dom': 18.2.25 + aria-hidden: 1.2.4 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.2.78)(react@18.2.0) + dev: false + + /@radix-ui/react-popper@1.1.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-cKpopj/5RHZWjrbF2846jBNacjQVwkP068DfmgrNJXpvVWrOvlAmE9xSiy5OqeE+Gi8D9fP+oDhUnPqNMY8/5w==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@floating-ui/react-dom': 2.0.8(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-use-rect': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/rect': 1.0.1 + '@types/react': 18.2.78 + '@types/react-dom': 18.2.25 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-portal@1.0.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-a8qyFO/Xb99d8wQdu4o7qnigNjTPG123uADNecz0eX4usnQEj7o+cG4ZX4zkqq98NYekT7UoEQIjxBNWIFuqTA==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-portal@1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.78 + '@types/react-dom': 18.2.25 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-presence@1.0.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-A+6XEvN01NfVWiKu38ybawfHsBjWum42MRPnEuqPsBZ4eV7e/7K321B5VgYMPv3Xx5An6o1/l9ZuDBgmcmWK3w==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-presence@1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@types/react': 18.2.78 + '@types/react-dom': 18.2.25 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-primitive@1.0.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-EyXe6mnRlHZ8b6f4ilTDrXmkLShICIuOTTj0GX4w1rp+wSxf3+TD05u1UOITC8VsJ2a9nwHvdXtOXEOl0Cw/zQ==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-slot': 1.0.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-primitive@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.78)(react@18.2.0) + '@types/react': 18.2.78 + '@types/react-dom': 18.2.25 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-progress@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-5G6Om/tYSxjSeEdrb1VfKkfZfn/1IlPWd731h2RfPuSbIfNUgfqAwbKfJCg/PP6nuUCTrYzalwHSpSinoWoCag==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.78 + '@types/react-dom': 18.2.25 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@types/react': 18.2.78 + '@types/react-dom': 18.2.25 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-scroll-area@1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-b6PAgH4GQf9QEn8zbT2XUHpW5z8BzqEc7Kl11TwDrvuTrxlkcjTD5qa/bxgKr+nmuXKu4L/W5UZ4mlP/VG/5Gw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/number': 1.0.1 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@types/react': 18.2.78 + '@types/react-dom': 18.2.25 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-slot@1.0.0(react@18.2.0): + resolution: {integrity: sha512-3mrKauI/tWXo1Ll+gN5dHcxDPdm/Df1ufcDLCecn+pnCIVcdWE7CujXo8QaXOWRJyZyQWWbpB8eFwHzWXlv5mQ==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@radix-ui/react-slot@1.0.2(@types/react@18.2.78)(react@18.2.0): + resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.22.10 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@types/react': 18.2.78 + react: 18.2.0 + dev: false + + /@radix-ui/react-tabs@1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-egZfYY/+wRNCflXNHx+dePvnz9FbmssDTJBtgRfDY7e8SE5oIo3Py2eCB1ckAbh1Q7cQ/6yJZThJ++sgbxibog==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@types/react': 18.2.78 + '@types/react-dom': 18.2.25 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-tooltip@1.0.7(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-lPh5iKNFVQ/jav/j6ZrWq3blfDJ0OH9R6FlNUHPMqdLuQ9vwDgFsRxvl8b7Asuy5c8xmoojHUxKHQSOAvMHxyw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.78 + '@types/react-dom': 18.2.25 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/react-use-callback-ref@1.0.0(react@18.2.0): + resolution: {integrity: sha512-GZtyzoHz95Rhs6S63D2t/eqvdFCm7I+yHMLVQheKM7nBD8mbZIt+ct1jz4536MDnaOGKIxynJ8eHTkVGVVkoTg==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.78)(react@18.2.0): + resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@types/react': 18.2.78 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-controllable-state@1.0.0(react@18.2.0): + resolution: {integrity: sha512-FohDoZvk3mEXh9AWAVyRTYR4Sq7/gavuofglmiXB2g1aKyboUD4YtgWxKj8O5n+Uak52gXQ4wKz5IFST4vtJHg==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.2.78)(react@18.2.0): + resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.22.10 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@types/react': 18.2.78 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-escape-keydown@1.0.0(react@18.2.0): + resolution: {integrity: sha512-JwfBCUIfhXRxKExgIqGa4CQsiMemo1Xt0W/B4ei3fpzpvPENKpMKQ8mZSB6Acj3ebrAEgi2xiQvcI1PAAodvyg==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.2.78)(react@18.2.0): + resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@types/react': 18.2.78 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-layout-effect@1.0.0(react@18.2.0): + resolution: {integrity: sha512-6Tpkq+R6LOlmQb1R5NNETLG0B4YP0wc+klfXafpUCj6JGyaUc8il7/kUZ7m59rGbXGczE9Bs+iz2qloqsZBduQ==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.24.4 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.78)(react@18.2.0): + resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@types/react': 18.2.78 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-rect@1.0.1(@types/react@18.2.78)(react@18.2.0): + resolution: {integrity: sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/rect': 1.0.1 + '@types/react': 18.2.78 + react: 18.2.0 + dev: false + + /@radix-ui/react-use-size@1.0.1(@types/react@18.2.78)(react@18.2.0): + resolution: {integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@types/react': 18.2.78 + react: 18.2.0 + dev: false + + /@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.78 + '@types/react-dom': 18.2.25 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@radix-ui/rect@1.0.1: + resolution: {integrity: sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==} + dependencies: + '@babel/runtime': 7.24.4 + dev: false + + /@remirror/core-constants@2.0.2: + resolution: {integrity: sha512-dyHY+sMF0ihPus3O27ODd4+agdHMEmuRdyiZJ2CCWjPV5UFmn17ZbElvk6WOGVE4rdCJKZQCrPV2BcikOMLUGQ==} + dev: false + + /@replit/codemirror-css-color-picker@6.1.1(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.3): + resolution: {integrity: sha512-e/wYHcgt3HRDpvYuwqXyjv3LEY6VyFjJeDQK1UtFmaykp86R6Cbw3ULH9pvuJuelaW6nS4CVtIRHuOfbFLlqwQ==} + peerDependencies: + '@codemirror/language': ^6.0.0 + '@codemirror/state': ^6.0.0 + '@codemirror/view': ^6.0.0 + dependencies: + '@codemirror/language': 6.10.1 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.26.3 + dev: false + + /@rollup/plugin-alias@5.0.0(rollup@3.29.4): + resolution: {integrity: sha512-l9hY5chSCjuFRPsnRm16twWBiSApl2uYFLsepQYwtBuAxNMQ/1dJqADld40P0Jkqm65GRTLy/AC6hnpVebtLsA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + rollup: 3.29.4 + slash: 4.0.0 + dev: true + + /@rollup/plugin-alias@5.1.0(rollup@4.16.2): + resolution: {integrity: sha512-lpA3RZ9PdIG7qqhEfv79tBffNaoDuukFDrmhLqg9ifv99u/ehn+lOg30x2zmhf8AQqQUZaMk/B9fZraQ6/acDQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + rollup: 4.16.2 + slash: 4.0.0 + + /@rollup/plugin-commonjs@25.0.4(rollup@3.29.4): + resolution: {integrity: sha512-L92Vz9WUZXDnlQQl3EwbypJR4+DM2EbsO+/KOcEkP4Mc6Ct453EeDB2uH9lgRwj4w5yflgNpq9pHOiY8aoUXBQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.68.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.0.3(rollup@3.29.4) + commondir: 1.0.1 + estree-walker: 2.0.2 + glob: 8.1.0 + is-reference: 1.2.1 + magic-string: 0.27.0 + rollup: 3.29.4 + dev: true + + /@rollup/plugin-commonjs@25.0.7(rollup@4.16.2): + resolution: {integrity: sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.68.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.16.2) + commondir: 1.0.1 + estree-walker: 2.0.2 + glob: 8.1.0 + is-reference: 1.2.1 + magic-string: 0.30.10 + rollup: 4.16.2 + + /@rollup/plugin-inject@5.0.5(rollup@4.16.2): + resolution: {integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.16.2) + estree-walker: 2.0.2 + magic-string: 0.30.10 + rollup: 4.16.2 + + /@rollup/plugin-json@6.0.0(rollup@3.29.4): + resolution: {integrity: sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.0.3(rollup@3.29.4) + rollup: 3.29.4 + dev: true + + /@rollup/plugin-json@6.1.0(rollup@4.16.2): + resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.16.2) + rollup: 4.16.2 + + /@rollup/plugin-node-resolve@15.2.3(rollup@3.29.4): + resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.78.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@3.29.4) + '@types/resolve': 1.20.2 + deepmerge: 4.3.1 + is-builtin-module: 3.2.1 + is-module: 1.0.0 + resolve: 1.22.4 + rollup: 3.29.4 + dev: true + + /@rollup/plugin-node-resolve@15.2.3(rollup@4.16.2): + resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.78.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.16.2) + '@types/resolve': 1.20.2 + deepmerge: 4.3.1 + is-builtin-module: 3.2.1 + is-module: 1.0.0 + resolve: 1.22.4 + rollup: 4.16.2 + + /@rollup/plugin-replace@5.0.2(rollup@3.29.4): + resolution: {integrity: sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.0.3(rollup@3.29.4) + magic-string: 0.27.0 + rollup: 3.29.4 + dev: true + + /@rollup/plugin-replace@5.0.5(rollup@3.29.4): + resolution: {integrity: sha512-rYO4fOi8lMaTg/z5Jb+hKnrHHVn8j2lwkqwyS4kTRhKyWOLf2wST2sWXr4WzWiTcoHTp2sTjqUbqIj2E39slKQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@3.29.4) + magic-string: 0.30.10 + rollup: 3.29.4 + + /@rollup/plugin-replace@5.0.5(rollup@4.16.2): + resolution: {integrity: sha512-rYO4fOi8lMaTg/z5Jb+hKnrHHVn8j2lwkqwyS4kTRhKyWOLf2wST2sWXr4WzWiTcoHTp2sTjqUbqIj2E39slKQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.16.2) + magic-string: 0.30.10 + rollup: 4.16.2 + + /@rollup/plugin-terser@0.4.4(rollup@4.16.2): + resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + rollup: 4.16.2 + serialize-javascript: 6.0.1 + smob: 1.4.0 + terser: 5.19.2 + + /@rollup/plugin-wasm@6.2.2(rollup@4.16.2): + resolution: {integrity: sha512-gpC4R1G9Ni92ZIRTexqbhX7U+9estZrbhP+9SRb0DW9xpB9g7j34r+J2hqrcW/lRI7dJaU84MxZM0Rt82tqYPQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.16.2) + rollup: 4.16.2 + dev: true + + /@rollup/pluginutils@4.2.1: + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} + engines: {node: '>= 8.0.0'} + dependencies: + estree-walker: 2.0.2 + picomatch: 2.3.1 + + /@rollup/pluginutils@5.0.3(rollup@3.29.4): + resolution: {integrity: sha512-hfllNN4a80rwNQ9QCxhxuHCGHMAvabXqxNdaChUSSadMre7t4iEUI6fFAhBOn/eIYTgYVhBv7vCLsAJ4u3lf3g==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.1 + estree-walker: 2.0.2 + picomatch: 2.3.1 + rollup: 3.29.4 + + /@rollup/pluginutils@5.1.0(rollup@3.29.4): + resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.1 + estree-walker: 2.0.2 + picomatch: 2.3.1 + rollup: 3.29.4 + + /@rollup/pluginutils@5.1.0(rollup@4.16.2): + resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.1 + estree-walker: 2.0.2 + picomatch: 2.3.1 + rollup: 4.16.2 + + /@rollup/rollup-android-arm-eabi@4.16.2: + resolution: {integrity: sha512-VGodkwtEuZ+ENPz/CpDSl091koMv8ao5jHVMbG1vNK+sbx/48/wVzP84M5xSfDAC69mAKKoEkSo+ym9bXYRK9w==} + cpu: [arm] + os: [android] + requiresBuild: true + optional: true + + /@rollup/rollup-android-arm64@4.16.2: + resolution: {integrity: sha512-5/W1xyIdc7jw6c/f1KEtg1vYDBWnWCsLiipK41NiaWGLG93eH2edgE6EgQJ3AGiPERhiOLUqlDSfjRK08C9xFg==} + cpu: [arm64] + os: [android] + requiresBuild: true + optional: true + + /@rollup/rollup-darwin-arm64@4.16.2: + resolution: {integrity: sha512-vOAKMqZSTbPfyPVu1jBiy+YniIQd3MG7LUnqV0dA6Q5tyhdqYtxacTHP1+S/ksKl6qCtMG1qQ0grcIgk/19JEA==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + optional: true + + /@rollup/rollup-darwin-x64@4.16.2: + resolution: {integrity: sha512-aIJVRUS3Dnj6MqocBMrcXlatKm64O3ITeQAdAxVSE9swyhNyV1dwnRgw7IGKIkDQofatd8UqMSyUxuFEa42EcA==} + cpu: [x64] + os: [darwin] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.16.2: + resolution: {integrity: sha512-/bjfUiXwy3P5vYr6/ezv//Yle2Y0ak3a+Av/BKoi76nFryjWCkki8AuVoPR7ZU/ckcvAWFo77OnFK14B9B5JsA==} + cpu: [arm] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-arm-musleabihf@4.16.2: + resolution: {integrity: sha512-S24b+tJHwpq2TNRz9T+r71FjMvyBBApY8EkYxz8Cwi/rhH6h+lu/iDUxyc9PuHf9UvyeBFYkWWcrDahai/NCGw==} + cpu: [arm] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.16.2: + resolution: {integrity: sha512-UN7VAXLyeyGbCQWiOtQN7BqmjTDw1ON2Oos4lfk0YR7yNhFEJWZiwGtvj9Ay4lsT/ueT04sh80Sg2MlWVVZ+Ug==} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-arm64-musl@4.16.2: + resolution: {integrity: sha512-ZBKvz3+rIhQjusKMccuJiPsStCrPOtejCHxTe+yWp3tNnuPWtyCh9QLGPKz6bFNFbwbw28E2T6zDgzJZ05F1JQ==} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-powerpc64le-gnu@4.16.2: + resolution: {integrity: sha512-LjMMFiVBRL3wOe095vHAekL4b7nQqf4KZEpdMWd3/W+nIy5o9q/8tlVKiqMbfieDypNXLsxM9fexOxd9Qcklyg==} + cpu: [ppc64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.16.2: + resolution: {integrity: sha512-ohkPt0lKoCU0s4B6twro2aft+QROPdUiWwOjPNTzwTsBK5w+2+iT9kySdtOdq0gzWJAdiqsV4NFtXOwGZmIsHA==} + cpu: [riscv64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-s390x-gnu@4.16.2: + resolution: {integrity: sha512-jm2lvLc+/gqXfndlpDw05jKvsl/HKYxUEAt1h5UXcMFVpO4vGpoWmJVUfKDtTqSaHcCNw1his1XjkgR9aort3w==} + cpu: [s390x] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.16.2: + resolution: {integrity: sha512-oc5/SlITI/Vj/qL4UM+lXN7MERpiy1HEOnrE+SegXwzf7WP9bzmZd6+MDljCEZTdSY84CpvUv9Rq7bCaftn1+g==} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-x64-musl@4.16.2: + resolution: {integrity: sha512-/2VWEBG6mKbS2itm7hzPwhIPaxfZh/KLWrYg20pCRLHhNFtF+epLgcBtwy3m07bl/k86Q3PFRAf2cX+VbZbwzQ==} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.16.2: + resolution: {integrity: sha512-Wg7ANh7+hSilF0lG3e/0Oy8GtfTIfEk1327Bw8juZOMOoKmJLs3R+a4JDa/4cHJp2Gs7QfCDTepXXcyFD0ubBg==} + cpu: [arm64] + os: [win32] + requiresBuild: true + optional: true + + /@rollup/rollup-win32-ia32-msvc@4.16.2: + resolution: {integrity: sha512-J/jCDKVMWp0Y2ELnTjpQFYUCUWv1Jr+LdFrJVZtdqGyjDo0PHPa7pCamjHvJel6zBFM3doFFqAr7cmXYWBAbfw==} + cpu: [ia32] + os: [win32] + requiresBuild: true + optional: true + + /@rollup/rollup-win32-x64-msvc@4.16.2: + resolution: {integrity: sha512-3nIf+SJMs2ZzrCh+SKNqgLVV9hS/UY0UjT1YU8XQYFGLiUfmHYJ/5trOU1XSvmHjV5gTF/K3DjrWxtyzKKcAHA==} + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true + + /@rushstack/eslint-patch@1.10.2: + resolution: {integrity: sha512-hw437iINopmQuxWPSUEvqE56NCPsiU8N4AYtfHmJFckclktzK9YQJieD3XkDCDH4OjL+C7zgPUh73R/nrcHrqw==} + dev: true + + /@scalar/api-client@0.12.17(typescript@5.4.5)(vue@3.4.25)(yjs@13.6.15): + resolution: {integrity: sha512-3eAxXsSdZYeOC9da3DctN6gvuDocDTxscpKAfgmTGU9oct/vdYEgkS0Lt9lEluN6+kDwCo/QbX8JuJA+h/g1mA==} + engines: {node: '>=18'} + peerDependencies: + vue: ^3.3.0 + dependencies: + '@headlessui/vue': 1.7.20(vue@3.4.25) + '@scalar/components': 0.4.3(typescript@5.4.5)(vue@3.4.25) + '@scalar/themes': 0.6.2(vue@3.4.25) + '@scalar/use-codemirror': 0.8.9(vue@3.4.25)(yjs@13.6.15) + '@scalar/use-modal': 0.2.9(@headlessui/vue@1.7.20)(vue@3.4.25) + '@vueuse/core': 10.9.0(vue@3.4.25) + axios: 1.6.8 + content-type: 1.0.5 + nanoid: 5.0.7 + pretty-bytes: 6.1.1 + pretty-ms: 8.0.0 + vue: 3.4.25(typescript@5.4.5) + transitivePeerDependencies: + - '@vue/composition-api' + - debug + - typescript + - yjs + dev: false + + /@scalar/api-reference-react@0.0.4(postcss@8.4.38)(react@18.2.0)(typescript@5.4.5)(unified@11.0.4)(vue@3.4.25)(yjs@13.6.15): + resolution: {integrity: sha512-6SXqDCGvVJGjtKNp97ChGc4yquIv26MCOZSiJOHJWJxbQBYNYMbYk2n5GJerQ808QxlqtLmx4Glmsw7fM+DsFg==} + engines: {node: '>=20'} + peerDependencies: + react: ^18.0.0 + vue: ^3.3.0 + dependencies: + '@scalar/api-reference': 1.18.3(postcss@8.4.38)(typescript@5.4.5)(unified@11.0.4)(vue@3.4.25)(yjs@13.6.15) + react: 18.2.0 + vue: 3.4.25(typescript@5.4.5) + transitivePeerDependencies: + - '@vue/composition-api' + - debug + - postcss + - supports-color + - typescript + - unified + - yjs + dev: false + + /@scalar/api-reference@1.18.3(postcss@8.4.38)(typescript@5.4.5)(unified@11.0.4)(vue@3.4.25)(yjs@13.6.15): + resolution: {integrity: sha512-YWCGZpe2cjdqEmj6RvwTmkOPxbj2A5/Z6lIfZameT64iJmkt0nyVht/hLin4iLtteklT/TqTEAlseNGmcAdm+g==} + engines: {node: '>=18'} + peerDependencies: + unified: ^11.0.0 + vue: ^3.3.0 + dependencies: + '@floating-ui/vue': 1.0.6(vue@3.4.25) + '@headlessui/vue': 1.7.20(vue@3.4.25) + '@scalar/api-client': 0.12.17(typescript@5.4.5)(vue@3.4.25)(yjs@13.6.15) + '@scalar/components': 0.4.3(typescript@5.4.5)(vue@3.4.25) + '@scalar/snippetz': 0.1.6 + '@scalar/swagger-parser': 0.5.21(openapi-types@12.1.3) + '@scalar/themes': 0.6.2(vue@3.4.25) + '@scalar/use-modal': 0.2.9(@headlessui/vue@1.7.20)(vue@3.4.25) + '@scalar/use-tooltip': 0.5.12(vue@3.4.25) + '@unhead/schema': 1.9.7 + '@vcarl/remark-headings': 0.1.0 + '@vueuse/core': 10.9.0(vue@3.4.25) + '@xmldom/xmldom': 0.8.10 + axios: 1.6.8 + fuse.js: 6.6.2 + github-slugger: 2.0.0 + httpsnippet-lite: 3.0.5 + js-yaml: 4.1.0 + openapi-types: 12.1.3 + postcss-nested: 6.0.1(postcss@8.4.38) + rehype-external-links: 3.0.0 + rehype-format: 5.0.0 + rehype-highlight: 7.0.0 + rehype-raw: 7.0.0 + rehype-sanitize: 6.0.0 + rehype-stringify: 10.0.0 + remark-gfm: 4.0.0 + remark-parse: 11.0.0 + remark-rehype: 11.1.0 + remark-stringify: 11.0.0 + unhead: 1.9.7 + unified: 11.0.4 + vue: 3.4.25(typescript@5.4.5) + vue-sonner: 1.1.2 + transitivePeerDependencies: + - '@vue/composition-api' + - debug + - postcss + - supports-color + - typescript + - yjs + dev: false + + /@scalar/components@0.4.3(typescript@5.4.5)(vue@3.4.25): + resolution: {integrity: sha512-NnZQyXyKiJoL+KvdBcvon28ROqi/lLHmZaJlNNTK4zFKB37H+00FVPJduibhYHrzVmsrn+VjI35Llc34dyKoBQ==} + engines: {node: '>=18'} + peerDependencies: + vue: ^3.3.0 + dependencies: + '@headlessui/vue': 1.7.20(vue@3.4.25) + '@vueuse/core': 10.9.0(vue@3.4.25) + '@xmldom/xmldom': 0.8.10 + class-variance-authority: 0.7.0 + cva: 1.0.0-beta.1(typescript@5.4.5) + nanoid: 5.0.7 + prismjs: 1.29.0 + tailwind-merge: 2.3.0 + vue: 3.4.25(typescript@5.4.5) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + dev: false + + /@scalar/snippetz-core@0.1.4: + resolution: {integrity: sha512-NMnDzl5dHgUj0k8ZtfssDfy6wv1wO/M+GhpdGr/4OH3m8UZB27CZ3hM7wXh+fm75hZO5XIBsANW20kJVnzpaHg==} + dependencies: + '@types/har-format': 1.2.15 + dev: false + + /@scalar/snippetz-plugin-js-fetch@0.1.1: + resolution: {integrity: sha512-9ODfi0OaEvZHdCe09c91eH1R5QPynL+FPxtYuK/9K5ElRE2NqxYysri9AsgOhr1Fqhpy5qKzDj4Gi5FHsJSGXw==} + dependencies: + '@scalar/snippetz-core': 0.1.4 + dev: false + + /@scalar/snippetz-plugin-js-ofetch@0.1.1: + resolution: {integrity: sha512-fPIJlY4q1j5gbnsYSxix0IJ7hqcvm8Ly7iVoK66vaL738AIMiGZMhGKtLrTVPad77PimwO+jeq5iDIZ495UY7Q==} + dependencies: + '@scalar/snippetz-core': 0.1.4 + dev: false + + /@scalar/snippetz-plugin-node-fetch@0.1.2: + resolution: {integrity: sha512-kD6erA6aAqjHkj+JrJQKqrqcH4fnCrLi2uYw16CmELIGtqVHFau7ew2c087y4OQTltdi5rEk2zj5zOBu9yaS3Q==} + dependencies: + '@scalar/snippetz-core': 0.1.4 + dev: false + + /@scalar/snippetz-plugin-node-ofetch@0.1.1: + resolution: {integrity: sha512-9NpvdMKebg82FkVWoWyOxd1JXAB8KNxmrsFFwQKNjhAw0A5hjNR5oW9lD+FtB1Laupg2FNtw9dcCydnF+LcCWw==} + dependencies: + '@scalar/snippetz-core': 0.1.4 + dev: false + + /@scalar/snippetz-plugin-node-undici@0.1.6: + resolution: {integrity: sha512-CivUl7wgZ6vlUb01FMdqOt/NVyOWqT0iHZRp5YlPp1pflXZLnAyi5antUTtBEUHUtHM2EO/WR7vx4kRsPcrgLg==} + dependencies: + '@scalar/snippetz-core': 0.1.4 + dev: false + + /@scalar/snippetz@0.1.6: + resolution: {integrity: sha512-z3DEpT/FIZq9yeHL/tz2v6WvdHIiZ4uvK96RdeTPKUUJ0IXvA5vONG3PF5LE0Q/408PCzWsZpGs9f97ztaeJSQ==} + dependencies: + '@scalar/snippetz-core': 0.1.4 + '@scalar/snippetz-plugin-js-fetch': 0.1.1 + '@scalar/snippetz-plugin-js-ofetch': 0.1.1 + '@scalar/snippetz-plugin-node-fetch': 0.1.2 + '@scalar/snippetz-plugin-node-ofetch': 0.1.1 + '@scalar/snippetz-plugin-node-undici': 0.1.6 + dev: false + + /@scalar/swagger-parser@0.5.21(openapi-types@12.1.3): + resolution: {integrity: sha512-JSSM7Ftrww8DmBn6Sd6oqJ7RcDXE2dffzqLgKGfqiChDbSSnB1kalUPhmV8isvz633vSNjUnUs+EVYwyO0mY9g==} + engines: {node: '>=18'} + dependencies: + '@apidevtools/swagger-parser': 10.1.0(openapi-types@12.1.3) + js-yaml: 4.1.0 + transitivePeerDependencies: + - openapi-types + dev: false + + /@scalar/themes@0.6.2(vue@3.4.25): + resolution: {integrity: sha512-ZczOuImSC7pF/uiy7idiaweWrCsBt15DZS/FRXlA62mQiUXcgOV9ZuS/ifT4YI6vngSqdETVSJvjr/WKjQRbew==} + engines: {node: '>=18'} + peerDependencies: + vue: ^3.3.0 + dependencies: + vue: 3.4.25(typescript@5.4.5) + dev: false + + /@scalar/use-codemirror@0.8.9(vue@3.4.25)(yjs@13.6.15): + resolution: {integrity: sha512-/eVi+KdDpEbQa668QYO+lyPP7Gx4NPeLdp7xDKwLvA2dIyfAeci+dkg2uM0+0OqDUKHZQfsGt38/6UR8aKufog==} + engines: {node: '>=18'} + peerDependencies: + vue: ^3.3.0 + yjs: ^13.6.0 + dependencies: + '@codemirror/autocomplete': 6.16.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.3)(@lezer/common@1.2.1) + '@codemirror/lang-css': 6.2.1(@codemirror/view@6.26.3) + '@codemirror/lang-html': 6.4.9 + '@codemirror/lang-json': 6.0.1 + '@codemirror/lang-yaml': 6.1.1(@codemirror/view@6.26.3) + '@codemirror/language': 6.10.1 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.26.3 + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.0 + '@lezer/lr': 1.4.0 + '@replit/codemirror-css-color-picker': 6.1.1(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.3) + '@uiw/codemirror-themes': 4.21.25(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.3) + codemirror: 6.0.1(@lezer/common@1.2.1) + vue: 3.4.25(typescript@5.4.5) + y-codemirror.next: 0.3.3(@codemirror/state@6.4.1)(@codemirror/view@6.26.3)(yjs@13.6.15) + yjs: 13.6.15 + dev: false + + /@scalar/use-modal@0.2.9(@headlessui/vue@1.7.20)(vue@3.4.25): + resolution: {integrity: sha512-h+Je4bjtF38kQsgfvAZ4TanhJaqHxL3nk7jM8tBYQmKYHCMyFo7oELglu830f0wNrO0TmhDrrQem745Z5uyb2Q==} + engines: {node: '>=18'} + peerDependencies: + '@headlessui/vue': ^1.7.0 + vue: ^3.3.0 + dependencies: + '@headlessui/vue': 1.7.20(vue@3.4.25) + vue: 3.4.25(typescript@5.4.5) + dev: false + + /@scalar/use-tooltip@0.5.12(vue@3.4.25): + resolution: {integrity: sha512-pDKyGtysxxOcyWE/D5FyRODE1Nqb3LO5cc2X9m7JwjClTqeD3VuKnA3sC4UTcGNKUIDTqVXGyjnHeXoC10t6OA==} + engines: {node: '>=18'} + peerDependencies: + vue: ^3.3.0 + dependencies: + vue: 3.4.25(typescript@5.4.5) + dev: false + + /@scena/dragscroll@1.4.0: + resolution: {integrity: sha512-3O8daaZD9VXA9CP3dra6xcgt/qrm0mg0xJCwiX6druCteQ9FFsXffkF8PrqxY4Z4VJ58fFKEa0RlKqbsi/XnRA==} + dependencies: + '@daybrush/utils': 1.13.0 + '@scena/event-emitter': 1.0.5 + dev: false + + /@scena/event-emitter@1.0.5: + resolution: {integrity: sha512-AzY4OTb0+7ynefmWFQ6hxDdk0CySAq/D4efljfhtRHCOP7MBF9zUfhKG3TJiroVjASqVgkRJFdenS8ArZo6Olg==} + dependencies: + '@daybrush/utils': 1.13.0 + dev: false + + /@scena/matrix@1.1.1: + resolution: {integrity: sha512-JVKBhN0tm2Srl+Yt+Ywqu0oLgLcdemDQlD1OxmN9jaCTwaFPZ7tY8n6dhVgMEaR9qcR7r+kAlMXnSfNyYdE+Vg==} + dependencies: + '@daybrush/utils': 1.13.0 + dev: false + + /@shikijs/core@1.3.0: + resolution: {integrity: sha512-7fedsBfuILDTBmrYZNFI8B6ATTxhQAasUHllHmjvSZPnoq4bULWoTpHwmuQvZ8Aq03/tAa2IGo6RXqWtHdWaCA==} + dev: false + + /@sideway/address@4.1.5: + resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} + dependencies: + '@hapi/hoek': 9.3.0 + dev: true + + /@sideway/formula@3.0.1: + resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} + dev: true + + /@sideway/pinpoint@2.0.0: + resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} + dev: true + + /@sigstore/bundle@2.3.1: + resolution: {integrity: sha512-eqV17lO3EIFqCWK3969Rz+J8MYrRZKw9IBHpSo6DEcEX2c+uzDFOgHE9f2MnyDpfs48LFO4hXmk9KhQ74JzU1g==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + '@sigstore/protobuf-specs': 0.3.1 + + /@sigstore/core@1.1.0: + resolution: {integrity: sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==} + engines: {node: ^16.14.0 || >=18.0.0} + + /@sigstore/protobuf-specs@0.3.1: + resolution: {integrity: sha512-aIL8Z9NsMr3C64jyQzE0XlkEyBLpgEJJFDHLVVStkFV5Q3Il/r/YtY6NJWKQ4cy4AE7spP1IX5Jq7VCAxHHMfQ==} + engines: {node: ^16.14.0 || >=18.0.0} + + /@sigstore/sign@2.3.0: + resolution: {integrity: sha512-tsAyV6FC3R3pHmKS880IXcDJuiFJiKITO1jxR1qbplcsBkZLBmjrEw5GbC7ikD6f5RU1hr7WnmxB/2kKc1qUWQ==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + '@sigstore/bundle': 2.3.1 + '@sigstore/core': 1.1.0 + '@sigstore/protobuf-specs': 0.3.1 + make-fetch-happen: 13.0.0 + transitivePeerDependencies: + - supports-color + + /@sigstore/tuf@2.3.2: + resolution: {integrity: sha512-mwbY1VrEGU4CO55t+Kl6I7WZzIl+ysSzEYdA1Nv/FTrl2bkeaPXo5PnWZAVfcY2zSdhOpsUTJW67/M2zHXGn5w==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + '@sigstore/protobuf-specs': 0.3.1 + tuf-js: 2.2.0 + transitivePeerDependencies: + - supports-color + + /@sigstore/verify@1.2.0: + resolution: {integrity: sha512-hQF60nc9yab+Csi4AyoAmilGNfpXT+EXdBgFkP9OgPwIBPwyqVf7JAWPtmqrrrneTmAT6ojv7OlH1f6Ix5BG4Q==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + '@sigstore/bundle': 2.3.1 + '@sigstore/core': 1.1.0 + '@sigstore/protobuf-specs': 0.3.1 + + /@sinclair/typebox@0.27.8: + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + + /@sindresorhus/is@5.6.0: + resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} + engines: {node: '>=14.16'} + dev: false + + /@sindresorhus/merge-streams@2.3.0: + resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} + engines: {node: '>=18'} + + /@solidjs/meta@0.29.3(solid-js@1.8.16): + resolution: {integrity: sha512-R2uirgjgyh3FPFh+rb840plF701N6GvM5w81/QeI61QwjXb4QzLkyI/uzXfC5UW8favpUn9KK9ILQeoTl6pX0A==} + peerDependencies: + solid-js: '>=1.8.4' dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.2.78)(react@18.2.0) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + solid-js: 1.8.16 dev: false - /@radix-ui/react-dropdown-menu@2.0.6(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-i6TuFOoWmLWq+M/eCLGd/bQ2HfAX1RJgvrBQ6AQLmzfvsLdefxbWu8G9zczcPFfcSPehz9GcpF6K9QYreFV8hA==} + /@solidjs/router@0.12.5(solid-js@1.8.16): + resolution: {integrity: sha512-UK9GnWPS1RmBf7w35DpWwqNgpVbKhon5eXOl7Xk+edPMTzzHkwPW2RytQKQ0BMRQOHzyM/WRetWLbIAubKdlog==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + solid-js: ^1.8.6 + dependencies: + solid-js: 1.8.16 + dev: false + + /@solidjs/start@0.6.1(solid-js@1.8.16)(vinxi@0.3.11)(vite@4.5.3): + resolution: {integrity: sha512-e5kj37jTVCfKhTg14ozvJr7ksZUd8FedRlbJlkPsO+Mbi04fyZ5i+41I5RjLYPF1WukLLuJKUGz9He7NJv6e7A==} + dependencies: + '@vinxi/plugin-directives': 0.3.1(vinxi@0.3.11) + '@vinxi/server-components': 0.3.3(vinxi@0.3.11) + '@vinxi/server-functions': 0.3.2(vinxi@0.3.11) + defu: 6.1.4 + error-stack-parser: 2.1.4 + html-to-image: 1.11.11 + radix3: 1.1.2 + seroval: 1.0.5 + seroval-plugins: 1.0.5(seroval@1.0.5) + shikiji: 0.9.19 + source-map-js: 1.0.2 + terracotta: 1.0.5(solid-js@1.8.16) + vite-plugin-inspect: 0.7.38(vite@4.5.3) + vite-plugin-solid: 2.9.1(solid-js@1.8.16)(vite@4.5.3) + transitivePeerDependencies: + - '@nuxt/kit' + - '@testing-library/jest-dom' + - rollup + - solid-js + - supports-color + - vinxi + - vite + dev: false + + /@sveltejs/adapter-auto@3.2.0(@sveltejs/kit@2.5.7): + resolution: {integrity: sha512-She5nKT47kwHE18v9NMe6pbJcvULr82u0V3yZ0ej3n1laWKGgkgdEABE9/ak5iDPs93LqsBkuIo51kkwCLBjJA==} + peerDependencies: + '@sveltejs/kit': ^2.0.0 + dependencies: + '@sveltejs/kit': 2.5.7(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.15)(vite@5.2.10) + import-meta-resolve: 4.0.0 + dev: true + + /@sveltejs/kit@2.5.7(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.15)(vite@5.2.10): + resolution: {integrity: sha512-6uedTzrb7nQrw6HALxnPrPaXdIN2jJJTzTIl96Z3P5NiG+OAfpdPbrWrvkJ3GN4CfWqrmU4dJqwMMRMTD/C7ow==} + engines: {node: '>=18.13'} + hasBin: true + requiresBuild: true + peerDependencies: + '@sveltejs/vite-plugin-svelte': ^3.0.0 + svelte: ^4.0.0 || ^5.0.0-next.0 + vite: ^5.0.3 + dependencies: + '@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.15)(vite@5.2.10) + '@types/cookie': 0.6.0 + cookie: 0.6.0 + devalue: 5.0.0 + esm-env: 1.0.0 + import-meta-resolve: 4.0.0 + kleur: 4.1.5 + magic-string: 0.30.10 + mrmime: 2.0.0 + sade: 1.8.1 + set-cookie-parser: 2.6.0 + sirv: 2.0.4 + svelte: 4.2.15 + tiny-glob: 0.2.9 + vite: 5.2.10(@types/node@20.12.7) + dev: true + + /@sveltejs/package@2.3.1(svelte@4.2.15)(typescript@5.4.5): + resolution: {integrity: sha512-JvR2J4ost1oCn1CSdqenYRwGX/1RX+7LN+VZ71aPnz3JAlIFaEKQd1pBxlb+OSQTfeugJO0W39gB9voAbBO5ow==} + engines: {node: ^16.14 || >=18} + hasBin: true + peerDependencies: + svelte: ^3.44.0 || ^4.0.0 || ^5.0.0-next.1 + dependencies: + chokidar: 3.6.0 + kleur: 4.1.5 + sade: 1.8.1 + semver: 7.5.4 + svelte: 4.2.15 + svelte2tsx: 0.7.6(svelte@4.2.15)(typescript@5.4.5) + transitivePeerDependencies: + - typescript + dev: true + + /@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.15)(vite@5.2.10): + resolution: {integrity: sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==} + engines: {node: ^18.0.0 || >=20} + peerDependencies: + '@sveltejs/vite-plugin-svelte': ^3.0.0 + svelte: ^4.0.0 || ^5.0.0-next.0 + vite: ^5.0.0 + dependencies: + '@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.15)(vite@5.2.10) + debug: 4.3.4 + svelte: 4.2.15 + vite: 5.2.10(@types/node@20.12.7) + transitivePeerDependencies: + - supports-color + dev: true + + /@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.15)(vite@5.2.10): + resolution: {integrity: sha512-sY6ncCvg+O3njnzbZexcVtUqOBE3iYmQPJ9y+yXSkOwG576QI/xJrBnQSRXFLGwJNBa0T78JEKg5cIR0WOAuUw==} + engines: {node: ^18.0.0 || >=20} + peerDependencies: + svelte: ^4.0.0 || ^5.0.0-next.0 + vite: ^5.0.0 + dependencies: + '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.15)(vite@5.2.10) + debug: 4.3.4 + deepmerge: 4.3.1 + kleur: 4.1.5 + magic-string: 0.30.10 + svelte: 4.2.15 + svelte-hmr: 0.16.0(svelte@4.2.15) + vite: 5.2.10(@types/node@20.12.7) + vitefu: 0.2.5(vite@5.2.10) + transitivePeerDependencies: + - supports-color + dev: true + + /@swc/core-darwin-arm64@1.4.16: + resolution: {integrity: sha512-UOCcH1GvjRnnM/LWT6VCGpIk0OhHRq6v1U6QXuPt5wVsgXnXQwnf5k3sG5Cm56hQHDvhRPY6HCsHi/p0oek8oQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@swc/core-darwin-x64@1.4.16: + resolution: {integrity: sha512-t3bgqFoYLWvyVtVL6KkFNCINEoOrIlyggT/kJRgi1y0aXSr0oVgcrQ4ezJpdeahZZ4N+Q6vT3ffM30yIunELNA==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm-gnueabihf@1.4.16: + resolution: {integrity: sha512-DvHuwvEF86YvSd0lwnzVcjOTZ0jcxewIbsN0vc/0fqm9qBdMMjr9ox6VCam1n3yYeRtj4VFgrjeNFksqbUejdQ==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm64-gnu@1.4.16: + resolution: {integrity: sha512-9Uu5YlPbyCvbidjKtYEsPpyZlu16roOZ5c2tP1vHfnU9bgf5Tz5q5VovSduNxPHx+ed2iC1b1URODHvDzbbDuQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm64-musl@1.4.16: + resolution: {integrity: sha512-/YZq/qB1CHpeoL0eMzyqK5/tYZn/rzKoCYDviFU4uduSUIJsDJQuQA/skdqUzqbheOXKAd4mnJ1hT04RbJ8FPQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-x64-gnu@1.4.16: + resolution: {integrity: sha512-UUjaW5VTngZYDcA8yQlrFmqs1tLi1TxbKlnaJwoNhel9zRQ0yG1YEVGrzTvv4YApSuIiDK18t+Ip927bwucuVQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-x64-musl@1.4.16: + resolution: {integrity: sha512-aFhxPifevDTwEDKPi4eRYWzC0p/WYJeiFkkpNU5Uc7a7M5iMWPAbPFUbHesdlb9Jfqs5c07oyz86u+/HySBNPQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-arm64-msvc@1.4.16: + resolution: {integrity: sha512-bTD43MbhIHL2s5QgCwyleaGwl96Gk/scF2TaVKdUe4QlJCDV/YK9h5oIBAp63ckHtE8GHlH4c8dZNBiAXn4Org==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-ia32-msvc@1.4.16: + resolution: {integrity: sha512-/lmZeAN/qV5XbK2SEvi8e2RkIg8FQNYiSA8y2/Zb4gTUMKVO5JMLH0BSWMiIKMstKDPDSxMWgwJaQHF8UMyPmQ==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-x64-msvc@1.4.16: + resolution: {integrity: sha512-BPAfFfODWXtUu6SwaTTftDHvcbDyWBSI/oanUeRbQR5vVWkXoQ3cxLTsDluc3H74IqXS5z1Uyoe0vNo2hB1opA==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core@1.4.16(@swc/helpers@0.5.10): + resolution: {integrity: sha512-Xaf+UBvW6JNuV131uvSNyMXHn+bh6LyKN4tbv7tOUFQpXyz/t9YWRE04emtlUW9Y0qrm/GKFCbY8n3z6BpZbTA==} + engines: {node: '>=10'} + requiresBuild: true + peerDependencies: + '@swc/helpers': ^0.5.0 peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': + '@swc/helpers': optional: true dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-menu': 2.0.6(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@swc/counter': 0.1.3 + '@swc/helpers': 0.5.10 + '@swc/types': 0.1.6 + optionalDependencies: + '@swc/core-darwin-arm64': 1.4.16 + '@swc/core-darwin-x64': 1.4.16 + '@swc/core-linux-arm-gnueabihf': 1.4.16 + '@swc/core-linux-arm64-gnu': 1.4.16 + '@swc/core-linux-arm64-musl': 1.4.16 + '@swc/core-linux-x64-gnu': 1.4.16 + '@swc/core-linux-x64-musl': 1.4.16 + '@swc/core-win32-arm64-msvc': 1.4.16 + '@swc/core-win32-ia32-msvc': 1.4.16 + '@swc/core-win32-x64-msvc': 1.4.16 + dev: true + + /@swc/counter@0.1.3: + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + + /@swc/helpers@0.5.10: + resolution: {integrity: sha512-CU+RF9FySljn7HVSkkjiB84hWkvTaI3rtLvF433+jRSBL2hMu3zX5bGhHS8C80SM++h4xy8hBSnUHFQHmRXSBw==} + dependencies: + tslib: 2.6.2 + dev: true + + /@swc/helpers@0.5.5: + resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==} + dependencies: + '@swc/counter': 0.1.3 + tslib: 2.6.2 + + /@swc/types@0.1.6: + resolution: {integrity: sha512-/JLo/l2JsT/LRd80C3HfbmVpxOAJ11FO2RCEslFrgzLltoP9j8XIbsyDcfCt2WWyX+CM96rBoNM+IToAkFOugg==} + dependencies: + '@swc/counter': 0.1.3 + dev: true + + /@szmarczak/http-timer@5.0.1: + resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} + engines: {node: '>=14.16'} + dependencies: + defer-to-connect: 2.0.1 dev: false - /@radix-ui/react-focus-guards@1.0.0(react@18.2.0): - resolution: {integrity: sha512-UagjDk4ijOAnGu4WMUPj9ahi7/zJJqNZ9ZAiGPp7waUWJO0O1aWXi/udPphI0IUjvrhBsZJGSN66dR2dsueLWQ==} + /@t3-oss/env-core@0.10.1(typescript@5.4.5)(zod@3.23.0): + resolution: {integrity: sha512-GcKZiCfWks5CTxhezn9k5zWX3sMDIYf6Kaxy2Gx9YEQftFcz8hDRN56hcbylyAO3t4jQnQ5ifLawINsNgCDpOg==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + typescript: '>=5.0.0' + zod: ^3.0.0 + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@babel/runtime': 7.24.4 - react: 18.2.0 + typescript: 5.4.5 + zod: 3.23.0 dev: false - /@radix-ui/react-focus-guards@1.0.1(@types/react@18.2.78)(react@18.2.0): - resolution: {integrity: sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==} + /@t3-oss/env-nextjs@0.10.1(typescript@5.4.5)(zod@3.23.0): + resolution: {integrity: sha512-iy2qqJLnFh1RjEWno2ZeyTu0ufomkXruUsOZludzDIroUabVvHsrSjtkHqwHp1/pgPUzN3yBRHMILW162X7x2Q==} peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 + typescript: '>=5.0.0' + zod: ^3.0.0 peerDependenciesMeta: - '@types/react': + typescript: optional: true dependencies: - '@babel/runtime': 7.24.4 - '@types/react': 18.2.78 - react: 18.2.0 + '@t3-oss/env-core': 0.10.1(typescript@5.4.5)(zod@3.23.0) + typescript: 5.4.5 + zod: 3.23.0 dev: false - /@radix-ui/react-focus-scope@1.0.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-C4SWtsULLGf/2L4oGeIHlvWQx7Rf+7cX/vKOAD2dXW0A1b5QXwi3wWeaEgW+wn+SEVrraMUk05vLU9fZZz5HbQ==} + /@tailwindcss/typography@0.5.12(tailwindcss@3.4.3): + resolution: {integrity: sha512-CNwpBpconcP7ppxmuq3qvaCxiRWnbhANpY/ruH4L5qs2GCiVDJXde/pjj2HWPV1+Q4G9+V/etrwUYopdcjAlyg==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + tailwindcss: '>=3.0.0 || insiders' dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + lodash.castarray: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.merge: 4.6.2 + postcss-selector-parser: 6.0.10 + tailwindcss: 3.4.3 dev: false - /@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==} + /@tanstack/react-virtual@3.4.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-GZN4xn/Tg5w7gvYeVcMVCeL4pEyUhvg+Cp6KX2Z01C4FRNxIWMgIQ9ibgMarNQfo+gt0PVLcEER4A9sNv/jlow==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 + '@tanstack/virtual-core': 3.4.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-icons@1.3.0(react@18.2.0): - resolution: {integrity: sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==} - peerDependencies: - react: ^16.x || ^17.x || ^18.x - dependencies: - react: 18.2.0 + /@tanstack/virtual-core@3.4.0: + resolution: {integrity: sha512-75jXqXxqq5M5Veb9KP1STi8kA5u408uOOAefk2ftHDGCpUk3RP6zX++QqfbmHJTBiU72NQ+ghgCZVts/Wocz8Q==} dev: false - /@radix-ui/react-id@1.0.0(react@18.2.0): - resolution: {integrity: sha512-Q6iAB/U7Tq3NTolBBQbHTgclPmGWE3OlktGGqrClPozSw4vkQ1DfQAOtzgRPecKsMdJINE05iaoDUG8tRzCBjw==} + /@tanstack/vue-virtual@3.4.0(vue@3.4.25): + resolution: {integrity: sha512-OHZGsmE89rpouVDGDOCtJTu64gLUzVq5FGkL2YY/wtZXu5QRSi5ep3T25Ivd53HQI3A169H01uwVPD0mEXKm9A==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + vue: ^2.7.0 || ^3.0.0 dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) - react: 18.2.0 + '@tanstack/virtual-core': 3.4.0 + vue: 3.4.25(typescript@5.4.5) dev: false - /@radix-ui/react-id@1.0.1(@types/react@18.2.78)(react@18.2.0): - resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==} + /@theguild/remark-mermaid@0.0.5(react@18.2.0): + resolution: {integrity: sha512-e+ZIyJkEv9jabI4m7q29wZtZv+2iwPGsXJ2d46Zi7e+QcFudiyuqhLhHG/3gX3ZEB+hxTch+fpItyMS8jwbIcw==} peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true + react: ^18.2.0 dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@types/react': 18.2.78 + mermaid: 10.9.0 react: 18.2.0 + unist-util-visit: 5.0.0 + transitivePeerDependencies: + - supports-color dev: false - /@radix-ui/react-label@2.0.2(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-N5ehvlM7qoTLx7nWPodsPYPgMzA5WM8zZChQg8nyFJKnDO5WHdba1vv5/H6IO5LtJMfD2Q3wh1qHFGNtK0w3bQ==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + /@theguild/remark-npm2yarn@0.2.1: + resolution: {integrity: sha512-jUTFWwDxtLEFtGZh/TW/w30ySaDJ8atKWH8dq2/IiQF61dPrGfETpl0WxD0VdBfuLOeU14/kop466oBSRO/5CA==} dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + npm-to-yarn: 2.2.1 + unist-util-visit: 5.0.0 dev: false - /@radix-ui/react-menu@2.0.6(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-BVkFLS+bUC8HcImkRKPSiVumA1VPOOEC5WBMiT+QAVsPzW1FJzI9KnqgGxVDPBcql5xXrHkD3JOVoXWEXD8SYA==} + /@tiptap/core@2.3.0(@tiptap/pm@2.3.0): + resolution: {integrity: sha512-Gk2JN3i5CMkYGmsbyFI7cBUftWa+F7QYmeCLTWfbuy+hCM2OBsnYVKxhggFPGXRL5KLBEgBWeCeWMHfIw3B2MA==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@tiptap/pm': ^2.0.0 dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 - aria-hidden: 1.2.4 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.5(@types/react@18.2.78)(react@18.2.0) + '@tiptap/pm': 2.3.0 dev: false - /@radix-ui/react-popover@1.0.7(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-shtvVnlsxT6faMnK/a7n0wptwBD23xc1Z5mdrtKLwVEfsEMXodS0r5s0/g5P0hX//EKYZS2sxUjqfzlg52ZSnQ==} + /@tiptap/extension-blockquote@2.3.0(@tiptap/core@2.3.0): + resolution: {integrity: sha512-Cztt77t7f+f0fuPy+FWUL8rKTIpcdsVT0z0zYQFFafvGaom0ZALQSOdTR/q+Kle9I4DaCMO3/Q0mwax/D4k4+A==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@tiptap/core': ^2.0.0 dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 - aria-hidden: 1.2.4 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.5(@types/react@18.2.78)(react@18.2.0) + '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) dev: false - /@radix-ui/react-popper@1.1.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-cKpopj/5RHZWjrbF2846jBNacjQVwkP068DfmgrNJXpvVWrOvlAmE9xSiy5OqeE+Gi8D9fP+oDhUnPqNMY8/5w==} + /@tiptap/extension-bold@2.3.0(@tiptap/core@2.3.0): + resolution: {integrity: sha512-SzkbJibHXFNU7TRaAebTtwbXUEhGZ8+MhlBn12aQ4QhdjNtFpQwKXQPyYeDyZGcyiOFgtFTb+WIfCGm8ZX0Fpw==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@tiptap/core': ^2.0.0 dependencies: - '@babel/runtime': 7.24.4 - '@floating-ui/react-dom': 2.0.8(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-use-rect': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/rect': 1.0.1 - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) dev: false - /@radix-ui/react-portal@1.0.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-a8qyFO/Xb99d8wQdu4o7qnigNjTPG123uADNecz0eX4usnQEj7o+cG4ZX4zkqq98NYekT7UoEQIjxBNWIFuqTA==} + /@tiptap/extension-bubble-menu@2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0): + resolution: {integrity: sha512-dqyfQ8idTlhapvt0fxCGvkyjw92pBEwPqmkJ01h3EE8wTh53j0ytOHyMSf1KBuzardxpd8Yya3zlrAcR0Z3DlQ==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + '@tiptap/core': ^2.0.0 + '@tiptap/pm': ^2.0.0 dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) + '@tiptap/pm': 2.3.0 + tippy.js: 6.3.7 dev: false - - /@radix-ui/react-portal@1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + + /@tiptap/extension-bullet-list@2.3.0(@tiptap/core@2.3.0): + resolution: {integrity: sha512-4nU4vJ5FjRDLqHm085vYAkuo68UK84Wl6CDSjm7sPVcu0FvQX02Okqt65azoSYQeS1SSSd5qq9YZuGWcYdp4Cw==} + peerDependencies: + '@tiptap/core': ^2.0.0 dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) dev: false - /@radix-ui/react-presence@1.0.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-A+6XEvN01NfVWiKu38ybawfHsBjWum42MRPnEuqPsBZ4eV7e/7K321B5VgYMPv3Xx5An6o1/l9ZuDBgmcmWK3w==} + /@tiptap/extension-code-block@2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0): + resolution: {integrity: sha512-+Ne6PRBwQt70Pp8aW2PewaEy4bHrNYn4N+y8MObsFtqLutXBz4nXnsXWiNYFQZwzlUY+CHG4XS73mx8oMOFfDw==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + '@tiptap/core': ^2.0.0 + '@tiptap/pm': ^2.0.0 dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) + '@tiptap/pm': 2.3.0 dev: false - /@radix-ui/react-presence@1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==} + /@tiptap/extension-code@2.3.0(@tiptap/core@2.3.0): + resolution: {integrity: sha512-O2FZmosiIRoVbW82fZy8xW4h4gb2xAzxWzHEcsHPlwCbE3vYvcBMmbkQ5p+33eRtuRQInzl3Q/cwupv9ctIepQ==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@tiptap/core': ^2.0.0 dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) dev: false - /@radix-ui/react-primitive@1.0.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-EyXe6mnRlHZ8b6f4ilTDrXmkLShICIuOTTj0GX4w1rp+wSxf3+TD05u1UOITC8VsJ2a9nwHvdXtOXEOl0Cw/zQ==} + /@tiptap/extension-color@2.3.0(@tiptap/core@2.3.0)(@tiptap/extension-text-style@2.3.0): + resolution: {integrity: sha512-rqtdTaGawPZSRszwC/BlkJTF1diosIBBRSO5/YCRHT7CfGJNJyomL3eFREynXLKnXZ69SMceDh6yU6B54uTHXQ==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + '@tiptap/core': ^2.0.0 + '@tiptap/extension-text-style': ^2.0.0 dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-slot': 1.0.0(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) + '@tiptap/extension-text-style': 2.3.0(@tiptap/core@2.3.0) dev: false - /@radix-ui/react-primitive@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==} + /@tiptap/extension-document@2.3.0(@tiptap/core@2.3.0): + resolution: {integrity: sha512-WC55SMrtlsNOnHXpzbXDzJOp7eKmZV0rXooKmvCDqoiLO/DKpyQXyF+0UHfcRPmUAi2GWFPaer7+p1H9xzcjXg==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@tiptap/core': ^2.0.0 dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.78)(react@18.2.0) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) dev: false - /@radix-ui/react-progress@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-5G6Om/tYSxjSeEdrb1VfKkfZfn/1IlPWd731h2RfPuSbIfNUgfqAwbKfJCg/PP6nuUCTrYzalwHSpSinoWoCag==} + /@tiptap/extension-dropcursor@2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0): + resolution: {integrity: sha512-WWxxGQPWdbzxyYP6jtBYSq4wMRhINhI0wBC8pgkxTVwCIWftMuYj++FP4LLIpuWgj78PWApuoM0QQxk4Lj7FOw==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@tiptap/core': ^2.0.0 + '@tiptap/pm': ^2.0.0 dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) + '@tiptap/pm': 2.3.0 dev: false - /@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==} + /@tiptap/extension-floating-menu@2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0): + resolution: {integrity: sha512-bNY43/yU/+wGfmk2eDV7EPDAN/akbC+YnSKTA5VPJADzscvlrL2HlQrxbd/STIdlwKqdPU5MokcvCChhfZ4f6w==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@tiptap/core': ^2.0.0 + '@tiptap/pm': ^2.0.0 dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) + '@tiptap/pm': 2.3.0 + tippy.js: 6.3.7 dev: false - /@radix-ui/react-scroll-area@1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-b6PAgH4GQf9QEn8zbT2XUHpW5z8BzqEc7Kl11TwDrvuTrxlkcjTD5qa/bxgKr+nmuXKu4L/W5UZ4mlP/VG/5Gw==} + /@tiptap/extension-gapcursor@2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0): + resolution: {integrity: sha512-OxcXcfD0uzNcXdXu2ZpXFAtXIsgK2MBHvFUs0t0gxtcL/t43pTOQBLy+29Ei30BxpwLghtX8jQ6IDzMiybq/sA==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@tiptap/core': ^2.0.0 + '@tiptap/pm': ^2.0.0 dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/number': 1.0.1 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) + '@tiptap/pm': 2.3.0 dev: false - /@radix-ui/react-slot@1.0.0(react@18.2.0): - resolution: {integrity: sha512-3mrKauI/tWXo1Ll+gN5dHcxDPdm/Df1ufcDLCecn+pnCIVcdWE7CujXo8QaXOWRJyZyQWWbpB8eFwHzWXlv5mQ==} + /@tiptap/extension-hard-break@2.3.0(@tiptap/core@2.3.0): + resolution: {integrity: sha512-9pXi69SzLabbjY5KZ54UKzu7HAHTla9aYZKH56VatOAiJOPKJppFbU2/NfJwGzDrEtfOiDqr3dYbUDF3RuCFoQ==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + '@tiptap/core': ^2.0.0 dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - react: 18.2.0 + '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) dev: false - /@radix-ui/react-slot@1.0.2(@types/react@18.2.78)(react@18.2.0): - resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} + /@tiptap/extension-heading@2.3.0(@tiptap/core@2.3.0): + resolution: {integrity: sha512-YcZoUYfqb0nohoPgem4f8mjn5OqDomFrbJiC9VRHUOCIuEu+aJEYwp8mmdkLnS3f+LRCZ6G76cJJ50lkzSAZRw==} peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true + '@tiptap/core': ^2.0.0 dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@types/react': 18.2.78 - react: 18.2.0 + '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) dev: false - /@radix-ui/react-tabs@1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-egZfYY/+wRNCflXNHx+dePvnz9FbmssDTJBtgRfDY7e8SE5oIo3Py2eCB1ckAbh1Q7cQ/6yJZThJ++sgbxibog==} + /@tiptap/extension-highlight@2.3.0(@tiptap/core@2.3.0): + resolution: {integrity: sha512-An/tzoCMbugdaU02ORJeJ74DZI5pf9oqwX9RoYPQ5K81Ia3jG52BBVtFjGq/j10Tr4iOuCmOuE+PzNtnzz3UIw==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@tiptap/core': ^2.0.0 dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) dev: false - /@radix-ui/react-tooltip@1.0.7(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-lPh5iKNFVQ/jav/j6ZrWq3blfDJ0OH9R6FlNUHPMqdLuQ9vwDgFsRxvl8b7Asuy5c8xmoojHUxKHQSOAvMHxyw==} + /@tiptap/extension-history@2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0): + resolution: {integrity: sha512-EF5Oq9fe/VBzU1Lsow2ubOlx1e1r4OQT1WUPGsRnL7pr94GH1Skpk7/hs9COJ9K6kP3Ebt42XjP0JEQodR58YA==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@tiptap/core': ^2.0.0 + '@tiptap/pm': ^2.0.0 dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) + '@tiptap/pm': 2.3.0 dev: false - /@radix-ui/react-use-callback-ref@1.0.0(react@18.2.0): - resolution: {integrity: sha512-GZtyzoHz95Rhs6S63D2t/eqvdFCm7I+yHMLVQheKM7nBD8mbZIt+ct1jz4536MDnaOGKIxynJ8eHTkVGVVkoTg==} + /@tiptap/extension-horizontal-rule@2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0): + resolution: {integrity: sha512-4DB8GU3uuDzzyqUmONIb3CHXcQ6Nuy4mHHkFSmUyEjg1i5eMQU5H7S6mNvZbltcJB2ImgCSwSMlj1kVN3MLIPg==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + '@tiptap/core': ^2.0.0 + '@tiptap/pm': ^2.0.0 dependencies: - '@babel/runtime': 7.24.4 - react: 18.2.0 + '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) + '@tiptap/pm': 2.3.0 dev: false - /@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.78)(react@18.2.0): - resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==} + /@tiptap/extension-image@2.3.0(@tiptap/core@2.3.0): + resolution: {integrity: sha512-v1fLEEzrfXWavsLFUEkTiYYxwm1WDNrjuUriU5tG2Jv22NL1BL4BLVbZbGdkAk+qHWy8QWszrDJbcgGh2VNCoQ==} peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true + '@tiptap/core': ^2.0.0 dependencies: - '@babel/runtime': 7.24.4 - '@types/react': 18.2.78 - react: 18.2.0 + '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) dev: false - /@radix-ui/react-use-controllable-state@1.0.0(react@18.2.0): - resolution: {integrity: sha512-FohDoZvk3mEXh9AWAVyRTYR4Sq7/gavuofglmiXB2g1aKyboUD4YtgWxKj8O5n+Uak52gXQ4wKz5IFST4vtJHg==} + /@tiptap/extension-italic@2.3.0(@tiptap/core@2.3.0): + resolution: {integrity: sha512-jdFjLjdt5JtPlGMpoS6TEq5rznjbAYVlPwcw5VkYENVIYIGIR1ylIw2JwK1nUEsQ+OgYwVxHLejcUXWG1dCi2g==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + '@tiptap/core': ^2.0.0 dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) - react: 18.2.0 + '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) dev: false - /@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.2.78)(react@18.2.0): - resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==} + /@tiptap/extension-link@2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0): + resolution: {integrity: sha512-CnJAlV0ZOdEhKmDfYKuHJVG8g79iCFQ85cX/CROTWyuMfXz9uhj2rLpZ6nfidVbonqxAhQp7NAIr2y+Fj5/53A==} peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true + '@tiptap/core': ^2.0.0 + '@tiptap/pm': ^2.0.0 dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@types/react': 18.2.78 - react: 18.2.0 + '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) + '@tiptap/pm': 2.3.0 + linkifyjs: 4.1.3 dev: false - /@radix-ui/react-use-escape-keydown@1.0.0(react@18.2.0): - resolution: {integrity: sha512-JwfBCUIfhXRxKExgIqGa4CQsiMemo1Xt0W/B4ei3fpzpvPENKpMKQ8mZSB6Acj3ebrAEgi2xiQvcI1PAAodvyg==} + /@tiptap/extension-list-item@2.3.0(@tiptap/core@2.3.0): + resolution: {integrity: sha512-mHU+IuRa56OT6YCtxf5Z7OSUrbWdKhGCEX7RTrteDVs5oMB6W3oF9j88M5qQmZ1WDcxvQhAOoXctnMt6eX9zcA==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + '@tiptap/core': ^2.0.0 dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) - react: 18.2.0 + '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) dev: false - /@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.2.78)(react@18.2.0): - resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==} + /@tiptap/extension-ordered-list@2.3.0(@tiptap/core@2.3.0): + resolution: {integrity: sha512-gkf0tltXjlUj0cqyfDV2r7xy9YPKtcVSWwlCPun6OOi0KzKFiAMqQpA9hy2W6gJ+KCp8+KNRMClZOfH4TnnBfg==} peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true + '@tiptap/core': ^2.0.0 dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@types/react': 18.2.78 - react: 18.2.0 + '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) dev: false - /@radix-ui/react-use-layout-effect@1.0.0(react@18.2.0): - resolution: {integrity: sha512-6Tpkq+R6LOlmQb1R5NNETLG0B4YP0wc+klfXafpUCj6JGyaUc8il7/kUZ7m59rGbXGczE9Bs+iz2qloqsZBduQ==} + /@tiptap/extension-paragraph@2.3.0(@tiptap/core@2.3.0): + resolution: {integrity: sha512-peCpA7DFqkd0cHb+cHv4YHNoMsXG8tKFNJlCHpLmsZWl2hWmpKgKmUrXAUfzjcFSvkZxn0xYc5oWbqUgg+2LzA==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + '@tiptap/core': ^2.0.0 dependencies: - '@babel/runtime': 7.24.4 - react: 18.2.0 + '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) dev: false - /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.78)(react@18.2.0): - resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==} + /@tiptap/extension-placeholder@2.0.3(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0): + resolution: {integrity: sha512-Z42jo0termRAf0S0L8oxrts94IWX5waU4isS2CUw8xCUigYyCFslkhQXkWATO1qRbjNFLKN2C9qvCgGf4UeBrw==} peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true + '@tiptap/core': ^2.0.0 + '@tiptap/pm': ^2.0.0 dependencies: - '@babel/runtime': 7.24.4 - '@types/react': 18.2.78 - react: 18.2.0 + '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) + '@tiptap/pm': 2.3.0 dev: false - /@radix-ui/react-use-rect@1.0.1(@types/react@18.2.78)(react@18.2.0): - resolution: {integrity: sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==} + /@tiptap/extension-strike@2.3.0(@tiptap/core@2.3.0): + resolution: {integrity: sha512-gOW4ALeH8gkJiUGGXVy/AOd5lAPTX0bzoOW1+sCLcTA7t8dluBW7M2ngNYxTEtlKqyv7aLfrgsYSiqucmmfSLw==} peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true + '@tiptap/core': ^2.0.0 dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/rect': 1.0.1 - '@types/react': 18.2.78 - react: 18.2.0 + '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) dev: false - /@radix-ui/react-use-size@1.0.1(@types/react@18.2.78)(react@18.2.0): - resolution: {integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==} + /@tiptap/extension-task-item@2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0): + resolution: {integrity: sha512-WvQJiQSskI1dZLPgNH4hmYPW0HFyR/EHwogzVnY7XCn2/5isV0ewyaVuSfqTXvfEA/R5uCi95opwz61NFBc2nQ==} peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true + '@tiptap/core': ^2.0.0 + '@tiptap/pm': ^2.0.0 dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.78)(react@18.2.0) - '@types/react': 18.2.78 - react: 18.2.0 + '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) + '@tiptap/pm': 2.3.0 dev: false - /@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==} + /@tiptap/extension-task-list@2.3.0(@tiptap/core@2.3.0): + resolution: {integrity: sha512-TBgqf4s3DpUV97w7AAj1WZDnZ3rZQ8B645d9bBayo4VfRzHCLefv5cVP/Ye9GA23T4FZoHNR+yIPrM7SfhkmPA==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@tiptap/core': ^2.0.0 dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) dev: false - /@radix-ui/rect@1.0.1: - resolution: {integrity: sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==} + /@tiptap/extension-text-style@2.3.0(@tiptap/core@2.3.0): + resolution: {integrity: sha512-S+sQZqd+QtJjbZ0LOp0Krf0dlrdMx7BQL0sUNKPq8XXRMcfW0pEEFGIU/0VDFQCldLIuyd7lZ8zo5cjaAgskIA==} + peerDependencies: + '@tiptap/core': ^2.0.0 dependencies: - '@babel/runtime': 7.24.4 + '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) dev: false - /@remirror/core-constants@2.0.2: - resolution: {integrity: sha512-dyHY+sMF0ihPus3O27ODd4+agdHMEmuRdyiZJ2CCWjPV5UFmn17ZbElvk6WOGVE4rdCJKZQCrPV2BcikOMLUGQ==} + /@tiptap/extension-text@2.3.0(@tiptap/core@2.3.0): + resolution: {integrity: sha512-zkudl0TyKRy/8vHtyo5dMzjBRD0HEUnsS8YOsjR4xwQq5EYUXleRgM1s6lb6Yms2sLUAZRWdDddoQ686iq4zQg==} + peerDependencies: + '@tiptap/core': ^2.0.0 + dependencies: + '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) dev: false - /@replit/codemirror-css-color-picker@6.1.1(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.2): - resolution: {integrity: sha512-e/wYHcgt3HRDpvYuwqXyjv3LEY6VyFjJeDQK1UtFmaykp86R6Cbw3ULH9pvuJuelaW6nS4CVtIRHuOfbFLlqwQ==} + /@tiptap/extension-underline@2.3.0(@tiptap/core@2.3.0): + resolution: {integrity: sha512-vmmcwCPmWqGKYHZevz50+bxrpHyiu5y6YZweAE476hn8Mud6vYg7RpkXgW8bjkCOky6UA51uelslSc0XrLE6uw==} peerDependencies: - '@codemirror/language': ^6.0.0 - '@codemirror/state': ^6.0.0 - '@codemirror/view': ^6.0.0 + '@tiptap/core': ^2.0.0 dependencies: - '@codemirror/language': 6.10.1 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.26.2 + '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) dev: false - /@rollup/plugin-alias@5.1.0(rollup@4.14.1): - resolution: {integrity: sha512-lpA3RZ9PdIG7qqhEfv79tBffNaoDuukFDrmhLqg9ifv99u/ehn+lOg30x2zmhf8AQqQUZaMk/B9fZraQ6/acDQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true + /@tiptap/pm@2.3.0: + resolution: {integrity: sha512-4WYqShZBwDyReKvapC0nmeYdOtZbZ31y4MjolpKQaSD4I7kg/oZspC+byUGdvIRsNpRN7i2X0IyvdISKk8gw5Q==} dependencies: - rollup: 4.14.1 - slash: 4.0.0 + prosemirror-changeset: 2.2.1 + prosemirror-collab: 1.3.1 + prosemirror-commands: 1.5.2 + prosemirror-dropcursor: 1.8.1 + prosemirror-gapcursor: 1.3.2 + prosemirror-history: 1.4.0 + prosemirror-inputrules: 1.4.0 + prosemirror-keymap: 1.2.2 + prosemirror-markdown: 1.12.0 + prosemirror-menu: 1.2.4 + prosemirror-model: 1.20.0 + prosemirror-schema-basic: 1.2.2 + prosemirror-schema-list: 1.3.0 + prosemirror-state: 1.4.3 + prosemirror-tables: 1.3.7 + prosemirror-trailing-node: 2.0.8(prosemirror-model@1.20.0)(prosemirror-state@1.4.3)(prosemirror-view@1.33.4) + prosemirror-transform: 1.8.0 + prosemirror-view: 1.33.4 dev: false - /@rollup/plugin-commonjs@25.0.7(rollup@4.14.1): - resolution: {integrity: sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==} - engines: {node: '>=14.0.0'} + /@tiptap/react@2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-ThgFJQTWYKRClTV2Zg0wBRqfy0EGz3U4NOey7jwncUjSjx5+o9nXbfQAYWDKQFfWyE+wnrBTYfddEP9pHNX5cQ==} peerDependencies: - rollup: ^2.68.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true + '@tiptap/core': ^2.0.0 + '@tiptap/pm': ^2.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.14.1) - commondir: 1.0.1 - estree-walker: 2.0.2 - glob: 8.1.0 - is-reference: 1.2.1 - magic-string: 0.30.9 - rollup: 4.14.1 + '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) + '@tiptap/extension-bubble-menu': 2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0) + '@tiptap/extension-floating-menu': 2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0) + '@tiptap/pm': 2.3.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@tiptap/starter-kit@2.3.0(@tiptap/pm@2.3.0): + resolution: {integrity: sha512-TjvCd/hzEnuEYOdr5uQqcfHOMuj7JRoZBPdheupwl3SbuYiCxtcqYyAE5qoGXWwuVe9xVGerOLVPkDUgmyrH6A==} + dependencies: + '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) + '@tiptap/extension-blockquote': 2.3.0(@tiptap/core@2.3.0) + '@tiptap/extension-bold': 2.3.0(@tiptap/core@2.3.0) + '@tiptap/extension-bullet-list': 2.3.0(@tiptap/core@2.3.0) + '@tiptap/extension-code': 2.3.0(@tiptap/core@2.3.0) + '@tiptap/extension-code-block': 2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0) + '@tiptap/extension-document': 2.3.0(@tiptap/core@2.3.0) + '@tiptap/extension-dropcursor': 2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0) + '@tiptap/extension-gapcursor': 2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0) + '@tiptap/extension-hard-break': 2.3.0(@tiptap/core@2.3.0) + '@tiptap/extension-heading': 2.3.0(@tiptap/core@2.3.0) + '@tiptap/extension-history': 2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0) + '@tiptap/extension-horizontal-rule': 2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0) + '@tiptap/extension-italic': 2.3.0(@tiptap/core@2.3.0) + '@tiptap/extension-list-item': 2.3.0(@tiptap/core@2.3.0) + '@tiptap/extension-ordered-list': 2.3.0(@tiptap/core@2.3.0) + '@tiptap/extension-paragraph': 2.3.0(@tiptap/core@2.3.0) + '@tiptap/extension-strike': 2.3.0(@tiptap/core@2.3.0) + '@tiptap/extension-text': 2.3.0(@tiptap/core@2.3.0) + transitivePeerDependencies: + - '@tiptap/pm' + dev: false - /@rollup/plugin-inject@5.0.5(rollup@4.14.1): - resolution: {integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==} - engines: {node: '>=14.0.0'} + /@tiptap/suggestion@2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0): + resolution: {integrity: sha512-QngwR9ahodVfwqp/kXxJvuL3zNb6XZu+vCuWy8RJrGP8DA7SCI9t8t7iB6NfG4kSsRGxM+3DuLi+2xOZQUaEVQ==} peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true + '@tiptap/core': ^2.0.0 + '@tiptap/pm': ^2.0.0 dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.14.1) - estree-walker: 2.0.2 - magic-string: 0.30.9 - rollup: 4.14.1 + '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) + '@tiptap/pm': 2.3.0 dev: false - /@rollup/plugin-json@6.1.0(rollup@4.14.1): - resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.14.1) - rollup: 4.14.1 + /@trysound/sax@0.2.0: + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} - /@rollup/plugin-node-resolve@15.2.3(rollup@4.14.1): - resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.78.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.14.1) - '@types/resolve': 1.20.2 - deepmerge: 4.3.1 - is-builtin-module: 3.2.1 - is-module: 1.0.0 - resolve: 1.22.8 - rollup: 4.14.1 + /@tufjs/canonical-json@2.0.0: + resolution: {integrity: sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==} + engines: {node: ^16.14.0 || >=18.0.0} - /@rollup/plugin-replace@5.0.5(rollup@4.14.1): - resolution: {integrity: sha512-rYO4fOi8lMaTg/z5Jb+hKnrHHVn8j2lwkqwyS4kTRhKyWOLf2wST2sWXr4WzWiTcoHTp2sTjqUbqIj2E39slKQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true + /@tufjs/models@2.0.0: + resolution: {integrity: sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg==} + engines: {node: ^16.14.0 || >=18.0.0} dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.14.1) - magic-string: 0.30.9 - rollup: 4.14.1 + '@tufjs/canonical-json': 2.0.0 + minimatch: 9.0.4 - /@rollup/plugin-terser@0.4.4(rollup@4.14.1): - resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true + /@types/acorn@4.0.6: + resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} dependencies: - rollup: 4.14.1 - serialize-javascript: 6.0.2 - smob: 1.5.0 - terser: 5.30.3 + '@types/estree': 1.0.1 dev: false - /@rollup/plugin-wasm@6.2.2(rollup@4.14.1): - resolution: {integrity: sha512-gpC4R1G9Ni92ZIRTexqbhX7U+9estZrbhP+9SRb0DW9xpB9g7j34r+J2hqrcW/lRI7dJaU84MxZM0Rt82tqYPQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true + /@types/babel__core@7.20.5: + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.14.1) - rollup: 4.14.1 - dev: true + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 + '@types/babel__generator': 7.6.4 + '@types/babel__template': 7.4.1 + '@types/babel__traverse': 7.20.1 + dev: false - /@rollup/pluginutils@4.2.1: - resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} - engines: {node: '>= 8.0.0'} + /@types/babel__generator@7.6.4: + resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==} dependencies: - estree-walker: 2.0.2 - picomatch: 2.3.1 + '@babel/types': 7.24.0 dev: false - /@rollup/pluginutils@5.1.0(rollup@4.14.1): - resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true + /@types/babel__template@7.4.1: + resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} dependencies: - '@types/estree': 1.0.5 - estree-walker: 2.0.2 - picomatch: 2.3.1 - rollup: 4.14.1 - - /@rollup/rollup-android-arm-eabi@4.14.1: - resolution: {integrity: sha512-fH8/o8nSUek8ceQnT7K4EQbSiV7jgkHq81m9lWZFIXjJ7lJzpWXbQFpT/Zh6OZYnpFykvzC3fbEvEAFZu03dPA==} - cpu: [arm] - os: [android] - requiresBuild: true - optional: true - - /@rollup/rollup-android-arm64@4.14.1: - resolution: {integrity: sha512-Y/9OHLjzkunF+KGEoJr3heiD5X9OLa8sbT1lm0NYeKyaM3oMhhQFvPB0bNZYJwlq93j8Z6wSxh9+cyKQaxS7PQ==} - cpu: [arm64] - os: [android] - requiresBuild: true - optional: true - - /@rollup/rollup-darwin-arm64@4.14.1: - resolution: {integrity: sha512-+kecg3FY84WadgcuSVm6llrABOdQAEbNdnpi5X3UwWiFVhZIZvKgGrF7kmLguvxHNQy+UuRV66cLVl3S+Rkt+Q==} - cpu: [arm64] - os: [darwin] - requiresBuild: true - optional: true - - /@rollup/rollup-darwin-x64@4.14.1: - resolution: {integrity: sha512-2pYRzEjVqq2TB/UNv47BV/8vQiXkFGVmPFwJb+1E0IFFZbIX8/jo1olxqqMbo6xCXf8kabANhp5bzCij2tFLUA==} - cpu: [x64] - os: [darwin] - requiresBuild: true - optional: true - - /@rollup/rollup-linux-arm-gnueabihf@4.14.1: - resolution: {integrity: sha512-mS6wQ6Do6/wmrF9aTFVpIJ3/IDXhg1EZcQFYHZLHqw6AzMBjTHWnCG35HxSqUNphh0EHqSM6wRTT8HsL1C0x5g==} - cpu: [arm] - os: [linux] - requiresBuild: true - optional: true - - /@rollup/rollup-linux-arm64-gnu@4.14.1: - resolution: {integrity: sha512-p9rGKYkHdFMzhckOTFubfxgyIO1vw//7IIjBBRVzyZebWlzRLeNhqxuSaZ7kCEKVkm/kuC9fVRW9HkC/zNRG2w==} - cpu: [arm64] - os: [linux] - requiresBuild: true - optional: true - - /@rollup/rollup-linux-arm64-musl@4.14.1: - resolution: {integrity: sha512-nDY6Yz5xS/Y4M2i9JLQd3Rofh5OR8Bn8qe3Mv/qCVpHFlwtZSBYSPaU4mrGazWkXrdQ98GB//H0BirGR/SKFSw==} - cpu: [arm64] - os: [linux] - requiresBuild: true - optional: true - - /@rollup/rollup-linux-powerpc64le-gnu@4.14.1: - resolution: {integrity: sha512-im7HE4VBL+aDswvcmfx88Mp1soqL9OBsdDBU8NqDEYtkri0qV0THhQsvZtZeNNlLeCUQ16PZyv7cqutjDF35qw==} - cpu: [ppc64le] - os: [linux] - requiresBuild: true - optional: true - - /@rollup/rollup-linux-riscv64-gnu@4.14.1: - resolution: {integrity: sha512-RWdiHuAxWmzPJgaHJdpvUUlDz8sdQz4P2uv367T2JocdDa98iRw2UjIJ4QxSyt077mXZT2X6pKfT2iYtVEvOFw==} - cpu: [riscv64] - os: [linux] - requiresBuild: true - optional: true + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 + dev: false - /@rollup/rollup-linux-s390x-gnu@4.14.1: - resolution: {integrity: sha512-VMgaGQ5zRX6ZqV/fas65/sUGc9cPmsntq2FiGmayW9KMNfWVG/j0BAqImvU4KTeOOgYSf1F+k6at1UfNONuNjA==} - cpu: [s390x] - os: [linux] - requiresBuild: true - optional: true + /@types/babel__traverse@7.20.1: + resolution: {integrity: sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg==} + dependencies: + '@babel/types': 7.24.0 + dev: false - /@rollup/rollup-linux-x64-gnu@4.14.1: - resolution: {integrity: sha512-9Q7DGjZN+hTdJomaQ3Iub4m6VPu1r94bmK2z3UeWP3dGUecRC54tmVu9vKHTm1bOt3ASoYtEz6JSRLFzrysKlA==} - cpu: [x64] - os: [linux] - requiresBuild: true - optional: true + /@types/body-parser@1.19.5: + resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} + dependencies: + '@types/connect': 3.4.38 + '@types/node': 20.12.7 - /@rollup/rollup-linux-x64-musl@4.14.1: - resolution: {integrity: sha512-JNEG/Ti55413SsreTguSx0LOVKX902OfXIKVg+TCXO6Gjans/k9O6ww9q3oLGjNDaTLxM+IHFMeXy/0RXL5R/g==} - cpu: [x64] - os: [linux] - requiresBuild: true - optional: true + /@types/braces@3.0.4: + resolution: {integrity: sha512-0WR3b8eaISjEW7RpZnclONaLFDf7buaowRHdqLp4vLj54AsSAYWfh3DRbfiYJY9XDxMgx1B4sE1Afw2PGpuHOA==} + dev: false - /@rollup/rollup-win32-arm64-msvc@4.14.1: - resolution: {integrity: sha512-ryS22I9y0mumlLNwDFYZRDFLwWh3aKaC72CWjFcFvxK0U6v/mOkM5Up1bTbCRAhv3kEIwW2ajROegCIQViUCeA==} - cpu: [arm64] - os: [win32] - requiresBuild: true - optional: true + /@types/bun@1.1.0: + resolution: {integrity: sha512-QGK0yU4jh0OK1A7DyhPkQuKjHQCC5jSJa3dpWIEhHv/rPfb6zLfdArc4/uUUZBMTcjilsafRXnPWO+1owb572Q==} + dependencies: + bun-types: 1.1.0 + dev: false - /@rollup/rollup-win32-ia32-msvc@4.14.1: - resolution: {integrity: sha512-TdloItiGk+T0mTxKx7Hp279xy30LspMso+GzQvV2maYePMAWdmrzqSNZhUpPj3CGw12aGj57I026PgLCTu8CGg==} - cpu: [ia32] - os: [win32] - requiresBuild: true - optional: true + /@types/connect@3.4.38: + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + dependencies: + '@types/node': 20.12.7 - /@rollup/rollup-win32-x64-msvc@4.14.1: - resolution: {integrity: sha512-wQGI+LY/Py20zdUPq+XCem7JcPOyzIJBm3dli+56DJsQOHbnXZFEwgmnC6el1TPAfC8lBT3m+z69RmLykNUbew==} - cpu: [x64] - os: [win32] - requiresBuild: true - optional: true + /@types/cookie@0.5.4: + resolution: {integrity: sha512-7z/eR6O859gyWIAjuvBWFzNURmf2oPBmJlfVWkwehU5nzIyjwBsTh7WMmEEV4JFnHuQ3ex4oyTvfKzcyJVDBNA==} + dev: false - /@rushstack/eslint-patch@1.10.2: - resolution: {integrity: sha512-hw437iINopmQuxWPSUEvqE56NCPsiU8N4AYtfHmJFckclktzK9YQJieD3XkDCDH4OjL+C7zgPUh73R/nrcHrqw==} - dev: true + /@types/cookie@0.6.0: + resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} - /@scalar/api-client@0.12.17(typescript@5.4.5)(vue@3.4.21)(yjs@13.6.14): - resolution: {integrity: sha512-3eAxXsSdZYeOC9da3DctN6gvuDocDTxscpKAfgmTGU9oct/vdYEgkS0Lt9lEluN6+kDwCo/QbX8JuJA+h/g1mA==} - engines: {node: '>=18'} - peerDependencies: - vue: ^3.3.0 + /@types/cookies@0.7.7: + resolution: {integrity: sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA==} dependencies: - '@headlessui/vue': 1.7.19(vue@3.4.21) - '@scalar/components': 0.4.3(typescript@5.4.5)(vue@3.4.21) - '@scalar/themes': 0.6.2(vue@3.4.21) - '@scalar/use-codemirror': 0.8.9(vue@3.4.21)(yjs@13.6.14) - '@scalar/use-modal': 0.2.9(@headlessui/vue@1.7.19)(vue@3.4.21) - '@vueuse/core': 10.9.0(vue@3.4.21) - axios: 1.6.8 - content-type: 1.0.5 - nanoid: 5.0.7 - pretty-bytes: 6.1.1 - pretty-ms: 8.0.0 - vue: 3.4.21(typescript@5.4.5) - transitivePeerDependencies: - - '@vue/composition-api' - - debug - - typescript - - yjs + '@types/connect': 3.4.38 + '@types/express': 4.17.21 + '@types/keygrip': 1.0.6 + '@types/node': 20.12.7 dev: false - /@scalar/api-reference-react@0.0.4(postcss@8.4.38)(react@18.2.0)(typescript@5.4.5)(unified@11.0.4)(vue@3.4.21)(yjs@13.6.14): - resolution: {integrity: sha512-6SXqDCGvVJGjtKNp97ChGc4yquIv26MCOZSiJOHJWJxbQBYNYMbYk2n5GJerQ808QxlqtLmx4Glmsw7fM+DsFg==} - engines: {node: '>=20'} - peerDependencies: - react: ^18.0.0 - vue: ^3.3.0 + /@types/cors@2.8.17: + resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} dependencies: - '@scalar/api-reference': 1.18.3(postcss@8.4.38)(typescript@5.4.5)(unified@11.0.4)(vue@3.4.21)(yjs@13.6.14) - react: 18.2.0 - vue: 3.4.21(typescript@5.4.5) - transitivePeerDependencies: - - '@vue/composition-api' - - debug - - postcss - - supports-color - - typescript - - unified - - yjs - dev: false + '@types/node': 20.12.7 + dev: true - /@scalar/api-reference@1.18.3(postcss@8.4.38)(typescript@5.4.5)(unified@11.0.4)(vue@3.4.21)(yjs@13.6.14): - resolution: {integrity: sha512-YWCGZpe2cjdqEmj6RvwTmkOPxbj2A5/Z6lIfZameT64iJmkt0nyVht/hLin4iLtteklT/TqTEAlseNGmcAdm+g==} - engines: {node: '>=18'} - peerDependencies: - unified: ^11.0.0 - vue: ^3.3.0 - dependencies: - '@floating-ui/vue': 1.0.6(vue@3.4.21) - '@headlessui/vue': 1.7.19(vue@3.4.21) - '@scalar/api-client': 0.12.17(typescript@5.4.5)(vue@3.4.21)(yjs@13.6.14) - '@scalar/components': 0.4.3(typescript@5.4.5)(vue@3.4.21) - '@scalar/snippetz': 0.1.6 - '@scalar/swagger-parser': 0.5.21(openapi-types@12.1.3) - '@scalar/themes': 0.6.2(vue@3.4.21) - '@scalar/use-modal': 0.2.9(@headlessui/vue@1.7.19)(vue@3.4.21) - '@scalar/use-tooltip': 0.5.12(vue@3.4.21) - '@unhead/schema': 1.9.4 - '@vcarl/remark-headings': 0.1.0 - '@vueuse/core': 10.9.0(vue@3.4.21) - '@xmldom/xmldom': 0.8.10 - axios: 1.6.8 - fuse.js: 6.6.2 - github-slugger: 2.0.0 - httpsnippet-lite: 3.0.5 - js-yaml: 4.1.0 - openapi-types: 12.1.3 - postcss-nested: 6.0.1(postcss@8.4.38) - rehype-external-links: 3.0.0 - rehype-format: 5.0.0 - rehype-highlight: 7.0.0 - rehype-raw: 7.0.0 - rehype-sanitize: 6.0.0 - rehype-stringify: 10.0.0 - remark-gfm: 4.0.0 - remark-parse: 11.0.0 - remark-rehype: 11.1.0 - remark-stringify: 11.0.0 - unhead: 1.9.4 - unified: 11.0.4 - vue: 3.4.21(typescript@5.4.5) - vue-sonner: 1.1.2 - transitivePeerDependencies: - - '@vue/composition-api' - - debug - - postcss - - supports-color - - typescript - - yjs + /@types/d3-scale-chromatic@3.0.3: + resolution: {integrity: sha512-laXM4+1o5ImZv3RpFAsTRn3TEkzqkytiOY0Dz0sq5cnd1dtNlk6sHLon4OvqaiJb28T0S/TdsBI3Sjsy+keJrw==} dev: false - /@scalar/components@0.4.3(typescript@5.4.5)(vue@3.4.21): - resolution: {integrity: sha512-NnZQyXyKiJoL+KvdBcvon28ROqi/lLHmZaJlNNTK4zFKB37H+00FVPJduibhYHrzVmsrn+VjI35Llc34dyKoBQ==} - engines: {node: '>=18'} - peerDependencies: - vue: ^3.3.0 + /@types/d3-scale@4.0.8: + resolution: {integrity: sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==} dependencies: - '@headlessui/vue': 1.7.19(vue@3.4.21) - '@vueuse/core': 10.9.0(vue@3.4.21) - '@xmldom/xmldom': 0.8.10 - class-variance-authority: 0.7.0 - cva: 1.0.0-beta.1(typescript@5.4.5) - nanoid: 5.0.7 - prismjs: 1.29.0 - tailwind-merge: 2.2.2 - vue: 3.4.21(typescript@5.4.5) - transitivePeerDependencies: - - '@vue/composition-api' - - typescript + '@types/d3-time': 3.0.3 dev: false - /@scalar/snippetz-core@0.1.4: - resolution: {integrity: sha512-NMnDzl5dHgUj0k8ZtfssDfy6wv1wO/M+GhpdGr/4OH3m8UZB27CZ3hM7wXh+fm75hZO5XIBsANW20kJVnzpaHg==} + /@types/d3-time@3.0.3: + resolution: {integrity: sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw==} + dev: false + + /@types/debug@4.1.8: + resolution: {integrity: sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==} dependencies: - '@types/har-format': 1.2.15 + '@types/ms': 0.7.31 dev: false - /@scalar/snippetz-plugin-js-fetch@0.1.1: - resolution: {integrity: sha512-9ODfi0OaEvZHdCe09c91eH1R5QPynL+FPxtYuK/9K5ElRE2NqxYysri9AsgOhr1Fqhpy5qKzDj4Gi5FHsJSGXw==} + /@types/eslint@8.56.10: + resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} dependencies: - '@scalar/snippetz-core': 0.1.4 + '@types/estree': 1.0.1 + '@types/json-schema': 7.0.12 + + /@types/estree-jsx@1.0.0: + resolution: {integrity: sha512-3qvGd0z8F2ENTGr/GG1yViqfiKmRfrXVx5sJyHGFu3z7m5g5utCQtGp/g29JnjflhtQJBv1WDQukHiT58xPcYQ==} + dependencies: + '@types/estree': 1.0.1 dev: false - /@scalar/snippetz-plugin-js-ofetch@0.1.1: - resolution: {integrity: sha512-fPIJlY4q1j5gbnsYSxix0IJ7hqcvm8Ly7iVoK66vaL738AIMiGZMhGKtLrTVPad77PimwO+jeq5iDIZ495UY7Q==} + /@types/estree@1.0.1: + resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} + + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + + /@types/express-serve-static-core@4.19.0: + resolution: {integrity: sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==} dependencies: - '@scalar/snippetz-core': 0.1.4 + '@types/node': 20.12.7 + '@types/qs': 6.9.15 + '@types/range-parser': 1.2.7 + '@types/send': 0.17.4 + + /@types/express@4.17.14: + resolution: {integrity: sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==} + dependencies: + '@types/body-parser': 1.19.5 + '@types/express-serve-static-core': 4.19.0 + '@types/qs': 6.9.15 + '@types/serve-static': 1.15.7 dev: false - /@scalar/snippetz-plugin-node-fetch@0.1.2: - resolution: {integrity: sha512-kD6erA6aAqjHkj+JrJQKqrqcH4fnCrLi2uYw16CmELIGtqVHFau7ew2c087y4OQTltdi5rEk2zj5zOBu9yaS3Q==} + /@types/express@4.17.21: + resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} dependencies: - '@scalar/snippetz-core': 0.1.4 + '@types/body-parser': 1.19.5 + '@types/express-serve-static-core': 4.19.0 + '@types/qs': 6.9.15 + '@types/serve-static': 1.15.7 + + /@types/har-format@1.2.15: + resolution: {integrity: sha512-RpQH4rXLuvTXKR0zqHq3go0RVXYv/YVqv4TnPH95VbwUxZdQlK1EtcMvQvMpDngHbt13Csh9Z4qT9AbkiQH5BA==} dev: false - /@scalar/snippetz-plugin-node-ofetch@0.1.1: - resolution: {integrity: sha512-9NpvdMKebg82FkVWoWyOxd1JXAB8KNxmrsFFwQKNjhAw0A5hjNR5oW9lD+FtB1Laupg2FNtw9dcCydnF+LcCWw==} + /@types/hast@2.3.5: + resolution: {integrity: sha512-SvQi0L/lNpThgPoleH53cdjB3y9zpLlVjRbqB3rH8hx1jiRSBGAhyjV3H+URFjNVRqt2EdYNrbZE5IsGlNfpRg==} dependencies: - '@scalar/snippetz-core': 0.1.4 + '@types/unist': 2.0.7 dev: false - /@scalar/snippetz-plugin-node-undici@0.1.6: - resolution: {integrity: sha512-CivUl7wgZ6vlUb01FMdqOt/NVyOWqT0iHZRp5YlPp1pflXZLnAyi5antUTtBEUHUtHM2EO/WR7vx4kRsPcrgLg==} + /@types/hast@3.0.4: + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} dependencies: - '@scalar/snippetz-core': 0.1.4 + '@types/unist': 3.0.2 dev: false - /@scalar/snippetz@0.1.6: - resolution: {integrity: sha512-z3DEpT/FIZq9yeHL/tz2v6WvdHIiZ4uvK96RdeTPKUUJ0IXvA5vONG3PF5LE0Q/408PCzWsZpGs9f97ztaeJSQ==} + /@types/http-cache-semantics@4.0.4: + resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + dev: false + + /@types/http-errors@2.0.4: + resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + + /@types/http-proxy@1.17.14: + resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} dependencies: - '@scalar/snippetz-core': 0.1.4 - '@scalar/snippetz-plugin-js-fetch': 0.1.1 - '@scalar/snippetz-plugin-js-ofetch': 0.1.1 - '@scalar/snippetz-plugin-node-fetch': 0.1.2 - '@scalar/snippetz-plugin-node-ofetch': 0.1.1 - '@scalar/snippetz-plugin-node-undici': 0.1.6 + '@types/node': 20.12.7 + + /@types/js-yaml@4.0.5: + resolution: {integrity: sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==} dev: false - /@scalar/swagger-parser@0.5.21(openapi-types@12.1.3): - resolution: {integrity: sha512-JSSM7Ftrww8DmBn6Sd6oqJ7RcDXE2dffzqLgKGfqiChDbSSnB1kalUPhmV8isvz633vSNjUnUs+EVYwyO0mY9g==} - engines: {node: '>=18'} + /@types/json-schema@7.0.12: + resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} + + /@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + /@types/json5@0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + + /@types/katex@0.16.2: + resolution: {integrity: sha512-dHsSjSlU/EWEEbeNADr3FtZZOAXPkFPUO457QCnoNqcZQXNqNEu/svQd0Nritvd3wNff4vvC/f4e6xgX3Llt8A==} + dev: false + + /@types/keygrip@1.0.6: + resolution: {integrity: sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ==} + dev: false + + /@types/linkify-it@3.0.5: + resolution: {integrity: sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==} + dev: false + + /@types/markdown-it@13.0.7: + resolution: {integrity: sha512-U/CBi2YUUcTHBt5tjO2r5QV/x0Po6nsYwQU4Y04fBS6vfoImaiZ6f8bi3CjTCxBPQSO1LMyUqkByzi8AidyxfA==} dependencies: - '@apidevtools/swagger-parser': 10.1.0(openapi-types@12.1.3) - js-yaml: 4.1.0 - transitivePeerDependencies: - - openapi-types + '@types/linkify-it': 3.0.5 + '@types/mdurl': 1.0.5 dev: false - /@scalar/themes@0.6.2(vue@3.4.21): - resolution: {integrity: sha512-ZczOuImSC7pF/uiy7idiaweWrCsBt15DZS/FRXlA62mQiUXcgOV9ZuS/ifT4YI6vngSqdETVSJvjr/WKjQRbew==} - engines: {node: '>=18'} - peerDependencies: - vue: ^3.3.0 + /@types/mdast@3.0.12: + resolution: {integrity: sha512-DT+iNIRNX884cx0/Q1ja7NyUPpZuv0KPyL5rGNxm1WC1OtHstl7n4Jb7nk+xacNShQMbczJjt8uFzznpp6kYBg==} dependencies: - vue: 3.4.21(typescript@5.4.5) + '@types/unist': 2.0.7 dev: false - /@scalar/use-codemirror@0.8.9(vue@3.4.21)(yjs@13.6.14): - resolution: {integrity: sha512-/eVi+KdDpEbQa668QYO+lyPP7Gx4NPeLdp7xDKwLvA2dIyfAeci+dkg2uM0+0OqDUKHZQfsGt38/6UR8aKufog==} - engines: {node: '>=18'} - peerDependencies: - vue: ^3.3.0 - yjs: ^13.6.0 + /@types/mdast@4.0.3: + resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==} dependencies: - '@codemirror/autocomplete': 6.15.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.2)(@lezer/common@1.2.1) - '@codemirror/lang-css': 6.2.1(@codemirror/view@6.26.2) - '@codemirror/lang-html': 6.4.8 - '@codemirror/lang-json': 6.0.1 - '@codemirror/lang-yaml': 6.1.0(@codemirror/view@6.26.2) - '@codemirror/language': 6.10.1 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.26.2 - '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.0 - '@lezer/lr': 1.4.0 - '@replit/codemirror-css-color-picker': 6.1.1(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.2) - '@uiw/codemirror-themes': 4.21.25(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.2) - codemirror: 6.0.1(@lezer/common@1.2.1) - vue: 3.4.21(typescript@5.4.5) - y-codemirror.next: 0.3.3(@codemirror/state@6.4.1)(@codemirror/view@6.26.2)(yjs@13.6.14) - yjs: 13.6.14 + '@types/unist': 3.0.2 dev: false - /@scalar/use-modal@0.2.9(@headlessui/vue@1.7.19)(vue@3.4.21): - resolution: {integrity: sha512-h+Je4bjtF38kQsgfvAZ4TanhJaqHxL3nk7jM8tBYQmKYHCMyFo7oELglu830f0wNrO0TmhDrrQem745Z5uyb2Q==} - engines: {node: '>=18'} - peerDependencies: - '@headlessui/vue': ^1.7.0 - vue: ^3.3.0 + /@types/mdurl@1.0.5: + resolution: {integrity: sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==} + dev: false + + /@types/mdx@2.0.6: + resolution: {integrity: sha512-sVcwEG10aFU2KcM7cIA0M410UPv/DesOPyG8zMVk0QUDexHA3lYmGucpEpZ2dtWWhi2ip3CG+5g/iH0PwoW4Fw==} + dev: false + + /@types/micromatch@4.0.7: + resolution: {integrity: sha512-C/FMQ8HJAZhTsDpl4wDKZdMeeW5USjgzOczUwTGbRc1ZopPgOhIEnxY2ZgUrsuyy4DwK1JVOJZKFakv3TbCKiA==} dependencies: - '@headlessui/vue': 1.7.19(vue@3.4.21) - vue: 3.4.21(typescript@5.4.5) + '@types/braces': 3.0.4 dev: false - /@scalar/use-tooltip@0.5.12(vue@3.4.21): - resolution: {integrity: sha512-pDKyGtysxxOcyWE/D5FyRODE1Nqb3LO5cc2X9m7JwjClTqeD3VuKnA3sC4UTcGNKUIDTqVXGyjnHeXoC10t6OA==} - engines: {node: '>=18'} - peerDependencies: - vue: ^3.3.0 + /@types/mime@1.3.5: + resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + + /@types/minimist@1.2.2: + resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} + dev: false + + /@types/ms@0.7.31: + resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} + dev: false + + /@types/mute-stream@0.0.4: + resolution: {integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==} dependencies: - vue: 3.4.21(typescript@5.4.5) + '@types/node': 20.12.7 dev: false - /@scena/dragscroll@1.4.0: - resolution: {integrity: sha512-3O8daaZD9VXA9CP3dra6xcgt/qrm0mg0xJCwiX6druCteQ9FFsXffkF8PrqxY4Z4VJ58fFKEa0RlKqbsi/XnRA==} + /@types/nlcst@1.0.4: + resolution: {integrity: sha512-ABoYdNQ/kBSsLvZAekMhIPMQ3YUZvavStpKYs7BjLLuKVmIMA0LUgZ7b54zzuWJRbHF80v1cNf4r90Vd6eMQDg==} dependencies: - '@daybrush/utils': 1.13.0 - '@scena/event-emitter': 1.0.5 + '@types/unist': 2.0.7 dev: false - /@scena/event-emitter@1.0.5: - resolution: {integrity: sha512-AzY4OTb0+7ynefmWFQ6hxDdk0CySAq/D4efljfhtRHCOP7MBF9zUfhKG3TJiroVjASqVgkRJFdenS8ArZo6Olg==} + /@types/node-fetch@2.6.2: + resolution: {integrity: sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==} dependencies: - '@daybrush/utils': 1.13.0 + '@types/node': 20.12.7 + form-data: 3.0.1 dev: false - /@scena/matrix@1.1.1: - resolution: {integrity: sha512-JVKBhN0tm2Srl+Yt+Ywqu0oLgLcdemDQlD1OxmN9jaCTwaFPZ7tY8n6dhVgMEaR9qcR7r+kAlMXnSfNyYdE+Vg==} + /@types/node-forge@1.3.11: + resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} dependencies: - '@daybrush/utils': 1.13.0 + '@types/node': 20.12.7 + dev: true + + /@types/node@12.20.55: + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} dev: false - /@shikijs/core@1.3.0: - resolution: {integrity: sha512-7fedsBfuILDTBmrYZNFI8B6ATTxhQAasUHllHmjvSZPnoq4bULWoTpHwmuQvZ8Aq03/tAa2IGo6RXqWtHdWaCA==} + /@types/node@16.18.6: + resolution: {integrity: sha512-vmYJF0REqDyyU0gviezF/KHq/fYaUbFhkcNbQCuPGFQj6VTbXuHZoxs/Y7mutWe73C8AC6l9fFu8mSYiBAqkGA==} dev: false - /@sideway/address@4.1.5: - resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} + /@types/node@18.15.3: + resolution: {integrity: sha512-p6ua9zBxz5otCmbpb5D3U4B5Nanw6Pk3PPyX05xnxbB/fRv71N7CPmORg7uAD5P70T0xmx1pzAx/FUfa5X+3cw==} + dev: false + + /@types/node@20.11.30: + resolution: {integrity: sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==} dependencies: - '@hapi/hoek': 9.3.0 - dev: true + undici-types: 5.26.5 + dev: false - /@sideway/formula@3.0.1: - resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} - dev: true + /@types/node@20.12.7: + resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} + dependencies: + undici-types: 5.26.5 - /@sideway/pinpoint@2.0.0: - resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} + /@types/normalize-package-data@2.4.1: + resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} + dev: false + + /@types/prop-types@15.7.5: + resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} + + /@types/pug@2.0.10: + resolution: {integrity: sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==} dev: true - /@sinclair/typebox@0.27.8: - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + /@types/qs@6.9.15: + resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} + + /@types/range-parser@1.2.7: + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + + /@types/react-dom@18.2.25: + resolution: {integrity: sha512-o/V48vf4MQh7juIKZU2QGDfli6p1+OOi5oXx36Hffpc9adsHeXjVp8rHuPkjd8VT8sOJ2Zp05HR7CdpGTIUFUA==} + dependencies: + '@types/react': 18.2.78 + + /@types/react@18.2.78: + resolution: {integrity: sha512-qOwdPnnitQY4xKlKayt42q5W5UQrSHjgoXNVEtxeqdITJ99k4VXJOP3vt8Rkm9HmgJpH50UNU+rlqfkfWOqp0A==} + dependencies: + '@types/prop-types': 15.7.5 + csstype: 3.1.3 + + /@types/resolve@1.20.2: + resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} + + /@types/semver@6.2.3: + resolution: {integrity: sha512-KQf+QAMWKMrtBMsB8/24w53tEsxllMj6TuA80TT/5igJalLI/zm0L3oXRbIAl4Ohfc85gyHX/jhMwsVkmhLU4A==} dev: false - /@sindresorhus/is@5.6.0: - resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} - engines: {node: '>=14.16'} + /@types/semver@7.5.0: + resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} + dev: false + + /@types/semver@7.5.8: + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + + /@types/send@0.17.4: + resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} + dependencies: + '@types/mime': 1.3.5 + '@types/node': 20.12.7 + + /@types/serve-static@1.15.7: + resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} + dependencies: + '@types/http-errors': 2.0.4 + '@types/node': 20.12.7 + '@types/send': 0.17.4 + + /@types/statuses@2.0.5: + resolution: {integrity: sha512-jmIUGWrAiwu3dZpxntxieC+1n/5c3mjrImkmOSQ2NC5uP6cYO4aAZDdSmRcI5C1oiTmqlZGHC+/NmJrKogbP5A==} + dev: false + + /@types/unist@2.0.7: + resolution: {integrity: sha512-cputDpIbFgLUaGQn6Vqg3/YsJwxUwHLO13v3i5ouxT4lat0khip9AEWxtERujXV9wxIB1EyF97BSJFt6vpdI8g==} dev: false - /@sindresorhus/merge-streams@2.3.0: - resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} - engines: {node: '>=18'} + /@types/unist@3.0.2: + resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} dev: false - /@solidjs/meta@0.29.3(solid-js@1.8.16): - resolution: {integrity: sha512-R2uirgjgyh3FPFh+rb840plF701N6GvM5w81/QeI61QwjXb4QzLkyI/uzXfC5UW8favpUn9KK9ILQeoTl6pX0A==} - peerDependencies: - solid-js: '>=1.8.4' - dependencies: - solid-js: 1.8.16 + /@types/web-bluetooth@0.0.20: + resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} + + /@types/wrap-ansi@3.0.0: + resolution: {integrity: sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==} dev: false - /@solidjs/router@0.12.5(solid-js@1.8.16): - resolution: {integrity: sha512-UK9GnWPS1RmBf7w35DpWwqNgpVbKhon5eXOl7Xk+edPMTzzHkwPW2RytQKQ0BMRQOHzyM/WRetWLbIAubKdlog==} - peerDependencies: - solid-js: ^1.8.6 + /@types/ws@8.5.10: + resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} dependencies: - solid-js: 1.8.16 + '@types/node': 20.12.7 dev: false - /@solidjs/start@0.6.1(solid-js@1.8.16)(vinxi@0.3.11)(vite@5.2.8): - resolution: {integrity: sha512-e5kj37jTVCfKhTg14ozvJr7ksZUd8FedRlbJlkPsO+Mbi04fyZ5i+41I5RjLYPF1WukLLuJKUGz9He7NJv6e7A==} + /@typescript-eslint/eslint-plugin@7.7.1(@typescript-eslint/parser@7.7.1)(eslint@8.57.0)(typescript@5.4.5): + resolution: {integrity: sha512-KwfdWXJBOviaBVhxO3p5TJiLpNuh2iyXyjmWN0f1nU87pwyvfS0EmjC6ukQVYVFJd/K1+0NWGPDXiyEyQorn0Q==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@vinxi/plugin-directives': 0.3.1(vinxi@0.3.11) - '@vinxi/server-components': 0.3.3(vinxi@0.3.11) - '@vinxi/server-functions': 0.3.2(vinxi@0.3.11) - defu: 6.1.4 - error-stack-parser: 2.1.4 - html-to-image: 1.11.11 - radix3: 1.1.2 - seroval: 1.0.5 - seroval-plugins: 1.0.5(seroval@1.0.5) - shikiji: 0.9.19 - source-map-js: 1.2.0 - terracotta: 1.0.5(solid-js@1.8.16) - vite-plugin-inspect: 0.7.42(vite@5.2.8) - vite-plugin-solid: 2.9.1(solid-js@1.8.16)(vite@5.2.8) + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 7.7.1(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/scope-manager': 7.7.1 + '@typescript-eslint/type-utils': 7.7.1(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/utils': 7.7.1(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.7.1 + debug: 4.3.4 + eslint: 8.57.0 + graphemer: 1.4.0 + ignore: 5.3.1 + natural-compare: 1.4.0 + semver: 7.6.0 + ts-api-utils: 1.3.0(typescript@5.4.5) + typescript: 5.4.5 transitivePeerDependencies: - - '@nuxt/kit' - - '@testing-library/jest-dom' - - rollup - - solid-js - supports-color - - vinxi - - vite - dev: false - /@sveltejs/adapter-auto@3.2.0(@sveltejs/kit@2.5.5): - resolution: {integrity: sha512-She5nKT47kwHE18v9NMe6pbJcvULr82u0V3yZ0ej3n1laWKGgkgdEABE9/ak5iDPs93LqsBkuIo51kkwCLBjJA==} + /@typescript-eslint/parser@6.3.0(eslint@8.57.0)(typescript@5.4.5): + resolution: {integrity: sha512-ibP+y2Gr6p0qsUkhs7InMdXrwldjxZw66wpcQq9/PzAroM45wdwyu81T+7RibNCh8oc0AgrsyCwJByncY0Ongg==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - '@sveltejs/kit': ^2.0.0 + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@sveltejs/kit': 2.5.5(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.13)(vite@5.2.8) - import-meta-resolve: 4.0.0 + '@typescript-eslint/scope-manager': 6.3.0 + '@typescript-eslint/types': 6.3.0 + '@typescript-eslint/typescript-estree': 6.3.0(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 6.3.0 + debug: 4.3.4 + eslint: 8.57.0 + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color dev: true - /@sveltejs/kit@2.5.5(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.13)(vite@5.2.8): - resolution: {integrity: sha512-ULe3PB00q4+wYRL+IS5FDPsCEVnhEITofm7b9Yz8malcH3r1SAnW/JJ6T13hIMeu8QNRIuVQWo+P4+2VklbnLQ==} - engines: {node: '>=18.13'} - hasBin: true - requiresBuild: true + /@typescript-eslint/parser@7.7.1(eslint@8.57.0)(typescript@5.4.5): + resolution: {integrity: sha512-vmPzBOOtz48F6JAGVS/kZYk4EkXao6iGrD838sp1w3NQQC0W8ry/q641KU4PrG7AKNAf56NOcR8GOpH8l9FPCw==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - '@sveltejs/vite-plugin-svelte': ^3.0.0 - svelte: ^4.0.0 || ^5.0.0-next.0 - vite: ^5.0.3 + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.13)(vite@5.2.8) - '@types/cookie': 0.6.0 - cookie: 0.6.0 - devalue: 4.3.2 - esm-env: 1.0.0 - import-meta-resolve: 4.0.0 - kleur: 4.1.5 - magic-string: 0.30.9 - mrmime: 2.0.0 - sade: 1.8.1 - set-cookie-parser: 2.6.0 - sirv: 2.0.4 - svelte: 4.2.13 - tiny-glob: 0.2.9 - vite: 5.2.8(@types/node@20.12.7) + '@typescript-eslint/scope-manager': 7.7.1 + '@typescript-eslint/types': 7.7.1 + '@typescript-eslint/typescript-estree': 7.7.1(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.7.1 + debug: 4.3.4 + eslint: 8.57.0 + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + + /@typescript-eslint/scope-manager@6.3.0: + resolution: {integrity: sha512-WlNFgBEuGu74ahrXzgefiz/QlVb+qg8KDTpknKwR7hMH+lQygWyx0CQFoUmMn1zDkQjTBBIn75IxtWss77iBIQ==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.3.0 + '@typescript-eslint/visitor-keys': 6.3.0 dev: true - /@sveltejs/package@2.3.1(svelte@4.2.13)(typescript@5.4.5): - resolution: {integrity: sha512-JvR2J4ost1oCn1CSdqenYRwGX/1RX+7LN+VZ71aPnz3JAlIFaEKQd1pBxlb+OSQTfeugJO0W39gB9voAbBO5ow==} - engines: {node: ^16.14 || >=18} - hasBin: true + /@typescript-eslint/scope-manager@7.7.1: + resolution: {integrity: sha512-PytBif2SF+9SpEUKynYn5g1RHFddJUcyynGpztX3l/ik7KmZEv19WCMhUBkHXPU9es/VWGD3/zg3wg90+Dh2rA==} + engines: {node: ^18.18.0 || >=20.0.0} + dependencies: + '@typescript-eslint/types': 7.7.1 + '@typescript-eslint/visitor-keys': 7.7.1 + + /@typescript-eslint/type-utils@7.7.1(eslint@8.57.0)(typescript@5.4.5): + resolution: {integrity: sha512-ZksJLW3WF7o75zaBPScdW1Gbkwhd/lyeXGf1kQCxJaOeITscoSl0MjynVvCzuV5boUz/3fOI06Lz8La55mu29Q==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - svelte: ^3.44.0 || ^4.0.0 || ^5.0.0-next.1 + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - chokidar: 3.6.0 - kleur: 4.1.5 - sade: 1.8.1 - semver: 7.6.0 - svelte: 4.2.13 - svelte2tsx: 0.7.6(svelte@4.2.13)(typescript@5.4.5) + '@typescript-eslint/typescript-estree': 7.7.1(typescript@5.4.5) + '@typescript-eslint/utils': 7.7.1(eslint@8.57.0)(typescript@5.4.5) + debug: 4.3.4 + eslint: 8.57.0 + ts-api-utils: 1.3.0(typescript@5.4.5) + typescript: 5.4.5 transitivePeerDependencies: - - typescript + - supports-color + + /@typescript-eslint/types@6.3.0: + resolution: {integrity: sha512-K6TZOvfVyc7MO9j60MkRNWyFSf86IbOatTKGrpTQnzarDZPYPVy0oe3myTMq7VjhfsUAbNUW8I5s+2lZvtx1gg==} + engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.13)(vite@5.2.8): - resolution: {integrity: sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==} - engines: {node: ^18.0.0 || >=20} + /@typescript-eslint/types@7.7.1: + resolution: {integrity: sha512-AmPmnGW1ZLTpWa+/2omPrPfR7BcbUU4oha5VIbSbS1a1Tv966bklvLNXxp3mrbc+P2j4MNOTfDffNsk4o0c6/w==} + engines: {node: ^18.18.0 || >=20.0.0} + + /@typescript-eslint/typescript-estree@6.3.0(typescript@5.4.5): + resolution: {integrity: sha512-Xh4NVDaC4eYKY4O3QGPuQNp5NxBAlEvNQYOqJquR2MePNxO11E5K3t5x4M4Mx53IZvtpW+mBxIT0s274fLUocg==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - '@sveltejs/vite-plugin-svelte': ^3.0.0 - svelte: ^4.0.0 || ^5.0.0-next.0 - vite: ^5.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.13)(vite@5.2.8) + '@typescript-eslint/types': 6.3.0 + '@typescript-eslint/visitor-keys': 6.3.0 debug: 4.3.4 - svelte: 4.2.13 - vite: 5.2.8(@types/node@20.12.7) + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.4 + ts-api-utils: 1.0.1(typescript@5.4.5) + typescript: 5.4.5 transitivePeerDependencies: - supports-color dev: true - /@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.13)(vite@5.2.8): - resolution: {integrity: sha512-sY6ncCvg+O3njnzbZexcVtUqOBE3iYmQPJ9y+yXSkOwG576QI/xJrBnQSRXFLGwJNBa0T78JEKg5cIR0WOAuUw==} - engines: {node: ^18.0.0 || >=20} + /@typescript-eslint/typescript-estree@7.7.1(typescript@5.4.5): + resolution: {integrity: sha512-CXe0JHCXru8Fa36dteXqmH2YxngKJjkQLjxzoj6LYwzZ7qZvgsLSc+eqItCrqIop8Vl2UKoAi0StVWu97FQZIQ==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - svelte: ^4.0.0 || ^5.0.0-next.0 - vite: ^5.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.13)(vite@5.2.8) + '@typescript-eslint/types': 7.7.1 + '@typescript-eslint/visitor-keys': 7.7.1 debug: 4.3.4 - deepmerge: 4.3.1 - kleur: 4.1.5 - magic-string: 0.30.9 - svelte: 4.2.13 - svelte-hmr: 0.16.0(svelte@4.2.13) - vite: 5.2.8(@types/node@20.12.7) - vitefu: 0.2.5(vite@5.2.8) + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.4 + semver: 7.6.0 + ts-api-utils: 1.3.0(typescript@5.4.5) + typescript: 5.4.5 transitivePeerDependencies: - supports-color - dev: true - - /@swc/core-darwin-arm64@1.4.13: - resolution: {integrity: sha512-36P72FLpm5iq85IvoEjBvi22DiqkkEIanJ1M0E8bkxcFHUbjBrYfPY9T6cpPyK5oQqkaTBvNAc3j1BlVD6IH6w==} - engines: {node: '>=10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@swc/core-darwin-x64@1.4.13: - resolution: {integrity: sha512-ye7OgKpDdyA8AMIVVdmD1ICDaFXgoEXORnVO8bBHyul0WN71yUBZMX+YxEx2lpWtiftA2vY/1MAuOR80vHkBCw==} - engines: {node: '>=10'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-arm-gnueabihf@1.4.13: - resolution: {integrity: sha512-+x593Jlmu4c3lJtZUKRejWpV2MAij1Js5nmQLLdjo6ChR2D4B2rzj3iMiKn5gITew7fraF9t3fvXALdWh7HmUg==} - engines: {node: '>=10'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-arm64-gnu@1.4.13: - resolution: {integrity: sha512-0x8OVw4dfyNerrs/9eZX9wNnmvwbwXSMCi+LbE6Xt1pXOIwvoLtFIXcV3NsrlkFboO3sr5UAQIwDxKqbIZA9pQ==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@swc/core-linux-arm64-musl@1.4.13: - resolution: {integrity: sha512-Z9c4JiequtZvngPcxbCuAOkmWBxi2vInZbjjhD5I+Q9oiJdXUz1t2USGwsGPS41Xvk1BOA3ecK2Sn1ilY3titg==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-x64-gnu@1.4.13: - resolution: {integrity: sha512-ChatHtk+vX0Ke5QG+jO+rIapw/KwZsi9MedCBHFXHH6iWF4z8d51cJeN68ykcn+vAXzjNeFNdlNy5Vbkd1zAqg==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-x64-musl@1.4.13: - resolution: {integrity: sha512-0Pz39YR530mXpsztwQkmEKdkkZy4fY4Smdh4pkm6Ly8Nndyo0te/l4bcAGqN24Jp7aVwF/QSy14SAtw4HRjU9g==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-win32-arm64-msvc@1.4.13: - resolution: {integrity: sha512-LVZfhlD+jHcAbz5NN+gAJ1BEasB0WpcvUzcsJt0nQSRsojgzPzFjJ+fzEBnvT7SMtqKkrnVJ0OmDYeh88bDRpw==} - engines: {node: '>=10'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true + /@typescript-eslint/utils@7.7.1(eslint@8.57.0)(typescript@5.4.5): + resolution: {integrity: sha512-QUvBxPEaBXf41ZBbaidKICgVL8Hin0p6prQDu6bbetWo39BKbWJxRsErOzMNT1rXvTll+J7ChrbmMCXM9rsvOQ==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.8 + '@typescript-eslint/scope-manager': 7.7.1 + '@typescript-eslint/types': 7.7.1 + '@typescript-eslint/typescript-estree': 7.7.1(typescript@5.4.5) + eslint: 8.57.0 + semver: 7.6.0 + transitivePeerDependencies: + - supports-color + - typescript - /@swc/core-win32-ia32-msvc@1.4.13: - resolution: {integrity: sha512-78hxHWUvUZtWsnhcf8DKwhBcNFJw+j4y4fN2B9ioXmBWX2tIyw+BqUHOrismOtjPihaZmwe/Ok2e4qmkawE2fw==} - engines: {node: '>=10'} - cpu: [ia32] - os: [win32] - requiresBuild: true + /@typescript-eslint/visitor-keys@6.3.0: + resolution: {integrity: sha512-kEhRRj7HnvaSjux1J9+7dBen15CdWmDnwrpyiHsFX6Qx2iW5LOBUgNefOFeh2PjWPlNwN8TOn6+4eBU3J/gupw==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.3.0 + eslint-visitor-keys: 3.4.3 dev: true - optional: true - /@swc/core-win32-x64-msvc@1.4.13: - resolution: {integrity: sha512-WSfy1u2Xde6jU7UpHIInCUMW98Zw9iZglddKUAvmr1obkZji5U6EX0Oca3asEJdZPFb+2lMLjt0Mh5a1YisROg==} - engines: {node: '>=10'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true + /@typescript-eslint/visitor-keys@7.7.1: + resolution: {integrity: sha512-gBL3Eq25uADw1LQ9kVpf3hRM+DWzs0uZknHYK3hq4jcTPqVCClHGDnB6UUUV2SFeBeA4KWHWbbLqmbGcZ4FYbw==} + engines: {node: ^18.18.0 || >=20.0.0} + dependencies: + '@typescript-eslint/types': 7.7.1 + eslint-visitor-keys: 3.4.3 - /@swc/core@1.4.13(@swc/helpers@0.5.8): - resolution: {integrity: sha512-rOtusBE+2gaeRkAJn5E4zp5yzZekZOypzSOz5ZG6P1hFbd+Cc26fWEdK6sUSnrkkvTd0Oj33KXLB/4UkbK/UHA==} - engines: {node: '>=10'} - requiresBuild: true + /@uiw/codemirror-themes@4.21.25(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.3): + resolution: {integrity: sha512-C3t/voELxQj0eaVhrlgzaOnSALNf8bOcRbL5xN9r2+RkdsbFOmvNl3VVhlxEB7PSGc1jUZwVO4wQsB2AP178ag==} peerDependencies: - '@swc/helpers': ^0.5.0 - peerDependenciesMeta: - '@swc/helpers': - optional: true + '@codemirror/language': '>=6.0.0' + '@codemirror/state': '>=6.0.0' + '@codemirror/view': '>=6.0.0' dependencies: - '@swc/counter': 0.1.3 - '@swc/helpers': 0.5.8 - '@swc/types': 0.1.6 - optionalDependencies: - '@swc/core-darwin-arm64': 1.4.13 - '@swc/core-darwin-x64': 1.4.13 - '@swc/core-linux-arm-gnueabihf': 1.4.13 - '@swc/core-linux-arm64-gnu': 1.4.13 - '@swc/core-linux-arm64-musl': 1.4.13 - '@swc/core-linux-x64-gnu': 1.4.13 - '@swc/core-linux-x64-musl': 1.4.13 - '@swc/core-win32-arm64-msvc': 1.4.13 - '@swc/core-win32-ia32-msvc': 1.4.13 - '@swc/core-win32-x64-msvc': 1.4.13 - dev: true + '@codemirror/language': 6.10.1 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.26.3 + dev: false - /@swc/counter@0.1.3: - resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - /@swc/helpers@0.5.5: - resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==} + /@unhead/dom@1.9.7: + resolution: {integrity: sha512-suZVi8apZCNEMKuasGboBB3njJJm+gd8G0NA89geVozJ0bz40FvLyLEJZ9LirbzpujmhgHhsUSvlq4QyslRqdQ==} dependencies: - '@swc/counter': 0.1.3 - tslib: 2.6.2 + '@unhead/schema': 1.9.7 + '@unhead/shared': 1.9.7 - /@swc/helpers@0.5.8: - resolution: {integrity: sha512-lruDGw3pnfM3wmZHeW7JuhkGQaJjPyiKjxeGhdmfoOT53Ic9qb5JLDNaK2HUdl1zLDeX28H221UvKjfdvSLVMg==} + /@unhead/schema@1.9.7: + resolution: {integrity: sha512-naQGY1gQqq8DmQCxVTOeeXIqaRwbqnLEgvQl12zPEDviYxmg7TCbmKyN9uT4ZarQbJ2WYT2UtYvdSrmTXcwlBw==} dependencies: - tslib: 2.6.2 - dev: true + hookable: 5.5.3 + zhead: 2.2.4 - /@swc/types@0.1.6: - resolution: {integrity: sha512-/JLo/l2JsT/LRd80C3HfbmVpxOAJ11FO2RCEslFrgzLltoP9j8XIbsyDcfCt2WWyX+CM96rBoNM+IToAkFOugg==} + /@unhead/shared@1.9.7: + resolution: {integrity: sha512-srji+qaBkkGOTdtTmFxt3AebFYcpt1qQHeQva7X3dSm5nZJDoKj35BJJTZfBSRCjgvkTtsdVUT14f9p9/4BCMA==} dependencies: - '@swc/counter': 0.1.3 - dev: true + '@unhead/schema': 1.9.7 - /@szmarczak/http-timer@5.0.1: - resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} - engines: {node: '>=14.16'} + /@unhead/ssr@1.9.7: + resolution: {integrity: sha512-3K0J9biCypPzJ5o4AgjhKboX2Sas4COj54wfT+ghSfyQ05Lp5IlWxw0FrXuxKPk54ObovskUwIf8eCa9ke0Vuw==} dependencies: - defer-to-connect: 2.0.1 - dev: false + '@unhead/schema': 1.9.7 + '@unhead/shared': 1.9.7 - /@t3-oss/env-core@0.9.2(typescript@5.4.5)(zod@3.22.4): - resolution: {integrity: sha512-KgWXljUTHgO3o7GMZQPAD5+P+HqpauMNNHowlm7V2b9IeMitSUpNKwG6xQrup/xARWHTdxRVIl0mSI4wCevQhQ==} + /@unhead/vue@1.9.7(vue@3.4.24): + resolution: {integrity: sha512-c5pcNvi3FwMfqd+lfD3XUyRKPDv/AVPrep84CFXaqB7ebb+2OQTgtxBiCoRsa8+DtdhYI50lYJ/yeVdfLI9XUw==} peerDependencies: - typescript: '>=5.0.0' - zod: ^3.0.0 + vue: '>=2.7 || >=3' + dependencies: + '@unhead/schema': 1.9.7 + '@unhead/shared': 1.9.7 + hookable: 5.5.3 + unhead: 1.9.7 + vue: 3.4.24(typescript@5.4.5) + + /@unocss/astro@0.59.4(rollup@3.29.4)(vite@5.2.10): + resolution: {integrity: sha512-DU3OR5MMR1Uvvec4/wB9EetDASHRg19Moy6z/MiIhn8JWJ0QzWYgSeJcfUX8exomMYv6WUEQJL+CyLI34Wmn8w==} + peerDependencies: + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 peerDependenciesMeta: - typescript: + vite: optional: true dependencies: - typescript: 5.4.5 - zod: 3.22.4 - dev: false + '@unocss/core': 0.59.4 + '@unocss/reset': 0.59.4 + '@unocss/vite': 0.59.4(rollup@3.29.4)(vite@5.2.10) + vite: 5.2.10(@types/node@20.12.7) + transitivePeerDependencies: + - rollup + dev: true - /@t3-oss/env-nextjs@0.9.2(typescript@5.4.5)(zod@3.22.4): - resolution: {integrity: sha512-dklHrgKLESStNVB67Jdbu6osxDYA+xNKaPBRerlnkEvzbCccSKMvZENx6EZebJuR4snqB3/yRykNMn/bdIAyiQ==} + /@unocss/astro@0.59.4(vite@5.2.10): + resolution: {integrity: sha512-DU3OR5MMR1Uvvec4/wB9EetDASHRg19Moy6z/MiIhn8JWJ0QzWYgSeJcfUX8exomMYv6WUEQJL+CyLI34Wmn8w==} peerDependencies: - typescript: '>=5.0.0' - zod: ^3.0.0 + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 peerDependenciesMeta: - typescript: + vite: optional: true dependencies: - '@t3-oss/env-core': 0.9.2(typescript@5.4.5)(zod@3.22.4) - typescript: 5.4.5 - zod: 3.22.4 - dev: false + '@unocss/core': 0.59.4 + '@unocss/reset': 0.59.4 + '@unocss/vite': 0.59.4(rollup@3.29.4)(vite@5.2.10) + vite: 5.2.10(@types/node@20.12.7) + transitivePeerDependencies: + - rollup - /@tailwindcss/typography@0.5.12(tailwindcss@3.4.3): - resolution: {integrity: sha512-CNwpBpconcP7ppxmuq3qvaCxiRWnbhANpY/ruH4L5qs2GCiVDJXde/pjj2HWPV1+Q4G9+V/etrwUYopdcjAlyg==} - peerDependencies: - tailwindcss: '>=3.0.0 || insiders' + /@unocss/cli@0.59.4(rollup@3.29.4): + resolution: {integrity: sha512-TT+WKedSifhsRqnpoYD2LfyYipVzEbzIU4DDGIaDNeDxGXYOGpb876zzkPDcvZSpI37IJ/efkkV7PGYpPBcQBQ==} + engines: {node: '>=14'} + hasBin: true dependencies: - lodash.castarray: 4.4.0 - lodash.isplainobject: 4.0.6 - lodash.merge: 4.6.2 - postcss-selector-parser: 6.0.10 - tailwindcss: 3.4.3 - dev: false + '@ampproject/remapping': 2.3.0 + '@rollup/pluginutils': 5.1.0(rollup@3.29.4) + '@unocss/config': 0.59.4 + '@unocss/core': 0.59.4 + '@unocss/preset-uno': 0.59.4 + cac: 6.7.14 + chokidar: 3.6.0 + colorette: 2.0.20 + consola: 3.2.3 + fast-glob: 3.3.2 + magic-string: 0.30.10 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + transitivePeerDependencies: + - rollup - /@tanstack/react-virtual@3.2.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-OEdMByf2hEfDa6XDbGlZN8qO6bTjlNKqjM3im9JG+u3mCL8jALy0T/67oDI001raUUPh1Bdmfn4ZvPOV5knpcg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + /@unocss/config@0.59.4: + resolution: {integrity: sha512-h3yhj+D5Ygn5R7gbK4wMrtXZX6FF5DF6YD517sSSb0XB3lxHD9PhhT4HaV1hpHknvu0cMFU3460M45+TN1TI0Q==} + engines: {node: '>=14'} dependencies: - '@tanstack/virtual-core': 3.2.0 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false + '@unocss/core': 0.59.4 + unconfig: 0.3.13 - /@tanstack/virtual-core@3.2.0: - resolution: {integrity: sha512-P5XgYoAw/vfW65byBbJQCw+cagdXDT/qH6wmABiLt4v4YBT2q2vqCOhihe+D1Nt325F/S/0Tkv6C5z0Lv+VBQQ==} - dev: false + /@unocss/core@0.59.4: + resolution: {integrity: sha512-bBZ1sgcAtezQVZ1BST9IS3jqcsTLyqKNjiIf7FTnX3DHpfpYuMDFzSOtmkZDzBleOLO/CtcRWjT0HwTSQAmV0A==} - /@tanstack/vue-virtual@3.2.0(vue@3.4.21): - resolution: {integrity: sha512-KbmQVvw1k5Js2Fk4DJw9aDxFT5+e8a2Ba4UBJAFCRnWBCnzd3NlmEHI9JCeLv1tYDZ/iHwwv+Z9Le0BENIEP8A==} - peerDependencies: - vue: ^2.7.0 || ^3.0.0 + /@unocss/extractor-arbitrary-variants@0.59.4: + resolution: {integrity: sha512-RDe4FgMGJQ+tp9GLvhPHni7Cc2O0lHBRMElVlN8LoXJAdODMICdbrEPGJlEfrc+7x/QgVFoR895KpYJh3hIgGA==} dependencies: - '@tanstack/virtual-core': 3.2.0 - vue: 3.4.21(typescript@5.4.5) - dev: false + '@unocss/core': 0.59.4 - /@theguild/remark-mermaid@0.0.5(react@18.2.0): - resolution: {integrity: sha512-e+ZIyJkEv9jabI4m7q29wZtZv+2iwPGsXJ2d46Zi7e+QcFudiyuqhLhHG/3gX3ZEB+hxTch+fpItyMS8jwbIcw==} + /@unocss/inspector@0.59.4: + resolution: {integrity: sha512-QczJFNDiggmekkJyNcbcZIUVwlhvxz7ZwjnSf0w7K4znxfjKkZ1hNUbqLviM1HumkTKOdT27VISW7saN/ysO4w==} + dependencies: + '@unocss/core': 0.59.4 + '@unocss/rule-utils': 0.59.4 + gzip-size: 6.0.0 + sirv: 2.0.4 + + /@unocss/postcss@0.59.4(postcss@8.4.38): + resolution: {integrity: sha512-KVz+AD7McHKp7VEWHbFahhyyVEo0oP/e1vnuNSuPlHthe+1V2zfH6lps+iJcvfL2072r5J+0PvD/1kOp5ryUSg==} + engines: {node: '>=14'} peerDependencies: - react: ^18.2.0 + postcss: ^8.4.21 dependencies: - mermaid: 10.9.0 - react: 18.2.0 - unist-util-visit: 5.0.0 + '@unocss/config': 0.59.4 + '@unocss/core': 0.59.4 + '@unocss/rule-utils': 0.59.4 + css-tree: 2.3.1 + fast-glob: 3.3.2 + magic-string: 0.30.10 + postcss: 8.4.38 + + /@unocss/preset-attributify@0.59.4: + resolution: {integrity: sha512-BeogWuYaIakC1gmOZFFCjFVWmu/m3AqEX8UYQS6tY6lAaK2L4Qf4AstYBlT2zAMxy9LNxPDxFQrvfSfFk5Klsg==} + dependencies: + '@unocss/core': 0.59.4 + + /@unocss/preset-icons@0.59.4: + resolution: {integrity: sha512-Afjwh5oC4KRE8TNZDUkRK6hvvV1wKLrS1e5trniE0B0AM9HK3PBolQaIU7QmzPv6WQrog+MZgIwafg1eqsPUCA==} + dependencies: + '@iconify/utils': 2.1.23 + '@unocss/core': 0.59.4 + ofetch: 1.3.4 transitivePeerDependencies: - supports-color - dev: false - /@theguild/remark-npm2yarn@0.2.1: - resolution: {integrity: sha512-jUTFWwDxtLEFtGZh/TW/w30ySaDJ8atKWH8dq2/IiQF61dPrGfETpl0WxD0VdBfuLOeU14/kop466oBSRO/5CA==} + /@unocss/preset-mini@0.59.4: + resolution: {integrity: sha512-ZLywGrXi1OCr4My5vX2rLUb5Xgx6ufR9WTQOvpQJGBdIV/jnZn/pyE5avCs476SnOq2K172lnd8mFmTK7/zArA==} dependencies: - npm-to-yarn: 2.2.1 - unist-util-visit: 5.0.0 - dev: false + '@unocss/core': 0.59.4 + '@unocss/extractor-arbitrary-variants': 0.59.4 + '@unocss/rule-utils': 0.59.4 - /@tiptap/core@2.3.0(@tiptap/pm@2.3.0): - resolution: {integrity: sha512-Gk2JN3i5CMkYGmsbyFI7cBUftWa+F7QYmeCLTWfbuy+hCM2OBsnYVKxhggFPGXRL5KLBEgBWeCeWMHfIw3B2MA==} - peerDependencies: - '@tiptap/pm': ^2.0.0 + /@unocss/preset-tagify@0.59.4: + resolution: {integrity: sha512-vWMdTUoghOSmTbdmZtERssffmdUdOuhh4vUdl0R8Kv6KxB0PkvEFCu2FItn97nRJdSPlZSFxxDkaOIg9w+STNQ==} dependencies: - '@tiptap/pm': 2.3.0 - dev: false + '@unocss/core': 0.59.4 - /@tiptap/extension-blockquote@2.3.0(@tiptap/core@2.3.0): - resolution: {integrity: sha512-Cztt77t7f+f0fuPy+FWUL8rKTIpcdsVT0z0zYQFFafvGaom0ZALQSOdTR/q+Kle9I4DaCMO3/Q0mwax/D4k4+A==} - peerDependencies: - '@tiptap/core': ^2.0.0 + /@unocss/preset-typography@0.59.4: + resolution: {integrity: sha512-ZX9bxZUqlXK1qEDzO5lkK96ICt9itR/oNyn/7mMc1JPqwj263LumQMn5silocgzoLSUXEeq//L6GylqYjkL8GA==} dependencies: - '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) - dev: false + '@unocss/core': 0.59.4 + '@unocss/preset-mini': 0.59.4 - /@tiptap/extension-bold@2.3.0(@tiptap/core@2.3.0): - resolution: {integrity: sha512-SzkbJibHXFNU7TRaAebTtwbXUEhGZ8+MhlBn12aQ4QhdjNtFpQwKXQPyYeDyZGcyiOFgtFTb+WIfCGm8ZX0Fpw==} - peerDependencies: - '@tiptap/core': ^2.0.0 + /@unocss/preset-uno@0.59.4: + resolution: {integrity: sha512-G1f8ZluplvXZ3bERj+sM/8zzY//XD++nNOlAQNKOANSVht3qEoJebrfEiMClNpA5qW5VWOZhEhPkh0M7GsXtnA==} dependencies: - '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) - dev: false + '@unocss/core': 0.59.4 + '@unocss/preset-mini': 0.59.4 + '@unocss/preset-wind': 0.59.4 + '@unocss/rule-utils': 0.59.4 - /@tiptap/extension-bubble-menu@2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0): - resolution: {integrity: sha512-dqyfQ8idTlhapvt0fxCGvkyjw92pBEwPqmkJ01h3EE8wTh53j0ytOHyMSf1KBuzardxpd8Yya3zlrAcR0Z3DlQ==} - peerDependencies: - '@tiptap/core': ^2.0.0 - '@tiptap/pm': ^2.0.0 + /@unocss/preset-web-fonts@0.59.4: + resolution: {integrity: sha512-ehutTjKHnf2KPmdatN42N9a8+y+glKSU3UlcBRNsVIIXVIlaBQuPVGZSPhnMtrKD17IgWylXq2K6RJK+ab0hZA==} dependencies: - '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) - '@tiptap/pm': 2.3.0 - tippy.js: 6.3.7 - dev: false + '@unocss/core': 0.59.4 + ofetch: 1.3.4 - /@tiptap/extension-bullet-list@2.3.0(@tiptap/core@2.3.0): - resolution: {integrity: sha512-4nU4vJ5FjRDLqHm085vYAkuo68UK84Wl6CDSjm7sPVcu0FvQX02Okqt65azoSYQeS1SSSd5qq9YZuGWcYdp4Cw==} - peerDependencies: - '@tiptap/core': ^2.0.0 + /@unocss/preset-wind@0.59.4: + resolution: {integrity: sha512-CNX6w0ZpSQg/i1oF0/WKWzto8PtLqoknC5h8JmmcGb7VsyBQeV0oNnhbURxpbuMEhbv1MWVIGvk8a+P6y0rFkQ==} dependencies: - '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) - dev: false + '@unocss/core': 0.59.4 + '@unocss/preset-mini': 0.59.4 + '@unocss/rule-utils': 0.59.4 - /@tiptap/extension-code-block@2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0): - resolution: {integrity: sha512-+Ne6PRBwQt70Pp8aW2PewaEy4bHrNYn4N+y8MObsFtqLutXBz4nXnsXWiNYFQZwzlUY+CHG4XS73mx8oMOFfDw==} - peerDependencies: - '@tiptap/core': ^2.0.0 - '@tiptap/pm': ^2.0.0 + /@unocss/reset@0.59.4: + resolution: {integrity: sha512-Upy4xzdWl4RChbLAXBq1BoR4WqxXMoIfjvtcwSZcZK2sylXCFAseSWnyzJFdSiXPqNfmMuNgPXgiSxiQB+cmNA==} + + /@unocss/rule-utils@0.59.4: + resolution: {integrity: sha512-1qoLJlBWAkS4D4sg73990S1MT7E8E5md/YhopKjTQuEC9SyeVmEg+5pR/Xd8xhPKMqbcuBPl/DS8b6l/GQO56A==} + engines: {node: '>=14'} dependencies: - '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) - '@tiptap/pm': 2.3.0 - dev: false + '@unocss/core': 0.59.4 + magic-string: 0.30.10 - /@tiptap/extension-code@2.3.0(@tiptap/core@2.3.0): - resolution: {integrity: sha512-O2FZmosiIRoVbW82fZy8xW4h4gb2xAzxWzHEcsHPlwCbE3vYvcBMmbkQ5p+33eRtuRQInzl3Q/cwupv9ctIepQ==} - peerDependencies: - '@tiptap/core': ^2.0.0 + /@unocss/scope@0.59.4: + resolution: {integrity: sha512-wBQJ39kw4Tfj4km7AoGvSIobPKVnRZVsgc0bema5Y0PL3g1NeVQ/LopBI2zEJWdpxGXUWxSDsXm7BZo6qVlD/A==} + + /@unocss/transformer-attributify-jsx-babel@0.59.4: + resolution: {integrity: sha512-xtCRSgeTaDBiNJLVX7oOSFe63JiFB5nrdK23PHn3IlZM9O7Bxx4ZxI3MQJtFZFQNE+INFko+DVyY1WiFEm1p/Q==} dependencies: - '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) - dev: false + '@babel/core': 7.24.4 + '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.4) + '@babel/preset-typescript': 7.24.1(@babel/core@7.24.4) + '@unocss/core': 0.59.4 + transitivePeerDependencies: + - supports-color - /@tiptap/extension-color@2.3.0(@tiptap/core@2.3.0)(@tiptap/extension-text-style@2.3.0): - resolution: {integrity: sha512-rqtdTaGawPZSRszwC/BlkJTF1diosIBBRSO5/YCRHT7CfGJNJyomL3eFREynXLKnXZ69SMceDh6yU6B54uTHXQ==} - peerDependencies: - '@tiptap/core': ^2.0.0 - '@tiptap/extension-text-style': ^2.0.0 + /@unocss/transformer-attributify-jsx@0.59.4: + resolution: {integrity: sha512-m4b83utzKMfUQH/45V2QkjJoXd8Tu2pRP1nic91Xf7QRceyKDD+BxoTneo2JNC2K274cQu7HqqotnCm2aFfEGw==} dependencies: - '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) - '@tiptap/extension-text-style': 2.3.0(@tiptap/core@2.3.0) - dev: false + '@unocss/core': 0.59.4 - /@tiptap/extension-document@2.3.0(@tiptap/core@2.3.0): - resolution: {integrity: sha512-WC55SMrtlsNOnHXpzbXDzJOp7eKmZV0rXooKmvCDqoiLO/DKpyQXyF+0UHfcRPmUAi2GWFPaer7+p1H9xzcjXg==} - peerDependencies: - '@tiptap/core': ^2.0.0 + /@unocss/transformer-compile-class@0.59.4: + resolution: {integrity: sha512-Vgk2OCLPW0pU+Uzr1IgDtHVspSBb+gPrQFkV+5gxHk9ZdKi3oYKxLuufVWYDSwv7o9yfQGbYrMH9YLsjRsnA7Q==} dependencies: - '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) - dev: false + '@unocss/core': 0.59.4 - /@tiptap/extension-dropcursor@2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0): - resolution: {integrity: sha512-WWxxGQPWdbzxyYP6jtBYSq4wMRhINhI0wBC8pgkxTVwCIWftMuYj++FP4LLIpuWgj78PWApuoM0QQxk4Lj7FOw==} - peerDependencies: - '@tiptap/core': ^2.0.0 - '@tiptap/pm': ^2.0.0 + /@unocss/transformer-directives@0.59.4: + resolution: {integrity: sha512-nXUTEclUbs0vQ4KfLhKt4J/5SLSEq1az2FNlJmiXMmqmn75X89OrtCu2OJu9sGXhn+YyBApxgcSSdxmtpqMi1Q==} dependencies: - '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) - '@tiptap/pm': 2.3.0 - dev: false + '@unocss/core': 0.59.4 + '@unocss/rule-utils': 0.59.4 + css-tree: 2.3.1 - /@tiptap/extension-floating-menu@2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0): - resolution: {integrity: sha512-bNY43/yU/+wGfmk2eDV7EPDAN/akbC+YnSKTA5VPJADzscvlrL2HlQrxbd/STIdlwKqdPU5MokcvCChhfZ4f6w==} - peerDependencies: - '@tiptap/core': ^2.0.0 - '@tiptap/pm': ^2.0.0 + /@unocss/transformer-variant-group@0.59.4: + resolution: {integrity: sha512-9XLixxn1NRgP62Kj4R/NC/rpqhql5F2s6ulJ8CAMTEbd/NylVhEANluPGDVUGcLJ4cj6E02hFa8C1PLGSm7/xw==} dependencies: - '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) - '@tiptap/pm': 2.3.0 - tippy.js: 6.3.7 - dev: false + '@unocss/core': 0.59.4 - /@tiptap/extension-gapcursor@2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0): - resolution: {integrity: sha512-OxcXcfD0uzNcXdXu2ZpXFAtXIsgK2MBHvFUs0t0gxtcL/t43pTOQBLy+29Ei30BxpwLghtX8jQ6IDzMiybq/sA==} + /@unocss/vite@0.59.4(rollup@3.29.4)(vite@5.2.10): + resolution: {integrity: sha512-q7GN7vkQYn79n7vYIUlaa7gXGwc7pk0Qo3z3ZFwWGE43/DtZnn2Hwl5UjgBAgi9McA+xqHJEHRsJnI7HJPHUYA==} peerDependencies: - '@tiptap/core': ^2.0.0 - '@tiptap/pm': ^2.0.0 + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 dependencies: - '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) - '@tiptap/pm': 2.3.0 + '@ampproject/remapping': 2.3.0 + '@rollup/pluginutils': 5.1.0(rollup@3.29.4) + '@unocss/config': 0.59.4 + '@unocss/core': 0.59.4 + '@unocss/inspector': 0.59.4 + '@unocss/scope': 0.59.4 + '@unocss/transformer-directives': 0.59.4 + chokidar: 3.6.0 + fast-glob: 3.3.2 + magic-string: 0.30.10 + vite: 5.2.10(@types/node@20.12.7) + transitivePeerDependencies: + - rollup + + /@vcarl/remark-headings@0.1.0: + resolution: {integrity: sha512-ffQxJUcapJ9Bk+fiGN49YJ9RaYMibrSTSezB1Fcrtu+0YSZxA3bsaLlIv1u/4sjPIeW/BKrs4xtMT3l3P9Ba5Q==} + dependencies: + mdast-util-to-string: 3.2.0 + unist-util-visit: 4.1.2 dev: false - /@tiptap/extension-hard-break@2.3.0(@tiptap/core@2.3.0): - resolution: {integrity: sha512-9pXi69SzLabbjY5KZ54UKzu7HAHTla9aYZKH56VatOAiJOPKJppFbU2/NfJwGzDrEtfOiDqr3dYbUDF3RuCFoQ==} - peerDependencies: - '@tiptap/core': ^2.0.0 + /@vercel/nft@0.26.4: + resolution: {integrity: sha512-j4jCOOXke2t8cHZCIxu1dzKLHLcFmYzC3yqAK6MfZznOL1QIJKd0xcFsXK3zcqzU7ScsE2zWkiMMNHGMHgp+FA==} + engines: {node: '>=16'} + hasBin: true dependencies: - '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) + '@mapbox/node-pre-gyp': 1.0.11 + '@rollup/pluginutils': 4.2.1 + acorn: 8.11.3 + acorn-import-attributes: 1.9.5(acorn@8.11.3) + async-sema: 3.1.1 + bindings: 1.5.0 + estree-walker: 2.0.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + micromatch: 4.0.5 + node-gyp-build: 4.6.0 + resolve-from: 5.0.0 + transitivePeerDependencies: + - encoding + - supports-color + + /@vinxi/listhen@1.5.6: + resolution: {integrity: sha512-WSN1z931BtasZJlgPp704zJFnQFRg7yzSjkm3MzAWQYe4uXFXlFr1hc5Ac2zae5/HDOz5x1/zDM5Cb54vTCnWw==} + hasBin: true + dependencies: + '@parcel/watcher': 2.4.1 + '@parcel/watcher-wasm': 2.3.0 + citty: 0.1.6 + clipboardy: 4.0.0 + consola: 3.2.3 + defu: 6.1.4 + get-port-please: 3.1.2 + h3: 1.11.1 + http-shutdown: 1.2.2 + jiti: 1.21.0 + mlly: 1.6.1 + node-forge: 1.3.1 + pathe: 1.1.2 + std-env: 3.7.0 + ufo: 1.5.3 + untun: 0.1.3 + uqr: 0.1.2 + transitivePeerDependencies: + - uWebSockets.js dev: false - /@tiptap/extension-heading@2.3.0(@tiptap/core@2.3.0): - resolution: {integrity: sha512-YcZoUYfqb0nohoPgem4f8mjn5OqDomFrbJiC9VRHUOCIuEu+aJEYwp8mmdkLnS3f+LRCZ6G76cJJ50lkzSAZRw==} + /@vinxi/plugin-directives@0.3.1(vinxi@0.3.11): + resolution: {integrity: sha512-4qz5WifjmJ864VS8Ik9nUG0wAkt/xIcxFpP29RXogGLgccRnceBpWQi+ghw5rm0F6LP/YMAhhO5iFORXclWd0Q==} peerDependencies: - '@tiptap/core': ^2.0.0 + vinxi: ^0.3.10 dependencies: - '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) + '@babel/parser': 7.24.4 + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) + acorn-loose: 8.4.0 + acorn-typescript: 1.4.13(acorn@8.11.3) + astring: 1.8.6 + magicast: 0.2.10 + recast: 0.23.4 + tslib: 2.6.2 + vinxi: 0.3.11(@types/node@20.12.7) dev: false - /@tiptap/extension-highlight@2.3.0(@tiptap/core@2.3.0): - resolution: {integrity: sha512-An/tzoCMbugdaU02ORJeJ74DZI5pf9oqwX9RoYPQ5K81Ia3jG52BBVtFjGq/j10Tr4iOuCmOuE+PzNtnzz3UIw==} + /@vinxi/server-components@0.3.3(vinxi@0.3.11): + resolution: {integrity: sha512-xaW92nj9HUMLyswPcCmsIXOsS3TJll0m9u3WEjWjLrtZWheHggina6+kTCSeltp/Qe8WlUfNU5G02Xy8L4xQxA==} peerDependencies: - '@tiptap/core': ^2.0.0 + vinxi: ^0.3.10 dependencies: - '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) + '@vinxi/plugin-directives': 0.3.1(vinxi@0.3.11) + acorn: 8.11.3 + acorn-loose: 8.4.0 + acorn-typescript: 1.4.13(acorn@8.11.3) + astring: 1.8.6 + magicast: 0.2.10 + recast: 0.23.4 + vinxi: 0.3.11(@types/node@20.12.7) dev: false - /@tiptap/extension-history@2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0): - resolution: {integrity: sha512-EF5Oq9fe/VBzU1Lsow2ubOlx1e1r4OQT1WUPGsRnL7pr94GH1Skpk7/hs9COJ9K6kP3Ebt42XjP0JEQodR58YA==} + /@vinxi/server-functions@0.3.2(vinxi@0.3.11): + resolution: {integrity: sha512-PoARb1X480UE9jysPqltpzginBftna34GmZ3HyvRT+pnPfsGcuHOzZe/a18V/K04qk2yMRd7eeW42JF5O+wunw==} peerDependencies: - '@tiptap/core': ^2.0.0 - '@tiptap/pm': ^2.0.0 + vinxi: ^0.3.10 dependencies: - '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) - '@tiptap/pm': 2.3.0 + '@vinxi/plugin-directives': 0.3.1(vinxi@0.3.11) + acorn: 8.11.3 + acorn-loose: 8.4.0 + acorn-typescript: 1.4.13(acorn@8.11.3) + astring: 1.8.6 + magicast: 0.2.10 + recast: 0.23.4 + vinxi: 0.3.11(@types/node@20.12.7) dev: false - /@tiptap/extension-horizontal-rule@2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0): - resolution: {integrity: sha512-4DB8GU3uuDzzyqUmONIb3CHXcQ6Nuy4mHHkFSmUyEjg1i5eMQU5H7S6mNvZbltcJB2ImgCSwSMlj1kVN3MLIPg==} + /@vitejs/plugin-react-swc@3.6.0(vite@5.2.10): + resolution: {integrity: sha512-XFRbsGgpGxGzEV5i5+vRiro1bwcIaZDIdBRP16qwm+jP68ue/S8FJTBEgOeojtVDYrbSua3XFp71kC8VJE6v+g==} peerDependencies: - '@tiptap/core': ^2.0.0 - '@tiptap/pm': ^2.0.0 + vite: ^4 || ^5 dependencies: - '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) - '@tiptap/pm': 2.3.0 - dev: false + '@swc/core': 1.4.16(@swc/helpers@0.5.10) + vite: 5.2.10(@types/node@20.12.7) + transitivePeerDependencies: + - '@swc/helpers' + dev: true - /@tiptap/extension-image@2.3.0(@tiptap/core@2.3.0): - resolution: {integrity: sha512-v1fLEEzrfXWavsLFUEkTiYYxwm1WDNrjuUriU5tG2Jv22NL1BL4BLVbZbGdkAk+qHWy8QWszrDJbcgGh2VNCoQ==} + /@vitejs/plugin-react@4.2.1(vite@5.2.10): + resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} + engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - '@tiptap/core': ^2.0.0 + vite: ^4.2.0 || ^5.0.0 dependencies: - '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) + '@babel/core': 7.24.4 + '@babel/plugin-transform-react-jsx-self': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.4) + '@types/babel__core': 7.20.5 + react-refresh: 0.14.0 + vite: 5.2.10(@types/node@20.12.7) + transitivePeerDependencies: + - supports-color dev: false - /@tiptap/extension-italic@2.3.0(@tiptap/core@2.3.0): - resolution: {integrity: sha512-jdFjLjdt5JtPlGMpoS6TEq5rznjbAYVlPwcw5VkYENVIYIGIR1ylIw2JwK1nUEsQ+OgYwVxHLejcUXWG1dCi2g==} + /@vitejs/plugin-vue-jsx@3.1.0(vite@5.2.10)(vue@3.4.24): + resolution: {integrity: sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==} + engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - '@tiptap/core': ^2.0.0 + vite: ^4.0.0 || ^5.0.0 + vue: ^3.0.0 dependencies: - '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) - dev: false + '@babel/core': 7.24.4 + '@babel/plugin-transform-typescript': 7.24.4(@babel/core@7.24.4) + '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.24.4) + vite: 5.2.10(@types/node@20.12.7) + vue: 3.4.24(typescript@5.4.5) + transitivePeerDependencies: + - supports-color - /@tiptap/extension-link@2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0): - resolution: {integrity: sha512-CnJAlV0ZOdEhKmDfYKuHJVG8g79iCFQ85cX/CROTWyuMfXz9uhj2rLpZ6nfidVbonqxAhQp7NAIr2y+Fj5/53A==} + /@vitejs/plugin-vue@5.0.4(vite@5.2.10)(vue@3.4.24): + resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==} + engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: - '@tiptap/core': ^2.0.0 - '@tiptap/pm': ^2.0.0 + vite: ^5.0.0 + vue: ^3.2.25 dependencies: - '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) - '@tiptap/pm': 2.3.0 - linkifyjs: 4.1.3 - dev: false + vite: 5.2.10(@types/node@20.12.7) + vue: 3.4.24(typescript@5.4.5) - /@tiptap/extension-list-item@2.3.0(@tiptap/core@2.3.0): - resolution: {integrity: sha512-mHU+IuRa56OT6YCtxf5Z7OSUrbWdKhGCEX7RTrteDVs5oMB6W3oF9j88M5qQmZ1WDcxvQhAOoXctnMt6eX9zcA==} + /@vitest/coverage-v8@1.5.0(vitest@1.5.0): + resolution: {integrity: sha512-1igVwlcqw1QUMdfcMlzzY4coikSIBN944pkueGi0pawrX5I5Z+9hxdTR+w3Sg6Q3eZhvdMAs8ZaF9JuTG1uYOQ==} peerDependencies: - '@tiptap/core': ^2.0.0 + vitest: 1.5.0 dependencies: - '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) + '@ampproject/remapping': 2.2.1 + '@bcoe/v8-coverage': 0.2.3 + debug: 4.3.4 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 5.0.4 + istanbul-reports: 3.1.7 + magic-string: 0.30.10 + magicast: 0.3.4 + picocolors: 1.0.0 + std-env: 3.7.0 + strip-literal: 2.1.0 + test-exclude: 6.0.0 + vitest: 1.5.0(@types/node@20.12.7)(happy-dom@13.10.1) + transitivePeerDependencies: + - supports-color dev: false - /@tiptap/extension-ordered-list@2.3.0(@tiptap/core@2.3.0): - resolution: {integrity: sha512-gkf0tltXjlUj0cqyfDV2r7xy9YPKtcVSWwlCPun6OOi0KzKFiAMqQpA9hy2W6gJ+KCp8+KNRMClZOfH4TnnBfg==} - peerDependencies: - '@tiptap/core': ^2.0.0 + /@vitest/expect@1.5.0: + resolution: {integrity: sha512-0pzuCI6KYi2SIC3LQezmxujU9RK/vwC1U9R0rLuGlNGcOuDWxqWKu6nUdFsX9tH1WU0SXtAxToOsEjeUn1s3hA==} dependencies: - '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) - dev: false + '@vitest/spy': 1.5.0 + '@vitest/utils': 1.5.0 + chai: 4.4.1 - /@tiptap/extension-paragraph@2.3.0(@tiptap/core@2.3.0): - resolution: {integrity: sha512-peCpA7DFqkd0cHb+cHv4YHNoMsXG8tKFNJlCHpLmsZWl2hWmpKgKmUrXAUfzjcFSvkZxn0xYc5oWbqUgg+2LzA==} - peerDependencies: - '@tiptap/core': ^2.0.0 + /@vitest/runner@1.5.0: + resolution: {integrity: sha512-7HWwdxXP5yDoe7DTpbif9l6ZmDwCzcSIK38kTSIt6CFEpMjX4EpCgT6wUmS0xTXqMI6E/ONmfgRKmaujpabjZQ==} dependencies: - '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) - dev: false + '@vitest/utils': 1.5.0 + p-limit: 5.0.0 + pathe: 1.1.1 - /@tiptap/extension-placeholder@2.0.3(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0): - resolution: {integrity: sha512-Z42jo0termRAf0S0L8oxrts94IWX5waU4isS2CUw8xCUigYyCFslkhQXkWATO1qRbjNFLKN2C9qvCgGf4UeBrw==} - peerDependencies: - '@tiptap/core': ^2.0.0 - '@tiptap/pm': ^2.0.0 + /@vitest/snapshot@1.5.0: + resolution: {integrity: sha512-qpv3fSEuNrhAO3FpH6YYRdaECnnRjg9VxbhdtPwPRnzSfHVXnNzzrpX4cJxqiwgRMo7uRMWDFBlsBq4Cr+rO3A==} dependencies: - '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) - '@tiptap/pm': 2.3.0 - dev: false + magic-string: 0.30.10 + pathe: 1.1.1 + pretty-format: 29.7.0 - /@tiptap/extension-strike@2.3.0(@tiptap/core@2.3.0): - resolution: {integrity: sha512-gOW4ALeH8gkJiUGGXVy/AOd5lAPTX0bzoOW1+sCLcTA7t8dluBW7M2ngNYxTEtlKqyv7aLfrgsYSiqucmmfSLw==} - peerDependencies: - '@tiptap/core': ^2.0.0 + /@vitest/spy@1.5.0: + resolution: {integrity: sha512-vu6vi6ew5N5MMHJjD5PoakMRKYdmIrNJmyfkhRpQt5d9Ewhw9nZ5Aqynbi3N61bvk9UvZ5UysMT6ayIrZ8GA9w==} dependencies: - '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) - dev: false + tinyspy: 2.2.1 - /@tiptap/extension-task-item@2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0): - resolution: {integrity: sha512-WvQJiQSskI1dZLPgNH4hmYPW0HFyR/EHwogzVnY7XCn2/5isV0ewyaVuSfqTXvfEA/R5uCi95opwz61NFBc2nQ==} - peerDependencies: - '@tiptap/core': ^2.0.0 - '@tiptap/pm': ^2.0.0 + /@vitest/utils@1.5.0: + resolution: {integrity: sha512-BDU0GNL8MWkRkSRdNFvCUCAVOeHaUlVJ9Tx0TYBZyXaaOTmGtUFObzchCivIBrIwKzvZA7A9sCejVhXM2aY98A==} dependencies: - '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) - '@tiptap/pm': 2.3.0 - dev: false + diff-sequences: 29.6.3 + estree-walker: 3.0.3 + loupe: 2.3.7 + pretty-format: 29.7.0 - /@tiptap/extension-task-list@2.3.0(@tiptap/core@2.3.0): - resolution: {integrity: sha512-TBgqf4s3DpUV97w7AAj1WZDnZ3rZQ8B645d9bBayo4VfRzHCLefv5cVP/Ye9GA23T4FZoHNR+yIPrM7SfhkmPA==} - peerDependencies: - '@tiptap/core': ^2.0.0 + /@volar/language-core@2.2.0-alpha.10: + resolution: {integrity: sha512-njVJLtpu0zMvDaEk7K5q4BRpOgbyEUljU++un9TfJoJNhxG0z/hWwpwgTRImO42EKvwIxF3XUzeMk+qatAFy7Q==} dependencies: - '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) - dev: false + '@volar/source-map': 2.2.0-alpha.10 + dev: true - /@tiptap/extension-text-style@2.3.0(@tiptap/core@2.3.0): - resolution: {integrity: sha512-S+sQZqd+QtJjbZ0LOp0Krf0dlrdMx7BQL0sUNKPq8XXRMcfW0pEEFGIU/0VDFQCldLIuyd7lZ8zo5cjaAgskIA==} - peerDependencies: - '@tiptap/core': ^2.0.0 + /@volar/source-map@2.2.0-alpha.10: + resolution: {integrity: sha512-nrdWApVkP5cksAnDEyy1JD9rKdwOJsEq1B+seWO4vNXmZNcxQQCx4DULLBvKt7AzRUAQiAuw5aQkb9RBaSqdVA==} dependencies: - '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) - dev: false + muggle-string: 0.4.1 + dev: true - /@tiptap/extension-text@2.3.0(@tiptap/core@2.3.0): - resolution: {integrity: sha512-zkudl0TyKRy/8vHtyo5dMzjBRD0HEUnsS8YOsjR4xwQq5EYUXleRgM1s6lb6Yms2sLUAZRWdDddoQ686iq4zQg==} - peerDependencies: - '@tiptap/core': ^2.0.0 + /@volar/typescript@2.2.0-alpha.10: + resolution: {integrity: sha512-GCa0vTVVdA9ULUsu2Rx7jwsIuyZQPvPVT9o3NrANTbYv+523Ao1gv3glC5vzNSDPM6bUl37r94HbCj7KINQr+g==} dependencies: - '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) - dev: false + '@volar/language-core': 2.2.0-alpha.10 + path-browserify: 1.0.1 + dev: true - /@tiptap/extension-underline@2.3.0(@tiptap/core@2.3.0): - resolution: {integrity: sha512-vmmcwCPmWqGKYHZevz50+bxrpHyiu5y6YZweAE476hn8Mud6vYg7RpkXgW8bjkCOky6UA51uelslSc0XrLE6uw==} + /@vue-macros/common@1.10.2(rollup@3.29.4)(vue@3.4.24): + resolution: {integrity: sha512-WC66NPVh2mJWqm4L0l/u/cOqm4pNOIwVdMGnDYAH2rHcOWy5x68GkhpkYTBu1+xwCSeHWOQn1TCGGbD+98fFpA==} + engines: {node: '>=16.14.0'} peerDependencies: - '@tiptap/core': ^2.0.0 - dependencies: - '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) - dev: false - - /@tiptap/pm@2.3.0: - resolution: {integrity: sha512-4WYqShZBwDyReKvapC0nmeYdOtZbZ31y4MjolpKQaSD4I7kg/oZspC+byUGdvIRsNpRN7i2X0IyvdISKk8gw5Q==} + vue: ^2.7.0 || ^3.2.25 + peerDependenciesMeta: + vue: + optional: true dependencies: - prosemirror-changeset: 2.2.1 - prosemirror-collab: 1.3.1 - prosemirror-commands: 1.5.2 - prosemirror-dropcursor: 1.8.1 - prosemirror-gapcursor: 1.3.2 - prosemirror-history: 1.4.0 - prosemirror-inputrules: 1.4.0 - prosemirror-keymap: 1.2.2 - prosemirror-markdown: 1.12.0 - prosemirror-menu: 1.2.4 - prosemirror-model: 1.20.0 - prosemirror-schema-basic: 1.2.2 - prosemirror-schema-list: 1.3.0 - prosemirror-state: 1.4.3 - prosemirror-tables: 1.3.7 - prosemirror-trailing-node: 2.0.8(prosemirror-model@1.20.0)(prosemirror-state@1.4.3)(prosemirror-view@1.33.4) - prosemirror-transform: 1.8.0 - prosemirror-view: 1.33.4 - dev: false + '@babel/types': 7.24.0 + '@rollup/pluginutils': 5.1.0(rollup@3.29.4) + '@vue/compiler-sfc': 3.4.24 + ast-kit: 0.12.1 + local-pkg: 0.5.0 + magic-string-ast: 0.3.0 + vue: 3.4.24(typescript@5.4.5) + transitivePeerDependencies: + - rollup - /@tiptap/react@2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-ThgFJQTWYKRClTV2Zg0wBRqfy0EGz3U4NOey7jwncUjSjx5+o9nXbfQAYWDKQFfWyE+wnrBTYfddEP9pHNX5cQ==} + /@vue-macros/common@1.10.2(rollup@4.16.2)(vue@3.4.24): + resolution: {integrity: sha512-WC66NPVh2mJWqm4L0l/u/cOqm4pNOIwVdMGnDYAH2rHcOWy5x68GkhpkYTBu1+xwCSeHWOQn1TCGGbD+98fFpA==} + engines: {node: '>=16.14.0'} peerDependencies: - '@tiptap/core': ^2.0.0 - '@tiptap/pm': ^2.0.0 - react: ^17.0.0 || ^18.0.0 - react-dom: ^17.0.0 || ^18.0.0 - dependencies: - '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) - '@tiptap/extension-bubble-menu': 2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0) - '@tiptap/extension-floating-menu': 2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0) - '@tiptap/pm': 2.3.0 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /@tiptap/starter-kit@2.3.0(@tiptap/pm@2.3.0): - resolution: {integrity: sha512-TjvCd/hzEnuEYOdr5uQqcfHOMuj7JRoZBPdheupwl3SbuYiCxtcqYyAE5qoGXWwuVe9xVGerOLVPkDUgmyrH6A==} + vue: ^2.7.0 || ^3.2.25 + peerDependenciesMeta: + vue: + optional: true dependencies: - '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) - '@tiptap/extension-blockquote': 2.3.0(@tiptap/core@2.3.0) - '@tiptap/extension-bold': 2.3.0(@tiptap/core@2.3.0) - '@tiptap/extension-bullet-list': 2.3.0(@tiptap/core@2.3.0) - '@tiptap/extension-code': 2.3.0(@tiptap/core@2.3.0) - '@tiptap/extension-code-block': 2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0) - '@tiptap/extension-document': 2.3.0(@tiptap/core@2.3.0) - '@tiptap/extension-dropcursor': 2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0) - '@tiptap/extension-gapcursor': 2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0) - '@tiptap/extension-hard-break': 2.3.0(@tiptap/core@2.3.0) - '@tiptap/extension-heading': 2.3.0(@tiptap/core@2.3.0) - '@tiptap/extension-history': 2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0) - '@tiptap/extension-horizontal-rule': 2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0) - '@tiptap/extension-italic': 2.3.0(@tiptap/core@2.3.0) - '@tiptap/extension-list-item': 2.3.0(@tiptap/core@2.3.0) - '@tiptap/extension-ordered-list': 2.3.0(@tiptap/core@2.3.0) - '@tiptap/extension-paragraph': 2.3.0(@tiptap/core@2.3.0) - '@tiptap/extension-strike': 2.3.0(@tiptap/core@2.3.0) - '@tiptap/extension-text': 2.3.0(@tiptap/core@2.3.0) + '@babel/types': 7.24.0 + '@rollup/pluginutils': 5.1.0(rollup@4.16.2) + '@vue/compiler-sfc': 3.4.24 + ast-kit: 0.12.1 + local-pkg: 0.5.0 + magic-string-ast: 0.3.0 + vue: 3.4.24(typescript@5.4.5) transitivePeerDependencies: - - '@tiptap/pm' - dev: false + - rollup + dev: true - /@tiptap/suggestion@2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0): - resolution: {integrity: sha512-QngwR9ahodVfwqp/kXxJvuL3zNb6XZu+vCuWy8RJrGP8DA7SCI9t8t7iB6NfG4kSsRGxM+3DuLi+2xOZQUaEVQ==} + /@vue/babel-helper-vue-transform-on@1.1.5: + resolution: {integrity: sha512-SgUymFpMoAyWeYWLAY+MkCK3QEROsiUnfaw5zxOVD/M64KQs8D/4oK6Q5omVA2hnvEOE0SCkH2TZxs/jnnUj7w==} + + /@vue/babel-plugin-jsx@1.1.5(@babel/core@7.24.4): + resolution: {integrity: sha512-nKs1/Bg9U1n3qSWnsHhCVQtAzI6aQXqua8j/bZrau8ywT1ilXQbK4FwEJGmU8fV7tcpuFvWmmN7TMmV1OBma1g==} peerDependencies: - '@tiptap/core': ^2.0.0 - '@tiptap/pm': ^2.0.0 + '@babel/core': ^7.0.0-0 dependencies: - '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) - '@tiptap/pm': 2.3.0 - dev: false + '@babel/core': 7.24.4 + '@babel/helper-module-imports': 7.22.5 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.24.4) + '@babel/template': 7.22.5 + '@babel/traverse': 7.22.10 + '@babel/types': 7.22.10 + '@vue/babel-helper-vue-transform-on': 1.1.5 + camelcase: 6.3.0 + html-tags: 3.3.1 + svg-tags: 1.0.0 + transitivePeerDependencies: + - supports-color - /@types/acorn@4.0.6: - resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} + /@vue/compiler-core@3.3.4: + resolution: {integrity: sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==} dependencies: - '@types/estree': 1.0.5 - dev: false + '@babel/parser': 7.22.10 + '@vue/shared': 3.3.4 + estree-walker: 2.0.2 + source-map-js: 1.0.2 - /@types/babel__core@7.20.5: - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + /@vue/compiler-core@3.4.24: + resolution: {integrity: sha512-vbW/tgbwJYj62N/Ww99x0zhFTkZDTcGh3uwJEuadZ/nF9/xuFMC4693P9r+3sxGXISABpDKvffY5ApH9pmdd1A==} dependencies: '@babel/parser': 7.24.4 - '@babel/types': 7.24.0 - '@types/babel__generator': 7.6.8 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.5 - dev: false + '@vue/shared': 3.4.24 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.0 - /@types/babel__generator@7.6.8: - resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + /@vue/compiler-core@3.4.25: + resolution: {integrity: sha512-Y2pLLopaElgWnMNolgG8w3C5nNUVev80L7hdQ5iIKPtMJvhVpG0zhnBG/g3UajJmZdvW0fktyZTotEHD1Srhbg==} dependencies: - '@babel/types': 7.24.0 - dev: false + '@babel/parser': 7.24.4 + '@vue/shared': 3.4.25 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.0 - /@types/babel__template@7.4.4: - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + /@vue/compiler-dom@3.3.4: + resolution: {integrity: sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==} dependencies: - '@babel/parser': 7.24.4 - '@babel/types': 7.24.0 - dev: false + '@vue/compiler-core': 3.3.4 + '@vue/shared': 3.3.4 - /@types/babel__traverse@7.20.5: - resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} + /@vue/compiler-dom@3.4.24: + resolution: {integrity: sha512-4XgABML/4cNndVsQndG6BbGN7+EoisDwi3oXNovqL/4jdNhwvP8/rfRMTb6FxkxIxUUtg6AI1/qZvwfSjxJiWA==} dependencies: - '@babel/types': 7.24.0 - dev: false + '@vue/compiler-core': 3.4.24 + '@vue/shared': 3.4.24 - /@types/better-sqlite3@7.6.9: - resolution: {integrity: sha512-FvktcujPDj9XKMJQWFcl2vVl7OdRIqsSRX9b0acWwTmwLK9CF2eqo/FRcmMLNpugKoX/avA6pb7TorDLmpgTnQ==} + /@vue/compiler-dom@3.4.25: + resolution: {integrity: sha512-Ugz5DusW57+HjllAugLci19NsDK+VyjGvmbB2TXaTcSlQxwL++2PETHx/+Qv6qFwNLzSt7HKepPe4DcTE3pBWg==} dependencies: - '@types/node': 20.12.7 + '@vue/compiler-core': 3.4.25 + '@vue/shared': 3.4.25 - /@types/body-parser@1.19.5: - resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} + /@vue/compiler-sfc@3.4.24: + resolution: {integrity: sha512-nRAlJUK02FTWfA2nuvNBAqsDZuERGFgxZ8sGH62XgFSvMxO2URblzulExsmj4gFZ8e+VAyDooU9oAoXfEDNxTA==} dependencies: - '@types/connect': 3.4.38 - '@types/node': 20.12.7 + '@babel/parser': 7.24.4 + '@vue/compiler-core': 3.4.24 + '@vue/compiler-dom': 3.4.24 + '@vue/compiler-ssr': 3.4.24 + '@vue/shared': 3.4.24 + estree-walker: 2.0.2 + magic-string: 0.30.10 + postcss: 8.4.38 + source-map-js: 1.2.0 - /@types/braces@3.0.4: - resolution: {integrity: sha512-0WR3b8eaISjEW7RpZnclONaLFDf7buaowRHdqLp4vLj54AsSAYWfh3DRbfiYJY9XDxMgx1B4sE1Afw2PGpuHOA==} - dev: false + /@vue/compiler-sfc@3.4.25: + resolution: {integrity: sha512-m7rryuqzIoQpOBZ18wKyq05IwL6qEpZxFZfRxlNYuIPDqywrXQxgUwLXIvoU72gs6cRdY6wHD0WVZIFE4OEaAQ==} + dependencies: + '@babel/parser': 7.24.4 + '@vue/compiler-core': 3.4.25 + '@vue/compiler-dom': 3.4.25 + '@vue/compiler-ssr': 3.4.25 + '@vue/shared': 3.4.25 + estree-walker: 2.0.2 + magic-string: 0.30.10 + postcss: 8.4.38 + source-map-js: 1.2.0 - /@types/bun@1.0.12: - resolution: {integrity: sha512-qPb5FcygbpSS1NDBjWyQCWeI9kKXwSYSR1Enu7yb+gMXgFwGMhlyOvgV/7FGrdvAjlSXWRY6IDepos7k8WzAtQ==} + /@vue/compiler-ssr@3.4.24: + resolution: {integrity: sha512-ZsAtr4fhaUFnVcDqwW3bYCSDwq+9Gk69q2r/7dAHDrOMw41kylaMgOP4zRnn6GIEJkQznKgrMOGPMFnLB52RbQ==} dependencies: - bun-types: 1.0.36 - dev: false + '@vue/compiler-dom': 3.4.24 + '@vue/shared': 3.4.24 - /@types/connect@3.4.38: - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + /@vue/compiler-ssr@3.4.25: + resolution: {integrity: sha512-H2ohvM/Pf6LelGxDBnfbbXFPyM4NE3hrw0e/EpwuSiYu8c819wx+SVGdJ65p/sFrYDd6OnSDxN1MB2mN07hRSQ==} dependencies: - '@types/node': 20.12.7 + '@vue/compiler-dom': 3.4.25 + '@vue/shared': 3.4.25 - /@types/cookie@0.6.0: - resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} + /@vue/devtools-api@6.6.1: + resolution: {integrity: sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA==} - /@types/cookies@0.7.7: - resolution: {integrity: sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA==} + /@vue/devtools-applet@7.0.27(@unocss/reset@0.59.4)(floating-vue@5.2.2)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.24): + resolution: {integrity: sha512-ubNn/qIn5n3x7YCVSabfQfKL49GoJPJdYu4LfdNz/gZkgb1+djdATpKl/+xzQoOqtGzqnR9nMoCHApAJAgeMyg==} + peerDependencies: + vue: ^3.0.0 dependencies: - '@types/connect': 3.4.38 - '@types/express': 4.17.21 - '@types/keygrip': 1.0.6 - '@types/node': 20.12.7 - dev: false + '@vue/devtools-core': 7.0.27(vite@5.2.10)(vue@3.4.24) + '@vue/devtools-kit': 7.0.27(vue@3.4.24) + '@vue/devtools-shared': 7.0.27 + '@vue/devtools-ui': 7.0.27(@unocss/reset@0.59.4)(floating-vue@5.2.2)(unocss@0.59.4)(vue@3.4.24) + perfect-debounce: 1.0.0 + splitpanes: 3.1.5 + vue: 3.4.24(typescript@5.4.5) + vue-virtual-scroller: 2.0.0-beta.8(vue@3.4.24) + transitivePeerDependencies: + - '@unocss/reset' + - '@vue/composition-api' + - async-validator + - axios + - change-case + - drauu + - floating-vue + - fuse.js + - idb-keyval + - jwt-decode + - nprogress + - qrcode + - sortablejs + - universal-cookie + - unocss + - vite - /@types/cors@2.8.17: - resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} + /@vue/devtools-applet@7.0.27(@unocss/reset@0.59.4)(floating-vue@5.2.2)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.25): + resolution: {integrity: sha512-ubNn/qIn5n3x7YCVSabfQfKL49GoJPJdYu4LfdNz/gZkgb1+djdATpKl/+xzQoOqtGzqnR9nMoCHApAJAgeMyg==} + peerDependencies: + vue: ^3.0.0 dependencies: - '@types/node': 20.12.7 + '@vue/devtools-core': 7.0.27(vite@5.2.10)(vue@3.4.25) + '@vue/devtools-kit': 7.0.27(vue@3.4.25) + '@vue/devtools-shared': 7.0.27 + '@vue/devtools-ui': 7.0.27(@unocss/reset@0.59.4)(floating-vue@5.2.2)(unocss@0.59.4)(vue@3.4.25) + perfect-debounce: 1.0.0 + splitpanes: 3.1.5 + vue: 3.4.25(typescript@5.4.5) + vue-virtual-scroller: 2.0.0-beta.8(vue@3.4.25) + transitivePeerDependencies: + - '@unocss/reset' + - '@vue/composition-api' + - async-validator + - axios + - change-case + - drauu + - floating-vue + - fuse.js + - idb-keyval + - jwt-decode + - nprogress + - qrcode + - sortablejs + - universal-cookie + - unocss + - vite dev: true - /@types/d3-scale-chromatic@3.0.3: - resolution: {integrity: sha512-laXM4+1o5ImZv3RpFAsTRn3TEkzqkytiOY0Dz0sq5cnd1dtNlk6sHLon4OvqaiJb28T0S/TdsBI3Sjsy+keJrw==} - dev: false - - /@types/d3-scale@4.0.8: - resolution: {integrity: sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==} + /@vue/devtools-core@7.0.27(vite@5.2.10)(vue@3.4.24): + resolution: {integrity: sha512-3rbtNGxFFFPfIObgTAPIw0h0rJy+y1PrbfgM9nXRf3/FIJkthfS19yj31pj9EWIqRsyiqK5u1Ni7SAJZ0vsQOA==} dependencies: - '@types/d3-time': 3.0.3 - dev: false + '@vue/devtools-kit': 7.0.27(vue@3.4.24) + '@vue/devtools-shared': 7.0.27 + mitt: 3.0.1 + nanoid: 3.3.6 + pathe: 1.1.2 + vite-hot-client: 0.2.3(vite@5.2.10) + transitivePeerDependencies: + - vite + - vue - /@types/d3-time@3.0.3: - resolution: {integrity: sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw==} - dev: false + /@vue/devtools-core@7.0.27(vite@5.2.10)(vue@3.4.25): + resolution: {integrity: sha512-3rbtNGxFFFPfIObgTAPIw0h0rJy+y1PrbfgM9nXRf3/FIJkthfS19yj31pj9EWIqRsyiqK5u1Ni7SAJZ0vsQOA==} + dependencies: + '@vue/devtools-kit': 7.0.27(vue@3.4.25) + '@vue/devtools-shared': 7.0.27 + mitt: 3.0.1 + nanoid: 3.3.6 + pathe: 1.1.2 + vite-hot-client: 0.2.3(vite@5.2.10) + transitivePeerDependencies: + - vite + - vue + dev: true - /@types/debug@4.1.12: - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + /@vue/devtools-kit@7.0.27(vue@3.4.24): + resolution: {integrity: sha512-/A5xM38pPCFX5Yhl/lRFAzjyK6VNsH670nww2WbjFKWqlu3I+lMxWKzQkCW6A1V8bduITgl2kHORfg2gTw6QaA==} + peerDependencies: + vue: ^3.0.0 dependencies: - '@types/ms': 0.7.34 - dev: false + '@vue/devtools-shared': 7.0.27 + hookable: 5.5.3 + mitt: 3.0.1 + perfect-debounce: 1.0.0 + speakingurl: 14.0.1 + vue: 3.4.24(typescript@5.4.5) - /@types/eslint@8.56.7: - resolution: {integrity: sha512-SjDvI/x3zsZnOkYZ3lCt9lOZWZLB2jIlNKz+LBgCtDurK0JZcwucxYHn1w2BJkD34dgX9Tjnak0txtq4WTggEA==} + /@vue/devtools-kit@7.0.27(vue@3.4.25): + resolution: {integrity: sha512-/A5xM38pPCFX5Yhl/lRFAzjyK6VNsH670nww2WbjFKWqlu3I+lMxWKzQkCW6A1V8bduITgl2kHORfg2gTw6QaA==} + peerDependencies: + vue: ^3.0.0 dependencies: - '@types/estree': 1.0.5 - '@types/json-schema': 7.0.15 + '@vue/devtools-shared': 7.0.27 + hookable: 5.5.3 + mitt: 3.0.1 + perfect-debounce: 1.0.0 + speakingurl: 14.0.1 + vue: 3.4.25(typescript@5.4.5) + dev: true - /@types/estree-jsx@1.0.5: - resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} + /@vue/devtools-shared@7.0.27: + resolution: {integrity: sha512-4VxtmZ6yjhiSloqZZq2UYU0TBGxOJ8GxWvp5OlAH70zYqi0FIAyWGPkOhvfoZ7DKQyv2UU0mmKzFHjsEkelGyQ==} dependencies: - '@types/estree': 1.0.5 - dev: false + rfdc: 1.3.1 - /@types/estree@1.0.5: - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + /@vue/devtools-ui@7.0.27(@unocss/reset@0.59.4)(floating-vue@5.2.2)(unocss@0.59.4)(vue@3.4.24): + resolution: {integrity: sha512-MVcQwqqGNW2poW29OkzOcpNLHb0R/VQECWYiDYvKqjWp3G8M/FS2E5mUnjXxZGpfqHjSEmJs+fFGY8exnYpNng==} + peerDependencies: + '@unocss/reset': '>=0.50.0-0' + floating-vue: '>=2.0.0-0' + unocss: '>=0.50.0-0' + vue: '>=3.0.0-0' + dependencies: + '@unocss/reset': 0.59.4 + '@vueuse/components': 10.9.0(vue@3.4.24) + '@vueuse/core': 10.9.0(vue@3.4.24) + '@vueuse/integrations': 10.9.0(focus-trap@7.5.4)(vue@3.4.24) + colord: 2.9.3 + floating-vue: 5.2.2(vue@3.4.24) + focus-trap: 7.5.4 + unocss: 0.59.4(postcss@8.4.38)(vite@5.2.10) + vue: 3.4.24(typescript@5.4.5) + transitivePeerDependencies: + - '@vue/composition-api' + - async-validator + - axios + - change-case + - drauu + - fuse.js + - idb-keyval + - jwt-decode + - nprogress + - qrcode + - sortablejs + - universal-cookie + + /@vue/devtools-ui@7.0.27(@unocss/reset@0.59.4)(floating-vue@5.2.2)(unocss@0.59.4)(vue@3.4.25): + resolution: {integrity: sha512-MVcQwqqGNW2poW29OkzOcpNLHb0R/VQECWYiDYvKqjWp3G8M/FS2E5mUnjXxZGpfqHjSEmJs+fFGY8exnYpNng==} + peerDependencies: + '@unocss/reset': '>=0.50.0-0' + floating-vue: '>=2.0.0-0' + unocss: '>=0.50.0-0' + vue: '>=3.0.0-0' + dependencies: + '@unocss/reset': 0.59.4 + '@vueuse/components': 10.9.0(vue@3.4.25) + '@vueuse/core': 10.9.0(vue@3.4.25) + '@vueuse/integrations': 10.9.0(focus-trap@7.5.4)(vue@3.4.25) + colord: 2.9.3 + floating-vue: 5.2.2(@nuxt/kit@3.11.2)(vue@3.4.25) + focus-trap: 7.5.4 + unocss: 0.59.4(postcss@8.4.38)(rollup@3.29.4)(vite@5.2.10) + vue: 3.4.25(typescript@5.4.5) + transitivePeerDependencies: + - '@vue/composition-api' + - async-validator + - axios + - change-case + - drauu + - fuse.js + - idb-keyval + - jwt-decode + - nprogress + - qrcode + - sortablejs + - universal-cookie + dev: true - /@types/express-serve-static-core@4.19.0: - resolution: {integrity: sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==} + /@vue/language-core@2.0.14(typescript@5.4.5): + resolution: {integrity: sha512-3q8mHSNcGTR7sfp2X6jZdcb4yt8AjBXAfKk0qkZIh7GAJxOnoZ10h5HToZglw4ToFvAnq+xu/Z2FFbglh9Icag==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@types/node': 20.12.7 - '@types/qs': 6.9.14 - '@types/range-parser': 1.2.7 - '@types/send': 0.17.4 + '@volar/language-core': 2.2.0-alpha.10 + '@vue/compiler-dom': 3.4.24 + '@vue/shared': 3.4.24 + computeds: 0.0.1 + minimatch: 9.0.3 + path-browserify: 1.0.1 + typescript: 5.4.5 + vue-template-compiler: 2.7.14 + dev: true - /@types/express@4.17.14: - resolution: {integrity: sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==} + /@vue/reactivity@3.4.24: + resolution: {integrity: sha512-nup3fSYg4i4LtNvu9slF/HF/0dkMQYfepUdORBcMSsankzRPzE7ypAFurpwyRBfU1i7Dn1kcwpYsE1wETSh91g==} dependencies: - '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.19.0 - '@types/qs': 6.9.14 - '@types/serve-static': 1.15.7 - dev: false + '@vue/shared': 3.4.24 - /@types/express@4.17.21: - resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} + /@vue/reactivity@3.4.25: + resolution: {integrity: sha512-mKbEtKr1iTxZkAG3vm3BtKHAOhuI4zzsVcN0epDldU/THsrvfXRKzq+lZnjczZGnTdh3ojd86/WrP+u9M51pWQ==} dependencies: - '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.19.0 - '@types/qs': 6.9.14 - '@types/serve-static': 1.15.7 - - /@types/har-format@1.2.15: - resolution: {integrity: sha512-RpQH4rXLuvTXKR0zqHq3go0RVXYv/YVqv4TnPH95VbwUxZdQlK1EtcMvQvMpDngHbt13Csh9Z4qT9AbkiQH5BA==} - dev: false + '@vue/shared': 3.4.25 - /@types/hast@2.3.10: - resolution: {integrity: sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==} + /@vue/runtime-core@3.4.24: + resolution: {integrity: sha512-c7iMfj6cJMeAG3s5yOn9Rc5D9e2/wIuaozmGf/ICGCY3KV5H7mbTVdvEkd4ZshTq7RUZqj2k7LMJWVx+EBiY1g==} dependencies: - '@types/unist': 2.0.10 - dev: false + '@vue/reactivity': 3.4.24 + '@vue/shared': 3.4.24 - /@types/hast@3.0.4: - resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + /@vue/runtime-core@3.4.25: + resolution: {integrity: sha512-3qhsTqbEh8BMH3pXf009epCI5E7bKu28fJLi9O6W+ZGt/6xgSfMuGPqa5HRbUxLoehTNp5uWvzCr60KuiRIL0Q==} dependencies: - '@types/unist': 3.0.2 - dev: false + '@vue/reactivity': 3.4.25 + '@vue/shared': 3.4.25 - /@types/http-cache-semantics@4.0.4: - resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} - dev: false + /@vue/runtime-dom@3.4.24: + resolution: {integrity: sha512-uXKzuh/Emfad2Y7Qm0ABsLZZV6H3mAJ5ZVqmAOlrNQRf+T5mxpPGZBfec1hkP41t6h6FwF6RSGCs/gd8WbuySQ==} + dependencies: + '@vue/runtime-core': 3.4.24 + '@vue/shared': 3.4.24 + csstype: 3.1.3 - /@types/http-errors@2.0.4: - resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + /@vue/runtime-dom@3.4.25: + resolution: {integrity: sha512-ode0sj77kuwXwSc+2Yhk8JMHZh1sZp9F/51wdBiz3KGaWltbKtdihlJFhQG4H6AY+A06zzeMLkq6qu8uDSsaoA==} + dependencies: + '@vue/runtime-core': 3.4.25 + '@vue/shared': 3.4.25 + csstype: 3.1.3 - /@types/http-proxy@1.17.14: - resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} + /@vue/server-renderer@3.4.24(vue@3.4.24): + resolution: {integrity: sha512-H+DLK4sQF6sRgzKyofmlEVBIV/9KrQU6HIV7nt6yIwSGGKvSwlV8pqJlebUKLpbXaNHugdSfAbP6YmXF69lxow==} + peerDependencies: + vue: 3.4.24 dependencies: - '@types/node': 20.12.7 - dev: false + '@vue/compiler-ssr': 3.4.24 + '@vue/shared': 3.4.24 + vue: 3.4.24(typescript@5.4.5) - /@types/istanbul-lib-coverage@2.0.6: - resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} - dev: false + /@vue/server-renderer@3.4.25(vue@3.4.25): + resolution: {integrity: sha512-8VTwq0Zcu3K4dWV0jOwIVINESE/gha3ifYCOKEhxOj6MEl5K5y8J8clQncTcDhKF+9U765nRw4UdUEXvrGhyVQ==} + peerDependencies: + vue: 3.4.25 + dependencies: + '@vue/compiler-ssr': 3.4.25 + '@vue/shared': 3.4.25 + vue: 3.4.25(typescript@5.4.5) - /@types/js-yaml@4.0.9: - resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} - dev: false + /@vue/shared@3.3.4: + resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==} - /@types/json-schema@7.0.15: - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + /@vue/shared@3.4.24: + resolution: {integrity: sha512-BW4tajrJBM9AGAknnyEw5tO2xTmnqgup0VTnDAMcxYmqOX0RG0b9aSUGAbEKolD91tdwpA6oCwbltoJoNzpItw==} - /@types/json5@0.0.29: - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + /@vue/shared@3.4.25: + resolution: {integrity: sha512-k0yappJ77g2+KNrIaF0FFnzwLvUBLUYr8VOwz+/6vLsmItFp51AcxLL7Ey3iPd7BIRyWPOcqUjMnm7OkahXllA==} - /@types/katex@0.16.7: - resolution: {integrity: sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==} - dev: false + /@vueuse/components@10.9.0(vue@3.4.24): + resolution: {integrity: sha512-BHQpA0yIi3y7zKa1gYD0FUzLLkcRTqVhP8smnvsCK6GFpd94Nziq1XVPD7YpFeho0k5BzbBiNZF7V/DpkJ967A==} + dependencies: + '@vueuse/core': 10.9.0(vue@3.4.24) + '@vueuse/shared': 10.9.0(vue@3.4.24) + vue-demi: 0.14.7(vue@3.4.24) + transitivePeerDependencies: + - '@vue/composition-api' + - vue - /@types/keygrip@1.0.6: - resolution: {integrity: sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ==} - dev: false + /@vueuse/components@10.9.0(vue@3.4.25): + resolution: {integrity: sha512-BHQpA0yIi3y7zKa1gYD0FUzLLkcRTqVhP8smnvsCK6GFpd94Nziq1XVPD7YpFeho0k5BzbBiNZF7V/DpkJ967A==} + dependencies: + '@vueuse/core': 10.9.0(vue@3.4.25) + '@vueuse/shared': 10.9.0(vue@3.4.25) + vue-demi: 0.14.7(vue@3.4.25) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: true - /@types/linkify-it@3.0.5: - resolution: {integrity: sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==} - dev: false + /@vueuse/core@10.9.0(vue@3.4.24): + resolution: {integrity: sha512-/1vjTol8SXnx6xewDEKfS0Ra//ncg4Hb0DaZiwKf7drgfMsKFExQ+FnnENcN6efPen+1kIzhLQoGSy0eDUVOMg==} + dependencies: + '@types/web-bluetooth': 0.0.20 + '@vueuse/metadata': 10.9.0 + '@vueuse/shared': 10.9.0(vue@3.4.24) + vue-demi: 0.14.7(vue@3.4.24) + transitivePeerDependencies: + - '@vue/composition-api' + - vue - /@types/markdown-it@13.0.7: - resolution: {integrity: sha512-U/CBi2YUUcTHBt5tjO2r5QV/x0Po6nsYwQU4Y04fBS6vfoImaiZ6f8bi3CjTCxBPQSO1LMyUqkByzi8AidyxfA==} + /@vueuse/core@10.9.0(vue@3.4.25): + resolution: {integrity: sha512-/1vjTol8SXnx6xewDEKfS0Ra//ncg4Hb0DaZiwKf7drgfMsKFExQ+FnnENcN6efPen+1kIzhLQoGSy0eDUVOMg==} dependencies: - '@types/linkify-it': 3.0.5 - '@types/mdurl': 1.0.5 - dev: false + '@types/web-bluetooth': 0.0.20 + '@vueuse/metadata': 10.9.0 + '@vueuse/shared': 10.9.0(vue@3.4.25) + vue-demi: 0.14.7(vue@3.4.25) + transitivePeerDependencies: + - '@vue/composition-api' + - vue - /@types/mdast@3.0.15: - resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} + /@vueuse/integrations@10.9.0(focus-trap@7.5.4)(vue@3.4.24): + resolution: {integrity: sha512-acK+A01AYdWSvL4BZmCoJAcyHJ6EqhmkQEXbQLwev1MY7NBnS+hcEMx/BzVoR9zKI+UqEPMD9u6PsyAuiTRT4Q==} + peerDependencies: + async-validator: '*' + axios: '*' + change-case: '*' + drauu: '*' + focus-trap: '*' + fuse.js: '*' + idb-keyval: '*' + jwt-decode: '*' + nprogress: '*' + qrcode: '*' + sortablejs: '*' + universal-cookie: '*' + peerDependenciesMeta: + async-validator: + optional: true + axios: + optional: true + change-case: + optional: true + drauu: + optional: true + focus-trap: + optional: true + fuse.js: + optional: true + idb-keyval: + optional: true + jwt-decode: + optional: true + nprogress: + optional: true + qrcode: + optional: true + sortablejs: + optional: true + universal-cookie: + optional: true dependencies: - '@types/unist': 2.0.10 - dev: false + '@vueuse/core': 10.9.0(vue@3.4.24) + '@vueuse/shared': 10.9.0(vue@3.4.24) + focus-trap: 7.5.4 + vue-demi: 0.14.7(vue@3.4.24) + transitivePeerDependencies: + - '@vue/composition-api' + - vue - /@types/mdast@4.0.3: - resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==} + /@vueuse/integrations@10.9.0(focus-trap@7.5.4)(vue@3.4.25): + resolution: {integrity: sha512-acK+A01AYdWSvL4BZmCoJAcyHJ6EqhmkQEXbQLwev1MY7NBnS+hcEMx/BzVoR9zKI+UqEPMD9u6PsyAuiTRT4Q==} + peerDependencies: + async-validator: '*' + axios: '*' + change-case: '*' + drauu: '*' + focus-trap: '*' + fuse.js: '*' + idb-keyval: '*' + jwt-decode: '*' + nprogress: '*' + qrcode: '*' + sortablejs: '*' + universal-cookie: '*' + peerDependenciesMeta: + async-validator: + optional: true + axios: + optional: true + change-case: + optional: true + drauu: + optional: true + focus-trap: + optional: true + fuse.js: + optional: true + idb-keyval: + optional: true + jwt-decode: + optional: true + nprogress: + optional: true + qrcode: + optional: true + sortablejs: + optional: true + universal-cookie: + optional: true dependencies: - '@types/unist': 3.0.2 - dev: false + '@vueuse/core': 10.9.0(vue@3.4.25) + '@vueuse/shared': 10.9.0(vue@3.4.25) + focus-trap: 7.5.4 + vue-demi: 0.14.7(vue@3.4.25) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: true - /@types/mdurl@1.0.5: - resolution: {integrity: sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==} - dev: false + /@vueuse/metadata@10.9.0: + resolution: {integrity: sha512-iddNbg3yZM0X7qFY2sAotomgdHK7YJ6sKUvQqbvwnf7TmaVPxS4EJydcNsVejNdS8iWCtDk+fYXr7E32nyTnGA==} - /@types/mdx@2.0.12: - resolution: {integrity: sha512-H9VZ9YqE+H28FQVchC83RCs5xQ2J7mAAv6qdDEaWmXEVl3OpdH+xfrSUzQ1lp7U7oSTRZ0RvW08ASPJsYBi7Cw==} - dev: false + /@vueuse/shared@10.9.0(vue@3.4.24): + resolution: {integrity: sha512-Uud2IWncmAfJvRaFYzv5OHDli+FbOzxiVEQdLCKQKLyhz94PIyFC3CHcH7EDMwIn8NPtD06+PNbC/PiO0LGLtw==} + dependencies: + vue-demi: 0.14.7(vue@3.4.24) + transitivePeerDependencies: + - '@vue/composition-api' + - vue - /@types/micromatch@4.0.6: - resolution: {integrity: sha512-2eulCHWqjEpk9/vyic4tBhI8a9qQEl6DaK2n/sF7TweX9YESlypgKyhXMDGt4DAOy/jhLPvVrZc8pTDAMsplJA==} + /@vueuse/shared@10.9.0(vue@3.4.25): + resolution: {integrity: sha512-Uud2IWncmAfJvRaFYzv5OHDli+FbOzxiVEQdLCKQKLyhz94PIyFC3CHcH7EDMwIn8NPtD06+PNbC/PiO0LGLtw==} dependencies: - '@types/braces': 3.0.4 - dev: false - - /@types/mime@1.3.5: - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + vue-demi: 0.14.7(vue@3.4.25) + transitivePeerDependencies: + - '@vue/composition-api' + - vue - /@types/minimist@1.2.5: - resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} + /@xmldom/xmldom@0.8.10: + resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} + engines: {node: '>=10.0.0'} dev: false - /@types/ms@0.7.34: - resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - dev: false + /abbrev@1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} - /@types/mute-stream@0.0.4: - resolution: {integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==} - dependencies: - '@types/node': 20.12.7 - dev: false + /abbrev@2.0.0: + resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - /@types/nlcst@1.0.4: - resolution: {integrity: sha512-ABoYdNQ/kBSsLvZAekMhIPMQ3YUZvavStpKYs7BjLLuKVmIMA0LUgZ7b54zzuWJRbHF80v1cNf4r90Vd6eMQDg==} + /abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} dependencies: - '@types/unist': 2.0.10 - dev: false + event-target-shim: 5.0.1 - /@types/node-fetch@2.6.2: - resolution: {integrity: sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==} - dependencies: - '@types/node': 20.12.7 - form-data: 3.0.1 - dev: false + /abstract-logging@2.0.1: + resolution: {integrity: sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==} - /@types/node-forge@1.3.11: - resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} + /accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} dependencies: - '@types/node': 20.12.7 - dev: true - - /@types/node@12.20.55: - resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - dev: false + mime-types: 2.1.35 + negotiator: 0.6.3 - /@types/node@16.18.6: - resolution: {integrity: sha512-vmYJF0REqDyyU0gviezF/KHq/fYaUbFhkcNbQCuPGFQj6VTbXuHZoxs/Y7mutWe73C8AC6l9fFu8mSYiBAqkGA==} - dev: false + /acorn-import-attributes@1.9.5(acorn@8.11.3): + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + peerDependencies: + acorn: ^8 + dependencies: + acorn: 8.11.3 - /@types/node@18.15.3: - resolution: {integrity: sha512-p6ua9zBxz5otCmbpb5D3U4B5Nanw6Pk3PPyX05xnxbB/fRv71N7CPmORg7uAD5P70T0xmx1pzAx/FUfa5X+3cw==} - dev: false + /acorn-jsx@5.3.2(acorn@8.11.3): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.11.3 - /@types/node@20.11.30: - resolution: {integrity: sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==} + /acorn-loose@8.4.0: + resolution: {integrity: sha512-M0EUka6rb+QC4l9Z3T0nJEzNOO7JcoJlYMrBlyBCiFSXRyxjLKayd4TbQs2FDRWQU1h9FR7QVNHt+PEaoNL5rQ==} + engines: {node: '>=0.4.0'} dependencies: - undici-types: 5.26.5 + acorn: 8.11.3 dev: false - /@types/node@20.12.7: - resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} + /acorn-typescript@1.4.13(acorn@8.11.3): + resolution: {integrity: sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==} + peerDependencies: + acorn: '>=8.9.0' dependencies: - undici-types: 5.26.5 - - /@types/normalize-package-data@2.4.4: - resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + acorn: 8.11.3 dev: false - /@types/prop-types@15.7.12: - resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} - - /@types/pug@2.0.10: - resolution: {integrity: sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==} + /acorn-walk@8.2.0: + resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} + engines: {node: '>=0.4.0'} dev: true - /@types/qs@6.9.14: - resolution: {integrity: sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==} + /acorn-walk@8.3.2: + resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + engines: {node: '>=0.4.0'} - /@types/range-parser@1.2.7: - resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + /acorn@8.10.0: + resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true - /@types/react-dom@18.2.25: - resolution: {integrity: sha512-o/V48vf4MQh7juIKZU2QGDfli6p1+OOi5oXx36Hffpc9adsHeXjVp8rHuPkjd8VT8sOJ2Zp05HR7CdpGTIUFUA==} - dependencies: - '@types/react': 18.2.78 + /acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + engines: {node: '>=0.4.0'} + hasBin: true - /@types/react@18.2.78: - resolution: {integrity: sha512-qOwdPnnitQY4xKlKayt42q5W5UQrSHjgoXNVEtxeqdITJ99k4VXJOP3vt8Rkm9HmgJpH50UNU+rlqfkfWOqp0A==} + /agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} dependencies: - '@types/prop-types': 15.7.12 - csstype: 3.1.3 - - /@types/resolve@1.20.2: - resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} - - /@types/semver@6.2.7: - resolution: {integrity: sha512-blctEWbzUFzQx799RZjzzIdBJOXmE37YYEyDtKkx5Dg+V7o/zyyAxLPiI98A2jdTtDgxZleMdfV+7p8WbRJ1OQ==} - dev: false - - /@types/semver@7.5.8: - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + debug: 4.3.4 + transitivePeerDependencies: + - supports-color - /@types/send@0.17.4: - resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} + /agent-base@7.1.0: + resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} + engines: {node: '>= 14'} dependencies: - '@types/mime': 1.3.5 - '@types/node': 20.12.7 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color - /@types/serve-static@1.15.7: - resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} + /agent-base@7.1.1: + resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} + engines: {node: '>= 14'} dependencies: - '@types/http-errors': 2.0.4 - '@types/node': 20.12.7 - '@types/send': 0.17.4 - - /@types/statuses@2.0.5: - resolution: {integrity: sha512-jmIUGWrAiwu3dZpxntxieC+1n/5c3mjrImkmOSQ2NC5uP6cYO4aAZDdSmRcI5C1oiTmqlZGHC+/NmJrKogbP5A==} - dev: false - - /@types/unist@2.0.10: - resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} - dev: false - - /@types/unist@3.0.2: - resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} - dev: false - - /@types/web-bluetooth@0.0.20: - resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} - dev: false - - /@types/wrap-ansi@3.0.0: - resolution: {integrity: sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==} - dev: false + debug: 4.3.4 + transitivePeerDependencies: + - supports-color - /@types/ws@8.5.10: - resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} + /aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} dependencies: - '@types/node': 20.12.7 - dev: false + clean-stack: 2.2.0 + indent-string: 4.0.0 - /@typescript-eslint/eslint-plugin@7.6.0(@typescript-eslint/parser@7.6.0)(eslint@8.57.0)(typescript@5.4.5): - resolution: {integrity: sha512-gKmTNwZnblUdnTIJu3e9kmeRRzV2j1a/LUO27KNNAnIC5zjy1aSvXSRp4rVNlmAoHlQ7HzX42NbKpcSr4jF80A==} - engines: {node: ^18.18.0 || >=20.0.0} + /ajv-draft-04@1.0.0(ajv@8.12.0): + resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 - typescript: '*' + ajv: ^8.5.0 peerDependenciesMeta: - typescript: + ajv: optional: true dependencies: - '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.6.0(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/scope-manager': 7.6.0 - '@typescript-eslint/type-utils': 7.6.0(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/utils': 7.6.0(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.6.0 - debug: 4.3.4 - eslint: 8.57.0 - graphemer: 1.4.0 - ignore: 5.3.1 - natural-compare: 1.4.0 - semver: 7.6.0 - ts-api-utils: 1.3.0(typescript@5.4.5) - typescript: 5.4.5 - transitivePeerDependencies: - - supports-color + ajv: 8.12.0 + dev: false - /@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.5): - resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} - engines: {node: ^16.0.0 || >=18.0.0} + /ajv-formats@2.1.1(ajv@8.12.0): + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' + ajv: ^8.0.0 peerDependenciesMeta: - typescript: + ajv: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.3.4 - eslint: 8.57.0 - typescript: 5.4.5 - transitivePeerDependencies: - - supports-color - dev: true + ajv: 8.12.0 - /@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5): - resolution: {integrity: sha512-usPMPHcwX3ZoPWnBnhhorc14NJw9J4HpSXQX4urF2TPKG0au0XhJoZyX62fmvdHONUkmyUe74Hzm1//XA+BoYg==} - engines: {node: ^18.18.0 || >=20.0.0} + /ajv-formats@3.0.1(ajv@8.12.0): + resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} peerDependencies: - eslint: ^8.56.0 - typescript: '*' + ajv: ^8.0.0 peerDependenciesMeta: - typescript: + ajv: optional: true dependencies: - '@typescript-eslint/scope-manager': 7.6.0 - '@typescript-eslint/types': 7.6.0 - '@typescript-eslint/typescript-estree': 7.6.0(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.6.0 - debug: 4.3.4 - eslint: 8.57.0 - typescript: 5.4.5 - transitivePeerDependencies: - - supports-color + ajv: 8.12.0 + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + /ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + + /ansi-align@3.0.1: + 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'} + + /ansi-escapes@4.3.2: + 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'} + + /ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + + /ansi-sequence-parser@1.1.1: + resolution: {integrity: sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==} + dev: false - /@typescript-eslint/scope-manager@6.21.0: - resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} - engines: {node: ^16.0.0 || >=18.0.0} + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 - dev: true + color-convert: 1.9.3 - /@typescript-eslint/scope-manager@7.6.0: - resolution: {integrity: sha512-ngttyfExA5PsHSx0rdFgnADMYQi+Zkeiv4/ZxGYUWd0nLs63Ha0ksmp8VMxAIC0wtCFxMos7Lt3PszJssG/E6w==} - engines: {node: ^18.18.0 || >=20.0.0} + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} dependencies: - '@typescript-eslint/types': 7.6.0 - '@typescript-eslint/visitor-keys': 7.6.0 + color-convert: 2.0.1 - /@typescript-eslint/type-utils@7.6.0(eslint@8.57.0)(typescript@5.4.5): - resolution: {integrity: sha512-NxAfqAPNLG6LTmy7uZgpK8KcuiS2NZD/HlThPXQRGwz6u7MDBWRVliEEl1Gj6U7++kVJTpehkhZzCJLMK66Scw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/typescript-estree': 7.6.0(typescript@5.4.5) - '@typescript-eslint/utils': 7.6.0(eslint@8.57.0)(typescript@5.4.5) - debug: 4.3.4 - eslint: 8.57.0 - ts-api-utils: 1.3.0(typescript@5.4.5) - typescript: 5.4.5 - transitivePeerDependencies: - - supports-color + /ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} - /@typescript-eslint/types@6.21.0: - resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} - engines: {node: ^16.0.0 || >=18.0.0} - dev: true + /ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} - /@typescript-eslint/types@7.6.0: - resolution: {integrity: sha512-h02rYQn8J+MureCvHVVzhl69/GAfQGPQZmOMjG1KfCl7o3HtMSlPaPUAPu6lLctXI5ySRGIYk94clD/AUMCUgQ==} - engines: {node: ^18.18.0 || >=20.0.0} + /any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - /@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.5): - resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.6.0 - ts-api-utils: 1.3.0(typescript@5.4.5) - typescript: 5.4.5 - transitivePeerDependencies: - - supports-color - dev: true + normalize-path: 3.0.0 + picomatch: 2.3.1 - /@typescript-eslint/typescript-estree@7.6.0(typescript@5.4.5): - resolution: {integrity: sha512-+7Y/GP9VuYibecrCQWSKgl3GvUM5cILRttpWtnAu8GNL9j11e4tbuGZmZjJ8ejnKYyBRb2ddGQ3rEFCq3QjMJw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 7.6.0 - '@typescript-eslint/visitor-keys': 7.6.0 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.4 - semver: 7.6.0 - ts-api-utils: 1.3.0(typescript@5.4.5) - typescript: 5.4.5 - transitivePeerDependencies: - - supports-color + /aproba@2.0.0: + resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} - /@typescript-eslint/utils@7.6.0(eslint@8.57.0)(typescript@5.4.5): - resolution: {integrity: sha512-x54gaSsRRI+Nwz59TXpCsr6harB98qjXYzsRxGqvA5Ue3kQH+FxS7FYU81g/omn22ML2pZJkisy6Q+ElK8pBCA==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 7.6.0 - '@typescript-eslint/types': 7.6.0 - '@typescript-eslint/typescript-estree': 7.6.0(typescript@5.4.5) - eslint: 8.57.0 - semver: 7.6.0 - transitivePeerDependencies: - - supports-color - - typescript + /arch@2.2.0: + resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} + dev: false - /@typescript-eslint/visitor-keys@6.21.0: - resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} - engines: {node: ^16.0.0 || >=18.0.0} + /archiver-utils@5.0.2: + resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==} + engines: {node: '>= 14'} dependencies: - '@typescript-eslint/types': 6.21.0 - eslint-visitor-keys: 3.4.3 - dev: true + glob: 10.3.12 + graceful-fs: 4.2.11 + is-stream: 2.0.1 + lazystream: 1.0.1 + lodash: 4.17.21 + normalize-path: 3.0.0 + readable-stream: 4.5.2 - /@typescript-eslint/visitor-keys@7.6.0: - resolution: {integrity: sha512-4eLB7t+LlNUmXzfOu1VAIAdkjbu5xNSerURS9X/S5TUKWFRpXRQZbmtPqgKmYx8bj3J0irtQXSiWAOY82v+cgw==} - engines: {node: ^18.18.0 || >=20.0.0} + /archiver@7.0.1: + resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==} + engines: {node: '>= 14'} dependencies: - '@typescript-eslint/types': 7.6.0 - eslint-visitor-keys: 3.4.3 + archiver-utils: 5.0.2 + async: 3.2.4 + buffer-crc32: 1.0.0 + readable-stream: 4.5.2 + readdir-glob: 1.1.3 + tar-stream: 3.1.7 + zip-stream: 6.0.1 - /@uiw/codemirror-themes@4.21.25(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.2): - resolution: {integrity: sha512-C3t/voELxQj0eaVhrlgzaOnSALNf8bOcRbL5xN9r2+RkdsbFOmvNl3VVhlxEB7PSGc1jUZwVO4wQsB2AP178ag==} - peerDependencies: - '@codemirror/language': '>=6.0.0' - '@codemirror/state': '>=6.0.0' - '@codemirror/view': '>=6.0.0' + /archy@1.0.0: + resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} + + /are-we-there-yet@2.0.0: + resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} + engines: {node: '>=10'} dependencies: - '@codemirror/language': 6.10.1 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.26.2 + delegates: 1.0.0 + readable-stream: 3.6.2 + + /arg@1.0.0: + resolution: {integrity: sha512-Wk7TEzl1KqvTGs/uyhmHO/3XLd3t1UeU4IstvPXVzGPM522cTjqjNZ99esCkcL52sjqjo8e8CTBcWhkxvGzoAw==} dev: false - /@ungap/structured-clone@1.2.0: - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + /arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} - /@unhead/dom@1.9.4: - resolution: {integrity: sha512-nEaHOcCL0u56g4XOV5XGwRMFZ05eEINfp8nxVrPiIGLrS9BoFrZS7/6IYSkalkNRTmw8M5xqxt6BalBr594SaA==} + /argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: - '@unhead/schema': 1.9.4 - '@unhead/shared': 1.9.4 + sprintf-js: 1.0.3 dev: false - /@unhead/schema@1.9.4: - resolution: {integrity: sha512-/J6KYQ+aqKO5uLDTU9BXfiRAfJ3mQNmF5gh3Iyd4qZaWfqjsDGYIaAe4xAGPnJxwBn6FHlnvQvZBSGqru1MByw==} + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + /aria-hidden@1.2.4: + resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} + engines: {node: '>=10'} dependencies: - hookable: 5.5.3 - zhead: 2.2.4 + tslib: 2.6.2 dev: false - /@unhead/shared@1.9.4: - resolution: {integrity: sha512-ErP6SUzPPRX9Df4fqGlwlLInoG+iBiH0nDudRuIpoFGyTnv1uO9BQ+lfFld8s1gI1WCdoBwVkISBp9/f/E/GLA==} + /aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} dependencies: - '@unhead/schema': 1.9.4 - dev: false + dequal: 2.0.3 - /@vcarl/remark-headings@0.1.0: - resolution: {integrity: sha512-ffQxJUcapJ9Bk+fiGN49YJ9RaYMibrSTSezB1Fcrtu+0YSZxA3bsaLlIv1u/4sjPIeW/BKrs4xtMT3l3P9Ba5Q==} + /array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} dependencies: - mdast-util-to-string: 3.2.0 - unist-util-visit: 4.1.2 - dev: false + call-bind: 1.0.2 + is-array-buffer: 3.0.2 - /@vercel/nft@0.26.4: - resolution: {integrity: sha512-j4jCOOXke2t8cHZCIxu1dzKLHLcFmYzC3yqAK6MfZznOL1QIJKd0xcFsXK3zcqzU7ScsE2zWkiMMNHGMHgp+FA==} - engines: {node: '>=16'} - hasBin: true + /array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} dependencies: - '@mapbox/node-pre-gyp': 1.0.11 - '@rollup/pluginutils': 4.2.1 - acorn: 8.11.3 - acorn-import-attributes: 1.9.5(acorn@8.11.3) - async-sema: 3.1.1 - bindings: 1.5.0 - estree-walker: 2.0.2 - glob: 7.2.3 - graceful-fs: 4.2.11 - micromatch: 4.0.5 - node-gyp-build: 4.8.0 - resolve-from: 5.0.0 - transitivePeerDependencies: - - encoding - - supports-color - dev: false + call-bind: 1.0.7 + is-array-buffer: 3.0.4 - /@vinxi/listhen@1.5.6: - resolution: {integrity: sha512-WSN1z931BtasZJlgPp704zJFnQFRg7yzSjkm3MzAWQYe4uXFXlFr1hc5Ac2zae5/HDOz5x1/zDM5Cb54vTCnWw==} - hasBin: true + /array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + + /array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} + engines: {node: '>= 0.4'} dependencies: - '@parcel/watcher': 2.4.1 - '@parcel/watcher-wasm': 2.3.0 - citty: 0.1.6 - clipboardy: 4.0.0 - consola: 3.2.3 - defu: 6.1.4 - get-port-please: 3.1.2 - h3: 1.11.1 - http-shutdown: 1.2.2 - jiti: 1.21.0 - mlly: 1.6.1 - node-forge: 1.3.1 - pathe: 1.1.2 - std-env: 3.7.0 - ufo: 1.5.3 - untun: 0.1.3 - uqr: 0.1.2 - transitivePeerDependencies: - - uWebSockets.js + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 + is-string: 1.0.7 + + /array-iterate@2.0.1: + resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} dev: false - /@vinxi/plugin-directives@0.3.1(vinxi@0.3.11): - resolution: {integrity: sha512-4qz5WifjmJ864VS8Ik9nUG0wAkt/xIcxFpP29RXogGLgccRnceBpWQi+ghw5rm0F6LP/YMAhhO5iFORXclWd0Q==} - peerDependencies: - vinxi: ^0.3.10 + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + /array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 + + /array.prototype.findlastindex@1.2.5: + resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 + + /array.prototype.flat@1.3.1: + resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.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.0 + es-abstract: 1.22.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.0 + es-abstract: 1.22.1 + es-shim-unscopables: 1.0.0 + + /array.prototype.toreversed@1.1.2: + resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==} dependencies: - '@babel/parser': 7.24.4 - acorn: 8.11.3 - acorn-jsx: 5.3.2(acorn@8.11.3) - acorn-loose: 8.4.0 - acorn-typescript: 1.4.13(acorn@8.11.3) - astring: 1.8.6 - magicast: 0.2.11 - recast: 0.23.6 - tslib: 2.6.2 - vinxi: 0.3.11(@types/node@20.12.7) - dev: false + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + es-shim-unscopables: 1.0.0 - /@vinxi/server-components@0.3.3(vinxi@0.3.11): - resolution: {integrity: sha512-xaW92nj9HUMLyswPcCmsIXOsS3TJll0m9u3WEjWjLrtZWheHggina6+kTCSeltp/Qe8WlUfNU5G02Xy8L4xQxA==} - peerDependencies: - vinxi: ^0.3.10 + /array.prototype.tosorted@1.1.3: + resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==} dependencies: - '@vinxi/plugin-directives': 0.3.1(vinxi@0.3.11) - acorn: 8.11.3 - acorn-loose: 8.4.0 - acorn-typescript: 1.4.13(acorn@8.11.3) - astring: 1.8.6 - magicast: 0.2.11 - recast: 0.23.6 - vinxi: 0.3.11(@types/node@20.12.7) - dev: false + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-shim-unscopables: 1.0.2 - /@vinxi/server-functions@0.3.2(vinxi@0.3.11): - resolution: {integrity: sha512-PoARb1X480UE9jysPqltpzginBftna34GmZ3HyvRT+pnPfsGcuHOzZe/a18V/K04qk2yMRd7eeW42JF5O+wunw==} - peerDependencies: - vinxi: ^0.3.10 + /arraybuffer.prototype.slice@1.0.1: + resolution: {integrity: sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==} + engines: {node: '>= 0.4'} dependencies: - '@vinxi/plugin-directives': 0.3.1(vinxi@0.3.11) - acorn: 8.11.3 - acorn-loose: 8.4.0 - acorn-typescript: 1.4.13(acorn@8.11.3) - astring: 1.8.6 - magicast: 0.2.11 - recast: 0.23.6 - vinxi: 0.3.11(@types/node@20.12.7) + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.2 + define-properties: 1.2.0 + get-intrinsic: 1.2.1 + is-array-buffer: 3.0.2 + is-shared-array-buffer: 1.0.2 + + /arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + is-array-buffer: 3.0.4 + is-shared-array-buffer: 1.0.3 + + /arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} dev: false - /@vitejs/plugin-react-swc@3.6.0(vite@5.2.8): - resolution: {integrity: sha512-XFRbsGgpGxGzEV5i5+vRiro1bwcIaZDIdBRP16qwm+jP68ue/S8FJTBEgOeojtVDYrbSua3XFp71kC8VJE6v+g==} - peerDependencies: - vite: ^4 || ^5 + /as-table@1.0.55: + resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} dependencies: - '@swc/core': 1.4.13(@swc/helpers@0.5.8) - vite: 5.2.8(@types/node@20.12.7) - transitivePeerDependencies: - - '@swc/helpers' + printable-characters: 1.0.42 dev: true - /@vitejs/plugin-react@4.2.1(vite@5.2.8): - resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - vite: ^4.2.0 || ^5.0.0 + /asn1js@3.0.5: + resolution: {integrity: sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==} + engines: {node: '>=12.0.0'} dependencies: - '@babel/core': 7.24.4 - '@babel/plugin-transform-react-jsx-self': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.4) - '@types/babel__core': 7.20.5 - react-refresh: 0.14.0 - vite: 5.2.8(@types/node@20.12.7) - transitivePeerDependencies: - - supports-color + pvtsutils: 1.3.5 + pvutils: 1.1.3 + tslib: 2.6.2 dev: false - /@vitest/coverage-v8@1.4.0(vitest@1.4.0): - resolution: {integrity: sha512-4hDGyH1SvKpgZnIByr9LhGgCEuF9DKM34IBLCC/fVfy24Z3+PZ+Ii9hsVBsHvY1umM1aGPEjceRkzxCfcQ10wg==} - peerDependencies: - vitest: 1.4.0 + /assert@2.0.0: + resolution: {integrity: sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==} dependencies: - '@ampproject/remapping': 2.3.0 - '@bcoe/v8-coverage': 0.2.3 - debug: 4.3.4 - istanbul-lib-coverage: 3.2.2 - istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 5.0.4 - istanbul-reports: 3.1.7 - magic-string: 0.30.9 - magicast: 0.3.3 - picocolors: 1.0.0 - std-env: 3.7.0 - strip-literal: 2.1.0 - test-exclude: 6.0.0 - v8-to-istanbul: 9.2.0 - vitest: 1.4.0(@types/node@20.12.7)(happy-dom@13.10.1) - transitivePeerDependencies: - - supports-color + es6-object-assign: 1.1.0 + is-nan: 1.3.2 + object-is: 1.1.5 + util: 0.12.5 dev: false - /@vitest/expect@1.4.0: - resolution: {integrity: sha512-Jths0sWCJZ8BxjKe+p+eKsoqev1/T8lYcrjavEaz8auEJ4jAVY0GwW3JKmdVU4mmNPLPHixh4GNXP7GFtAiDHA==} + /assertion-error@1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + + /ast-kit@0.12.1: + resolution: {integrity: sha512-O+33g7x6irsESUcd47KdfWUrS2F6aGp9KeVJFGj0YjIznfXpBxVGjA0w+y/1OKqX4mFOfmZ9Xpf1ixPT4n9xxw==} + engines: {node: '>=16.14.0'} dependencies: - '@vitest/spy': 1.4.0 - '@vitest/utils': 1.4.0 - chai: 4.4.1 - dev: false + '@babel/parser': 7.24.4 + pathe: 1.1.2 - /@vitest/runner@1.4.0: - resolution: {integrity: sha512-EDYVSmesqlQ4RD2VvWo3hQgTJ7ZrFQ2VSJdfiJiArkCerDAGeyF1i6dHkmySqk573jLp6d/cfqCN+7wUB5tLgg==} + /ast-kit@0.9.5(rollup@3.29.4): + resolution: {integrity: sha512-kbL7ERlqjXubdDd+szuwdlQ1xUxEz9mCz1+m07ftNVStgwRb2RWw+U6oKo08PAvOishMxiqz1mlJyLl8yQx2Qg==} + engines: {node: '>=16.14.0'} dependencies: - '@vitest/utils': 1.4.0 - p-limit: 5.0.0 + '@babel/parser': 7.22.10 + '@rollup/pluginutils': 5.1.0(rollup@3.29.4) pathe: 1.1.2 - dev: false + transitivePeerDependencies: + - rollup - /@vitest/snapshot@1.4.0: - resolution: {integrity: sha512-saAFnt5pPIA5qDGxOHxJ/XxhMFKkUSBJmVt5VgDsAqPTX6JP326r5C/c9UuCMPoXNzuudTPsYDZCoJ5ilpqG2A==} + /ast-kit@0.9.5(rollup@4.16.2): + resolution: {integrity: sha512-kbL7ERlqjXubdDd+szuwdlQ1xUxEz9mCz1+m07ftNVStgwRb2RWw+U6oKo08PAvOishMxiqz1mlJyLl8yQx2Qg==} + engines: {node: '>=16.14.0'} dependencies: - magic-string: 0.30.9 + '@babel/parser': 7.22.10 + '@rollup/pluginutils': 5.1.0(rollup@4.16.2) pathe: 1.1.2 - pretty-format: 29.7.0 - dev: false + transitivePeerDependencies: + - rollup + dev: true + + /ast-types-flow@0.0.8: + resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} + dev: true - /@vitest/spy@1.4.0: - resolution: {integrity: sha512-Ywau/Qs1DzM/8Uc+yA77CwSegizMlcgTJuYGAi0jujOteJOUf1ujunHThYo243KG9nAyWT3L9ifPYZ5+As/+6Q==} + /ast-types@0.16.1: + resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} + engines: {node: '>=4'} dependencies: - tinyspy: 2.2.1 + tslib: 2.6.2 dev: false - /@vitest/utils@1.4.0: - resolution: {integrity: sha512-mx3Yd1/6e2Vt/PUC98DcqTirtfxUyAZ32uK82r8rZzbtBeBo+nqgnjx/LvqQdWsrvNtm14VmurNgcf4nqY5gJg==} + /ast-walker-scope@0.5.0: + resolution: {integrity: sha512-NsyHMxBh4dmdEHjBo1/TBZvCKxffmZxRYhmclfu0PP6Aftre47jOHYaYaNqJcV0bxihxFXhDkzLHUwHc0ocd0Q==} + engines: {node: '>=16.14.0'} dependencies: - diff-sequences: 29.6.3 - estree-walker: 3.0.3 - loupe: 2.3.7 - pretty-format: 29.7.0 + '@babel/parser': 7.22.10 + ast-kit: 0.9.5(rollup@3.29.4) + transitivePeerDependencies: + - rollup dev: false - /@vue/compiler-core@3.4.21: - resolution: {integrity: sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==} + /ast-walker-scope@0.5.0(rollup@3.29.4): + resolution: {integrity: sha512-NsyHMxBh4dmdEHjBo1/TBZvCKxffmZxRYhmclfu0PP6Aftre47jOHYaYaNqJcV0bxihxFXhDkzLHUwHc0ocd0Q==} + engines: {node: '>=16.14.0'} dependencies: - '@babel/parser': 7.24.4 - '@vue/shared': 3.4.21 - entities: 4.5.0 - estree-walker: 2.0.2 - source-map-js: 1.2.0 - dev: false + '@babel/parser': 7.22.10 + ast-kit: 0.9.5(rollup@3.29.4) + transitivePeerDependencies: + - rollup + dev: true - /@vue/compiler-dom@3.4.21: - resolution: {integrity: sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==} + /ast-walker-scope@0.5.0(rollup@4.16.2): + resolution: {integrity: sha512-NsyHMxBh4dmdEHjBo1/TBZvCKxffmZxRYhmclfu0PP6Aftre47jOHYaYaNqJcV0bxihxFXhDkzLHUwHc0ocd0Q==} + engines: {node: '>=16.14.0'} dependencies: - '@vue/compiler-core': 3.4.21 - '@vue/shared': 3.4.21 + '@babel/parser': 7.22.10 + ast-kit: 0.9.5(rollup@4.16.2) + transitivePeerDependencies: + - rollup + dev: true + + /astring@1.8.6: + resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} + hasBin: true dev: false - /@vue/compiler-sfc@3.4.21: - resolution: {integrity: sha512-me7epoTxYlY+2CUM7hy9PCDdpMPfIwrOvAXud2Upk10g4YLv9UBW7kL798TvMeDhPthkZ0CONNrK2GoeI1ODiQ==} + /astro@4.6.3(@types/node@20.12.7)(typescript@5.4.5): + resolution: {integrity: sha512-p2zs1Gac+ysdc/yFCoc8pOXTZE5L9foAtmqUzUVL22WX68bYTRovd03GRs7J1MDpwzsl9kJtlK20ROpjyIFpNw==} + engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} + hasBin: true dependencies: + '@astrojs/compiler': 2.7.1 + '@astrojs/internal-helpers': 0.4.0 + '@astrojs/markdown-remark': 5.1.0 + '@astrojs/telemetry': 3.1.0 + '@babel/core': 7.24.4 + '@babel/generator': 7.24.4 '@babel/parser': 7.24.4 - '@vue/compiler-core': 3.4.21 - '@vue/compiler-dom': 3.4.21 - '@vue/compiler-ssr': 3.4.21 - '@vue/shared': 3.4.21 - estree-walker: 2.0.2 - magic-string: 0.30.9 - postcss: 8.4.38 - source-map-js: 1.2.0 + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.4) + '@babel/traverse': 7.24.1 + '@babel/types': 7.24.0 + '@types/babel__core': 7.20.5 + '@types/cookie': 0.5.4 + acorn: 8.11.3 + aria-query: 5.3.0 + axobject-query: 4.0.0 + boxen: 7.1.1 + chokidar: 3.5.3 + ci-info: 4.0.0 + clsx: 2.1.0 + common-ancestor-path: 1.0.1 + cookie: 0.6.0 + cssesc: 3.0.0 + debug: 4.3.4 + deterministic-object-hash: 2.0.2 + devalue: 4.3.2 + diff: 5.1.0 + dlv: 1.1.3 + dset: 3.1.3 + es-module-lexer: 1.5.0 + esbuild: 0.19.12 + estree-walker: 3.0.3 + execa: 8.0.1 + fast-glob: 3.3.2 + flattie: 1.1.1 + github-slugger: 2.0.0 + gray-matter: 4.0.3 + html-escaper: 3.0.3 + http-cache-semantics: 4.1.1 + js-yaml: 4.1.0 + kleur: 4.1.5 + magic-string: 0.30.10 + mime: 3.0.0 + ora: 7.0.1 + p-limit: 5.0.0 + p-queue: 8.0.1 + path-to-regexp: 6.2.1 + preferred-pm: 3.1.3 + prompts: 2.4.2 + rehype: 13.0.1 + resolve: 1.22.4 + semver: 7.5.4 + shiki: 1.3.0 + string-width: 7.1.0 + strip-ansi: 7.1.0 + tsconfck: 3.0.3(typescript@5.4.5) + unist-util-visit: 5.0.0 + vfile: 6.0.1 + vite: 5.2.10(@types/node@20.12.7) + vitefu: 0.2.5(vite@5.2.10) + which-pm: 2.1.1 + yargs-parser: 21.1.1 + zod: 3.23.0 + zod-to-json-schema: 3.22.5(zod@3.23.0) + optionalDependencies: + sharp: 0.32.6 + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + - typescript dev: false - /@vue/compiler-ssr@3.4.21: - resolution: {integrity: sha512-M5+9nI2lPpAsgXOGQobnIueVqc9sisBFexh5yMIMRAPYLa7+5wEJs8iqOZc1WAa9WQbx9GR2twgznU8LTIiZ4Q==} - dependencies: - '@vue/compiler-dom': 3.4.21 - '@vue/shared': 3.4.21 - dev: false + /async-sema@3.1.1: + resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} - /@vue/reactivity@3.4.21: - resolution: {integrity: sha512-UhenImdc0L0/4ahGCyEzc/pZNwVgcglGy9HVzJ1Bq2Mm9qXOpP8RyNTjookw/gOCUlXSEtuZ2fUg5nrHcoqJcw==} - dependencies: - '@vue/shared': 3.4.21 - dev: false + /async@3.2.4: + resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} - /@vue/runtime-core@3.4.21: - resolution: {integrity: sha512-pQthsuYzE1XcGZznTKn73G0s14eCJcjaLvp3/DKeYWoFacD9glJoqlNBxt3W2c5S40t6CCcpPf+jG01N3ULyrA==} - dependencies: - '@vue/reactivity': 3.4.21 - '@vue/shared': 3.4.21 - dev: false + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - /@vue/runtime-dom@3.4.21: - resolution: {integrity: sha512-gvf+C9cFpevsQxbkRBS1NpU8CqxKw0ebqMvLwcGQrNpx6gqRDodqKqA+A2VZZpQ9RpK2f9yfg8VbW/EpdFUOJw==} + /atomic-sleep@1.0.0: + resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} + engines: {node: '>=8.0.0'} + + /autoprefixer@10.4.14(postcss@8.4.38): + resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 dependencies: - '@vue/runtime-core': 3.4.21 - '@vue/shared': 3.4.21 - csstype: 3.1.3 - dev: false + browserslist: 4.21.10 + caniuse-lite: 1.0.30001520 + fraction.js: 4.2.0 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true - /@vue/server-renderer@3.4.21(vue@3.4.21): - resolution: {integrity: sha512-aV1gXyKSN6Rz+6kZ6kr5+Ll14YzmIbeuWe7ryJl5muJ4uwSwY/aStXTixx76TwkZFJLm1aAlA/HSWEJ4EyiMkg==} + /autoprefixer@10.4.19(postcss@8.4.38): + resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true peerDependencies: - vue: 3.4.21 + postcss: ^8.1.0 dependencies: - '@vue/compiler-ssr': 3.4.21 - '@vue/shared': 3.4.21 - vue: 3.4.21(typescript@5.4.5) - dev: false + browserslist: 4.23.0 + caniuse-lite: 1.0.30001612 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.38 + postcss-value-parser: 4.2.0 - /@vue/shared@3.4.21: - resolution: {integrity: sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==} - dev: false + /available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} - /@vueuse/core@10.9.0(vue@3.4.21): - resolution: {integrity: sha512-/1vjTol8SXnx6xewDEKfS0Ra//ncg4Hb0DaZiwKf7drgfMsKFExQ+FnnENcN6efPen+1kIzhLQoGSy0eDUVOMg==} + /available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} dependencies: - '@types/web-bluetooth': 0.0.20 - '@vueuse/metadata': 10.9.0 - '@vueuse/shared': 10.9.0(vue@3.4.21) - vue-demi: 0.14.7(vue@3.4.21) + possible-typed-array-names: 1.0.0 + + /avvio@8.3.0: + resolution: {integrity: sha512-VBVH0jubFr9LdFASy/vNtm5giTrnbVquWBhT0fyizuNK2rQ7e7ONU2plZQWUNqtE1EmxFEb+kbSkFRkstiaS9Q==} + dependencies: + '@fastify/error': 3.4.1 + archy: 1.0.0 + debug: 4.3.4 + fastq: 1.17.1 transitivePeerDependencies: - - '@vue/composition-api' - - vue - dev: false + - supports-color - /@vueuse/metadata@10.9.0: - resolution: {integrity: sha512-iddNbg3yZM0X7qFY2sAotomgdHK7YJ6sKUvQqbvwnf7TmaVPxS4EJydcNsVejNdS8iWCtDk+fYXr7E32nyTnGA==} - dev: false + /axe-core@4.7.0: + resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} + engines: {node: '>=4'} + dev: true - /@vueuse/shared@10.9.0(vue@3.4.21): - resolution: {integrity: sha512-Uud2IWncmAfJvRaFYzv5OHDli+FbOzxiVEQdLCKQKLyhz94PIyFC3CHcH7EDMwIn8NPtD06+PNbC/PiO0LGLtw==} + /axios@1.6.8: + resolution: {integrity: sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==} dependencies: - vue-demi: 0.14.7(vue@3.4.21) + follow-redirects: 1.15.6 + form-data: 4.0.0 + proxy-from-env: 1.1.0 transitivePeerDependencies: - - '@vue/composition-api' - - vue - dev: false - - /@xmldom/xmldom@0.8.10: - resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} - engines: {node: '>=10.0.0'} - dev: false + - debug - /abbrev@1.1.1: - resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} - dev: false + /axobject-query@3.2.1: + resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} + dependencies: + dequal: 2.0.3 + dev: true - /abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} + /axobject-query@4.0.0: + resolution: {integrity: sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==} dependencies: - event-target-shim: 5.0.1 + dequal: 2.0.3 - /abstract-logging@2.0.1: - resolution: {integrity: sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==} + /b4a@1.6.6: + resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==} - /accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} + /babel-plugin-jsx-dom-expressions@0.36.10(@babel/core@7.22.10): + resolution: {integrity: sha512-QA2k/14WGw+RgcGGnEuLWwnu4em6CGhjeXtjvgOYyFHYS2a+CzPeaVQHDOlfuiBcjq/3hWMspHMIMnPEOIzdBg==} + peerDependencies: + '@babel/core': ^7.20.12 dependencies: - mime-types: 2.1.35 - negotiator: 0.6.3 + '@babel/core': 7.22.10 + '@babel/helper-module-imports': 7.18.6 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.10) + '@babel/types': 7.22.10 + html-entities: 2.3.3 + validate-html-nesting: 1.2.2 + dev: true - /acorn-import-attributes@1.9.5(acorn@8.11.3): - resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + /babel-plugin-jsx-dom-expressions@0.37.19(@babel/core@7.24.4): + resolution: {integrity: sha512-nef2eLpWBgFggwrYwN6O3dNKn3RnlX6n4DIamNEAeHwp03kVQUaKUiLaEPnHPJHwxie1KwPelyIY9QikU03vUA==} peerDependencies: - acorn: ^8 + '@babel/core': ^7.20.12 dependencies: - acorn: 8.11.3 + '@babel/core': 7.24.4 + '@babel/helper-module-imports': 7.18.6 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.24.4) + '@babel/types': 7.22.10 + html-entities: 2.3.3 + validate-html-nesting: 1.2.2 dev: false - /acorn-jsx@5.3.2(acorn@8.11.3): - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + /babel-preset-solid@1.7.7(@babel/core@7.22.10): + resolution: {integrity: sha512-tdxVzx3kgcIjNXAOmGRbzIhFBPeJjSakiN9yM+IYdL/+LtXNnbGqb0Va5tJb8Sjbk+QVEriovCyuzB5T7jeTvg==} peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + '@babel/core': ^7.0.0 dependencies: - acorn: 8.11.3 + '@babel/core': 7.22.10 + babel-plugin-jsx-dom-expressions: 0.36.10(@babel/core@7.22.10) + dev: true - /acorn-loose@8.4.0: - resolution: {integrity: sha512-M0EUka6rb+QC4l9Z3T0nJEzNOO7JcoJlYMrBlyBCiFSXRyxjLKayd4TbQs2FDRWQU1h9FR7QVNHt+PEaoNL5rQ==} - engines: {node: '>=0.4.0'} + /babel-preset-solid@1.8.16(@babel/core@7.24.4): + resolution: {integrity: sha512-b4HFg/xaKM+H3Tu5iUlZ/43TJOZnhi85xrm3JrXDQ0s4cmtmU37bXXYzb2m55G4QKiFjxLAjvb7sUorPrAMs5w==} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: - acorn: 8.11.3 + '@babel/core': 7.24.4 + babel-plugin-jsx-dom-expressions: 0.37.19(@babel/core@7.24.4) dev: false - /acorn-typescript@1.4.13(acorn@8.11.3): - resolution: {integrity: sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==} - peerDependencies: - acorn: '>=8.9.0' - dependencies: - acorn: 8.11.3 + /bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} dev: false - /acorn-walk@8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} - engines: {node: '>=0.4.0'} + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - /acorn@8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} - engines: {node: '>=0.4.0'} - hasBin: true + /bare-events@2.2.2: + resolution: {integrity: sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ==} + requiresBuild: true + optional: true - /agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} + /bare-fs@2.3.0: + resolution: {integrity: sha512-TNFqa1B4N99pds2a5NYHR15o0ZpdNKbAeKTE/+G6ED/UeOavv8RY3dr/Fu99HW3zU3pXpo2kDNO8Sjsm2esfOw==} + requiresBuild: true dependencies: - debug: 4.3.4 - transitivePeerDependencies: - - supports-color + bare-events: 2.2.2 + bare-path: 2.1.2 + bare-stream: 1.0.0 dev: false + optional: true - /ajv-draft-04@1.0.0(ajv@8.12.0): - resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} - peerDependencies: - ajv: ^8.5.0 - peerDependenciesMeta: - ajv: - optional: true - dependencies: - ajv: 8.12.0 + /bare-os@2.2.1: + resolution: {integrity: sha512-OwPyHgBBMkhC29Hl3O4/YfxW9n7mdTr2+SsO29XBWKKJsbgj3mnorDB80r5TiCQgQstgE5ga1qNYrpes6NvX2w==} + requiresBuild: true dev: false + optional: true - /ajv-formats@2.1.1(ajv@8.12.0): - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true + /bare-path@2.1.2: + resolution: {integrity: sha512-o7KSt4prEphWUHa3QUwCxUI00R86VdjiuxmJK0iNVDHYPGo+HsDaVCnqCmPbf/MiW1ok8F4p3m8RTHlWk8K2ig==} + requiresBuild: true dependencies: - ajv: 8.12.0 + bare-os: 2.2.1 + dev: false + optional: true - /ajv-formats@3.0.1(ajv@8.12.0): - resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true + /bare-stream@1.0.0: + resolution: {integrity: sha512-KhNUoDL40iP4gFaLSsoGE479t0jHijfYdIcxRn/XtezA2BaUD0NRf/JGRpsMq6dMNM+SrCrB0YSSo/5wBY4rOQ==} + requiresBuild: true dependencies: - ajv: 8.12.0 + streamx: 2.16.1 + dev: false + optional: true - /ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 + /base-64@1.0.0: + resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} + dev: false - /ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - /ansi-align@3.0.1: - resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + /better-path-resolve@1.0.0: + resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} + engines: {node: '>=4'} 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'} + is-windows: 1.0.2 dev: false - /ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.21.3 + /big-integer@1.6.51: + resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} + engines: {node: '>=0.6'} dev: false - /ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} - /ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} + /bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + dependencies: + file-uri-to-path: 1.0.0 - /ansi-sequence-parser@1.1.1: - resolution: {integrity: sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==} - dev: false + /birpc@0.2.17: + resolution: {integrity: sha512-+hkTxhot+dWsLpp3gia5AkVHIsKlZybNT5gIYiDlNzJrmYPcTM9k5/w2uaj3IPpd7LlEYpmCj4Jj1nC41VhDFg==} - /ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} + /bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + requiresBuild: true dependencies: - color-convert: 1.9.3 + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: false + optional: true - /ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} + /bl@5.1.0: + resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==} dependencies: - color-convert: 2.0.1 - - /ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} + buffer: 6.0.3 + inherits: 2.0.4 + readable-stream: 3.6.2 dev: false - /ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} - - /any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + /blake3-wasm@2.1.5: + resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} + dev: true - /anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} + /body-parser@1.20.2: + resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.11.0 + raw-body: 2.5.2 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color - /aproba@2.0.0: - resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} - dev: false + /boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - /arch@2.2.0: - resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} + /boxen@7.1.1: + resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} + engines: {node: '>=14.16'} + dependencies: + ansi-align: 3.0.1 + camelcase: 7.0.1 + chalk: 5.3.0 + cli-boxes: 3.0.0 + string-width: 5.1.2 + type-fest: 2.19.0 + widest-line: 4.0.1 + wrap-ansi: 8.1.0 dev: false - /archiver-utils@5.0.2: - resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==} - engines: {node: '>= 14'} + /bplist-parser@0.2.0: + resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} + engines: {node: '>= 5.10.0'} dependencies: - glob: 10.3.12 - graceful-fs: 4.2.11 - is-stream: 2.0.1 - lazystream: 1.0.1 - lodash: 4.17.21 - normalize-path: 3.0.0 - readable-stream: 4.5.2 + big-integer: 1.6.51 dev: false - /archiver@7.0.1: - resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==} - engines: {node: '>= 14'} + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: - archiver-utils: 5.0.2 - async: 3.2.5 - buffer-crc32: 1.0.0 - readable-stream: 4.5.2 - readdir-glob: 1.1.3 - tar-stream: 3.1.7 - zip-stream: 6.0.1 - dev: false + balanced-match: 1.0.2 + concat-map: 0.0.1 - /archy@1.0.0: - resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 - /are-we-there-yet@2.0.0: - resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} - engines: {node: '>=10'} + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} dependencies: - delegates: 1.0.0 - readable-stream: 3.6.2 - dev: false + fill-range: 7.0.1 - /arg@1.0.0: - resolution: {integrity: sha512-Wk7TEzl1KqvTGs/uyhmHO/3XLd3t1UeU4IstvPXVzGPM522cTjqjNZ99esCkcL52sjqjo8e8CTBcWhkxvGzoAw==} + /breakword@1.0.6: + resolution: {integrity: sha512-yjxDAYyK/pBvws9H4xKYpLDpYKEH6CzrBPAuXq3x18I+c/2MkVtT3qAr7Oloi6Dss9qNhPVueAAVU1CSeNDIXw==} + dependencies: + wcwidth: 1.0.1 dev: false - /arg@5.0.2: - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + /browserslist@4.21.10: + resolution: {integrity: sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001520 + electron-to-chromium: 1.4.746 + node-releases: 2.0.13 + update-browserslist-db: 1.0.11(browserslist@4.21.10) + dev: true - /argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + /browserslist@4.23.0: + resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true dependencies: - sprintf-js: 1.0.3 - dev: false + caniuse-lite: 1.0.30001612 + electron-to-chromium: 1.4.746 + node-releases: 2.0.14 + update-browserslist-db: 1.0.13(browserslist@4.23.0) - /argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + /buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + dev: true - /aria-hidden@1.2.4: - resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} - engines: {node: '>=10'} + /buffer-crc32@1.0.0: + resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} + engines: {node: '>=8.0.0'} + + /buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + /buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + requiresBuild: true dependencies: - tslib: 2.6.2 + base64-js: 1.5.1 + ieee754: 1.2.1 dev: false + optional: true - /aria-query@5.3.0: - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + /buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} dependencies: - dequal: 2.0.3 + base64-js: 1.5.1 + ieee754: 1.2.1 - /array-buffer-byte-length@1.0.1: - resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - is-array-buffer: 3.0.4 + /builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} - /array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + /builtins@1.0.3: + resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==} + dev: false - /array-includes@3.1.8: - resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} - engines: {node: '>= 0.4'} + /builtins@5.0.1: + resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-object-atoms: 1.0.0 - get-intrinsic: 1.2.4 - is-string: 1.0.7 + semver: 7.6.0 - /array-iterate@2.0.1: - resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} + /bun-types@1.1.0: + resolution: {integrity: sha512-GhMDD7TosdJzQPGUOcQD5PZshvXVxDfwGAZs2dq+eSaPsRn3iUCzvpFlsg7Q51bXVzLAUs+FWHlnmpgZ5UggIg==} + dependencies: + '@types/node': 20.11.30 + '@types/ws': 8.5.10 dev: false - /array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - - /array.prototype.findlast@1.2.5: - resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} - engines: {node: '>= 0.4'} + /bunchee@5.1.2(typescript@5.4.5): + resolution: {integrity: sha512-fOcub+z6CcCesKjVX82+B6wPTzQjtcHjrI1zcAc/acc5PRmI4fNsww7p20VxR8lctaXPrLnbuWeuhtSrZ311/Q==} + engines: {node: '>= 18.0.0'} + hasBin: true + peerDependencies: + typescript: ^4.1 || ^5.0 + peerDependenciesMeta: + typescript: + optional: true dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-errors: 1.3.0 - es-object-atoms: 1.0.0 - es-shim-unscopables: 1.0.2 + '@rollup/plugin-commonjs': 25.0.7(rollup@4.16.2) + '@rollup/plugin-json': 6.1.0(rollup@4.16.2) + '@rollup/plugin-node-resolve': 15.2.3(rollup@4.16.2) + '@rollup/plugin-replace': 5.0.5(rollup@4.16.2) + '@rollup/plugin-wasm': 6.2.2(rollup@4.16.2) + '@rollup/pluginutils': 5.1.0(rollup@4.16.2) + '@swc/core': 1.4.16(@swc/helpers@0.5.10) + '@swc/helpers': 0.5.10 + arg: 5.0.2 + clean-css: 5.3.3 + magic-string: 0.30.10 + pretty-bytes: 5.6.0 + rollup: 4.16.2 + rollup-plugin-dts: 6.1.0(rollup@4.16.2)(typescript@5.4.5) + rollup-plugin-swc3: 0.11.1(@swc/core@1.4.16)(rollup@4.16.2) + rollup-preserve-directives: 1.1.1(rollup@4.16.2) + tslib: 2.6.2 + typescript: 5.4.5 + dev: true - /array.prototype.findlastindex@1.2.5: - resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} - engines: {node: '>= 0.4'} + /bundle-name@3.0.0: + resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} + engines: {node: '>=12'} dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-errors: 1.3.0 - es-object-atoms: 1.0.0 - es-shim-unscopables: 1.0.2 + run-applescript: 5.0.0 + dev: false - /array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} - engines: {node: '>= 0.4'} + /bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-shim-unscopables: 1.0.2 + run-applescript: 7.0.0 - /array.prototype.flatmap@1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} - engines: {node: '>= 0.4'} + /bundle-require@4.0.1(esbuild@0.19.2): + resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.17' dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-shim-unscopables: 1.0.2 + esbuild: 0.19.2 + load-tsconfig: 0.2.5 + dev: true - /array.prototype.toreversed@1.1.2: - resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==} + /busboy@1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} + engines: {node: '>=10.16.0'} dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-shim-unscopables: 1.0.2 + streamsearch: 1.1.0 - /array.prototype.tosorted@1.1.3: - resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==} - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-errors: 1.3.0 - es-shim-unscopables: 1.0.2 + /bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} - /arraybuffer.prototype.slice@1.0.3: - resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} - engines: {node: '>= 0.4'} + /c12@1.10.0: + resolution: {integrity: sha512-0SsG7UDhoRWcuSvKWHaXmu5uNjDCDN3nkQLRL4Q42IlFy+ze58FcCoI3uPwINXinkz7ZinbhEgyzYFw9u9ZV8g==} dependencies: - array-buffer-byte-length: 1.0.1 - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-errors: 1.3.0 - get-intrinsic: 1.2.4 - is-array-buffer: 3.0.4 - is-shared-array-buffer: 1.0.3 + chokidar: 3.6.0 + confbox: 0.1.7 + defu: 6.1.4 + dotenv: 16.4.5 + giget: 1.2.3 + jiti: 1.21.0 + mlly: 1.6.1 + ohash: 1.1.3 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.0.3 + rc9: 2.1.1 - /arrify@1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} - engines: {node: '>=0.10.0'} - dev: false + /cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} - /as-table@1.0.55: - resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} + /cacache@18.0.2: + resolution: {integrity: sha512-r3NU8h/P+4lVUHfeRw1dtgQYar3DZMm4/cm2bZgOvrFC/su7budSOeqh52VJIC4U4iG1WWwV6vRW0znqBvxNuw==} + engines: {node: ^16.14.0 || >=18.0.0} dependencies: - printable-characters: 1.0.42 - dev: true + '@npmcli/fs': 3.1.0 + fs-minipass: 3.0.3 + glob: 10.3.12 + lru-cache: 10.0.1 + minipass: 7.0.3 + minipass-collect: 2.0.1 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + p-map: 4.0.0 + ssri: 10.0.5 + tar: 6.1.15 + unique-filename: 3.0.0 - /asn1js@3.0.5: - resolution: {integrity: sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==} - engines: {node: '>=12.0.0'} - dependencies: - pvtsutils: 1.3.5 - pvutils: 1.1.3 - tslib: 2.6.2 + /cacheable-lookup@7.0.0: + resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} + engines: {node: '>=14.16'} dev: false - /assertion-error@1.1.0: - resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + /cacheable-request@10.2.14: + resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} + engines: {node: '>=14.16'} + dependencies: + '@types/http-cache-semantics': 4.0.4 + get-stream: 6.0.1 + http-cache-semantics: 4.1.1 + keyv: 4.5.4 + mimic-response: 4.0.0 + normalize-url: 8.0.1 + responselike: 3.0.0 dev: false - /ast-types-flow@0.0.8: - resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} - dev: true + /call-bind@1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.2.1 - /ast-types@0.16.1: - resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} - engines: {node: '>=4'} + /call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} dependencies: - tslib: 2.6.2 - dev: false + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 - /astring@1.8.6: - resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} - hasBin: true + /call-me-maybe@1.0.2: + resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==} dev: false - /astro@4.5.18(@types/node@20.12.7)(typescript@5.4.5): - resolution: {integrity: sha512-iytLnUfyUneKMjIQdj79zzniByXtcmGNDobIV/gjGsatC9vAyPqeCT8TbMqfkRBMeYGs+S/wCzSoPqaaMJiQnw==} - engines: {node: '>=18.14.1', npm: '>=6.14.0'} - hasBin: true - dependencies: - '@astrojs/compiler': 2.7.1 - '@astrojs/internal-helpers': 0.4.0 - '@astrojs/markdown-remark': 5.0.0 - '@astrojs/telemetry': 3.0.4 - '@babel/core': 7.24.4 - '@babel/generator': 7.24.4 - '@babel/parser': 7.24.4 - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.4) - '@babel/traverse': 7.24.1 - '@babel/types': 7.24.0 - '@types/babel__core': 7.20.5 - acorn: 8.11.3 - aria-query: 5.3.0 - axobject-query: 4.0.0 - boxen: 7.1.1 - chokidar: 3.6.0 - ci-info: 4.0.0 - clsx: 2.1.0 - common-ancestor-path: 1.0.1 - cookie: 0.6.0 - cssesc: 3.0.0 - debug: 4.3.4 - deterministic-object-hash: 2.0.2 - devalue: 4.3.2 - diff: 5.2.0 - dlv: 1.1.3 - dset: 3.1.3 - es-module-lexer: 1.5.0 - esbuild: 0.19.12 - estree-walker: 3.0.3 - execa: 8.0.1 - fast-glob: 3.3.2 - flattie: 1.1.1 - github-slugger: 2.0.0 - gray-matter: 4.0.3 - html-escaper: 3.0.3 - http-cache-semantics: 4.1.1 - js-yaml: 4.1.0 - kleur: 4.1.5 - magic-string: 0.30.9 - mime: 3.0.0 - ora: 7.0.1 - p-limit: 5.0.0 - p-queue: 8.0.1 - path-to-regexp: 6.2.2 - preferred-pm: 3.1.3 - prompts: 2.4.2 - rehype: 13.0.1 - resolve: 1.22.8 - semver: 7.6.0 - shiki: 1.3.0 - string-width: 7.1.0 - strip-ansi: 7.1.0 - tsconfck: 3.0.3(typescript@5.4.5) - unist-util-visit: 5.0.0 - vfile: 6.0.1 - vite: 5.2.8(@types/node@20.12.7) - vitefu: 0.2.5(vite@5.2.8) - which-pm: 2.1.1 - yargs-parser: 21.1.1 - zod: 3.22.4 - zod-to-json-schema: 3.22.5(zod@3.22.4) - optionalDependencies: - sharp: 0.32.6 - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - - typescript - dev: false + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} - /async-sema@3.1.1: - resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} + /camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + + /camelcase-keys@6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + map-obj: 4.3.0 + quick-lru: 4.0.1 dev: false - /async@3.2.5: - resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} + /camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} dev: false - /asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + /camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} - /atomic-sleep@1.0.0: - resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} - engines: {node: '>=8.0.0'} + /camelcase@7.0.1: + resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} + engines: {node: '>=14.16'} - /available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} + /caniuse-api@3.0.0: + resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} dependencies: - possible-typed-array-names: 1.0.0 + browserslist: 4.23.0 + caniuse-lite: 1.0.30001520 + lodash.memoize: 4.1.2 + lodash.uniq: 4.5.0 - /avvio@8.3.0: - resolution: {integrity: sha512-VBVH0jubFr9LdFASy/vNtm5giTrnbVquWBhT0fyizuNK2rQ7e7ONU2plZQWUNqtE1EmxFEb+kbSkFRkstiaS9Q==} + /caniuse-lite@1.0.30001520: + resolution: {integrity: sha512-tahF5O9EiiTzwTUqAeFjIZbn4Dnqxzz7ktrgGlMYNLH43Ul26IgTMH/zvL3DG0lZxBYnlT04axvInszUsZULdA==} + + /caniuse-lite@1.0.30001612: + resolution: {integrity: sha512-lFgnZ07UhaCcsSZgWW0K5j4e69dK1u/ltrL9lTUiFOwNHs12S3UMIEYgBV0Z6C6hRDev7iRnMzzYmKabYdXF9g==} + + /capnp-ts@0.7.0: + resolution: {integrity: sha512-XKxXAC3HVPv7r674zP0VC3RTXz+/JKhfyw94ljvF80yynK6VkTnqE3jMuN8b3dUVmmc43TjyxjW4KTsmB3c86g==} dependencies: - '@fastify/error': 3.4.1 - archy: 1.0.0 debug: 4.3.4 - fastq: 1.17.1 + tslib: 2.6.2 transitivePeerDependencies: - supports-color - - /axe-core@4.7.0: - resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} - engines: {node: '>=4'} dev: true - /axios@1.6.8: - resolution: {integrity: sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==} - dependencies: - follow-redirects: 1.15.6 - form-data: 4.0.0 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug + /ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + dev: false - /axobject-query@3.2.1: - resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} + /chai@4.4.1: + resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} + engines: {node: '>=4'} dependencies: - dequal: 2.0.3 - dev: true + assertion-error: 1.1.0 + check-error: 1.0.3 + deep-eql: 4.1.3 + get-func-name: 2.0.2 + loupe: 2.3.6 + pathval: 1.1.1 + type-detect: 4.0.8 - /axobject-query@4.0.0: - resolution: {integrity: sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==} + /chalk@2.3.0: + resolution: {integrity: sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==} + engines: {node: '>=4'} dependencies: - dequal: 2.0.3 - - /b4a@1.6.6: - resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==} - requiresBuild: true + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 4.5.0 dev: false - /babel-plugin-jsx-dom-expressions@0.37.19(@babel/core@7.24.4): - resolution: {integrity: sha512-nef2eLpWBgFggwrYwN6O3dNKn3RnlX6n4DIamNEAeHwp03kVQUaKUiLaEPnHPJHwxie1KwPelyIY9QikU03vUA==} - peerDependencies: - '@babel/core': ^7.20.12 + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} dependencies: - '@babel/core': 7.24.4 - '@babel/helper-module-imports': 7.18.6 - '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.4) - '@babel/types': 7.24.0 - html-entities: 2.3.3 - validate-html-nesting: 1.2.2 + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 - /babel-preset-solid@1.8.16(@babel/core@7.24.4): - resolution: {integrity: sha512-b4HFg/xaKM+H3Tu5iUlZ/43TJOZnhi85xrm3JrXDQ0s4cmtmU37bXXYzb2m55G4QKiFjxLAjvb7sUorPrAMs5w==} - peerDependencies: - '@babel/core': ^7.0.0 + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} dependencies: - '@babel/core': 7.24.4 - babel-plugin-jsx-dom-expressions: 0.37.19(@babel/core@7.24.4) - - /bail@2.0.2: - resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} - dev: false + ansi-styles: 4.3.0 + supports-color: 7.2.0 - /balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + /chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - /bare-events@2.2.2: - resolution: {integrity: sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ==} - requiresBuild: true + /character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} dev: false - optional: true - /bare-fs@2.2.3: - resolution: {integrity: sha512-amG72llr9pstfXOBOHve1WjiuKKAMnebcmMbPWDZ7BCevAoJLpugjuAPRsDINEyjT0a6tbaVx3DctkXIRbLuJw==} - requiresBuild: true - dependencies: - bare-events: 2.2.2 - bare-path: 2.1.1 - streamx: 2.16.1 + /character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} dev: false - optional: true - /bare-os@2.2.1: - resolution: {integrity: sha512-OwPyHgBBMkhC29Hl3O4/YfxW9n7mdTr2+SsO29XBWKKJsbgj3mnorDB80r5TiCQgQstgE5ga1qNYrpes6NvX2w==} - requiresBuild: true + /character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} dev: false - optional: true - /bare-path@2.1.1: - resolution: {integrity: sha512-OHM+iwRDRMDBsSW7kl3dO62JyHdBKO3B25FB9vNQBPcGHMo4+eA8Yj41Lfbk3pS/seDY+siNge0LdRTulAau/A==} - requiresBuild: true - dependencies: - bare-os: 2.2.1 + /character-reference-invalid@2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} dev: false - optional: true - /base-64@1.0.0: - resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} + /chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} dev: false - /base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + /check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + dependencies: + get-func-name: 2.0.2 - /better-path-resolve@1.0.0: - resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} - engines: {node: '>=4'} + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} dependencies: - is-windows: 1.0.2 - dev: false + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 - /better-sqlite3@9.5.0: - resolution: {integrity: sha512-01qVcM4gPNwE+PX7ARNiHINwzVuD6nx0gdldaAAcu+MrzyIAukQ31ZDKEpzRO/CNA9sHpxoTZ8rdjoyAin4dyg==} - requiresBuild: true + /chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} dependencies: - bindings: 1.5.0 - prebuild-install: 7.1.2 + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + /chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + requiresBuild: true dev: false + optional: true - /big-integer@1.6.52: - resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} - engines: {node: '>=0.6'} + /chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + + /ci-info@3.8.0: + resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} + engines: {node: '>=8'} dev: false - /binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + /ci-info@4.0.0: + resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} engines: {node: '>=8'} - /bindings@1.5.0: - resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + /citty@0.1.6: + resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} dependencies: - file-uri-to-path: 1.0.0 - dev: false + consola: 3.2.3 - /bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + /class-variance-authority@0.7.0: + resolution: {integrity: sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==} dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.2 + clsx: 2.0.0 dev: false - /bl@5.1.0: - resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==} + /clean-css@5.3.3: + resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} + engines: {node: '>= 10.0'} dependencies: - buffer: 6.0.3 - inherits: 2.0.4 - readable-stream: 3.6.2 + source-map: 0.6.1 + dev: true + + /clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + + /clear@0.1.0: + resolution: {integrity: sha512-qMjRnoL+JDPJHeLePZJuao6+8orzHMGP04A8CdwCNsKhRbOnKRjefxONR7bwILT3MHecxKBjHkKL/tkZ8r4Uzw==} + + /cli-boxes@3.0.0: + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} + engines: {node: '>=10'} dev: false - /blake3-wasm@2.1.5: - resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} + /cli-color@2.0.4: + resolution: {integrity: sha512-zlnpg0jNcibNrO7GG9IeHH7maWFeCz+Ja1wx/7tZNU5ASSSSZ+/qZciM0/LHCYxSdqv5h2sdbQ/PXYdOuetXvA==} + engines: {node: '>=0.10'} + dependencies: + d: 1.0.2 + es5-ext: 0.10.64 + es6-iterator: 2.0.3 + memoizee: 0.4.15 + timers-ext: 0.1.7 dev: true - /body-parser@1.20.2: - resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + /cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - bytes: 3.1.2 - content-type: 1.0.5 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.11.0 - raw-body: 2.5.2 - type-is: 1.6.18 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color + restore-cursor: 4.0.0 + dev: false - /boxen@7.1.1: - resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} - engines: {node: '>=14.16'} - dependencies: - ansi-align: 3.0.1 - camelcase: 7.0.1 - chalk: 5.3.0 - cli-boxes: 3.0.0 - string-width: 5.1.2 - type-fest: 2.19.0 - widest-line: 4.0.1 - wrap-ansi: 8.1.0 + /cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} dev: false - /bplist-parser@0.2.0: - resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} - engines: {node: '>= 5.10.0'} - dependencies: - big-integer: 1.6.52 + /cli-width@4.1.0: + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} + engines: {node: '>= 12'} dev: false - /brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 + /client-only@0.0.1: + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} - /brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + /clipboardy@1.2.2: + resolution: {integrity: sha512-16KrBOV7bHmHdxcQiCvfUFYVFyEah4FI8vYT1Fr7CGSA4G+xBWMEfUEQJS1hxeHGtI9ju1Bzs9uXSbj5HZKArw==} + engines: {node: '>=4'} dependencies: - balanced-match: 1.0.2 + arch: 2.2.0 + execa: 0.8.0 + dev: false - /braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} + /clipboardy@4.0.0: + resolution: {integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==} + engines: {node: '>=18'} dependencies: - fill-range: 7.0.1 + execa: 8.0.1 + is-wsl: 3.1.0 + is64bit: 2.0.0 - /breakword@1.0.6: - resolution: {integrity: sha512-yjxDAYyK/pBvws9H4xKYpLDpYKEH6CzrBPAuXq3x18I+c/2MkVtT3qAr7Oloi6Dss9qNhPVueAAVU1CSeNDIXw==} + /cliui@6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} dependencies: - wcwidth: 1.0.1 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 dev: false - /browserslist@4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} dependencies: - caniuse-lite: 1.0.30001608 - electron-to-chromium: 1.4.733 - node-releases: 2.0.14 - update-browserslist-db: 1.0.13(browserslist@4.23.0) - - /buffer-crc32@0.2.13: - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} - dev: true + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 - /buffer-crc32@1.0.0: - resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} - engines: {node: '>=8.0.0'} + /clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} dev: false - /buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - - /buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 + /clsx@2.0.0: + resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==} + engines: {node: '>=6'} dev: false - /buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - - /builtin-modules@3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + /clsx@2.1.0: + resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==} engines: {node: '>=6'} - - /builtins@1.0.3: - resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==} dev: false - /bun-types@1.0.36: - resolution: {integrity: sha512-gaIb1SyhB0JZfIEg73/kSFhqolUqJXC68peguhXGwqr27HuvI8nkD0LTIHp/1DY4cNadfXHYgYrZIWX7oEoXlg==} + /cluster-key-slot@1.1.2: + resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} + engines: {node: '>=0.10.0'} + + /cmdk@0.2.1(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-U6//9lQ6JvT47+6OF6Gi8BvkxYQ8SCRRSKIJkthIMsFsLZRG0cKvTtuTaefyIKMQb8rvvXy0wGdpTNq/jPtm+g==} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 dependencies: - '@types/node': 20.11.30 - '@types/ws': 8.5.10 + '@radix-ui/react-dialog': 1.0.0(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - '@types/react' dev: false - /bunchee@5.1.2(typescript@5.4.5): - resolution: {integrity: sha512-fOcub+z6CcCesKjVX82+B6wPTzQjtcHjrI1zcAc/acc5PRmI4fNsww7p20VxR8lctaXPrLnbuWeuhtSrZ311/Q==} - engines: {node: '>= 18.0.0'} - hasBin: true - peerDependencies: - typescript: ^4.1 || ^5.0 - peerDependenciesMeta: - typescript: - optional: true + /code-red@1.0.4: + resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} dependencies: - '@rollup/plugin-commonjs': 25.0.7(rollup@4.14.1) - '@rollup/plugin-json': 6.1.0(rollup@4.14.1) - '@rollup/plugin-node-resolve': 15.2.3(rollup@4.14.1) - '@rollup/plugin-replace': 5.0.5(rollup@4.14.1) - '@rollup/plugin-wasm': 6.2.2(rollup@4.14.1) - '@rollup/pluginutils': 5.1.0(rollup@4.14.1) - '@swc/core': 1.4.13(@swc/helpers@0.5.8) - '@swc/helpers': 0.5.8 - arg: 5.0.2 - clean-css: 5.3.3 - magic-string: 0.30.9 - pretty-bytes: 5.6.0 - rollup: 4.14.1 - rollup-plugin-dts: 6.1.0(rollup@4.14.1)(typescript@5.4.5) - rollup-plugin-swc3: 0.11.0(@swc/core@1.4.13)(rollup@4.14.1) - rollup-preserve-directives: 1.1.1(rollup@4.14.1) - tslib: 2.6.2 - typescript: 5.4.5 + '@jridgewell/sourcemap-codec': 1.4.15 + '@types/estree': 1.0.1 + acorn: 8.11.3 + estree-walker: 3.0.3 + periscopic: 3.1.0 dev: true - /bundle-name@3.0.0: - resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} - engines: {node: '>=12'} + /codemirror@6.0.1(@lezer/common@1.2.1): + resolution: {integrity: sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==} dependencies: - run-applescript: 5.0.0 + '@codemirror/autocomplete': 6.16.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.3)(@lezer/common@1.2.1) + '@codemirror/commands': 6.5.0 + '@codemirror/language': 6.10.1 + '@codemirror/lint': 6.5.0 + '@codemirror/search': 6.5.6 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.26.3 + transitivePeerDependencies: + - '@lezer/common' dev: false - /bundle-require@4.0.2(esbuild@0.19.12): - resolution: {integrity: sha512-jwzPOChofl67PSTW2SGubV9HBQAhhR2i6nskiOThauo9dzwDUgOWQScFVaJkjEfYX+UXiD+LEx8EblQMc2wIag==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - peerDependencies: - esbuild: '>=0.17' + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: - esbuild: 0.19.12 - load-tsconfig: 0.2.5 - dev: true + color-name: 1.1.3 - /busboy@1.6.0: - resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} - engines: {node: '>=10.16.0'} + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} dependencies: - streamsearch: 1.1.0 + color-name: 1.1.4 - /bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - /c12@1.10.0: - resolution: {integrity: sha512-0SsG7UDhoRWcuSvKWHaXmu5uNjDCDN3nkQLRL4Q42IlFy+ze58FcCoI3uPwINXinkz7ZinbhEgyzYFw9u9ZV8g==} + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + /color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + requiresBuild: true dependencies: - chokidar: 3.6.0 - confbox: 0.1.6 - defu: 6.1.4 - dotenv: 16.4.5 - giget: 1.2.3 - jiti: 1.21.0 - mlly: 1.6.1 - ohash: 1.1.3 - pathe: 1.1.2 - perfect-debounce: 1.0.0 - pkg-types: 1.0.3 - rc9: 2.1.2 + color-name: 1.1.4 + simple-swizzle: 0.2.2 dev: false + optional: true - /cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} - - /cacheable-lookup@7.0.0: - resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} - engines: {node: '>=14.16'} - dev: false + /color-support@1.1.3: + resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} + hasBin: true - /cacheable-request@10.2.14: - resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} - engines: {node: '>=14.16'} + /color@4.2.3: + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} + requiresBuild: true dependencies: - '@types/http-cache-semantics': 4.0.4 - get-stream: 6.0.1 - http-cache-semantics: 4.1.1 - keyv: 4.5.4 - mimic-response: 4.0.0 - normalize-url: 8.0.1 - responselike: 3.0.0 + color-convert: 2.0.1 + color-string: 1.9.1 dev: false + optional: true - /call-bind@1.0.7: - resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} - engines: {node: '>= 0.4'} + /colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + + /colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} dependencies: - es-define-property: 1.0.0 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.2.4 - set-function-length: 1.2.2 + delayed-stream: 1.0.0 - /call-me-maybe@1.0.2: - resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==} + /comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} dev: false - /callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} + /commander@12.0.0: + resolution: {integrity: sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==} + engines: {node: '>=18'} + dev: true - /camelcase-css@2.0.1: - resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + /commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + /commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} - /camelcase-keys@6.2.2: - resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} - engines: {node: '>=8'} - dependencies: - camelcase: 5.3.1 - map-obj: 4.3.0 - quick-lru: 4.0.1 - dev: false + /commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} - /camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - dev: false + /commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} - /camelcase@7.0.1: - resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} - engines: {node: '>=14.16'} + /commander@9.5.0: + resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} + engines: {node: ^12.20.0 || >=14} + dev: true + + /common-ancestor-path@1.0.1: + resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} + dev: false - /caniuse-lite@1.0.30001608: - resolution: {integrity: sha512-cjUJTQkk9fQlJR2s4HMuPMvTiRggl0rAVMtthQuyOlDWuqHXqN8azLq+pi8B2TjwKJ32diHjUqRIKeFX4z1FoA==} + /commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - /capnp-ts@0.7.0: - resolution: {integrity: sha512-XKxXAC3HVPv7r674zP0VC3RTXz+/JKhfyw94ljvF80yynK6VkTnqE3jMuN8b3dUVmmc43TjyxjW4KTsmB3c86g==} + /compress-commons@6.0.2: + resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==} + engines: {node: '>= 14'} dependencies: - debug: 4.3.4 - tslib: 2.6.2 - transitivePeerDependencies: - - supports-color - dev: true + crc-32: 1.2.2 + crc32-stream: 6.0.0 + is-stream: 2.0.1 + normalize-path: 3.0.0 + readable-stream: 4.5.2 - /ccount@2.0.1: - resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + /compute-scroll-into-view@3.0.3: + resolution: {integrity: sha512-nadqwNxghAGTamwIqQSG433W6OADZx2vCo3UXHNrzTRHK/htu+7+L0zhjEoaeaQVNAi3YgqWDv8+tzf0hRfR+A==} dev: false - /chai@4.4.1: - resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} - engines: {node: '>=4'} + /computeds@0.0.1: + resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} + dev: true + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + /concurrently@8.2.2: + resolution: {integrity: sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==} + engines: {node: ^14.13.0 || >=16.0.0} + hasBin: true dependencies: - assertion-error: 1.1.0 - check-error: 1.0.3 - deep-eql: 4.1.3 - get-func-name: 2.0.2 - loupe: 2.3.7 - pathval: 1.1.1 - type-detect: 4.0.8 - dev: false + chalk: 4.1.2 + date-fns: 2.30.0 + lodash: 4.17.21 + rxjs: 7.8.1 + shell-quote: 1.8.1 + spawn-command: 0.0.2 + supports-color: 8.1.1 + tree-kill: 1.2.2 + yargs: 17.7.2 - /chalk@2.3.0: - resolution: {integrity: sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==} - engines: {node: '>=4'} + /confbox@0.1.7: + resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} + + /config-chain@1.1.13: + resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 4.5.0 + ini: 1.3.8 + proto-list: 1.2.4 dev: false - /chalk@2.4.2: - 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 + /consola@3.2.3: + resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} + engines: {node: ^14.18.0 || >=16.10.0} - /chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} + /console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + + /content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 + safe-buffer: 5.2.1 - /chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + /content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} - /character-entities-html4@2.1.0: - resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} - dev: false + /convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + dev: true + + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + /cookie-es@1.0.0: + resolution: {integrity: sha512-mWYvfOLrfEc996hlKcdABeIiPHUPC6DM2QYZdGGOvhOTbA3tjm2eBwqlJpoFdjC89NI4Qt6h0Pu06Mp+1Pj5OQ==} + + /cookie-es@1.1.0: + resolution: {integrity: sha512-L2rLOcK0wzWSfSDA33YR+PUHDG10a8px7rUHKWbGLP4YfbsMed2KFUw5fczvDPbT98DDe3LEzviswl810apTEw==} + + /cookie-signature@1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + + /cookie@0.5.0: + resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} + engines: {node: '>= 0.6'} - /character-entities-legacy@3.0.0: - resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} - dev: false + /cookie@0.6.0: + resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} + engines: {node: '>= 0.6'} - /character-entities@2.0.2: - resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} - dev: false + /copy-anything@3.0.5: + resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} + engines: {node: '>=12.13'} + dependencies: + is-what: 4.1.15 + dev: true - /character-reference-invalid@2.0.1: - resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} - dev: false + /core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - /chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + /cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 dev: false - /check-error@1.0.3: - resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + /cose-base@1.0.3: + resolution: {integrity: sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==} dependencies: - get-func-name: 2.0.2 + layout-base: 1.0.2 dev: false - /chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} + /crc-32@1.2.2: + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} + hasBin: true + + /crc32-stream@6.0.0: + resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==} + engines: {node: '>= 14'} dependencies: - anymatch: 3.1.3 - braces: 3.0.2 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 + crc-32: 1.2.2 + readable-stream: 4.5.2 - /chownr@1.1.4: - resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} - dev: false + /create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - /chownr@2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} + /crelt@1.0.6: + resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==} dev: false - /ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} - engines: {node: '>=8'} - dev: false + /croner@8.0.2: + resolution: {integrity: sha512-HgSdlSUX8mIgDTTiQpWUP4qY4IFRMsduPCYdca34Pelt8MVdxdaDOzreFtCscA6R+cRZd7UbD1CD3uyx6J3X1A==} + engines: {node: '>=18.0'} - /ci-info@4.0.0: - resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} - engines: {node: '>=8'} - dev: false + /cronstrue@2.49.0: + resolution: {integrity: sha512-FWZBqdStQaPR8ZTBQGALh1EK9Hl1HcG70dyGvD1rKLPafFO3H73o38dz/e8YkIlbLn3JxmBI/f6Doe3Nh+DcEQ==} + hasBin: true - /citty@0.1.6: - resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} + /cross-spawn@5.1.0: + resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} dependencies: - consola: 3.2.3 + lru-cache: 4.1.5 + shebang-command: 1.2.0 + which: 1.3.1 dev: false - /class-variance-authority@0.7.0: - resolution: {integrity: sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==} + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} dependencies: - clsx: 2.0.0 - dev: false + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 - /clean-css@5.3.3: - resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} - engines: {node: '>= 10.0'} + /crossws@0.2.4: + resolution: {integrity: sha512-DAxroI2uSOgUKLz00NX6A8U/8EE3SZHmIND+10jkVSaypvyt57J5JEOxAQOL6lQxyzi/wZbTIwssU1uy69h5Vg==} + peerDependencies: + uWebSockets.js: '*' + peerDependenciesMeta: + uWebSockets.js: + optional: true + + /css-declaration-sorter@6.4.1(postcss@8.4.38): + resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} + engines: {node: ^10 || ^12 || >=14} + peerDependencies: + postcss: ^8.0.9 dependencies: - source-map: 0.6.1 + postcss: 8.4.38 dev: true - /cli-boxes@3.0.0: - resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} - engines: {node: '>=10'} - dev: false + /css-declaration-sorter@7.2.0(postcss@8.4.38): + resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.0.9 + dependencies: + postcss: 8.4.38 - /cli-color@2.0.4: - resolution: {integrity: sha512-zlnpg0jNcibNrO7GG9IeHH7maWFeCz+Ja1wx/7tZNU5ASSSSZ+/qZciM0/LHCYxSdqv5h2sdbQ/PXYdOuetXvA==} - engines: {node: '>=0.10'} + /css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} dependencies: - d: 1.0.2 - es5-ext: 0.10.64 - es6-iterator: 2.0.3 - memoizee: 0.4.15 - timers-ext: 0.1.7 - dev: true + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 5.0.3 + domutils: 3.1.0 + nth-check: 2.1.1 - /cli-cursor@4.0.0: - resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /css-styled@1.0.8: + resolution: {integrity: sha512-tCpP7kLRI8dI95rCh3Syl7I+v7PP+2JYOzWkl0bUEoSbJM+u8ITbutjlQVf0NC2/g4ULROJPi16sfwDIO8/84g==} dependencies: - restore-cursor: 4.0.0 + '@daybrush/utils': 1.13.0 dev: false - /cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} + /css-to-mat@1.1.1: + resolution: {integrity: sha512-kvpxFYZb27jRd2vium35G7q5XZ2WJ9rWjDUMNT36M3Hc41qCrLXFM5iEKMGXcrPsKfXEN+8l/riB4QzwwwiEyQ==} + dependencies: + '@daybrush/utils': 1.13.0 + '@scena/matrix': 1.1.1 dev: false - /cli-width@4.1.0: - resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} - engines: {node: '>= 12'} - dev: false + /css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + dependencies: + mdn-data: 2.0.28 + source-map-js: 1.0.2 - /client-only@0.0.1: - resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + /css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.0.2 - /clipboardy@1.2.2: - resolution: {integrity: sha512-16KrBOV7bHmHdxcQiCvfUFYVFyEah4FI8vYT1Fr7CGSA4G+xBWMEfUEQJS1hxeHGtI9ju1Bzs9uXSbj5HZKArw==} + /css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + + /cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} + hasBin: true + + /cssnano-preset-default@6.0.1(postcss@8.4.38): + resolution: {integrity: sha512-7VzyFZ5zEB1+l1nToKyrRkuaJIx0zi/1npjvZfbBwbtNTzhLtlvYraK/7/uqmX2Wb2aQtd983uuGw79jAjLSuQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 dependencies: - arch: 2.2.0 - execa: 0.8.0 - dev: false + css-declaration-sorter: 6.4.1(postcss@8.4.38) + cssnano-utils: 4.0.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-calc: 9.0.1(postcss@8.4.38) + postcss-colormin: 6.0.0(postcss@8.4.38) + postcss-convert-values: 6.0.0(postcss@8.4.38) + postcss-discard-comments: 6.0.0(postcss@8.4.38) + postcss-discard-duplicates: 6.0.0(postcss@8.4.38) + postcss-discard-empty: 6.0.0(postcss@8.4.38) + postcss-discard-overridden: 6.0.0(postcss@8.4.38) + postcss-merge-longhand: 6.0.0(postcss@8.4.38) + postcss-merge-rules: 6.0.1(postcss@8.4.38) + postcss-minify-font-values: 6.0.0(postcss@8.4.38) + postcss-minify-gradients: 6.0.0(postcss@8.4.38) + postcss-minify-params: 6.0.0(postcss@8.4.38) + postcss-minify-selectors: 6.0.0(postcss@8.4.38) + postcss-normalize-charset: 6.0.0(postcss@8.4.38) + postcss-normalize-display-values: 6.0.0(postcss@8.4.38) + postcss-normalize-positions: 6.0.0(postcss@8.4.38) + postcss-normalize-repeat-style: 6.0.0(postcss@8.4.38) + postcss-normalize-string: 6.0.0(postcss@8.4.38) + postcss-normalize-timing-functions: 6.0.0(postcss@8.4.38) + postcss-normalize-unicode: 6.0.0(postcss@8.4.38) + postcss-normalize-url: 6.0.0(postcss@8.4.38) + postcss-normalize-whitespace: 6.0.0(postcss@8.4.38) + postcss-ordered-values: 6.0.0(postcss@8.4.38) + postcss-reduce-initial: 6.0.0(postcss@8.4.38) + postcss-reduce-transforms: 6.0.0(postcss@8.4.38) + postcss-svgo: 6.0.0(postcss@8.4.38) + postcss-unique-selectors: 6.0.0(postcss@8.4.38) + dev: true - /clipboardy@4.0.0: - resolution: {integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==} - engines: {node: '>=18'} + /cssnano-preset-default@6.1.2(postcss@8.4.38): + resolution: {integrity: sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 dependencies: - execa: 8.0.1 - is-wsl: 3.1.0 - is64bit: 2.0.0 - dev: false + browserslist: 4.23.0 + css-declaration-sorter: 7.2.0(postcss@8.4.38) + cssnano-utils: 4.0.2(postcss@8.4.38) + postcss: 8.4.38 + postcss-calc: 9.0.1(postcss@8.4.38) + postcss-colormin: 6.1.0(postcss@8.4.38) + postcss-convert-values: 6.1.0(postcss@8.4.38) + postcss-discard-comments: 6.0.2(postcss@8.4.38) + postcss-discard-duplicates: 6.0.3(postcss@8.4.38) + postcss-discard-empty: 6.0.3(postcss@8.4.38) + postcss-discard-overridden: 6.0.2(postcss@8.4.38) + postcss-merge-longhand: 6.0.5(postcss@8.4.38) + postcss-merge-rules: 6.1.1(postcss@8.4.38) + postcss-minify-font-values: 6.1.0(postcss@8.4.38) + postcss-minify-gradients: 6.0.3(postcss@8.4.38) + postcss-minify-params: 6.1.0(postcss@8.4.38) + postcss-minify-selectors: 6.0.4(postcss@8.4.38) + postcss-normalize-charset: 6.0.2(postcss@8.4.38) + postcss-normalize-display-values: 6.0.2(postcss@8.4.38) + postcss-normalize-positions: 6.0.2(postcss@8.4.38) + postcss-normalize-repeat-style: 6.0.2(postcss@8.4.38) + postcss-normalize-string: 6.0.2(postcss@8.4.38) + postcss-normalize-timing-functions: 6.0.2(postcss@8.4.38) + postcss-normalize-unicode: 6.1.0(postcss@8.4.38) + postcss-normalize-url: 6.0.2(postcss@8.4.38) + postcss-normalize-whitespace: 6.0.2(postcss@8.4.38) + postcss-ordered-values: 6.0.2(postcss@8.4.38) + postcss-reduce-initial: 6.1.0(postcss@8.4.38) + postcss-reduce-transforms: 6.0.2(postcss@8.4.38) + postcss-svgo: 6.0.3(postcss@8.4.38) + postcss-unique-selectors: 6.0.4(postcss@8.4.38) + + /cssnano-utils@4.0.0(postcss@8.4.38): + resolution: {integrity: sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.38 + dev: true - /cliui@6.0.0: - resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + /cssnano-utils@4.0.2(postcss@8.4.38): + resolution: {integrity: sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 6.2.0 - dev: false + postcss: 8.4.38 - /cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} + /cssnano@6.0.1(postcss@8.4.38): + resolution: {integrity: sha512-fVO1JdJ0LSdIGJq68eIxOqFpIJrZqXUsBt8fkrBcztCQqAjQD51OhZp7tc0ImcbwXD4k7ny84QTV90nZhmqbkg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 + cssnano-preset-default: 6.0.1(postcss@8.4.38) + lilconfig: 2.1.0 + postcss: 8.4.38 + dev: true - /clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} - dev: false + /cssnano@6.1.2(postcss@8.4.38): + resolution: {integrity: sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + cssnano-preset-default: 6.1.2(postcss@8.4.38) + lilconfig: 3.1.1 + postcss: 8.4.38 - /clsx@2.0.0: - resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==} - engines: {node: '>=6'} - dev: false + /csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + dependencies: + css-tree: 2.2.1 - /clsx@2.1.0: - resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==} - engines: {node: '>=6'} + /csstype@3.1.1: + resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} dev: false - /cluster-key-slot@1.1.2: - resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} - engines: {node: '>=0.10.0'} - dev: false + /csstype@3.1.2: + resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} - /cmdk@0.2.1(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-U6//9lQ6JvT47+6OF6Gi8BvkxYQ8SCRRSKIJkthIMsFsLZRG0cKvTtuTaefyIKMQb8rvvXy0wGdpTNq/jPtm+g==} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - dependencies: - '@radix-ui/react-dialog': 1.0.0(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - transitivePeerDependencies: - - '@types/react' + /csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + /csv-generate@3.4.3: + resolution: {integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==} dev: false - /code-red@1.0.4: - resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - '@types/estree': 1.0.5 - acorn: 8.11.3 - estree-walker: 3.0.3 - periscopic: 3.1.0 - dev: true + /csv-parse@4.16.3: + resolution: {integrity: sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==} + dev: false - /codemirror@6.0.1(@lezer/common@1.2.1): - resolution: {integrity: sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==} - dependencies: - '@codemirror/autocomplete': 6.15.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.2)(@lezer/common@1.2.1) - '@codemirror/commands': 6.3.3 - '@codemirror/language': 6.10.1 - '@codemirror/lint': 6.5.0 - '@codemirror/search': 6.5.6 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.26.2 - transitivePeerDependencies: - - '@lezer/common' + /csv-stringify@5.6.5: + resolution: {integrity: sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==} dev: false - /color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + /csv@5.5.3: + resolution: {integrity: sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==} + engines: {node: '>= 0.1.90'} dependencies: - color-name: 1.1.3 + csv-generate: 3.4.3 + csv-parse: 4.16.3 + csv-stringify: 5.6.5 + stream-transform: 2.1.3 + dev: false - /color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} + /cva@1.0.0-beta.1(typescript@5.4.5): + resolution: {integrity: sha512-gznFqTgERU9q4wg7jfgqtt34+RUt9S5t0xDAAEuDwQEAXEgjdDkKXpLLNjwSxsB4Ln/sqWJEH7yhE8Ny0mxd0w==} + peerDependencies: + typescript: '>= 4.5.5 < 6' + peerDependenciesMeta: + typescript: + optional: true dependencies: - color-name: 1.1.4 - - /color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - - /color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + clsx: 2.0.0 + typescript: 5.4.5 + dev: false - /color-string@1.9.1: - resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} - requiresBuild: true + /cytoscape-cose-bilkent@4.1.0(cytoscape@3.29.0): + resolution: {integrity: sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==} + peerDependencies: + cytoscape: ^3.2.0 dependencies: - color-name: 1.1.4 - simple-swizzle: 0.2.2 + cose-base: 1.0.3 + cytoscape: 3.29.0 dev: false - optional: true - /color-support@1.1.3: - resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} - hasBin: true + /cytoscape@3.29.0: + resolution: {integrity: sha512-ADqhlrCKhhQF8s/s3hTpvVAIyWwsfgFI/hD2vhAXc2ndncJFVZaq3/uBkDIhf4RrNwPw93vUarW36x6rFbUk0Q==} + engines: {node: '>=0.10'} dev: false - /color@4.2.3: - resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} - engines: {node: '>=12.5.0'} - requiresBuild: true + /d3-array@2.12.1: + resolution: {integrity: sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==} dependencies: - color-convert: 2.0.1 - color-string: 1.9.1 + internmap: 1.0.1 dev: false - optional: true - /combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} + /d3-array@3.2.4: + resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} + engines: {node: '>=12'} dependencies: - delayed-stream: 1.0.0 - - /comma-separated-tokens@2.0.3: - resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + internmap: 2.0.3 dev: false - /commander@12.0.0: - resolution: {integrity: sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==} - engines: {node: '>=18'} - dev: true + /d3-axis@3.0.0: + resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==} + engines: {node: '>=12'} + dev: false - /commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + /d3-brush@3.0.0: + resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==} + engines: {node: '>=12'} + dependencies: + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-transition: 3.0.1(d3-selection@3.0.0) dev: false - /commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} + /d3-chord@3.0.1: + resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==} + engines: {node: '>=12'} + dependencies: + d3-path: 3.1.0 + dev: false - /commander@7.2.0: - resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} - engines: {node: '>= 10'} + /d3-color@3.1.0: + resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} + engines: {node: '>=12'} dev: false - /commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} - engines: {node: '>= 12'} + /d3-contour@4.0.2: + resolution: {integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==} + engines: {node: '>=12'} + dependencies: + d3-array: 3.2.4 dev: false - /commander@9.5.0: - resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} - engines: {node: ^12.20.0 || >=14} - dev: true + /d3-delaunay@6.0.4: + resolution: {integrity: sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==} + engines: {node: '>=12'} + dependencies: + delaunator: 5.0.0 + dev: false - /common-ancestor-path@1.0.1: - resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} + /d3-dispatch@3.0.1: + resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} + engines: {node: '>=12'} dev: false - /commondir@1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + /d3-drag@3.0.0: + resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} + engines: {node: '>=12'} + dependencies: + d3-dispatch: 3.0.1 + d3-selection: 3.0.0 + dev: false - /compress-commons@6.0.2: - resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==} - engines: {node: '>= 14'} + /d3-dsv@3.0.1: + resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} + engines: {node: '>=12'} + hasBin: true dependencies: - crc-32: 1.2.2 - crc32-stream: 6.0.0 - is-stream: 2.0.1 - normalize-path: 3.0.0 - readable-stream: 4.5.2 + commander: 7.2.0 + iconv-lite: 0.6.3 + rw: 1.3.3 dev: false - /compute-scroll-into-view@3.1.0: - resolution: {integrity: sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==} + /d3-ease@3.0.1: + resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} + engines: {node: '>=12'} dev: false - /concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + /d3-fetch@3.0.1: + resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==} + engines: {node: '>=12'} + dependencies: + d3-dsv: 3.0.1 + dev: false - /concurrently@8.2.2: - resolution: {integrity: sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==} - engines: {node: ^14.13.0 || >=16.0.0} - hasBin: true + /d3-force@3.0.0: + resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==} + engines: {node: '>=12'} dependencies: - chalk: 4.1.2 - date-fns: 2.30.0 - lodash: 4.17.21 - rxjs: 7.8.1 - shell-quote: 1.8.1 - spawn-command: 0.0.2 - supports-color: 8.1.1 - tree-kill: 1.2.2 - yargs: 17.7.2 + d3-dispatch: 3.0.1 + d3-quadtree: 3.0.1 + d3-timer: 3.0.1 + dev: false - /confbox@0.1.6: - resolution: {integrity: sha512-ONc4FUXne/1UBN1EuxvQ5rAjjAbo+N4IxrxWI8bzGHbd1PyrFlI/E3G23/yoJZDFBaFFxPGfI0EOq0fa4dgX7A==} + /d3-format@3.1.0: + resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==} + engines: {node: '>=12'} dev: false - /config-chain@1.1.13: - resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} + /d3-geo@3.1.0: + resolution: {integrity: sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA==} + engines: {node: '>=12'} dependencies: - ini: 1.3.8 - proto-list: 1.2.4 + d3-array: 3.2.4 dev: false - /consola@3.2.3: - resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} - engines: {node: ^14.18.0 || >=16.10.0} - - /console-control-strings@1.1.0: - resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + /d3-hierarchy@3.1.2: + resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} + engines: {node: '>=12'} dev: false - /content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} + /d3-interpolate@3.0.1: + resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} + engines: {node: '>=12'} dependencies: - safe-buffer: 5.2.1 + d3-color: 3.1.0 + dev: false - /content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} + /d3-path@1.0.9: + resolution: {integrity: sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==} + dev: false - /convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + /d3-path@3.1.0: + resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==} + engines: {node: '>=12'} + dev: false - /cookie-es@1.1.0: - resolution: {integrity: sha512-L2rLOcK0wzWSfSDA33YR+PUHDG10a8px7rUHKWbGLP4YfbsMed2KFUw5fczvDPbT98DDe3LEzviswl810apTEw==} + /d3-polygon@3.0.1: + resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==} + engines: {node: '>=12'} + dev: false - /cookie-signature@1.0.6: - resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + /d3-quadtree@3.0.1: + resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==} + engines: {node: '>=12'} + dev: false - /cookie@0.5.0: - resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} - engines: {node: '>= 0.6'} + /d3-random@3.0.1: + resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==} + engines: {node: '>=12'} + dev: false - /cookie@0.6.0: - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} - engines: {node: '>= 0.6'} + /d3-sankey@0.12.3: + resolution: {integrity: sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==} + dependencies: + d3-array: 2.12.1 + d3-shape: 1.3.7 + dev: false - /copy-anything@3.0.5: - resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} - engines: {node: '>=12.13'} + /d3-scale-chromatic@3.0.0: + resolution: {integrity: sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==} + engines: {node: '>=12'} + dependencies: + d3-color: 3.1.0 + d3-interpolate: 3.0.1 + dev: false + + /d3-scale@4.0.2: + resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} + engines: {node: '>=12'} dependencies: - is-what: 4.1.16 - dev: true + d3-array: 3.2.4 + d3-format: 3.1.0 + d3-interpolate: 3.0.1 + d3-time: 3.1.0 + d3-time-format: 4.1.0 + dev: false - /core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + /d3-selection@3.0.0: + resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} + engines: {node: '>=12'} dev: false - /cors@2.8.5: - resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} - engines: {node: '>= 0.10'} + /d3-shape@1.3.7: + resolution: {integrity: sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==} dependencies: - object-assign: 4.1.1 - vary: 1.1.2 + d3-path: 1.0.9 dev: false - /cose-base@1.0.3: - resolution: {integrity: sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==} + /d3-shape@3.2.0: + resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==} + engines: {node: '>=12'} dependencies: - layout-base: 1.0.2 + d3-path: 3.1.0 dev: false - /crc-32@1.2.2: - resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} - engines: {node: '>=0.8'} - hasBin: true + /d3-time-format@4.1.0: + resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} + engines: {node: '>=12'} + dependencies: + d3-time: 3.1.0 dev: false - /crc32-stream@6.0.0: - resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==} - engines: {node: '>= 14'} + /d3-time@3.1.0: + resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==} + engines: {node: '>=12'} dependencies: - crc-32: 1.2.2 - readable-stream: 4.5.2 + d3-array: 3.2.4 dev: false - /crelt@1.0.6: - resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==} + /d3-timer@3.0.1: + resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} + engines: {node: '>=12'} dev: false - /croner@8.0.2: - resolution: {integrity: sha512-HgSdlSUX8mIgDTTiQpWUP4qY4IFRMsduPCYdca34Pelt8MVdxdaDOzreFtCscA6R+cRZd7UbD1CD3uyx6J3X1A==} - engines: {node: '>=18.0'} + /d3-transition@3.0.1(d3-selection@3.0.0): + resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} + engines: {node: '>=12'} + peerDependencies: + d3-selection: 2 - 3 + dependencies: + d3-color: 3.1.0 + d3-dispatch: 3.0.1 + d3-ease: 3.0.1 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-timer: 3.0.1 dev: false - /cross-spawn@5.1.0: - resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} + /d3-zoom@3.0.0: + resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} + engines: {node: '>=12'} dependencies: - lru-cache: 4.1.5 - shebang-command: 1.2.0 - which: 1.3.1 + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-transition: 3.0.1(d3-selection@3.0.0) dev: false - /cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} + /d3@7.8.5: + resolution: {integrity: sha512-JgoahDG51ncUfJu6wX/1vWQEqOflgXyl4MaHqlcSruTez7yhaRKR9i8VjjcQGeS2en/jnFivXuaIMnseMMt0XA==} + engines: {node: '>=12'} dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - /crossws@0.2.4: - resolution: {integrity: sha512-DAxroI2uSOgUKLz00NX6A8U/8EE3SZHmIND+10jkVSaypvyt57J5JEOxAQOL6lQxyzi/wZbTIwssU1uy69h5Vg==} - peerDependencies: - uWebSockets.js: '*' - peerDependenciesMeta: - uWebSockets.js: - optional: true + d3-array: 3.2.4 + d3-axis: 3.0.0 + d3-brush: 3.0.0 + d3-chord: 3.0.1 + d3-color: 3.1.0 + d3-contour: 4.0.2 + d3-delaunay: 6.0.4 + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-dsv: 3.0.1 + d3-ease: 3.0.1 + d3-fetch: 3.0.1 + d3-force: 3.0.0 + d3-format: 3.1.0 + d3-geo: 3.1.0 + d3-hierarchy: 3.1.2 + d3-interpolate: 3.0.1 + d3-path: 3.1.0 + d3-polygon: 3.0.1 + d3-quadtree: 3.0.1 + d3-random: 3.0.1 + d3-scale: 4.0.2 + d3-scale-chromatic: 3.0.0 + d3-selection: 3.0.0 + d3-shape: 3.2.0 + d3-time: 3.1.0 + d3-time-format: 4.1.0 + d3-timer: 3.0.1 + d3-transition: 3.0.1(d3-selection@3.0.0) + d3-zoom: 3.0.0 + dev: false - /css-styled@1.0.8: - resolution: {integrity: sha512-tCpP7kLRI8dI95rCh3Syl7I+v7PP+2JYOzWkl0bUEoSbJM+u8ITbutjlQVf0NC2/g4ULROJPi16sfwDIO8/84g==} + /d@1.0.2: + resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==} + engines: {node: '>=0.12'} dependencies: - '@daybrush/utils': 1.13.0 - dev: false + es5-ext: 0.10.64 + type: 2.7.2 + dev: true - /css-to-mat@1.1.1: - resolution: {integrity: sha512-kvpxFYZb27jRd2vium35G7q5XZ2WJ9rWjDUMNT36M3Hc41qCrLXFM5iEKMGXcrPsKfXEN+8l/riB4QzwwwiEyQ==} + /dagre-d3-es@7.0.10: + resolution: {integrity: sha512-qTCQmEhcynucuaZgY5/+ti3X/rnszKZhEQH/ZdWdtP1tA/y3VoHJzcVrO9pjjJCNpigfscAtoUB5ONcd2wNn0A==} dependencies: - '@daybrush/utils': 1.13.0 - '@scena/matrix': 1.1.1 + d3: 7.8.5 + lodash-es: 4.17.21 dev: false - /css-tree@2.3.1: - resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - dependencies: - mdn-data: 2.0.30 - source-map-js: 1.2.0 + /damerau-levenshtein@1.0.8: + resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} dev: true - /cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true + /data-uri-to-buffer@2.0.2: + resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} + dev: true - /csstype@3.1.1: - resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} + /data-uri-to-buffer@4.0.1: + resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} + engines: {node: '>= 12'} dev: false - /csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + /data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 - /csv-generate@3.4.3: - resolution: {integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==} + /data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + + /data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + + /dataloader@1.4.0: + resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} dev: false - /csv-parse@4.16.3: - resolution: {integrity: sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==} + /date-fns@2.30.0: + resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} + engines: {node: '>=0.11'} + dependencies: + '@babel/runtime': 7.24.4 + + /dax-sh@0.39.2: + resolution: {integrity: sha512-gpuGEkBQM+5y6p4cWaw9+ePy5TNon+fdwFVtTI8leU3UhwhsBfPewRxMXGuQNC+M2b/MDGMlfgpqynkcd0C3FQ==} + dependencies: + '@deno/shim-deno': 0.19.1 + undici-types: 5.28.4 dev: false - /csv-stringify@5.6.5: - resolution: {integrity: sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==} + /dayjs@1.11.9: + resolution: {integrity: sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA==} dev: false - /csv@5.5.3: - resolution: {integrity: sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==} - engines: {node: '>= 0.1.90'} + /db0@0.1.4: + resolution: {integrity: sha512-Ft6eCwONYxlwLjBXSJxw0t0RYtA5gW9mq8JfBXn9TtC0nDPlqePAhpv9v4g9aONBi6JI1OXHTKKkUYGd+BOrCA==} + peerDependencies: + '@libsql/client': ^0.5.2 + better-sqlite3: ^9.4.3 + drizzle-orm: ^0.29.4 + peerDependenciesMeta: + '@libsql/client': + optional: true + better-sqlite3: + optional: true + drizzle-orm: + optional: true + + /de-indent@1.0.2: + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} + dev: true + + /debounce@1.2.1: + resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} + dev: true + + /debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: - csv-generate: 3.4.3 - csv-parse: 4.16.3 - csv-stringify: 5.6.5 - stream-transform: 2.1.3 - dev: false + ms: 2.0.0 - /cva@1.0.0-beta.1(typescript@5.4.5): - resolution: {integrity: sha512-gznFqTgERU9q4wg7jfgqtt34+RUt9S5t0xDAAEuDwQEAXEgjdDkKXpLLNjwSxsB4Ln/sqWJEH7yhE8Ny0mxd0w==} + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: - typescript: '>= 4.5.5 < 6' + supports-color: '*' peerDependenciesMeta: - typescript: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: optional: true dependencies: - clsx: 2.0.0 - typescript: 5.4.5 - dev: false + ms: 2.1.2 - /cytoscape-cose-bilkent@4.1.0(cytoscape@3.28.1): - resolution: {integrity: sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==} - peerDependencies: - cytoscape: ^3.2.0 + /decamelize-keys@1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} dependencies: - cose-base: 1.0.3 - cytoscape: 3.28.1 + decamelize: 1.2.0 + map-obj: 1.0.1 dev: false - /cytoscape@3.28.1: - resolution: {integrity: sha512-xyItz4O/4zp9/239wCcH8ZcFuuZooEeF8KHRmzjDfGdXsj3OG9MFSMA0pJE0uX3uCN/ygof6hHf4L7lst+JaDg==} - engines: {node: '>=0.10'} - dependencies: - heap: 0.2.7 - lodash: 4.17.21 + /decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} dev: false - /d3-array@2.12.1: - resolution: {integrity: sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==} + /decode-named-character-reference@1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} dependencies: - internmap: 1.0.1 + character-entities: 2.0.2 dev: false - /d3-array@3.2.4: - resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} - engines: {node: '>=12'} + /decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} dependencies: - internmap: 2.0.3 + mimic-response: 3.1.0 dev: false - /d3-axis@3.0.0: - resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==} - engines: {node: '>=12'} - dev: false + /dedent-js@1.0.1: + resolution: {integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==} + dev: true - /d3-brush@3.0.0: - resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==} - engines: {node: '>=12'} + /deep-eql@4.1.3: + resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + engines: {node: '>=6'} dependencies: - d3-dispatch: 3.0.1 - d3-drag: 3.0.0 - d3-interpolate: 3.0.1 - d3-selection: 3.0.0 - d3-transition: 3.0.1(d3-selection@3.0.0) - dev: false + type-detect: 4.0.8 - /d3-chord@3.0.1: - resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==} - engines: {node: '>=12'} - dependencies: - d3-path: 3.1.0 + /deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} dev: false - /d3-color@3.1.0: - resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} - engines: {node: '>=12'} - dev: false + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - /d3-contour@4.0.2: - resolution: {integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==} - engines: {node: '>=12'} - dependencies: - d3-array: 3.2.4 + /deepmerge@4.2.2: + resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} + engines: {node: '>=0.10.0'} dev: false - /d3-delaunay@6.0.4: - resolution: {integrity: sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==} + /deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + /default-browser-id@3.0.0: + resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} engines: {node: '>=12'} dependencies: - delaunator: 5.0.1 + bplist-parser: 0.2.0 + untildify: 4.0.0 dev: false - /d3-dispatch@3.0.1: - resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} - engines: {node: '>=12'} - dev: false + /default-browser-id@5.0.0: + resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + engines: {node: '>=18'} - /d3-drag@3.0.0: - resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} - engines: {node: '>=12'} + /default-browser@4.0.0: + resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} + engines: {node: '>=14.16'} dependencies: - d3-dispatch: 3.0.1 - d3-selection: 3.0.0 + bundle-name: 3.0.0 + default-browser-id: 3.0.0 + execa: 7.2.0 + titleize: 3.0.0 dev: false - /d3-dsv@3.0.1: - resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} - engines: {node: '>=12'} - hasBin: true + /default-browser@5.2.1: + resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} + engines: {node: '>=18'} dependencies: - commander: 7.2.0 - iconv-lite: 0.6.3 - rw: 1.3.3 + bundle-name: 4.1.0 + default-browser-id: 5.0.0 + + /defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + dependencies: + clone: 1.0.4 dev: false - /d3-ease@3.0.1: - resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} - engines: {node: '>=12'} + /defer-to-connect@2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} dev: false - /d3-fetch@3.0.1: - resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==} - engines: {node: '>=12'} + /define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} dependencies: - d3-dsv: 3.0.1 - dev: false + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 - /d3-force@3.0.0: - resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==} + /define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + + /define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} engines: {node: '>=12'} + + /define-properties@1.2.0: + resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} + engines: {node: '>= 0.4'} dependencies: - d3-dispatch: 3.0.1 - d3-quadtree: 3.0.1 - d3-timer: 3.0.1 - dev: false + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 - /d3-format@3.1.0: - resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==} - engines: {node: '>=12'} - dev: false + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 - /d3-geo@3.1.1: - resolution: {integrity: sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==} - engines: {node: '>=12'} + /defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + + /delaunator@5.0.0: + resolution: {integrity: sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==} dependencies: - d3-array: 3.2.4 + robust-predicates: 3.0.2 dev: false - /d3-hierarchy@3.1.2: - resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} - engines: {node: '>=12'} + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + /delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + + /denque@2.1.0: + resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} + engines: {node: '>=0.10'} + + /depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + /dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + /destr@2.0.3: + resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} + + /destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + /detect-indent@6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + + /detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + + /detect-libc@2.0.2: + resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} + engines: {node: '>=8'} + + /detect-node-es@1.1.0: + resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} dev: false - /d3-interpolate@3.0.1: - resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} - engines: {node: '>=12'} + /deterministic-object-hash@2.0.2: + resolution: {integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==} + engines: {node: '>=18'} dependencies: - d3-color: 3.1.0 + base-64: 1.0.0 dev: false - /d3-path@1.0.9: - resolution: {integrity: sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==} - dev: false + /devalue@4.3.2: + resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==} - /d3-path@3.1.0: - resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==} - engines: {node: '>=12'} - dev: false + /devalue@5.0.0: + resolution: {integrity: sha512-gO+/OMXF7488D+u3ue+G7Y4AA3ZmUnB3eHJXmBTgNHvr4ZNzl36A0ZtG+XCRNYCkYx/bFmw4qtkoFLa+wSrwAA==} + dev: true - /d3-polygon@3.0.1: - resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==} - engines: {node: '>=12'} + /devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + dependencies: + dequal: 2.0.3 dev: false - /d3-quadtree@3.0.1: - resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==} - engines: {node: '>=12'} + /didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + + /diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + /diff@5.1.0: + resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} + engines: {node: '>=0.3.1'} dev: false - /d3-random@3.0.1: - resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==} - engines: {node: '>=12'} - dev: false + /diff@5.2.0: + resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} + engines: {node: '>=0.3.1'} + + /difflib@0.2.4: + resolution: {integrity: sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w==} + dependencies: + heap: 0.2.7 + dev: true + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + + /dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - /d3-sankey@0.12.3: - resolution: {integrity: sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==} + /doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} dependencies: - d3-array: 2.12.1 - d3-shape: 1.3.7 - dev: false + esutils: 2.0.3 - /d3-scale-chromatic@3.1.0: - resolution: {integrity: sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==} - engines: {node: '>=12'} + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} dependencies: - d3-color: 3.1.0 - d3-interpolate: 3.0.1 - dev: false + esutils: 2.0.3 - /d3-scale@4.0.2: - resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} - engines: {node: '>=12'} + /dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} dependencies: - d3-array: 3.2.4 - d3-format: 3.1.0 - d3-interpolate: 3.0.1 - d3-time: 3.1.0 - d3-time-format: 4.1.0 - dev: false + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 - /d3-selection@3.0.0: - resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} - engines: {node: '>=12'} - dev: false + /domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - /d3-shape@1.3.7: - resolution: {integrity: sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==} + /domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} dependencies: - d3-path: 1.0.9 - dev: false + domelementtype: 2.3.0 - /d3-shape@3.2.0: - resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==} - engines: {node: '>=12'} - dependencies: - d3-path: 3.1.0 + /dompurify@3.1.0: + resolution: {integrity: sha512-yoU4rhgPKCo+p5UrWWWNKiIq+ToGqmVVhk0PmMYBK4kRsR3/qhemNFL8f6CFmBd4gMwm3F4T7HBoydP5uY07fA==} dev: false - /d3-time-format@4.1.0: - resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} - engines: {node: '>=12'} + /domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} dependencies: - d3-time: 3.1.0 - dev: false + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 - /d3-time@3.1.0: - resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==} - engines: {node: '>=12'} + /dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} dependencies: - d3-array: 3.2.4 - dev: false - - /d3-timer@3.0.1: - resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} - engines: {node: '>=12'} + no-case: 3.0.4 + tslib: 2.6.2 dev: false - /d3-transition@3.0.1(d3-selection@3.0.0): - resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} - engines: {node: '>=12'} - peerDependencies: - d3-selection: 2 - 3 + /dot-prop@8.0.2: + resolution: {integrity: sha512-xaBe6ZT4DHPkg0k4Ytbvn5xoxgpG0jOS1dYxSOwAHPuNLjP3/OzN0gH55SrLqpx8cBfSaVt91lXYkApjb+nYdQ==} + engines: {node: '>=16'} dependencies: - d3-color: 3.1.0 - d3-dispatch: 3.0.1 - d3-ease: 3.0.1 - d3-interpolate: 3.0.1 - d3-selection: 3.0.0 - d3-timer: 3.0.1 - dev: false + type-fest: 3.11.1 - /d3-zoom@3.0.0: - resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} + /dotenv@16.0.3: + resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} engines: {node: '>=12'} - dependencies: - d3-dispatch: 3.0.1 - d3-drag: 3.0.0 - d3-interpolate: 3.0.1 - d3-selection: 3.0.0 - d3-transition: 3.0.1(d3-selection@3.0.0) dev: false - /d3@7.9.0: - resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==} + /dotenv@16.4.5: + resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} engines: {node: '>=12'} - dependencies: - d3-array: 3.2.4 - d3-axis: 3.0.0 - d3-brush: 3.0.0 - d3-chord: 3.0.1 - d3-color: 3.1.0 - d3-contour: 4.0.2 - d3-delaunay: 6.0.4 - d3-dispatch: 3.0.1 - d3-drag: 3.0.0 - d3-dsv: 3.0.1 - d3-ease: 3.0.1 - d3-fetch: 3.0.1 - d3-force: 3.0.0 - d3-format: 3.1.0 - d3-geo: 3.1.1 - d3-hierarchy: 3.1.2 - d3-interpolate: 3.0.1 - d3-path: 3.1.0 - d3-polygon: 3.0.1 - d3-quadtree: 3.0.1 - d3-random: 3.0.1 - d3-scale: 4.0.2 - d3-scale-chromatic: 3.1.0 - d3-selection: 3.0.0 - d3-shape: 3.2.0 - d3-time: 3.1.0 - d3-time-format: 4.1.0 - d3-timer: 3.0.1 - d3-transition: 3.0.1(d3-selection@3.0.0) - d3-zoom: 3.0.0 + + /dotenv@8.6.0: + resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} + engines: {node: '>=10'} dev: false - /d@1.0.2: - resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==} - engines: {node: '>=0.12'} + /dreamopt@0.8.0: + resolution: {integrity: sha512-vyJTp8+mC+G+5dfgsY+r3ckxlz+QMX40VjPQsZc5gxVAxLmi64TBoVkP54A/pRAXMXsbu2GMMBrZPxNv23waMg==} + engines: {node: '>=0.4.0'} dependencies: - es5-ext: 0.10.64 - type: 2.7.2 + wordwrap: 1.0.0 dev: true - /dagre-d3-es@7.0.10: - resolution: {integrity: sha512-qTCQmEhcynucuaZgY5/+ti3X/rnszKZhEQH/ZdWdtP1tA/y3VoHJzcVrO9pjjJCNpigfscAtoUB5ONcd2wNn0A==} + /drizzle-kit@0.20.18: + resolution: {integrity: sha512-fLTwcnLqtBxGd+51H/dEm9TC0FW6+cIX/RVPyNcitBO77X9+nkogEfMAJebpd/8Yl4KucmePHRYRWWvUlW0rqg==} + hasBin: true dependencies: - d3: 7.9.0 - lodash-es: 4.17.21 - dev: false - - /damerau-levenshtein@1.0.8: - resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} - dev: true - - /data-uri-to-buffer@2.0.2: - resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} + '@esbuild-kit/esm-loader': 2.5.5 + '@hono/node-server': 1.11.0 + '@hono/zod-validator': 0.2.1(hono@4.2.6)(zod@3.23.0) + camelcase: 7.0.1 + chalk: 5.3.0 + commander: 9.5.0 + env-paths: 3.0.0 + esbuild: 0.19.12 + esbuild-register: 3.5.0(esbuild@0.19.12) + glob: 8.1.0 + hanji: 0.0.5 + hono: 4.2.6 + json-diff: 0.9.0 + minimatch: 7.4.6 + semver: 7.6.0 + superjson: 2.2.1 + zod: 3.23.0 + transitivePeerDependencies: + - supports-color dev: true - /data-view-buffer@1.0.1: - resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - is-data-view: 1.0.1 - - /data-view-byte-length@1.0.1: - resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - is-data-view: 1.0.1 - - /data-view-byte-offset@1.0.0: - resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} - engines: {node: '>= 0.4'} + /drizzle-orm@0.30.10(@libsql/client@0.6.0)(@types/react@18.2.78)(react@18.2.0): + resolution: {integrity: sha512-IRy/QmMWw9lAQHpwbUh1b8fcn27S/a9zMIzqea1WNOxK9/4EB8gIo+FZWLiPXzl2n9ixGSv8BhsLZiOppWEwBw==} + peerDependencies: + '@aws-sdk/client-rds-data': '>=3' + '@cloudflare/workers-types': '>=3' + '@electric-sql/pglite': '>=0.1.1' + '@libsql/client': '*' + '@neondatabase/serverless': '>=0.1' + '@op-engineering/op-sqlite': '>=2' + '@opentelemetry/api': ^1.4.1 + '@planetscale/database': '>=1' + '@types/better-sqlite3': '*' + '@types/pg': '*' + '@types/react': '>=18' + '@types/sql.js': '*' + '@vercel/postgres': '>=0.8.0' + '@xata.io/client': '*' + better-sqlite3: '>=7' + bun-types: '*' + expo-sqlite: '>=13.2.0' + knex: '*' + kysely: '*' + mysql2: '>=2' + pg: '>=8' + postgres: '>=3' + react: '>=18' + sql.js: '>=1' + sqlite3: '>=5' + peerDependenciesMeta: + '@aws-sdk/client-rds-data': + optional: true + '@cloudflare/workers-types': + optional: true + '@electric-sql/pglite': + optional: true + '@libsql/client': + optional: true + '@neondatabase/serverless': + optional: true + '@op-engineering/op-sqlite': + optional: true + '@opentelemetry/api': + optional: true + '@planetscale/database': + optional: true + '@types/better-sqlite3': + optional: true + '@types/pg': + optional: true + '@types/react': + optional: true + '@types/sql.js': + optional: true + '@vercel/postgres': + optional: true + '@xata.io/client': + optional: true + better-sqlite3: + optional: true + bun-types: + optional: true + expo-sqlite: + optional: true + knex: + optional: true + kysely: + optional: true + mysql2: + optional: true + pg: + optional: true + postgres: + optional: true + react: + optional: true + sql.js: + optional: true + sqlite3: + optional: true dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - is-data-view: 1.0.1 + '@libsql/client': 0.6.0 + '@types/react': 18.2.78 + react: 18.2.0 + dev: false - /dataloader@1.4.0: - resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} + /dset@3.1.3: + resolution: {integrity: sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==} + engines: {node: '>=4'} dev: false - /date-fns@2.30.0: - resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} - engines: {node: '>=0.11'} - dependencies: - '@babel/runtime': 7.24.4 + /duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - /dax-sh@0.39.2: - resolution: {integrity: sha512-gpuGEkBQM+5y6p4cWaw9+ePy5TNon+fdwFVtTI8leU3UhwhsBfPewRxMXGuQNC+M2b/MDGMlfgpqynkcd0C3FQ==} - dependencies: - '@deno/shim-deno': 0.19.1 - undici-types: 5.28.4 + /eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + /ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + /effect@3.1.0: + resolution: {integrity: sha512-A0kUH8qeH0jS0X4ViJXf/O5qfMQBrJRsTD1xHed4jpFF5ChUP96LmseaV9LQkFbVDo791REFWTOlMPGCyM/0Ng==} dev: false - /dayjs@1.11.10: - resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} + /electron-to-chromium@1.4.746: + resolution: {integrity: sha512-jeWaIta2rIG2FzHaYIhSuVWqC6KJYo7oSBX4Jv7g+aVujKztfvdpf+n6MGwZdC5hQXbax4nntykLH2juIQrfPg==} + + /elkjs@0.9.3: + resolution: {integrity: sha512-f/ZeWvW/BCXbhGEf1Ujp29EASo/lk1FDnETgNKwJrsVvGZhUWCZyg3xLJjAsxfOmt8KjswHmI5EwCQcPMpOYhQ==} dev: false - /db0@0.1.4: - resolution: {integrity: sha512-Ft6eCwONYxlwLjBXSJxw0t0RYtA5gW9mq8JfBXn9TtC0nDPlqePAhpv9v4g9aONBi6JI1OXHTKKkUYGd+BOrCA==} + /elysia@0.8.17(typescript@5.4.5): + resolution: {integrity: sha512-hqKHKUxbvlDHnobudtna5nBoGiZ4oa0xdnhynLAJF3+6gTYHAcQ/8/IyxUx5Az5Uy0zTuNiv7m2bIFu7xeMiWg==} peerDependencies: - '@libsql/client': ^0.5.2 - better-sqlite3: ^9.4.3 - drizzle-orm: ^0.29.4 + '@sinclair/typebox': '>= 0.31.0' + openapi-types: '>= 12.0.0' + typescript: '>= 5.0.0' peerDependenciesMeta: - '@libsql/client': + '@sinclair/typebox': optional: true - better-sqlite3: + openapi-types: optional: true - drizzle-orm: + typescript: optional: true + dependencies: + cookie: 0.6.0 + eventemitter3: 5.0.1 + fast-decode-uri-component: 1.0.1 + fast-querystring: 1.1.2 + memoirist: 0.1.10 + typescript: 5.4.5 dev: false - /debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + /emoji-regex@10.3.0: + resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} + dev: false + + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + /encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + + /encoding@0.1.13: + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} + requiresBuild: true dependencies: - ms: 2.0.0 + iconv-lite: 0.6.3 + optional: true - /debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + /end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + requiresBuild: true dependencies: - ms: 2.1.3 + once: 1.4.0 + dev: false + optional: true - /debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + /enhanced-resolve@5.15.0: + resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} + engines: {node: '>=10.13.0'} dependencies: - ms: 2.1.2 + graceful-fs: 4.2.11 + tapable: 2.2.1 - /decamelize-keys@1.1.1: - resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} - engines: {node: '>=0.10.0'} + /enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} + engines: {node: '>=8.6'} dependencies: - decamelize: 1.2.0 - map-obj: 1.0.1 + ansi-colors: 4.1.3 + strip-ansi: 6.0.1 dev: false - /decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} - dev: false + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} - /decode-named-character-reference@1.0.2: - resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + /env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + + /env-paths@3.0.0: + resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /err-code@2.0.3: + resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: - character-entities: 2.0.2 + is-arrayish: 0.2.1 dev: false - /decompress-response@6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} + /error-stack-parser-es@0.1.1: + resolution: {integrity: sha512-g/9rfnvnagiNf+DRMHEVGuGuIBlCIMDFoTA616HaP2l9PlCjGjVhD98PNbVSJvmK4TttqT5mV5tInMhoFgi+aA==} + + /error-stack-parser@2.1.4: + resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} dependencies: - mimic-response: 3.1.0 + stackframe: 1.3.4 dev: false - /dedent-js@1.0.1: - resolution: {integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==} - dev: true + /es-abstract@1.22.1: + resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + arraybuffer.prototype.slice: 1.0.1 + 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.5 + 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.12.3 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.0 + safe-array-concat: 1.0.0 + safe-regex-test: 1.0.0 + string.prototype.trim: 1.2.7 + string.prototype.trimend: 1.0.6 + string.prototype.trimstart: 1.0.6 + 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 - /deep-eql@4.1.3: - resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} - engines: {node: '>=6'} + /es-abstract@1.23.3: + resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} + engines: {node: '>= 0.4'} dependencies: - type-detect: 4.0.8 - dev: false + array-buffer-byte-length: 1.0.1 + arraybuffer.prototype.slice: 1.0.3 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + data-view-buffer: 1.0.1 + data-view-byte-length: 1.0.1 + data-view-byte-offset: 1.0.0 + es-define-property: 1.0.0 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-set-tostringtag: 2.0.3 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.4 + get-symbol-description: 1.0.2 + globalthis: 1.0.3 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + internal-slot: 1.0.7 + is-array-buffer: 3.0.4 + is-callable: 1.2.7 + is-data-view: 1.0.1 + is-negative-zero: 2.0.3 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 + is-string: 1.0.7 + is-typed-array: 1.1.13 + is-weakref: 1.0.2 + object-inspect: 1.13.1 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.2 + safe-array-concat: 1.1.2 + safe-regex-test: 1.0.3 + string.prototype.trim: 1.2.9 + string.prototype.trimend: 1.0.8 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.2 + typed-array-byte-length: 1.0.1 + typed-array-byte-offset: 1.0.2 + typed-array-length: 1.0.6 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.15 - /deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} - dev: false + /es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 - /deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} - /deepmerge@4.2.2: - resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} - engines: {node: '>=0.10.0'} + /es-iterator-helpers@1.0.18: + resolution: {integrity: sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-set-tostringtag: 2.0.3 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + globalthis: 1.0.3 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + internal-slot: 1.0.7 + iterator.prototype: 1.1.2 + safe-array-concat: 1.1.2 + + /es-module-lexer@1.3.0: + resolution: {integrity: sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==} dev: false - /deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} + /es-module-lexer@1.5.0: + resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==} + dev: false + + /es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 - /default-browser-id@3.0.0: - resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} - engines: {node: '>=12'} + /es-set-tostringtag@2.0.1: + resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + engines: {node: '>= 0.4'} dependencies: - bplist-parser: 0.2.0 - untildify: 4.0.0 - dev: false + get-intrinsic: 1.2.1 + has: 1.0.3 + has-tostringtag: 1.0.0 - /default-browser@4.0.0: - resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} - engines: {node: '>=14.16'} + /es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} dependencies: - bundle-name: 3.0.0 - default-browser-id: 3.0.0 - execa: 7.2.0 - titleize: 3.0.0 - dev: false + get-intrinsic: 1.2.4 + has-tostringtag: 1.0.2 + hasown: 2.0.2 - /defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + /es-shim-unscopables@1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} dependencies: - clone: 1.0.4 - dev: false + has: 1.0.3 - /defer-to-connect@2.0.1: - resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} - engines: {node: '>=10'} - dev: false + /es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + dependencies: + hasown: 2.0.2 - /define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} dependencies: - es-define-property: 1.0.0 - es-errors: 1.3.0 - gopd: 1.0.1 + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 - /define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} - dev: false + /es5-ext@0.10.64: + resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==} + engines: {node: '>=0.10'} + requiresBuild: true + dependencies: + es6-iterator: 2.0.3 + es6-symbol: 3.1.4 + esniff: 2.0.1 + next-tick: 1.1.0 + dev: true - /define-lazy-prop@3.0.0: - resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} - engines: {node: '>=12'} + /es6-iterator@2.0.3: + resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} + dependencies: + d: 1.0.2 + es5-ext: 0.10.64 + es6-symbol: 3.1.4 + dev: true + + /es6-object-assign@1.1.0: + resolution: {integrity: sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==} dev: false - /define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} + /es6-promise@3.3.1: + resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} + dev: true + + /es6-symbol@3.1.4: + resolution: {integrity: sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==} + engines: {node: '>=0.12'} dependencies: - define-data-property: 1.1.4 - has-property-descriptors: 1.0.2 - object-keys: 1.1.1 + d: 1.0.2 + ext: 1.7.0 + dev: true - /defu@6.1.4: - resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + /es6-weak-map@2.0.3: + resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==} + dependencies: + d: 1.0.2 + es5-ext: 0.10.64 + es6-iterator: 2.0.3 + es6-symbol: 3.1.4 + dev: true - /delaunator@5.0.1: - resolution: {integrity: sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==} + /esbuild-plugin-solid@0.5.0(esbuild@0.20.2)(solid-js@1.8.16): + resolution: {integrity: sha512-ITK6n+0ayGFeDVUZWNMxX+vLsasEN1ILrg4pISsNOQ+mq4ljlJJiuXotInd+HE0MzwTcA9wExT1yzDE2hsqPsg==} + peerDependencies: + esbuild: '>=0.12' + solid-js: '>= 1.0' dependencies: - robust-predicates: 3.0.2 - dev: false + '@babel/core': 7.22.10 + '@babel/preset-typescript': 7.22.5(@babel/core@7.22.10) + babel-preset-solid: 1.7.7(@babel/core@7.22.10) + esbuild: 0.20.2 + solid-js: 1.8.16 + transitivePeerDependencies: + - supports-color + dev: true - /delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} + /esbuild-register@3.5.0(esbuild@0.19.12): + resolution: {integrity: sha512-+4G/XmakeBAsvJuDugJvtyF1x+XJT4FMocynNpxrvEBViirpfUn2PgNpCHedfWhF4WokNsO/OvMKrmJOIJsI5A==} + peerDependencies: + esbuild: '>=0.12 <1' + dependencies: + debug: 4.3.4 + esbuild: 0.19.12 + transitivePeerDependencies: + - supports-color + dev: true - /delegates@1.0.0: - resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} - dev: false + /esbuild@0.17.19: + resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.17.19 + '@esbuild/android-arm64': 0.17.19 + '@esbuild/android-x64': 0.17.19 + '@esbuild/darwin-arm64': 0.17.19 + '@esbuild/darwin-x64': 0.17.19 + '@esbuild/freebsd-arm64': 0.17.19 + '@esbuild/freebsd-x64': 0.17.19 + '@esbuild/linux-arm': 0.17.19 + '@esbuild/linux-arm64': 0.17.19 + '@esbuild/linux-ia32': 0.17.19 + '@esbuild/linux-loong64': 0.17.19 + '@esbuild/linux-mips64el': 0.17.19 + '@esbuild/linux-ppc64': 0.17.19 + '@esbuild/linux-riscv64': 0.17.19 + '@esbuild/linux-s390x': 0.17.19 + '@esbuild/linux-x64': 0.17.19 + '@esbuild/netbsd-x64': 0.17.19 + '@esbuild/openbsd-x64': 0.17.19 + '@esbuild/sunos-x64': 0.17.19 + '@esbuild/win32-arm64': 0.17.19 + '@esbuild/win32-ia32': 0.17.19 + '@esbuild/win32-x64': 0.17.19 + dev: true - /denque@2.1.0: - resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} - engines: {node: '>=0.10'} + /esbuild@0.18.20: + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.18.20 + '@esbuild/android-arm64': 0.18.20 + '@esbuild/android-x64': 0.18.20 + '@esbuild/darwin-arm64': 0.18.20 + '@esbuild/darwin-x64': 0.18.20 + '@esbuild/freebsd-arm64': 0.18.20 + '@esbuild/freebsd-x64': 0.18.20 + '@esbuild/linux-arm': 0.18.20 + '@esbuild/linux-arm64': 0.18.20 + '@esbuild/linux-ia32': 0.18.20 + '@esbuild/linux-loong64': 0.18.20 + '@esbuild/linux-mips64el': 0.18.20 + '@esbuild/linux-ppc64': 0.18.20 + '@esbuild/linux-riscv64': 0.18.20 + '@esbuild/linux-s390x': 0.18.20 + '@esbuild/linux-x64': 0.18.20 + '@esbuild/netbsd-x64': 0.18.20 + '@esbuild/openbsd-x64': 0.18.20 + '@esbuild/sunos-x64': 0.18.20 + '@esbuild/win32-arm64': 0.18.20 + '@esbuild/win32-ia32': 0.18.20 + '@esbuild/win32-x64': 0.18.20 dev: false - /depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} + /esbuild@0.19.12: + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.19.12 + '@esbuild/android-arm': 0.19.12 + '@esbuild/android-arm64': 0.19.12 + '@esbuild/android-x64': 0.19.12 + '@esbuild/darwin-arm64': 0.19.12 + '@esbuild/darwin-x64': 0.19.12 + '@esbuild/freebsd-arm64': 0.19.12 + '@esbuild/freebsd-x64': 0.19.12 + '@esbuild/linux-arm': 0.19.12 + '@esbuild/linux-arm64': 0.19.12 + '@esbuild/linux-ia32': 0.19.12 + '@esbuild/linux-loong64': 0.19.12 + '@esbuild/linux-mips64el': 0.19.12 + '@esbuild/linux-ppc64': 0.19.12 + '@esbuild/linux-riscv64': 0.19.12 + '@esbuild/linux-s390x': 0.19.12 + '@esbuild/linux-x64': 0.19.12 + '@esbuild/netbsd-x64': 0.19.12 + '@esbuild/openbsd-x64': 0.19.12 + '@esbuild/sunos-x64': 0.19.12 + '@esbuild/win32-arm64': 0.19.12 + '@esbuild/win32-ia32': 0.19.12 + '@esbuild/win32-x64': 0.19.12 - /dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + /esbuild@0.19.2: + resolution: {integrity: sha512-G6hPax8UbFakEj3hWO0Vs52LQ8k3lnBhxZWomUJDxfz3rZTLqF5k/FCzuNdLx2RbpBiQQF9H9onlDDH1lZsnjg==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.19.2 + '@esbuild/android-arm64': 0.19.2 + '@esbuild/android-x64': 0.19.2 + '@esbuild/darwin-arm64': 0.19.2 + '@esbuild/darwin-x64': 0.19.2 + '@esbuild/freebsd-arm64': 0.19.2 + '@esbuild/freebsd-x64': 0.19.2 + '@esbuild/linux-arm': 0.19.2 + '@esbuild/linux-arm64': 0.19.2 + '@esbuild/linux-ia32': 0.19.2 + '@esbuild/linux-loong64': 0.19.2 + '@esbuild/linux-mips64el': 0.19.2 + '@esbuild/linux-ppc64': 0.19.2 + '@esbuild/linux-riscv64': 0.19.2 + '@esbuild/linux-s390x': 0.19.2 + '@esbuild/linux-x64': 0.19.2 + '@esbuild/netbsd-x64': 0.19.2 + '@esbuild/openbsd-x64': 0.19.2 + '@esbuild/sunos-x64': 0.19.2 + '@esbuild/win32-arm64': 0.19.2 + '@esbuild/win32-ia32': 0.19.2 + '@esbuild/win32-x64': 0.19.2 + dev: true + + /esbuild@0.20.2: + resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.20.2 + '@esbuild/android-arm': 0.20.2 + '@esbuild/android-arm64': 0.20.2 + '@esbuild/android-x64': 0.20.2 + '@esbuild/darwin-arm64': 0.20.2 + '@esbuild/darwin-x64': 0.20.2 + '@esbuild/freebsd-arm64': 0.20.2 + '@esbuild/freebsd-x64': 0.20.2 + '@esbuild/linux-arm': 0.20.2 + '@esbuild/linux-arm64': 0.20.2 + '@esbuild/linux-ia32': 0.20.2 + '@esbuild/linux-loong64': 0.20.2 + '@esbuild/linux-mips64el': 0.20.2 + '@esbuild/linux-ppc64': 0.20.2 + '@esbuild/linux-riscv64': 0.20.2 + '@esbuild/linux-s390x': 0.20.2 + '@esbuild/linux-x64': 0.20.2 + '@esbuild/netbsd-x64': 0.20.2 + '@esbuild/openbsd-x64': 0.20.2 + '@esbuild/sunos-x64': 0.20.2 + '@esbuild/win32-arm64': 0.20.2 + '@esbuild/win32-ia32': 0.20.2 + '@esbuild/win32-x64': 0.20.2 + + /escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} - /destr@2.0.3: - resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} + /escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} - /destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} - /detect-indent@6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} + /escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} - /detect-libc@1.0.3: - resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} - engines: {node: '>=0.10'} - hasBin: true + /eslint-compat-utils@0.5.0(eslint@8.57.0): + resolution: {integrity: sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + eslint: 8.57.0 + semver: 7.6.0 dev: false - /detect-libc@2.0.3: - resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} - engines: {node: '>=8'} - dev: false + /eslint-config-next@14.2.2(eslint@8.57.0)(typescript@5.4.5): + resolution: {integrity: sha512-12/uFc0KX+wUs7EDpOUGKMXBXZJiBVGdK5/m/QgXOCg2mQ0bQWoKSWNrCeOg7Vum6Kw1d1TW453W6xh+GbHquw==} + peerDependencies: + eslint: ^7.23.0 || ^8.0.0 + typescript: '>=3.3.1' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@next/eslint-plugin-next': 14.2.2 + '@rushstack/eslint-patch': 1.10.2 + '@typescript-eslint/parser': 6.3.0(eslint@8.57.0)(typescript@5.4.5) + eslint: 8.57.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.3.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.7.1)(eslint@8.57.0) + eslint-plugin-jsx-a11y: 6.8.0(eslint@8.57.0) + eslint-plugin-react: 7.34.1(eslint@8.57.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.57.0) + typescript: 5.4.5 + transitivePeerDependencies: + - eslint-import-resolver-webpack + - supports-color + dev: true - /detect-node-es@1.1.0: - resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + /eslint-config-prettier@9.1.0(eslint@8.57.0): + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + dependencies: + eslint: 8.57.0 dev: false - /deterministic-object-hash@2.0.2: - resolution: {integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==} - engines: {node: '>=18'} + /eslint-config-turbo@1.13.2(eslint@8.57.0): + resolution: {integrity: sha512-TzvsMwNJx/P4JYw79iFqbyQApnyT050gW7dBxnNeNVl3pVMnT2rwaFo9Q3Hc49Tp5NANxEwYN9RStF50P/IwGA==} + peerDependencies: + eslint: '>6.6.0' dependencies: - base-64: 1.0.0 + eslint: 8.57.0 + eslint-plugin-turbo: 1.13.2(eslint@8.57.0) dev: false - /devalue@4.3.2: - resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==} + /eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + dependencies: + debug: 3.2.7 + is-core-module: 2.13.0 + resolve: 1.22.4 + transitivePeerDependencies: + - supports-color - /devlop@1.1.0: - resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.3.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0): + resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' dependencies: - dequal: 2.0.3 - dev: false + debug: 4.3.4 + enhanced-resolve: 5.15.0 + eslint: 8.57.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.3.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.7.1)(eslint@8.57.0) + fast-glob: 3.3.1 + get-tsconfig: 4.7.0 + is-core-module: 2.13.0 + is-glob: 4.0.3 + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-node + - eslint-import-resolver-webpack + - supports-color + dev: true - /didyoumean@1.2.2: - resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.3.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.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': 6.3.0(eslint@8.57.0)(typescript@5.4.5) + debug: 3.2.7 + eslint: 8.57.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.3.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0) + transitivePeerDependencies: + - supports-color + dev: true - /diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: false + /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.7.1)(eslint-import-resolver-node@0.3.9)(eslint@8.57.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': 7.7.1(eslint@8.57.0)(typescript@5.4.5) + debug: 3.2.7 + eslint: 8.57.0 + eslint-import-resolver-node: 0.3.9 + transitivePeerDependencies: + - supports-color - /diff@5.2.0: - resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} - engines: {node: '>=0.3.1'} - dev: false + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.1)(eslint@8.57.0): + resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} + 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': 7.7.1(eslint@8.57.0)(typescript@5.4.5) + array-includes: 3.1.8 + array.prototype.findlastindex: 1.2.5 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.57.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.7.1)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + hasown: 2.0.2 + is-core-module: 2.13.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.0 + semver: 6.3.1 + tsconfig-paths: 3.15.0 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color - /difflib@0.2.4: - resolution: {integrity: sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w==} + /eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0): + resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - heap: 0.2.7 + '@babel/runtime': 7.24.4 + aria-query: 5.3.0 + array-includes: 3.1.8 + array.prototype.flatmap: 1.3.2 + ast-types-flow: 0.0.8 + axe-core: 4.7.0 + axobject-query: 3.2.1 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + es-iterator-helpers: 1.0.18 + eslint: 8.57.0 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.9 + minimatch: 3.1.2 + object.entries: 1.1.8 + object.fromentries: 2.0.8 dev: true - /dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} + /eslint-plugin-react-hooks@4.6.0(eslint@8.57.0): + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - path-type: 4.0.0 - - /dlv@1.1.3: - resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + eslint: 8.57.0 - /doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} + /eslint-plugin-react@7.34.1(eslint@8.57.0): + resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - esutils: 2.0.3 + array-includes: 3.1.8 + array.prototype.findlast: 1.2.5 + array.prototype.flatmap: 1.3.2 + array.prototype.toreversed: 1.1.2 + array.prototype.tosorted: 1.1.3 + doctrine: 2.1.0 + es-iterator-helpers: 1.0.18 + eslint: 8.57.0 + estraverse: 5.3.0 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.8 + object.fromentries: 2.0.8 + object.hasown: 1.1.4 + object.values: 1.2.0 + prop-types: 15.8.1 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.11 - /doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} + /eslint-plugin-svelte@2.37.0(eslint@8.57.0): + resolution: {integrity: sha512-H/2Gz7agYHEMEEzRuLYuCmAIdjuBnbhFG9hOK0yCdSBvvJGJMkjo+lR6j67OIvLOavgp4L7zA5LnDKi8WqdPhQ==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0-0 || ^9.0.0-0 + svelte: ^3.37.0 || ^4.0.0 || ^5.0.0-next.95 + peerDependenciesMeta: + svelte: + optional: true dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@jridgewell/sourcemap-codec': 1.4.15 + debug: 4.3.4 + eslint: 8.57.0 + eslint-compat-utils: 0.5.0(eslint@8.57.0) esutils: 2.0.3 - - /dompurify@3.1.0: - resolution: {integrity: sha512-yoU4rhgPKCo+p5UrWWWNKiIq+ToGqmVVhk0PmMYBK4kRsR3/qhemNFL8f6CFmBd4gMwm3F4T7HBoydP5uY07fA==} + known-css-properties: 0.30.0 + postcss: 8.4.38 + postcss-load-config: 3.1.4(postcss@8.4.38) + postcss-safe-parser: 6.0.0(postcss@8.4.38) + postcss-selector-parser: 6.0.16 + semver: 7.6.0 + svelte-eslint-parser: 0.34.1 + transitivePeerDependencies: + - supports-color + - ts-node dev: false - /dot-case@3.0.4: - resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + /eslint-plugin-turbo@1.13.2(eslint@8.57.0): + resolution: {integrity: sha512-QNaihF0hTRjfOBd1SLHrftm8V3pOU35CNS/C0/Z6qY1xxdL1PSv4IctEIldSMX7/A1jOPYwMPO7wYwPXgjgp/g==} + peerDependencies: + eslint: '>6.6.0' dependencies: - no-case: 3.0.4 - tslib: 2.6.2 + dotenv: 16.0.3 + eslint: 8.57.0 dev: false - /dot-prop@8.0.2: - resolution: {integrity: sha512-xaBe6ZT4DHPkg0k4Ytbvn5xoxgpG0jOS1dYxSOwAHPuNLjP3/OzN0gH55SrLqpx8cBfSaVt91lXYkApjb+nYdQ==} - engines: {node: '>=16'} + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - type-fest: 3.13.1 - dev: false - - /dotenv@16.0.3: - resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} - engines: {node: '>=12'} - dev: false - - /dotenv@16.4.5: - resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} - engines: {node: '>=12'} - dev: false - - /dotenv@8.6.0: - resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} - engines: {node: '>=10'} - dev: false + esrecurse: 4.3.0 + estraverse: 5.3.0 - /dreamopt@0.8.0: - resolution: {integrity: sha512-vyJTp8+mC+G+5dfgsY+r3ckxlz+QMX40VjPQsZc5gxVAxLmi64TBoVkP54A/pRAXMXsbu2GMMBrZPxNv23waMg==} - engines: {node: '>=0.4.0'} - dependencies: - wordwrap: 1.0.0 - dev: true + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - /drizzle-kit@0.20.14: - resolution: {integrity: sha512-0fHv3YIEaUcSVPSGyaaBfOi9bmpajjhbJNdPsRMIUvYdLVxBu9eGjH8mRc3Qk7HVmEidFc/lhG1YyJhoXrn5yA==} + /eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@drizzle-team/studio': 0.0.39 - '@esbuild-kit/esm-loader': 2.6.5 - camelcase: 7.0.1 - chalk: 5.3.0 - commander: 9.5.0 - env-paths: 3.0.0 - esbuild: 0.19.12 - esbuild-register: 3.5.0(esbuild@0.19.12) - glob: 8.1.0 - hanji: 0.0.5 - json-diff: 0.9.0 - minimatch: 7.4.6 - semver: 7.6.0 - zod: 3.22.4 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/regexpp': 4.6.2 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.0 + '@humanwhocodes/config-array': 0.11.14 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 + 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.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.21.0 + graphemer: 1.4.0 + ignore: 5.2.4 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.3 + strip-ansi: 6.0.1 + text-table: 0.2.0 transitivePeerDependencies: - supports-color + + /esm-env@1.0.0: + resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==} dev: true - /drizzle-orm@0.29.5(@types/better-sqlite3@7.6.9)(@types/react@18.2.78)(better-sqlite3@9.5.0)(react@18.2.0): - resolution: {integrity: sha512-jS3+uyzTz4P0Y2CICx8FmRQ1eplURPaIMWDn/yq6k4ShRFj9V7vlJk67lSf2kyYPzQ60GkkNGXcJcwrxZ6QCRw==} - peerDependencies: - '@aws-sdk/client-rds-data': '>=3' - '@cloudflare/workers-types': '>=3' - '@libsql/client': '*' - '@neondatabase/serverless': '>=0.1' - '@opentelemetry/api': ^1.4.1 - '@planetscale/database': '>=1' - '@types/better-sqlite3': '*' - '@types/pg': '*' - '@types/react': '>=18' - '@types/sql.js': '*' - '@vercel/postgres': '*' - better-sqlite3: '>=7' - bun-types: '*' - expo-sqlite: '>=13.2.0' - knex: '*' - kysely: '*' - mysql2: '>=2' - pg: '>=8' - postgres: '>=3' - react: '>=18' - sql.js: '>=1' - sqlite3: '>=5' - peerDependenciesMeta: - '@aws-sdk/client-rds-data': - optional: true - '@cloudflare/workers-types': - optional: true - '@libsql/client': - optional: true - '@neondatabase/serverless': - optional: true - '@opentelemetry/api': - optional: true - '@planetscale/database': - optional: true - '@types/better-sqlite3': - optional: true - '@types/pg': - optional: true - '@types/react': - optional: true - '@types/sql.js': - optional: true - '@vercel/postgres': - optional: true - better-sqlite3: - optional: true - bun-types: - optional: true - expo-sqlite: - optional: true - knex: - optional: true - kysely: - optional: true - mysql2: - optional: true - pg: - optional: true - postgres: - optional: true - react: - optional: true - sql.js: - optional: true - sqlite3: - optional: true + /esniff@2.0.1: + resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==} + engines: {node: '>=0.10'} dependencies: - '@types/better-sqlite3': 7.6.9 - '@types/react': 18.2.78 - better-sqlite3: 9.5.0 - react: 18.2.0 - dev: false + d: 1.0.2 + es5-ext: 0.10.64 + event-emitter: 0.3.5 + type: 2.7.2 + dev: true - /dset@3.1.3: - resolution: {integrity: sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==} - engines: {node: '>=4'} - dev: false + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) + eslint-visitor-keys: 3.4.3 - /duplexer@0.1.2: - resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true dev: false - /eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 - /ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 - /electron-to-chromium@1.4.733: - resolution: {integrity: sha512-gUI9nhI2iBGF0OaYYLKOaOtliFMl+Bt1rY7VmEjwxOxqoYLub/D9xmduPEhbw2imE6gYkJKhIE5it+KE2ulVxQ==} + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} - /elkjs@0.9.2: - resolution: {integrity: sha512-2Y/RaA1pdgSHpY0YG4TYuYCD2wh97CRvu22eLG3Kz0pgQ/6KbIFTxsTnDc4MH/6hFlg2L/9qXrDMG0nMjP63iw==} + /estree-util-attach-comments@2.1.1: + resolution: {integrity: sha512-+5Ba/xGGS6mnwFbXIuQiDPTbuTxuMCooq3arVv7gPZtYpjp+VXH/NkHAP35OOefPhNG/UGqU3vt/LTABwcHX0w==} + dependencies: + '@types/estree': 1.0.1 dev: false - /elysia@0.8.17(typescript@5.4.5): - resolution: {integrity: sha512-hqKHKUxbvlDHnobudtna5nBoGiZ4oa0xdnhynLAJF3+6gTYHAcQ/8/IyxUx5Az5Uy0zTuNiv7m2bIFu7xeMiWg==} - peerDependencies: - '@sinclair/typebox': '>= 0.31.0' - openapi-types: '>= 12.0.0' - typescript: '>= 5.0.0' - peerDependenciesMeta: - '@sinclair/typebox': - optional: true - openapi-types: - optional: true - typescript: - optional: true + /estree-util-build-jsx@2.2.2: + resolution: {integrity: sha512-m56vOXcOBuaF+Igpb9OPAy7f9w9OIkb5yhjsZuaPm7HoGi4oTOQi0h2+yZ+AtKklYFZ+rPC4n0wYCJCEU1ONqg==} dependencies: - cookie: 0.6.0 - eventemitter3: 5.0.1 - fast-decode-uri-component: 1.0.1 - fast-querystring: 1.1.2 - memoirist: 0.1.10 - typescript: 5.4.5 + '@types/estree-jsx': 1.0.0 + estree-util-is-identifier-name: 2.1.0 + estree-walker: 3.0.3 dev: false - /emoji-regex@10.3.0: - resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} + /estree-util-is-identifier-name@2.1.0: + resolution: {integrity: sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ==} dev: false - /emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - - /emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - - /encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} + /estree-util-to-js@1.2.0: + resolution: {integrity: sha512-IzU74r1PK5IMMGZXUVZbmiu4A1uhiPgW5hm1GjcOfr4ZzHaMPpLNJjR7HjXiIOzi25nZDrgFTobHTkV5Q6ITjA==} + dependencies: + '@types/estree-jsx': 1.0.0 + astring: 1.8.6 + source-map: 0.7.4 + dev: false - /end-of-stream@1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + /estree-util-value-to-estree@1.3.0: + resolution: {integrity: sha512-Y+ughcF9jSUJvncXwqRageavjrNPAI+1M/L3BI3PyLp1nmgYTGUXU6t5z1Y7OWuThoDdhPME07bQU+d5LxdJqw==} + engines: {node: '>=12.0.0'} dependencies: - once: 1.4.0 + is-plain-obj: 3.0.0 dev: false - /enhanced-resolve@5.16.0: - resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} - engines: {node: '>=10.13.0'} + /estree-util-visit@1.2.1: + resolution: {integrity: sha512-xbgqcrkIVbIG+lI/gzbvd9SGTJL4zqJKBFttUl5pP27KhAjtMKbX/mQXJ7qgyXpMgVy/zvpm0xoQQaGL8OloOw==} dependencies: - graceful-fs: 4.2.11 - tapable: 2.2.1 + '@types/estree-jsx': 1.0.0 + '@types/unist': 2.0.7 + dev: false + + /estree-walker@0.6.1: + resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==} dev: true - /enquirer@2.4.1: - resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} - engines: {node: '>=8.6'} + /estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + /estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} dependencies: - ansi-colors: 4.1.3 - strip-ansi: 6.0.1 - dev: false + '@types/estree': 1.0.1 - /entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - dev: false + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} - /env-paths@3.0.0: - resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true + /etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} - /error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + /event-emitter@0.3.5: + resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} dependencies: - is-arrayish: 0.2.1 + d: 1.0.2 + es5-ext: 0.10.64 + dev: true + + /event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + + /eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} dev: false - /error-stack-parser-es@0.1.1: - resolution: {integrity: sha512-g/9rfnvnagiNf+DRMHEVGuGuIBlCIMDFoTA616HaP2l9PlCjGjVhD98PNbVSJvmK4TttqT5mV5tInMhoFgi+aA==} + /eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} dev: false - /error-stack-parser@2.1.4: - resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + /events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + /execa@0.8.0: + resolution: {integrity: sha512-zDWS+Rb1E8BlqqhALSt9kUhss8Qq4nN3iof3gsOdyINksElaPyNBtKUMTR62qhvgVWR0CqCX7sdnKe4MnUbFEA==} + engines: {node: '>=4'} dependencies: - stackframe: 1.3.4 + cross-spawn: 5.1.0 + get-stream: 3.0.0 + is-stream: 1.1.0 + npm-run-path: 2.0.2 + p-finally: 1.0.0 + signal-exit: 3.0.7 + strip-eof: 1.0.0 dev: false - /es-abstract@1.23.3: - resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} - engines: {node: '>= 0.4'} + /execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} dependencies: - array-buffer-byte-length: 1.0.1 - arraybuffer.prototype.slice: 1.0.3 - available-typed-arrays: 1.0.7 - call-bind: 1.0.7 - data-view-buffer: 1.0.1 - data-view-byte-length: 1.0.1 - data-view-byte-offset: 1.0.0 - es-define-property: 1.0.0 - es-errors: 1.3.0 - es-object-atoms: 1.0.0 - es-set-tostringtag: 2.0.3 - es-to-primitive: 1.2.1 - function.prototype.name: 1.1.6 - get-intrinsic: 1.2.4 - get-symbol-description: 1.0.2 - globalthis: 1.0.3 - gopd: 1.0.1 - has-property-descriptors: 1.0.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 - hasown: 2.0.2 - internal-slot: 1.0.7 - is-array-buffer: 3.0.4 - is-callable: 1.2.7 - is-data-view: 1.0.1 - is-negative-zero: 2.0.3 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.3 - is-string: 1.0.7 - is-typed-array: 1.1.13 - is-weakref: 1.0.2 - object-inspect: 1.13.1 - object-keys: 1.1.1 - object.assign: 4.1.5 - regexp.prototype.flags: 1.5.2 - safe-array-concat: 1.1.2 - safe-regex-test: 1.0.3 - string.prototype.trim: 1.2.9 - string.prototype.trimend: 1.0.8 - string.prototype.trimstart: 1.0.8 - typed-array-buffer: 1.0.2 - typed-array-byte-length: 1.0.1 - typed-array-byte-offset: 1.0.2 - typed-array-length: 1.0.6 - unbox-primitive: 1.0.2 - which-typed-array: 1.1.15 + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 - /es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} - engines: {node: '>= 0.4'} + /execa@7.2.0: + resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} dependencies: - get-intrinsic: 1.2.4 - - /es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 4.3.1 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 3.0.7 + strip-final-newline: 3.0.0 - /es-iterator-helpers@1.0.18: - resolution: {integrity: sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==} - engines: {node: '>= 0.4'} + /execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-errors: 1.3.0 - es-set-tostringtag: 2.0.3 - function-bind: 1.1.2 - get-intrinsic: 1.2.4 - globalthis: 1.0.3 - has-property-descriptors: 1.0.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 - internal-slot: 1.0.7 - iterator.prototype: 1.1.2 - safe-array-concat: 1.1.2 + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 - /es-module-lexer@1.5.0: - resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==} + /exit-hook@2.2.1: + resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==} + engines: {node: '>=6'} + dev: true + + /expand-template@2.0.3: + resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} + engines: {node: '>=6'} + requiresBuild: true dev: false + optional: true - /es-object-atoms@1.0.0: - resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} - engines: {node: '>= 0.4'} + /exponential-backoff@3.1.1: + resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} + + /express@4.19.2: + resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} + engines: {node: '>= 0.10.0'} dependencies: - es-errors: 1.3.0 + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.2 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookie: 0.6.0 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.2.0 + fresh: 0.5.2 + http-errors: 2.0.0 + merge-descriptors: 1.0.1 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.7 + proxy-addr: 2.0.7 + qs: 6.11.0 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.18.0 + serve-static: 1.15.0 + setprototypeof: 1.2.0 + statuses: 2.0.1 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color - /es-set-tostringtag@2.0.3: - resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} - engines: {node: '>= 0.4'} + /ext@1.7.0: + resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} dependencies: - get-intrinsic: 1.2.4 - has-tostringtag: 1.0.2 - hasown: 2.0.2 + type: 2.7.2 + dev: true - /es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + /extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} dependencies: - hasown: 2.0.2 + is-extendable: 0.1.1 + dev: false - /es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} - dependencies: - is-callable: 1.2.7 - is-date-object: 1.0.5 - is-symbol: 1.0.4 + /extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + dev: false - /es5-ext@0.10.64: - resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==} - engines: {node: '>=0.10'} - requiresBuild: true + /extendable-error@0.1.7: + resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} + dev: false + + /external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} dependencies: - es6-iterator: 2.0.3 - es6-symbol: 3.1.4 - esniff: 2.0.1 - next-tick: 1.1.0 - dev: true + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + dev: false - /es6-iterator@2.0.3: - resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} + /externality@1.0.2: + resolution: {integrity: sha512-LyExtJWKxtgVzmgtEHyQtLFpw1KFhQphF9nTG8TpAIVkiI/xQ3FJh75tRFLYl4hkn7BNIIdLJInuDAavX35pMw==} dependencies: - d: 1.0.2 - es5-ext: 0.10.64 - es6-symbol: 3.1.4 - dev: true + enhanced-resolve: 5.15.0 + mlly: 1.6.1 + pathe: 1.1.2 + ufo: 1.5.3 - /es6-promise@3.3.1: - resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} + /fake-indexeddb@5.0.2: + resolution: {integrity: sha512-cB507r5T3D55DfclY01GLkninZLfU7HXV/mhVRTnTRm5k2u+fY7Fof2dBkr80p5t7G7dlA/G5dI87QiMdPpMCQ==} + engines: {node: '>=18'} dev: true - /es6-symbol@3.1.4: - resolution: {integrity: sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==} - engines: {node: '>=0.12'} + /fast-check@3.18.0: + resolution: {integrity: sha512-/951xaT0kA40w0GXRsZXEwSTE7LugjZtSA/8vPgFkiPQ8wNp8tRvqWuNDHBgLxJYXtsK11e/7Q4ObkKW5BdTFQ==} + engines: {node: '>=8.0.0'} dependencies: - d: 1.0.2 - ext: 1.7.0 - dev: true + pure-rand: 6.1.0 + dev: false - /es6-weak-map@2.0.3: - resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==} - dependencies: - d: 1.0.2 - es5-ext: 0.10.64 - es6-iterator: 2.0.3 - es6-symbol: 3.1.4 - dev: true + /fast-content-type-parse@1.1.0: + resolution: {integrity: sha512-fBHHqSTFLVnR61C+gltJuE5GkVQMV0S2nqUO8TJ+5Z3qAKG8vAx4FKai1s5jq/inV1+sREynIWSuQ6HgoSXpDQ==} - /esbuild-plugin-solid@0.5.0(esbuild@0.20.2)(solid-js@1.8.16): - resolution: {integrity: sha512-ITK6n+0ayGFeDVUZWNMxX+vLsasEN1ILrg4pISsNOQ+mq4ljlJJiuXotInd+HE0MzwTcA9wExT1yzDE2hsqPsg==} - peerDependencies: - esbuild: '>=0.12' - solid-js: '>= 1.0' + /fast-decode-uri-component@1.0.1: + resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==} + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + /fast-fifo@1.3.2: + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + + /fast-glob@3.3.1: + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} + engines: {node: '>=8.6.0'} dependencies: - '@babel/core': 7.24.4 - '@babel/preset-typescript': 7.24.1(@babel/core@7.24.4) - babel-preset-solid: 1.8.16(@babel/core@7.24.4) - esbuild: 0.20.2 - solid-js: 1.8.16 - transitivePeerDependencies: - - supports-color - dev: true + '@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 - /esbuild-register@3.5.0(esbuild@0.19.12): - resolution: {integrity: sha512-+4G/XmakeBAsvJuDugJvtyF1x+XJT4FMocynNpxrvEBViirpfUn2PgNpCHedfWhF4WokNsO/OvMKrmJOIJsI5A==} - peerDependencies: - esbuild: '>=0.12 <1' + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} dependencies: - debug: 4.3.4 - esbuild: 0.19.12 - transitivePeerDependencies: - - supports-color - dev: true + '@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 - /esbuild@0.17.19: - resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.17.19 - '@esbuild/android-arm64': 0.17.19 - '@esbuild/android-x64': 0.17.19 - '@esbuild/darwin-arm64': 0.17.19 - '@esbuild/darwin-x64': 0.17.19 - '@esbuild/freebsd-arm64': 0.17.19 - '@esbuild/freebsd-x64': 0.17.19 - '@esbuild/linux-arm': 0.17.19 - '@esbuild/linux-arm64': 0.17.19 - '@esbuild/linux-ia32': 0.17.19 - '@esbuild/linux-loong64': 0.17.19 - '@esbuild/linux-mips64el': 0.17.19 - '@esbuild/linux-ppc64': 0.17.19 - '@esbuild/linux-riscv64': 0.17.19 - '@esbuild/linux-s390x': 0.17.19 - '@esbuild/linux-x64': 0.17.19 - '@esbuild/netbsd-x64': 0.17.19 - '@esbuild/openbsd-x64': 0.17.19 - '@esbuild/sunos-x64': 0.17.19 - '@esbuild/win32-arm64': 0.17.19 - '@esbuild/win32-ia32': 0.17.19 - '@esbuild/win32-x64': 0.17.19 - dev: true + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - /esbuild@0.18.20: - resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.18.20 - '@esbuild/android-arm64': 0.18.20 - '@esbuild/android-x64': 0.18.20 - '@esbuild/darwin-arm64': 0.18.20 - '@esbuild/darwin-x64': 0.18.20 - '@esbuild/freebsd-arm64': 0.18.20 - '@esbuild/freebsd-x64': 0.18.20 - '@esbuild/linux-arm': 0.18.20 - '@esbuild/linux-arm64': 0.18.20 - '@esbuild/linux-ia32': 0.18.20 - '@esbuild/linux-loong64': 0.18.20 - '@esbuild/linux-mips64el': 0.18.20 - '@esbuild/linux-ppc64': 0.18.20 - '@esbuild/linux-riscv64': 0.18.20 - '@esbuild/linux-s390x': 0.18.20 - '@esbuild/linux-x64': 0.18.20 - '@esbuild/netbsd-x64': 0.18.20 - '@esbuild/openbsd-x64': 0.18.20 - '@esbuild/sunos-x64': 0.18.20 - '@esbuild/win32-arm64': 0.18.20 - '@esbuild/win32-ia32': 0.18.20 - '@esbuild/win32-x64': 0.18.20 + /fast-json-stringify@5.14.1: + resolution: {integrity: sha512-J1Grbf0oSXV3lKsBf3itz1AvRk43qVrx3Ac10sNvi3LZaz1by4oDdYKFrJycPhS8+Gb7y8rgV/Jqw1UZVjyNvw==} + dependencies: + '@fastify/merge-json-schemas': 0.1.1 + ajv: 8.12.0 + ajv-formats: 3.0.1(ajv@8.12.0) + fast-deep-equal: 3.1.3 + fast-uri: 2.3.0 + json-schema-ref-resolver: 1.0.1 + rfdc: 1.3.1 - /esbuild@0.19.12: - resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/aix-ppc64': 0.19.12 - '@esbuild/android-arm': 0.19.12 - '@esbuild/android-arm64': 0.19.12 - '@esbuild/android-x64': 0.19.12 - '@esbuild/darwin-arm64': 0.19.12 - '@esbuild/darwin-x64': 0.19.12 - '@esbuild/freebsd-arm64': 0.19.12 - '@esbuild/freebsd-x64': 0.19.12 - '@esbuild/linux-arm': 0.19.12 - '@esbuild/linux-arm64': 0.19.12 - '@esbuild/linux-ia32': 0.19.12 - '@esbuild/linux-loong64': 0.19.12 - '@esbuild/linux-mips64el': 0.19.12 - '@esbuild/linux-ppc64': 0.19.12 - '@esbuild/linux-riscv64': 0.19.12 - '@esbuild/linux-s390x': 0.19.12 - '@esbuild/linux-x64': 0.19.12 - '@esbuild/netbsd-x64': 0.19.12 - '@esbuild/openbsd-x64': 0.19.12 - '@esbuild/sunos-x64': 0.19.12 - '@esbuild/win32-arm64': 0.19.12 - '@esbuild/win32-ia32': 0.19.12 - '@esbuild/win32-x64': 0.19.12 + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - /esbuild@0.20.2: - resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/aix-ppc64': 0.20.2 - '@esbuild/android-arm': 0.20.2 - '@esbuild/android-arm64': 0.20.2 - '@esbuild/android-x64': 0.20.2 - '@esbuild/darwin-arm64': 0.20.2 - '@esbuild/darwin-x64': 0.20.2 - '@esbuild/freebsd-arm64': 0.20.2 - '@esbuild/freebsd-x64': 0.20.2 - '@esbuild/linux-arm': 0.20.2 - '@esbuild/linux-arm64': 0.20.2 - '@esbuild/linux-ia32': 0.20.2 - '@esbuild/linux-loong64': 0.20.2 - '@esbuild/linux-mips64el': 0.20.2 - '@esbuild/linux-ppc64': 0.20.2 - '@esbuild/linux-riscv64': 0.20.2 - '@esbuild/linux-s390x': 0.20.2 - '@esbuild/linux-x64': 0.20.2 - '@esbuild/netbsd-x64': 0.20.2 - '@esbuild/openbsd-x64': 0.20.2 - '@esbuild/sunos-x64': 0.20.2 - '@esbuild/win32-arm64': 0.20.2 - '@esbuild/win32-ia32': 0.20.2 - '@esbuild/win32-x64': 0.20.2 + /fast-querystring@1.1.2: + resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==} + dependencies: + fast-decode-uri-component: 1.0.1 - /escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + /fast-redact@3.5.0: + resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==} engines: {node: '>=6'} - /escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + /fast-uri@2.3.0: + resolution: {integrity: sha512-eel5UKGn369gGEWOqBShmFJWfq/xSJvsgDzgLYC845GneayWvXBf0lJCBn5qTABfewy1ZDPoaR5OZCP+kssfuw==} - /escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} + /fastify-plugin@4.5.1: + resolution: {integrity: sha512-stRHYGeuqpEZTL1Ef0Ovr2ltazUT9g844X5z/zEBFLG8RYlpDiOCIG+ATvYEp+/zmc7sN29mcIMp8gvYplYPIQ==} + dev: false - /escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} + /fastify@4.26.2: + resolution: {integrity: sha512-90pjTuPGrfVKtdpLeLzND5nyC4woXZN5VadiNQCicj/iJU4viNHKhsAnb7jmv1vu2IzkLXyBiCzdWuzeXgQ5Ug==} + dependencies: + '@fastify/ajv-compiler': 3.5.0 + '@fastify/error': 3.4.1 + '@fastify/fast-json-stringify-compiler': 4.3.0 + abstract-logging: 2.0.1 + avvio: 8.3.0 + fast-content-type-parse: 1.1.0 + fast-json-stringify: 5.14.1 + find-my-way: 8.1.0 + light-my-request: 5.13.0 + pino: 8.20.0 + process-warning: 3.0.0 + proxy-addr: 2.0.7 + rfdc: 1.3.1 + secure-json-parse: 2.7.0 + semver: 7.5.4 + toad-cache: 3.7.0 + transitivePeerDependencies: + - supports-color - /escape-string-regexp@5.0.0: - resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} - engines: {node: '>=12'} - dev: false + /fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + dependencies: + reusify: 1.0.4 - /eslint-compat-utils@0.5.0(eslint@8.57.0): - resolution: {integrity: sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==} - engines: {node: '>=12'} - peerDependencies: - eslint: '>=6.0.0' + /fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} dependencies: - eslint: 8.57.0 - semver: 7.6.0 + reusify: 1.0.4 + + /fetch-blob@3.2.0: + resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} + engines: {node: ^12.20 || >= 14.13} + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 3.3.3 dev: false - /eslint-config-next@14.2.1(eslint@8.57.0)(typescript@5.4.5): - resolution: {integrity: sha512-BgD0kPCWMlqoItRf3xe9fG0MqwObKfVch+f2ccwDpZiCJA8ghkz2wrASH+bI6nLZzGcOJOpMm1v1Q1euhfpt4Q==} - peerDependencies: - eslint: ^7.23.0 || ^8.0.0 - typescript: '>=3.3.1' - peerDependenciesMeta: - typescript: - optional: true + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: - '@next/eslint-plugin-next': 14.2.1 - '@rushstack/eslint-patch': 1.10.2 - '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.5) - eslint: 8.57.0 - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.6.0)(eslint@8.57.0) - eslint-plugin-jsx-a11y: 6.8.0(eslint@8.57.0) - eslint-plugin-react: 7.34.1(eslint@8.57.0) - eslint-plugin-react-hooks: 4.6.0(eslint@8.57.0) - typescript: 5.4.5 - transitivePeerDependencies: - - eslint-import-resolver-webpack - - supports-color - dev: true + flat-cache: 3.0.4 - /eslint-config-prettier@9.1.0(eslint@8.57.0): - resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' + /file-selector@0.6.0: + resolution: {integrity: sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw==} + engines: {node: '>= 12'} dependencies: - eslint: 8.57.0 + tslib: 2.6.2 dev: false - /eslint-config-turbo@1.13.2(eslint@8.57.0): - resolution: {integrity: sha512-TzvsMwNJx/P4JYw79iFqbyQApnyT050gW7dBxnNeNVl3pVMnT2rwaFo9Q3Hc49Tp5NANxEwYN9RStF50P/IwGA==} - peerDependencies: - eslint: '>6.6.0' + /file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} dependencies: - eslint: 8.57.0 - eslint-plugin-turbo: 1.13.2(eslint@8.57.0) - dev: false + to-regex-range: 5.0.1 - /eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + /finalhandler@1.2.0: + resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + engines: {node: '>= 0.8'} dependencies: - debug: 3.2.7 - is-core-module: 2.13.1 - resolve: 1.22.8 + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + unpipe: 1.0.0 transitivePeerDependencies: - supports-color - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0): - resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - eslint: '*' - eslint-plugin-import: '*' + /find-my-way@8.1.0: + resolution: {integrity: sha512-41QwjCGcVTODUmLLqTMeoHeiozbMXYMAE1CKFiDyi9zVZ2Vjh0yz3MF0WQZoIb+cmzP/XlbFjlF2NtJmvZHznA==} + engines: {node: '>=14'} dependencies: - debug: 4.3.4 - enhanced-resolve: 5.16.0 - eslint: 8.57.0 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.6.0)(eslint@8.57.0) - fast-glob: 3.3.2 - get-tsconfig: 4.7.3 - is-core-module: 2.13.1 - is-glob: 4.0.3 - transitivePeerDependencies: - - '@typescript-eslint/parser' - - eslint-import-resolver-node - - eslint-import-resolver-webpack - - supports-color - dev: true + fast-deep-equal: 3.1.3 + fast-querystring: 1.1.2 + safe-regex2: 2.0.0 - /eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): - resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} - 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 + /find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} dependencies: - '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.5) - debug: 3.2.7 - eslint: 8.57.0 - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0) - transitivePeerDependencies: - - supports-color - dev: true + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: false - /eslint-module-utils@2.8.1(@typescript-eslint/parser@7.6.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): - resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} - 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 + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} dependencies: - '@typescript-eslint/parser': 7.6.0(eslint@8.57.0)(typescript@5.4.5) - debug: 3.2.7 - eslint: 8.57.0 - eslint-import-resolver-node: 0.3.9 - transitivePeerDependencies: - - supports-color + locate-path: 6.0.0 + path-exists: 4.0.0 - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.6.0)(eslint@8.57.0): - resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true + /find-yarn-workspace-root2@1.2.16: + resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} dependencies: - '@typescript-eslint/parser': 7.6.0(eslint@8.57.0)(typescript@5.4.5) - array-includes: 3.1.8 - array.prototype.findlastindex: 1.2.5 - array.prototype.flat: 1.3.2 - array.prototype.flatmap: 1.3.2 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 8.57.0 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.6.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) - hasown: 2.0.2 - is-core-module: 2.13.1 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - object.groupby: 1.0.3 - object.values: 1.2.0 - semver: 6.3.1 - tsconfig-paths: 3.15.0 - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color + micromatch: 4.0.5 + pkg-dir: 4.2.0 + dev: false - /eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0): - resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} - engines: {node: '>=4.0'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + /flat-cache@3.0.4: + resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: - '@babel/runtime': 7.24.4 - aria-query: 5.3.0 - array-includes: 3.1.8 - array.prototype.flatmap: 1.3.2 - ast-types-flow: 0.0.8 - axe-core: 4.7.0 - axobject-query: 3.2.1 - damerau-levenshtein: 1.0.8 - emoji-regex: 9.2.2 - es-iterator-helpers: 1.0.18 - eslint: 8.57.0 - hasown: 2.0.2 - jsx-ast-utils: 3.3.5 - language-tags: 1.0.9 - minimatch: 3.1.2 - object.entries: 1.1.8 - object.fromentries: 2.0.8 - dev: true + flatted: 3.2.7 + rimraf: 3.0.2 + + /flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + + /flatted@3.2.7: + resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} - /eslint-plugin-react-hooks@4.6.0(eslint@8.57.0): - resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} - engines: {node: '>=10'} + /flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + + /flattie@1.1.1: + resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} + engines: {node: '>=8'} + dev: false + + /flexsearch@0.7.31: + resolution: {integrity: sha512-XGozTsMPYkm+6b5QL3Z9wQcJjNYxp0CYn3U1gO7dwD6PAqU1SVWZxI9CCg3z+ml3YfqdPnrBehaBrnH2AGKbNA==} + dev: false + + /floating-vue@5.2.2(@nuxt/kit@3.11.2)(vue@3.4.25): + resolution: {integrity: sha512-afW+h2CFafo+7Y9Lvw/xsqjaQlKLdJV7h1fCHfcYQ1C4SVMlu7OAekqWgu5d4SgvkBVU0pVpLlVsrSTBURFRkg==} peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + '@nuxt/kit': ^3.2.0 + vue: ^3.2.0 + peerDependenciesMeta: + '@nuxt/kit': + optional: true dependencies: - eslint: 8.57.0 + '@floating-ui/dom': 1.1.1 + '@nuxt/kit': 3.11.2(rollup@3.29.4) + vue: 3.4.25(typescript@5.4.5) + vue-resize: 2.0.0-alpha.1(vue@3.4.25) + dev: true - /eslint-plugin-react@7.34.1(eslint@8.57.0): - resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==} - engines: {node: '>=4'} + /floating-vue@5.2.2(vue@3.4.24): + resolution: {integrity: sha512-afW+h2CFafo+7Y9Lvw/xsqjaQlKLdJV7h1fCHfcYQ1C4SVMlu7OAekqWgu5d4SgvkBVU0pVpLlVsrSTBURFRkg==} peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + '@nuxt/kit': ^3.2.0 + vue: ^3.2.0 + peerDependenciesMeta: + '@nuxt/kit': + optional: true dependencies: - array-includes: 3.1.8 - array.prototype.findlast: 1.2.5 - array.prototype.flatmap: 1.3.2 - array.prototype.toreversed: 1.1.2 - array.prototype.tosorted: 1.1.3 - doctrine: 2.1.0 - es-iterator-helpers: 1.0.18 - eslint: 8.57.0 - estraverse: 5.3.0 - jsx-ast-utils: 3.3.5 - minimatch: 3.1.2 - object.entries: 1.1.8 - object.fromentries: 2.0.8 - object.hasown: 1.1.4 - object.values: 1.2.0 - prop-types: 15.8.1 - resolve: 2.0.0-next.5 - semver: 6.3.1 - string.prototype.matchall: 4.0.11 + '@floating-ui/dom': 1.1.1 + vue: 3.4.24(typescript@5.4.5) + vue-resize: 2.0.0-alpha.1(vue@3.4.24) - /eslint-plugin-svelte@2.36.0(eslint@8.57.0): - resolution: {integrity: sha512-D30hSj13Y8YEn7yGXos7EYp0lpEb3Z2V/M+6a3MZ13KGVhaefdW2A9j8IBIcW4YR+j6fo901USzLeXQz/XbWeQ==} - engines: {node: ^14.17.0 || >=16.0.0} + /focus-trap@7.5.4: + resolution: {integrity: sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==} + dependencies: + tabbable: 6.2.0 + + /focus-visible@5.2.0: + resolution: {integrity: sha512-Rwix9pBtC1Nuy5wysTmKy+UjbDJpIfg8eHjw0rjZ1mX4GNLz1Bmd16uDpI3Gk1i70Fgcs8Csg2lPm8HULFg9DQ==} + dev: false + + /follow-redirects@1.15.2: + resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} + engines: {node: '>=4.0'} peerDependencies: - eslint: ^7.0.0 || ^8.0.0-0 || ^9.0.0-0 - svelte: ^3.37.0 || ^4.0.0 || ^5.0.0-next.95 + debug: '*' peerDependenciesMeta: - svelte: + debug: optional: true - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@jridgewell/sourcemap-codec': 1.4.15 - debug: 4.3.4 - eslint: 8.57.0 - eslint-compat-utils: 0.5.0(eslint@8.57.0) - esutils: 2.0.3 - known-css-properties: 0.30.0 - postcss: 8.4.38 - postcss-load-config: 3.1.4(postcss@8.4.38) - postcss-safe-parser: 6.0.0(postcss@8.4.38) - postcss-selector-parser: 6.0.16 - semver: 7.6.0 - svelte-eslint-parser: 0.34.1 - transitivePeerDependencies: - - supports-color - - ts-node dev: false - /eslint-plugin-turbo@1.13.2(eslint@8.57.0): - resolution: {integrity: sha512-QNaihF0hTRjfOBd1SLHrftm8V3pOU35CNS/C0/Z6qY1xxdL1PSv4IctEIldSMX7/A1jOPYwMPO7wYwPXgjgp/g==} + /follow-redirects@1.15.6: + resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + engines: {node: '>=4.0'} peerDependencies: - eslint: '>6.6.0' + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} dependencies: - dotenv: 16.0.3 - eslint: 8.57.0 + is-callable: 1.2.7 + + /foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + engines: {node: '>=14'} + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + + /form-data-encoder@2.1.4: + resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} + engines: {node: '>= 14.17'} dev: false - /eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /form-data@3.0.1: + resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} + engines: {node: '>= 6'} dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: false - /eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /form-data@4.0.0: + 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 - /eslint@8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true + /formdata-node@4.4.1: + resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} + engines: {node: '>= 12.20'} dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@eslint-community/regexpp': 4.10.0 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.0 - '@humanwhocodes/config-array': 0.11.14 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 - 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.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.5.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 - ignore: 5.3.1 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.3 - strip-ansi: 6.0.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color + node-domexception: 1.0.0 + web-streams-polyfill: 4.0.0-beta.3 + dev: false - /esm-env@1.0.0: - resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==} + /formdata-polyfill@4.0.10: + resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} + engines: {node: '>=12.20.0'} + dependencies: + fetch-blob: 3.2.0 + dev: false + + /forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + + /fraction.js@4.2.0: + resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} dev: true - /esniff@2.0.1: - resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==} - engines: {node: '>=0.10'} + /fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + + /framework-utils@1.1.0: + resolution: {integrity: sha512-KAfqli5PwpFJ8o3psRNs8svpMGyCSAe8nmGcjQ0zZBWN2H6dZDnq+ABp3N3hdUmFeMrLtjOCTXD4yplUJIWceg==} + dev: false + + /fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + + /fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + requiresBuild: true + dev: false + optional: true + + /fs-extra@11.1.1: + resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} + engines: {node: '>=14.14'} dependencies: - d: 1.0.2 - es5-ext: 0.10.64 - event-emitter: 0.3.5 - type: 2.7.2 + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.0 + + /fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.0 + + /fs-extra@7.0.1: + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + dev: false + + /fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + dev: false + + /fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + + /fs-minipass@3.0.3: + resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + minipass: 7.0.3 + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + /fsevents@2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true dev: true + optional: true + + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + optional: true - /espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - acorn: 8.11.3 - acorn-jsx: 5.3.2(acorn@8.11.3) - eslint-visitor-keys: 3.4.3 + /function-bind@1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - /esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - dev: false + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - /esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} - engines: {node: '>=0.10'} + /function.prototype.name@1.1.5: + resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + engines: {node: '>= 0.4'} dependencies: - estraverse: 5.3.0 + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + functions-have-names: 1.2.3 - /esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} dependencies: - estraverse: 5.3.0 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + functions-have-names: 1.2.3 - /estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - /estree-util-attach-comments@2.1.1: - resolution: {integrity: sha512-+5Ba/xGGS6mnwFbXIuQiDPTbuTxuMCooq3arVv7gPZtYpjp+VXH/NkHAP35OOefPhNG/UGqU3vt/LTABwcHX0w==} - dependencies: - '@types/estree': 1.0.5 + /fuse.js@6.6.2: + resolution: {integrity: sha512-cJaJkxCCxC8qIIcPBF9yGxY0W/tVZS3uEISDxhYIdtk8OL93pe+6Zj7LjCqVV4dzbqcriOZ+kQ/NE4RXZHsIGA==} + engines: {node: '>=10'} dev: false - /estree-util-build-jsx@2.2.2: - resolution: {integrity: sha512-m56vOXcOBuaF+Igpb9OPAy7f9w9OIkb5yhjsZuaPm7HoGi4oTOQi0h2+yZ+AtKklYFZ+rPC4n0wYCJCEU1ONqg==} + /gauge@3.0.2: + resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} + engines: {node: '>=10'} dependencies: - '@types/estree-jsx': 1.0.5 - estree-util-is-identifier-name: 2.1.0 - estree-walker: 3.0.3 - dev: false + aproba: 2.0.0 + color-support: 1.1.3 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + object-assign: 4.1.1 + signal-exit: 3.0.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wide-align: 1.1.5 - /estree-util-is-identifier-name@2.1.0: - resolution: {integrity: sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ==} - dev: false + /gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} - /estree-util-to-js@1.2.0: - resolution: {integrity: sha512-IzU74r1PK5IMMGZXUVZbmiu4A1uhiPgW5hm1GjcOfr4ZzHaMPpLNJjR7HjXiIOzi25nZDrgFTobHTkV5Q6ITjA==} + /gesto@1.19.4: + resolution: {integrity: sha512-hfr/0dWwh0Bnbb88s3QVJd1ZRJeOWcgHPPwmiH6NnafDYvhTsxg+SLYu+q/oPNh9JS3V+nlr6fNs8kvPAtcRDQ==} dependencies: - '@types/estree-jsx': 1.0.5 - astring: 1.8.6 - source-map: 0.7.4 + '@daybrush/utils': 1.13.0 + '@scena/event-emitter': 1.0.5 dev: false - /estree-util-value-to-estree@1.3.0: - resolution: {integrity: sha512-Y+ughcF9jSUJvncXwqRageavjrNPAI+1M/L3BI3PyLp1nmgYTGUXU6t5z1Y7OWuThoDdhPME07bQU+d5LxdJqw==} - engines: {node: '>=12.0.0'} - dependencies: - is-plain-obj: 3.0.0 - dev: false + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} - /estree-util-visit@1.2.1: - resolution: {integrity: sha512-xbgqcrkIVbIG+lI/gzbvd9SGTJL4zqJKBFttUl5pP27KhAjtMKbX/mQXJ7qgyXpMgVy/zvpm0xoQQaGL8OloOw==} - dependencies: - '@types/estree-jsx': 1.0.5 - '@types/unist': 2.0.10 + /get-east-asian-width@1.2.0: + resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} + engines: {node: '>=18'} dev: false - /estree-walker@0.6.1: - resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==} - dev: true - - /estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + /get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - /estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + /get-intrinsic@1.2.1: + resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} dependencies: - '@types/estree': 1.0.5 - - /esutils@2.0.3: - 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'} + function-bind: 1.1.1 + has: 1.0.3 + has-proto: 1.0.1 + has-symbols: 1.0.3 - /event-emitter@0.3.5: - resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} + /get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} dependencies: - d: 1.0.2 - es5-ext: 0.10.64 - dev: true + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.1 + has-symbols: 1.0.3 + hasown: 2.0.2 - /event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + /get-nonce@1.0.1: + resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} engines: {node: '>=6'} - - /eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} dev: false - /eventemitter3@5.0.1: - resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + /get-own-enumerable-property-symbols@3.0.2: + resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} dev: false - /events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} + /get-port-please@3.1.2: + resolution: {integrity: sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==} - /execa@0.8.0: - resolution: {integrity: sha512-zDWS+Rb1E8BlqqhALSt9kUhss8Qq4nN3iof3gsOdyINksElaPyNBtKUMTR62qhvgVWR0CqCX7sdnKe4MnUbFEA==} - engines: {node: '>=4'} + /get-source@2.0.12: + resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} dependencies: - cross-spawn: 5.1.0 - get-stream: 3.0.0 - is-stream: 1.1.0 - npm-run-path: 2.0.2 - p-finally: 1.0.0 - signal-exit: 3.0.7 - strip-eof: 1.0.0 + data-uri-to-buffer: 2.0.2 + source-map: 0.6.1 + dev: true + + /get-stream@3.0.0: + resolution: {integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==} + engines: {node: '>=4'} dev: false - /execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + /get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - /execa@7.2.0: - resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} - engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 4.3.1 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.3.0 - onetime: 6.0.0 - signal-exit: 3.0.7 - strip-final-newline: 3.0.0 - dev: false + /get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} - /execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} + /get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} dependencies: - cross-spawn: 7.0.3 - get-stream: 8.0.1 - human-signals: 5.0.0 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.3.0 - onetime: 6.0.0 - signal-exit: 4.1.0 - strip-final-newline: 3.0.0 - dev: false - - /exit-hook@2.2.1: - resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==} - engines: {node: '>=6'} - dev: true - - /expand-template@2.0.3: - resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} - engines: {node: '>=6'} - dev: false + call-bind: 1.0.2 + get-intrinsic: 1.2.1 - /express@4.19.2: - resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} - engines: {node: '>= 0.10.0'} + /get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + engines: {node: '>= 0.4'} dependencies: - accepts: 1.3.8 - array-flatten: 1.1.1 - body-parser: 1.20.2 - content-disposition: 0.5.4 - content-type: 1.0.5 - cookie: 0.6.0 - cookie-signature: 1.0.6 - debug: 2.6.9 - depd: 2.0.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - etag: 1.8.1 - finalhandler: 1.2.0 - fresh: 0.5.2 - http-errors: 2.0.0 - merge-descriptors: 1.0.1 - methods: 1.1.2 - on-finished: 2.4.1 - parseurl: 1.3.3 - path-to-regexp: 0.1.7 - proxy-addr: 2.0.7 - qs: 6.11.0 - range-parser: 1.2.1 - safe-buffer: 5.2.1 - send: 0.18.0 - serve-static: 1.15.0 - setprototypeof: 1.2.0 - statuses: 2.0.1 - type-is: 1.6.18 - utils-merge: 1.0.1 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 - /ext@1.7.0: - resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} + /get-tsconfig@4.7.0: + resolution: {integrity: sha512-pmjiZ7xtB8URYm74PlGJozDNyhvsVLUcpBa8DZBG3bWHwaHa9bPiRpiSfovw+fjhwONSCWKRyk+JQHEGZmMrzw==} dependencies: - type: 2.7.2 + resolve-pkg-maps: 1.0.0 dev: true - /extend-shallow@2.0.1: - resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} - engines: {node: '>=0.10.0'} + /get-tsconfig@4.7.3: + resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} dependencies: - is-extendable: 0.1.1 - dev: false - - /extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - dev: false + resolve-pkg-maps: 1.0.0 + dev: true - /extendable-error@0.1.7: - resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} - dev: false + /giget@1.2.3: + resolution: {integrity: sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==} + hasBin: true + dependencies: + citty: 0.1.6 + consola: 3.2.3 + defu: 6.1.4 + node-fetch-native: 1.6.4 + nypm: 0.3.8 + ohash: 1.1.3 + pathe: 1.1.2 + tar: 6.2.1 - /external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + /git-config-path@2.0.0: + resolution: {integrity: sha512-qc8h1KIQbJpp+241id3GuAtkdyJ+IK+LIVtkiFTRKRrmddDzs3SI9CvP1QYmWBFvm1I/PWRwj//of8bgAc0ltA==} engines: {node: '>=4'} - dependencies: - chardet: 0.7.0 - iconv-lite: 0.4.24 - tmp: 0.0.33 - dev: false - /fast-content-type-parse@1.1.0: - resolution: {integrity: sha512-fBHHqSTFLVnR61C+gltJuE5GkVQMV0S2nqUO8TJ+5Z3qAKG8vAx4FKai1s5jq/inV1+sREynIWSuQ6HgoSXpDQ==} + /git-up@7.0.0: + resolution: {integrity: sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==} + dependencies: + is-ssh: 1.4.0 + parse-url: 8.1.0 - /fast-decode-uri-component@1.0.1: - resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==} + /git-url-parse@13.1.0: + resolution: {integrity: sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA==} + dependencies: + git-up: 7.0.0 + dev: false - /fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + /git-url-parse@14.0.0: + resolution: {integrity: sha512-NnLweV+2A4nCvn4U/m2AoYu0pPKlsmhK9cknG7IMwsjFY1S2jxM+mAhsDxyxfCIGfGaD+dozsyX4b6vkYc83yQ==} + dependencies: + git-up: 7.0.0 - /fast-fifo@1.3.2: - resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + /github-from-package@0.0.0: + resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} requiresBuild: true dev: false + optional: true - /fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - 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==} + /github-slugger@2.0.0: + resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} + dev: false - /fast-json-stringify@5.14.1: - resolution: {integrity: sha512-J1Grbf0oSXV3lKsBf3itz1AvRk43qVrx3Ac10sNvi3LZaz1by4oDdYKFrJycPhS8+Gb7y8rgV/Jqw1UZVjyNvw==} + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} dependencies: - '@fastify/merge-json-schemas': 0.1.1 - ajv: 8.12.0 - ajv-formats: 3.0.1(ajv@8.12.0) - fast-deep-equal: 3.1.3 - fast-uri: 2.3.0 - json-schema-ref-resolver: 1.0.1 - rfdc: 1.3.1 - - /fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + is-glob: 4.0.3 - /fast-querystring@1.1.2: - resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==} + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} dependencies: - fast-decode-uri-component: 1.0.1 - - /fast-redact@3.5.0: - resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==} - engines: {node: '>=6'} + is-glob: 4.0.3 - /fast-uri@2.3.0: - resolution: {integrity: sha512-eel5UKGn369gGEWOqBShmFJWfq/xSJvsgDzgLYC845GneayWvXBf0lJCBn5qTABfewy1ZDPoaR5OZCP+kssfuw==} + /glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - /fastify-plugin@4.5.1: - resolution: {integrity: sha512-stRHYGeuqpEZTL1Ef0Ovr2ltazUT9g844X5z/zEBFLG8RYlpDiOCIG+ATvYEp+/zmc7sN29mcIMp8gvYplYPIQ==} - dev: false + /glob@10.3.10: + resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + dependencies: + foreground-child: 3.1.1 + jackspeak: 2.3.6 + minimatch: 9.0.3 + minipass: 7.0.3 + path-scurry: 1.10.1 - /fastify@4.26.2: - resolution: {integrity: sha512-90pjTuPGrfVKtdpLeLzND5nyC4woXZN5VadiNQCicj/iJU4viNHKhsAnb7jmv1vu2IzkLXyBiCzdWuzeXgQ5Ug==} + /glob@10.3.12: + resolution: {integrity: sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true dependencies: - '@fastify/ajv-compiler': 3.5.0 - '@fastify/error': 3.4.1 - '@fastify/fast-json-stringify-compiler': 4.3.0 - abstract-logging: 2.0.1 - avvio: 8.3.0 - fast-content-type-parse: 1.1.0 - fast-json-stringify: 5.14.1 - find-my-way: 8.1.0 - light-my-request: 5.12.0 - pino: 8.20.0 - process-warning: 3.0.0 - proxy-addr: 2.0.7 - rfdc: 1.3.1 - secure-json-parse: 2.7.0 - semver: 7.6.0 - toad-cache: 3.7.0 - transitivePeerDependencies: - - supports-color + foreground-child: 3.1.1 + jackspeak: 2.3.6 + minimatch: 9.0.4 + minipass: 7.0.4 + path-scurry: 1.10.2 - /fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + /glob@7.1.6: + resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} dependencies: - reusify: 1.0.4 + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 - /figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: - escape-string-regexp: 1.0.5 - dev: false + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 - /file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} + /glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} dependencies: - flat-cache: 3.2.0 + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.6 + once: 1.4.0 - /file-selector@0.6.0: - resolution: {integrity: sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw==} - engines: {node: '>= 12'} + /global-directory@4.0.1: + resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} + engines: {node: '>=18'} dependencies: - tslib: 2.6.2 - dev: false + ini: 4.1.1 - /file-uri-to-path@1.0.0: - resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} - dev: false + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} - /fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + /globals@13.21.0: + resolution: {integrity: sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==} engines: {node: '>=8'} dependencies: - to-regex-range: 5.0.1 + type-fest: 0.20.2 - /finalhandler@1.2.0: - resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} - engines: {node: '>= 0.8'} + /globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} dependencies: - debug: 2.6.9 - encodeurl: 1.0.2 - escape-html: 1.0.3 - on-finished: 2.4.1 - parseurl: 1.3.3 - statuses: 2.0.1 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color + define-properties: 1.2.1 - /find-my-way@8.1.0: - resolution: {integrity: sha512-41QwjCGcVTODUmLLqTMeoHeiozbMXYMAE1CKFiDyi9zVZ2Vjh0yz3MF0WQZoIb+cmzP/XlbFjlF2NtJmvZHznA==} - engines: {node: '>=14'} + /globalyzer@0.1.0: + resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} + dev: true + + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} dependencies: - fast-deep-equal: 3.1.3 - fast-querystring: 1.1.2 - safe-regex2: 2.0.0 + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.1 + ignore: 5.2.4 + merge2: 1.4.1 + slash: 3.0.0 - /find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} + /globby@13.2.2: + resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 - dev: false + dir-glob: 3.0.1 + fast-glob: 3.3.1 + ignore: 5.2.4 + merge2: 1.4.1 + slash: 4.0.0 + dev: true - /find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} + /globby@14.0.1: + resolution: {integrity: sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==} + engines: {node: '>=18'} dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 + '@sindresorhus/merge-streams': 2.3.0 + fast-glob: 3.3.2 + ignore: 5.2.4 + path-type: 5.0.0 + slash: 5.1.0 + unicorn-magic: 0.1.0 + + /globrex@0.1.2: + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.4 - /find-yarn-workspace-root2@1.2.16: - resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} + /got@12.6.1: + resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==} + engines: {node: '>=14.16'} dependencies: - micromatch: 4.0.5 - pkg-dir: 4.2.0 + '@sindresorhus/is': 5.6.0 + '@szmarczak/http-timer': 5.0.1 + cacheable-lookup: 7.0.0 + cacheable-request: 10.2.14 + decompress-response: 6.0.0 + form-data-encoder: 2.1.4 + get-stream: 6.0.1 + http2-wrapper: 2.2.1 + lowercase-keys: 3.0.0 + p-cancelable: 3.0.0 + responselike: 3.0.0 dev: false - /flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flatted: 3.3.1 - keyv: 4.5.4 - rimraf: 3.0.2 + /graceful-fs@4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + dev: false - /flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - /flattie@1.1.1: - resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} - engines: {node: '>=8'} + /grapheme-splitter@1.0.4: + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} dev: false - /flexsearch@0.7.43: - resolution: {integrity: sha512-c5o/+Um8aqCSOXGcZoqZOm+NqtVwNsvVpWv6lfmSclU954O3wvQKxxK8zj74fPaSJbXpSLTs4PRhh+wnoCXnKg==} - dev: false + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - /focus-visible@5.2.0: - resolution: {integrity: sha512-Rwix9pBtC1Nuy5wysTmKy+UjbDJpIfg8eHjw0rjZ1mX4GNLz1Bmd16uDpI3Gk1i70Fgcs8Csg2lPm8HULFg9DQ==} + /graphql@16.8.1: + resolution: {integrity: sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==} + engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} dev: false - /follow-redirects@1.15.6: - resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - - /for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + /gray-matter@4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} dependencies: - is-callable: 1.2.7 + js-yaml: 3.14.1 + kind-of: 6.0.3 + section-matter: 1.0.0 + strip-bom-string: 1.0.0 + dev: false - /foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} - engines: {node: '>=14'} + /gzip-size@6.0.0: + resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} + engines: {node: '>=10'} dependencies: - cross-spawn: 7.0.3 - signal-exit: 4.1.0 - - /form-data-encoder@2.1.4: - resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} - engines: {node: '>= 14.17'} - dev: false + duplexer: 0.1.2 - /form-data@3.0.1: - resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} - engines: {node: '>= 6'} + /gzip-size@7.0.0: + resolution: {integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - dev: false + duplexer: 0.1.2 - /form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} - engines: {node: '>= 6'} + /h3@1.11.1: + resolution: {integrity: sha512-AbaH6IDnZN6nmbnJOH72y3c5Wwh9P97soSVdGSBbcDACRdkC0FEWf25pzx4f/NuOCK6quHmW18yF2Wx+G4Zi1A==} dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 + cookie-es: 1.0.0 + crossws: 0.2.4 + defu: 6.1.4 + destr: 2.0.3 + iron-webcrypto: 1.1.1 + ohash: 1.1.3 + radix3: 1.1.2 + ufo: 1.5.3 + uncrypto: 0.1.3 + unenv: 1.9.0 + transitivePeerDependencies: + - uWebSockets.js - /formdata-node@4.4.1: - resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} - engines: {node: '>= 12.20'} + /hanji@0.0.5: + resolution: {integrity: sha512-Abxw1Lq+TnYiL4BueXqMau222fPSPMFtya8HdpWsz/xVAhifXou71mPh/kY2+08RgFcVccjG3uZHs6K5HAe3zw==} dependencies: - node-domexception: 1.0.0 - web-streams-polyfill: 4.0.0-beta.3 - dev: false + lodash.throttle: 4.1.1 + sisteransi: 1.0.5 + dev: true - /forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} + /happy-dom@13.10.1: + resolution: {integrity: sha512-9GZLEFvQL5EgfJX2zcBgu1nsPUn98JF/EiJnSfQbdxI6YEQGqpd09lXXxOmYonRBIEFz9JlGCOiPflDzgS1p8w==} + engines: {node: '>=16.0.0'} + dependencies: + entities: 4.5.0 + webidl-conversions: 7.0.0 + whatwg-mimetype: 3.0.0 - /framework-utils@1.1.0: - resolution: {integrity: sha512-KAfqli5PwpFJ8o3psRNs8svpMGyCSAe8nmGcjQ0zZBWN2H6dZDnq+ABp3N3hdUmFeMrLtjOCTXD4yplUJIWceg==} + /hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} dev: false - /fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - /fs-constants@1.0.0: - resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + /has-flag@2.0.0: + resolution: {integrity: sha512-P+1n3MnwjR/Epg9BBo1KT8qbye2g2Ou4sFumihwt6I4tsUX7jnLcX4BTOSKg/B1ZrIYMN9FcEnG4x5a7NB8Eng==} + engines: {node: '>=0.10.0'} dev: false - /fs-extra@11.2.0: - resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} - engines: {node: '>=14.14'} - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - dev: false + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} - /fs-extra@7.0.1: - resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} - engines: {node: '>=6 <7 || >=8'} - dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 - dev: false + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} - /fs-extra@8.1.0: - resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} - engines: {node: '>=6 <7 || >=8'} + /has-property-descriptors@1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 - dev: false + get-intrinsic: 1.2.4 - /fs-minipass@2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} + /has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} dependencies: - minipass: 3.3.6 - dev: false - - /fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - - /fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - optional: true - - /function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + es-define-property: 1.0.0 - /function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - functions-have-names: 1.2.3 - /functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + /has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} - /fuse.js@6.6.2: - resolution: {integrity: sha512-cJaJkxCCxC8qIIcPBF9yGxY0W/tVZS3uEISDxhYIdtk8OL93pe+6Zj7LjCqVV4dzbqcriOZ+kQ/NE4RXZHsIGA==} - engines: {node: '>=10'} - dev: false + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} - /gauge@3.0.2: - resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} - engines: {node: '>=10'} + /has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} dependencies: - aproba: 2.0.0 - color-support: 1.1.3 - console-control-strings: 1.1.0 - has-unicode: 2.0.1 - object-assign: 4.1.1 - signal-exit: 3.0.7 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wide-align: 1.1.5 - dev: false - - /gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} + has-symbols: 1.0.3 - /gesto@1.19.4: - resolution: {integrity: sha512-hfr/0dWwh0Bnbb88s3QVJd1ZRJeOWcgHPPwmiH6NnafDYvhTsxg+SLYu+q/oPNh9JS3V+nlr6fNs8kvPAtcRDQ==} + /has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} dependencies: - '@daybrush/utils': 1.13.0 - '@scena/event-emitter': 1.0.5 - dev: false + has-symbols: 1.0.3 - /get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} + /has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - /get-east-asian-width@1.2.0: - resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} - engines: {node: '>=18'} - dev: false + /has@1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: 1.1.1 - /get-func-name@2.0.2: - resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + /hash-obj@4.0.0: + resolution: {integrity: sha512-FwO1BUVWkyHasWDW4S8o0ssQXjvyghLV2rfVhnN36b2bbcj45eGiuzdn9XOvOpjV3TKQD7Gm2BWNXdE9V4KKYg==} + engines: {node: '>=12'} + dependencies: + is-obj: 3.0.0 + sort-keys: 5.0.0 + type-fest: 1.4.0 dev: false - /get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + /hash-sum@2.0.0: + resolution: {integrity: sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==} + + /hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} dependencies: - es-errors: 1.3.0 function-bind: 1.1.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 - hasown: 2.0.2 - /get-nonce@1.0.1: - resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} - engines: {node: '>=6'} + /hast-util-embedded@3.0.0: + resolution: {integrity: sha512-naH8sld4Pe2ep03qqULEtvYr7EjrLK2QHY8KJR6RJkTUjPGObe1vnx585uzem2hGra+s1q08DZZpfgDVYRbaXA==} + dependencies: + '@types/hast': 3.0.4 + hast-util-is-element: 3.0.0 dev: false - /get-own-enumerable-property-symbols@3.0.2: - resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} + /hast-util-from-dom@5.0.0: + resolution: {integrity: sha512-d6235voAp/XR3Hh5uy7aGLbM3S4KamdW0WEgOaU1YoewnuYw4HXb5eRtv9g65m/RFGEfUY1Mw4UqCc5Y8L4Stg==} + dependencies: + '@types/hast': 3.0.4 + hastscript: 8.0.0 + web-namespaces: 2.0.1 dev: false - /get-port-please@3.1.2: - resolution: {integrity: sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==} + /hast-util-from-html-isomorphic@2.0.0: + resolution: {integrity: sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==} + dependencies: + '@types/hast': 3.0.4 + hast-util-from-dom: 5.0.0 + hast-util-from-html: 2.0.1 + unist-util-remove-position: 5.0.0 dev: false - /get-source@2.0.12: - resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} + /hast-util-from-html@2.0.1: + resolution: {integrity: sha512-RXQBLMl9kjKVNkJTIO6bZyb2n+cUH8LFaSSzo82jiLT6Tfc+Pt7VQCS+/h3YwG4jaNE2TA2sdJisGWR+aJrp0g==} dependencies: - data-uri-to-buffer: 2.0.2 - source-map: 0.6.1 - dev: true + '@types/hast': 3.0.4 + devlop: 1.1.0 + hast-util-from-parse5: 8.0.1 + parse5: 7.1.2 + vfile: 6.0.1 + vfile-message: 4.0.2 + dev: false - /get-stream@3.0.0: - resolution: {integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==} - engines: {node: '>=4'} + /hast-util-from-parse5@8.0.1: + resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.2 + devlop: 1.1.0 + hastscript: 8.0.0 + property-information: 6.2.0 + vfile: 6.0.1 + vfile-location: 5.0.2 + web-namespaces: 2.0.1 dev: false - /get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} + /hast-util-has-property@3.0.0: + resolution: {integrity: sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==} + dependencies: + '@types/hast': 3.0.4 + dev: false - /get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} + /hast-util-is-body-ok-link@3.0.0: + resolution: {integrity: sha512-VFHY5bo2nY8HiV6nir2ynmEB1XkxzuUffhEGeVx7orbu/B1KaGyeGgMZldvMVx5xWrDlLLG/kQ6YkJAMkBEx0w==} + dependencies: + '@types/hast': 3.0.4 dev: false - /get-symbol-description@1.0.2: - resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} - engines: {node: '>= 0.4'} + /hast-util-is-element@3.0.0: + resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - get-intrinsic: 1.2.4 + '@types/hast': 3.0.4 + dev: false - /get-tsconfig@4.7.3: - resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} + /hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} dependencies: - resolve-pkg-maps: 1.0.0 - dev: true + '@types/hast': 3.0.4 + dev: false - /giget@1.2.3: - resolution: {integrity: sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==} - hasBin: true + /hast-util-phrasing@3.0.1: + resolution: {integrity: sha512-6h60VfI3uBQUxHqTyMymMZnEbNl1XmEGtOxxKYL7stY2o601COo62AWAYBQR9lZbYXYSBoxag8UpPRXK+9fqSQ==} dependencies: - citty: 0.1.6 - consola: 3.2.3 - defu: 6.1.4 - node-fetch-native: 1.6.4 - nypm: 0.3.8 - ohash: 1.1.3 - pathe: 1.1.2 - tar: 6.2.1 + '@types/hast': 3.0.4 + hast-util-embedded: 3.0.0 + hast-util-has-property: 3.0.0 + hast-util-is-body-ok-link: 3.0.0 + hast-util-is-element: 3.0.0 dev: false - /git-up@7.0.0: - resolution: {integrity: sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==} + /hast-util-raw@9.0.2: + resolution: {integrity: sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==} dependencies: - is-ssh: 1.4.0 - parse-url: 8.1.0 + '@types/hast': 3.0.4 + '@types/unist': 3.0.2 + '@ungap/structured-clone': 1.2.0 + hast-util-from-parse5: 8.0.1 + hast-util-to-parse5: 8.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.1.0 + parse5: 7.1.2 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.1 + web-namespaces: 2.0.1 + zwitch: 2.0.4 dev: false - /git-url-parse@13.1.1: - resolution: {integrity: sha512-PCFJyeSSdtnbfhSNRw9Wk96dDCNx+sogTe4YNXeXSJxt7xz5hvXekuRn9JX7m+Mf4OscCu8h+mtAl3+h5Fo8lQ==} + /hast-util-sanitize@5.0.1: + resolution: {integrity: sha512-IGrgWLuip4O2nq5CugXy4GI2V8kx4sFVy5Hd4vF7AR2gxS0N9s7nEAVUyeMtZKZvzrxVsHt73XdTsno1tClIkQ==} dependencies: - git-up: 7.0.0 + '@types/hast': 3.0.4 + '@ungap/structured-clone': 1.2.0 + unist-util-position: 5.0.0 dev: false - /github-from-package@0.0.0: - resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + /hast-util-to-estree@2.3.3: + resolution: {integrity: sha512-ihhPIUPxN0v0w6M5+IiAZZrn0LH2uZomeWwhn7uP7avZC6TE7lIiEh2yBMPr5+zi1aUCXq6VoYRgs2Bw9xmycQ==} + dependencies: + '@types/estree': 1.0.1 + '@types/estree-jsx': 1.0.0 + '@types/hast': 2.3.5 + '@types/unist': 2.0.7 + comma-separated-tokens: 2.0.3 + estree-util-attach-comments: 2.1.1 + estree-util-is-identifier-name: 2.1.0 + hast-util-whitespace: 2.0.1 + mdast-util-mdx-expression: 1.3.2 + mdast-util-mdxjs-esm: 1.3.1 + property-information: 6.2.0 + space-separated-tokens: 2.0.2 + style-to-object: 0.4.2 + unist-util-position: 4.0.4 + zwitch: 2.0.4 + transitivePeerDependencies: + - supports-color dev: false - /github-slugger@2.0.0: - resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} + /hast-util-to-html@9.0.1: + resolution: {integrity: sha512-hZOofyZANbyWo+9RP75xIDV/gq+OUKx+T46IlwERnKmfpwp81XBFbT9mi26ws+SJchA4RVUQwIBJpqEOBhMzEQ==} + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.2 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-raw: 9.0.2 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.1.0 + property-information: 6.2.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.3 + zwitch: 2.0.4 dev: false - /glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} + /hast-util-to-parse5@8.0.0: + resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} dependencies: - is-glob: 4.0.3 + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + property-information: 6.2.0 + space-separated-tokens: 2.0.2 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + dev: false - /glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} + /hast-util-to-text@4.0.2: + resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} dependencies: - is-glob: 4.0.3 + '@types/hast': 3.0.4 + '@types/unist': 3.0.2 + hast-util-is-element: 3.0.0 + unist-util-find-after: 5.0.0 + dev: false - /glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + /hast-util-whitespace@2.0.1: + resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==} + dev: false - /glob@10.3.10: - resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true + /hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} dependencies: - foreground-child: 3.1.1 - jackspeak: 2.3.6 - minimatch: 9.0.4 - minipass: 7.0.4 - path-scurry: 1.10.2 + '@types/hast': 3.0.4 + dev: false - /glob@10.3.12: - resolution: {integrity: sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true + /hastscript@8.0.0: + resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} dependencies: - foreground-child: 3.1.1 - jackspeak: 2.3.6 - minimatch: 9.0.4 - minipass: 7.0.4 - path-scurry: 1.10.2 + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 4.0.0 + property-information: 6.2.0 + space-separated-tokens: 2.0.2 + dev: false + + /he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + dev: true + + /headers-polyfill@4.0.3: + resolution: {integrity: sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==} + dev: false + + /heap@0.2.7: + resolution: {integrity: sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==} + dev: true + + /highlight.js@11.9.0: + resolution: {integrity: sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==} + engines: {node: '>=12.0.0'} + dev: false + + /hono@4.2.6: + resolution: {integrity: sha512-AtbHZJYWsm+uFHLz0C6xltX7hjOV44a55gSEGBfoQOJ00KSxEUOoiIkmd+NXfapNX0j2GCKhqMmYeegBdHRwcQ==} + engines: {node: '>=16.0.0'} + + /hookable@5.5.3: + resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} + + /hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + dev: false - /glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + /hosted-git-info@7.0.1: + resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} + engines: {node: ^16.14.0 || >=18.0.0} dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 + lru-cache: 10.2.0 - /glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 5.1.6 - once: 1.4.0 + /html-entities@2.3.3: + resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==} - /globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} + /html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + + /html-escaper@3.0.3: + resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} + dev: false - /globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + /html-tags@3.3.1: + resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} engines: {node: '>=8'} - dependencies: - type-fest: 0.20.2 - /globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} - engines: {node: '>= 0.4'} - dependencies: - define-properties: 1.2.1 + /html-to-image@1.11.11: + resolution: {integrity: sha512-9gux8QhvjRO/erSnDPv28noDZcPZmYE7e1vFsBLKLlRlKDSqNJYebj6Qz1TGd5lsRV+X+xYyjCKjuZdABinWjA==} + dev: false - /globalyzer@0.1.0: - resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} - dev: true + /html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + dev: false - /globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} + /html-whitespace-sensitive-tag-names@3.0.0: + resolution: {integrity: sha512-KlClZ3/Qy5UgvpvVvDomGhnQhNWH5INE8GwvSIQ9CWt1K0zbbXrl7eN5bWaafOZgtmO3jMPwUqmrmEwinhPq1w==} + dev: false + + /http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + + /http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.2 - ignore: 5.3.1 - merge2: 1.4.1 - slash: 3.0.0 + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 - /globby@14.0.1: - resolution: {integrity: sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==} - engines: {node: '>=18'} + /http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} dependencies: - '@sindresorhus/merge-streams': 2.3.0 - fast-glob: 3.3.2 - ignore: 5.3.1 - path-type: 5.0.0 - slash: 5.1.0 - unicorn-magic: 0.1.0 + agent-base: 7.1.0 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + + /http-proxy@1.18.1: + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + engines: {node: '>=8.0.0'} + dependencies: + eventemitter3: 4.0.7 + follow-redirects: 1.15.2 + requires-port: 1.0.0 + transitivePeerDependencies: + - debug dev: false - /globrex@0.1.2: - resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} + /http-shutdown@1.2.2: + resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - /gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + /http2-wrapper@2.2.1: + resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} + engines: {node: '>=10.19.0'} dependencies: - get-intrinsic: 1.2.4 + quick-lru: 5.1.1 + resolve-alpn: 1.2.1 + dev: false - /got@12.6.1: - resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==} - engines: {node: '>=14.16'} + /https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} dependencies: - '@sindresorhus/is': 5.6.0 - '@szmarczak/http-timer': 5.0.1 - cacheable-lookup: 7.0.0 - cacheable-request: 10.2.14 - decompress-response: 6.0.0 - form-data-encoder: 2.1.4 - get-stream: 6.0.1 - http2-wrapper: 2.2.1 - lowercase-keys: 3.0.0 - p-cancelable: 3.0.0 - responselike: 3.0.0 - dev: false + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color - /graceful-fs@4.2.10: - resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + /https-proxy-agent@7.0.1: + resolution: {integrity: sha512-Eun8zV0kcYS1g19r78osiQLEFIRspRUDd9tIfBCTBPBeMieF/EsJNL8VI3xOIdYRDEkjQnqOYPsZ2DsWsVsFwQ==} + engines: {node: '>= 14'} + dependencies: + agent-base: 7.1.0 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + + /httpsnippet-lite@3.0.5: + resolution: {integrity: sha512-So4qTXY5iFj5XtFDwyz2PicUu+8NWrI8e8h+ZeZoVtMNcFQp4FFIntBHUE+JPUG6QQU8o1VHCy+X4ETRDwt9CA==} + engines: {node: '>=14.13'} + dependencies: + '@types/har-format': 1.2.15 + formdata-node: 4.4.1 + stringify-object: 3.3.0 dev: false - /graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + /httpxy@0.1.5: + resolution: {integrity: sha512-hqLDO+rfststuyEUTWObQK6zHEEmZ/kaIP2/zclGGZn6X8h/ESTWg+WKecQ/e5k4nPswjzZD+q2VqZIbr15CoQ==} - /grapheme-splitter@1.0.4: - resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + /human-id@1.0.2: + resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} dev: false - /graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + /human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} - /graphql@16.8.1: - resolution: {integrity: sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==} - engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} - dev: false + /human-signals@4.3.1: + resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} + engines: {node: '>=14.18.0'} - /gray-matter@4.0.3: - resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} - engines: {node: '>=6.0'} - dependencies: - js-yaml: 3.14.1 - kind-of: 6.0.3 - section-matter: 1.0.0 - strip-bom-string: 1.0.0 - dev: false + /human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} - /gzip-size@7.0.0: - resolution: {integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} dependencies: - duplexer: 0.1.2 - dev: false + safer-buffer: 2.1.2 - /h3@1.11.1: - resolution: {integrity: sha512-AbaH6IDnZN6nmbnJOH72y3c5Wwh9P97soSVdGSBbcDACRdkC0FEWf25pzx4f/NuOCK6quHmW18yF2Wx+G4Zi1A==} + /iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} dependencies: - cookie-es: 1.1.0 - crossws: 0.2.4 - defu: 6.1.4 - destr: 2.0.3 - iron-webcrypto: 1.1.0 - ohash: 1.1.3 - radix3: 1.1.2 - ufo: 1.5.3 - uncrypto: 0.1.3 - unenv: 1.9.0 - transitivePeerDependencies: - - uWebSockets.js + safer-buffer: 2.1.2 - /hanji@0.0.5: - resolution: {integrity: sha512-Abxw1Lq+TnYiL4BueXqMau222fPSPMFtya8HdpWsz/xVAhifXou71mPh/kY2+08RgFcVccjG3uZHs6K5HAe3zw==} + /ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + /ignore-walk@5.0.1: + resolution: {integrity: sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: - lodash.throttle: 4.1.1 - sisteransi: 1.0.5 + minimatch: 5.1.6 dev: true - /happy-dom@13.10.1: - resolution: {integrity: sha512-9GZLEFvQL5EgfJX2zcBgu1nsPUn98JF/EiJnSfQbdxI6YEQGqpd09lXXxOmYonRBIEFz9JlGCOiPflDzgS1p8w==} - engines: {node: '>=16.0.0'} + /ignore-walk@6.0.4: + resolution: {integrity: sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - entities: 4.5.0 - webidl-conversions: 7.0.0 - whatwg-mimetype: 3.0.0 - dev: false + minimatch: 9.0.4 - /hard-rejection@2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} - engines: {node: '>=6'} - dev: false + /ignore@5.2.4: + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + engines: {node: '>= 4'} - /has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + /ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} - /has-flag@2.0.0: - resolution: {integrity: sha512-P+1n3MnwjR/Epg9BBo1KT8qbye2g2Ou4sFumihwt6I4tsUX7jnLcX4BTOSKg/B1ZrIYMN9FcEnG4x5a7NB8Eng==} - engines: {node: '>=0.10.0'} - dev: false + /image-meta@0.2.0: + resolution: {integrity: sha512-ZBGjl0ZMEMeOC3Ns0wUF/5UdUmr3qQhBSCniT0LxOgGGIRHiNFOkMtIHB7EOznRU47V2AxPgiVP+s+0/UCU0Hg==} - /has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 - /has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + /import-meta-resolve@4.0.0: + resolution: {integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==} + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + /indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} - /has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: - es-define-property: 1.0.0 + once: 1.4.0 + wrappy: 1.0.2 - /has-proto@1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} - engines: {node: '>= 0.4'} + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - /has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + /ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + + /ini@4.1.1: + resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + /inline-style-parser@0.1.1: + resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} + dev: false + + /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 - /has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + /internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} engines: {node: '>= 0.4'} dependencies: - has-symbols: 1.0.3 + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.0.4 - /has-unicode@2.0.1: - resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + /internmap@1.0.1: + resolution: {integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==} dev: false - /hash-obj@4.0.0: - resolution: {integrity: sha512-FwO1BUVWkyHasWDW4S8o0ssQXjvyghLV2rfVhnN36b2bbcj45eGiuzdn9XOvOpjV3TKQD7Gm2BWNXdE9V4KKYg==} + /internmap@2.0.3: + resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} engines: {node: '>=12'} - dependencies: - is-obj: 3.0.0 - sort-keys: 5.0.0 - type-fest: 1.4.0 dev: false - /hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} - dependencies: - function-bind: 1.1.2 + /intersection-observer@0.12.2: + resolution: {integrity: sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg==} + dev: false - /hast-util-embedded@3.0.0: - resolution: {integrity: sha512-naH8sld4Pe2ep03qqULEtvYr7EjrLK2QHY8KJR6RJkTUjPGObe1vnx585uzem2hGra+s1q08DZZpfgDVYRbaXA==} + /invariant@2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} dependencies: - '@types/hast': 3.0.4 - hast-util-is-element: 3.0.0 + loose-envify: 1.4.0 dev: false - /hast-util-from-dom@5.0.0: - resolution: {integrity: sha512-d6235voAp/XR3Hh5uy7aGLbM3S4KamdW0WEgOaU1YoewnuYw4HXb5eRtv9g65m/RFGEfUY1Mw4UqCc5Y8L4Stg==} + /ioredis@5.3.2: + resolution: {integrity: sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA==} + engines: {node: '>=12.22.0'} dependencies: - '@types/hast': 3.0.4 - hastscript: 8.0.0 - web-namespaces: 2.0.1 + '@ioredis/commands': 1.2.0 + cluster-key-slot: 1.1.2 + debug: 4.3.4 + denque: 2.1.0 + lodash.defaults: 4.2.0 + lodash.isarguments: 3.1.0 + redis-errors: 1.2.0 + redis-parser: 3.0.0 + standard-as-callback: 2.1.0 + transitivePeerDependencies: + - supports-color + + /ip@2.0.0: + resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} + + /ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + + /iron-webcrypto@1.1.1: + resolution: {integrity: sha512-5xGwQUWHQSy039rFr+5q/zOmj7GP0Ypzvo34Ep+61bPIhaLduEDp/PvLGlU3awD2mzWUR0weN2vJ1mILydFPEg==} + + /is-absolute-url@4.0.1: + resolution: {integrity: sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: false - /hast-util-from-html-isomorphic@2.0.0: - resolution: {integrity: sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==} - dependencies: - '@types/hast': 3.0.4 - hast-util-from-dom: 5.0.0 - hast-util-from-html: 2.0.1 - unist-util-remove-position: 5.0.0 + /is-alphabetical@2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} dev: false - /hast-util-from-html@2.0.1: - resolution: {integrity: sha512-RXQBLMl9kjKVNkJTIO6bZyb2n+cUH8LFaSSzo82jiLT6Tfc+Pt7VQCS+/h3YwG4jaNE2TA2sdJisGWR+aJrp0g==} + /is-alphanumerical@2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} dependencies: - '@types/hast': 3.0.4 - devlop: 1.1.0 - hast-util-from-parse5: 8.0.1 - parse5: 7.1.2 - vfile: 6.0.1 - vfile-message: 4.0.2 + is-alphabetical: 2.0.1 + is-decimal: 2.0.1 dev: false - /hast-util-from-parse5@8.0.1: - resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} + /is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.2 - devlop: 1.1.0 - hastscript: 8.0.0 - property-information: 6.5.0 - vfile: 6.0.1 - vfile-location: 5.0.2 - web-namespaces: 2.0.1 + call-bind: 1.0.2 + has-tostringtag: 1.0.0 dev: false - /hast-util-has-property@3.0.0: - resolution: {integrity: sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==} + /is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} dependencies: - '@types/hast': 3.0.4 - dev: false + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-typed-array: 1.1.12 - /hast-util-is-body-ok-link@3.0.0: - resolution: {integrity: sha512-VFHY5bo2nY8HiV6nir2ynmEB1XkxzuUffhEGeVx7orbu/B1KaGyeGgMZldvMVx5xWrDlLLG/kQ6YkJAMkBEx0w==} + /is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} dependencies: - '@types/hast': 3.0.4 + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} dev: false - /hast-util-is-element@3.0.0: - resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} - dependencies: - '@types/hast': 3.0.4 + /is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + requiresBuild: true dev: false + optional: true - /hast-util-parse-selector@4.0.0: - resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + /is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} dependencies: - '@types/hast': 3.0.4 - dev: false + has-tostringtag: 1.0.0 - /hast-util-phrasing@3.0.1: - resolution: {integrity: sha512-6h60VfI3uBQUxHqTyMymMZnEbNl1XmEGtOxxKYL7stY2o601COo62AWAYBQR9lZbYXYSBoxag8UpPRXK+9fqSQ==} + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} dependencies: - '@types/hast': 3.0.4 - hast-util-embedded: 3.0.0 - hast-util-has-property: 3.0.0 - hast-util-is-body-ok-link: 3.0.0 - hast-util-is-element: 3.0.0 - dev: false + has-bigints: 1.0.2 - /hast-util-raw@9.0.2: - resolution: {integrity: sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==} + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.2 - '@ungap/structured-clone': 1.2.0 - hast-util-from-parse5: 8.0.1 - hast-util-to-parse5: 8.0.0 - html-void-elements: 3.0.0 - mdast-util-to-hast: 13.1.0 - parse5: 7.1.2 - unist-util-position: 5.0.0 - unist-util-visit: 5.0.0 - vfile: 6.0.1 - web-namespaces: 2.0.1 - zwitch: 2.0.4 - dev: false + binary-extensions: 2.2.0 - /hast-util-sanitize@5.0.1: - resolution: {integrity: sha512-IGrgWLuip4O2nq5CugXy4GI2V8kx4sFVy5Hd4vF7AR2gxS0N9s7nEAVUyeMtZKZvzrxVsHt73XdTsno1tClIkQ==} + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} dependencies: - '@types/hast': 3.0.4 - '@ungap/structured-clone': 1.2.0 - unist-util-position: 5.0.0 + call-bind: 1.0.7 + has-tostringtag: 1.0.0 + + /is-buffer@2.0.5: + resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} + engines: {node: '>=4'} dev: false - /hast-util-to-estree@2.3.3: - resolution: {integrity: sha512-ihhPIUPxN0v0w6M5+IiAZZrn0LH2uZomeWwhn7uP7avZC6TE7lIiEh2yBMPr5+zi1aUCXq6VoYRgs2Bw9xmycQ==} + /is-builtin-module@3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} + engines: {node: '>=6'} dependencies: - '@types/estree': 1.0.5 - '@types/estree-jsx': 1.0.5 - '@types/hast': 2.3.10 - '@types/unist': 2.0.10 - comma-separated-tokens: 2.0.3 - estree-util-attach-comments: 2.1.1 - estree-util-is-identifier-name: 2.1.0 - hast-util-whitespace: 2.0.1 - mdast-util-mdx-expression: 1.3.2 - mdast-util-mdxjs-esm: 1.3.1 - property-information: 6.5.0 - space-separated-tokens: 2.0.2 - style-to-object: 0.4.4 - unist-util-position: 4.0.4 - zwitch: 2.0.4 - transitivePeerDependencies: - - supports-color - dev: false + builtin-modules: 3.3.0 - /hast-util-to-html@9.0.1: - resolution: {integrity: sha512-hZOofyZANbyWo+9RP75xIDV/gq+OUKx+T46IlwERnKmfpwp81XBFbT9mi26ws+SJchA4RVUQwIBJpqEOBhMzEQ==} + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + /is-core-module@2.13.0: + resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.2 - ccount: 2.0.1 - comma-separated-tokens: 2.0.3 - hast-util-raw: 9.0.2 - hast-util-whitespace: 3.0.0 - html-void-elements: 3.0.0 - mdast-util-to-hast: 13.1.0 - property-information: 6.5.0 - space-separated-tokens: 2.0.2 - stringify-entities: 4.0.4 - zwitch: 2.0.4 + has: 1.0.3 + + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + dependencies: + hasown: 2.0.2 + + /is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} + dependencies: + is-typed-array: 1.1.13 + + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + + /is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + dev: false + + /is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + + /is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + + /is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} dev: false - /hast-util-to-parse5@8.0.0: - resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + /is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} dependencies: - '@types/hast': 3.0.4 - comma-separated-tokens: 2.0.3 - devlop: 1.1.0 - property-information: 6.5.0 - space-separated-tokens: 2.0.2 - web-namespaces: 2.0.1 - zwitch: 2.0.4 - dev: false + call-bind: 1.0.7 + + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} - /hast-util-to-text@4.0.1: - resolution: {integrity: sha512-RHL7Vo2n06ZocCFWqmbyhZ1pCYX/mSKdywt9YD5U6Hquu5syV+dImCXFKLFt02JoK5QxkQFS0PoVdFdPXuPffQ==} + /is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.2 - hast-util-is-element: 3.0.0 - unist-util-find-after: 5.0.0 - dev: false + has-tostringtag: 1.0.0 - /hast-util-whitespace@2.0.1: - resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==} + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + + /is-hexadecimal@2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} dev: false - /hast-util-whitespace@3.0.0: - resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + /is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true dependencies: - '@types/hast': 3.0.4 - dev: false + is-docker: 3.0.0 - /hastscript@8.0.0: - resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} + /is-installed-globally@1.0.0: + resolution: {integrity: sha512-K55T22lfpQ63N4KEN57jZUAaAYqYHEe8veb/TycJRk9DdSCLLcovXz/mL6mOnhQaZsQGwPhuFopdQIlqGSEjiQ==} + engines: {node: '>=18'} dependencies: - '@types/hast': 3.0.4 - comma-separated-tokens: 2.0.3 - hast-util-parse-selector: 4.0.0 - property-information: 6.5.0 - space-separated-tokens: 2.0.2 - dev: false + global-directory: 4.0.1 + is-path-inside: 4.0.0 - /headers-polyfill@4.0.3: - resolution: {integrity: sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==} + /is-interactive@2.0.0: + resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} + engines: {node: '>=12'} dev: false - /heap@0.2.7: - resolution: {integrity: sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==} + /is-lambda@1.0.1: + resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} - /highlight.js@11.9.0: - resolution: {integrity: sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==} - engines: {node: '>=12.0.0'} - dev: false + /is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} - /hono@4.2.3: - resolution: {integrity: sha512-yZDnPOp/XzjIB7KUWaOxwLSywnhxMvAKth8hfKhWQiWXeZhBfC6GlFnEst/FOOgn7rSWjShhQPS89PLEuHxq3Q==} - engines: {node: '>=16.0.0'} - dev: false + /is-module@1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} - /hookable@5.5.3: - resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} + /is-nan@1.3.2: + resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 dev: false - /hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - dev: false + /is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} - /html-entities@2.3.3: - resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==} + /is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} - /html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + /is-node-process@1.2.0: + resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==} dev: false - /html-escaper@3.0.3: - resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + /is-obj@1.0.1: + resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} + engines: {node: '>=0.10.0'} dev: false - /html-to-image@1.11.11: - resolution: {integrity: sha512-9gux8QhvjRO/erSnDPv28noDZcPZmYE7e1vFsBLKLlRlKDSqNJYebj6Qz1TGd5lsRV+X+xYyjCKjuZdABinWjA==} + /is-obj@3.0.0: + resolution: {integrity: sha512-IlsXEHOjtKhpN8r/tRFj2nDyTmHvcfNeu/nrRIcXE17ROeatXchkojffa1SpdqW4cr/Fj6QkEf/Gn4zf6KKvEQ==} + engines: {node: '>=12'} dev: false - /html-void-elements@3.0.0: - resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + /is-path-inside@4.0.0: + resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==} + engines: {node: '>=12'} + + /is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} dev: false - /html-whitespace-sensitive-tag-names@3.0.0: - resolution: {integrity: sha512-KlClZ3/Qy5UgvpvVvDomGhnQhNWH5INE8GwvSIQ9CWt1K0zbbXrl7eN5bWaafOZgtmO3jMPwUqmrmEwinhPq1w==} + /is-plain-obj@3.0.0: + resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} + engines: {node: '>=10'} dev: false - /http-cache-semantics@4.1.1: - resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + /is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} dev: false - /http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} + /is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + dev: true + + /is-primitive@3.0.1: + resolution: {integrity: sha512-GljRxhWvlCNRfZyORiH77FwdFwGcMO620o37EOYC0ORWdq+WYNVqW0w2Juzew4M+L81l6/QS3t5gkkihyRqv9w==} + engines: {node: '>=0.10.0'} + + /is-promise@2.2.2: + resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} + dev: true + + /is-reference@1.2.1: + resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.1 - toidentifier: 1.0.1 + '@types/estree': 1.0.1 - /http-proxy@1.18.1: - resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} - engines: {node: '>=8.0.0'} + /is-reference@3.0.1: + resolution: {integrity: sha512-baJJdQLiYaJdvFbJqXrcGv3WU3QCzBlUcI5QhbesIm6/xPsvmO+2CDoi/GMOFBQEQm+PXkwOPrp9KK5ozZsp2w==} dependencies: - eventemitter3: 4.0.7 - follow-redirects: 1.15.6 - requires-port: 1.0.0 - transitivePeerDependencies: - - debug - dev: false + '@types/estree': 1.0.1 - /http-shutdown@1.2.2: - resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.0 + + /is-regexp@1.0.0: + resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} + engines: {node: '>=0.10.0'} dev: false - /http2-wrapper@2.2.1: - resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} - engines: {node: '>=10.19.0'} + /is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} + + /is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} dependencies: - quick-lru: 5.1.1 - resolve-alpn: 1.2.1 - dev: false + call-bind: 1.0.2 - /https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} + /is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} dependencies: - agent-base: 6.0.2 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: false + call-bind: 1.0.7 - /httpsnippet-lite@3.0.5: - resolution: {integrity: sha512-So4qTXY5iFj5XtFDwyz2PicUu+8NWrI8e8h+ZeZoVtMNcFQp4FFIntBHUE+JPUG6QQU8o1VHCy+X4ETRDwt9CA==} - engines: {node: '>=14.13'} + /is-ssh@1.4.0: + resolution: {integrity: sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==} dependencies: - '@types/har-format': 1.2.15 - formdata-node: 4.4.1 - stringify-object: 3.3.0 - dev: false + protocols: 2.0.1 - /httpxy@0.1.5: - resolution: {integrity: sha512-hqLDO+rfststuyEUTWObQK6zHEEmZ/kaIP2/zclGGZn6X8h/ESTWg+WKecQ/e5k4nPswjzZD+q2VqZIbr15CoQ==} + /is-stream@1.1.0: + resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} + engines: {node: '>=0.10.0'} dev: false - /human-id@1.0.2: - resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} - dev: false + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} - /human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} + /is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - /human-signals@4.3.1: - resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} - engines: {node: '>=14.18.0'} - dev: false + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 - /human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} + /is-subdir@1.2.0: + resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} + engines: {node: '>=4'} + dependencies: + better-path-resolve: 1.0.0 dev: false - /iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} dependencies: - safer-buffer: 2.1.2 + has-symbols: 1.0.3 - /iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} + /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 + + /is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} dependencies: - safer-buffer: 2.1.2 + which-typed-array: 1.1.15 + + /is-unicode-supported@1.3.0: + resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} + engines: {node: '>=12'} dev: false - /ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + /is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} - /ignore-walk@5.0.1: - resolution: {integrity: sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: - minimatch: 5.1.6 - dev: true - - /ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} - engines: {node: '>= 4'} + call-bind: 1.0.7 - /import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} + /is-weakset@2.0.3: + resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} + engines: {node: '>= 0.4'} dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 + call-bind: 1.0.7 + get-intrinsic: 1.2.4 - /import-meta-resolve@4.0.0: - resolution: {integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==} + /is-what@4.1.15: + resolution: {integrity: sha512-uKua1wfy3Yt+YqsD6mTUEa2zSi3G1oPlqTflgaPJ7z63vUGN5pxFpnQfeSLMFnJDEsdvOtkp1rUWkYjB4YfhgA==} + engines: {node: '>=12.13'} - /imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} + /is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + dev: false - /indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + /is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} - dev: false + dependencies: + is-docker: 2.2.1 - /inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + /is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} dependencies: - once: 1.4.0 - wrappy: 1.0.2 + is-inside-container: 1.0.0 - /inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + /is64bit@2.0.0: + resolution: {integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==} + engines: {node: '>=18'} + dependencies: + system-architecture: 0.1.0 - /ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - dev: false + /isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - /inline-style-parser@0.1.1: - resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} - dev: false + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - /internal-slot@1.0.7: - resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} - engines: {node: '>= 0.4'} - dependencies: - es-errors: 1.3.0 - hasown: 2.0.2 - side-channel: 1.0.6 + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - /internmap@1.0.1: - resolution: {integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==} - dev: false + /isexe@3.1.1: + resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} + engines: {node: '>=16'} - /internmap@2.0.3: - resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} - engines: {node: '>=12'} + /isomorphic.js@0.2.5: + resolution: {integrity: sha512-PIeMbHqMt4DnUP3MA/Flc0HElYjMXArsw1qwJZcm9sqR8mq3l8NYizFMty0pWwE/tzIGH3EKK5+jes5mAr85yw==} dev: false - /intersection-observer@0.12.2: - resolution: {integrity: sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg==} + /istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} dev: false - /invariant@2.2.4: - resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + /istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} dependencies: - loose-envify: 1.4.0 + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 dev: false - /ioredis@5.3.2: - resolution: {integrity: sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA==} - engines: {node: '>=12.22.0'} + /istanbul-lib-source-maps@5.0.4: + resolution: {integrity: sha512-wHOoEsNJTVltaJp8eVkm8w+GVkVNHT2YDYo53YdzQEL2gWm1hBX5cGFR9hQJtuGLebidVX7et3+dmDZrmclduw==} + engines: {node: '>=10'} dependencies: - '@ioredis/commands': 1.2.0 - cluster-key-slot: 1.1.2 + '@jridgewell/trace-mapping': 0.3.25 debug: 4.3.4 - denque: 2.1.0 - lodash.defaults: 4.2.0 - lodash.isarguments: 3.1.0 - redis-errors: 1.2.0 - redis-parser: 3.0.0 - standard-as-callback: 2.1.0 + istanbul-lib-coverage: 3.2.2 transitivePeerDependencies: - supports-color dev: false - /ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} + /istanbul-reports@3.1.7: + resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + engines: {node: '>=8'} + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + dev: false - /iron-webcrypto@1.1.0: - resolution: {integrity: sha512-5vgYsCakNlaQub1orZK5QmNYhwYtcllTkZBp5sfIaCqY93Cf6l+v2rtE+E4TMbcfjxDMCdrO8wmp7+ZvhDECLA==} + /iterator.prototype@1.1.2: + resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + dependencies: + define-properties: 1.2.1 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + reflect.getprototypeof: 1.0.6 + set-function-name: 2.0.2 - /is-absolute-url@4.0.1: - resolution: {integrity: sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: false + /jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + engines: {node: '>=14'} + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 - /is-alphabetical@2.0.1: - resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + /jiti@1.21.0: + resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} + hasBin: true + + /jju@1.4.0: + resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} dev: false - /is-alphanumerical@2.0.1: - resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + /joi@17.12.3: + resolution: {integrity: sha512-2RRziagf555owrm9IRVtdKynOBeITiDpuZqIpgwqXShPncPKNiRQoiGsl/T8SQdq+8ugRzH2LqY67irr2y/d+g==} dependencies: - is-alphabetical: 2.0.1 - is-decimal: 2.0.1 - dev: false + '@hapi/hoek': 9.3.0 + '@hapi/topo': 5.1.0 + '@sideway/address': 4.1.5 + '@sideway/formula': 3.0.1 + '@sideway/pinpoint': 2.0.0 + dev: true - /is-array-buffer@3.0.4: - resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} - engines: {node: '>= 0.4'} + /jotai@2.8.0(@types/react@18.2.78)(react@18.2.0): + resolution: {integrity: sha512-yZNMC36FdLOksOr8qga0yLf14miCJlEThlp5DeFJNnqzm2+ZG7wLcJzoOyij5K6U6Xlc5ljQqPDlJRgqW0Y18g==} + engines: {node: '>=12.20.0'} + peerDependencies: + '@types/react': '>=17.0.0' + react: '>=17.0.0' + peerDependenciesMeta: + '@types/react': + optional: true + react: + optional: true dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 + '@types/react': 18.2.78 + react: 18.2.0 + dev: false - /is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + /joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + dev: true + + /js-base64@3.7.7: + resolution: {integrity: sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==} dev: false - /is-arrayish@0.3.2: - resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - requiresBuild: true + /js-cookie@3.0.1: + resolution: {integrity: sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw==} + engines: {node: '>=12'} dev: false - optional: true - /is-async-function@2.0.0: - resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.2 + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - /is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} - dependencies: - has-bigints: 1.0.2 + /js-tokens@9.0.0: + resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} - /is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} + /js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true dependencies: - binary-extensions: 2.3.0 + argparse: 1.0.10 + esprima: 4.0.1 + dev: false - /is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} - engines: {node: '>= 0.4'} + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true dependencies: - call-bind: 1.0.7 - has-tostringtag: 1.0.2 + argparse: 2.0.1 - /is-buffer@2.0.5: - resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} + /jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} + hasBin: true + + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} dev: false - /is-builtin-module@3.2.1: - resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} - engines: {node: '>=6'} + /json-diff@0.9.0: + resolution: {integrity: sha512-cVnggDrVkAAA3OvFfHpFEhOnmcsUpleEKq4d4O8sQWWSH40MBrWstKigVB1kGrgLWzuom+7rRdaCsnBD6VyObQ==} + hasBin: true dependencies: - builtin-modules: 3.3.0 + cli-color: 2.0.4 + difflib: 0.2.4 + dreamopt: 0.8.0 + dev: true - /is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: false - /is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} - dependencies: - hasown: 2.0.2 + /json-parse-even-better-errors@3.0.0: + resolution: {integrity: sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - /is-data-view@1.0.1: - resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} - engines: {node: '>= 0.4'} + /json-schema-ref-resolver@1.0.1: + resolution: {integrity: sha512-EJAj1pgHc1hxF6vo2Z3s69fMjO1INq6eGHXZ8Z6wCQeldCuwxGK9Sxf4/cScGn3FZubCVUehfWtcDM/PLteCQw==} dependencies: - is-typed-array: 1.1.13 + fast-deep-equal: 3.1.3 - /is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.2 + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - /is-decimal@2.0.1: - resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} - dev: false + /json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - /is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + /json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} hasBin: true - dev: false + dependencies: + minimist: 1.2.8 - /is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} hasBin: true - dev: false - /is-extendable@0.1.1: - resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} - engines: {node: '>=0.10.0'} - dev: false + /jsonc-parser@3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} - /is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} + /jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + optionalDependencies: + graceful-fs: 4.2.11 + dev: false - /is-finalizationregistry@1.0.2: - resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + /jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: - call-bind: 1.0.7 - - /is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} + universalify: 2.0.0 + optionalDependencies: + graceful-fs: 4.2.11 - /is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.2 + /jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} - /is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} + /jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} dependencies: - is-extglob: 2.1.1 - - /is-hexadecimal@2.0.1: - resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} - dev: false + array-includes: 3.1.8 + array.prototype.flat: 1.3.1 + object.assign: 4.1.4 + object.values: 1.2.0 - /is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} + /katex@0.16.10: + resolution: {integrity: sha512-ZiqaC04tp2O5utMsl2TEZTXxa6WSC4yo0fv5ML++D3QZv/vx2Mct0mTlRx3O+uUkjfuAgOkzsCmq5MiUEsDDdA==} hasBin: true dependencies: - is-docker: 3.0.0 + commander: 8.3.0 dev: false - /is-interactive@2.0.0: - resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} - engines: {node: '>=12'} + /keycode@2.2.1: + resolution: {integrity: sha512-Rdgz9Hl9Iv4QKi8b0OlCRQEzp4AgVxyCtz5S/+VIHezDmrDhkp2N2TqBWOLz0/gbeREXOOiI9/4b8BY9uw2vFg==} dev: false - /is-map@2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} - engines: {node: '>= 0.4'} - - /is-module@1.0.0: - resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} - - /is-negative-zero@2.0.3: - resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} - engines: {node: '>= 0.4'} - - /is-node-process@1.2.0: - resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==} + /keycon@1.4.0: + resolution: {integrity: sha512-p1NAIxiRMH3jYfTeXRs2uWbVJ1WpEjpi8ktzUyBJsX7/wn2qu2VRXktneBLNtKNxJmlUYxRi9gOJt1DuthXR7A==} + dependencies: + '@cfcs/core': 0.0.6 + '@daybrush/utils': 1.13.0 + '@scena/event-emitter': 1.0.5 + keycode: 2.2.1 dev: false - /is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} - engines: {node: '>= 0.4'} + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} dependencies: - has-tostringtag: 1.0.2 + json-buffer: 3.0.1 + dev: false - /is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} + /khroma@2.0.0: + resolution: {integrity: sha512-2J8rDNlQWbtiNYThZRvmMv5yt44ZakX+Tz5ZIp/mN1pt4snn+m030Va5Z4v8xA0cQFDXBwO/8i42xL4QPsVk3g==} + dev: false - /is-obj@1.0.1: - resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} + /kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} dev: false - /is-obj@3.0.0: - resolution: {integrity: sha512-IlsXEHOjtKhpN8r/tRFj2nDyTmHvcfNeu/nrRIcXE17ROeatXchkojffa1SpdqW4cr/Fj6QkEf/Gn4zf6KKvEQ==} - engines: {node: '>=12'} - dev: false + /kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} - /is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} + /kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} - /is-plain-obj@1.1.0: - resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} - engines: {node: '>=0.10.0'} - dev: false + /klona@2.0.6: + resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} + engines: {node: '>= 8'} - /is-plain-obj@3.0.0: - resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} - engines: {node: '>=10'} - dev: false + /knitwork@1.1.0: + resolution: {integrity: sha512-oHnmiBUVHz1V+URE77PNot2lv3QiYU2zQf1JjOVkMt3YDKGbu8NAFr+c4mcNOhdsGrB/VpVbRwPwhiXrPhxQbw==} - /is-plain-obj@4.1.0: - resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} - engines: {node: '>=12'} + /known-css-properties@0.30.0: + resolution: {integrity: sha512-VSWXYUnsPu9+WYKkfmJyLKtIvaRJi1kXUqVmBACORXZQxT5oZDsoZ2vQP+bQFDnWtpI/4eq3MLoRMjI2fnLzTQ==} dev: false - /is-primitive@3.0.1: - resolution: {integrity: sha512-GljRxhWvlCNRfZyORiH77FwdFwGcMO620o37EOYC0ORWdq+WYNVqW0w2Juzew4M+L81l6/QS3t5gkkihyRqv9w==} - engines: {node: '>=0.10.0'} - dev: false + /kolorist@1.8.0: + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} - /is-promise@2.2.2: - resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} + /language-subtag-registry@0.3.22: + resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} dev: true - /is-reference@1.2.1: - resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} - dependencies: - '@types/estree': 1.0.5 - - /is-reference@3.0.2: - resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} + /language-tags@1.0.9: + resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} + engines: {node: '>=0.10'} dependencies: - '@types/estree': 1.0.5 + language-subtag-registry: 0.3.22 + dev: true - /is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} - engines: {node: '>= 0.4'} + /launch-editor@2.6.1: + resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==} dependencies: - call-bind: 1.0.7 - has-tostringtag: 1.0.2 + picocolors: 1.0.0 + shell-quote: 1.8.1 - /is-regexp@1.0.0: - resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} - engines: {node: '>=0.10.0'} + /layout-base@1.0.2: + resolution: {integrity: sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==} dev: false - /is-set@2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} - engines: {node: '>= 0.4'} + /lazystream@1.0.1: + resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} + engines: {node: '>= 0.6.3'} + dependencies: + readable-stream: 2.3.8 - /is-shared-array-buffer@1.0.3: - resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} - engines: {node: '>= 0.4'} + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} dependencies: - call-bind: 1.0.7 + prelude-ls: 1.2.1 + type-check: 0.4.0 - /is-ssh@1.4.0: - resolution: {integrity: sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==} + /lib0@0.2.93: + resolution: {integrity: sha512-M5IKsiFJYulS+8Eal8f+zAqf5ckm1vffW0fFDxfgxJ+uiVopvDdd3PxJmz0GsVi3YNO7QCFSq0nAsiDmNhLj9Q==} + engines: {node: '>=16'} + hasBin: true dependencies: - protocols: 2.0.1 + isomorphic.js: 0.2.5 dev: false - /is-stream@1.1.0: - resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} - engines: {node: '>=0.10.0'} + /libsql@0.3.18: + resolution: {integrity: sha512-lvhKr7WV3NLWRbXkjn/MeKqXOAqWKU0PX9QYrvDh7fneukapj+iUQ4qgJASrQyxcCrEsClXCQiiK5W6OoYPAlA==} + cpu: [x64, arm64, wasm32] + os: [darwin, linux, win32] + dependencies: + '@neon-rs/load': 0.0.4 + detect-libc: 2.0.2 + optionalDependencies: + '@libsql/darwin-arm64': 0.3.18 + '@libsql/darwin-x64': 0.3.18 + '@libsql/linux-arm64-gnu': 0.3.18 + '@libsql/linux-arm64-musl': 0.3.18 + '@libsql/linux-x64-gnu': 0.3.18 + '@libsql/linux-x64-musl': 0.3.18 + '@libsql/win32-x64-msvc': 0.3.18 + dev: false + + /light-my-request@5.13.0: + resolution: {integrity: sha512-9IjUN9ZyCS9pTG+KqTDEQo68Sui2lHsYBrfMyVUTTZ3XhH8PMZq7xO94Kr+eP9dhi/kcKsx4N41p2IXEBil1pQ==} + dependencies: + cookie: 0.6.0 + process-warning: 3.0.0 + set-cookie-parser: 2.6.0 + + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + + /lilconfig@3.1.1: + resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} + engines: {node: '>=14'} + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + /linkify-it@5.0.0: + resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + dependencies: + uc.micro: 2.1.0 dev: false - /is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - - /is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /linkifyjs@4.1.3: + resolution: {integrity: sha512-auMesunaJ8yfkHvK4gfg1K0SaKX/6Wn9g2Aac/NwX+l5VdmFZzo/hdPGxEOETj+ryRa4/fiOPjeeKURSAJx1sg==} dev: false - /is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} - engines: {node: '>= 0.4'} + /listhen@1.7.2: + resolution: {integrity: sha512-7/HamOm5YD9Wb7CFgAZkKgVPA96WwhcTQoqtm2VTZGVbVVn3IWKRBTgrU7cchA3Q8k9iCsG8Osoi9GX4JsGM9g==} + hasBin: true dependencies: - has-tostringtag: 1.0.2 + '@parcel/watcher': 2.4.1 + '@parcel/watcher-wasm': 2.4.1 + citty: 0.1.6 + clipboardy: 4.0.0 + consola: 3.2.3 + crossws: 0.2.4 + defu: 6.1.4 + get-port-please: 3.1.2 + h3: 1.11.1 + http-shutdown: 1.2.2 + jiti: 1.21.0 + mlly: 1.6.1 + node-forge: 1.3.1 + pathe: 1.1.2 + std-env: 3.7.0 + ufo: 1.5.3 + untun: 0.1.3 + uqr: 0.1.2 + transitivePeerDependencies: + - uWebSockets.js - /is-subdir@1.2.0: - resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} - engines: {node: '>=4'} + /load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /load-yaml-file@0.2.0: + resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} + engines: {node: '>=6'} dependencies: - better-path-resolve: 1.0.0 + graceful-fs: 4.2.11 + js-yaml: 3.14.1 + pify: 4.0.1 + strip-bom: 3.0.0 dev: false - /is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} - engines: {node: '>= 0.4'} - dependencies: - has-symbols: 1.0.3 + /local-pkg@0.4.3: + resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} + engines: {node: '>=14'} - /is-typed-array@1.1.13: - resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} - engines: {node: '>= 0.4'} + /local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} dependencies: - which-typed-array: 1.1.15 - - /is-unicode-supported@1.3.0: - resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} - engines: {node: '>=12'} - dev: false + mlly: 1.6.1 + pkg-types: 1.1.0 - /is-weakmap@2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} - engines: {node: '>= 0.4'} + /locate-character@3.0.0: + resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} + dev: true - /is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + /locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} dependencies: - call-bind: 1.0.7 + p-locate: 4.1.0 + dev: false - /is-weakset@2.0.3: - resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} - engines: {node: '>= 0.4'} + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - - /is-what@4.1.16: - resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} - engines: {node: '>=12.13'} + p-locate: 5.0.0 - /is-windows@1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} + /lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} dev: false - /is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} - dependencies: - is-docker: 2.2.1 + /lodash.castarray@4.4.0: + resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} dev: false - /is-wsl@3.1.0: - resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} - engines: {node: '>=16'} - dependencies: - is-inside-container: 1.0.0 - dev: false + /lodash.defaults@4.2.0: + resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} - /is64bit@2.0.0: - resolution: {integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==} - engines: {node: '>=18'} - dependencies: - system-architecture: 0.1.0 + /lodash.get@4.4.2: + resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} dev: false - /isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + /lodash.isarguments@3.1.0: + resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} + + /lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} dev: false - /isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + /lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} - /isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - /isexe@3.1.1: - resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} - engines: {node: '>=16'} - dev: false + /lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + dev: true - /isomorphic.js@0.2.5: - resolution: {integrity: sha512-PIeMbHqMt4DnUP3MA/Flc0HElYjMXArsw1qwJZcm9sqR8mq3l8NYizFMty0pWwE/tzIGH3EKK5+jes5mAr85yw==} + /lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} dev: false - /istanbul-lib-coverage@3.2.2: - resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} - engines: {node: '>=8'} - dev: false + /lodash.throttle@4.1.1: + resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} + dev: true - /istanbul-lib-report@3.0.1: - resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} - engines: {node: '>=10'} - dependencies: - istanbul-lib-coverage: 3.2.2 - make-dir: 4.0.0 - supports-color: 7.2.0 - dev: false + /lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} - /istanbul-lib-source-maps@5.0.4: - resolution: {integrity: sha512-wHOoEsNJTVltaJp8eVkm8w+GVkVNHT2YDYo53YdzQEL2gWm1hBX5cGFR9hQJtuGLebidVX7et3+dmDZrmclduw==} - engines: {node: '>=10'} + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + /log-symbols@5.1.0: + resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==} + engines: {node: '>=12'} dependencies: - '@jridgewell/trace-mapping': 0.3.25 - debug: 4.3.4 - istanbul-lib-coverage: 3.2.2 - transitivePeerDependencies: - - supports-color + chalk: 5.3.0 + is-unicode-supported: 1.3.0 dev: false - /istanbul-reports@3.1.7: - resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} - engines: {node: '>=8'} - dependencies: - html-escaper: 2.0.2 - istanbul-lib-report: 3.0.1 + /longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} dev: false - /iterator.prototype@1.1.2: - resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + /loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true dependencies: - define-properties: 1.2.1 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 - reflect.getprototypeof: 1.0.6 - set-function-name: 2.0.2 + js-tokens: 4.0.0 - /jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} - engines: {node: '>=14'} + /loupe@2.3.6: + resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} + deprecated: Please upgrade to 2.3.7 which fixes GHSA-4q6p-r6v2-jvc5 dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - - /jiti@1.21.0: - resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} - hasBin: true - - /jju@1.4.0: - resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} - dev: false + get-func-name: 2.0.2 - /joi@17.12.3: - resolution: {integrity: sha512-2RRziagf555owrm9IRVtdKynOBeITiDpuZqIpgwqXShPncPKNiRQoiGsl/T8SQdq+8ugRzH2LqY67irr2y/d+g==} + /loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} dependencies: - '@hapi/hoek': 9.3.0 - '@hapi/topo': 5.1.0 - '@sideway/address': 4.1.5 - '@sideway/formula': 3.0.1 - '@sideway/pinpoint': 2.0.0 - dev: true + get-func-name: 2.0.2 - /jotai@2.8.0(@types/react@18.2.78)(react@18.2.0): - resolution: {integrity: sha512-yZNMC36FdLOksOr8qga0yLf14miCJlEThlp5DeFJNnqzm2+ZG7wLcJzoOyij5K6U6Xlc5ljQqPDlJRgqW0Y18g==} - engines: {node: '>=12.20.0'} - peerDependencies: - '@types/react': '>=17.0.0' - react: '>=17.0.0' - peerDependenciesMeta: - '@types/react': - optional: true - react: - optional: true + /lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} dependencies: - '@types/react': 18.2.78 - react: 18.2.0 - dev: false + tslib: 2.6.2 - /joycon@3.1.1: - resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} - engines: {node: '>=10'} - dev: true + /lowercase-keys@3.0.0: + resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: false - /js-cookie@3.0.1: - resolution: {integrity: sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw==} - engines: {node: '>=12'} + /lowlight@3.1.0: + resolution: {integrity: sha512-CEbNVoSikAxwDMDPjXlqlFYiZLkDJHwyGu/MfOsJnF3d7f3tds5J3z8s/l9TMXhzfsJCCJEAsD78842mwmg0PQ==} + dependencies: + '@types/hast': 3.0.4 + devlop: 1.1.0 + highlight.js: 11.9.0 dev: false - /js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + /lru-cache@10.0.1: + resolution: {integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==} + engines: {node: 14 || >=16.14} - /js-tokens@9.0.0: - resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} - dev: false + /lru-cache@10.2.0: + resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} + engines: {node: 14 || >=16.14} - /js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true + /lru-cache@4.1.5: + resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} dependencies: - argparse: 1.0.10 - esprima: 4.0.1 + pseudomap: 1.0.2 + yallist: 2.1.2 dev: false - /js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: - argparse: 2.0.1 - - /jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true + yallist: 3.1.1 - /json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 - /json-diff@0.9.0: - resolution: {integrity: sha512-cVnggDrVkAAA3OvFfHpFEhOnmcsUpleEKq4d4O8sQWWSH40MBrWstKigVB1kGrgLWzuom+7rRdaCsnBD6VyObQ==} - hasBin: true + /lru-queue@0.1.0: + resolution: {integrity: sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==} dependencies: - cli-color: 2.0.4 - difflib: 0.2.4 - dreamopt: 0.8.0 + es5-ext: 0.10.64 dev: true - /json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + /lucide-react@0.368.0(react@18.2.0): + resolution: {integrity: sha512-soryVrCjheZs8rbXKdINw9B8iPi5OajBJZMJ1HORig89ljcOcEokKKAgGbg3QWxSXel7JwHOfDFUdDHAKyUAMw==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 dev: false - /json-schema-ref-resolver@1.0.1: - resolution: {integrity: sha512-EJAj1pgHc1hxF6vo2Z3s69fMjO1INq6eGHXZ8Z6wCQeldCuwxGK9Sxf4/cScGn3FZubCVUehfWtcDM/PLteCQw==} + /magic-string-ast@0.3.0: + resolution: {integrity: sha512-0shqecEPgdFpnI3AP90epXyxZy9g6CRZ+SZ7BcqFwYmtFEnZ1jpevcV5HoyVnlDS9gCnc1UIg3Rsvp3Ci7r8OA==} + engines: {node: '>=16.14.0'} dependencies: - fast-deep-equal: 3.1.3 - - /json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - - /json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + magic-string: 0.30.10 - /json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - - /json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true + /magic-string@0.25.9: + resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} dependencies: - minimist: 1.2.8 - - /json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true + sourcemap-codec: 1.4.8 + dev: true - /jsonc-parser@3.2.1: - resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} - dev: false + /magic-string@0.27.0: + resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true - /jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} - optionalDependencies: - graceful-fs: 4.2.11 - dev: false + /magic-string@0.30.10: + resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 - /jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + /magicast@0.2.10: + resolution: {integrity: sha512-Ah2qatigknxwmoYCd9hx/mmVyrRNhDKiaWZIuW4gL6dWrAGMoOpCVkQ3VpGWARtkaJVFhe8uIphcsxDzLPQUyg==} dependencies: - universalify: 2.0.1 - optionalDependencies: - graceful-fs: 4.2.11 + '@babel/parser': 7.24.4 + '@babel/types': 7.22.10 + recast: 0.23.4 dev: false - /jsx-ast-utils@3.3.5: - resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} - engines: {node: '>=4.0'} + /magicast@0.3.4: + resolution: {integrity: sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==} dependencies: - array-includes: 3.1.8 - array.prototype.flat: 1.3.2 - object.assign: 4.1.5 - object.values: 1.2.0 + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 + source-map-js: 1.2.0 - /katex@0.16.10: - resolution: {integrity: sha512-ZiqaC04tp2O5utMsl2TEZTXxa6WSC4yo0fv5ML++D3QZv/vx2Mct0mTlRx3O+uUkjfuAgOkzsCmq5MiUEsDDdA==} - hasBin: true + /make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} dependencies: - commander: 8.3.0 - dev: false - - /keycode@2.2.1: - resolution: {integrity: sha512-Rdgz9Hl9Iv4QKi8b0OlCRQEzp4AgVxyCtz5S/+VIHezDmrDhkp2N2TqBWOLz0/gbeREXOOiI9/4b8BY9uw2vFg==} - dev: false + semver: 6.3.1 - /keycon@1.4.0: - resolution: {integrity: sha512-p1NAIxiRMH3jYfTeXRs2uWbVJ1WpEjpi8ktzUyBJsX7/wn2qu2VRXktneBLNtKNxJmlUYxRi9gOJt1DuthXR7A==} + /make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} dependencies: - '@cfcs/core': 0.0.6 - '@daybrush/utils': 1.13.0 - '@scena/event-emitter': 1.0.5 - keycode: 2.2.1 + semver: 7.6.0 dev: false - /keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + /make-fetch-happen@13.0.0: + resolution: {integrity: sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==} + engines: {node: ^16.14.0 || >=18.0.0} dependencies: - json-buffer: 3.0.1 + '@npmcli/agent': 2.2.2 + cacache: 18.0.2 + http-cache-semantics: 4.1.1 + is-lambda: 1.0.1 + minipass: 7.0.3 + minipass-fetch: 3.0.4 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + negotiator: 0.6.3 + promise-retry: 2.0.1 + ssri: 10.0.5 + transitivePeerDependencies: + - supports-color - /khroma@2.1.0: - resolution: {integrity: sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==} + /make-synchronized@0.2.9: + resolution: {integrity: sha512-4wczOs8SLuEdpEvp3vGo83wh8rjJ78UsIk7DIX5fxdfmfMJGog4bQzxfvOwq7Q3yCHLC4jp1urPHIxRS/A93gA==} dev: false - /kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + /map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} engines: {node: '>=0.10.0'} dev: false - /kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} + /map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} dev: false - /kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} - engines: {node: '>=6'} - - /klona@2.0.6: - resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} - engines: {node: '>= 8'} + /markdown-extensions@1.1.1: + resolution: {integrity: sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==} + engines: {node: '>=0.10.0'} dev: false - /knitwork@1.1.0: - resolution: {integrity: sha512-oHnmiBUVHz1V+URE77PNot2lv3QiYU2zQf1JjOVkMt3YDKGbu8NAFr+c4mcNOhdsGrB/VpVbRwPwhiXrPhxQbw==} + /markdown-it-task-lists@2.1.1: + resolution: {integrity: sha512-TxFAc76Jnhb2OUu+n3yz9RMu4CwGfaT788br6HhEDlvWfdeJcLUsxk1Hgw2yJio0OXsxv7pyIPmvECY7bMbluA==} dev: false - /known-css-properties@0.30.0: - resolution: {integrity: sha512-VSWXYUnsPu9+WYKkfmJyLKtIvaRJi1kXUqVmBACORXZQxT5oZDsoZ2vQP+bQFDnWtpI/4eq3MLoRMjI2fnLzTQ==} + /markdown-it@14.1.0: + resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} + hasBin: true + dependencies: + argparse: 2.0.1 + entities: 4.5.0 + linkify-it: 5.0.0 + mdurl: 2.0.0 + punycode.js: 2.3.1 + uc.micro: 2.1.0 dev: false - /language-subtag-registry@0.3.22: - resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} - dev: true + /markdown-table@3.0.3: + resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} + dev: false - /language-tags@1.0.9: - resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} - engines: {node: '>=0.10'} + /match-sorter@6.3.1: + resolution: {integrity: sha512-mxybbo3pPNuA+ZuCUhm5bwNkXrJTbsk5VWbR5wiwz/GC6LIiegBGn2w3O08UG/jdbYLinw51fSQ5xNU1U3MgBw==} dependencies: - language-subtag-registry: 0.3.22 - dev: true - - /layout-base@1.0.2: - resolution: {integrity: sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==} + '@babel/runtime': 7.22.10 + remove-accents: 0.4.2 dev: false - /lazystream@1.0.1: - resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} - engines: {node: '>= 0.6.3'} + /mdast-util-definitions@5.1.2: + resolution: {integrity: sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==} dependencies: - readable-stream: 2.3.8 + '@types/mdast': 3.0.12 + '@types/unist': 2.0.7 + unist-util-visit: 4.1.2 dev: false - /levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} + /mdast-util-definitions@6.0.0: + resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 + '@types/mdast': 4.0.3 + '@types/unist': 3.0.2 + unist-util-visit: 5.0.0 + dev: false - /lib0@0.2.93: - resolution: {integrity: sha512-M5IKsiFJYulS+8Eal8f+zAqf5ckm1vffW0fFDxfgxJ+uiVopvDdd3PxJmz0GsVi3YNO7QCFSq0nAsiDmNhLj9Q==} - engines: {node: '>=16'} - hasBin: true + /mdast-util-find-and-replace@2.2.2: + resolution: {integrity: sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==} dependencies: - isomorphic.js: 0.2.5 + '@types/mdast': 3.0.12 + escape-string-regexp: 5.0.0 + unist-util-is: 5.2.1 + unist-util-visit-parents: 5.1.3 dev: false - /light-my-request@5.12.0: - resolution: {integrity: sha512-P526OX6E7aeCIfw/9UyJNsAISfcFETghysaWHQAlQYayynShT08MOj4c6fBCvTWBrHXSvqBAKDp3amUPSCQI4w==} + /mdast-util-find-and-replace@3.0.1: + resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} dependencies: - cookie: 0.6.0 - process-warning: 3.0.0 - set-cookie-parser: 2.6.0 + '@types/mdast': 4.0.3 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + dev: false - /lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} + /mdast-util-from-markdown@1.3.1: + resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==} + dependencies: + '@types/mdast': 3.0.12 + '@types/unist': 2.0.7 + decode-named-character-reference: 1.0.2 + mdast-util-to-string: 3.2.0 + micromark: 3.2.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-decode-string: 1.1.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + unist-util-stringify-position: 3.0.3 + uvu: 0.5.6 + transitivePeerDependencies: + - supports-color + dev: false - /lilconfig@3.1.1: - resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} - engines: {node: '>=14'} + /mdast-util-from-markdown@2.0.0: + resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==} + dependencies: + '@types/mdast': 4.0.3 + '@types/unist': 3.0.2 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-decode-string: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + dev: false - /lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + /mdast-util-gfm-autolink-literal@1.0.3: + resolution: {integrity: sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==} + dependencies: + '@types/mdast': 3.0.12 + ccount: 2.0.1 + mdast-util-find-and-replace: 2.2.2 + micromark-util-character: 1.2.0 + dev: false - /linkify-it@5.0.0: - resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + /mdast-util-gfm-autolink-literal@2.0.0: + resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==} dependencies: - uc.micro: 2.1.0 + '@types/mdast': 4.0.3 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.1 + micromark-util-character: 2.1.0 dev: false - /linkifyjs@4.1.3: - resolution: {integrity: sha512-auMesunaJ8yfkHvK4gfg1K0SaKX/6Wn9g2Aac/NwX+l5VdmFZzo/hdPGxEOETj+ryRa4/fiOPjeeKURSAJx1sg==} + /mdast-util-gfm-footnote@1.0.2: + resolution: {integrity: sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==} + dependencies: + '@types/mdast': 3.0.12 + mdast-util-to-markdown: 1.5.0 + micromark-util-normalize-identifier: 1.1.0 dev: false - /listhen@1.7.2: - resolution: {integrity: sha512-7/HamOm5YD9Wb7CFgAZkKgVPA96WwhcTQoqtm2VTZGVbVVn3IWKRBTgrU7cchA3Q8k9iCsG8Osoi9GX4JsGM9g==} - hasBin: true + /mdast-util-gfm-footnote@2.0.0: + resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} dependencies: - '@parcel/watcher': 2.4.1 - '@parcel/watcher-wasm': 2.4.1 - citty: 0.1.6 - clipboardy: 4.0.0 - consola: 3.2.3 - crossws: 0.2.4 - defu: 6.1.4 - get-port-please: 3.1.2 - h3: 1.11.1 - http-shutdown: 1.2.2 - jiti: 1.21.0 - mlly: 1.6.1 - node-forge: 1.3.1 - pathe: 1.1.2 - std-env: 3.7.0 - ufo: 1.5.3 - untun: 0.1.3 - uqr: 0.1.2 + '@types/mdast': 4.0.3 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.0 + micromark-util-normalize-identifier: 2.0.0 transitivePeerDependencies: - - uWebSockets.js + - supports-color dev: false - /load-tsconfig@0.2.5: - resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true - - /load-yaml-file@0.2.0: - resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} - engines: {node: '>=6'} + /mdast-util-gfm-strikethrough@1.0.3: + resolution: {integrity: sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==} dependencies: - graceful-fs: 4.2.11 - js-yaml: 3.14.1 - pify: 4.0.1 - strip-bom: 3.0.0 + '@types/mdast': 3.0.12 + mdast-util-to-markdown: 1.5.0 dev: false - /local-pkg@0.5.0: - resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} - engines: {node: '>=14'} + /mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} dependencies: - mlly: 1.6.1 - pkg-types: 1.0.3 + '@types/mdast': 4.0.3 + mdast-util-from-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color dev: false - /locate-character@3.0.0: - resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} - dev: true - - /locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} + /mdast-util-gfm-table@1.0.7: + resolution: {integrity: sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==} dependencies: - p-locate: 4.1.0 + '@types/mdast': 3.0.12 + markdown-table: 3.0.3 + mdast-util-from-markdown: 1.3.1 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color dev: false - /locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} + /mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} dependencies: - p-locate: 5.0.0 - - /lodash-es@4.17.21: - resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + '@types/mdast': 4.0.3 + devlop: 1.1.0 + markdown-table: 3.0.3 + mdast-util-from-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color dev: false - /lodash.castarray@4.4.0: - resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} + /mdast-util-gfm-task-list-item@1.0.2: + resolution: {integrity: sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==} + dependencies: + '@types/mdast': 3.0.12 + mdast-util-to-markdown: 1.5.0 dev: false - /lodash.defaults@4.2.0: - resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} + /mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + dependencies: + '@types/mdast': 4.0.3 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color dev: false - /lodash.get@4.4.2: - resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} + /mdast-util-gfm@2.0.2: + resolution: {integrity: sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==} + dependencies: + mdast-util-from-markdown: 1.3.1 + mdast-util-gfm-autolink-literal: 1.0.3 + mdast-util-gfm-footnote: 1.0.2 + mdast-util-gfm-strikethrough: 1.0.3 + mdast-util-gfm-table: 1.0.7 + mdast-util-gfm-task-list-item: 1.0.2 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color dev: false - /lodash.isarguments@3.1.0: - resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} + /mdast-util-gfm@3.0.0: + resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} + dependencies: + mdast-util-from-markdown: 2.0.0 + mdast-util-gfm-autolink-literal: 2.0.0 + mdast-util-gfm-footnote: 2.0.0 + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-gfm-table: 2.0.0 + mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color dev: false - /lodash.isplainobject@4.0.6: - resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + /mdast-util-math@2.0.2: + resolution: {integrity: sha512-8gmkKVp9v6+Tgjtq6SYx9kGPpTf6FVYRa53/DLh479aldR9AyP48qeVOgNZ5X7QUK7nOy4yw7vg6mbiGcs9jWQ==} + dependencies: + '@types/mdast': 3.0.12 + longest-streak: 3.1.0 + mdast-util-to-markdown: 1.5.0 dev: false - /lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - - /lodash.sortby@4.7.0: - resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} - dev: true - - /lodash.startcase@4.4.0: - resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + /mdast-util-mdx-expression@1.3.2: + resolution: {integrity: sha512-xIPmR5ReJDu/DHH1OoIT1HkuybIfRGYRywC+gJtI7qHjCJp/M9jrmBEJW22O8lskDWm562BX2W8TiAwRTb0rKA==} + dependencies: + '@types/estree-jsx': 1.0.0 + '@types/hast': 2.3.5 + '@types/mdast': 3.0.12 + mdast-util-from-markdown: 1.3.1 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color dev: false - /lodash.throttle@4.1.1: - resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} - dev: true - - /lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - - /log-symbols@5.1.0: - resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==} - engines: {node: '>=12'} + /mdast-util-mdx-jsx@2.1.4: + resolution: {integrity: sha512-DtMn9CmVhVzZx3f+optVDF8yFgQVt7FghCRNdlIaS3X5Bnym3hZwPbg/XW86vdpKjlc1PVj26SpnLGeJBXD3JA==} dependencies: - chalk: 5.3.0 - is-unicode-supported: 1.3.0 + '@types/estree-jsx': 1.0.0 + '@types/hast': 2.3.5 + '@types/mdast': 3.0.12 + '@types/unist': 2.0.7 + ccount: 2.0.1 + mdast-util-from-markdown: 1.3.1 + mdast-util-to-markdown: 1.5.0 + parse-entities: 4.0.1 + stringify-entities: 4.0.3 + unist-util-remove-position: 4.0.2 + unist-util-stringify-position: 3.0.3 + vfile-message: 3.1.4 + transitivePeerDependencies: + - supports-color dev: false - /longest-streak@3.1.0: - resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + /mdast-util-mdx@2.0.1: + resolution: {integrity: sha512-38w5y+r8nyKlGvNjSEqWrhG0w5PmnRA+wnBvm+ulYCct7nsGYhFVb0lljS9bQav4psDAS1eGkP2LMVcZBi/aqw==} + dependencies: + mdast-util-from-markdown: 1.3.1 + mdast-util-mdx-expression: 1.3.2 + mdast-util-mdx-jsx: 2.1.4 + mdast-util-mdxjs-esm: 1.3.1 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color dev: false - /loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true + /mdast-util-mdxjs-esm@1.3.1: + resolution: {integrity: sha512-SXqglS0HrEvSdUEfoXFtcg7DRl7S2cwOXc7jkuusG472Mmjag34DUDeOJUZtl+BVnyeO1frIgVpHlNRWc2gk/w==} dependencies: - js-tokens: 4.0.0 + '@types/estree-jsx': 1.0.0 + '@types/hast': 2.3.5 + '@types/mdast': 3.0.12 + mdast-util-from-markdown: 1.3.1 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color + dev: false - /loupe@2.3.7: - resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + /mdast-util-phrasing@3.0.1: + resolution: {integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==} dependencies: - get-func-name: 2.0.2 + '@types/mdast': 3.0.12 + unist-util-is: 5.2.1 dev: false - /lower-case@2.0.2: - resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + /mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} dependencies: - tslib: 2.6.2 + '@types/mdast': 4.0.3 + unist-util-is: 6.0.0 + dev: false - /lowercase-keys@3.0.0: - resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /mdast-util-to-hast@12.3.0: + resolution: {integrity: sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==} + dependencies: + '@types/hast': 2.3.5 + '@types/mdast': 3.0.12 + mdast-util-definitions: 5.1.2 + micromark-util-sanitize-uri: 1.2.0 + trim-lines: 3.0.1 + unist-util-generated: 2.0.1 + unist-util-position: 4.0.4 + unist-util-visit: 4.1.2 dev: false - /lowlight@3.1.0: - resolution: {integrity: sha512-CEbNVoSikAxwDMDPjXlqlFYiZLkDJHwyGu/MfOsJnF3d7f3tds5J3z8s/l9TMXhzfsJCCJEAsD78842mwmg0PQ==} + /mdast-util-to-hast@13.1.0: + resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==} dependencies: '@types/hast': 3.0.4 + '@types/mdast': 4.0.3 + '@ungap/structured-clone': 1.2.0 devlop: 1.1.0 - highlight.js: 11.9.0 + micromark-util-sanitize-uri: 2.0.0 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.1 dev: false - /lru-cache@10.2.0: - resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} - engines: {node: 14 || >=16.14} - - /lru-cache@4.1.5: - resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} + /mdast-util-to-markdown@1.5.0: + resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==} dependencies: - pseudomap: 1.0.2 - yallist: 2.1.2 + '@types/mdast': 3.0.12 + '@types/unist': 2.0.7 + longest-streak: 3.1.0 + mdast-util-phrasing: 3.0.1 + mdast-util-to-string: 3.2.0 + micromark-util-decode-string: 1.1.0 + unist-util-visit: 4.1.2 + zwitch: 2.0.4 dev: false - /lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - dependencies: - yallist: 3.1.1 - - /lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} + /mdast-util-to-markdown@2.1.0: + resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} dependencies: - yallist: 4.0.0 + '@types/mdast': 4.0.3 + '@types/unist': 3.0.2 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-decode-string: 2.0.0 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + dev: false - /lru-queue@0.1.0: - resolution: {integrity: sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==} + /mdast-util-to-string@3.2.0: + resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==} dependencies: - es5-ext: 0.10.64 - dev: true + '@types/mdast': 3.0.12 + dev: false - /lucide-react@0.368.0(react@18.2.0): - resolution: {integrity: sha512-soryVrCjheZs8rbXKdINw9B8iPi5OajBJZMJ1HORig89ljcOcEokKKAgGbg3QWxSXel7JwHOfDFUdDHAKyUAMw==} - peerDependencies: - react: ^16.5.1 || ^17.0.0 || ^18.0.0 + /mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} dependencies: - react: 18.2.0 + '@types/mdast': 4.0.3 dev: false - /magic-string@0.25.9: - resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} - dependencies: - sourcemap-codec: 1.4.8 - dev: true + /mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} - /magic-string@0.30.9: - resolution: {integrity: sha512-S1+hd+dIrC8EZqKyT9DstTH/0Z+f76kmmvZnkfQVmOpDEF9iVgdYif3Q/pIWHmCoo59bQVGW0kVL3e2nl+9+Sw==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 + /mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} - /magicast@0.2.11: - resolution: {integrity: sha512-6saXbRDA1HMkqbsvHOU6HBjCVgZT460qheRkLhJQHWAbhXoWESI3Kn/dGGXyKs15FFKR85jsUqFx2sMK0wy/5g==} - dependencies: - '@babel/parser': 7.24.4 - '@babel/types': 7.24.0 - recast: 0.23.6 + /mdurl@2.0.0: + resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} dev: false - /magicast@0.3.3: - resolution: {integrity: sha512-ZbrP1Qxnpoes8sz47AM0z08U+jW6TyRgZzcWy3Ma3vDhJttwMwAFDMMQFobwdBxByBD46JYmxRzeF7w2+wJEuw==} - dependencies: - '@babel/parser': 7.24.4 - '@babel/types': 7.24.0 - source-map-js: 1.2.0 + /media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + + /memoirist@0.1.10: + resolution: {integrity: sha512-k2ARHDrSzqeQAWrgvE2NgNj7p5c1LkeFI1VizklJWDXAOTgq7m8mtl0v6W1mVawFNe3DH0hb4BdA91y3vwbqvw==} dev: false - /make-dir@3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + /memoizee@0.4.15: + resolution: {integrity: sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==} + dependencies: + d: 1.0.2 + es5-ext: 0.10.64 + es6-weak-map: 2.0.3 + event-emitter: 0.3.5 + is-promise: 2.2.2 + lru-queue: 0.1.0 + next-tick: 1.1.0 + timers-ext: 0.1.7 + dev: true + + /meow@6.1.1: + resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==} engines: {node: '>=8'} dependencies: - semver: 6.3.1 + '@types/minimist': 1.2.2 + camelcase-keys: 6.2.2 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 2.5.0 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.13.1 + yargs-parser: 18.1.3 dev: false - /make-dir@4.0.0: - resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} - engines: {node: '>=10'} + /merge-anything@5.1.7: + resolution: {integrity: sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ==} + engines: {node: '>=12.13'} dependencies: - semver: 7.6.0 + is-what: 4.1.15 dev: false - /make-synchronized@0.2.8: - resolution: {integrity: sha512-jtXnKYCxjmGaXiZhXbDbGPbh4YyTvIIbOgcQjtAboc4RSm9k3nyhTFvFQB0cfs7QFKuZXKe2D2RvOkv1c+vpxg==} - dev: false + /merge-descriptors@1.0.1: + resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} - /map-obj@1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} - engines: {node: '>=0.10.0'} - dev: false + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - /map-obj@4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} - engines: {node: '>=8'} - dev: false + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} - /markdown-extensions@1.1.1: - resolution: {integrity: sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==} - engines: {node: '>=0.10.0'} + /mermaid@10.9.0: + resolution: {integrity: sha512-swZju0hFox/B/qoLKK0rOxxgh8Cf7rJSfAUc1u8fezVihYMvrJAS45GzAxTVf4Q+xn9uMgitBcmWk7nWGXOs/g==} + dependencies: + '@braintree/sanitize-url': 6.0.4 + '@types/d3-scale': 4.0.8 + '@types/d3-scale-chromatic': 3.0.3 + cytoscape: 3.29.0 + cytoscape-cose-bilkent: 4.1.0(cytoscape@3.29.0) + d3: 7.8.5 + d3-sankey: 0.12.3 + dagre-d3-es: 7.0.10 + dayjs: 1.11.9 + dompurify: 3.1.0 + elkjs: 0.9.3 + katex: 0.16.10 + khroma: 2.0.0 + lodash-es: 4.17.21 + mdast-util-from-markdown: 1.3.1 + non-layered-tidy-tree-layout: 2.0.2 + stylis: 4.3.0 + ts-dedent: 2.2.0 + uuid: 9.0.0 + web-worker: 1.2.0 + transitivePeerDependencies: + - supports-color dev: false - /markdown-it-task-lists@2.1.1: - resolution: {integrity: sha512-TxFAc76Jnhb2OUu+n3yz9RMu4CwGfaT788br6HhEDlvWfdeJcLUsxk1Hgw2yJio0OXsxv7pyIPmvECY7bMbluA==} + /methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + + /micromark-core-commonmark@1.1.0: + resolution: {integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==} + dependencies: + decode-named-character-reference: 1.0.2 + micromark-factory-destination: 1.1.0 + micromark-factory-label: 1.1.0 + micromark-factory-space: 1.1.0 + micromark-factory-title: 1.1.0 + micromark-factory-whitespace: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-chunked: 1.1.0 + micromark-util-classify-character: 1.1.0 + micromark-util-html-tag-name: 1.2.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-resolve-all: 1.1.0 + micromark-util-subtokenize: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 dev: false - /markdown-it@14.1.0: - resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} - hasBin: true + /micromark-core-commonmark@2.0.0: + resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==} dependencies: - argparse: 2.0.1 - entities: 4.5.0 - linkify-it: 5.0.0 - mdurl: 2.0.0 - punycode.js: 2.3.1 - uc.micro: 2.1.0 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-factory-destination: 2.0.0 + micromark-factory-label: 2.0.0 + micromark-factory-space: 2.0.0 + micromark-factory-title: 2.0.0 + micromark-factory-whitespace: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-classify-character: 2.0.0 + micromark-util-html-tag-name: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-subtokenize: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 dev: false - /markdown-table@3.0.3: - resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} + /micromark-extension-gfm-autolink-literal@1.0.5: + resolution: {integrity: sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg==} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-sanitize-uri: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 dev: false - /match-sorter@6.3.4: - resolution: {integrity: sha512-jfZW7cWS5y/1xswZo8VBOdudUiSd9nifYRWphc9M5D/ee4w4AoXLgBEdRbgVaxbMuagBPeUC5y2Hi8DO6o9aDg==} + /micromark-extension-gfm-autolink-literal@2.0.0: + resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==} dependencies: - '@babel/runtime': 7.24.4 - remove-accents: 0.5.0 + micromark-util-character: 2.1.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 dev: false - /mdast-util-definitions@5.1.2: - resolution: {integrity: sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==} + /micromark-extension-gfm-footnote@1.1.2: + resolution: {integrity: sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q==} dependencies: - '@types/mdast': 3.0.15 - '@types/unist': 2.0.10 - unist-util-visit: 4.1.2 + micromark-core-commonmark: 1.1.0 + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-sanitize-uri: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 dev: false - /mdast-util-definitions@6.0.0: - resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} + /micromark-extension-gfm-footnote@2.0.0: + resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==} dependencies: - '@types/mdast': 4.0.3 - '@types/unist': 3.0.2 - unist-util-visit: 5.0.0 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 dev: false - /mdast-util-find-and-replace@2.2.2: - resolution: {integrity: sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==} + /micromark-extension-gfm-strikethrough@1.0.7: + resolution: {integrity: sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw==} dependencies: - '@types/mdast': 3.0.15 - escape-string-regexp: 5.0.0 - unist-util-is: 5.2.1 - unist-util-visit-parents: 5.1.3 + micromark-util-chunked: 1.1.0 + micromark-util-classify-character: 1.1.0 + micromark-util-resolve-all: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 dev: false - /mdast-util-find-and-replace@3.0.1: - resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} + /micromark-extension-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==} dependencies: - '@types/mdast': 4.0.3 - escape-string-regexp: 5.0.0 - unist-util-is: 6.0.0 - unist-util-visit-parents: 6.0.1 + devlop: 1.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-classify-character: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 dev: false - /mdast-util-from-markdown@1.3.1: - resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==} + /micromark-extension-gfm-table@1.0.7: + resolution: {integrity: sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw==} dependencies: - '@types/mdast': 3.0.15 - '@types/unist': 2.0.10 - decode-named-character-reference: 1.0.2 - mdast-util-to-string: 3.2.0 - micromark: 3.2.0 - micromark-util-decode-numeric-character-reference: 1.1.0 - micromark-util-decode-string: 1.1.0 - micromark-util-normalize-identifier: 1.1.0 + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 - unist-util-stringify-position: 3.0.3 uvu: 0.5.6 - transitivePeerDependencies: - - supports-color dev: false - /mdast-util-from-markdown@2.0.0: - resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==} + /micromark-extension-gfm-table@2.0.0: + resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==} dependencies: - '@types/mdast': 4.0.3 - '@types/unist': 3.0.2 - decode-named-character-reference: 1.0.2 devlop: 1.1.0 - mdast-util-to-string: 4.0.0 - micromark: 4.0.0 - micromark-util-decode-numeric-character-reference: 2.0.1 - micromark-util-decode-string: 2.0.0 - micromark-util-normalize-identifier: 2.0.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - unist-util-stringify-position: 4.0.0 - transitivePeerDependencies: - - supports-color dev: false - /mdast-util-gfm-autolink-literal@1.0.3: - resolution: {integrity: sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==} + /micromark-extension-gfm-tagfilter@1.0.2: + resolution: {integrity: sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==} dependencies: - '@types/mdast': 3.0.15 - ccount: 2.0.1 - mdast-util-find-and-replace: 2.2.2 + micromark-util-types: 1.1.0 + dev: false + + /micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + dependencies: + micromark-util-types: 2.0.0 + dev: false + + /micromark-extension-gfm-task-list-item@1.0.5: + resolution: {integrity: sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ==} + dependencies: + micromark-factory-space: 1.1.0 micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 dev: false - /mdast-util-gfm-autolink-literal@2.0.0: - resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==} + /micromark-extension-gfm-task-list-item@2.0.1: + resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==} dependencies: - '@types/mdast': 4.0.3 - ccount: 2.0.1 devlop: 1.1.0 - mdast-util-find-and-replace: 3.0.1 + micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 dev: false - /mdast-util-gfm-footnote@1.0.2: - resolution: {integrity: sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==} + /micromark-extension-gfm@2.0.3: + resolution: {integrity: sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ==} dependencies: - '@types/mdast': 3.0.15 - mdast-util-to-markdown: 1.5.0 - micromark-util-normalize-identifier: 1.1.0 + micromark-extension-gfm-autolink-literal: 1.0.5 + micromark-extension-gfm-footnote: 1.1.2 + micromark-extension-gfm-strikethrough: 1.0.7 + micromark-extension-gfm-table: 1.0.7 + micromark-extension-gfm-tagfilter: 1.0.2 + micromark-extension-gfm-task-list-item: 1.0.5 + micromark-util-combine-extensions: 1.1.0 + micromark-util-types: 1.1.0 dev: false - /mdast-util-gfm-footnote@2.0.0: - resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} + /micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} dependencies: - '@types/mdast': 4.0.3 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.0 - mdast-util-to-markdown: 2.1.0 - micromark-util-normalize-identifier: 2.0.0 - transitivePeerDependencies: - - supports-color + micromark-extension-gfm-autolink-literal: 2.0.0 + micromark-extension-gfm-footnote: 2.0.0 + micromark-extension-gfm-strikethrough: 2.0.0 + micromark-extension-gfm-table: 2.0.0 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.0.1 + micromark-util-combine-extensions: 2.0.0 + micromark-util-types: 2.0.0 dev: false - /mdast-util-gfm-strikethrough@1.0.3: - resolution: {integrity: sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==} + /micromark-extension-math@2.1.2: + resolution: {integrity: sha512-es0CcOV89VNS9wFmyn+wyFTKweXGW4CEvdaAca6SWRWPyYCbBisnjaHLjWO4Nszuiud84jCpkHsqAJoa768Pvg==} dependencies: - '@types/mdast': 3.0.15 - mdast-util-to-markdown: 1.5.0 + '@types/katex': 0.16.2 + katex: 0.16.10 + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 dev: false - /mdast-util-gfm-strikethrough@2.0.0: - resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + /micromark-extension-mdx-expression@1.0.8: + resolution: {integrity: sha512-zZpeQtc5wfWKdzDsHRBY003H2Smg+PUi2REhqgIhdzAa5xonhP03FcXxqFSerFiNUr5AWmHpaNPQTBVOS4lrXw==} dependencies: - '@types/mdast': 4.0.3 - mdast-util-from-markdown: 2.0.0 - mdast-util-to-markdown: 2.1.0 - transitivePeerDependencies: - - supports-color + '@types/estree': 1.0.1 + micromark-factory-mdx-expression: 1.0.9 + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-events-to-acorn: 1.2.3 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 dev: false - /mdast-util-gfm-table@1.0.7: - resolution: {integrity: sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==} + /micromark-extension-mdx-jsx@1.0.5: + resolution: {integrity: sha512-gPH+9ZdmDflbu19Xkb8+gheqEDqkSpdCEubQyxuz/Hn8DOXiXvrXeikOoBA71+e8Pfi0/UYmU3wW3H58kr7akA==} dependencies: - '@types/mdast': 3.0.15 - markdown-table: 3.0.3 - mdast-util-from-markdown: 1.3.1 - mdast-util-to-markdown: 1.5.0 - transitivePeerDependencies: - - supports-color + '@types/acorn': 4.0.6 + '@types/estree': 1.0.1 + estree-util-is-identifier-name: 2.1.0 + micromark-factory-mdx-expression: 1.0.9 + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + vfile-message: 3.1.4 dev: false - /mdast-util-gfm-table@2.0.0: - resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + /micromark-extension-mdx-md@1.0.1: + resolution: {integrity: sha512-7MSuj2S7xjOQXAjjkbjBsHkMtb+mDGVW6uI2dBL9snOBCbZmoNgDAeZ0nSn9j3T42UE/g2xVNMn18PJxZvkBEA==} dependencies: - '@types/mdast': 4.0.3 - devlop: 1.1.0 - markdown-table: 3.0.3 - mdast-util-from-markdown: 2.0.0 - mdast-util-to-markdown: 2.1.0 - transitivePeerDependencies: - - supports-color + micromark-util-types: 1.1.0 dev: false - /mdast-util-gfm-task-list-item@1.0.2: - resolution: {integrity: sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==} + /micromark-extension-mdxjs-esm@1.0.5: + resolution: {integrity: sha512-xNRBw4aoURcyz/S69B19WnZAkWJMxHMT5hE36GtDAyhoyn/8TuAeqjFJQlwk+MKQsUD7b3l7kFX+vlfVWgcX1w==} dependencies: - '@types/mdast': 3.0.15 - mdast-util-to-markdown: 1.5.0 + '@types/estree': 1.0.1 + micromark-core-commonmark: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-events-to-acorn: 1.2.3 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + unist-util-position-from-estree: 1.1.2 + uvu: 0.5.6 + vfile-message: 3.1.4 dev: false - /mdast-util-gfm-task-list-item@2.0.0: - resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + /micromark-extension-mdxjs@1.0.1: + resolution: {integrity: sha512-7YA7hF6i5eKOfFUzZ+0z6avRG52GpWR8DL+kN47y3f2KhxbBZMhmxe7auOeaTBrW2DenbbZTf1ea9tA2hDpC2Q==} dependencies: - '@types/mdast': 4.0.3 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.0 - mdast-util-to-markdown: 2.1.0 - transitivePeerDependencies: - - supports-color + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) + micromark-extension-mdx-expression: 1.0.8 + micromark-extension-mdx-jsx: 1.0.5 + micromark-extension-mdx-md: 1.0.1 + micromark-extension-mdxjs-esm: 1.0.5 + micromark-util-combine-extensions: 1.1.0 + micromark-util-types: 1.1.0 dev: false - /mdast-util-gfm@2.0.2: - resolution: {integrity: sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==} + /micromark-factory-destination@1.1.0: + resolution: {integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==} dependencies: - mdast-util-from-markdown: 1.3.1 - mdast-util-gfm-autolink-literal: 1.0.3 - mdast-util-gfm-footnote: 1.0.2 - mdast-util-gfm-strikethrough: 1.0.3 - mdast-util-gfm-table: 1.0.7 - mdast-util-gfm-task-list-item: 1.0.2 - mdast-util-to-markdown: 1.5.0 - transitivePeerDependencies: - - supports-color + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 dev: false - /mdast-util-gfm@3.0.0: - resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} + /micromark-factory-destination@2.0.0: + resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} dependencies: - mdast-util-from-markdown: 2.0.0 - mdast-util-gfm-autolink-literal: 2.0.0 - mdast-util-gfm-footnote: 2.0.0 - mdast-util-gfm-strikethrough: 2.0.0 - mdast-util-gfm-table: 2.0.0 - mdast-util-gfm-task-list-item: 2.0.0 - mdast-util-to-markdown: 2.1.0 - transitivePeerDependencies: - - supports-color + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 dev: false - /mdast-util-math@2.0.2: - resolution: {integrity: sha512-8gmkKVp9v6+Tgjtq6SYx9kGPpTf6FVYRa53/DLh479aldR9AyP48qeVOgNZ5X7QUK7nOy4yw7vg6mbiGcs9jWQ==} + /micromark-factory-label@1.1.0: + resolution: {integrity: sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==} dependencies: - '@types/mdast': 3.0.15 - longest-streak: 3.1.0 - mdast-util-to-markdown: 1.5.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 dev: false - /mdast-util-mdx-expression@1.3.2: - resolution: {integrity: sha512-xIPmR5ReJDu/DHH1OoIT1HkuybIfRGYRywC+gJtI7qHjCJp/M9jrmBEJW22O8lskDWm562BX2W8TiAwRTb0rKA==} + /micromark-factory-label@2.0.0: + resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 2.3.10 - '@types/mdast': 3.0.15 - mdast-util-from-markdown: 1.3.1 - mdast-util-to-markdown: 1.5.0 - transitivePeerDependencies: - - supports-color + devlop: 1.1.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 dev: false - /mdast-util-mdx-jsx@2.1.4: - resolution: {integrity: sha512-DtMn9CmVhVzZx3f+optVDF8yFgQVt7FghCRNdlIaS3X5Bnym3hZwPbg/XW86vdpKjlc1PVj26SpnLGeJBXD3JA==} + /micromark-factory-mdx-expression@1.0.9: + resolution: {integrity: sha512-jGIWzSmNfdnkJq05c7b0+Wv0Kfz3NJ3N4cBjnbO4zjXIlxJr+f8lk+5ZmwFvqdAbUy2q6B5rCY//g0QAAaXDWA==} dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 2.3.10 - '@types/mdast': 3.0.15 - '@types/unist': 2.0.10 - ccount: 2.0.1 - mdast-util-from-markdown: 1.3.1 - mdast-util-to-markdown: 1.5.0 - parse-entities: 4.0.1 - stringify-entities: 4.0.4 - unist-util-remove-position: 4.0.2 - unist-util-stringify-position: 3.0.3 + '@types/estree': 1.0.1 + micromark-util-character: 1.2.0 + micromark-util-events-to-acorn: 1.2.3 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + unist-util-position-from-estree: 1.1.2 + uvu: 0.5.6 vfile-message: 3.1.4 - transitivePeerDependencies: - - supports-color dev: false - /mdast-util-mdx@2.0.1: - resolution: {integrity: sha512-38w5y+r8nyKlGvNjSEqWrhG0w5PmnRA+wnBvm+ulYCct7nsGYhFVb0lljS9bQav4psDAS1eGkP2LMVcZBi/aqw==} + /micromark-factory-space@1.1.0: + resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} dependencies: - mdast-util-from-markdown: 1.3.1 - mdast-util-mdx-expression: 1.3.2 - mdast-util-mdx-jsx: 2.1.4 - mdast-util-mdxjs-esm: 1.3.1 - mdast-util-to-markdown: 1.5.0 - transitivePeerDependencies: - - supports-color + micromark-util-character: 1.2.0 + micromark-util-types: 1.1.0 dev: false - /mdast-util-mdxjs-esm@1.3.1: - resolution: {integrity: sha512-SXqglS0HrEvSdUEfoXFtcg7DRl7S2cwOXc7jkuusG472Mmjag34DUDeOJUZtl+BVnyeO1frIgVpHlNRWc2gk/w==} + /micromark-factory-space@2.0.0: + resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 2.3.10 - '@types/mdast': 3.0.15 - mdast-util-from-markdown: 1.3.1 - mdast-util-to-markdown: 1.5.0 - transitivePeerDependencies: - - supports-color + micromark-util-character: 2.1.0 + micromark-util-types: 2.0.0 dev: false - /mdast-util-phrasing@3.0.1: - resolution: {integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==} + /micromark-factory-title@1.1.0: + resolution: {integrity: sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==} dependencies: - '@types/mdast': 3.0.15 - unist-util-is: 5.2.1 + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 dev: false - /mdast-util-phrasing@4.1.0: - resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + /micromark-factory-title@2.0.0: + resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} dependencies: - '@types/mdast': 4.0.3 - unist-util-is: 6.0.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 dev: false - /mdast-util-to-hast@12.3.0: - resolution: {integrity: sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==} + /micromark-factory-whitespace@1.1.0: + resolution: {integrity: sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==} dependencies: - '@types/hast': 2.3.10 - '@types/mdast': 3.0.15 - mdast-util-definitions: 5.1.2 - micromark-util-sanitize-uri: 1.2.0 - trim-lines: 3.0.1 - unist-util-generated: 2.0.1 - unist-util-position: 4.0.4 - unist-util-visit: 4.1.2 + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 dev: false - /mdast-util-to-hast@13.1.0: - resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==} + /micromark-factory-whitespace@2.0.0: + resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} dependencies: - '@types/hast': 3.0.4 - '@types/mdast': 4.0.3 - '@ungap/structured-clone': 1.2.0 - devlop: 1.1.0 - micromark-util-sanitize-uri: 2.0.0 - trim-lines: 3.0.1 - unist-util-position: 5.0.0 - unist-util-visit: 5.0.0 - vfile: 6.0.1 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 dev: false - /mdast-util-to-markdown@1.5.0: - resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==} + /micromark-util-character@1.2.0: + resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} dependencies: - '@types/mdast': 3.0.15 - '@types/unist': 2.0.10 - longest-streak: 3.1.0 - mdast-util-phrasing: 3.0.1 - mdast-util-to-string: 3.2.0 - micromark-util-decode-string: 1.1.0 - unist-util-visit: 4.1.2 - zwitch: 2.0.4 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 dev: false - /mdast-util-to-markdown@2.1.0: - resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} + /micromark-util-character@2.1.0: + resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} dependencies: - '@types/mdast': 4.0.3 - '@types/unist': 3.0.2 - longest-streak: 3.1.0 - mdast-util-phrasing: 4.1.0 - mdast-util-to-string: 4.0.0 - micromark-util-decode-string: 2.0.0 - unist-util-visit: 5.0.0 - zwitch: 2.0.4 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 dev: false - /mdast-util-to-string@3.2.0: - resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==} + /micromark-util-chunked@1.1.0: + resolution: {integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==} dependencies: - '@types/mdast': 3.0.15 + micromark-util-symbol: 1.1.0 dev: false - /mdast-util-to-string@4.0.0: - resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + /micromark-util-chunked@2.0.0: + resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} dependencies: - '@types/mdast': 4.0.3 + micromark-util-symbol: 2.0.0 dev: false - /mdn-data@2.0.30: - resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} - dev: true - - /mdurl@2.0.0: - resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + /micromark-util-classify-character@1.1.0: + resolution: {integrity: sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 dev: false - /media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} - - /memoirist@0.1.10: - resolution: {integrity: sha512-k2ARHDrSzqeQAWrgvE2NgNj7p5c1LkeFI1VizklJWDXAOTgq7m8mtl0v6W1mVawFNe3DH0hb4BdA91y3vwbqvw==} + /micromark-util-classify-character@2.0.0: + resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} + dependencies: + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 dev: false - /memoizee@0.4.15: - resolution: {integrity: sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==} + /micromark-util-combine-extensions@1.1.0: + resolution: {integrity: sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==} dependencies: - d: 1.0.2 - es5-ext: 0.10.64 - es6-weak-map: 2.0.3 - event-emitter: 0.3.5 - is-promise: 2.2.2 - lru-queue: 0.1.0 - next-tick: 1.1.0 - timers-ext: 0.1.7 - dev: true + micromark-util-chunked: 1.1.0 + micromark-util-types: 1.1.0 + dev: false - /meow@6.1.1: - resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==} - engines: {node: '>=8'} + /micromark-util-combine-extensions@2.0.0: + resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} dependencies: - '@types/minimist': 1.2.5 - camelcase-keys: 6.2.2 - decamelize-keys: 1.1.1 - hard-rejection: 2.1.0 - minimist-options: 4.1.0 - normalize-package-data: 2.5.0 - read-pkg-up: 7.0.1 - redent: 3.0.0 - trim-newlines: 3.0.1 - type-fest: 0.13.1 - yargs-parser: 18.1.3 + micromark-util-chunked: 2.0.0 + micromark-util-types: 2.0.0 dev: false - /merge-anything@5.1.7: - resolution: {integrity: sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ==} - engines: {node: '>=12.13'} + /micromark-util-decode-numeric-character-reference@1.1.0: + resolution: {integrity: sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==} dependencies: - is-what: 4.1.16 + micromark-util-symbol: 1.1.0 dev: false - /merge-descriptors@1.0.1: - resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} - - /merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + /micromark-util-decode-numeric-character-reference@2.0.1: + resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} + dependencies: + micromark-util-symbol: 2.0.0 + dev: false - /merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} + /micromark-util-decode-string@1.1.0: + resolution: {integrity: sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==} + dependencies: + decode-named-character-reference: 1.0.2 + micromark-util-character: 1.2.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-symbol: 1.1.0 + dev: false - /mermaid@10.9.0: - resolution: {integrity: sha512-swZju0hFox/B/qoLKK0rOxxgh8Cf7rJSfAUc1u8fezVihYMvrJAS45GzAxTVf4Q+xn9uMgitBcmWk7nWGXOs/g==} + /micromark-util-decode-string@2.0.0: + resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} dependencies: - '@braintree/sanitize-url': 6.0.4 - '@types/d3-scale': 4.0.8 - '@types/d3-scale-chromatic': 3.0.3 - cytoscape: 3.28.1 - cytoscape-cose-bilkent: 4.1.0(cytoscape@3.28.1) - d3: 7.9.0 - d3-sankey: 0.12.3 - dagre-d3-es: 7.0.10 - dayjs: 1.11.10 - dompurify: 3.1.0 - elkjs: 0.9.2 - katex: 0.16.10 - khroma: 2.1.0 - lodash-es: 4.17.21 - mdast-util-from-markdown: 1.3.1 - non-layered-tidy-tree-layout: 2.0.2 - stylis: 4.3.1 - ts-dedent: 2.2.0 - uuid: 9.0.1 - web-worker: 1.3.0 - transitivePeerDependencies: - - supports-color + decode-named-character-reference: 1.0.2 + micromark-util-character: 2.1.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-symbol: 2.0.0 dev: false - /methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} + /micromark-util-encode@1.1.0: + resolution: {integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==} + dev: false + + /micromark-util-encode@2.0.0: + resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + dev: false - /micromark-core-commonmark@1.1.0: - resolution: {integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==} + /micromark-util-events-to-acorn@1.2.3: + resolution: {integrity: sha512-ij4X7Wuc4fED6UoLWkmo0xJQhsktfNh1J0m8g4PbIMPlx+ek/4YdW5mvbye8z/aZvAPUoxgXHrwVlXAPKMRp1w==} dependencies: - decode-named-character-reference: 1.0.2 - micromark-factory-destination: 1.1.0 - micromark-factory-label: 1.1.0 - micromark-factory-space: 1.1.0 - micromark-factory-title: 1.1.0 - micromark-factory-whitespace: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-chunked: 1.1.0 - micromark-util-classify-character: 1.1.0 - micromark-util-html-tag-name: 1.2.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-resolve-all: 1.1.0 - micromark-util-subtokenize: 1.1.0 + '@types/acorn': 4.0.6 + '@types/estree': 1.0.1 + '@types/unist': 2.0.7 + estree-util-visit: 1.2.1 micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 uvu: 0.5.6 + vfile-message: 3.1.4 dev: false - /micromark-core-commonmark@2.0.0: - resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==} + /micromark-util-html-tag-name@1.2.0: + resolution: {integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==} + dev: false + + /micromark-util-html-tag-name@2.0.0: + resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} + dev: false + + /micromark-util-normalize-identifier@1.1.0: + resolution: {integrity: sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==} + dependencies: + micromark-util-symbol: 1.1.0 + dev: false + + /micromark-util-normalize-identifier@2.0.0: + resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} dependencies: - decode-named-character-reference: 1.0.2 - devlop: 1.1.0 - micromark-factory-destination: 2.0.0 - micromark-factory-label: 2.0.0 - micromark-factory-space: 2.0.0 - micromark-factory-title: 2.0.0 - micromark-factory-whitespace: 2.0.0 - micromark-util-character: 2.1.0 - micromark-util-chunked: 2.0.0 - micromark-util-classify-character: 2.0.0 - micromark-util-html-tag-name: 2.0.0 - micromark-util-normalize-identifier: 2.0.0 - micromark-util-resolve-all: 2.0.0 - micromark-util-subtokenize: 2.0.0 micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 dev: false - /micromark-extension-gfm-autolink-literal@1.0.5: - resolution: {integrity: sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg==} + /micromark-util-resolve-all@1.1.0: + resolution: {integrity: sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==} dependencies: - micromark-util-character: 1.2.0 - micromark-util-sanitize-uri: 1.2.0 - micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 dev: false - /micromark-extension-gfm-autolink-literal@2.0.0: - resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==} + /micromark-util-resolve-all@2.0.0: + resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} dependencies: - micromark-util-character: 2.1.0 - micromark-util-sanitize-uri: 2.0.0 - micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 dev: false - /micromark-extension-gfm-footnote@1.1.2: - resolution: {integrity: sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q==} + /micromark-util-sanitize-uri@1.2.0: + resolution: {integrity: sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==} dependencies: - micromark-core-commonmark: 1.1.0 - micromark-factory-space: 1.1.0 micromark-util-character: 1.2.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-sanitize-uri: 1.2.0 + micromark-util-encode: 1.1.0 micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 dev: false - /micromark-extension-gfm-footnote@2.0.0: - resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==} + /micromark-util-sanitize-uri@2.0.0: + resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} dependencies: - devlop: 1.1.0 - micromark-core-commonmark: 2.0.0 - micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 - micromark-util-normalize-identifier: 2.0.0 - micromark-util-sanitize-uri: 2.0.0 + micromark-util-encode: 2.0.0 micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 dev: false - /micromark-extension-gfm-strikethrough@1.0.7: - resolution: {integrity: sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw==} + /micromark-util-subtokenize@1.1.0: + resolution: {integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==} dependencies: micromark-util-chunked: 1.1.0 - micromark-util-classify-character: 1.1.0 - micromark-util-resolve-all: 1.1.0 micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 uvu: 0.5.6 dev: false - /micromark-extension-gfm-strikethrough@2.0.0: - resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==} + /micromark-util-subtokenize@2.0.1: + resolution: {integrity: sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==} dependencies: devlop: 1.1.0 micromark-util-chunked: 2.0.0 - micromark-util-classify-character: 2.0.0 - micromark-util-resolve-all: 2.0.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 dev: false - /micromark-extension-gfm-table@1.0.7: - resolution: {integrity: sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw==} + /micromark-util-symbol@1.1.0: + resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} + dev: false + + /micromark-util-symbol@2.0.0: + resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + dev: false + + /micromark-util-types@1.1.0: + resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} + dev: false + + /micromark-util-types@2.0.0: + resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + dev: false + + /micromark@3.2.0: + resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==} dependencies: + '@types/debug': 4.1.8 + debug: 4.3.4 + decode-named-character-reference: 1.0.2 + micromark-core-commonmark: 1.1.0 micromark-factory-space: 1.1.0 micromark-util-character: 1.2.0 + micromark-util-chunked: 1.1.0 + micromark-util-combine-extensions: 1.1.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-encode: 1.1.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-resolve-all: 1.1.0 + micromark-util-sanitize-uri: 1.2.0 + micromark-util-subtokenize: 1.1.0 micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 uvu: 0.5.6 + transitivePeerDependencies: + - supports-color dev: false - /micromark-extension-gfm-table@2.0.0: - resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==} + /micromark@4.0.0: + resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} dependencies: + '@types/debug': 4.1.8 + debug: 4.3.4 + decode-named-character-reference: 1.0.2 devlop: 1.1.0 + micromark-core-commonmark: 2.0.0 micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-encode: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-subtokenize: 2.0.1 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + transitivePeerDependencies: + - supports-color + dev: false + + /micromatch@4.0.5: + 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'} + + /mime-types@2.1.35: + 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'} + hasBin: true + + /mime@3.0.0: + resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} + engines: {node: '>=10.0.0'} + hasBin: true + + /mime@4.0.1: + resolution: {integrity: sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==} + engines: {node: '>=16'} + hasBin: true + + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + /mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + + /mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + dev: false + + /mimic-response@4.0.0: + resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: false + + /min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + + /miniflare@3.20240405.2: + resolution: {integrity: sha512-n/V5m9GVMN37U5gWdrNXKx2d1icLXtcIKcxWtLslH4RTaebZJdSRmp12UHyuQsKlaSpTkNqyzLVtCEgt2bhRSA==} + engines: {node: '>=16.13'} + hasBin: true + dependencies: + '@cspotcode/source-map-support': 0.8.1 + acorn: 8.10.0 + acorn-walk: 8.2.0 + capnp-ts: 0.7.0 + exit-hook: 2.2.1 + glob-to-regexp: 0.4.1 + stoppable: 1.1.0 + undici: 5.28.4 + workerd: 1.20240405.0 + ws: 8.13.0 + youch: 3.3.3 + zod: 3.23.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + + /minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + + /minimatch@7.4.6: + resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + + /minimatch@9.0.4: + resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + + /minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + kind-of: 6.0.3 dev: false - /micromark-extension-gfm-tagfilter@1.0.2: - resolution: {integrity: sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==} + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + /minipass-collect@2.0.1: + resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==} + engines: {node: '>=16 || 14 >=14.17'} dependencies: - micromark-util-types: 1.1.0 - dev: false + minipass: 7.0.3 - /micromark-extension-gfm-tagfilter@2.0.0: - resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + /minipass-fetch@3.0.4: + resolution: {integrity: sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - micromark-util-types: 2.0.0 - dev: false + minipass: 7.0.3 + minipass-sized: 1.0.3 + minizlib: 2.1.2 + optionalDependencies: + encoding: 0.1.13 - /micromark-extension-gfm-task-list-item@1.0.5: - resolution: {integrity: sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ==} + /minipass-flush@1.0.5: + resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} + engines: {node: '>= 8'} dependencies: - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - dev: false + minipass: 3.3.6 - /micromark-extension-gfm-task-list-item@2.0.1: - resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==} + /minipass-json-stream@1.0.1: + resolution: {integrity: sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==} dependencies: - devlop: 1.1.0 - micromark-factory-space: 2.0.0 - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - dev: false + jsonparse: 1.3.1 + minipass: 3.3.6 - /micromark-extension-gfm@2.0.3: - resolution: {integrity: sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ==} + /minipass-pipeline@1.2.4: + resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} + engines: {node: '>=8'} dependencies: - micromark-extension-gfm-autolink-literal: 1.0.5 - micromark-extension-gfm-footnote: 1.1.2 - micromark-extension-gfm-strikethrough: 1.0.7 - micromark-extension-gfm-table: 1.0.7 - micromark-extension-gfm-tagfilter: 1.0.2 - micromark-extension-gfm-task-list-item: 1.0.5 - micromark-util-combine-extensions: 1.1.0 - micromark-util-types: 1.1.0 - dev: false + minipass: 3.3.6 - /micromark-extension-gfm@3.0.0: - resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + /minipass-sized@1.0.3: + resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} + engines: {node: '>=8'} dependencies: - micromark-extension-gfm-autolink-literal: 2.0.0 - micromark-extension-gfm-footnote: 2.0.0 - micromark-extension-gfm-strikethrough: 2.0.0 - micromark-extension-gfm-table: 2.0.0 - micromark-extension-gfm-tagfilter: 2.0.0 - micromark-extension-gfm-task-list-item: 2.0.1 - micromark-util-combine-extensions: 2.0.0 - micromark-util-types: 2.0.0 - dev: false + minipass: 3.3.6 - /micromark-extension-math@2.1.2: - resolution: {integrity: sha512-es0CcOV89VNS9wFmyn+wyFTKweXGW4CEvdaAca6SWRWPyYCbBisnjaHLjWO4Nszuiud84jCpkHsqAJoa768Pvg==} + /minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} dependencies: - '@types/katex': 0.16.7 - katex: 0.16.10 - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - dev: false + yallist: 4.0.0 - /micromark-extension-mdx-expression@1.0.8: - resolution: {integrity: sha512-zZpeQtc5wfWKdzDsHRBY003H2Smg+PUi2REhqgIhdzAa5xonhP03FcXxqFSerFiNUr5AWmHpaNPQTBVOS4lrXw==} + /minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + + /minipass@7.0.3: + resolution: {integrity: sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg==} + engines: {node: '>=16 || 14 >=14.17'} + + /minipass@7.0.4: + resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} + engines: {node: '>=16 || 14 >=14.17'} + + /minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} dependencies: - '@types/estree': 1.0.5 - micromark-factory-mdx-expression: 1.0.9 - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-events-to-acorn: 1.2.3 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 + minipass: 3.3.6 + yallist: 4.0.0 + + /mitt@2.1.0: + resolution: {integrity: sha512-ILj2TpLiysu2wkBbWjAmww7TkZb65aiQO+DkVdUTBpBXq+MHYiETENkKFMtsJZX1Lf4pe4QOrTSjIfUwN5lRdg==} + + /mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + + /mixme@0.5.9: + resolution: {integrity: sha512-VC5fg6ySUscaWUpI4gxCBTQMH2RdUpNrk+MsbpCYtIvf9SBJdiUey4qE7BXviJsJR4nDQxCZ+3yaYNW3guz/Pw==} + engines: {node: '>= 8.0.0'} dev: false - /micromark-extension-mdx-jsx@1.0.5: - resolution: {integrity: sha512-gPH+9ZdmDflbu19Xkb8+gheqEDqkSpdCEubQyxuz/Hn8DOXiXvrXeikOoBA71+e8Pfi0/UYmU3wW3H58kr7akA==} - dependencies: - '@types/acorn': 4.0.6 - '@types/estree': 1.0.5 - estree-util-is-identifier-name: 2.1.0 - micromark-factory-mdx-expression: 1.0.9 - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - vfile-message: 3.1.4 + /mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + requiresBuild: true dev: false + optional: true - /micromark-extension-mdx-md@1.0.1: - resolution: {integrity: sha512-7MSuj2S7xjOQXAjjkbjBsHkMtb+mDGVW6uI2dBL9snOBCbZmoNgDAeZ0nSn9j3T42UE/g2xVNMn18PJxZvkBEA==} + /mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true dependencies: - micromark-util-types: 1.1.0 - dev: false + minimist: 1.2.8 + dev: true - /micromark-extension-mdxjs-esm@1.0.5: - resolution: {integrity: sha512-xNRBw4aoURcyz/S69B19WnZAkWJMxHMT5hE36GtDAyhoyn/8TuAeqjFJQlwk+MKQsUD7b3l7kFX+vlfVWgcX1w==} + /mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + + /mkdist@1.4.0(typescript@5.4.5): + resolution: {integrity: sha512-LzzdzWDx6cWWPd8saIoO+kT5jnbijfeDaE6jZfmCYEi3YL2aJSyF23/tCFee/mDuh/ek1UQeSYdLeSa6oesdiw==} + hasBin: true + peerDependencies: + sass: ^1.69.5 + typescript: '>=5.3.2' + peerDependenciesMeta: + sass: + optional: true + typescript: + optional: true dependencies: - '@types/estree': 1.0.5 - micromark-core-commonmark: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-events-to-acorn: 1.2.3 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - unist-util-position-from-estree: 1.1.2 - uvu: 0.5.6 - vfile-message: 3.1.4 - dev: false + autoprefixer: 10.4.14(postcss@8.4.38) + citty: 0.1.6 + cssnano: 6.0.1(postcss@8.4.38) + defu: 6.1.4 + esbuild: 0.19.12 + fs-extra: 11.1.1 + globby: 13.2.2 + jiti: 1.21.0 + mlly: 1.6.1 + mri: 1.2.0 + pathe: 1.1.1 + postcss: 8.4.38 + postcss-nested: 6.0.1(postcss@8.4.38) + typescript: 5.4.5 + dev: true - /micromark-extension-mdxjs@1.0.1: - resolution: {integrity: sha512-7YA7hF6i5eKOfFUzZ+0z6avRG52GpWR8DL+kN47y3f2KhxbBZMhmxe7auOeaTBrW2DenbbZTf1ea9tA2hDpC2Q==} + /mlly@1.6.1: + resolution: {integrity: sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==} dependencies: acorn: 8.11.3 - acorn-jsx: 5.3.2(acorn@8.11.3) - micromark-extension-mdx-expression: 1.0.8 - micromark-extension-mdx-jsx: 1.0.5 - micromark-extension-mdx-md: 1.0.1 - micromark-extension-mdxjs-esm: 1.0.5 - micromark-util-combine-extensions: 1.1.0 - micromark-util-types: 1.1.0 - dev: false + pathe: 1.1.2 + pkg-types: 1.0.3 + ufo: 1.5.3 - /micromark-factory-destination@1.1.0: - resolution: {integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==} + /mnemonist@0.39.6: + resolution: {integrity: sha512-A/0v5Z59y63US00cRSLiloEIw3t5G+MiKz4BhX21FI+YBJXBOGW0ohFxTxO08dsOYlzxo87T7vGfZKYp2bcAWA==} dependencies: - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 + obliterator: 2.0.4 dev: false - /micromark-factory-destination@2.0.0: - resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} - dependencies: - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - dev: false + /mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} - /micromark-factory-label@1.1.0: - resolution: {integrity: sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==} - dependencies: - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - dev: false + /mrmime@2.0.0: + resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} + engines: {node: '>=10'} - /micromark-factory-label@2.0.0: - resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} + /ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + /msw@2.2.13(patch_hash=mpkjv35lscrawpqthnrnago5ai)(typescript@5.4.5): + resolution: {integrity: sha512-ljFf1xZsU0b4zv1l7xzEmC6OZA6yD06hcx0H+dc8V0VypaP3HGYJa1rMLjQbBWl32ptGhcfwcPCWDB1wjmsftw==} + engines: {node: '>=18'} + hasBin: true + requiresBuild: true + peerDependencies: + typescript: '>= 4.7.x' + peerDependenciesMeta: + typescript: + optional: true dependencies: - devlop: 1.1.0 - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 + '@bundled-es-modules/cookie': 2.0.0 + '@bundled-es-modules/statuses': 1.0.1 + '@inquirer/confirm': 3.1.5 + '@mswjs/cookies': 1.1.0 + '@mswjs/interceptors': 0.26.15(patch_hash=b4i3mfjisdgapabfrhqgz5r23e) + '@open-draft/until': 2.1.0 + '@types/cookie': 0.6.0 + '@types/statuses': 2.0.5 + chalk: 4.1.2 + graphql: 16.8.1 + headers-polyfill: 4.0.3 + is-node-process: 1.2.0 + outvariant: 1.4.2 + path-to-regexp: 6.2.1 + strict-event-emitter: 0.5.1 + type-fest: 4.16.0 + typescript: 5.4.5 + yargs: 17.7.2 dev: false + patched: true + + /muggle-string@0.4.1: + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + dev: true + + /mustache@4.2.0: + resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} + hasBin: true + dev: true - /micromark-factory-mdx-expression@1.0.9: - resolution: {integrity: sha512-jGIWzSmNfdnkJq05c7b0+Wv0Kfz3NJ3N4cBjnbO4zjXIlxJr+f8lk+5ZmwFvqdAbUy2q6B5rCY//g0QAAaXDWA==} - dependencies: - '@types/estree': 1.0.5 - micromark-util-character: 1.2.0 - micromark-util-events-to-acorn: 1.2.3 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - unist-util-position-from-estree: 1.1.2 - uvu: 0.5.6 - vfile-message: 3.1.4 + /mute-stream@1.0.0: + resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: false - /micromark-factory-space@1.1.0: - resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} + /mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} dependencies: - micromark-util-character: 1.2.0 - micromark-util-types: 1.1.0 + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + + /nanoid@3.3.6: + resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + /nanoid@5.0.7: + resolution: {integrity: sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ==} + engines: {node: ^18 || >=20} + hasBin: true + + /napi-build-utils@1.0.2: + resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} + requiresBuild: true dev: false + optional: true - /micromark-factory-space@2.0.0: - resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + /negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + + /next-mdx-remote@4.4.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-1BvyXaIou6xy3XoNF4yaMZUCb6vD2GTAa5ciOa6WoO+gAUTYsb1K4rI/HSC2ogAWLrb/7VSV52skz07vOzmqIQ==} + engines: {node: '>=14', npm: '>=7'} + peerDependencies: + react: '>=16.x <=18.x' + react-dom: '>=16.x <=18.x' dependencies: - micromark-util-character: 2.1.0 - micromark-util-types: 2.0.0 + '@mdx-js/mdx': 2.3.0 + '@mdx-js/react': 2.3.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + vfile: 5.3.7 + vfile-matter: 3.0.1 + transitivePeerDependencies: + - supports-color dev: false - /micromark-factory-title@1.1.0: - resolution: {integrity: sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==} + /next-seo@6.1.0(next@14.2.1)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-iMBpFoJsR5zWhguHJvsoBDxDSmdYTHtnVPB1ij+CD0NReQCP78ZxxbdL9qkKIf4oEuZEqZkrjAQLB0bkII7RYA==} + peerDependencies: + next: ^8.1.1-canary.54 || >=9.0.0 + react: '>=16.0.0' + react-dom: '>=16.0.0' dependencies: - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 + next: 14.2.1(@babel/core@7.24.4)(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: false - /micromark-factory-title@2.0.0: - resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} + /next-themes@0.2.1(next@14.2.1)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-B+AKNfYNIzh0vqQQKqQItTS8evEouKD7H5Hj3kmuPERwddR2TxvDSFZuTj6T7Jfn1oyeUyJMydPl1Bkxkh0W7A==} + peerDependencies: + next: '*' + react: '*' + react-dom: '*' dependencies: - micromark-factory-space: 2.0.0 - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 + next: 14.2.1(@babel/core@7.24.4)(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: false - /micromark-factory-whitespace@1.1.0: - resolution: {integrity: sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==} + /next-themes@0.3.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-/QHIrsYpd6Kfk7xakK4svpDI5mmXP0gfvCoJdGpZQ2TOrQZmsW0QxjaiLn8wbIKjtm4BTSqLoix4lxYYOnLJ/w==} + peerDependencies: + react: ^16.8 || ^17 || ^18 + react-dom: ^16.8 || ^17 || ^18 dependencies: - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: false - /micromark-factory-whitespace@2.0.0: - resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} + /next-tick@1.1.0: + resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} + dev: true + + /next@14.2.1(@babel/core@7.24.4)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-SF3TJnKdH43PMkCcErLPv+x/DY1YCklslk3ZmwaVoyUfDgHKexuKlf9sEfBQ69w+ue8jQ3msLb+hSj1T19hGag==} + engines: {node: '>=18.17.0'} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + '@playwright/test': ^1.41.2 + react: ^18.2.0 + react-dom: ^18.2.0 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + '@playwright/test': + optional: true + sass: + optional: true dependencies: - micromark-factory-space: 2.0.0 - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - dev: false + '@next/env': 14.2.1 + '@swc/helpers': 0.5.5 + busboy: 1.6.0 + caniuse-lite: 1.0.30001612 + graceful-fs: 4.2.11 + postcss: 8.4.31 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + styled-jsx: 5.1.1(@babel/core@7.24.4)(react@18.2.0) + optionalDependencies: + '@next/swc-darwin-arm64': 14.2.1 + '@next/swc-darwin-x64': 14.2.1 + '@next/swc-linux-arm64-gnu': 14.2.1 + '@next/swc-linux-arm64-musl': 14.2.1 + '@next/swc-linux-x64-gnu': 14.2.1 + '@next/swc-linux-x64-musl': 14.2.1 + '@next/swc-win32-arm64-msvc': 14.2.1 + '@next/swc-win32-ia32-msvc': 14.2.1 + '@next/swc-win32-x64-msvc': 14.2.1 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros - /micromark-util-character@1.2.0: - resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} + /nextra-theme-docs@2.13.4(next@14.2.1)(nextra@2.13.4)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-2XOoMfwBCTYBt8ds4ZHftt9Wyf2XsykiNo02eir/XEYB+sGeUoE77kzqfidjEOKCSzOHYbK9BDMcg2+B/2vYRw==} + peerDependencies: + next: '>=9.5.3' + nextra: 2.13.4 + react: '>=16.13.1' + react-dom: '>=16.13.1' dependencies: - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 + '@headlessui/react': 1.7.19(react-dom@18.2.0)(react@18.2.0) + '@popperjs/core': 2.11.8 + clsx: 2.1.0 + escape-string-regexp: 5.0.0 + flexsearch: 0.7.31 + focus-visible: 5.2.0 + git-url-parse: 13.1.0 + intersection-observer: 0.12.2 + match-sorter: 6.3.1 + next: 14.2.1(@babel/core@7.24.4)(react-dom@18.2.0)(react@18.2.0) + next-seo: 6.1.0(next@14.2.1)(react-dom@18.2.0)(react@18.2.0) + next-themes: 0.2.1(next@14.2.1)(react-dom@18.2.0)(react@18.2.0) + nextra: 2.13.4(next@14.2.1)(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + scroll-into-view-if-needed: 3.1.0 + zod: 3.23.0 dev: false - /micromark-util-character@2.1.0: - resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} + /nextra@2.13.4(next@14.2.1)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-7of2rSBxuUa3+lbMmZwG9cqgftcoNOVQLTT6Rxf3EhBR9t1EI7b43dted8YoqSNaigdE3j1CoyNkX8N/ZzlEpw==} + engines: {node: '>=16'} + peerDependencies: + next: '>=9.5.3' + react: '>=16.13.1' + react-dom: '>=16.13.1' dependencies: - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 + '@headlessui/react': 1.7.19(react-dom@18.2.0)(react@18.2.0) + '@mdx-js/mdx': 2.3.0 + '@mdx-js/react': 2.3.0(react@18.2.0) + '@napi-rs/simple-git': 0.1.16 + '@theguild/remark-mermaid': 0.0.5(react@18.2.0) + '@theguild/remark-npm2yarn': 0.2.1 + clsx: 2.1.0 + github-slugger: 2.0.0 + graceful-fs: 4.2.11 + gray-matter: 4.0.3 + katex: 0.16.10 + lodash.get: 4.4.2 + next: 14.2.1(@babel/core@7.24.4)(react-dom@18.2.0)(react@18.2.0) + next-mdx-remote: 4.4.1(react-dom@18.2.0)(react@18.2.0) + p-limit: 3.1.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + rehype-katex: 7.0.0 + rehype-pretty-code: 0.9.11(shiki@0.14.3) + rehype-raw: 7.0.0 + remark-gfm: 3.0.1 + remark-math: 5.1.1 + remark-reading-time: 2.0.1 + shiki: 0.14.3 + slash: 3.0.0 + title: 3.5.3 + unist-util-remove: 4.0.0 + unist-util-visit: 5.0.0 + zod: 3.23.0 + transitivePeerDependencies: + - supports-color dev: false - /micromark-util-chunked@1.1.0: - resolution: {integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==} + /nitropack@2.9.6: + resolution: {integrity: sha512-HP2PE0dREcDIBVkL8Zm6eVyrDd10/GI9hTL00PHvjUM8I9Y/2cv73wRDmxNyInfrx/CJKHATb2U/pQrqpzJyXA==} + engines: {node: ^16.11.0 || >=17.0.0} + hasBin: true + peerDependencies: + xml2js: ^0.6.2 + peerDependenciesMeta: + xml2js: + optional: true dependencies: - micromark-util-symbol: 1.1.0 - dev: false + '@cloudflare/kv-asset-handler': 0.3.1 + '@netlify/functions': 2.6.0 + '@rollup/plugin-alias': 5.1.0(rollup@4.16.2) + '@rollup/plugin-commonjs': 25.0.7(rollup@4.16.2) + '@rollup/plugin-inject': 5.0.5(rollup@4.16.2) + '@rollup/plugin-json': 6.1.0(rollup@4.16.2) + '@rollup/plugin-node-resolve': 15.2.3(rollup@4.16.2) + '@rollup/plugin-replace': 5.0.5(rollup@4.16.2) + '@rollup/plugin-terser': 0.4.4(rollup@4.16.2) + '@rollup/pluginutils': 5.1.0(rollup@4.16.2) + '@types/http-proxy': 1.17.14 + '@vercel/nft': 0.26.4 + archiver: 7.0.1 + c12: 1.10.0 + chalk: 5.3.0 + chokidar: 3.6.0 + citty: 0.1.6 + consola: 3.2.3 + cookie-es: 1.1.0 + croner: 8.0.2 + crossws: 0.2.4 + db0: 0.1.4 + defu: 6.1.4 + destr: 2.0.3 + dot-prop: 8.0.2 + esbuild: 0.20.2 + escape-string-regexp: 5.0.0 + etag: 1.8.1 + fs-extra: 11.2.0 + globby: 14.0.1 + gzip-size: 7.0.0 + h3: 1.11.1 + hookable: 5.5.3 + httpxy: 0.1.5 + ioredis: 5.3.2 + is-primitive: 3.0.1 + jiti: 1.21.0 + klona: 2.0.6 + knitwork: 1.1.0 + listhen: 1.7.2 + magic-string: 0.30.10 + mime: 4.0.1 + mlly: 1.6.1 + mri: 1.2.0 + node-fetch-native: 1.6.4 + ofetch: 1.3.4 + ohash: 1.1.3 + openapi-typescript: 6.7.5 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.0.3 + pretty-bytes: 6.1.1 + radix3: 1.1.2 + rollup: 4.16.2 + rollup-plugin-visualizer: 5.12.0(rollup@4.16.2) + scule: 1.3.0 + semver: 7.6.0 + serve-placeholder: 2.0.1 + serve-static: 1.15.0 + std-env: 3.7.0 + ufo: 1.5.3 + uncrypto: 0.1.3 + unctx: 2.3.1 + unenv: 1.9.0 + unimport: 3.7.1(rollup@4.16.2) + unstorage: 1.10.2(ioredis@5.3.2) + unwasm: 0.3.9 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@libsql/client' + - '@netlify/blobs' + - '@planetscale/database' + - '@upstash/redis' + - '@vercel/kv' + - better-sqlite3 + - drizzle-orm + - encoding + - idb-keyval + - supports-color + - uWebSockets.js - /micromark-util-chunked@2.0.0: - resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} + /nlcst-to-string@3.1.1: + resolution: {integrity: sha512-63mVyqaqt0cmn2VcI2aH6kxe1rLAmSROqHMA0i4qqg1tidkfExgpb0FGMikMCn86mw5dFtBtEANfmSSK7TjNHw==} dependencies: - micromark-util-symbol: 2.0.0 + '@types/nlcst': 1.0.4 dev: false - /micromark-util-classify-character@1.1.0: - resolution: {integrity: sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==} + /no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} dependencies: - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - dev: false + lower-case: 2.0.2 + tslib: 2.6.2 - /micromark-util-classify-character@2.0.0: - resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} + /node-abi@3.60.0: + resolution: {integrity: sha512-zcGgwoXbzw9NczqbGzAWL/ToDYAxv1V8gL1D67ClbdkIfeeDBbY0GelZtC25ayLvVjr2q2cloHeQV1R0QAWqRQ==} + engines: {node: '>=10'} + requiresBuild: true dependencies: - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 + semver: 7.6.0 dev: false + optional: true - /micromark-util-combine-extensions@1.1.0: - resolution: {integrity: sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==} - dependencies: - micromark-util-chunked: 1.1.0 - micromark-util-types: 1.1.0 + /node-addon-api@6.1.0: + resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} + requiresBuild: true dev: false + optional: true - /micromark-util-combine-extensions@2.0.0: - resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} - dependencies: - micromark-util-chunked: 2.0.0 - micromark-util-types: 2.0.0 - dev: false + /node-addon-api@7.0.0: + resolution: {integrity: sha512-vgbBJTS4m5/KkE16t5Ly0WW9hz46swAstv0hYYwMtbG7AznRhNyfLRe8HZAiWIpcHzoO7HxhLuBQj9rJ/Ho0ZA==} - /micromark-util-decode-numeric-character-reference@1.1.0: - resolution: {integrity: sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==} - dependencies: - micromark-util-symbol: 1.1.0 + /node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} dev: false - /micromark-util-decode-numeric-character-reference@2.0.1: - resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} - dependencies: - micromark-util-symbol: 2.0.0 + /node-fetch-native@1.0.1: + resolution: {integrity: sha512-VzW+TAk2wE4X9maiKMlT+GsPU4OMmR1U9CrHSmd3DFLn2IcZ9VJ6M6BBugGfYUnPCLSYxXdZy17M0BEJyhUTwg==} dev: false - /micromark-util-decode-string@1.1.0: - resolution: {integrity: sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==} - dependencies: - decode-named-character-reference: 1.0.2 - micromark-util-character: 1.2.0 - micromark-util-decode-numeric-character-reference: 1.1.0 - micromark-util-symbol: 1.1.0 - dev: false + /node-fetch-native@1.6.4: + resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} - /micromark-util-decode-string@2.0.0: - resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} + /node-fetch@2.6.12: + resolution: {integrity: sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true dependencies: - decode-named-character-reference: 1.0.2 - micromark-util-character: 2.1.0 - micromark-util-decode-numeric-character-reference: 2.0.1 - micromark-util-symbol: 2.0.0 - dev: false - - /micromark-util-encode@1.1.0: - resolution: {integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==} - dev: false - - /micromark-util-encode@2.0.0: - resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} - dev: false + whatwg-url: 5.0.0 - /micromark-util-events-to-acorn@1.2.3: - resolution: {integrity: sha512-ij4X7Wuc4fED6UoLWkmo0xJQhsktfNh1J0m8g4PbIMPlx+ek/4YdW5mvbye8z/aZvAPUoxgXHrwVlXAPKMRp1w==} + /node-fetch@3.3.2: + resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - '@types/acorn': 4.0.6 - '@types/estree': 1.0.5 - '@types/unist': 2.0.10 - estree-util-visit: 1.2.1 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - vfile-message: 3.1.4 - dev: false - - /micromark-util-html-tag-name@1.2.0: - resolution: {integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==} + data-uri-to-buffer: 4.0.1 + fetch-blob: 3.2.0 + formdata-polyfill: 4.0.10 dev: false - /micromark-util-html-tag-name@2.0.0: - resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} - dev: false + /node-forge@1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} - /micromark-util-normalize-identifier@1.1.0: - resolution: {integrity: sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==} - dependencies: - micromark-util-symbol: 1.1.0 - dev: false + /node-gyp-build@4.6.0: + resolution: {integrity: sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==} + hasBin: true - /micromark-util-normalize-identifier@2.0.0: - resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} + /node-gyp@10.1.0: + resolution: {integrity: sha512-B4J5M1cABxPc5PwfjhbV5hoy2DP9p8lFXASnEN6hugXOa61416tnTZ29x9sSwAd0o99XNIcpvDDy1swAExsVKA==} + engines: {node: ^16.14.0 || >=18.0.0} + hasBin: true dependencies: - micromark-util-symbol: 2.0.0 - dev: false + env-paths: 2.2.1 + exponential-backoff: 3.1.1 + glob: 10.3.12 + graceful-fs: 4.2.11 + make-fetch-happen: 13.0.0 + nopt: 7.2.0 + proc-log: 3.0.0 + semver: 7.6.0 + tar: 6.1.15 + which: 4.0.0 + transitivePeerDependencies: + - supports-color - /micromark-util-resolve-all@1.1.0: - resolution: {integrity: sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==} - dependencies: - micromark-util-types: 1.1.0 - dev: false + /node-releases@2.0.13: + resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} + dev: true - /micromark-util-resolve-all@2.0.0: - resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} - dependencies: - micromark-util-types: 2.0.0 - dev: false + /node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} - /micromark-util-sanitize-uri@1.2.0: - resolution: {integrity: sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==} - dependencies: - micromark-util-character: 1.2.0 - micromark-util-encode: 1.1.0 - micromark-util-symbol: 1.1.0 + /non-layered-tidy-tree-layout@2.0.2: + resolution: {integrity: sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw==} dev: false - /micromark-util-sanitize-uri@2.0.0: - resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} + /nopt@5.0.0: + resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} + engines: {node: '>=6'} + hasBin: true dependencies: - micromark-util-character: 2.1.0 - micromark-util-encode: 2.0.0 - micromark-util-symbol: 2.0.0 - dev: false + abbrev: 1.1.1 - /micromark-util-subtokenize@1.1.0: - resolution: {integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==} + /nopt@7.2.0: + resolution: {integrity: sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true dependencies: - micromark-util-chunked: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - dev: false + abbrev: 2.0.0 - /micromark-util-subtokenize@2.0.0: - resolution: {integrity: sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==} + /normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: - devlop: 1.1.0 - micromark-util-chunked: 2.0.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - dev: false - - /micromark-util-symbol@1.1.0: - resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} - dev: false - - /micromark-util-symbol@2.0.0: - resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} - dev: false - - /micromark-util-types@1.1.0: - resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} - dev: false - - /micromark-util-types@2.0.0: - resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + hosted-git-info: 2.8.9 + resolve: 1.22.4 + semver: 5.7.2 + validate-npm-package-license: 3.0.4 dev: false - /micromark@3.2.0: - resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==} + /normalize-package-data@6.0.0: + resolution: {integrity: sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==} + engines: {node: ^16.14.0 || >=18.0.0} dependencies: - '@types/debug': 4.1.12 - debug: 4.3.4 - decode-named-character-reference: 1.0.2 - micromark-core-commonmark: 1.1.0 - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-chunked: 1.1.0 - micromark-util-combine-extensions: 1.1.0 - micromark-util-decode-numeric-character-reference: 1.1.0 - micromark-util-encode: 1.1.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-resolve-all: 1.1.0 - micromark-util-sanitize-uri: 1.2.0 - micromark-util-subtokenize: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - transitivePeerDependencies: - - supports-color + hosted-git-info: 7.0.1 + is-core-module: 2.13.0 + semver: 7.6.0 + validate-npm-package-license: 3.0.4 + + /normalize-path@3.0.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'} + + /normalize-url@8.0.1: + resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==} + engines: {node: '>=14.16'} dev: false - /micromark@4.0.0: - resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} + /novel@0.3.1(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-om5ETtpo23BvKbN6wynSkSEwsJCWIEJjuBPYPk9jy9ktVqNUJjvVGGtCeah7Gr1L7Iy3Jtif1cMFokqsyzZQPw==} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 dependencies: - '@types/debug': 4.1.12 - debug: 4.3.4 - decode-named-character-reference: 1.0.2 - devlop: 1.1.0 - micromark-core-commonmark: 2.0.0 - micromark-factory-space: 2.0.0 - micromark-util-character: 2.1.0 - micromark-util-chunked: 2.0.0 - micromark-util-combine-extensions: 2.0.0 - micromark-util-decode-numeric-character-reference: 2.0.1 - micromark-util-encode: 2.0.0 - micromark-util-normalize-identifier: 2.0.0 - micromark-util-resolve-all: 2.0.0 - micromark-util-sanitize-uri: 2.0.0 - micromark-util-subtokenize: 2.0.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.78)(react@18.2.0) + '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) + '@tiptap/extension-color': 2.3.0(@tiptap/core@2.3.0)(@tiptap/extension-text-style@2.3.0) + '@tiptap/extension-highlight': 2.3.0(@tiptap/core@2.3.0) + '@tiptap/extension-horizontal-rule': 2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0) + '@tiptap/extension-image': 2.3.0(@tiptap/core@2.3.0) + '@tiptap/extension-link': 2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0) + '@tiptap/extension-placeholder': 2.0.3(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0) + '@tiptap/extension-task-item': 2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0) + '@tiptap/extension-task-list': 2.3.0(@tiptap/core@2.3.0) + '@tiptap/extension-text-style': 2.3.0(@tiptap/core@2.3.0) + '@tiptap/extension-underline': 2.3.0(@tiptap/core@2.3.0) + '@tiptap/pm': 2.3.0 + '@tiptap/react': 2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0)(react-dom@18.2.0)(react@18.2.0) + '@tiptap/starter-kit': 2.3.0(@tiptap/pm@2.3.0) + '@tiptap/suggestion': 2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0) + '@types/node': 18.15.3 + cmdk: 0.2.1(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + jotai: 2.8.0(@types/react@18.2.78)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-markdown: 8.0.7(@types/react@18.2.78)(react@18.2.0) + react-moveable: 0.56.0 + tippy.js: 6.3.7 + tiptap-extension-auto-joiner: 0.1.1 + tiptap-extension-global-drag-handle: 0.1.6 + tiptap-markdown: 0.8.10(@tiptap/core@2.3.0) + tunnel-rat: 0.1.2(@types/react@18.2.78)(react@18.2.0) transitivePeerDependencies: + - '@types/react' + - immer - supports-color dev: false - /micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} + /npm-bundled@2.0.1: + resolution: {integrity: sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: - braces: 3.0.2 - picomatch: 2.3.1 + npm-normalize-package-bin: 2.0.0 + dev: true - /mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} + /npm-bundled@3.0.0: + resolution: {integrity: sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + npm-normalize-package-bin: 3.0.1 - /mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} + /npm-install-checks@6.2.0: + resolution: {integrity: sha512-744wat5wAAHsxa4590mWO0tJ8PKxR8ORZsH9wGpQc3nWTzozMAgBN/XyqYw7mg3yqLM8dLwEnwSfKMmXAjF69g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - mime-db: 1.52.0 + semver: 7.6.0 - /mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true + /npm-normalize-package-bin@2.0.0: + resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dev: true - /mime@3.0.0: - resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} - engines: {node: '>=10.0.0'} - hasBin: true + /npm-normalize-package-bin@3.0.1: + resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - /mime@4.0.1: - resolution: {integrity: sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==} - engines: {node: '>=16'} - hasBin: true - dev: false + /npm-package-arg@11.0.2: + resolution: {integrity: sha512-IGN0IAwmhDJwy13Wc8k+4PEbTPhpJnMtfR53ZbOyjkvmEcLS4nCwp6mvMWjS5sUjeiW3mpx6cHmuhKEu9XmcQw==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + hosted-git-info: 7.0.1 + proc-log: 4.2.0 + semver: 7.6.0 + validate-npm-package-name: 5.0.0 - /mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} + /npm-packlist@5.1.3: + resolution: {integrity: sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + hasBin: true + dependencies: + glob: 8.1.0 + ignore-walk: 5.0.1 + npm-bundled: 2.0.1 + npm-normalize-package-bin: 2.0.0 + dev: true - /mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} - dev: false + /npm-packlist@8.0.2: + resolution: {integrity: sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + ignore-walk: 6.0.4 - /mimic-response@3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} - dev: false + /npm-pick-manifest@9.0.0: + resolution: {integrity: sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + npm-install-checks: 6.2.0 + npm-normalize-package-bin: 3.0.1 + npm-package-arg: 11.0.2 + semver: 7.6.0 - /mimic-response@4.0.0: - resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: false + /npm-registry-fetch@16.2.1: + resolution: {integrity: sha512-8l+7jxhim55S85fjiDGJ1rZXBWGtRLi1OSb4Z3BPLObPuIaeKRlPRiYMSHU4/81ck3t71Z+UwDDl47gcpmfQQA==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + '@npmcli/redact': 1.1.0 + make-fetch-happen: 13.0.0 + minipass: 7.0.3 + minipass-fetch: 3.0.4 + minipass-json-stream: 1.0.1 + minizlib: 2.1.2 + npm-package-arg: 11.0.2 + proc-log: 4.2.0 + transitivePeerDependencies: + - supports-color - /min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + /npm-run-path@2.0.2: + resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} engines: {node: '>=4'} + dependencies: + path-key: 2.0.1 + dev: false - /miniflare@3.20240405.0: - resolution: {integrity: sha512-OlC/96bIJA9FHvcjQMe4ZLU8FMXp4d2cGuIKOK7TxCmYRZqdVDLvVuOPUatWO8z9EtjWgiP9eGmY7O0KEdblvw==} - engines: {node: '>=16.13'} - hasBin: true + /npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} dependencies: - '@cspotcode/source-map-support': 0.8.1 - acorn: 8.11.3 - acorn-walk: 8.3.2 - capnp-ts: 0.7.0 - exit-hook: 2.2.1 - glob-to-regexp: 0.4.1 - stoppable: 1.1.0 - undici: 5.28.4 - workerd: 1.20240405.0 - ws: 8.16.0 - youch: 3.3.3 - zod: 3.22.4 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: true + path-key: 3.1.1 - /minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + /npm-run-path@5.1.0: + resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - brace-expansion: 1.1.11 + path-key: 4.0.0 - /minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} + /npm-to-yarn@2.2.1: + resolution: {integrity: sha512-O/j/ROyX0KGLG7O6Ieut/seQ0oiTpHF2tXAcFbpdTLQFiaNtkyTXXocM1fwpaa60dg1qpWj0nHlbNhx6qwuENQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: false + + /npmlog@5.0.1: + resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} dependencies: - brace-expansion: 2.0.1 + are-we-there-yet: 2.0.0 + console-control-strings: 1.1.0 + gauge: 3.0.2 + set-blocking: 2.0.0 - /minimatch@7.4.6: - resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} - engines: {node: '>=10'} + /nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} dependencies: - brace-expansion: 2.0.1 - dev: true + boolbase: 1.0.0 - /minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} + /nuxi@3.11.1: + resolution: {integrity: sha512-AW71TpxRHNg8MplQVju9tEFvXPvX42e0wPYknutSStDuAjV99vWTWYed4jxr/grk2FtKAuv2KvdJxcn2W59qyg==} + engines: {node: ^16.10.0 || >=18.0.0} + hasBin: true + optionalDependencies: + fsevents: 2.3.3 + + /nuxt@3.11.2(@types/node@20.12.7)(@unocss/reset@0.59.4)(eslint@8.57.0)(floating-vue@5.2.2)(rollup@3.29.4)(typescript@5.4.5)(unocss@0.59.4)(vite@5.2.10): + resolution: {integrity: sha512-Be1d4oyFo60pdF+diBolYDcfNemoMYM3R8PDjhnGrs/w3xJoDH1YMUVWHXXY8WhSmYZI7dyBehx/6kTfGFliVA==} + engines: {node: ^14.18.0 || >=16.10.0} + hasBin: true + peerDependencies: + '@parcel/watcher': ^2.1.0 + '@types/node': ^14.18.0 || >=16.10.0 + peerDependenciesMeta: + '@parcel/watcher': + optional: true + '@types/node': + optional: true dependencies: - brace-expansion: 2.0.1 + '@nuxt/devalue': 2.0.2 + '@nuxt/devtools': 1.2.0(@unocss/reset@0.59.4)(floating-vue@5.2.2)(nuxt@3.11.2)(rollup@3.29.4)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.24) + '@nuxt/kit': 3.11.2(rollup@3.29.4) + '@nuxt/schema': 3.11.2(rollup@3.29.4) + '@nuxt/telemetry': 2.5.4(rollup@3.29.4) + '@nuxt/ui-templates': 1.3.3 + '@nuxt/vite-builder': 3.11.2(@types/node@20.12.7)(eslint@8.57.0)(rollup@3.29.4)(typescript@5.4.5)(vue@3.4.24) + '@types/node': 20.12.7 + '@unhead/dom': 1.9.7 + '@unhead/ssr': 1.9.7 + '@unhead/vue': 1.9.7(vue@3.4.24) + '@vue/shared': 3.4.24 + acorn: 8.11.3 + c12: 1.10.0 + chokidar: 3.6.0 + cookie-es: 1.1.0 + defu: 6.1.4 + destr: 2.0.3 + devalue: 4.3.2 + esbuild: 0.20.2 + escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 + fs-extra: 11.2.0 + globby: 14.0.1 + h3: 1.11.1 + hookable: 5.5.3 + jiti: 1.21.0 + klona: 2.0.6 + knitwork: 1.1.0 + magic-string: 0.30.10 + mlly: 1.6.1 + nitropack: 2.9.6 + nuxi: 3.11.1 + nypm: 0.3.8 + ofetch: 1.3.4 + ohash: 1.1.3 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.0.3 + radix3: 1.1.2 + scule: 1.3.0 + std-env: 3.7.0 + strip-literal: 2.1.0 + ufo: 1.5.3 + ultrahtml: 1.5.3 + uncrypto: 0.1.3 + unctx: 2.3.1 + unenv: 1.9.0 + unimport: 3.7.1(rollup@3.29.4) + unplugin: 1.10.1 + unplugin-vue-router: 0.7.0(rollup@3.29.4)(vue-router@4.3.2)(vue@3.4.24) + unstorage: 1.10.2(ioredis@5.3.2) + untyped: 1.4.2 + vue: 3.4.24(typescript@5.4.5) + vue-bundle-renderer: 2.0.0 + vue-devtools-stub: 0.1.0 + vue-router: 4.3.2(vue@3.4.24) + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@libsql/client' + - '@netlify/blobs' + - '@planetscale/database' + - '@unocss/reset' + - '@upstash/redis' + - '@vercel/kv' + - '@vue/composition-api' + - async-validator + - axios + - better-sqlite3 + - bluebird + - bufferutil + - change-case + - drauu + - drizzle-orm + - encoding + - eslint + - floating-vue + - fuse.js + - idb-keyval + - ioredis + - jwt-decode + - less + - lightningcss + - meow + - nprogress + - optionator + - qrcode + - rollup + - sass + - sortablejs + - stylelint + - stylus + - sugarss + - supports-color + - terser + - typescript + - uWebSockets.js + - universal-cookie + - unocss + - utf-8-validate + - vite + - vls + - vti + - vue-tsc + - xml2js dev: true - /minimatch@9.0.4: - resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} - engines: {node: '>=16 || 14 >=14.17'} - dependencies: - brace-expansion: 2.0.1 - - /minimist-options@4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} - engines: {node: '>= 6'} - dependencies: - arrify: 1.0.1 - is-plain-obj: 1.1.0 - kind-of: 6.0.3 - dev: false - - /minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - - /minipass@3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} - dependencies: - yallist: 4.0.0 - dev: false - - /minipass@5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} - dev: false - - /minipass@7.0.4: - resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} - engines: {node: '>=16 || 14 >=14.17'} - - /minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} - dependencies: - minipass: 3.3.6 - yallist: 4.0.0 - dev: false - - /mixme@0.5.10: - resolution: {integrity: sha512-5H76ANWinB1H3twpJ6JY8uvAtpmFvHNArpilJAjXRKXSDDLPIMoZArw5SH0q9z+lLs8IrMw7Q2VWpWimFKFT1Q==} - engines: {node: '>= 8.0.0'} - dev: false - - /mkdirp-classic@0.5.3: - resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} - dev: false - - /mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + /nuxt@3.11.2(@types/node@20.12.7)(@unocss/reset@0.59.4)(eslint@8.57.0)(floating-vue@5.2.2)(rollup@4.16.2)(typescript@5.4.5)(unocss@0.59.4)(vite@5.2.10): + resolution: {integrity: sha512-Be1d4oyFo60pdF+diBolYDcfNemoMYM3R8PDjhnGrs/w3xJoDH1YMUVWHXXY8WhSmYZI7dyBehx/6kTfGFliVA==} + engines: {node: ^14.18.0 || >=16.10.0} hasBin: true + peerDependencies: + '@parcel/watcher': ^2.1.0 + '@types/node': ^14.18.0 || >=16.10.0 + peerDependenciesMeta: + '@parcel/watcher': + optional: true + '@types/node': + optional: true dependencies: - minimist: 1.2.8 + '@nuxt/devalue': 2.0.2 + '@nuxt/devtools': 1.2.0(@unocss/reset@0.59.4)(floating-vue@5.2.2)(nuxt@3.11.2)(rollup@4.16.2)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.24) + '@nuxt/kit': 3.11.2(rollup@4.16.2) + '@nuxt/schema': 3.11.2(rollup@4.16.2) + '@nuxt/telemetry': 2.5.4(rollup@4.16.2) + '@nuxt/ui-templates': 1.3.3 + '@nuxt/vite-builder': 3.11.2(@types/node@20.12.7)(eslint@8.57.0)(rollup@4.16.2)(typescript@5.4.5)(vue@3.4.24) + '@types/node': 20.12.7 + '@unhead/dom': 1.9.7 + '@unhead/ssr': 1.9.7 + '@unhead/vue': 1.9.7(vue@3.4.24) + '@vue/shared': 3.4.24 + acorn: 8.11.3 + c12: 1.10.0 + chokidar: 3.6.0 + cookie-es: 1.1.0 + defu: 6.1.4 + destr: 2.0.3 + devalue: 4.3.2 + esbuild: 0.20.2 + escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 + fs-extra: 11.2.0 + globby: 14.0.1 + h3: 1.11.1 + hookable: 5.5.3 + jiti: 1.21.0 + klona: 2.0.6 + knitwork: 1.1.0 + magic-string: 0.30.10 + mlly: 1.6.1 + nitropack: 2.9.6 + nuxi: 3.11.1 + nypm: 0.3.8 + ofetch: 1.3.4 + ohash: 1.1.3 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.0.3 + radix3: 1.1.2 + scule: 1.3.0 + std-env: 3.7.0 + strip-literal: 2.1.0 + ufo: 1.5.3 + ultrahtml: 1.5.3 + uncrypto: 0.1.3 + unctx: 2.3.1 + unenv: 1.9.0 + unimport: 3.7.1(rollup@4.16.2) + unplugin: 1.10.1 + unplugin-vue-router: 0.7.0(rollup@4.16.2)(vue-router@4.3.2)(vue@3.4.24) + unstorage: 1.10.2(ioredis@5.3.2) + untyped: 1.4.2 + vue: 3.4.24(typescript@5.4.5) + vue-bundle-renderer: 2.0.0 + vue-devtools-stub: 0.1.0 + vue-router: 4.3.2(vue@3.4.24) + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@libsql/client' + - '@netlify/blobs' + - '@planetscale/database' + - '@unocss/reset' + - '@upstash/redis' + - '@vercel/kv' + - '@vue/composition-api' + - async-validator + - axios + - better-sqlite3 + - bluebird + - bufferutil + - change-case + - drauu + - drizzle-orm + - encoding + - eslint + - floating-vue + - fuse.js + - idb-keyval + - ioredis + - jwt-decode + - less + - lightningcss + - meow + - nprogress + - optionator + - qrcode + - rollup + - sass + - sortablejs + - stylelint + - stylus + - sugarss + - supports-color + - terser + - typescript + - uWebSockets.js + - universal-cookie + - unocss + - utf-8-validate + - vite + - vls + - vti + - vue-tsc + - xml2js dev: true - /mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} + /nuxt@3.11.2(@types/node@20.12.7)(@unocss/reset@0.59.4)(floating-vue@5.2.2)(typescript@5.4.5)(unocss@0.59.4)(vite@5.2.10): + resolution: {integrity: sha512-Be1d4oyFo60pdF+diBolYDcfNemoMYM3R8PDjhnGrs/w3xJoDH1YMUVWHXXY8WhSmYZI7dyBehx/6kTfGFliVA==} + engines: {node: ^14.18.0 || >=16.10.0} hasBin: true - dev: false - - /mlly@1.6.1: - resolution: {integrity: sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==} + peerDependencies: + '@parcel/watcher': ^2.1.0 + '@types/node': ^14.18.0 || >=16.10.0 + peerDependenciesMeta: + '@parcel/watcher': + optional: true + '@types/node': + optional: true dependencies: + '@nuxt/devalue': 2.0.2 + '@nuxt/devtools': 1.2.0(@unocss/reset@0.59.4)(floating-vue@5.2.2)(nuxt@3.11.2)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.24) + '@nuxt/kit': 3.11.2 + '@nuxt/schema': 3.11.2 + '@nuxt/telemetry': 2.5.4 + '@nuxt/ui-templates': 1.3.3 + '@nuxt/vite-builder': 3.11.2(@types/node@20.12.7)(typescript@5.4.5)(vue@3.4.24) + '@types/node': 20.12.7 + '@unhead/dom': 1.9.7 + '@unhead/ssr': 1.9.7 + '@unhead/vue': 1.9.7(vue@3.4.24) + '@vue/shared': 3.4.24 acorn: 8.11.3 + c12: 1.10.0 + chokidar: 3.6.0 + cookie-es: 1.1.0 + defu: 6.1.4 + destr: 2.0.3 + devalue: 4.3.2 + esbuild: 0.20.2 + escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 + fs-extra: 11.2.0 + globby: 14.0.1 + h3: 1.11.1 + hookable: 5.5.3 + jiti: 1.21.0 + klona: 2.0.6 + knitwork: 1.1.0 + magic-string: 0.30.10 + mlly: 1.6.1 + nitropack: 2.9.6 + nuxi: 3.11.1 + nypm: 0.3.8 + ofetch: 1.3.4 + ohash: 1.1.3 pathe: 1.1.2 + perfect-debounce: 1.0.0 pkg-types: 1.0.3 + radix3: 1.1.2 + scule: 1.3.0 + std-env: 3.7.0 + strip-literal: 2.1.0 ufo: 1.5.3 + ultrahtml: 1.5.3 + uncrypto: 0.1.3 + unctx: 2.3.1 + unenv: 1.9.0 + unimport: 3.7.1(rollup@3.29.4) + unplugin: 1.10.1 + unplugin-vue-router: 0.7.0(vue-router@4.3.2)(vue@3.4.24) + unstorage: 1.10.2(ioredis@5.3.2) + untyped: 1.4.2 + vue: 3.4.24(typescript@5.4.5) + vue-bundle-renderer: 2.0.0 + vue-devtools-stub: 0.1.0 + vue-router: 4.3.2(vue@3.4.24) + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@libsql/client' + - '@netlify/blobs' + - '@planetscale/database' + - '@unocss/reset' + - '@upstash/redis' + - '@vercel/kv' + - '@vue/composition-api' + - async-validator + - axios + - better-sqlite3 + - bluebird + - bufferutil + - change-case + - drauu + - drizzle-orm + - encoding + - eslint + - floating-vue + - fuse.js + - idb-keyval + - ioredis + - jwt-decode + - less + - lightningcss + - meow + - nprogress + - optionator + - qrcode + - rollup + - sass + - sortablejs + - stylelint + - stylus + - sugarss + - supports-color + - terser + - typescript + - uWebSockets.js + - universal-cookie + - unocss + - utf-8-validate + - vite + - vls + - vti + - vue-tsc + - xml2js dev: false - /mnemonist@0.39.6: - resolution: {integrity: sha512-A/0v5Z59y63US00cRSLiloEIw3t5G+MiKz4BhX21FI+YBJXBOGW0ohFxTxO08dsOYlzxo87T7vGfZKYp2bcAWA==} + /nypm@0.3.8: + resolution: {integrity: sha512-IGWlC6So2xv6V4cIDmoV0SwwWx7zLG086gyqkyumteH2fIgCAM4nDVFB2iDRszDvmdSVW9xb1N+2KjQ6C7d4og==} + engines: {node: ^14.16.0 || >=16.10.0} + hasBin: true dependencies: - obliterator: 2.0.4 - dev: false - - /mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} + citty: 0.1.6 + consola: 3.2.3 + execa: 8.0.1 + pathe: 1.1.2 + ufo: 1.5.3 - /mrmime@2.0.0: - resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} - engines: {node: '>=10'} + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} - /ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + /object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} - /ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + /object-inspect@1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} - /ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + /object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} - /msw@2.2.13(patch_hash=mpkjv35lscrawpqthnrnago5ai)(typescript@5.4.5): - resolution: {integrity: sha512-ljFf1xZsU0b4zv1l7xzEmC6OZA6yD06hcx0H+dc8V0VypaP3HGYJa1rMLjQbBWl32ptGhcfwcPCWDB1wjmsftw==} - engines: {node: '>=18'} - hasBin: true - requiresBuild: true - peerDependencies: - typescript: '>= 4.7.x' - peerDependenciesMeta: - typescript: - optional: true + /object-is@1.1.5: + resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} + engines: {node: '>= 0.4'} dependencies: - '@bundled-es-modules/cookie': 2.0.0 - '@bundled-es-modules/statuses': 1.0.1 - '@inquirer/confirm': 3.1.2 - '@mswjs/cookies': 1.1.0 - '@mswjs/interceptors': 0.26.15(patch_hash=b4i3mfjisdgapabfrhqgz5r23e) - '@open-draft/until': 2.1.0 - '@types/cookie': 0.6.0 - '@types/statuses': 2.0.5 - chalk: 4.1.2 - graphql: 16.8.1 - headers-polyfill: 4.0.3 - is-node-process: 1.2.0 - outvariant: 1.4.2 - path-to-regexp: 6.2.2 - strict-event-emitter: 0.5.1 - type-fest: 4.15.0 - typescript: 5.4.5 - yargs: 17.7.2 + call-bind: 1.0.2 + define-properties: 1.2.0 dev: false - patched: true - - /mustache@4.2.0: - resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} - hasBin: true - dev: true - /mute-stream@1.0.0: - resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: false + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} - /mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + /object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + engines: {node: '>= 0.4'} dependencies: - any-promise: 1.3.0 - object-assign: 4.1.1 - thenify-all: 1.6.0 + call-bind: 1.0.2 + define-properties: 1.2.0 + has-symbols: 1.0.3 + object-keys: 1.1.1 - /nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true + /object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 - /nanoid@5.0.7: - resolution: {integrity: sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ==} - engines: {node: ^18 || >=20} - hasBin: true - dev: false + /object.entries@1.1.8: + resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 - /napi-build-utils@1.0.2: - resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} - dev: false + /object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 - /natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + /object.groupby@1.0.3: + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 - /negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} + /object.hasown@1.1.4: + resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 - /next-mdx-remote@4.4.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-1BvyXaIou6xy3XoNF4yaMZUCb6vD2GTAa5ciOa6WoO+gAUTYsb1K4rI/HSC2ogAWLrb/7VSV52skz07vOzmqIQ==} - engines: {node: '>=14', npm: '>=7'} - peerDependencies: - react: '>=16.x <=18.x' - react-dom: '>=16.x <=18.x' + /object.values@1.2.0: + resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} + engines: {node: '>= 0.4'} dependencies: - '@mdx-js/mdx': 2.3.0 - '@mdx-js/react': 2.3.0(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - vfile: 5.3.7 - vfile-matter: 3.0.1 - transitivePeerDependencies: - - supports-color + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + + /obliterator@2.0.4: + resolution: {integrity: sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==} dev: false - /next-seo@6.5.0(next@14.2.1)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-MfzUeWTN/x/rsKp/1n0213eojO97lIl0unxqbeCY+6pAucViHDA8GSLRRcXpgjsSmBxfCFdfpu7LXbt4ANQoNQ==} - peerDependencies: - next: ^8.1.1-canary.54 || >=9.0.0 - react: '>=16.0.0' - react-dom: '>=16.0.0' + /ofetch@1.3.4: + resolution: {integrity: sha512-KLIET85ik3vhEfS+3fDlc/BAZiAp+43QEC/yCo5zkNoY2YaKvNkOaFr/6wCFgFH1kuYQM5pMNi0Tg8koiIemtw==} dependencies: - next: 14.2.1(@babel/core@7.24.4)(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false + destr: 2.0.3 + node-fetch-native: 1.6.4 + ufo: 1.5.3 - /next-themes@0.2.1(next@14.2.1)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-B+AKNfYNIzh0vqQQKqQItTS8evEouKD7H5Hj3kmuPERwddR2TxvDSFZuTj6T7Jfn1oyeUyJMydPl1Bkxkh0W7A==} - peerDependencies: - next: '*' - react: '*' - react-dom: '*' + /ohash@1.1.3: + resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==} + + /on-exit-leak-free@2.1.2: + resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} + engines: {node: '>=14.0.0'} + + /on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} dependencies: - next: 14.2.1(@babel/core@7.24.4)(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false + ee-first: 1.1.1 - /next-themes@0.3.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-/QHIrsYpd6Kfk7xakK4svpDI5mmXP0gfvCoJdGpZQ2TOrQZmsW0QxjaiLn8wbIKjtm4BTSqLoix4lxYYOnLJ/w==} - peerDependencies: - react: ^16.8 || ^17 || ^18 - react-dom: ^16.8 || ^17 || ^18 + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false + wrappy: 1.0.2 - /next-tick@1.1.0: - resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} - dev: true + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 - /next@14.2.1(@babel/core@7.24.4)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-SF3TJnKdH43PMkCcErLPv+x/DY1YCklslk3ZmwaVoyUfDgHKexuKlf9sEfBQ69w+ue8jQ3msLb+hSj1T19hGag==} - engines: {node: '>=18.17.0'} - hasBin: true - peerDependencies: - '@opentelemetry/api': ^1.1.0 - '@playwright/test': ^1.41.2 - react: ^18.2.0 - react-dom: ^18.2.0 - sass: ^1.3.0 - peerDependenciesMeta: - '@opentelemetry/api': - optional: true - '@playwright/test': - optional: true - sass: - optional: true + /onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} dependencies: - '@next/env': 14.2.1 - '@swc/helpers': 0.5.5 - busboy: 1.6.0 - caniuse-lite: 1.0.30001608 - graceful-fs: 4.2.11 - postcss: 8.4.31 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - styled-jsx: 5.1.1(@babel/core@7.24.4)(react@18.2.0) - optionalDependencies: - '@next/swc-darwin-arm64': 14.2.1 - '@next/swc-darwin-x64': 14.2.1 - '@next/swc-linux-arm64-gnu': 14.2.1 - '@next/swc-linux-arm64-musl': 14.2.1 - '@next/swc-linux-x64-gnu': 14.2.1 - '@next/swc-linux-x64-musl': 14.2.1 - '@next/swc-win32-arm64-msvc': 14.2.1 - '@next/swc-win32-ia32-msvc': 14.2.1 - '@next/swc-win32-x64-msvc': 14.2.1 - transitivePeerDependencies: - - '@babel/core' - - babel-plugin-macros + mimic-fn: 4.0.0 - /nextra-theme-docs@2.13.4(next@14.2.1)(nextra@2.13.4)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-2XOoMfwBCTYBt8ds4ZHftt9Wyf2XsykiNo02eir/XEYB+sGeUoE77kzqfidjEOKCSzOHYbK9BDMcg2+B/2vYRw==} - peerDependencies: - next: '>=9.5.3' - nextra: 2.13.4 - react: '>=16.13.1' - react-dom: '>=16.13.1' + /open@10.1.0: + resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} + engines: {node: '>=18'} dependencies: - '@headlessui/react': 1.7.18(react-dom@18.2.0)(react@18.2.0) - '@popperjs/core': 2.11.8 - clsx: 2.1.0 - escape-string-regexp: 5.0.0 - flexsearch: 0.7.43 - focus-visible: 5.2.0 - git-url-parse: 13.1.1 - intersection-observer: 0.12.2 - match-sorter: 6.3.4 - next: 14.2.1(@babel/core@7.24.4)(react-dom@18.2.0)(react@18.2.0) - next-seo: 6.5.0(next@14.2.1)(react-dom@18.2.0)(react@18.2.0) - next-themes: 0.2.1(next@14.2.1)(react-dom@18.2.0)(react@18.2.0) - nextra: 2.13.4(next@14.2.1)(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - scroll-into-view-if-needed: 3.1.0 - zod: 3.22.4 - dev: false + default-browser: 5.2.1 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + is-wsl: 3.1.0 + + /open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 - /nextra@2.13.4(next@14.2.1)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-7of2rSBxuUa3+lbMmZwG9cqgftcoNOVQLTT6Rxf3EhBR9t1EI7b43dted8YoqSNaigdE3j1CoyNkX8N/ZzlEpw==} - engines: {node: '>=16'} - peerDependencies: - next: '>=9.5.3' - react: '>=16.13.1' - react-dom: '>=16.13.1' + /open@9.1.0: + resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} + engines: {node: '>=14.16'} dependencies: - '@headlessui/react': 1.7.18(react-dom@18.2.0)(react@18.2.0) - '@mdx-js/mdx': 2.3.0 - '@mdx-js/react': 2.3.0(react@18.2.0) - '@napi-rs/simple-git': 0.1.16 - '@theguild/remark-mermaid': 0.0.5(react@18.2.0) - '@theguild/remark-npm2yarn': 0.2.1 - clsx: 2.1.0 - github-slugger: 2.0.0 - graceful-fs: 4.2.11 - gray-matter: 4.0.3 - katex: 0.16.10 - lodash.get: 4.4.2 - next: 14.2.1(@babel/core@7.24.4)(react-dom@18.2.0)(react@18.2.0) - next-mdx-remote: 4.4.1(react-dom@18.2.0)(react@18.2.0) - p-limit: 3.1.0 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - rehype-katex: 7.0.0 - rehype-pretty-code: 0.9.11(shiki@0.14.7) - rehype-raw: 7.0.0 - remark-gfm: 3.0.1 - remark-math: 5.1.1 - remark-reading-time: 2.0.1 - shiki: 0.14.7 - slash: 3.0.0 - title: 3.5.3 - unist-util-remove: 4.0.0 - unist-util-visit: 5.0.0 - zod: 3.22.4 - transitivePeerDependencies: - - supports-color + default-browser: 4.0.0 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + is-wsl: 2.2.0 dev: false - /nitropack@2.9.6: - resolution: {integrity: sha512-HP2PE0dREcDIBVkL8Zm6eVyrDd10/GI9hTL00PHvjUM8I9Y/2cv73wRDmxNyInfrx/CJKHATb2U/pQrqpzJyXA==} - engines: {node: ^16.11.0 || >=17.0.0} + /openapi-types@12.1.3: + resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==} + dev: false + + /openapi-typescript@6.7.5: + resolution: {integrity: sha512-ZD6dgSZi0u1QCP55g8/2yS5hNJfIpgqsSGHLxxdOjvY7eIrXzj271FJEQw33VwsZ6RCtO/NOuhxa7GBWmEudyA==} hasBin: true - peerDependencies: - xml2js: ^0.6.2 - peerDependenciesMeta: - xml2js: - optional: true dependencies: - '@cloudflare/kv-asset-handler': 0.3.1 - '@netlify/functions': 2.6.0 - '@rollup/plugin-alias': 5.1.0(rollup@4.14.1) - '@rollup/plugin-commonjs': 25.0.7(rollup@4.14.1) - '@rollup/plugin-inject': 5.0.5(rollup@4.14.1) - '@rollup/plugin-json': 6.1.0(rollup@4.14.1) - '@rollup/plugin-node-resolve': 15.2.3(rollup@4.14.1) - '@rollup/plugin-replace': 5.0.5(rollup@4.14.1) - '@rollup/plugin-terser': 0.4.4(rollup@4.14.1) - '@rollup/pluginutils': 5.1.0(rollup@4.14.1) - '@types/http-proxy': 1.17.14 - '@vercel/nft': 0.26.4 - archiver: 7.0.1 - c12: 1.10.0 + ansi-colors: 4.1.3 + fast-glob: 3.3.2 + js-yaml: 4.1.0 + supports-color: 9.4.0 + undici: 5.28.4 + yargs-parser: 21.1.1 + + /opener@1.5.2: + resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} + hasBin: true + dev: true + + /optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + engines: {node: '>= 0.8.0'} + dependencies: + '@aashutoshrathi/word-wrap': 1.2.6 + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + + /ora@7.0.1: + resolution: {integrity: sha512-0TUxTiFJWv+JnjWm4o9yvuskpEJLXTcng8MJuKd+SzAzp2o+OP3HWqNhB4OdJRt1Vsd9/mR0oyaEYlOnL7XIRw==} + engines: {node: '>=16'} + dependencies: chalk: 5.3.0 - chokidar: 3.6.0 - citty: 0.1.6 - consola: 3.2.3 - cookie-es: 1.1.0 - croner: 8.0.2 - crossws: 0.2.4 - db0: 0.1.4 - defu: 6.1.4 - destr: 2.0.3 - dot-prop: 8.0.2 - esbuild: 0.20.2 - escape-string-regexp: 5.0.0 - etag: 1.8.1 - fs-extra: 11.2.0 - globby: 14.0.1 - gzip-size: 7.0.0 - h3: 1.11.1 - hookable: 5.5.3 - httpxy: 0.1.5 - ioredis: 5.3.2 - is-primitive: 3.0.1 - jiti: 1.21.0 - klona: 2.0.6 - knitwork: 1.1.0 - listhen: 1.7.2 - magic-string: 0.30.9 - mime: 4.0.1 - mlly: 1.6.1 - mri: 1.2.0 - node-fetch-native: 1.6.4 - ofetch: 1.3.4 - ohash: 1.1.3 - openapi-typescript: 6.7.5 - pathe: 1.1.2 - perfect-debounce: 1.0.0 - pkg-types: 1.0.3 - pretty-bytes: 6.1.1 - radix3: 1.1.2 - rollup: 4.14.1 - rollup-plugin-visualizer: 5.12.0(rollup@4.14.1) - scule: 1.3.0 - semver: 7.6.0 - serve-placeholder: 2.0.1 - serve-static: 1.15.0 - std-env: 3.7.0 - ufo: 1.5.3 - uncrypto: 0.1.3 - unctx: 2.3.1 - unenv: 1.9.0 - unimport: 3.7.1(rollup@4.14.1) - unstorage: 1.10.2(ioredis@5.3.2) - unwasm: 0.3.9 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@libsql/client' - - '@netlify/blobs' - - '@planetscale/database' - - '@upstash/redis' - - '@vercel/kv' - - better-sqlite3 - - drizzle-orm - - encoding - - idb-keyval - - supports-color - - uWebSockets.js + cli-cursor: 4.0.0 + cli-spinners: 2.9.2 + is-interactive: 2.0.0 + is-unicode-supported: 1.3.0 + log-symbols: 5.1.0 + stdin-discarder: 0.1.0 + string-width: 6.1.0 + strip-ansi: 7.1.0 dev: false - /nlcst-to-string@3.1.1: - resolution: {integrity: sha512-63mVyqaqt0cmn2VcI2aH6kxe1rLAmSROqHMA0i4qqg1tidkfExgpb0FGMikMCn86mw5dFtBtEANfmSSK7TjNHw==} - dependencies: - '@types/nlcst': 1.0.4 + /orderedmap@2.1.1: + resolution: {integrity: sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==} dev: false - /no-case@3.0.4: - resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} - dependencies: - lower-case: 2.0.2 - tslib: 2.6.2 + /os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + dev: false - /node-abi@3.57.0: - resolution: {integrity: sha512-Dp+A9JWxRaKuHP35H77I4kCKesDy5HUDEmScia2FyncMTOXASMyg251F5PhFoDA5uqBrDDffiLpbqnrZmNXW+g==} - engines: {node: '>=10'} - dependencies: - semver: 7.6.0 + /outdent@0.5.0: + resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} dev: false - /node-addon-api@6.1.0: - resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} - requiresBuild: true + /outvariant@1.4.2: + resolution: {integrity: sha512-Ou3dJ6bA/UJ5GVHxah4LnqDwZRwAmWxrG3wtrHrbGnP4RnLCtA64A4F+ae7Y8ww660JaddSoArUR5HjipWSHAQ==} dev: false - optional: true - /node-addon-api@7.1.0: - resolution: {integrity: sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==} - engines: {node: ^16 || ^18 || >= 20} + /overlap-area@1.1.0: + resolution: {integrity: sha512-3dlJgJCaVeXH0/eZjYVJvQiLVVrPO4U1ZGqlATtx6QGO3b5eNM6+JgUKa7oStBTdYuGTk7gVoABCW6Tp+dhRdw==} + dependencies: + '@daybrush/utils': 1.13.0 dev: false - /node-domexception@1.0.0: - resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} - engines: {node: '>=10.5.0'} + /p-cancelable@3.0.0: + resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} + engines: {node: '>=12.20'} dev: false - /node-fetch-native@1.0.1: - resolution: {integrity: sha512-VzW+TAk2wE4X9maiKMlT+GsPU4OMmR1U9CrHSmd3DFLn2IcZ9VJ6M6BBugGfYUnPCLSYxXdZy17M0BEJyhUTwg==} + /p-filter@2.1.0: + resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} + engines: {node: '>=8'} + dependencies: + p-map: 2.1.0 dev: false - /node-fetch-native@1.6.4: - resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} + /p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} + dev: false - /node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} dependencies: - whatwg-url: 5.0.0 + p-try: 2.2.0 dev: false - /node-forge@1.3.1: - resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} - engines: {node: '>= 6.13.0'} + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 - /node-gyp-build@4.8.0: - resolution: {integrity: sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==} - hasBin: true + /p-limit@5.0.0: + resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} + engines: {node: '>=18'} + dependencies: + yocto-queue: 1.0.0 + + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 dev: false - /node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 - /non-layered-tidy-tree-layout@2.0.2: - resolution: {integrity: sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw==} + /p-map@2.1.0: + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} dev: false - /nopt@5.0.0: - resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} - engines: {node: '>=6'} - hasBin: true + /p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + dependencies: + aggregate-error: 3.1.0 + + /p-queue@8.0.1: + resolution: {integrity: sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA==} + engines: {node: '>=18'} dependencies: - abbrev: 1.1.1 + eventemitter3: 5.0.1 + p-timeout: 6.1.2 dev: false - /normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} - dependencies: - hosted-git-info: 2.8.9 - resolve: 1.22.8 - semver: 5.7.2 - validate-npm-package-license: 3.0.4 + /p-timeout@6.1.2: + resolution: {integrity: sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==} + engines: {node: '>=14.16'} dev: false - /normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + dev: false - /normalize-url@8.0.1: - resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==} + /package-json@8.1.1: + resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} engines: {node: '>=14.16'} + dependencies: + got: 12.6.1 + registry-auth-token: 5.0.2 + registry-url: 6.0.1 + semver: 7.5.4 dev: false - /novel@0.3.1(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-om5ETtpo23BvKbN6wynSkSEwsJCWIEJjuBPYPk9jy9ktVqNUJjvVGGtCeah7Gr1L7Iy3Jtif1cMFokqsyzZQPw==} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 + /pacote@18.0.0: + resolution: {integrity: sha512-ma7uVt/q3Sb3XbLwUjOeClz+7feHjMOFegHn5whw++x+GzikZkAq/2auklSbRuy6EI2iJh1/ZqCpVaUcxRaeqQ==} + engines: {node: ^16.14.0 || >=18.0.0} + hasBin: true dependencies: - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.78)(react@18.2.0) - '@tiptap/core': 2.3.0(@tiptap/pm@2.3.0) - '@tiptap/extension-color': 2.3.0(@tiptap/core@2.3.0)(@tiptap/extension-text-style@2.3.0) - '@tiptap/extension-highlight': 2.3.0(@tiptap/core@2.3.0) - '@tiptap/extension-horizontal-rule': 2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0) - '@tiptap/extension-image': 2.3.0(@tiptap/core@2.3.0) - '@tiptap/extension-link': 2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0) - '@tiptap/extension-placeholder': 2.0.3(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0) - '@tiptap/extension-task-item': 2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0) - '@tiptap/extension-task-list': 2.3.0(@tiptap/core@2.3.0) - '@tiptap/extension-text-style': 2.3.0(@tiptap/core@2.3.0) - '@tiptap/extension-underline': 2.3.0(@tiptap/core@2.3.0) - '@tiptap/pm': 2.3.0 - '@tiptap/react': 2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0)(react-dom@18.2.0)(react@18.2.0) - '@tiptap/starter-kit': 2.3.0(@tiptap/pm@2.3.0) - '@tiptap/suggestion': 2.3.0(@tiptap/core@2.3.0)(@tiptap/pm@2.3.0) - '@types/node': 18.15.3 - cmdk: 0.2.1(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) - jotai: 2.8.0(@types/react@18.2.78)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-markdown: 8.0.7(@types/react@18.2.78)(react@18.2.0) - react-moveable: 0.56.0 - tippy.js: 6.3.7 - tiptap-extension-auto-joiner: 0.1.1 - tiptap-extension-global-drag-handle: 0.1.6 - tiptap-markdown: 0.8.10(@tiptap/core@2.3.0) - tunnel-rat: 0.1.2(@types/react@18.2.78)(react@18.2.0) + '@npmcli/git': 5.0.6 + '@npmcli/installed-package-contents': 2.0.2 + '@npmcli/promise-spawn': 7.0.1 + '@npmcli/run-script': 8.0.0 + cacache: 18.0.2 + fs-minipass: 3.0.3 + minipass: 7.0.3 + npm-package-arg: 11.0.2 + npm-packlist: 8.0.2 + npm-pick-manifest: 9.0.0 + npm-registry-fetch: 16.2.1 + proc-log: 4.2.0 + promise-retry: 2.0.1 + read-package-json: 7.0.0 + read-package-json-fast: 3.0.2 + sigstore: 2.3.0 + ssri: 10.0.5 + tar: 6.1.15 transitivePeerDependencies: - - '@types/react' - - immer + - bluebird - supports-color - dev: false - - /npm-bundled@2.0.1: - resolution: {integrity: sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - dependencies: - npm-normalize-package-bin: 2.0.0 - dev: true - - /npm-normalize-package-bin@2.0.0: - resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - dev: true - /npm-packlist@5.1.3: - resolution: {integrity: sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - hasBin: true + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} dependencies: - glob: 8.1.0 - ignore-walk: 5.0.1 - npm-bundled: 2.0.1 - npm-normalize-package-bin: 2.0.0 - dev: true + callsites: 3.1.0 - /npm-run-path@2.0.2: - resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} - engines: {node: '>=4'} + /parse-entities@4.0.1: + resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} dependencies: - path-key: 2.0.1 + '@types/unist': 2.0.7 + character-entities: 2.0.2 + character-entities-legacy: 3.0.0 + character-reference-invalid: 2.0.1 + decode-named-character-reference: 1.0.2 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + is-hexadecimal: 2.0.1 dev: false - /npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + /parse-git-config@3.0.0: + resolution: {integrity: sha512-wXoQGL1D+2COYWCD35/xbiKma1Z15xvZL8cI25wvxzled58V51SJM04Urt/uznS900iQor7QO04SgdfT/XlbuA==} engines: {node: '>=8'} dependencies: - path-key: 3.1.1 - - /npm-run-path@5.3.0: - resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - path-key: 4.0.0 - dev: false + git-config-path: 2.0.0 + ini: 1.3.8 - /npm-to-yarn@2.2.1: - resolution: {integrity: sha512-O/j/ROyX0KGLG7O6Ieut/seQ0oiTpHF2tXAcFbpdTLQFiaNtkyTXXocM1fwpaa60dg1qpWj0nHlbNhx6qwuENQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /parse-github-url@1.0.2: + resolution: {integrity: sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==} + engines: {node: '>=0.10.0'} + hasBin: true dev: false - /npmlog@5.0.1: - resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} dependencies: - are-we-there-yet: 2.0.0 - console-control-strings: 1.1.0 - gauge: 3.0.2 - set-blocking: 2.0.0 + '@babel/code-frame': 7.22.10 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 dev: false - /nypm@0.3.8: - resolution: {integrity: sha512-IGWlC6So2xv6V4cIDmoV0SwwWx7zLG086gyqkyumteH2fIgCAM4nDVFB2iDRszDvmdSVW9xb1N+2KjQ6C7d4og==} - engines: {node: ^14.16.0 || >=16.10.0} - hasBin: true + /parse-latin@5.0.1: + resolution: {integrity: sha512-b/K8ExXaWC9t34kKeDV8kGXBkXZ1HCSAZRYE7HR14eA1GlXX5L8iWhs8USJNhQU9q5ci413jCKF0gOyovvyRBg==} dependencies: - citty: 0.1.6 - consola: 3.2.3 - execa: 8.0.1 - pathe: 1.1.2 - ufo: 1.5.3 + nlcst-to-string: 3.1.1 + unist-util-modify-children: 3.1.1 + unist-util-visit-children: 2.0.2 dev: false - /object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - - /object-hash@3.0.0: - resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} - engines: {node: '>= 6'} - - /object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + /parse-ms@3.0.0: + resolution: {integrity: sha512-Tpb8Z7r7XbbtBTrM9UhpkzzaMrqA2VXMT3YChzYltwV3P3pM6t8wl7TvpMnSTosz1aQAdVib7kdoys7vYOPerw==} + engines: {node: '>=12'} + dev: false - /object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} + /parse-numeric-range@1.3.0: + resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==} + dev: false - /object.assign@4.1.5: - resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} - engines: {node: '>= 0.4'} + /parse-path@7.0.0: + resolution: {integrity: sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==} dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - has-symbols: 1.0.3 - object-keys: 1.1.1 + protocols: 2.0.1 - /object.entries@1.1.8: - resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} - engines: {node: '>= 0.4'} + /parse-url@8.1.0: + resolution: {integrity: sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==} dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-object-atoms: 1.0.0 + parse-path: 7.0.0 - /object.fromentries@2.0.8: - resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} - engines: {node: '>= 0.4'} + /parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-object-atoms: 1.0.0 + entities: 4.5.0 + dev: false - /object.groupby@1.0.3: - resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 + /parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} - /object.hasown@1.1.4: - resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} - engines: {node: '>= 0.4'} + /pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} dependencies: - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-object-atoms: 1.0.0 + no-case: 3.0.4 + tslib: 2.6.2 + dev: true - /object.values@1.2.0: - resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-object-atoms: 1.0.0 + /path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + dev: true - /obliterator@2.0.4: - resolution: {integrity: sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==} - dev: false + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} - /ofetch@1.3.4: - resolution: {integrity: sha512-KLIET85ik3vhEfS+3fDlc/BAZiAp+43QEC/yCo5zkNoY2YaKvNkOaFr/6wCFgFH1kuYQM5pMNi0Tg8koiIemtw==} - dependencies: - destr: 2.0.3 - node-fetch-native: 1.6.4 - ufo: 1.5.3 + /path-is-absolute@1.0.1: + 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'} dev: false - /ohash@1.1.3: - resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==} + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} - /on-exit-leak-free@2.1.2: - resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} - engines: {node: '>=14.0.0'} + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - /on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} + /path-scurry@1.10.1: + resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} + engines: {node: '>=16 || 14 >=14.17'} dependencies: - ee-first: 1.1.1 + lru-cache: 10.0.1 + minipass: 7.0.3 - /once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + /path-scurry@1.10.2: + resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==} + engines: {node: '>=16 || 14 >=14.17'} dependencies: - wrappy: 1.0.2 + lru-cache: 10.2.0 + minipass: 7.0.4 - /onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - dependencies: - mimic-fn: 2.1.0 + /path-to-regexp@0.1.7: + resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} - /onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} - dependencies: - mimic-fn: 4.0.0 - dev: false + /path-to-regexp@6.2.1: + resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} - /open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + /path-type@5.0.0: + resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} engines: {node: '>=12'} - dependencies: - define-lazy-prop: 2.0.0 - is-docker: 2.2.1 - is-wsl: 2.2.0 - dev: false - /open@9.1.0: - resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} - engines: {node: '>=14.16'} - dependencies: - default-browser: 4.0.0 - define-lazy-prop: 3.0.0 - is-inside-container: 1.0.0 - is-wsl: 2.2.0 - dev: false + /pathe@1.1.1: + resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} - /openapi-types@12.1.3: - resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==} - dev: false + /pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - /openapi-typescript@6.7.5: - resolution: {integrity: sha512-ZD6dgSZi0u1QCP55g8/2yS5hNJfIpgqsSGHLxxdOjvY7eIrXzj271FJEQw33VwsZ6RCtO/NOuhxa7GBWmEudyA==} - hasBin: true - dependencies: - ansi-colors: 4.1.3 - fast-glob: 3.3.2 - js-yaml: 4.1.0 - supports-color: 9.4.0 - undici: 5.28.4 - yargs-parser: 21.1.1 - dev: false + /pathval@1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} - /optionator@0.9.3: - resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} - engines: {node: '>= 0.8.0'} - dependencies: - '@aashutoshrathi/word-wrap': 1.2.6 - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 + /perfect-debounce@1.0.0: + resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} - /ora@7.0.1: - resolution: {integrity: sha512-0TUxTiFJWv+JnjWm4o9yvuskpEJLXTcng8MJuKd+SzAzp2o+OP3HWqNhB4OdJRt1Vsd9/mR0oyaEYlOnL7XIRw==} - engines: {node: '>=16'} + /periscopic@3.1.0: + resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} dependencies: - chalk: 5.3.0 - cli-cursor: 4.0.0 - cli-spinners: 2.9.2 - is-interactive: 2.0.0 - is-unicode-supported: 1.3.0 - log-symbols: 5.1.0 - stdin-discarder: 0.1.0 - string-width: 6.1.0 - strip-ansi: 7.1.0 - dev: false + '@types/estree': 1.0.1 + estree-walker: 3.0.3 + is-reference: 3.0.1 - /orderedmap@2.1.1: - resolution: {integrity: sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==} - dev: false + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - /os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} - dev: false + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} - /outdent@0.5.0: - resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} - dev: false + /pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} - /outvariant@1.4.2: - resolution: {integrity: sha512-Ou3dJ6bA/UJ5GVHxah4LnqDwZRwAmWxrG3wtrHrbGnP4RnLCtA64A4F+ae7Y8ww660JaddSoArUR5HjipWSHAQ==} + /pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} dev: false - /overlap-area@1.1.0: - resolution: {integrity: sha512-3dlJgJCaVeXH0/eZjYVJvQiLVVrPO4U1ZGqlATtx6QGO3b5eNM6+JgUKa7oStBTdYuGTk7gVoABCW6Tp+dhRdw==} + /pino-abstract-transport@1.2.0: + resolution: {integrity: sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==} dependencies: - '@daybrush/utils': 1.13.0 - dev: false + readable-stream: 4.5.2 + split2: 4.2.0 - /p-cancelable@3.0.0: - resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} - engines: {node: '>=12.20'} - dev: false + /pino-std-serializers@6.2.2: + resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==} - /p-filter@2.1.0: - resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} - engines: {node: '>=8'} + /pino@8.20.0: + resolution: {integrity: sha512-uhIfMj5TVp+WynVASaVEJFTncTUe4dHBq6CWplu/vBgvGHhvBvQfxz+vcOrnnBQdORH3izaGEurLfNlq3YxdFQ==} + hasBin: true dependencies: - p-map: 2.1.0 - dev: false + atomic-sleep: 1.0.0 + fast-redact: 3.5.0 + on-exit-leak-free: 2.1.2 + pino-abstract-transport: 1.2.0 + pino-std-serializers: 6.2.2 + process-warning: 3.0.0 + quick-format-unescaped: 4.0.4 + real-require: 0.2.0 + safe-stable-stringify: 2.4.3 + sonic-boom: 3.8.1 + thread-stream: 2.6.0 - /p-finally@1.0.0: - resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} - engines: {node: '>=4'} - dev: false + /pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} - /p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} + /pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} dependencies: - p-try: 2.2.0 + find-up: 4.1.0 dev: false - /p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} + /pkg-types@1.0.3: + resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} dependencies: - yocto-queue: 0.1.0 + jsonc-parser: 3.2.0 + mlly: 1.6.1 + pathe: 1.1.2 - /p-limit@5.0.0: - resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} - engines: {node: '>=18'} + /pkg-types@1.1.0: + resolution: {integrity: sha512-/RpmvKdxKf8uILTtoOhAgf30wYbP2Qw+L9p3Rvshx1JZVX+XQNZQFjlbmGHEGIm4CkVPlSn+NXmIM8+9oWQaSA==} dependencies: - yocto-queue: 1.0.0 - dev: false + confbox: 0.1.7 + mlly: 1.6.1 + pathe: 1.1.2 - /p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - dependencies: - p-limit: 2.3.0 - dev: false + /playwright-core@1.42.1: + resolution: {integrity: sha512-mxz6zclokgrke9p1vtdy/COWBH+eOZgYUVVU34C73M+4j4HLlQJHtfcqiqqxpP0o8HhMkflvfbquLX5dg6wlfA==} + engines: {node: '>=16'} + hasBin: true + dev: true - /p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} + /playwright@1.42.1: + resolution: {integrity: sha512-PgwB03s2DZBcNRoW+1w9E+VkLBxweib6KTXM0M3tkiT4jVxKSi6PmVJ591J+0u10LUrgxB7dLRbiJqO5s2QPMg==} + engines: {node: '>=16'} + hasBin: true dependencies: - p-limit: 3.1.0 + playwright-core: 1.42.1 + optionalDependencies: + fsevents: 2.3.2 + dev: true - /p-map@2.1.0: - resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} - engines: {node: '>=6'} - dev: false + /possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} - /p-queue@8.0.1: - resolution: {integrity: sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA==} - engines: {node: '>=18'} + /postcss-calc@9.0.1(postcss@8.4.38): + resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.2 dependencies: - eventemitter3: 5.0.1 - p-timeout: 6.1.2 - dev: false + postcss: 8.4.38 + postcss-selector-parser: 6.0.13 + postcss-value-parser: 4.2.0 - /p-timeout@6.1.2: - resolution: {integrity: sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==} - engines: {node: '>=14.16'} - dev: false + /postcss-colormin@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.21.10 + caniuse-api: 3.0.0 + colord: 2.9.3 + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true - /p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - dev: false + /postcss-colormin@6.1.0(postcss@8.4.38): + resolution: {integrity: sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + browserslist: 4.23.0 + caniuse-api: 3.0.0 + colord: 2.9.3 + postcss: 8.4.38 + postcss-value-parser: 4.2.0 - /package-json@8.1.1: - resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} - engines: {node: '>=14.16'} + /postcss-convert-values@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.21.10 + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-convert-values@6.1.0(postcss@8.4.38): + resolution: {integrity: sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + browserslist: 4.23.0 + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + + /postcss-discard-comments@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 dependencies: - got: 12.6.1 - registry-auth-token: 5.0.2 - registry-url: 6.0.1 - semver: 7.6.0 - dev: false + postcss: 8.4.38 + dev: true - /parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} + /postcss-discard-comments@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 dependencies: - callsites: 3.1.0 + postcss: 8.4.38 - /parse-entities@4.0.1: - resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} + /postcss-discard-duplicates@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 dependencies: - '@types/unist': 2.0.10 - character-entities: 2.0.2 - character-entities-legacy: 3.0.0 - character-reference-invalid: 2.0.1 - decode-named-character-reference: 1.0.2 - is-alphanumerical: 2.0.1 - is-decimal: 2.0.1 - is-hexadecimal: 2.0.1 - dev: false + postcss: 8.4.38 + dev: true - /parse-github-url@1.0.2: - resolution: {integrity: sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==} - engines: {node: '>=0.10.0'} - hasBin: true - dev: false + /postcss-discard-duplicates@6.0.3(postcss@8.4.38): + resolution: {integrity: sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.38 - /parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} + /postcss-discard-empty@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 dependencies: - '@babel/code-frame': 7.24.2 - error-ex: 1.3.2 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 - dev: false + postcss: 8.4.38 + dev: true - /parse-latin@5.0.1: - resolution: {integrity: sha512-b/K8ExXaWC9t34kKeDV8kGXBkXZ1HCSAZRYE7HR14eA1GlXX5L8iWhs8USJNhQU9q5ci413jCKF0gOyovvyRBg==} + /postcss-discard-empty@6.0.3(postcss@8.4.38): + resolution: {integrity: sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 dependencies: - nlcst-to-string: 3.1.1 - unist-util-modify-children: 3.1.1 - unist-util-visit-children: 2.0.2 - dev: false + postcss: 8.4.38 - /parse-ms@3.0.0: - resolution: {integrity: sha512-Tpb8Z7r7XbbtBTrM9UhpkzzaMrqA2VXMT3YChzYltwV3P3pM6t8wl7TvpMnSTosz1aQAdVib7kdoys7vYOPerw==} - engines: {node: '>=12'} - dev: false + /postcss-discard-overridden@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.38 + dev: true - /parse-numeric-range@1.3.0: - resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==} - dev: false + /postcss-discard-overridden@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.38 - /parse-path@7.0.0: - resolution: {integrity: sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==} + /postcss-import@15.1.0(postcss@8.4.38): + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 dependencies: - protocols: 2.0.1 - dev: false + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.8 - /parse-url@8.1.0: - resolution: {integrity: sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==} + /postcss-js@4.0.1(postcss@8.4.38): + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 dependencies: - parse-path: 7.0.0 - dev: false + camelcase-css: 2.0.1 + postcss: 8.4.38 - /parse5@7.1.2: - resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + /postcss-load-config@3.1.4(postcss@8.4.38): + resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} + engines: {node: '>= 10'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true dependencies: - entities: 4.5.0 + lilconfig: 2.1.0 + postcss: 8.4.38 + yaml: 1.10.2 dev: false - /parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} + /postcss-load-config@4.0.1(postcss@8.4.38): + 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.38 + yaml: 2.4.1 - /pascal-case@3.1.2: - resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + /postcss-load-config@5.0.3(postcss@8.4.38): + resolution: {integrity: sha512-90pBBI5apUVruIEdCxZic93Wm+i9fTrp7TXbgdUCH+/L+2WnfpITSpq5dFU/IPvbv7aNiMlQISpUkAm3fEcvgQ==} + engines: {node: '>= 18'} + peerDependencies: + jiti: '>=1.21.0' + postcss: '>=8.0.9' + peerDependenciesMeta: + jiti: + optional: true + postcss: + optional: true dependencies: - no-case: 3.0.4 - tslib: 2.6.2 + lilconfig: 3.1.1 + postcss: 8.4.38 + yaml: 2.4.1 dev: true - /path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} + /postcss-merge-longhand@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + stylehacks: 6.0.0(postcss@8.4.38) + dev: true - /path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} + /postcss-merge-longhand@6.0.5(postcss@8.4.38): + resolution: {integrity: sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + stylehacks: 6.1.1(postcss@8.4.38) - /path-key@2.0.1: - resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} - engines: {node: '>=4'} - dev: false + /postcss-merge-rules@6.0.1(postcss@8.4.38): + resolution: {integrity: sha512-a4tlmJIQo9SCjcfiCcCMg/ZCEe0XTkl/xK0XHBs955GWg9xDX3NwP9pwZ78QUOWB8/0XCjZeJn98Dae0zg6AAw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.21.10 + caniuse-api: 3.0.0 + cssnano-utils: 4.0.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-selector-parser: 6.0.13 + dev: true - /path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} + /postcss-merge-rules@6.1.1(postcss@8.4.38): + resolution: {integrity: sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + browserslist: 4.23.0 + caniuse-api: 3.0.0 + cssnano-utils: 4.0.2(postcss@8.4.38) + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 - /path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} - dev: false + /postcss-minify-font-values@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true - /path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + /postcss-minify-font-values@6.1.0(postcss@8.4.38): + resolution: {integrity: sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 - /path-scurry@1.10.2: - resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==} - engines: {node: '>=16 || 14 >=14.17'} + /postcss-minify-gradients@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 dependencies: - lru-cache: 10.2.0 - minipass: 7.0.4 + colord: 2.9.3 + cssnano-utils: 4.0.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true - /path-to-regexp@0.1.7: - resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + /postcss-minify-gradients@6.0.3(postcss@8.4.38): + resolution: {integrity: sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + colord: 2.9.3 + cssnano-utils: 4.0.2(postcss@8.4.38) + postcss: 8.4.38 + postcss-value-parser: 4.2.0 - /path-to-regexp@6.2.1: - resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} - dev: false + /postcss-minify-params@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.21.10 + cssnano-utils: 4.0.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true - /path-to-regexp@6.2.2: - resolution: {integrity: sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==} + /postcss-minify-params@6.1.0(postcss@8.4.38): + resolution: {integrity: sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + browserslist: 4.23.0 + cssnano-utils: 4.0.2(postcss@8.4.38) + postcss: 8.4.38 + postcss-value-parser: 4.2.0 - /path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} + /postcss-minify-selectors@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.38 + postcss-selector-parser: 6.0.13 + dev: true - /path-type@5.0.0: - resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} - engines: {node: '>=12'} - dev: false + /postcss-minify-selectors@6.0.4(postcss@8.4.38): + resolution: {integrity: sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 - /pathe@1.1.2: - resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + /postcss-nested@6.0.1(postcss@8.4.38): + resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + dependencies: + postcss: 8.4.38 + postcss-selector-parser: 6.0.13 - /pathval@1.1.1: - resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} - dev: false + /postcss-normalize-charset@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.38 + dev: true - /perfect-debounce@1.0.0: - resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} - dev: false + /postcss-normalize-charset@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.38 - /periscopic@3.1.0: - resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} + /postcss-normalize-display-values@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 dependencies: - '@types/estree': 1.0.5 - estree-walker: 3.0.3 - is-reference: 3.0.2 + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true - /picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + /postcss-normalize-display-values@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 - /picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} + /postcss-normalize-positions@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true - /pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} + /postcss-normalize-positions@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 - /pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} - dev: false + /postcss-normalize-repeat-style@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true - /pino-abstract-transport@1.1.0: - resolution: {integrity: sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==} + /postcss-normalize-repeat-style@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 dependencies: - readable-stream: 4.5.2 - split2: 4.2.0 + postcss: 8.4.38 + postcss-value-parser: 4.2.0 - /pino-std-serializers@6.2.2: - resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==} + /postcss-normalize-string@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true - /pino@8.20.0: - resolution: {integrity: sha512-uhIfMj5TVp+WynVASaVEJFTncTUe4dHBq6CWplu/vBgvGHhvBvQfxz+vcOrnnBQdORH3izaGEurLfNlq3YxdFQ==} - hasBin: true + /postcss-normalize-string@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 dependencies: - atomic-sleep: 1.0.0 - fast-redact: 3.5.0 - on-exit-leak-free: 2.1.2 - pino-abstract-transport: 1.1.0 - pino-std-serializers: 6.2.2 - process-warning: 3.0.0 - quick-format-unescaped: 4.0.4 - real-require: 0.2.0 - safe-stable-stringify: 2.4.3 - sonic-boom: 3.8.1 - thread-stream: 2.4.1 + postcss: 8.4.38 + postcss-value-parser: 4.2.0 - /pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} - engines: {node: '>= 6'} + /postcss-normalize-timing-functions@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true - /pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} + /postcss-normalize-timing-functions@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 dependencies: - find-up: 4.1.0 - dev: false + postcss: 8.4.38 + postcss-value-parser: 4.2.0 - /pkg-types@1.0.3: - resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} + /postcss-normalize-unicode@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 dependencies: - jsonc-parser: 3.2.1 - mlly: 1.6.1 - pathe: 1.1.2 - dev: false + browserslist: 4.21.10 + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true - /playwright-core@1.42.1: - resolution: {integrity: sha512-mxz6zclokgrke9p1vtdy/COWBH+eOZgYUVVU34C73M+4j4HLlQJHtfcqiqqxpP0o8HhMkflvfbquLX5dg6wlfA==} - engines: {node: '>=16'} - hasBin: true + /postcss-normalize-unicode@6.1.0(postcss@8.4.38): + resolution: {integrity: sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + browserslist: 4.23.0 + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + + /postcss-normalize-url@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 dev: true - /playwright@1.42.1: - resolution: {integrity: sha512-PgwB03s2DZBcNRoW+1w9E+VkLBxweib6KTXM0M3tkiT4jVxKSi6PmVJ591J+0u10LUrgxB7dLRbiJqO5s2QPMg==} - engines: {node: '>=16'} - hasBin: true + /postcss-normalize-url@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 dependencies: - playwright-core: 1.42.1 - optionalDependencies: - fsevents: 2.3.2 + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + + /postcss-normalize-whitespace@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 dev: true - /possible-typed-array-names@1.0.0: - resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} - engines: {node: '>= 0.4'} + /postcss-normalize-whitespace@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 - /postcss-import@15.1.0(postcss@8.4.38): - resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} - engines: {node: '>=14.0.0'} + /postcss-ordered-values@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: ^8.0.0 + postcss: ^8.2.15 dependencies: + cssnano-utils: 4.0.0(postcss@8.4.38) postcss: 8.4.38 postcss-value-parser: 4.2.0 - read-cache: 1.0.0 - resolve: 1.22.8 + dev: true - /postcss-js@4.0.1(postcss@8.4.38): - resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} - engines: {node: ^12 || ^14 || >= 16} + /postcss-ordered-values@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: ^8.4.21 + postcss: ^8.4.31 dependencies: - camelcase-css: 2.0.1 + cssnano-utils: 4.0.2(postcss@8.4.38) postcss: 8.4.38 + postcss-value-parser: 4.2.0 - /postcss-load-config@3.1.4(postcss@8.4.38): - resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} - engines: {node: '>= 10'} + /postcss-reduce-initial@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true + postcss: ^8.2.15 dependencies: - lilconfig: 2.1.0 + browserslist: 4.21.10 + caniuse-api: 3.0.0 postcss: 8.4.38 - yaml: 1.10.2 - dev: false + dev: true - /postcss-load-config@4.0.2(postcss@8.4.38): - resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} - engines: {node: '>= 14'} + /postcss-reduce-initial@6.1.0(postcss@8.4.38): + resolution: {integrity: sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true + postcss: ^8.4.31 dependencies: - lilconfig: 3.1.1 + browserslist: 4.23.0 + caniuse-api: 3.0.0 postcss: 8.4.38 - yaml: 2.4.1 - /postcss-load-config@5.0.3(postcss@8.4.38): - resolution: {integrity: sha512-90pBBI5apUVruIEdCxZic93Wm+i9fTrp7TXbgdUCH+/L+2WnfpITSpq5dFU/IPvbv7aNiMlQISpUkAm3fEcvgQ==} - engines: {node: '>= 18'} + /postcss-reduce-transforms@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - jiti: '>=1.21.0' - postcss: '>=8.0.9' - peerDependenciesMeta: - jiti: - optional: true - postcss: - optional: true + postcss: ^8.2.15 dependencies: - lilconfig: 3.1.1 postcss: 8.4.38 - yaml: 2.4.1 + postcss-value-parser: 4.2.0 dev: true - /postcss-nested@6.0.1(postcss@8.4.38): - resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} - engines: {node: '>=12.0'} + /postcss-reduce-transforms@6.0.2(postcss@8.4.38): + resolution: {integrity: sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: ^8.2.14 + postcss: ^8.4.31 dependencies: postcss: 8.4.38 - postcss-selector-parser: 6.0.16 + postcss-value-parser: 4.2.0 /postcss-safe-parser@6.0.0(postcss@8.4.38): resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} @@ -14789,6 +19643,13 @@ packages: util-deprecate: 1.0.2 dev: false + /postcss-selector-parser@6.0.13: + resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + /postcss-selector-parser@6.0.16: resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} engines: {node: '>=4'} @@ -14796,6 +19657,46 @@ packages: cssesc: 3.0.0 util-deprecate: 1.0.2 + /postcss-svgo@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw==} + engines: {node: ^14 || ^16 || >= 18} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + svgo: 3.0.2 + dev: true + + /postcss-svgo@6.0.3(postcss@8.4.38): + resolution: {integrity: sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==} + engines: {node: ^14 || ^16 || >= 18} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + svgo: 3.2.0 + + /postcss-unique-selectors@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.38 + postcss-selector-parser: 6.0.13 + dev: true + + /postcss-unique-selectors@6.0.4(postcss@8.4.38): + resolution: {integrity: sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + /postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} @@ -14803,9 +19704,9 @@ packages: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} dependencies: - nanoid: 3.3.7 + nanoid: 3.3.6 picocolors: 1.0.0 - source-map-js: 1.2.0 + source-map-js: 1.0.2 /postcss@8.4.38: resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} @@ -14819,20 +19720,32 @@ packages: resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==} engines: {node: '>=10'} hasBin: true + requiresBuild: true dependencies: - detect-libc: 2.0.3 + detect-libc: 2.0.2 expand-template: 2.0.3 github-from-package: 0.0.0 minimist: 1.2.8 mkdirp-classic: 0.5.3 napi-build-utils: 1.0.2 - node-abi: 3.57.0 + node-abi: 3.60.0 pump: 3.0.0 rc: 1.2.8 simple-get: 4.0.1 tar-fs: 2.1.1 tunnel-agent: 0.6.0 dev: false + optional: true + + /preferred-pm@3.0.3: + resolution: {integrity: sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==} + engines: {node: '>=10'} + dependencies: + find-up: 5.0.0 + find-yarn-workspace-root2: 1.2.16 + path-exists: 4.0.0 + which-pm: 2.0.0 + dev: false /preferred-pm@3.1.3: resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==} @@ -14848,8 +19761,8 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - /prettier-plugin-tailwindcss@0.5.13(@ianvs/prettier-plugin-sort-imports@4.2.1)(prettier@3.2.5): - resolution: {integrity: sha512-2tPWHCFNC+WRjAC4SIWQNSOdcL1NNkydXim8w7TDqlZi+/ulZYz2OouAI6qMtkggnPt7lGamboj6LcTMwcCvoQ==} + /prettier-plugin-tailwindcss@0.5.14(@ianvs/prettier-plugin-sort-imports@4.2.1)(prettier@3.2.5): + resolution: {integrity: sha512-Puaz+wPUAhFp8Lo9HuciYKM2Y2XExESjeT+9NQoVFXZsPPnc9VYss2SpxdQ6vbatmt8/4+SN0oe0I1cPDABg9Q==} engines: {node: '>=14.21.3'} peerDependencies: '@ianvs/prettier-plugin-sort-imports': '*' @@ -14924,7 +19837,6 @@ packages: /pretty-bytes@6.1.1: resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==} engines: {node: ^14.13.1 || >=16.0.0} - dev: false /pretty-format@29.7.0: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} @@ -14933,7 +19845,6 @@ packages: '@jest/schemas': 29.6.3 ansi-styles: 5.2.0 react-is: 18.2.0 - dev: false /pretty-ms@8.0.0: resolution: {integrity: sha512-ASJqOugUF1bbzI35STMBUpZqdfYKlJugy6JBziGi2EE+AL5JPJGSzvpeVXojxrr0ViUYoToUjb5kjSEGf7Y83Q==} @@ -14951,9 +19862,16 @@ packages: engines: {node: '>=6'} dev: false + /proc-log@3.0.0: + resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + /proc-log@4.2.0: + resolution: {integrity: sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + /process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - dev: false /process-warning@3.0.0: resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==} @@ -14962,13 +19880,27 @@ packages: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} engines: {node: '>= 0.6.0'} + /promise-inflight@1.0.1: + resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} + peerDependencies: + bluebird: '*' + peerDependenciesMeta: + bluebird: + optional: true + + /promise-retry@2.0.1: + resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} + engines: {node: '>=10'} + dependencies: + err-code: 2.0.3 + retry: 0.12.0 + /prompts@2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} dependencies: kleur: 3.0.3 sisteransi: 1.0.5 - dev: false /prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} @@ -14977,8 +19909,8 @@ packages: object-assign: 4.1.1 react-is: 16.13.1 - /property-information@6.5.0: - resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} + /property-information@6.2.0: + resolution: {integrity: sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg==} dev: false /prosemirror-changeset@2.2.1: @@ -15129,7 +20061,6 @@ packages: /protocols@2.0.1: resolution: {integrity: sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==} - dev: false /proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} @@ -15157,20 +20088,26 @@ packages: /pump@3.0.0: resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + requiresBuild: true dependencies: end-of-stream: 1.4.4 once: 1.4.0 dev: false + optional: true /punycode.js@2.3.1: resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} engines: {node: '>=6'} dev: false - /punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + /punycode@2.3.0: + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} engines: {node: '>=6'} + /pure-rand@6.1.0: + resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} + dev: false + /pvtsutils@1.3.5: resolution: {integrity: sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==} dependencies: @@ -15186,15 +20123,13 @@ packages: resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} engines: {node: '>=0.6'} dependencies: - side-channel: 1.0.6 + side-channel: 1.0.4 /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} /queue-tick@1.0.1: resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} - requiresBuild: true - dev: false /quick-format-unescaped@4.0.4: resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} @@ -15216,7 +20151,6 @@ packages: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} dependencies: safe-buffer: 5.2.1 - dev: false /range-parser@1.2.1: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} @@ -15231,12 +20165,18 @@ packages: iconv-lite: 0.4.24 unpipe: 1.0.0 + /rc9@2.1.1: + resolution: {integrity: sha512-lNeOl38Ws0eNxpO3+wD1I9rkHGQyj1NU1jlzv4go2CtEnEQEUfqnIvZG7W+bC/aXdJ27n5x/yUjb6RoT9tko+Q==} + dependencies: + defu: 6.1.4 + destr: 2.0.3 + flat: 5.0.2 + /rc9@2.1.2: resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} dependencies: defu: 6.1.4 destr: 2.0.3 - dev: false /rc@1.2.8: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} @@ -15286,7 +20226,6 @@ packages: /react-is@18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - dev: false /react-markdown@8.0.7(@types/react@18.2.78)(react@18.2.0): resolution: {integrity: sha512-bvWbzG4MtOU62XqBx3Xx+zB2raaFFsq4mYiAzfjXJMEz2sixgeAfraA3tvzULF02ZdOMUOKTBFFaZJDDrq+BJQ==} @@ -15294,20 +20233,20 @@ packages: '@types/react': '>=16' react: '>=16' dependencies: - '@types/hast': 2.3.10 - '@types/prop-types': 15.7.12 + '@types/hast': 2.3.5 + '@types/prop-types': 15.7.5 '@types/react': 18.2.78 - '@types/unist': 2.0.10 + '@types/unist': 2.0.7 comma-separated-tokens: 2.0.3 hast-util-whitespace: 2.0.1 prop-types: 15.8.1 - property-information: 6.5.0 + property-information: 6.2.0 react: 18.2.0 react-is: 18.2.0 remark-parse: 10.0.2 remark-rehype: 10.1.0 space-separated-tokens: 2.0.2 - style-to-object: 0.4.4 + style-to-object: 0.4.2 unified: 10.1.2 unist-util-visit: 4.1.2 vfile: 5.3.7 @@ -15424,7 +20363,23 @@ packages: /read-cache@1.0.0: resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} dependencies: - pify: 2.3.0 + pify: 2.3.0 + + /read-package-json-fast@3.0.2: + resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + json-parse-even-better-errors: 3.0.0 + npm-normalize-package-bin: 3.0.1 + + /read-package-json@7.0.0: + resolution: {integrity: sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + glob: 10.3.12 + json-parse-even-better-errors: 3.0.0 + normalize-package-data: 6.0.0 + npm-normalize-package-bin: 3.0.1 /read-pkg-up@7.0.1: resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} @@ -15439,7 +20394,7 @@ packages: resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} engines: {node: '>=8'} dependencies: - '@types/normalize-package-data': 2.4.4 + '@types/normalize-package-data': 2.4.1 normalize-package-data: 2.5.0 parse-json: 5.2.0 type-fest: 0.6.0 @@ -15465,7 +20420,6 @@ packages: safe-buffer: 5.1.2 string_decoder: 1.1.1 util-deprecate: 1.0.2 - dev: false /readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} @@ -15474,7 +20428,6 @@ packages: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 - dev: false /readable-stream@4.5.2: resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} @@ -15490,7 +20443,6 @@ packages: resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} dependencies: minimatch: 5.1.6 - dev: false /readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} @@ -15506,14 +20458,14 @@ packages: resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} engines: {node: '>= 12.13.0'} - /recast@0.23.6: - resolution: {integrity: sha512-9FHoNjX1yjuesMwuthAmPKabxYQdOgihFYmT5ebXfYGBcnqXZf3WOVz+5foEZ8Y83P4ZY6yQD5GMmtV+pgCCAQ==} + /recast@0.23.4: + resolution: {integrity: sha512-qtEDqIZGVcSZCHniWwZWbRy79Dc6Wp3kT/UmDA2RJKBPg7+7k51aQBZirHmUGn5uvHf2rg8DkjizrN26k61ATw==} engines: {node: '>= 4'} dependencies: + assert: 2.0.0 ast-types: 0.16.1 esprima: 4.0.1 source-map: 0.6.1 - tiny-invariant: 1.3.3 tslib: 2.6.2 dev: false @@ -15528,14 +20480,12 @@ packages: /redis-errors@1.2.0: resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} engines: {node: '>=4'} - dev: false /redis-parser@3.0.0: resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==} engines: {node: '>=4'} dependencies: redis-errors: 1.2.0 - dev: false /reflect.getprototypeof@1.0.6: resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} @@ -15549,8 +20499,16 @@ packages: globalthis: 1.0.3 which-builtin-type: 1.1.3 - /regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + /regenerator-runtime@0.14.0: + resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + + /regexp.prototype.flags@1.5.0: + resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + functions-have-names: 1.2.3 /regexp.prototype.flags@1.5.2: resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} @@ -15603,7 +20561,7 @@ packages: resolution: {integrity: sha512-QtobgRgYoQaK6p1eSr2SD1i61f7bjF2kZHAQHxeCHAuJf7ZUDMvQ7owDq9YTkmar5m5TSUol+2D3bp3KfJf/oA==} dependencies: '@types/hast': 3.0.4 - hast-util-to-text: 4.0.1 + hast-util-to-text: 4.0.2 lowlight: 3.1.0 unist-util-visit: 5.0.0 vfile: 6.0.1 @@ -15613,9 +20571,9 @@ packages: resolution: {integrity: sha512-h8FPkGE00r2XKU+/acgqwWUlyzve1IiOKwsEkg4pDL3k48PiE0Pt+/uLtVHDVkN1yA4iurZN6UES8ivHVEQV6Q==} dependencies: '@types/hast': 3.0.4 - '@types/katex': 0.16.7 + '@types/katex': 0.16.2 hast-util-from-html-isomorphic: 2.0.0 - hast-util-to-text: 4.0.1 + hast-util-to-text: 4.0.2 katex: 0.16.10 unist-util-visit-parents: 6.0.1 vfile: 6.0.1 @@ -15639,16 +20597,16 @@ packages: unified: 11.0.4 dev: false - /rehype-pretty-code@0.9.11(shiki@0.14.7): + /rehype-pretty-code@0.9.11(shiki@0.14.3): resolution: {integrity: sha512-Eq90eCYXQJISktfRZ8PPtwc5SUyH6fJcxS8XOMnHPUQZBtC6RYo67gGlley9X2nR8vlniPj0/7oCDEYHKQa/oA==} engines: {node: '>=16'} peerDependencies: shiki: '*' dependencies: - '@types/hast': 2.3.10 + '@types/hast': 2.3.5 hash-obj: 4.0.0 parse-numeric-range: 1.3.0 - shiki: 0.14.7 + shiki: 0.14.3 dev: false /rehype-raw@7.0.0: @@ -15686,7 +20644,7 @@ packages: /remark-gfm@3.0.1: resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==} dependencies: - '@types/mdast': 3.0.15 + '@types/mdast': 3.0.12 mdast-util-gfm: 2.0.2 micromark-extension-gfm: 2.0.3 unified: 10.1.2 @@ -15710,7 +20668,7 @@ packages: /remark-math@5.1.1: resolution: {integrity: sha512-cE5T2R/xLVtfFI4cCePtiRn+e6jKMtFDR3P8V3qpv8wpKjwvHoBA4eJzvX+nVrnlNy0911bdGmuspCSwetfYHw==} dependencies: - '@types/mdast': 3.0.15 + '@types/mdast': 3.0.12 mdast-util-math: 2.0.2 micromark-extension-math: 2.1.2 unified: 10.1.2 @@ -15728,7 +20686,7 @@ packages: /remark-parse@10.0.2: resolution: {integrity: sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==} dependencies: - '@types/mdast': 3.0.15 + '@types/mdast': 3.0.12 mdast-util-from-markdown: 1.3.1 unified: 10.1.2 transitivePeerDependencies: @@ -15758,8 +20716,8 @@ packages: /remark-rehype@10.1.0: resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==} dependencies: - '@types/hast': 2.3.10 - '@types/mdast': 3.0.15 + '@types/hast': 2.3.5 + '@types/mdast': 3.0.12 mdast-util-to-hast: 12.3.0 unified: 10.1.2 dev: false @@ -15791,8 +20749,8 @@ packages: unified: 11.0.4 dev: false - /remove-accents@0.5.0: - resolution: {integrity: sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==} + /remove-accents@0.4.2: + resolution: {integrity: sha512-7pXIJqJOq5tFgG1A2Zxti3Ht8jJF337m4sowbuHsW30ZnkQFnDzy9qBNhgzX8ZLW4+UBcXiiR7SwR6pokHsxiA==} dev: false /require-directory@2.1.1: @@ -15832,11 +20790,19 @@ packages: engines: {node: '>=10'} dev: true + /resolve@1.22.4: + resolution: {integrity: sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==} + hasBin: true + dependencies: + is-core-module: 2.13.0 + 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.1 + is-core-module: 2.13.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -15844,7 +20810,7 @@ packages: resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} hasBin: true dependencies: - is-core-module: 2.13.1 + is-core-module: 2.13.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -15902,6 +20868,10 @@ packages: unified: 10.1.2 dev: false + /retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + /reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -15926,15 +20896,29 @@ packages: resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==} dev: false - /rollup-plugin-dts@6.1.0(rollup@4.14.1)(typescript@5.4.5): + /rollup-plugin-dts@6.1.0(rollup@3.29.4)(typescript@5.4.5): + resolution: {integrity: sha512-ijSCPICkRMDKDLBK9torss07+8dl9UpY9z1N/zTeA1cIqdzMlpkV3MOOC7zukyvQfDyxa1s3Dl2+DeiP/G6DOw==} + engines: {node: '>=16'} + peerDependencies: + rollup: ^3.29.4 || ^4 + typescript: ^4.5 || ^5.0 + dependencies: + magic-string: 0.30.10 + rollup: 3.29.4 + typescript: 5.4.5 + optionalDependencies: + '@babel/code-frame': 7.24.2 + dev: true + + /rollup-plugin-dts@6.1.0(rollup@4.16.2)(typescript@5.4.5): resolution: {integrity: sha512-ijSCPICkRMDKDLBK9torss07+8dl9UpY9z1N/zTeA1cIqdzMlpkV3MOOC7zukyvQfDyxa1s3Dl2+DeiP/G6DOw==} engines: {node: '>=16'} peerDependencies: rollup: ^3.29.4 || ^4 typescript: ^4.5 || ^5.0 dependencies: - magic-string: 0.30.9 - rollup: 4.14.1 + magic-string: 0.30.10 + rollup: 4.16.2 typescript: 5.4.5 optionalDependencies: '@babel/code-frame': 7.24.2 @@ -15955,22 +20939,22 @@ packages: rollup-plugin-inject: 3.0.2 dev: true - /rollup-plugin-swc3@0.11.0(@swc/core@1.4.13)(rollup@4.14.1): - resolution: {integrity: sha512-luB9Ngb1YieWPpJttKvkmjN3lG5l28SmASLbf2CoScUB2+EImU0bE8wX4EYKEqv5clVulhWRQHQvE+H33X/03g==} + /rollup-plugin-swc3@0.11.1(@swc/core@1.4.16)(rollup@4.16.2): + resolution: {integrity: sha512-6j8kWS6HM63P9pc6O5UtfhZkW9vVmkYfoEmZxR3Nua6KQRDCM3a6RrskqiGeiCnJ9s1W+tAmlVYz80G9yy2/Kg==} engines: {node: '>=12'} peerDependencies: '@swc/core': '>=1.2.165' rollup: ^2.0.0 || ^3.0.0 || ^4.0.0 dependencies: '@fastify/deepmerge': 1.3.0 - '@rollup/pluginutils': 5.1.0(rollup@4.14.1) - '@swc/core': 1.4.13(@swc/helpers@0.5.8) + '@rollup/pluginutils': 5.1.0(rollup@4.16.2) + '@swc/core': 1.4.16(@swc/helpers@0.5.10) get-tsconfig: 4.7.3 - rollup: 4.14.1 - rollup-preserve-directives: 1.1.1(rollup@4.14.1) + rollup: 4.16.2 + rollup-preserve-directives: 1.1.1(rollup@4.16.2) dev: true - /rollup-plugin-visualizer@5.12.0(rollup@4.14.1): + /rollup-plugin-visualizer@5.12.0(rollup@3.29.4): resolution: {integrity: sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==} engines: {node: '>=14'} hasBin: true @@ -15982,10 +20966,25 @@ packages: dependencies: open: 8.4.2 picomatch: 2.3.1 - rollup: 4.14.1 + rollup: 3.29.4 + source-map: 0.7.4 + yargs: 17.7.2 + + /rollup-plugin-visualizer@5.12.0(rollup@4.16.2): + resolution: {integrity: sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==} + engines: {node: '>=14'} + hasBin: true + peerDependencies: + rollup: 2.x || 3.x || 4.x + peerDependenciesMeta: + rollup: + optional: true + dependencies: + open: 8.4.2 + picomatch: 2.3.1 + rollup: 4.16.2 source-map: 0.7.4 yargs: 17.7.2 - dev: false /rollup-pluginutils@2.8.2: resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} @@ -15993,37 +20992,45 @@ packages: estree-walker: 0.6.1 dev: true - /rollup-preserve-directives@1.1.1(rollup@4.14.1): + /rollup-preserve-directives@1.1.1(rollup@4.16.2): resolution: {integrity: sha512-+eQafbuEfDPfxQ9hQPlwaROfin4yiVRxap8hnrvvvcSGoukv1tTiYpAW9mvm3uR8J+fe4xd8FdVd5rz9q7jZ+Q==} peerDependencies: rollup: ^2.0.0 || ^3.0.0 || ^4.0.0 dependencies: - magic-string: 0.30.9 - rollup: 4.14.1 + magic-string: 0.30.10 + rollup: 4.16.2 dev: true - /rollup@4.14.1: - resolution: {integrity: sha512-4LnHSdd3QK2pa1J6dFbfm1HN0D7vSK/ZuZTsdyUAlA6Rr1yTouUTL13HaDOGJVgby461AhrNGBS7sCGXXtT+SA==} + /rollup@3.29.4: + resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.3 + + /rollup@4.16.2: + resolution: {integrity: sha512-sxDP0+pya/Yi5ZtptF4p3avI+uWCIf/OdrfdH2Gbv1kWddLKk0U7WE3PmQokhi5JrektxsK3sK8s4hzAmjqahw==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.14.1 - '@rollup/rollup-android-arm64': 4.14.1 - '@rollup/rollup-darwin-arm64': 4.14.1 - '@rollup/rollup-darwin-x64': 4.14.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.14.1 - '@rollup/rollup-linux-arm64-gnu': 4.14.1 - '@rollup/rollup-linux-arm64-musl': 4.14.1 - '@rollup/rollup-linux-powerpc64le-gnu': 4.14.1 - '@rollup/rollup-linux-riscv64-gnu': 4.14.1 - '@rollup/rollup-linux-s390x-gnu': 4.14.1 - '@rollup/rollup-linux-x64-gnu': 4.14.1 - '@rollup/rollup-linux-x64-musl': 4.14.1 - '@rollup/rollup-win32-arm64-msvc': 4.14.1 - '@rollup/rollup-win32-ia32-msvc': 4.14.1 - '@rollup/rollup-win32-x64-msvc': 4.14.1 + '@rollup/rollup-android-arm-eabi': 4.16.2 + '@rollup/rollup-android-arm64': 4.16.2 + '@rollup/rollup-darwin-arm64': 4.16.2 + '@rollup/rollup-darwin-x64': 4.16.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.16.2 + '@rollup/rollup-linux-arm-musleabihf': 4.16.2 + '@rollup/rollup-linux-arm64-gnu': 4.16.2 + '@rollup/rollup-linux-arm64-musl': 4.16.2 + '@rollup/rollup-linux-powerpc64le-gnu': 4.16.2 + '@rollup/rollup-linux-riscv64-gnu': 4.16.2 + '@rollup/rollup-linux-s390x-gnu': 4.16.2 + '@rollup/rollup-linux-x64-gnu': 4.16.2 + '@rollup/rollup-linux-x64-musl': 4.16.2 + '@rollup/rollup-win32-arm64-msvc': 4.16.2 + '@rollup/rollup-win32-ia32-msvc': 4.16.2 + '@rollup/rollup-win32-x64-msvc': 4.16.2 fsevents: 2.3.3 /rope-sequence@1.3.4: @@ -16037,6 +21044,10 @@ packages: execa: 5.1.1 dev: false + /run-applescript@7.0.0: + resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} + engines: {node: '>=18'} + /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: @@ -16057,6 +21068,15 @@ packages: dependencies: mri: 1.2.0 + /safe-array-concat@1.0.0: + resolution: {integrity: sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + isarray: 2.0.5 + /safe-array-concat@1.1.2: resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} engines: {node: '>=0.4'} @@ -16068,11 +21088,17 @@ packages: /safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - dev: false /safe-buffer@5.2.1: resolution: {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 + /safe-regex-test@1.0.3: resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} engines: {node: '>= 0.4'} @@ -16110,12 +21136,15 @@ packages: /scroll-into-view-if-needed@3.1.0: resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==} dependencies: - compute-scroll-into-view: 3.1.0 + compute-scroll-into-view: 3.0.3 dev: false + /scule@1.0.0: + resolution: {integrity: sha512-4AsO/FrViE/iDNEPaAQlb77tf0csuq27EsVpy6ett584EcRTp6pTDLoGWVxCD77y5iU5FauOvhsI4o1APwPoSQ==} + dev: true + /scule@1.3.0: resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} - dev: false /section-matter@1.0.0: resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} @@ -16154,7 +21183,7 @@ packages: /sembear@0.5.2: resolution: {integrity: sha512-Ij1vCAdFgWABd7zTg50Xw1/p0JgESNxuLlneEAsmBrKishA06ulTTL/SHGmNy2Zud7+rKrHTKNI6moJsn1ppAQ==} dependencies: - '@types/semver': 6.2.7 + '@types/semver': 6.2.3 semver: 6.3.1 dev: false @@ -16167,6 +21196,13 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + /semver@7.6.0: resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} engines: {node: '>=10'} @@ -16194,11 +21230,10 @@ packages: transitivePeerDependencies: - supports-color - /serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + /serialize-javascript@6.0.1: + resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==} dependencies: randombytes: 2.1.0 - dev: false /seroval-plugins@1.0.5(seroval@1.0.5): resolution: {integrity: sha512-8+pDC1vOedPXjKG7oz8o+iiHrtF2WswaMQJ7CKFpccvSYfrzmvKY9zOJWCg+881722wIHfwkdnRmiiDm9ym+zQ==} @@ -16216,7 +21251,6 @@ packages: resolution: {integrity: sha512-rUzLlXk4uPFnbEaIz3SW8VISTxMuONas88nYWjAWaM2W9VDbt9tyFOr3lq8RhVOFrT3XISoBw8vni5una8qMnQ==} dependencies: defu: 6.1.4 - dev: false /serve-static@1.15.0: resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} @@ -16239,7 +21273,6 @@ packages: /set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - dev: false /set-cookie-parser@2.6.0: resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} @@ -16273,10 +21306,10 @@ packages: requiresBuild: true dependencies: color: 4.2.3 - detect-libc: 2.0.3 + detect-libc: 2.0.2 node-addon-api: 6.1.0 prebuild-install: 7.1.2 - semver: 7.6.0 + semver: 7.5.4 simple-get: 4.0.1 tar-fs: 3.0.5 tunnel-agent: 0.6.0 @@ -16308,11 +21341,11 @@ packages: /shell-quote@1.8.1: resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} - /shiki@0.14.7: - resolution: {integrity: sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==} + /shiki@0.14.3: + resolution: {integrity: sha512-U3S/a+b0KS+UkTyMjoNojvTgrBHjgp7L6ovhFVZsXmBGnVdQ4K4U9oK0z63w538S91ATngv1vXigHCSWOwnr+g==} dependencies: ansi-sequence-parser: 1.1.1 - jsonc-parser: 3.2.1 + jsonc-parser: 3.2.0 vscode-oniguruma: 1.7.0 vscode-textmate: 8.0.0 dev: false @@ -16333,6 +21366,13 @@ packages: shikiji-core: 0.9.19 dev: false + /side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + object-inspect: 1.12.3 + /side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} engines: {node: '>= 0.4'} @@ -16344,7 +21384,6 @@ packages: /siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - dev: false /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -16353,17 +21392,43 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} + /sigstore@2.3.0: + resolution: {integrity: sha512-q+o8L2ebiWD1AxD17eglf1pFrl9jtW7FHa0ygqY6EKvibK8JHyq9Z26v9MZXeDiw+RbfOJ9j2v70M10Hd6E06A==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + '@sigstore/bundle': 2.3.1 + '@sigstore/core': 1.1.0 + '@sigstore/protobuf-specs': 0.3.1 + '@sigstore/sign': 2.3.0 + '@sigstore/tuf': 2.3.2 + '@sigstore/verify': 1.2.0 + transitivePeerDependencies: + - supports-color + /simple-concat@1.0.1: resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + requiresBuild: true dev: false + optional: true /simple-get@4.0.1: resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + requiresBuild: true dependencies: decompress-response: 6.0.0 once: 1.4.0 simple-concat: 1.0.1 dev: false + optional: true + + /simple-git@3.24.0: + resolution: {integrity: sha512-QqAKee9Twv+3k8IFOFfPB2hnk6as6Y6ACUpwCtQvRYBAes23Wv3SZlHVobAzqcE8gfsisCvPw3HGW3HYM+VYYw==} + dependencies: + '@kwsites/file-exists': 1.1.1 + '@kwsites/promise-deferred': 1.1.1 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color /simple-swizzle@0.2.2: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} @@ -16391,19 +21456,21 @@ packages: /slash@4.0.0: resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} engines: {node: '>=12'} - dev: false /slash@5.1.0: resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} engines: {node: '>=14.16'} - dev: false + + /smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} /smartwrap@2.0.2: resolution: {integrity: sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA==} engines: {node: '>=6'} hasBin: true dependencies: - array.prototype.flat: 1.3.2 + array.prototype.flat: 1.3.1 breakword: 1.0.6 grapheme-splitter: 1.0.4 strip-ansi: 6.0.1 @@ -16411,9 +21478,8 @@ packages: yargs: 15.4.1 dev: false - /smob@1.5.0: - resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==} - dev: false + /smob@1.4.0: + resolution: {integrity: sha512-MqR3fVulhjWuRNSMydnTlweu38UhQ0HXM4buStD/S3mc/BzX3CuM9OmhyQpmtYCvoYdl5ris6TI0ZqH355Ymqg==} /snake-case@3.0.4: resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} @@ -16439,10 +21505,27 @@ packages: type-fest: 2.19.0 dev: false + /socks-proxy-agent@8.0.3: + resolution: {integrity: sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==} + engines: {node: '>= 14'} + dependencies: + agent-base: 7.1.1 + debug: 4.3.4 + socks: 2.7.1 + transitivePeerDependencies: + - supports-color + + /socks@2.7.1: + resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==} + engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} + dependencies: + ip: 2.0.0 + smart-buffer: 4.2.0 + /solid-js@1.8.16: resolution: {integrity: sha512-rja94MNU9flF3qQRLNsu60QHKBDKBkVE1DldJZPIfn2ypIn3NV2WpSbGTQIvsyGPBo+9E2IMjwqnqpbgfWuzeg==} dependencies: - csstype: 3.1.3 + csstype: 3.1.2 seroval: 1.0.5 seroval-plugins: 1.0.5(seroval@1.0.5) @@ -16498,6 +21581,10 @@ packages: is-plain-obj: 4.1.0 dev: false + /source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + /source-map-js@1.2.0: resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} @@ -16515,7 +21602,6 @@ packages: /source-map@0.7.4: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} engines: {node: '>= 8'} - dev: false /source-map@0.8.0-beta.0: resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} @@ -16547,35 +21633,43 @@ packages: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.17 - dev: false + spdx-license-ids: 3.0.13 - /spdx-exceptions@2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} - dev: false + /spdx-exceptions@2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} /spdx-expression-parse@3.0.1: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: - spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.17 - dev: false + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.13 - /spdx-license-ids@3.0.17: - resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} - dev: false + /spdx-license-ids@3.0.13: + resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==} + + /speakingurl@14.0.1: + resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} + engines: {node: '>=0.10.0'} /split2@4.2.0: resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} engines: {node: '>= 10.x'} + /splitpanes@3.1.5: + resolution: {integrity: sha512-r3Mq2ITFQ5a2VXLOy4/Sb2Ptp7OfEO8YIbhVJqJXoFc9hc5nTXXkCvtVDjIGbvC0vdE7tse+xTM9BMjsszP6bw==} + /sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} dev: false + /ssri@10.0.5: + resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + minipass: 7.0.3 + /stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - dev: false /stackframe@1.3.4: resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} @@ -16590,7 +21684,6 @@ packages: /standard-as-callback@2.1.0: resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} - dev: false /statuses@2.0.1: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} @@ -16598,7 +21691,6 @@ packages: /std-env@3.7.0: resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} - dev: false /stdin-discarder@0.1.0: resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} @@ -16615,7 +21707,7 @@ packages: /stream-transform@2.1.3: resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==} dependencies: - mixme: 0.5.10 + mixme: 0.5.9 dev: false /streamsearch@1.1.0: @@ -16624,13 +21716,11 @@ packages: /streamx@2.16.1: resolution: {integrity: sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==} - requiresBuild: true dependencies: fast-fifo: 1.3.2 queue-tick: 1.0.1 optionalDependencies: bare-events: 2.2.2 - dev: false /strict-event-emitter@0.5.1: resolution: {integrity: sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==} @@ -16687,6 +21777,14 @@ packages: set-function-name: 2.0.2 side-channel: 1.0.6 + /string.prototype.trim@1.2.7: + resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + /string.prototype.trim@1.2.9: resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} engines: {node: '>= 0.4'} @@ -16696,6 +21794,13 @@ packages: es-abstract: 1.23.3 es-object-atoms: 1.0.0 + /string.prototype.trimend@1.0.6: + resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + /string.prototype.trimend@1.0.8: resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} dependencies: @@ -16703,6 +21808,13 @@ packages: define-properties: 1.2.1 es-object-atoms: 1.0.0 + /string.prototype.trimstart@1.0.6: + resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + /string.prototype.trimstart@1.0.8: resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} engines: {node: '>= 0.4'} @@ -16715,15 +21827,14 @@ packages: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} dependencies: safe-buffer: 5.1.2 - dev: false /string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} dependencies: safe-buffer: 5.2.1 - /stringify-entities@4.0.4: - resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + /stringify-entities@4.0.3: + resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==} dependencies: character-entities-html4: 2.1.0 character-entities-legacy: 3.0.0 @@ -16771,7 +21882,6 @@ packages: /strip-final-newline@3.0.0: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} - dev: false /strip-indent@3.0.0: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} @@ -16792,20 +21902,18 @@ packages: resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} dependencies: acorn: 8.11.3 - dev: false /strip-literal@2.1.0: resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} dependencies: js-tokens: 9.0.0 - dev: false /style-mod@4.1.2: resolution: {integrity: sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==} dev: false - /style-to-object@0.4.4: - resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} + /style-to-object@0.4.2: + resolution: {integrity: sha512-1JGpfPB3lo42ZX8cuPrheZbfQ6kqPPnPHlKMyeRYtfKD+0jG+QsXgXN57O/dvJlzlB2elI6dGmrPnl5VPQFPaA==} dependencies: inline-style-parser: 0.1.1 dev: false @@ -16827,18 +21935,39 @@ packages: client-only: 0.0.1 react: 18.2.0 - /stylis@4.3.1: - resolution: {integrity: sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==} + /stylehacks@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.21.10 + postcss: 8.4.38 + postcss-selector-parser: 6.0.13 + dev: true + + /stylehacks@6.1.1(postcss@8.4.38): + resolution: {integrity: sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + browserslist: 4.23.0 + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + + /stylis@4.3.0: + resolution: {integrity: sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==} dev: false - /sucrase@3.35.0: - resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} - engines: {node: '>=16 || 14 >=14.17'} + /sucrase@3.34.0: + resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} + engines: {node: '>=8'} hasBin: true dependencies: - '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/gen-mapping': 0.3.3 commander: 4.1.1 - glob: 10.3.12 + glob: 7.1.6 lines-and-columns: 1.2.4 mz: 2.7.0 pirates: 4.0.6 @@ -16879,26 +22008,25 @@ packages: /supports-color@9.4.0: resolution: {integrity: sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==} engines: {node: '>=12'} - dev: false /supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - /svelte-check@3.6.9(@babel/core@7.24.4)(postcss-load-config@5.0.3)(postcss@8.4.38)(svelte@4.2.13): + /svelte-check@3.6.9(@babel/core@7.24.4)(postcss-load-config@5.0.3)(postcss@8.4.38)(svelte@4.2.15): resolution: {integrity: sha512-hDQrk3L0osX07djQyMiXocKysTLfusqi8AriNcCiQxhQR49/LonYolcUGMtZ0fbUR8HTR198Prrgf52WWU9wEg==} hasBin: true peerDependencies: svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 dependencies: - '@jridgewell/trace-mapping': 0.3.25 - chokidar: 3.6.0 - fast-glob: 3.3.2 + '@jridgewell/trace-mapping': 0.3.19 + chokidar: 3.5.3 + fast-glob: 3.3.1 import-fresh: 3.3.0 picocolors: 1.0.0 sade: 1.8.1 - svelte: 4.2.13 - svelte-preprocess: 5.1.3(@babel/core@7.24.4)(postcss-load-config@5.0.3)(postcss@8.4.38)(svelte@4.2.13)(typescript@5.4.5) + svelte: 4.2.15 + svelte-preprocess: 5.1.4(@babel/core@7.24.4)(postcss-load-config@5.0.3)(postcss@8.4.38)(svelte@4.2.15)(typescript@5.4.5) typescript: 5.4.5 transitivePeerDependencies: - '@babel/core' @@ -16928,18 +22056,18 @@ packages: postcss-scss: 4.0.9(postcss@8.4.38) dev: false - /svelte-hmr@0.16.0(svelte@4.2.13): + /svelte-hmr@0.16.0(svelte@4.2.15): resolution: {integrity: sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA==} engines: {node: ^12.20 || ^14.13.1 || >= 16} peerDependencies: svelte: ^3.19.0 || ^4.0.0 dependencies: - svelte: 4.2.13 + svelte: 4.2.15 dev: true - /svelte-preprocess@5.1.3(@babel/core@7.24.4)(postcss-load-config@5.0.3)(postcss@8.4.38)(svelte@4.2.13)(typescript@5.4.5): - resolution: {integrity: sha512-xxAkmxGHT+J/GourS5mVJeOXZzne1FR5ljeOUAMXUkfEhkLEllRreXpbl3dIYJlcJRfL1LO1uIAPpBpBfiqGPw==} - engines: {node: '>= 16.0.0', pnpm: ^8.0.0} + /svelte-preprocess@5.1.4(@babel/core@7.24.4)(postcss-load-config@5.0.3)(postcss@8.4.38)(svelte@4.2.15)(typescript@5.4.5): + resolution: {integrity: sha512-IvnbQ6D6Ao3Gg6ftiM5tdbR6aAETwjhHV+UKGf5bHGYR69RQvF1ho0JKPcbUON4vy4R7zom13jPjgdOWCQ5hDA==} + engines: {node: '>= 16.0.0'} requiresBuild: true peerDependencies: '@babel/core': ^7.10.2 @@ -16978,16 +22106,16 @@ packages: '@babel/core': 7.24.4 '@types/pug': 2.0.10 detect-indent: 6.1.0 - magic-string: 0.30.9 + magic-string: 0.30.10 postcss: 8.4.38 postcss-load-config: 5.0.3(postcss@8.4.38) sorcery: 0.11.0 strip-indent: 3.0.0 - svelte: 4.2.13 + svelte: 4.2.15 typescript: 5.4.5 dev: true - /svelte2tsx@0.7.6(svelte@4.2.13)(typescript@5.4.5): + /svelte2tsx@0.7.6(svelte@4.2.15)(typescript@5.4.5): resolution: {integrity: sha512-awHvYsakyiGjRqqSOhb2F+qJ6lUT9klQe0UQofAcdHNaKKeDHA8kEZ8zYKGG3BiDPurKYMGvH5/lZ+jeIoG7yQ==} peerDependencies: svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0 @@ -16995,30 +22123,59 @@ packages: dependencies: dedent-js: 1.0.1 pascal-case: 3.1.2 - svelte: 4.2.13 + svelte: 4.2.15 typescript: 5.4.5 dev: true - /svelte@4.2.13: - resolution: {integrity: sha512-jtVt2KXLbQnsWN93Zd7EVboNh8Tqexes4rZfXNP7nYRjd9+JjubTD8BXloUmU1OUYpc6pdd1aKBhCV+b2ZKoMg==} + /svelte@4.2.15: + resolution: {integrity: sha512-j9KJSccHgLeRERPlhMKrCXpk2TqL2m5Z+k+OBTQhZOhIdCCd3WfqV+ylPWeipEwq17P/ekiSFWwrVQv93i3bsg==} engines: {node: '>=16'} dependencies: - '@ampproject/remapping': 2.3.0 + '@ampproject/remapping': 2.2.1 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.25 - '@types/estree': 1.0.5 - acorn: 8.11.3 + '@jridgewell/trace-mapping': 0.3.19 + '@types/estree': 1.0.1 + acorn: 8.10.0 aria-query: 5.3.0 axobject-query: 4.0.0 code-red: 1.0.4 css-tree: 2.3.1 estree-walker: 3.0.3 - is-reference: 3.0.2 + is-reference: 3.0.1 locate-character: 3.0.0 - magic-string: 0.30.9 + magic-string: 0.30.10 periscopic: 3.1.0 dev: true + /svg-tags@1.0.0: + resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} + + /svgo@3.0.2: + resolution: {integrity: sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 5.1.0 + css-tree: 2.3.1 + csso: 5.0.5 + picocolors: 1.0.0 + dev: true + + /svgo@3.2.0: + resolution: {integrity: sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 5.1.0 + css-tree: 2.3.1 + css-what: 6.1.0 + csso: 5.0.5 + picocolors: 1.0.0 + /swr@2.2.0(react@18.2.0): resolution: {integrity: sha512-AjqHOv2lAhkuUdIiBu9xbuettzAzWXmCEcLONNKJRba87WAefz8Ca9d6ds/SzrPc235n1IxWYdhJ2zF3MNUaoQ==} peerDependencies: @@ -17041,10 +22198,12 @@ packages: /system-architecture@0.1.0: resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} engines: {node: '>=18'} - dev: false - /tailwind-merge@2.2.2: - resolution: {integrity: sha512-tWANXsnmJzgw6mQ07nE3aCDkCK4QdT3ThPMCzawoYA2Pws7vSTCvz3Vrjg61jVUGfFZPJzxEP+NimbcW+EdaDw==} + /tabbable@6.2.0: + resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} + + /tailwind-merge@2.3.0: + resolution: {integrity: sha512-vkYrLpIP+lgR0tQCG6AP7zZXCTLc1Lnv/CCRT3BqJ9CZ3ui2++GPaGb1x/ILsINIMSYqqvrpqjUFsMNLlW99EA==} dependencies: '@babel/runtime': 7.24.4 dev: false @@ -17063,10 +22222,10 @@ packages: dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 - chokidar: 3.6.0 + chokidar: 3.5.3 didyoumean: 1.2.2 dlv: 1.1.3 - fast-glob: 3.3.2 + fast-glob: 3.3.1 glob-parent: 6.0.2 is-glob: 4.0.3 jiti: 1.21.0 @@ -17078,27 +22237,28 @@ packages: postcss: 8.4.38 postcss-import: 15.1.0(postcss@8.4.38) postcss-js: 4.0.1(postcss@8.4.38) - postcss-load-config: 4.0.2(postcss@8.4.38) + postcss-load-config: 4.0.1(postcss@8.4.38) postcss-nested: 6.0.1(postcss@8.4.38) - postcss-selector-parser: 6.0.16 - resolve: 1.22.8 - sucrase: 3.35.0 + postcss-selector-parser: 6.0.13 + resolve: 1.22.4 + sucrase: 3.34.0 transitivePeerDependencies: - ts-node /tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} - dev: true /tar-fs@2.1.1: resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} + requiresBuild: true dependencies: chownr: 1.1.4 mkdirp-classic: 0.5.3 pump: 3.0.0 tar-stream: 2.2.0 dev: false + optional: true /tar-fs@3.0.5: resolution: {integrity: sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==} @@ -17107,14 +22267,15 @@ packages: pump: 3.0.0 tar-stream: 3.1.7 optionalDependencies: - bare-fs: 2.2.3 - bare-path: 2.1.1 + bare-fs: 2.3.0 + bare-path: 2.1.2 dev: false optional: true /tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} + requiresBuild: true dependencies: bl: 4.1.0 end-of-stream: 1.4.4 @@ -17122,6 +22283,7 @@ packages: inherits: 2.0.4 readable-stream: 3.6.2 dev: false + optional: true /tar-stream@3.1.7: resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} @@ -17129,7 +22291,17 @@ packages: b4a: 1.6.6 fast-fifo: 1.3.2 streamx: 2.16.1 - dev: false + + /tar@6.1.15: + resolution: {integrity: sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==} + engines: {node: '>=10'} + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 /tar@6.2.1: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} @@ -17141,7 +22313,6 @@ packages: minizlib: 2.1.2 mkdirp: 1.0.4 yallist: 4.0.0 - dev: false /term-size@2.2.1: resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} @@ -17158,16 +22329,15 @@ packages: solid-use: 0.8.0(solid-js@1.8.16) dev: false - /terser@5.30.3: - resolution: {integrity: sha512-STdUgOUx8rLbMGO9IOwHLpCqolkDITFFQSMYYwKE1N2lY6MVSaeoi10z/EhWxRc6ybqoVmKSkhKYH/XUpl7vSA==} + /terser@5.19.2: + resolution: {integrity: sha512-qC5+dmecKJA4cpYxRa5aVkKehYsQKc+AHeKl0Oe62aYjBL8ZA33tTljktDHJSaxxMnbI5ZYw+o/S2DxxLu8OfA==} engines: {node: '>=10'} hasBin: true dependencies: - '@jridgewell/source-map': 0.3.6 + '@jridgewell/source-map': 0.3.5 acorn: 8.11.3 commander: 2.20.3 source-map-support: 0.5.21 - dev: false /test-exclude@6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} @@ -17192,8 +22362,8 @@ packages: dependencies: any-promise: 1.3.0 - /thread-stream@2.4.1: - resolution: {integrity: sha512-d/Ex2iWd1whipbT681JmTINKw0ZwOUBZm7+Gjs64DHuX34mmw8vJL2bFAaNacaW72zYiTJxSHi5abUuOi5nsfg==} + /thread-stream@2.6.0: + resolution: {integrity: sha512-t4eNiKdGwd1EV6tx76mRbrOqwvkxz+ssOiQXEXw88m4p/Xp6679vg16sf39BAstRjHOiWIqp5+J2ylHk3pU30g==} dependencies: real-require: 0.2.0 @@ -17211,23 +22381,19 @@ packages: globrex: 0.1.2 dev: true - /tiny-invariant@1.3.3: - resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} - dev: false + /tiny-invariant@1.3.1: + resolution: {integrity: sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==} - /tinybench@2.6.0: - resolution: {integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==} - dev: false + /tinybench@2.8.0: + resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} - /tinypool@0.8.3: - resolution: {integrity: sha512-Ud7uepAklqRH1bvwy22ynrliC7Dljz7Tm8M/0RBUW+YRa4YHhZ6e4PpgE+fu1zr/WqB1kbeuVrdfeuyIBpy4tw==} + /tinypool@0.8.4: + resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} engines: {node: '>=14.0.0'} - dev: false /tinyspy@2.2.1: resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} engines: {node: '>=14.0.0'} - dev: false /tippy.js@6.3.7: resolution: {integrity: sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==} @@ -17322,12 +22488,11 @@ packages: /tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - dev: false /tr46@1.0.1: resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} dependencies: - punycode: 2.3.1 + punycode: 2.3.0 dev: true /tree-kill@1.2.2: @@ -17343,10 +22508,19 @@ packages: engines: {node: '>=8'} dev: false - /trough@2.2.0: - resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + /trough@2.1.0: + resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} dev: false + /ts-api-utils@1.0.1(typescript@5.4.5): + resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==} + engines: {node: '>=16.13.0'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.4.5 + dev: true + /ts-api-utils@1.3.0(typescript@5.4.5): resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} engines: {node: '>=16'} @@ -17437,20 +22611,20 @@ packages: typescript: optional: true dependencies: - bundle-require: 4.0.2(esbuild@0.19.12) + bundle-require: 4.0.1(esbuild@0.19.2) cac: 6.7.14 - chokidar: 3.6.0 + chokidar: 3.5.3 debug: 4.3.4 - esbuild: 0.19.12 + esbuild: 0.19.2 execa: 5.1.1 globby: 11.1.0 joycon: 3.1.1 postcss: 8.4.38 - postcss-load-config: 4.0.2(postcss@8.4.38) + postcss-load-config: 4.0.1(postcss@8.4.38) resolve-from: 5.0.0 - rollup: 4.14.1 + rollup: 4.16.2 source-map: 0.8.0-beta.0 - sucrase: 3.35.0 + sucrase: 3.34.0 tree-kill: 1.2.2 typescript: 5.4.5 transitivePeerDependencies: @@ -17469,8 +22643,8 @@ packages: fsevents: 2.3.3 dev: true - /tty-table@4.2.3: - resolution: {integrity: sha512-Fs15mu0vGzCrj8fmJNP7Ynxt5J7praPXqFN0leZeZBXJwkMxv9cb2D454k1ltrtUSJbZ4yH4e0CynsHLxmUfFA==} + /tty-table@4.2.1: + resolution: {integrity: sha512-xz0uKo+KakCQ+Dxj1D/tKn2FSyreSYWzdkL/BYhgN6oMW808g8QRMuh1atAV9fjTPbWBjfbkKQpI/5rEcnAc7g==} engines: {node: '>=8.0.0'} hasBin: true dependencies: @@ -17483,11 +22657,23 @@ packages: yargs: 17.7.2 dev: false + /tuf-js@2.2.0: + resolution: {integrity: sha512-ZSDngmP1z6zw+FIkIBjvOp/II/mIub/O7Pp12j1WNsiCpg5R5wAc//i555bBQsE44O94btLt0xM/Zr2LQjwdCg==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + '@tufjs/models': 2.0.0 + debug: 4.3.4 + make-fetch-happen: 13.0.0 + transitivePeerDependencies: + - supports-color + /tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + requiresBuild: true dependencies: safe-buffer: 5.2.1 dev: false + optional: true /tunnel-rat@0.1.2(@types/react@18.2.78)(react@18.2.0): resolution: {integrity: sha512-lR5VHmkPhzdhrM092lI2nACsLO4QubF0/yoOhzX7c+wIpbN1GjHNzCc91QlpxBi+cnx8vVJ+Ur6vL5cEoQPFpQ==} @@ -17568,7 +22754,6 @@ packages: /type-detect@4.0.8: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} - dev: false /type-fest@0.13.1: resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} @@ -17582,7 +22767,6 @@ packages: /type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} - dev: false /type-fest@0.6.0: resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} @@ -17604,13 +22788,12 @@ packages: engines: {node: '>=12.20'} dev: false - /type-fest@3.13.1: - resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} + /type-fest@3.11.1: + resolution: {integrity: sha512-aCuRNRERRVh33lgQaJRlUxZqzfhzwTrsE98Mc3o3VXqmiaQdHacgUtJ0esp+7MvZ92qhtzKPeusaX6vIEcoreA==} engines: {node: '>=14.16'} - dev: false - /type-fest@4.15.0: - resolution: {integrity: sha512-tB9lu0pQpX5KJq54g+oHOLumOx+pMep4RaM6liXh2PKmVRFF+/vAtUP0ZaJ0kOySfVNjF6doBWPHhBhISKdlIA==} + /type-fest@4.16.0: + resolution: {integrity: sha512-z7Rf5PXxIhbI6eJBTwdqe5bO02nUUmctq4WqviFSstBAWV0YNtEQRhEnZw73WJ8sZOqgFG6Jdl8gYZu7NBJZnA==} engines: {node: '>=16'} /type-is@1.6.18: @@ -17624,6 +22807,14 @@ packages: resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} 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 + /typed-array-buffer@1.0.2: resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} engines: {node: '>= 0.4'} @@ -17632,6 +22823,15 @@ packages: es-errors: 1.3.0 is-typed-array: 1.1.13 + /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 + /typed-array-byte-length@1.0.1: resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} engines: {node: '>= 0.4'} @@ -17642,6 +22842,16 @@ packages: has-proto: 1.0.3 is-typed-array: 1.1.13 + /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 + /typed-array-byte-offset@1.0.2: resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} engines: {node: '>= 0.4'} @@ -17653,6 +22863,13 @@ packages: has-proto: 1.0.3 is-typed-array: 1.1.13 + /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 + /typed-array-length@1.0.6: resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} engines: {node: '>= 0.4'} @@ -17676,17 +22893,66 @@ packages: /ufo@1.5.3: resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} + /ultrahtml@1.3.0: + resolution: {integrity: sha512-xmXvE8tC8t4PVqy0/g1fe7H9USY/Brr425q4dD/0QbQMQit7siCtb06+SCqE4GfU24nwsZz8Th1g7L7mm1lL5g==} + dev: false + /ultrahtml@1.5.3: resolution: {integrity: sha512-GykOvZwgDWZlTQMtp5jrD4BVL+gNn2NVlVafjcFUJ7taY20tqYdwdoWBFy6GBJsNTZe1GkGPkSl5knQAjtgceg==} - dev: false - /unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.7 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + + /unbuild@2.0.0(typescript@5.4.5): + resolution: {integrity: sha512-JWCUYx3Oxdzvw2J9kTAp+DKE8df/BnH/JTSj6JyA4SH40ECdFu7FoJJcrm8G92B7TjofQ6GZGjJs50TRxoH6Wg==} + hasBin: true + peerDependencies: + typescript: ^5.1.6 + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@rollup/plugin-alias': 5.0.0(rollup@3.29.4) + '@rollup/plugin-commonjs': 25.0.4(rollup@3.29.4) + '@rollup/plugin-json': 6.0.0(rollup@3.29.4) + '@rollup/plugin-node-resolve': 15.2.3(rollup@3.29.4) + '@rollup/plugin-replace': 5.0.2(rollup@3.29.4) + '@rollup/pluginutils': 5.0.3(rollup@3.29.4) + chalk: 5.3.0 + citty: 0.1.6 + consola: 3.2.3 + defu: 6.1.4 + esbuild: 0.19.2 + globby: 13.2.2 + hookable: 5.5.3 + jiti: 1.21.0 + magic-string: 0.30.10 + mkdist: 1.4.0(typescript@5.4.5) + mlly: 1.6.1 + pathe: 1.1.1 + pkg-types: 1.0.3 + pretty-bytes: 6.1.1 + rollup: 3.29.4 + rollup-plugin-dts: 6.1.0(rollup@3.29.4)(typescript@5.4.5) + scule: 1.0.0 + typescript: 5.4.5 + untyped: 1.4.0 + transitivePeerDependencies: + - sass + - supports-color + dev: true + + /unconfig@0.3.13: + resolution: {integrity: sha512-N9Ph5NC4+sqtcOjPfHrRcHekBCadCXWTBzp2VYYbySOHW0PfD9XLCeXshTXjkPYwLrBr9AtSeU0CZmkYECJhng==} dependencies: - call-bind: 1.0.7 - has-bigints: 1.0.2 - has-symbols: 1.0.3 - which-boxed-primitive: 1.0.2 + '@antfu/utils': 0.7.7 + defu: 6.1.4 + jiti: 1.21.0 /uncrypto@0.1.3: resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} @@ -17696,9 +22962,8 @@ packages: dependencies: acorn: 8.11.3 estree-walker: 3.0.3 - magic-string: 0.30.9 + magic-string: 0.30.10 unplugin: 1.10.1 - dev: false /undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} @@ -17713,9 +22978,9 @@ packages: dependencies: '@fastify/busboy': 2.1.1 - /undici@6.12.0: - resolution: {integrity: sha512-d87yk8lqSFUYtR5fTFe2frpkMIrUEz+lgoJmhcL+J3StVl+8fj8ytE4lLnJOTPCE12YbumNGzf4LYsQyusdV5g==} - engines: {node: '>=18.0'} + /undici@6.14.0: + resolution: {integrity: sha512-esJ/x2QU5boTG6thdA0o4qP3cv/oPx9mcQGcp8TAHI+ZBTa0EvM9Jiyp0ILdPGLGxs5HATTKrJqAK+YhrSFicg==} + engines: {node: '>=18.17'} dev: true /unenv@1.9.0: @@ -17725,16 +22990,15 @@ packages: defu: 6.1.4 mime: 3.0.0 node-fetch-native: 1.6.4 - pathe: 1.1.2 + pathe: 1.1.1 - /unhead@1.9.4: - resolution: {integrity: sha512-QVU0y3KowRu2cLjXxfemTKNohK4vdEwyahoszlEnRz0E5BTNRZQSs8AnommorGmVM7DvB2t4dwWadB51wDlPzw==} + /unhead@1.9.7: + resolution: {integrity: sha512-Kv7aU5l41qiq36t9qMks8Pgsj7adaTBm9aDS6USlmodTXioeqlJ5vEu9DI+8ZZPwRlmof3aDlo1kubyaXdSNmQ==} dependencies: - '@unhead/dom': 1.9.4 - '@unhead/schema': 1.9.4 - '@unhead/shared': 1.9.4 + '@unhead/dom': 1.9.7 + '@unhead/schema': 1.9.7 + '@unhead/shared': 1.9.7 hookable: 5.5.3 - dev: false /unherit@3.0.1: resolution: {integrity: sha512-akOOQ/Yln8a2sgcLj4U0Jmx0R5jpIg2IUyRrWOzmEbjBtGzBdHtSeFKgoEcoH4KYIG/Pb8GQ/BwtYm0GCq1Sqg==} @@ -17743,17 +23007,16 @@ packages: /unicorn-magic@0.1.0: resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} engines: {node: '>=18'} - dev: false /unified@10.1.2: resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} dependencies: - '@types/unist': 2.0.10 + '@types/unist': 2.0.7 bail: 2.0.2 extend: 3.0.2 is-buffer: 2.0.5 is-plain-obj: 4.1.0 - trough: 2.2.0 + trough: 2.1.0 vfile: 5.3.7 dev: false @@ -17765,20 +23028,20 @@ packages: devlop: 1.1.0 extend: 3.0.2 is-plain-obj: 4.1.0 - trough: 2.2.0 + trough: 2.1.0 vfile: 6.0.1 dev: false - /unimport@3.7.1(rollup@4.14.1): + /unimport@3.7.1(rollup@3.29.4): resolution: {integrity: sha512-V9HpXYfsZye5bPPYUgs0Otn3ODS1mDUciaBlXljI4C2fTwfFpvFZRywmlOu943puN9sncxROMZhsZCjNXEpzEQ==} dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.14.1) + '@rollup/pluginutils': 5.1.0(rollup@3.29.4) acorn: 8.11.3 escape-string-regexp: 5.0.0 estree-walker: 3.0.3 fast-glob: 3.3.2 local-pkg: 0.5.0 - magic-string: 0.30.9 + magic-string: 0.30.10 mlly: 1.6.1 pathe: 1.1.2 pkg-types: 1.0.3 @@ -17787,7 +23050,37 @@ packages: unplugin: 1.10.1 transitivePeerDependencies: - rollup - dev: false + + /unimport@3.7.1(rollup@4.16.2): + resolution: {integrity: sha512-V9HpXYfsZye5bPPYUgs0Otn3ODS1mDUciaBlXljI4C2fTwfFpvFZRywmlOu943puN9sncxROMZhsZCjNXEpzEQ==} + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.16.2) + acorn: 8.11.3 + escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 + fast-glob: 3.3.2 + local-pkg: 0.5.0 + magic-string: 0.30.10 + mlly: 1.6.1 + pathe: 1.1.2 + pkg-types: 1.0.3 + scule: 1.3.0 + strip-literal: 1.3.0 + unplugin: 1.10.1 + transitivePeerDependencies: + - rollup + + /unique-filename@3.0.0: + resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + unique-slug: 4.0.0 + + /unique-slug@4.0.0: + resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + imurmurhash: 0.1.4 /unist-util-find-after@5.0.0: resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} @@ -17803,7 +23096,7 @@ packages: /unist-util-is@5.2.1: resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} dependencies: - '@types/unist': 2.0.10 + '@types/unist': 2.0.7 dev: false /unist-util-is@6.0.0: @@ -17815,20 +23108,20 @@ packages: /unist-util-modify-children@3.1.1: resolution: {integrity: sha512-yXi4Lm+TG5VG+qvokP6tpnk+r1EPwyYL04JWDxLvgvPV40jANh7nm3udk65OOWquvbMDe+PL9+LmkxDpTv/7BA==} dependencies: - '@types/unist': 2.0.10 + '@types/unist': 2.0.7 array-iterate: 2.0.1 dev: false /unist-util-position-from-estree@1.1.2: resolution: {integrity: sha512-poZa0eXpS+/XpoQwGwl79UUdea4ol2ZuCYguVaJS4qzIOMDzbqz8a3erUCOmubSZkaOuGamb3tX790iwOIROww==} dependencies: - '@types/unist': 2.0.10 + '@types/unist': 2.0.7 dev: false /unist-util-position@4.0.4: resolution: {integrity: sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==} dependencies: - '@types/unist': 2.0.10 + '@types/unist': 2.0.7 dev: false /unist-util-position@5.0.0: @@ -17840,7 +23133,7 @@ packages: /unist-util-remove-position@4.0.2: resolution: {integrity: sha512-TkBb0HABNmxzAcfLf4qsIbFbaPDvMO6wa3b3j4VcEzFVaw1LBKwnW4/sRJ/atSLSzoIg41JWEdnE7N6DIhGDGQ==} dependencies: - '@types/unist': 2.0.10 + '@types/unist': 2.0.7 unist-util-visit: 4.1.2 dev: false @@ -17862,7 +23155,7 @@ packages: /unist-util-stringify-position@3.0.3: resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} dependencies: - '@types/unist': 2.0.10 + '@types/unist': 2.0.7 dev: false /unist-util-stringify-position@4.0.0: @@ -17874,20 +23167,20 @@ packages: /unist-util-visit-children@2.0.2: resolution: {integrity: sha512-+LWpMFqyUwLGpsQxpumsQ9o9DG2VGLFrpz+rpVXYIEdPy57GSy5HioC0g3bg/8WP9oCLlapQtklOzQ8uLS496Q==} dependencies: - '@types/unist': 2.0.10 + '@types/unist': 2.0.7 dev: false /unist-util-visit-parents@4.1.1: resolution: {integrity: sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==} dependencies: - '@types/unist': 2.0.10 + '@types/unist': 2.0.7 unist-util-is: 5.2.1 dev: false /unist-util-visit-parents@5.1.3: resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==} dependencies: - '@types/unist': 2.0.10 + '@types/unist': 2.0.7 unist-util-is: 5.2.1 dev: false @@ -17901,7 +23194,7 @@ packages: /unist-util-visit@3.1.0: resolution: {integrity: sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==} dependencies: - '@types/unist': 2.0.10 + '@types/unist': 2.0.7 unist-util-is: 5.2.1 unist-util-visit-parents: 4.1.1 dev: false @@ -17909,7 +23202,7 @@ packages: /unist-util-visit@4.1.2: resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} dependencies: - '@types/unist': 2.0.10 + '@types/unist': 2.0.7 unist-util-is: 5.2.1 unist-util-visit-parents: 5.1.3 dev: false @@ -17927,15 +23220,172 @@ packages: engines: {node: '>= 4.0.0'} dev: false - /universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + /universalify@2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} engines: {node: '>= 10.0.0'} - dev: false + + /unocss@0.59.4(postcss@8.4.38)(rollup@3.29.4)(vite@5.2.10): + resolution: {integrity: sha512-QmCVjRObvVu/gsGrJGVt0NnrdhFFn314BUZn2WQyXV9rIvHLRmG5bIu0j5vibJkj7ZhFchTrnTM1pTFXP1xt5g==} + engines: {node: '>=14'} + peerDependencies: + '@unocss/webpack': 0.59.4 + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 + peerDependenciesMeta: + '@unocss/webpack': + optional: true + vite: + optional: true + dependencies: + '@unocss/astro': 0.59.4(rollup@3.29.4)(vite@5.2.10) + '@unocss/cli': 0.59.4(rollup@3.29.4) + '@unocss/core': 0.59.4 + '@unocss/extractor-arbitrary-variants': 0.59.4 + '@unocss/postcss': 0.59.4(postcss@8.4.38) + '@unocss/preset-attributify': 0.59.4 + '@unocss/preset-icons': 0.59.4 + '@unocss/preset-mini': 0.59.4 + '@unocss/preset-tagify': 0.59.4 + '@unocss/preset-typography': 0.59.4 + '@unocss/preset-uno': 0.59.4 + '@unocss/preset-web-fonts': 0.59.4 + '@unocss/preset-wind': 0.59.4 + '@unocss/reset': 0.59.4 + '@unocss/transformer-attributify-jsx': 0.59.4 + '@unocss/transformer-attributify-jsx-babel': 0.59.4 + '@unocss/transformer-compile-class': 0.59.4 + '@unocss/transformer-directives': 0.59.4 + '@unocss/transformer-variant-group': 0.59.4 + '@unocss/vite': 0.59.4(rollup@3.29.4)(vite@5.2.10) + vite: 5.2.10(@types/node@20.12.7) + transitivePeerDependencies: + - postcss + - rollup + - supports-color + dev: true + + /unocss@0.59.4(postcss@8.4.38)(vite@5.2.10): + resolution: {integrity: sha512-QmCVjRObvVu/gsGrJGVt0NnrdhFFn314BUZn2WQyXV9rIvHLRmG5bIu0j5vibJkj7ZhFchTrnTM1pTFXP1xt5g==} + engines: {node: '>=14'} + peerDependencies: + '@unocss/webpack': 0.59.4 + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 + peerDependenciesMeta: + '@unocss/webpack': + optional: true + vite: + optional: true + dependencies: + '@unocss/astro': 0.59.4(vite@5.2.10) + '@unocss/cli': 0.59.4(rollup@3.29.4) + '@unocss/core': 0.59.4 + '@unocss/extractor-arbitrary-variants': 0.59.4 + '@unocss/postcss': 0.59.4(postcss@8.4.38) + '@unocss/preset-attributify': 0.59.4 + '@unocss/preset-icons': 0.59.4 + '@unocss/preset-mini': 0.59.4 + '@unocss/preset-tagify': 0.59.4 + '@unocss/preset-typography': 0.59.4 + '@unocss/preset-uno': 0.59.4 + '@unocss/preset-web-fonts': 0.59.4 + '@unocss/preset-wind': 0.59.4 + '@unocss/reset': 0.59.4 + '@unocss/transformer-attributify-jsx': 0.59.4 + '@unocss/transformer-attributify-jsx-babel': 0.59.4 + '@unocss/transformer-compile-class': 0.59.4 + '@unocss/transformer-directives': 0.59.4 + '@unocss/transformer-variant-group': 0.59.4 + '@unocss/vite': 0.59.4(rollup@3.29.4)(vite@5.2.10) + vite: 5.2.10(@types/node@20.12.7) + transitivePeerDependencies: + - postcss + - rollup + - supports-color /unpipe@1.0.0: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} + /unplugin-vue-router@0.7.0(rollup@3.29.4)(vue-router@4.3.2)(vue@3.4.24): + resolution: {integrity: sha512-ddRreGq0t5vlSB7OMy4e4cfU1w2AwBQCwmvW3oP/0IHQiokzbx4hd3TpwBu3eIAFVuhX2cwNQwp1U32UybTVCw==} + peerDependencies: + vue-router: ^4.1.0 + peerDependenciesMeta: + vue-router: + optional: true + dependencies: + '@babel/types': 7.24.0 + '@rollup/pluginutils': 5.1.0(rollup@3.29.4) + '@vue-macros/common': 1.10.2(rollup@3.29.4)(vue@3.4.24) + ast-walker-scope: 0.5.0(rollup@3.29.4) + chokidar: 3.6.0 + fast-glob: 3.3.1 + json5: 2.2.3 + local-pkg: 0.4.3 + mlly: 1.6.1 + pathe: 1.1.2 + scule: 1.3.0 + unplugin: 1.10.1 + vue-router: 4.3.2(vue@3.4.24) + yaml: 2.4.1 + transitivePeerDependencies: + - rollup + - vue + dev: true + + /unplugin-vue-router@0.7.0(rollup@4.16.2)(vue-router@4.3.2)(vue@3.4.24): + resolution: {integrity: sha512-ddRreGq0t5vlSB7OMy4e4cfU1w2AwBQCwmvW3oP/0IHQiokzbx4hd3TpwBu3eIAFVuhX2cwNQwp1U32UybTVCw==} + peerDependencies: + vue-router: ^4.1.0 + peerDependenciesMeta: + vue-router: + optional: true + dependencies: + '@babel/types': 7.24.0 + '@rollup/pluginutils': 5.1.0(rollup@4.16.2) + '@vue-macros/common': 1.10.2(rollup@4.16.2)(vue@3.4.24) + ast-walker-scope: 0.5.0(rollup@4.16.2) + chokidar: 3.6.0 + fast-glob: 3.3.1 + json5: 2.2.3 + local-pkg: 0.4.3 + mlly: 1.6.1 + pathe: 1.1.2 + scule: 1.3.0 + unplugin: 1.10.1 + vue-router: 4.3.2(vue@3.4.24) + yaml: 2.4.1 + transitivePeerDependencies: + - rollup + - vue + dev: true + + /unplugin-vue-router@0.7.0(vue-router@4.3.2)(vue@3.4.24): + resolution: {integrity: sha512-ddRreGq0t5vlSB7OMy4e4cfU1w2AwBQCwmvW3oP/0IHQiokzbx4hd3TpwBu3eIAFVuhX2cwNQwp1U32UybTVCw==} + peerDependencies: + vue-router: ^4.1.0 + peerDependenciesMeta: + vue-router: + optional: true + dependencies: + '@babel/types': 7.24.0 + '@rollup/pluginutils': 5.1.0(rollup@3.29.4) + '@vue-macros/common': 1.10.2(rollup@3.29.4)(vue@3.4.24) + ast-walker-scope: 0.5.0 + chokidar: 3.6.0 + fast-glob: 3.3.1 + json5: 2.2.3 + local-pkg: 0.4.3 + mlly: 1.6.1 + pathe: 1.1.2 + scule: 1.3.0 + unplugin: 1.10.1 + vue-router: 4.3.2(vue@3.4.24) + yaml: 2.4.1 + transitivePeerDependencies: + - rollup + - vue + dev: false + /unplugin@1.10.1: resolution: {integrity: sha512-d6Mhq8RJeGA8UfKCu54Um4lFA0eSaRa3XxdAJg8tIdxbu1ubW0hBCZUL7yI2uGyYCRndvbK8FLHzqy2XKfeMsg==} engines: {node: '>=14.0.0'} @@ -17944,7 +23394,6 @@ packages: chokidar: 3.6.0 webpack-sources: 3.2.3 webpack-virtual-modules: 0.6.1 - dev: false /unstorage@1.10.2(ioredis@5.3.2): resolution: {integrity: sha512-cULBcwDqrS8UhlIysUJs2Dk0Mmt8h7B0E6mtR+relW9nZvsf/u4SkAYyNliPiPW7XtFNb5u3IUMkxGxFTTRTgQ==} @@ -18003,7 +23452,6 @@ packages: ufo: 1.5.3 transitivePeerDependencies: - uWebSockets.js - dev: false /untildify@4.0.0: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} @@ -18017,18 +23465,56 @@ packages: citty: 0.1.6 consola: 3.2.3 pathe: 1.1.2 - dev: false + + /untyped@1.4.0: + resolution: {integrity: sha512-Egkr/s4zcMTEuulcIb7dgURS6QpN7DyqQYdf+jBtiaJvQ+eRsrtWUoX84SbvQWuLkXsOjM+8sJC9u6KoMK/U7Q==} + hasBin: true + dependencies: + '@babel/core': 7.22.10 + '@babel/standalone': 7.22.10 + '@babel/types': 7.22.10 + defu: 6.1.4 + jiti: 1.21.0 + mri: 1.2.0 + scule: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /untyped@1.4.2: + resolution: {integrity: sha512-nC5q0DnPEPVURPhfPQLahhSTnemVtPzdx7ofiRxXpOB2SYnb3MfdU3DVGyJdS8Lx+tBWeAePO8BfU/3EgksM7Q==} + hasBin: true + dependencies: + '@babel/core': 7.24.4 + '@babel/standalone': 7.24.4 + '@babel/types': 7.24.0 + defu: 6.1.4 + jiti: 1.21.0 + mri: 1.2.0 + scule: 1.3.0 + transitivePeerDependencies: + - supports-color /unwasm@0.3.9: resolution: {integrity: sha512-LDxTx/2DkFURUd+BU1vUsF/moj0JsoTvl+2tcg2AUOiEzVturhGGx17/IMgGvKUYdZwr33EJHtChCJuhu9Ouvg==} dependencies: knitwork: 1.1.0 - magic-string: 0.30.9 + magic-string: 0.30.10 mlly: 1.6.1 pathe: 1.1.2 pkg-types: 1.0.3 unplugin: 1.10.1 - dev: false + + /update-browserslist-db@1.0.11(browserslist@4.21.10): + resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.21.10 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true /update-browserslist-db@1.0.13(browserslist@4.23.0): resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} @@ -18037,21 +23523,19 @@ packages: browserslist: '>= 4.21.0' dependencies: browserslist: 4.23.0 - escalade: 3.1.2 + escalade: 3.1.1 picocolors: 1.0.0 /uqr@0.1.2: resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} - dev: false /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: - punycode: 2.3.1 + punycode: 2.3.0 /urlpattern-polyfill@8.0.2: resolution: {integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==} - dev: false /use-callback-ref@1.3.2(@types/react@18.2.78)(react@18.2.0): resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==} @@ -18104,12 +23588,22 @@ packages: /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + /util@0.12.5: + resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} + dependencies: + inherits: 2.0.4 + is-arguments: 1.1.1 + is-generator-function: 1.0.10 + is-typed-array: 1.1.12 + which-typed-array: 1.1.11 + dev: false + /utils-merge@1.0.1: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} - /uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + /uuid@9.0.0: + resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==} hasBin: true dev: false @@ -18119,20 +23613,11 @@ packages: hasBin: true dependencies: dequal: 2.0.3 - diff: 5.2.0 + diff: 5.1.0 kleur: 4.1.5 sade: 1.8.1 dev: false - /v8-to-istanbul@9.2.0: - resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} - engines: {node: '>=10.12.0'} - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - '@types/istanbul-lib-coverage': 2.0.6 - convert-source-map: 2.0.0 - dev: false - /validate-html-nesting@1.2.2: resolution: {integrity: sha512-hGdgQozCsQJMyfK5urgFcWEqsSSrK63Awe0t/IMR0bZ0QMtnuaiHzThW81guu3qx9abLi99NEuiaN6P9gVYsNg==} @@ -18141,7 +23626,6 @@ packages: dependencies: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - dev: false /validate-npm-package-name@3.0.0: resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==} @@ -18149,6 +23633,12 @@ packages: builtins: 1.0.3 dev: false + /validate-npm-package-name@5.0.0: + resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + builtins: 5.0.1 + /vary@1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} @@ -18163,7 +23653,7 @@ packages: /vfile-matter@3.0.1: resolution: {integrity: sha512-CAAIDwnh6ZdtrqAuxdElUqQRQDQgbbIrYtDYI8gCjXS1qQ+1XdLoK8FIZWxJwn0/I+BkSSZpar3SOgjemQz4fg==} dependencies: - '@types/js-yaml': 4.0.9 + '@types/js-yaml': 4.0.5 is-buffer: 2.0.5 js-yaml: 4.1.0 dev: false @@ -18171,7 +23661,7 @@ packages: /vfile-message@3.1.4: resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==} dependencies: - '@types/unist': 2.0.10 + '@types/unist': 2.0.7 unist-util-stringify-position: 3.0.3 dev: false @@ -18185,7 +23675,7 @@ packages: /vfile@5.3.7: resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} dependencies: - '@types/unist': 2.0.10 + '@types/unist': 2.0.7 is-buffer: 2.0.5 unist-util-stringify-position: 3.0.3 vfile-message: 3.1.4 @@ -18204,20 +23694,20 @@ packages: hasBin: true dependencies: '@babel/core': 7.24.4 - '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.4) - '@types/micromatch': 4.0.6 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.24.4) + '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.24.4) + '@types/micromatch': 4.0.7 '@vinxi/listhen': 1.5.6 boxen: 7.1.1 - chokidar: 3.6.0 + chokidar: 3.5.3 citty: 0.1.6 consola: 3.2.3 crossws: 0.2.4 dax-sh: 0.39.2 defu: 6.1.4 - es-module-lexer: 1.5.0 + es-module-lexer: 1.3.0 esbuild: 0.18.20 - fast-glob: 3.3.2 + fast-glob: 3.3.1 get-port-please: 3.1.2 h3: 1.11.1 hookable: 5.5.3 @@ -18225,8 +23715,8 @@ packages: micromatch: 4.0.5 nitropack: 2.9.6 node-fetch-native: 1.6.4 - path-to-regexp: 6.2.2 - pathe: 1.1.2 + path-to-regexp: 6.2.1 + pathe: 1.1.1 radix3: 1.1.2 resolve: 1.22.8 serve-placeholder: 2.0.1 @@ -18235,8 +23725,8 @@ packages: unctx: 2.3.1 unenv: 1.9.0 unstorage: 1.10.2(ioredis@5.3.2) - vite: 5.2.8(@types/node@20.12.7) - zod: 3.22.4 + vite: 5.2.10(@types/node@20.12.7) + zod: 3.23.0 transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -18263,34 +23753,166 @@ packages: - stylus - sugarss - supports-color - - terser - - uWebSockets.js - - xml2js - dev: false + - terser + - uWebSockets.js + - xml2js + dev: false + + /vite-hot-client@0.2.3(vite@5.2.10): + resolution: {integrity: sha512-rOGAV7rUlUHX89fP2p2v0A2WWvV3QMX2UYq0fRqsWSvFvev4atHWqjwGoKaZT1VTKyLGk533ecu3eyd0o59CAg==} + peerDependencies: + vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 + dependencies: + vite: 5.2.10(@types/node@20.12.7) + + /vite-node@1.5.0(@types/node@20.12.7): + resolution: {integrity: sha512-tV8h6gMj6vPzVCa7l+VGq9lwoJjW8Y79vst8QZZGiuRAfijU+EEWuc0kFpmndQrWhMMhet1jdSF+40KSZUqIIw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + dependencies: + cac: 6.7.14 + debug: 4.3.4 + pathe: 1.1.1 + picocolors: 1.0.0 + vite: 5.2.10(@types/node@20.12.7) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + + /vite-plugin-checker@0.6.4(eslint@8.57.0)(typescript@5.4.5)(vite@5.2.10): + resolution: {integrity: sha512-2zKHH5oxr+ye43nReRbC2fny1nyARwhxdm0uNYp/ERy4YvU9iZpNOsueoi/luXw5gnpqRSvjcEPxXbS153O2wA==} + engines: {node: '>=14.16'} + peerDependencies: + eslint: '>=7' + meow: ^9.0.0 + optionator: ^0.9.1 + stylelint: '>=13' + typescript: '*' + vite: '>=2.0.0' + vls: '*' + vti: '*' + vue-tsc: '>=1.3.9' + peerDependenciesMeta: + eslint: + optional: true + meow: + optional: true + optionator: + optional: true + stylelint: + optional: true + typescript: + optional: true + vls: + optional: true + vti: + optional: true + vue-tsc: + optional: true + dependencies: + '@babel/code-frame': 7.22.10 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + chokidar: 3.6.0 + commander: 8.3.0 + eslint: 8.57.0 + fast-glob: 3.3.1 + fs-extra: 11.2.0 + npm-run-path: 4.0.1 + semver: 7.5.4 + strip-ansi: 6.0.1 + tiny-invariant: 1.3.1 + typescript: 5.4.5 + vite: 5.2.10(@types/node@20.12.7) + vscode-languageclient: 7.0.0 + vscode-languageserver: 7.0.0 + vscode-languageserver-textdocument: 1.0.8 + vscode-uri: 3.0.7 + + /vite-plugin-inspect@0.7.38(vite@4.5.3): + resolution: {integrity: sha512-+p6pJVtBOLGv+RBrcKAFUdx+euizg0bjL35HhPyM0MjtKlqoC5V9xkCmO9Ctc8JrTyXqODbHqiLWJKumu5zJ7g==} + engines: {node: '>=14'} + peerDependencies: + '@nuxt/kit': '*' + vite: ^3.1.0 || ^4.0.0 + peerDependenciesMeta: + '@nuxt/kit': + optional: true + dependencies: + '@antfu/utils': 0.7.6 + '@rollup/pluginutils': 5.0.3(rollup@3.29.4) + debug: 4.3.4 + error-stack-parser-es: 0.1.1 + fs-extra: 11.1.1 + open: 9.1.0 + picocolors: 1.0.0 + sirv: 2.0.4 + vite: 4.5.3(@types/node@20.12.7) + transitivePeerDependencies: + - rollup + - supports-color + dev: false + + /vite-plugin-inspect@0.8.4(@nuxt/kit@3.11.2)(rollup@3.29.4)(vite@5.2.10): + resolution: {integrity: sha512-G0N3rjfw+AiiwnGw50KlObIHYWfulVwaCBUBLh2xTW9G1eM9ocE5olXkEYUbwyTmX+azM8duubi+9w5awdCz+g==} + engines: {node: '>=14'} + peerDependencies: + '@nuxt/kit': '*' + vite: ^3.1.0 || ^4.0.0 || ^5.0.0-0 + peerDependenciesMeta: + '@nuxt/kit': + optional: true + dependencies: + '@antfu/utils': 0.7.7 + '@nuxt/kit': 3.11.2(rollup@3.29.4) + '@rollup/pluginutils': 5.1.0(rollup@3.29.4) + debug: 4.3.4 + error-stack-parser-es: 0.1.1 + fs-extra: 11.2.0 + open: 10.1.0 + perfect-debounce: 1.0.0 + picocolors: 1.0.0 + sirv: 2.0.4 + vite: 5.2.10(@types/node@20.12.7) + transitivePeerDependencies: + - rollup + - supports-color + dev: true - /vite-node@1.4.0(@types/node@20.12.7): - resolution: {integrity: sha512-VZDAseqjrHgNd4Kh8icYHWzTKSCZMhia7GyHfhtzLW33fZlG9SwsB6CEhgyVOWkJfJ2pFLrp/Gj1FSfAiqH9Lw==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true + /vite-plugin-inspect@0.8.4(@nuxt/kit@3.11.2)(rollup@4.16.2)(vite@5.2.10): + resolution: {integrity: sha512-G0N3rjfw+AiiwnGw50KlObIHYWfulVwaCBUBLh2xTW9G1eM9ocE5olXkEYUbwyTmX+azM8duubi+9w5awdCz+g==} + engines: {node: '>=14'} + peerDependencies: + '@nuxt/kit': '*' + vite: ^3.1.0 || ^4.0.0 || ^5.0.0-0 + peerDependenciesMeta: + '@nuxt/kit': + optional: true dependencies: - cac: 6.7.14 + '@antfu/utils': 0.7.7 + '@nuxt/kit': 3.11.2(rollup@4.16.2) + '@rollup/pluginutils': 5.1.0(rollup@4.16.2) debug: 4.3.4 - pathe: 1.1.2 + error-stack-parser-es: 0.1.1 + fs-extra: 11.2.0 + open: 10.1.0 + perfect-debounce: 1.0.0 picocolors: 1.0.0 - vite: 5.2.8(@types/node@20.12.7) + sirv: 2.0.4 + vite: 5.2.10(@types/node@20.12.7) transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - stylus - - sugarss + - rollup - supports-color - - terser - dev: false + dev: true - /vite-plugin-inspect@0.7.42(vite@5.2.8): - resolution: {integrity: sha512-JCyX86wr3siQc+p9Kd0t8VkFHAJag0RaQVIpdFGSv5FEaePEVB6+V/RGtz2dQkkGSXQzRWrPs4cU3dRKg32bXw==} + /vite-plugin-inspect@0.8.4(@nuxt/kit@3.11.2)(vite@5.2.10): + resolution: {integrity: sha512-G0N3rjfw+AiiwnGw50KlObIHYWfulVwaCBUBLh2xTW9G1eM9ocE5olXkEYUbwyTmX+azM8duubi+9w5awdCz+g==} engines: {node: '>=14'} peerDependencies: '@nuxt/kit': '*' @@ -18300,20 +23922,22 @@ packages: optional: true dependencies: '@antfu/utils': 0.7.7 - '@rollup/pluginutils': 5.1.0(rollup@4.14.1) + '@nuxt/kit': 3.11.2 + '@rollup/pluginutils': 5.1.0(rollup@3.29.4) debug: 4.3.4 error-stack-parser-es: 0.1.1 fs-extra: 11.2.0 - open: 9.1.0 + open: 10.1.0 + perfect-debounce: 1.0.0 picocolors: 1.0.0 sirv: 2.0.4 - vite: 5.2.8(@types/node@20.12.7) + vite: 5.2.10(@types/node@20.12.7) transitivePeerDependencies: - rollup - supports-color dev: false - /vite-plugin-solid@2.9.1(solid-js@1.8.16)(vite@5.2.8): + /vite-plugin-solid@2.9.1(solid-js@1.8.16)(vite@4.5.3): resolution: {integrity: sha512-RC4hj+lbvljw57BbMGDApvEOPEh14lwrr/GeXRLNQLcR1qnOdzOwwTSFy13Gj/6FNIZpBEl0bWPU+VYFawrqUw==} peerDependencies: '@testing-library/jest-dom': ^5.16.6 || ^5.17.0 || ^6.* @@ -18329,12 +23953,30 @@ packages: merge-anything: 5.1.7 solid-js: 1.8.16 solid-refresh: 0.6.3(solid-js@1.8.16) - vite: 5.2.8(@types/node@20.12.7) - vitefu: 0.2.5(vite@5.2.8) + vite: 4.5.3(@types/node@20.12.7) + vitefu: 0.2.5(vite@4.5.3) transitivePeerDependencies: - supports-color dev: false + /vite-plugin-vue-inspector@4.0.2(vite@5.2.10): + resolution: {integrity: sha512-KPvLEuafPG13T7JJuQbSm5PwSxKFnVS965+MP1we2xGw9BPkkc/+LPix5MMWenpKWqtjr0ws8THrR+KuoDC8hg==} + peerDependencies: + vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/plugin-proposal-decorators': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.24.4) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.4) + '@babel/plugin-transform-typescript': 7.24.4(@babel/core@7.24.4) + '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.24.4) + '@vue/compiler-dom': 3.3.4 + kolorist: 1.8.0 + magic-string: 0.30.10 + vite: 5.2.10(@types/node@20.12.7) + transitivePeerDependencies: + - supports-color + /vite-tsconfig-paths@4.3.2(typescript@5.4.5): resolution: {integrity: sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA==} peerDependencies: @@ -18351,8 +23993,44 @@ packages: - typescript dev: false - /vite@5.2.8(@types/node@20.12.7): - resolution: {integrity: sha512-OyZR+c1CE8yeHw5V5t59aXsUPPVTHMDjEZz8MgguLL/Q7NblxhZUlTu9xSPqlsUO/y+X7dlU05jdhvyycD55DA==} + /vite@4.5.3(@types/node@20.12.7): + resolution: {integrity: sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 20.12.7 + esbuild: 0.18.20 + postcss: 8.4.38 + rollup: 3.29.4 + optionalDependencies: + fsevents: 2.3.3 + dev: false + + /vite@5.2.10(@types/node@20.12.7): + resolution: {integrity: sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -18382,11 +24060,22 @@ packages: '@types/node': 20.12.7 esbuild: 0.20.2 postcss: 8.4.38 - rollup: 4.14.1 + rollup: 4.16.2 optionalDependencies: fsevents: 2.3.3 - /vitefu@0.2.5(vite@5.2.8): + /vitefu@0.2.5(vite@4.5.3): + resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + vite: + optional: true + dependencies: + vite: 4.5.3(@types/node@20.12.7) + dev: false + + /vitefu@0.2.5(vite@5.2.10): resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} peerDependencies: vite: ^3.0.0 || ^4.0.0 || ^5.0.0 @@ -18394,17 +24083,40 @@ packages: vite: optional: true dependencies: - vite: 5.2.8(@types/node@20.12.7) + vite: 5.2.10(@types/node@20.12.7) + + /vitest-environment-nuxt@1.0.0(h3@1.11.1)(happy-dom@13.10.1)(rollup@3.29.4)(vite@5.2.10)(vitest@1.5.0)(vue-router@4.3.2)(vue@3.4.25): + resolution: {integrity: sha512-AWMO9h4HdbaFdPWZw34gALFI8gbBiOpvfbyeZwHIPfh4kWg/TwElYHvYMQ61WPUlCGaS5LebfHkaI0WPyb//Iw==} + dependencies: + '@nuxt/test-utils': 3.12.1(h3@1.11.1)(happy-dom@13.10.1)(rollup@3.29.4)(vite@5.2.10)(vitest@1.5.0)(vue-router@4.3.2)(vue@3.4.25) + transitivePeerDependencies: + - '@cucumber/cucumber' + - '@jest/globals' + - '@playwright/test' + - '@testing-library/vue' + - '@vitest/ui' + - '@vue/test-utils' + - h3 + - happy-dom + - jsdom + - playwright-core + - rollup + - supports-color + - vite + - vitest + - vue + - vue-router + dev: true - /vitest@1.4.0(@types/node@20.12.7)(happy-dom@13.10.1): - resolution: {integrity: sha512-gujzn0g7fmwf83/WzrDTnncZt2UiXP41mHuFYFrdwaLRVQ6JYQEiME2IfEjU3vcFL3VKa75XhI3lFgn+hfVsQw==} + /vitest@1.5.0(@types/node@20.12.7)(happy-dom@13.10.1): + resolution: {integrity: sha512-d8UKgR0m2kjdxDWX6911uwxout6GHS0XaGH1cksSIVVG8kRlE7G7aBw7myKQCvDI5dT4j7ZMa+l706BIORMDLw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 1.4.0 - '@vitest/ui': 1.4.0 + '@vitest/browser': 1.5.0 + '@vitest/ui': 1.5.0 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -18422,26 +24134,26 @@ packages: optional: true dependencies: '@types/node': 20.12.7 - '@vitest/expect': 1.4.0 - '@vitest/runner': 1.4.0 - '@vitest/snapshot': 1.4.0 - '@vitest/spy': 1.4.0 - '@vitest/utils': 1.4.0 + '@vitest/expect': 1.5.0 + '@vitest/runner': 1.5.0 + '@vitest/snapshot': 1.5.0 + '@vitest/spy': 1.5.0 + '@vitest/utils': 1.5.0 acorn-walk: 8.3.2 chai: 4.4.1 debug: 4.3.4 execa: 8.0.1 happy-dom: 13.10.1 local-pkg: 0.5.0 - magic-string: 0.30.9 - pathe: 1.1.2 + magic-string: 0.30.10 + pathe: 1.1.1 picocolors: 1.0.0 std-env: 3.7.0 strip-literal: 2.1.0 - tinybench: 2.6.0 - tinypool: 0.8.3 - vite: 5.2.8(@types/node@20.12.7) - vite-node: 1.4.0(@types/node@20.12.7) + tinybench: 2.8.0 + tinypool: 0.8.4 + vite: 5.2.10(@types/node@20.12.7) + vite-node: 1.5.0(@types/node@20.12.7) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -18451,7 +24163,36 @@ packages: - sugarss - supports-color - terser - dev: false + + /vscode-jsonrpc@6.0.0: + resolution: {integrity: sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==} + engines: {node: '>=8.0.0 || >=10.0.0'} + + /vscode-languageclient@7.0.0: + resolution: {integrity: sha512-P9AXdAPlsCgslpP9pRxYPqkNYV7Xq8300/aZDpO35j1fJm/ncize8iGswzYlcvFw5DQUx4eVk+KvfXdL0rehNg==} + engines: {vscode: ^1.52.0} + dependencies: + minimatch: 3.1.2 + semver: 7.6.0 + vscode-languageserver-protocol: 3.16.0 + + /vscode-languageserver-protocol@3.16.0: + resolution: {integrity: sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==} + dependencies: + vscode-jsonrpc: 6.0.0 + vscode-languageserver-types: 3.16.0 + + /vscode-languageserver-textdocument@1.0.8: + resolution: {integrity: sha512-1bonkGqQs5/fxGT5UchTgjGVnfysL0O8v1AYMBjqTbWQTFn721zaPGDYFkOKtfDgFiSgXM3KwaG3FMGfW4Ed9Q==} + + /vscode-languageserver-types@3.16.0: + resolution: {integrity: sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==} + + /vscode-languageserver@7.0.0: + resolution: {integrity: sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw==} + hasBin: true + dependencies: + vscode-languageserver-protocol: 3.16.0 /vscode-oniguruma@1.7.0: resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} @@ -18461,8 +24202,16 @@ packages: resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} dev: false - /vue-demi@0.14.7(vue@3.4.21): - resolution: {integrity: sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==} + /vscode-uri@3.0.7: + resolution: {integrity: sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==} + + /vue-bundle-renderer@2.0.0: + resolution: {integrity: sha512-oYATTQyh8XVkUWe2kaKxhxKVuuzK2Qcehe+yr3bGiaQAhK3ry2kYE4FWOfL+KO3hVFwCdLmzDQTzYhTi9C+R2A==} + dependencies: + ufo: 1.5.3 + + /vue-demi@0.14.5(vue@3.4.25): + resolution: {integrity: sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==} engines: {node: '>=12'} hasBin: true requiresBuild: true @@ -18473,28 +24222,160 @@ packages: '@vue/composition-api': optional: true dependencies: - vue: 3.4.21(typescript@5.4.5) + vue: 3.4.25(typescript@5.4.5) dev: false + /vue-demi@0.14.7(vue@3.4.24): + resolution: {integrity: sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + vue: 3.4.24(typescript@5.4.5) + + /vue-demi@0.14.7(vue@3.4.25): + resolution: {integrity: sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + vue: 3.4.25(typescript@5.4.5) + + /vue-devtools-stub@0.1.0: + resolution: {integrity: sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ==} + + /vue-observe-visibility@2.0.0-alpha.1(vue@3.4.24): + resolution: {integrity: sha512-flFbp/gs9pZniXR6fans8smv1kDScJ8RS7rEpMjhVabiKeq7Qz3D9+eGsypncjfIyyU84saU88XZ0zjbD6Gq/g==} + peerDependencies: + vue: ^3.0.0 + dependencies: + vue: 3.4.24(typescript@5.4.5) + + /vue-observe-visibility@2.0.0-alpha.1(vue@3.4.25): + resolution: {integrity: sha512-flFbp/gs9pZniXR6fans8smv1kDScJ8RS7rEpMjhVabiKeq7Qz3D9+eGsypncjfIyyU84saU88XZ0zjbD6Gq/g==} + peerDependencies: + vue: ^3.0.0 + dependencies: + vue: 3.4.25(typescript@5.4.5) + dev: true + + /vue-resize@2.0.0-alpha.1(vue@3.4.24): + resolution: {integrity: sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg==} + peerDependencies: + vue: ^3.0.0 + dependencies: + vue: 3.4.24(typescript@5.4.5) + + /vue-resize@2.0.0-alpha.1(vue@3.4.25): + resolution: {integrity: sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg==} + peerDependencies: + vue: ^3.0.0 + dependencies: + vue: 3.4.25(typescript@5.4.5) + dev: true + + /vue-router@4.3.2(vue@3.4.24): + resolution: {integrity: sha512-hKQJ1vDAZ5LVkKEnHhmm1f9pMiWIBNGF5AwU67PdH7TyXCj/a4hTccuUuYCAMgJK6rO/NVYtQIEN3yL8CECa7Q==} + peerDependencies: + vue: ^3.2.0 + dependencies: + '@vue/devtools-api': 6.6.1 + vue: 3.4.24(typescript@5.4.5) + + /vue-router@4.3.2(vue@3.4.25): + resolution: {integrity: sha512-hKQJ1vDAZ5LVkKEnHhmm1f9pMiWIBNGF5AwU67PdH7TyXCj/a4hTccuUuYCAMgJK6rO/NVYtQIEN3yL8CECa7Q==} + peerDependencies: + vue: ^3.2.0 + dependencies: + '@vue/devtools-api': 6.6.1 + vue: 3.4.25(typescript@5.4.5) + dev: true + /vue-sonner@1.1.2: resolution: {integrity: sha512-yg4f5s0a3oiiI7cNvO0Dajux1Y7s04lxww3vnQtnwQawJ3KqaKA9RIRMdI9wGTosRGIOwgYFniFRGl4+IuKPZw==} dev: false - /vue@3.4.21(typescript@5.4.5): - resolution: {integrity: sha512-5hjyV/jLEIKD/jYl4cavMcnzKwjMKohureP8ejn3hhEjwhWIhWeuzL2kJAjzl/WyVsgPY56Sy4Z40C3lVshxXA==} + /vue-template-compiler@2.7.14: + resolution: {integrity: sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==} + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + dev: true + + /vue-tsc@2.0.14(typescript@5.4.5): + resolution: {integrity: sha512-DgAO3U1cnCHOUO7yB35LENbkapeRsBZ7Ugq5hGz/QOHny0+1VQN8eSwSBjYbjLVPfvfw6EY7sNPjbuHHUhckcg==} + hasBin: true + peerDependencies: + typescript: '*' + dependencies: + '@volar/typescript': 2.2.0-alpha.10 + '@vue/language-core': 2.0.14(typescript@5.4.5) + semver: 7.5.4 + typescript: 5.4.5 + dev: true + + /vue-virtual-scroller@2.0.0-beta.8(vue@3.4.24): + resolution: {integrity: sha512-b8/f5NQ5nIEBRTNi6GcPItE4s7kxNHw2AIHLtDp+2QvqdTjVN0FgONwX9cr53jWRgnu+HRLPaWDOR2JPI5MTfQ==} + peerDependencies: + vue: ^3.2.0 + dependencies: + mitt: 2.1.0 + vue: 3.4.24(typescript@5.4.5) + vue-observe-visibility: 2.0.0-alpha.1(vue@3.4.24) + vue-resize: 2.0.0-alpha.1(vue@3.4.24) + + /vue-virtual-scroller@2.0.0-beta.8(vue@3.4.25): + resolution: {integrity: sha512-b8/f5NQ5nIEBRTNi6GcPItE4s7kxNHw2AIHLtDp+2QvqdTjVN0FgONwX9cr53jWRgnu+HRLPaWDOR2JPI5MTfQ==} + peerDependencies: + vue: ^3.2.0 + dependencies: + mitt: 2.1.0 + vue: 3.4.25(typescript@5.4.5) + vue-observe-visibility: 2.0.0-alpha.1(vue@3.4.25) + vue-resize: 2.0.0-alpha.1(vue@3.4.25) + dev: true + + /vue@3.4.24(typescript@5.4.5): + resolution: {integrity: sha512-NPdx7dLGyHmKHGRRU5bMRYVE+rechR+KDU5R2tSTNG36PuMwbfAJ+amEvOAw7BPfZp5sQulNELSLm5YUkau+Sg==} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@vue/compiler-dom': 3.4.21 - '@vue/compiler-sfc': 3.4.21 - '@vue/runtime-dom': 3.4.21 - '@vue/server-renderer': 3.4.21(vue@3.4.21) - '@vue/shared': 3.4.21 + '@vue/compiler-dom': 3.4.24 + '@vue/compiler-sfc': 3.4.24 + '@vue/runtime-dom': 3.4.24 + '@vue/server-renderer': 3.4.24(vue@3.4.24) + '@vue/shared': 3.4.24 + typescript: 5.4.5 + + /vue@3.4.25(typescript@5.4.5): + resolution: {integrity: sha512-HWyDqoBHMgav/OKiYA2ZQg+kjfMgLt/T0vg4cbIF7JbXAjDexRf5JRg+PWAfrAkSmTd2I8aPSXtooBFWHB98cg==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@vue/compiler-dom': 3.4.25 + '@vue/compiler-sfc': 3.4.25 + '@vue/runtime-dom': 3.4.25 + '@vue/server-renderer': 3.4.25(vue@3.4.25) + '@vue/shared': 3.4.25 typescript: 5.4.5 - dev: false /w3c-keyname@2.2.8: resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} @@ -18524,13 +24405,18 @@ packages: resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} dev: false + /web-streams-polyfill@3.3.3: + resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} + engines: {node: '>= 8'} + dev: false + /web-streams-polyfill@4.0.0-beta.3: resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==} engines: {node: '>= 14'} dev: false - /web-worker@1.3.0: - resolution: {integrity: sha512-BSR9wyRsy/KOValMgd5kMyr3JzpdeoR9KVId8u5GVlTTAtNChlsE4yTxeY7zMdNSyOmoKBv8NH2qeRY9Tg+IaA==} + /web-worker@1.2.0: + resolution: {integrity: sha512-PgF341avzqyx60neE9DD+XS26MMNMoUQRz9NOZwW32nPQrF6p77f1htcnjBSEV8BGMKZ16choqUG4hyI0Hx7mA==} dev: false /webcrypto-core@1.7.9: @@ -18545,7 +24431,6 @@ packages: /webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - dev: false /webidl-conversions@4.0.2: resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} @@ -18554,28 +24439,46 @@ packages: /webidl-conversions@7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} - dev: false + + /webpack-bundle-analyzer@4.10.1: + resolution: {integrity: sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==} + engines: {node: '>= 10.13.0'} + hasBin: true + dependencies: + '@discoveryjs/json-ext': 0.5.7 + acorn: 8.11.3 + acorn-walk: 8.3.2 + commander: 7.2.0 + debounce: 1.2.1 + escape-string-regexp: 4.0.0 + gzip-size: 6.0.0 + html-escaper: 2.0.2 + is-plain-object: 5.0.0 + opener: 1.5.2 + picocolors: 1.0.0 + sirv: 2.0.4 + ws: 7.5.9 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: true /webpack-sources@3.2.3: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} - dev: false /webpack-virtual-modules@0.6.1: resolution: {integrity: sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==} - dev: false /whatwg-mimetype@3.0.0: resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} engines: {node: '>=12'} - dev: false /whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 - dev: false /whatwg-url@7.1.0: resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} @@ -18598,8 +24501,8 @@ packages: resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} engines: {node: '>= 0.4'} dependencies: - function.prototype.name: 1.1.6 - has-tostringtag: 1.0.2 + function.prototype.name: 1.1.5 + has-tostringtag: 1.0.0 is-async-function: 2.0.0 is-date-object: 1.0.5 is-finalizationregistry: 1.0.2 @@ -18609,7 +24512,7 @@ packages: isarray: 2.0.5 which-boxed-primitive: 1.0.2 which-collection: 1.0.2 - which-typed-array: 1.1.15 + which-typed-array: 1.1.11 /which-collection@1.0.2: resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} @@ -18645,6 +24548,16 @@ 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 + /which-typed-array@1.1.15: resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} engines: {node: '>= 0.4'} @@ -18669,13 +24582,19 @@ packages: dependencies: isexe: 2.0.0 + /which@3.0.1: + resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true + dependencies: + isexe: 2.0.0 + /which@4.0.0: resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} engines: {node: ^16.13.0 || >=18.0.0} hasBin: true dependencies: isexe: 3.1.1 - dev: false /why-is-node-running@2.2.2: resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} @@ -18684,13 +24603,11 @@ packages: dependencies: siginfo: 2.0.0 stackback: 0.0.2 - dev: false /wide-align@1.1.5: resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} dependencies: string-width: 4.2.3 - dev: false /widest-line@4.0.1: resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} @@ -18716,8 +24633,8 @@ packages: '@cloudflare/workerd-windows-64': 1.20240405.0 dev: true - /wrangler@3.49.0(@cloudflare/workers-types@4.20240405.0): - resolution: {integrity: sha512-j+TfMxZ2CCMJtoipoLaWOjNlLoOyR5/W9Cdl4w7XBLh765SerAh71IiqvQMlgUNfIhz+/esvTjRWZ/3q8Qco3g==} + /wrangler@3.51.2(@cloudflare/workers-types@4.20240419.0): + resolution: {integrity: sha512-8TRUwzPHj6+uPDzY0hBJ9/YwniEF9pqMGe5qbqLP/XsHTCWxIFib5go374zyCkmuVh23AwV7NuTA6gUtSqZ8pQ==} engines: {node: '>=16.17.0'} hasBin: true peerDependencies: @@ -18727,15 +24644,15 @@ packages: optional: true dependencies: '@cloudflare/kv-asset-handler': 0.3.1 - '@cloudflare/workers-types': 4.20240405.0 + '@cloudflare/workers-types': 4.20240419.0 '@esbuild-plugins/node-globals-polyfill': 0.2.3(esbuild@0.17.19) '@esbuild-plugins/node-modules-polyfill': 0.2.2(esbuild@0.17.19) blake3-wasm: 2.1.5 - chokidar: 3.6.0 + chokidar: 3.5.3 esbuild: 0.17.19 - miniflare: 3.20240405.0 - nanoid: 3.3.7 - path-to-regexp: 6.2.2 + miniflare: 3.20240405.2 + nanoid: 3.3.6 + path-to-regexp: 6.2.1 resolve: 1.22.8 resolve.exports: 2.0.2 selfsigned: 2.4.1 @@ -18778,6 +24695,32 @@ packages: /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + /ws@7.5.9: + resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: true + + /ws@8.13.0: + resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: true + /ws@8.16.0: resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} engines: {node: '>=10.0.0'} @@ -18789,13 +24732,12 @@ packages: optional: true utf-8-validate: optional: true - dev: true /xxhash-wasm@1.0.2: resolution: {integrity: sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==} dev: true - /y-codemirror.next@0.3.3(@codemirror/state@6.4.1)(@codemirror/view@6.26.2)(yjs@13.6.14): + /y-codemirror.next@0.3.3(@codemirror/state@6.4.1)(@codemirror/view@6.26.3)(yjs@13.6.15): resolution: {integrity: sha512-rlL/Ax01Ul7W09L75tiV3R03+qJTYYfjy08AeiETtvFVFDUt+yNkvBvI50Kw3Z1Ypn1J+CEPTuFykHD0iwVo2Q==} peerDependencies: '@codemirror/state': ^6.0.0 @@ -18803,9 +24745,9 @@ packages: yjs: ^13.5.6 dependencies: '@codemirror/state': 6.4.1 - '@codemirror/view': 6.26.2 + '@codemirror/view': 6.26.3 lib0: 0.2.93 - yjs: 13.6.14 + yjs: 13.6.15 dev: false /y18n@4.0.3: @@ -18870,15 +24812,15 @@ packages: engines: {node: '>=12'} dependencies: cliui: 8.0.1 - escalade: 3.1.2 + escalade: 3.1.1 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 - /yjs@13.6.14: - resolution: {integrity: sha512-D+7KcUr0j+vBCUSKXXEWfA+bG4UQBviAwP3gYBhkstkgwy5+8diOPMx0iqLIOxNo/HxaREUimZRxqHGAHCL2BQ==} + /yjs@13.6.15: + resolution: {integrity: sha512-moFv4uNYhp8BFxIk3AkpoAnnjts7gwdpiG8RtyFiKbMtxKCS0zVZ5wPaaGpwC3V2N/K8TK8MwtSI3+WO9CHWjQ==} engines: {node: '>=16.0.0', npm: '>=8.0.0'} dependencies: lib0: 0.2.93 @@ -18891,7 +24833,6 @@ packages: /yocto-queue@1.0.0: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} - dev: false /youch@3.3.3: resolution: {integrity: sha512-qSFXUk3UZBLfggAW3dJKg0BMblG5biqSF8M34E06o5CSsZtH92u9Hqmj2RzGiHDi64fhe83+4tENFP2DB6t6ZA==} @@ -18903,7 +24844,6 @@ packages: /zhead@2.2.4: resolution: {integrity: sha512-8F0OI5dpWIA5IGG5NHUg9staDwz/ZPxZtvGVf01j7vHqSyZ0raHY+78atOVxRqb73AotX22uV1pXt3gYSstGag==} - dev: false /zip-stream@6.0.1: resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} @@ -18912,18 +24852,17 @@ packages: archiver-utils: 5.0.2 compress-commons: 6.0.2 readable-stream: 4.5.2 - dev: false - /zod-to-json-schema@3.22.5(zod@3.22.4): + /zod-to-json-schema@3.22.5(zod@3.23.0): resolution: {integrity: sha512-+akaPo6a0zpVCCseDed504KBJUQpEW5QZw7RMneNmKw+fGaML1Z9tUNLnHHAC8x6dzVRO1eB2oEMyZRnuBZg7Q==} peerDependencies: zod: ^3.22.4 dependencies: - zod: 3.22.4 + zod: 3.23.0 dev: false - /zod@3.22.4: - resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} + /zod@3.23.0: + resolution: {integrity: sha512-OFLT+LTocvabn6q76BTwVB0hExEBS0IduTr3cqZyMqEDbOnYmcU+y0tUAYbND4uwclpBGi4I4UUBGzylWpjLGA==} /zustand@4.5.2(@types/react@18.2.78)(react@18.2.0): resolution: {integrity: sha512-2cN1tPkDVkwCy5ickKrI7vijSjPksFRfqS6237NzT0vqSsztTNnQdHw9mmN7uBdk3gceVXU0a+21jFzFzAc9+g==} diff --git a/tooling/tsconfig/base.build.json b/tooling/tsconfig/base.build.json index 5d85c28c7..5bec99865 100644 --- a/tooling/tsconfig/base.build.json +++ b/tooling/tsconfig/base.build.json @@ -9,6 +9,8 @@ "resolveJsonModule": true, "moduleDetection": "force", "isolatedModules": true, + "noErrorTruncation": true, + "exactOptionalPropertyTypes": true, /* Strictness */ "strict": true, diff --git a/turbo.json b/turbo.json index 669cf1b5d..c2e67eec4 100644 --- a/turbo.json +++ b/turbo.json @@ -1,6 +1,6 @@ { "$schema": "https://turbo.build/schema.json", - "experimentalUI": true, + "experimentalUI": false, "globalDependencies": ["**/.env.*local"], "pipeline": { "topo": { From 32800eb7d02543d192afc830636315e483aa3e78 Mon Sep 17 00:00:00 2001 From: juliusmarminge Date: Sun, 12 May 2024 10:34:52 +0200 Subject: [PATCH 40/50] fix dupe --- packages/shared/src/component-utils.ts | 60 +++++++++++--------------- 1 file changed, 24 insertions(+), 36 deletions(-) diff --git a/packages/shared/src/component-utils.ts b/packages/shared/src/component-utils.ts index 43fac0e5d..8f8e17db5 100644 --- a/packages/shared/src/component-utils.ts +++ b/packages/shared/src/component-utils.ts @@ -24,14 +24,34 @@ export const generateClientDropzoneAccept = (fileTypes: string[]) => { return Object.fromEntries(mimeTypes.map((type) => [type, []])); }; +export type FileWithState = File & + ( + | { + status: "pending"; + key: null; + } + | { + status: "uploading" | "uploaded"; + key: string; + } + ); + export function getFilesFromClipboardEvent(event: ClipboardEvent) { const dataTransferItems = event.clipboardData?.items; if (!dataTransferItems) return; - const files = Array.from(dataTransferItems).reduce((acc, curr) => { - const f = curr.getAsFile(); - return f ? [...acc, f] : acc; - }, []); + const files = Array.from(dataTransferItems).reduce( + (acc, curr) => { + const f = curr.getAsFile(); + if (!f) return acc; + const fileWithState = Object.assign(f, { + status: "pending" as const, + key: null, + }); + return [...acc, fileWithState]; + }, + [], + ); return files; } @@ -178,35 +198,3 @@ export const contentFieldToContent = ( return result; } }; - -export type FileWithState = File & - ( - | { - status: "pending"; - key: null; - } - | { - status: "uploading" | "uploaded"; - key: string; - } - ); - -export function getFilesFromClipboardEvent(event: ClipboardEvent) { - const dataTransferItems = event.clipboardData?.items; - if (!dataTransferItems) return; - - const files = Array.from(dataTransferItems).reduce( - (acc, curr) => { - const f = curr.getAsFile(); - if (!f) return acc; - const fileWithState = Object.assign(f, { - status: "pending" as const, - key: null, - }); - return [...acc, fileWithState]; - }, - [], - ); - - return files; -} From 6c906dc1653aaafbeb10b34b693655311872c8b8 Mon Sep 17 00:00:00 2001 From: juliusmarminge Date: Sun, 12 May 2024 10:41:02 +0200 Subject: [PATCH 41/50] fix some types --- packages/uploadthing/src/client.ts | 10 +++++----- packages/uploadthing/src/types.ts | 4 +++- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/packages/uploadthing/src/client.ts b/packages/uploadthing/src/client.ts index 7ba075218..357cf1afb 100644 --- a/packages/uploadthing/src/client.ts +++ b/packages/uploadthing/src/client.ts @@ -52,7 +52,7 @@ export { /** @public */ generatePermittedFileTypes, /** @public */ - bytesToHumanReadable, + bytesToFileSize, } from "@uploadthing/shared"; /** @@ -82,11 +82,11 @@ export const isValidFileSize = ( routeConfig: ExpandedRouteConfig, ) => { try { - const type = Effect.runSync( - getTypeFromFileName(file.name, objectKeys(routeConfig)), - ); const maxFileSize = Effect.runSync( - fileSizeToBytes(routeConfig[type]!.maxFileSize), + Effect.flatMap( + getTypeFromFileName(file.name, objectKeys(routeConfig)), + (type) => fileSizeToBytes(routeConfig[type]!.maxFileSize), + ), ); return file.size <= maxFileSize; } catch { diff --git a/packages/uploadthing/src/types.ts b/packages/uploadthing/src/types.ts index 87a3015a9..fbf966bd0 100644 --- a/packages/uploadthing/src/types.ts +++ b/packages/uploadthing/src/types.ts @@ -57,7 +57,9 @@ export type UploadFilesOptions< /** * Called when the upload is complete */ - onUploadComplete?: (res: ClientUploadedFileData) => void; + onUploadComplete?: + | ((res: ClientUploadedFileData) => void) + | undefined; /** * URL to the UploadThing API endpoint * @example URL { http://localhost:3000/api/uploadthing } From a9431a7508bd2c498a7f8fca1f72f3abdbfd9efe Mon Sep 17 00:00:00 2001 From: juliusmarminge Date: Sun, 12 May 2024 10:49:31 +0200 Subject: [PATCH 42/50] fix more --- packages/dropzone/package.json | 1 + packages/dropzone/src/core.ts | 6 +++++- packages/dropzone/src/vue.ts | 14 ++++++++------ pnpm-lock.yaml | 3 +++ 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/packages/dropzone/package.json b/packages/dropzone/package.json index 9710aad00..cd53acda4 100644 --- a/packages/dropzone/package.json +++ b/packages/dropzone/package.json @@ -76,6 +76,7 @@ }, "dependencies": { "@uploadthing/shared": "workspace:*", + "effect": "^3.1.0", "file-selector": "^0.6.0" }, "devDependencies": { diff --git a/packages/dropzone/src/core.ts b/packages/dropzone/src/core.ts index cfaffbcce..48e12585b 100644 --- a/packages/dropzone/src/core.ts +++ b/packages/dropzone/src/core.ts @@ -4,6 +4,7 @@ * See original source here: https://github.com/react-dropzone/react-dropzone * The original package is licensed under the MIT license. */ +import * as E from "effect/Effect"; import type { ExpandedRouteConfig, FileWithState } from "@uploadthing/shared"; import { @@ -177,7 +178,10 @@ export const routeConfigToDropzoneProps = ( // Don't think it makes sense to have a minFileCount since they can select many times // acc.minFiles = Math.min(acc.minFiles, curr.minFileCount); acc.maxFiles = Math.max(acc.maxFiles, curr.maxFileCount); - acc.maxSize = Math.max(acc.maxSize, fileSizeToBytes(curr.maxFileSize)); + acc.maxSize = Math.max( + acc.maxSize, + E.runSync(fileSizeToBytes(curr.maxFileSize)), + ); return acc; }, { maxFiles: 0, maxSize: 0 }, diff --git a/packages/dropzone/src/vue.ts b/packages/dropzone/src/vue.ts index cfd6ed48f..3ea644305 100644 --- a/packages/dropzone/src/vue.ts +++ b/packages/dropzone/src/vue.ts @@ -11,7 +11,6 @@ import { } from "vue"; import { - acceptPropAsAcceptAttr, allFilesAccepted, initialState, isEnterOrSpace, @@ -22,6 +21,7 @@ import { isValidQuantity, isValidSize, noop, + routeConfigToDropzoneProps, } from "./core"; import type { DropzoneOptions } from "./types"; @@ -45,8 +45,8 @@ export function useDropzone(options: DropzoneOptions) { }, ); - const acceptAttr = computed(() => - acceptPropAsAcceptAttr(optionsRef.value.accept), + const routeProps = computed(() => + routeConfigToDropzoneProps(optionsRef.value.routeConfig), ); const rootRef = ref(); @@ -108,7 +108,7 @@ export function useDropzone(options: DropzoneOptions) { fileCount > 0 && allFilesAccepted({ files: files as File[], - accept: acceptAttr.value!, + accept: routeProps.value.accept, minSize: optionsRef.value.minSize, maxSize: optionsRef.value.maxSize, multiple: optionsRef.value.multiple, @@ -169,7 +169,7 @@ export function useDropzone(options: DropzoneOptions) { const acceptedFiles: File[] = []; files.forEach((file) => { - const accepted = isFileAccepted(file, acceptAttr.value!); + const accepted = isFileAccepted(file, routeProps.value.accept); const sizeMatch = isValidSize( file, optionsRef.value.minSize, @@ -191,7 +191,9 @@ export function useDropzone(options: DropzoneOptions) { acceptedFiles.splice(0); } + // @ts-expect-error - FIXME LATER state.acceptedFiles = acceptedFiles; + // @ts-expect-error - FIXME LATER optionsRef.value.onDrop?.(acceptedFiles); }; @@ -269,7 +271,7 @@ export function useDropzone(options: DropzoneOptions) { ref: inputRef, type: "file", style: "display: none", - accept: acceptAttr.value ?? "", // exactOptionalPropertyTypes: true + accept: routeProps.value.accept!, multiple: optionsRef.value.multiple, tabindex: -1, ...(!optionsRef.value.disabled diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9eb01fdae..b3592c8da 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -857,6 +857,9 @@ importers: '@uploadthing/shared': specifier: workspace:* version: link:../shared + effect: + specifier: ^3.1.0 + version: 3.1.0 file-selector: specifier: ^0.6.0 version: 0.6.0 From 88576c868c2876d379bac1321a8b35f42148ec42 Mon Sep 17 00:00:00 2001 From: juliusmarminge Date: Sun, 12 May 2024 10:51:24 +0200 Subject: [PATCH 43/50] rm ts-expect-error's --- packages/dropzone/src/solid.tsx | 12 ++++++++---- packages/dropzone/src/svelte.ts | 12 ++++++++---- packages/dropzone/src/vue.ts | 12 ++++++++---- 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/packages/dropzone/src/solid.tsx b/packages/dropzone/src/solid.tsx index cd4189368..2ec9182e2 100644 --- a/packages/dropzone/src/solid.tsx +++ b/packages/dropzone/src/solid.tsx @@ -15,6 +15,8 @@ import { } from "solid-js"; import { createStore } from "solid-js/store"; +import type { FileWithState } from "@uploadthing/shared"; + import { allFilesAccepted, initialState, @@ -170,14 +172,18 @@ export function createDropzone(_props: DropzoneOptions) { }; const setFiles = (files: File[]) => { - const acceptedFiles: File[] = []; + const acceptedFiles: FileWithState[] = []; files.forEach((file) => { const accepted = isFileAccepted(file, routeProps().accept); const sizeMatch = isValidSize(file, props.minSize, routeProps().maxSize); if (accepted && sizeMatch) { - acceptedFiles.push(file); + const fileWithState: FileWithState = Object.assign(file, { + status: "pending" as const, + key: null, + }); + acceptedFiles.push(fileWithState); } }); @@ -192,10 +198,8 @@ export function createDropzone(_props: DropzoneOptions) { } setState({ - // @ts-expect-error - FIXME LATER acceptedFiles, }); - // @ts-expect-error - FIXME LATER props.onDrop?.(acceptedFiles); }; diff --git a/packages/dropzone/src/svelte.ts b/packages/dropzone/src/svelte.ts index 91a898c89..65fe20e0e 100644 --- a/packages/dropzone/src/svelte.ts +++ b/packages/dropzone/src/svelte.ts @@ -3,6 +3,8 @@ import { onMount } from "svelte"; import type { Action } from "svelte/action"; import { derived, get, writable } from "svelte/store"; +import type { FileWithState } from "@uploadthing/shared"; + import { allFilesAccepted, initialState, @@ -178,7 +180,7 @@ export function createDropzone(_props: DropzoneOptions) { }; const setFiles = (files: File[]) => { - const acceptedFiles: File[] = []; + const acceptedFiles: FileWithState[] = []; files.forEach((file) => { const accepted = isFileAccepted(file, get(routeProps).accept); @@ -189,7 +191,11 @@ export function createDropzone(_props: DropzoneOptions) { ); if (accepted && sizeMatch) { - acceptedFiles.push(file); + const fileWithState: FileWithState = Object.assign(file, { + status: "pending" as const, + key: null, + }); + acceptedFiles.push(fileWithState); } }); @@ -206,11 +212,9 @@ export function createDropzone(_props: DropzoneOptions) { dispatch({ type: "setFiles", payload: { - // @ts-expect-error - FIXME LATER acceptedFiles, }, }); - // @ts-expect-error - FIXME LATER get(props).onDrop(acceptedFiles); }; diff --git a/packages/dropzone/src/vue.ts b/packages/dropzone/src/vue.ts index 3ea644305..dea7a87be 100644 --- a/packages/dropzone/src/vue.ts +++ b/packages/dropzone/src/vue.ts @@ -10,6 +10,8 @@ import { watch, } from "vue"; +import type { FileWithState } from "@uploadthing/shared"; + import { allFilesAccepted, initialState, @@ -166,7 +168,7 @@ export function useDropzone(options: DropzoneOptions) { }; const setFiles = (files: File[]) => { - const acceptedFiles: File[] = []; + const acceptedFiles: FileWithState[] = []; files.forEach((file) => { const accepted = isFileAccepted(file, routeProps.value.accept); @@ -177,7 +179,11 @@ export function useDropzone(options: DropzoneOptions) { ); if (accepted && sizeMatch) { - acceptedFiles.push(file); + const fileWithState: FileWithState = Object.assign(file, { + status: "pending" as const, + key: null, + }); + acceptedFiles.push(fileWithState); } }); @@ -191,9 +197,7 @@ export function useDropzone(options: DropzoneOptions) { acceptedFiles.splice(0); } - // @ts-expect-error - FIXME LATER state.acceptedFiles = acceptedFiles; - // @ts-expect-error - FIXME LATER optionsRef.value.onDrop?.(acceptedFiles); }; From 7d18883c8131fe5c71fea1f2f238a736f2135aba Mon Sep 17 00:00:00 2001 From: juliusmarminge Date: Sun, 12 May 2024 10:58:26 +0200 Subject: [PATCH 44/50] fix more types --- packages/react/src/hooks/use-controllable-state.ts | 2 +- packages/react/src/hooks/use-uploadthing.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react/src/hooks/use-controllable-state.ts b/packages/react/src/hooks/use-controllable-state.ts index 7b6a07c10..e18100a33 100644 --- a/packages/react/src/hooks/use-controllable-state.ts +++ b/packages/react/src/hooks/use-controllable-state.ts @@ -24,7 +24,7 @@ function useCallbackRef unknown>( type UseControllableStateParams = { prop?: T | undefined; defaultProp: NoInfer; - onChange?: (state: T) => void; + onChange?: ((state: T) => void) | undefined; }; type SetStateFn = (prevState?: T) => T; diff --git a/packages/react/src/hooks/use-uploadthing.ts b/packages/react/src/hooks/use-uploadthing.ts index ea29abdc3..90fcb6b7f 100644 --- a/packages/react/src/hooks/use-uploadthing.ts +++ b/packages/react/src/hooks/use-uploadthing.ts @@ -109,7 +109,7 @@ export const INTERNAL_uploadthingHookGen = < } opts?.onUploadProgress?.(0, undefined); try { - const res = await uploadFiles(endpoint, { + const res = await uploadFiles(endpoint, { headers: opts?.headers, files: filesToUpload, skipPolling: opts?.skipPolling, From 53312d722a1c3950189b084ad619912296bf4752 Mon Sep 17 00:00:00 2001 From: "Mark R. Florkowski" Date: Mon, 3 Jun 2024 01:35:21 -0700 Subject: [PATCH 45/50] chore: migrate vue off of `permittedFileInfo` (#837) Co-authored-by: Julius Marminge --- packages/react/src/components/button.tsx | 4 +-- packages/react/src/components/dropzone.tsx | 3 ++- packages/react/src/hooks/use-uploadthing.ts | 4 +-- packages/react/src/useUploadThing.ts | 8 +++--- packages/vue/src/components/button.tsx | 7 +++-- packages/vue/src/components/dropzone.tsx | 30 +++++---------------- packages/vue/src/useUploadThing.ts | 20 ++++++++------ 7 files changed, 31 insertions(+), 45 deletions(-) diff --git a/packages/react/src/components/button.tsx b/packages/react/src/components/button.tsx index 77545bcaf..8789839f1 100644 --- a/packages/react/src/components/button.tsx +++ b/packages/react/src/components/button.tsx @@ -127,7 +127,7 @@ export function UploadButton< }, onUploadProgress: (p) => { setUploadProgress(p); - $props.onUploadProgress?.(p); + $props.onUploadProgress?.(p, undefined); }, onUploadError: $props.onUploadError, onUploadBegin: $props.onUploadBegin, @@ -178,7 +178,7 @@ export function UploadButton< const pastedFiles = getFilesFromClipboardEvent(event); if (!pastedFiles) return; - let filesToUpload = pastedFiles; + let filesToUpload = pastedFiles as File[]; setFiles((prev) => { filesToUpload = [...prev, ...pastedFiles]; return filesToUpload; diff --git a/packages/react/src/components/dropzone.tsx b/packages/react/src/components/dropzone.tsx index 21a902422..da77ed566 100644 --- a/packages/react/src/components/dropzone.tsx +++ b/packages/react/src/components/dropzone.tsx @@ -16,6 +16,7 @@ import { import type { ContentField, ErrorMessage, + FileWithState, StyleField, } from "@uploadthing/shared"; import type { FileRouter } from "uploadthing/types"; @@ -139,7 +140,7 @@ export function UploadDropzone< const { fileTypes, multiple } = generatePermittedFileTypes(routeConfig); const onDrop = useCallback( - (acceptedFiles: File[]) => { + (acceptedFiles: FileWithState[]) => { $props.onDrop?.(acceptedFiles); setFiles(acceptedFiles); diff --git a/packages/react/src/hooks/use-uploadthing.ts b/packages/react/src/hooks/use-uploadthing.ts index 90fcb6b7f..6402c9a1c 100644 --- a/packages/react/src/hooks/use-uploadthing.ts +++ b/packages/react/src/hooks/use-uploadthing.ts @@ -153,7 +153,7 @@ export const INTERNAL_uploadthingHookGen = < }), ), ); - opts?.onClientUploadComplete?.(res); + void opts?.onClientUploadComplete?.(res); return res; } catch (e) { let error: UploadThingError>; @@ -168,7 +168,7 @@ export const INTERNAL_uploadthingHookGen = < : error.cause, ); } - opts?.onUploadError?.(error); + void opts?.onUploadError?.(error); } finally { setUploading(false); // setProgresses(new Map()); diff --git a/packages/react/src/useUploadThing.ts b/packages/react/src/useUploadThing.ts index ed1cced5d..cefdb4906 100644 --- a/packages/react/src/useUploadThing.ts +++ b/packages/react/src/useUploadThing.ts @@ -21,9 +21,9 @@ import type { } from "uploadthing/types"; import { peerDependencies } from "../package.json"; +import { useEvent } from "./hooks/use-event"; +import useFetch from "./hooks/use-fetch"; import type { GenerateTypedHelpersOptions, UseUploadthingProps } from "./types"; -import { useEvent } from "./utils/useEvent"; -import useFetch from "./utils/useFetch"; declare const globalThis: { __UPLOADTHING?: EndpointMetadata; @@ -82,7 +82,7 @@ export const INTERNAL_uploadthingHookGen = < const input = args[1]; setUploading(true); - opts?.onUploadProgress?.(0); + opts?.onUploadProgress?.(0, undefined); try { const res = await uploadFiles(endpoint, { headers: opts?.headers, @@ -98,7 +98,7 @@ export const INTERNAL_uploadthingHookGen = < const averageProgress = Math.floor(sum / fileProgress.current.size / 10) * 10; if (averageProgress !== uploadProgress.current) { - opts?.onUploadProgress?.(averageProgress); + opts?.onUploadProgress?.(averageProgress, progress); uploadProgress.current = averageProgress; } }, diff --git a/packages/vue/src/components/button.tsx b/packages/vue/src/components/button.tsx index 6f43f41ab..1d40ffdb9 100644 --- a/packages/vue/src/components/button.tsx +++ b/packages/vue/src/components/button.tsx @@ -112,13 +112,13 @@ export const generateUploadButton = ( onBeforeUploadBegin: $props.onBeforeUploadBegin, }); - const { startUpload, isUploading, permittedFileInfo } = useUploadThing( + const { startUpload, isUploading, routeConfig } = useUploadThing( $props.endpoint, useUploadthingProps, ); const permittedFileTypes = computed(() => - generatePermittedFileTypes(permittedFileInfo.value?.config), + generatePermittedFileTypes(routeConfig?.value), ); const inputProps = computed(() => ({ @@ -252,8 +252,7 @@ export const generateUploadButton = ( {contentFieldToContent( $props.content?.allowedContent, styleFieldArg.value, - ) ?? - allowedContentTextLabelGenerator(permittedFileInfo.value?.config)} + ) ?? allowedContentTextLabelGenerator(routeConfig?.value)}
); diff --git a/packages/vue/src/components/dropzone.tsx b/packages/vue/src/components/dropzone.tsx index c2a35d461..c4c9bf827 100644 --- a/packages/vue/src/components/dropzone.tsx +++ b/packages/vue/src/components/dropzone.tsx @@ -1,6 +1,6 @@ import { twMerge } from "tailwind-merge"; import * as Vue from "vue"; -import { computed, reactive, ref, watch } from "vue"; +import { computed, reactive, ref } from "vue"; import type { DropzoneOptions } from "@uploadthing/dropzone/vue"; import { useDropzone } from "@uploadthing/dropzone/vue"; @@ -8,7 +8,6 @@ import type { ContentField, StyleField } from "@uploadthing/shared"; import { allowedContentTextLabelGenerator, contentFieldToContent, - generateClientDropzoneAccept, generatePermittedFileTypes, getFilesFromClipboardEvent, resolveMaybeUrlArg, @@ -118,16 +117,13 @@ export const generateUploadDropzone = ( onUploadBegin: $props.onUploadBegin, onBeforeUploadBegin: $props.onBeforeUploadBegin, }); - const { startUpload, isUploading, permittedFileInfo } = useUploadThing( + const { startUpload, isUploading, routeConfig } = useUploadThing( $props.endpoint, useUploadthingProps, ); const permittedFileTypes = computed(() => - generatePermittedFileTypes(permittedFileInfo.value?.config), - ); - const acceptedFileTypes = computed(() => - generateClientDropzoneAccept(permittedFileTypes.value.fileTypes), + generatePermittedFileTypes(routeConfig?.value), ); const onDrop = (acceptedFiles: File[]) => { @@ -145,23 +141,10 @@ export const generateUploadDropzone = ( const dropzoneOptions: DropzoneOptions = reactive({ onDrop: onDrop, - accept: acceptedFileTypes.value, - multiple: permittedFileTypes.value.multiple, + routeConfig, disabled: permittedFileTypes.value.fileTypes.length === 0, }); - watch( - () => acceptedFileTypes.value, - (newVal) => { - dropzoneOptions.accept = newVal; - }, - ); - watch( - () => permittedFileTypes.value, - (newVal) => { - dropzoneOptions.multiple = newVal.multiple; - dropzoneOptions.disabled = newVal.fileTypes.length === 0; - }, - ); + const { getRootProps, getInputProps, isDragActive, rootRef } = useDropzone(dropzoneOptions); @@ -254,8 +237,7 @@ export const generateUploadDropzone = ( if (customContent) return customContent; return ( - allowedContentTextLabelGenerator(permittedFileInfo.value?.config) || - " " // ensure no empty string + allowedContentTextLabelGenerator(routeConfig?.value) || " " // ensure no empty string ); }; diff --git a/packages/vue/src/useUploadThing.ts b/packages/vue/src/useUploadThing.ts index d7f4dd4ed..075e94f20 100644 --- a/packages/vue/src/useUploadThing.ts +++ b/packages/vue/src/useUploadThing.ts @@ -22,7 +22,7 @@ export type { ExpandedRouteConfig, } from "@uploadthing/shared"; -const useEndpointMetadata = (url: URL, endpoint: string) => { +const useRouteConfig = (url: URL, endpoint: string) => { // TODO: useState with server-inserted data to skip fetch on client const { data } = useFetch(url.href); return computed(() => { @@ -31,7 +31,7 @@ const useEndpointMetadata = (url: URL, endpoint: string) => { typeof data.value === "string" ? (JSON.parse(data.value) as EndpointMetadata) : (data.value as EndpointMetadata); - return endpointData?.find((x) => x.slug === endpoint); + return endpointData?.find((x) => x.slug === endpoint)?.config; }); }; @@ -61,10 +61,7 @@ export const INTERNAL_uploadthingHookGen = < const uploadProgress = ref(0); const fileProgress = ref(new Map()); - const permittedFileInfo = useEndpointMetadata( - initOpts.url, - endpoint as string, - ); + const routeConfig = useRouteConfig(initOpts.url, endpoint as string); type InferredInput = inferEndpointInput; type FuncInput = undefined extends InferredInput @@ -129,8 +126,15 @@ export const INTERNAL_uploadthingHookGen = < return { startUpload, isUploading, - permittedFileInfo, - } as const; + routeConfig, + /** + * @deprecated Use `routeConfig` instead + */ + permittedFileInfo: computed(() => { + if (!routeConfig.value) return undefined; + return { slug: endpoint, config: routeConfig }; + }), + }; }; return useUploadThing; From 1caf977d9ba5ea16028532dced6ff50af6f4019c Mon Sep 17 00:00:00 2001 From: "Mark R. Florkowski" Date: Fri, 31 May 2024 13:42:24 -0700 Subject: [PATCH 46/50] chore: Add redirects to docs nextconfig (#843) --- docs/next.config.mjs | 29 +++++++++++++++++++++++++++ examples/minimal-solidstart/README.md | 2 +- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/docs/next.config.mjs b/docs/next.config.mjs index e2827ac98..02b69d157 100644 --- a/docs/next.config.mjs +++ b/docs/next.config.mjs @@ -8,6 +8,35 @@ const withNextra = nextra({ flexsearch: { codeblock: false, }, + async redirects() { + return [ + { + source: "/getting-started", + destination: "/getting-started/appdir", + permanent: true, + }, + { + source: "/nextjs/appdir", + destination: "/getting-started/appdir", + permanent: true, + }, + { + source: "/nextjs/pagedir", + destination: "/getting-started/pagedir", + permanent: true, + }, + { + source: "/solid", + destination: "/getting-started/solid", + permanent: true, + }, + { + source: "/solidstart/server", + destination: "/getting-started/solid", + permanent: true, + }, + ]; + }, }); export default withNextra({ diff --git a/examples/minimal-solidstart/README.md b/examples/minimal-solidstart/README.md index d7a1ec0ce..6d788130e 100644 --- a/examples/minimal-solidstart/README.md +++ b/examples/minimal-solidstart/README.md @@ -15,4 +15,4 @@ ## Further reference -Check out the docs at: https://docs.uploadthing.com/solid +Check out the docs at: https://docs.uploadthing.com/getting-started/solid From a214d80a8936106f01477b1770ba094c6ade07c9 Mon Sep 17 00:00:00 2001 From: juliusmarminge Date: Mon, 3 Jun 2024 11:42:05 +0200 Subject: [PATCH 47/50] rm shared dep from pg --- packages/uploadthing/src/types.ts | 1 + playground/package.json | 5 +- playground/src/app/gallery/page.tsx | 23 +- playground/src/app/rhf-custom/rhf.tsx | 2 +- playground/src/components/file-uploader.tsx | 6 +- playground/src/utils.ts | 2 +- pnpm-lock.yaml | 717 ++------------------ 7 files changed, 82 insertions(+), 674 deletions(-) diff --git a/packages/uploadthing/src/types.ts b/packages/uploadthing/src/types.ts index dd8171763..f02508d72 100644 --- a/packages/uploadthing/src/types.ts +++ b/packages/uploadthing/src/types.ts @@ -19,6 +19,7 @@ export * from "./sdk/types"; export type { EndpointMetadata, ExpandedRouteConfig, + FileWithState, } from "@uploadthing/shared"; export type { diff --git a/playground/package.json b/playground/package.json index 47567d46c..4079fc53a 100644 --- a/playground/package.json +++ b/playground/package.json @@ -20,7 +20,6 @@ "@radix-ui/react-slot": "^1.0.2", "@radix-ui/react-tabs": "^1.0.4", "@radix-ui/react-tooltip": "^1.0.7", - "@uploadthing/shared": "^6.7.3", "@uploadthing/react": "6.6.0", "class-variance-authority": "^0.7.0", "client-only": "^0.0.1", @@ -37,8 +36,8 @@ }, "devDependencies": { "@types/node": "^20.11.21", - "@types/react": "18.2.78", - "@types/react-dom": "18.2.25", + "@types/react": "18.3.3", + "@types/react-dom": "18.3.0", "postcss": "8.4.38", "tailwindcss": "^3.4.1", "typescript": "^5.4.5" diff --git a/playground/src/app/gallery/page.tsx b/playground/src/app/gallery/page.tsx index a76a53bc4..0b7ae8f15 100644 --- a/playground/src/app/gallery/page.tsx +++ b/playground/src/app/gallery/page.tsx @@ -12,6 +12,8 @@ import { ReactHookFormDemo } from "./rhf"; const PAGE_SIZE = 20; +export const dynamic = "force-dynamic"; + const UploadFilesList = (props: { uploadedFiles: { key: string; name: string }[]; }) => { @@ -29,14 +31,22 @@ const UploadFilesList = (props: { const loadUploadedFiles = async (offset = 0) => { "use server"; - const files = await utapi.listFiles({ offset, limit: PAGE_SIZE }); + const { files } = await utapi.listFiles({ offset, limit: PAGE_SIZE }); const nextOffset = files.length >= PAGE_SIZE ? offset + PAGE_SIZE : null; - return [, nextOffset] as const; + return [ + ({ key: f.key, name: f.name }))} + />, + nextOffset, + ] as const; }; export default async function HomePage() { - const uploadedFiles = await utapi.listFiles({ offset: 0, limit: PAGE_SIZE }); + const { files: uploadedFiles } = await utapi.listFiles({ + offset: 0, + limit: PAGE_SIZE, + }); return (
@@ -51,7 +61,12 @@ export default async function HomePage() { initialOffset={PAGE_SIZE} loadMoreAction={loadUploadedFiles} > - + ({ + key: f.key, + name: f.name, + }))} + /> diff --git a/playground/src/app/rhf-custom/rhf.tsx b/playground/src/app/rhf-custom/rhf.tsx index f40b1c682..9d07fe9a9 100644 --- a/playground/src/app/rhf-custom/rhf.tsx +++ b/playground/src/app/rhf-custom/rhf.tsx @@ -6,7 +6,7 @@ import { twMerge } from "tailwind-merge"; import { z } from "zod"; import { useDropzone } from "@uploadthing/react"; -import { FileWithState } from "@uploadthing/shared"; +import { FileWithState } from "uploadthing/types"; import { Button } from "~/components/ui/button"; import { diff --git a/playground/src/components/file-uploader.tsx b/playground/src/components/file-uploader.tsx index ce235136a..b238b7399 100644 --- a/playground/src/components/file-uploader.tsx +++ b/playground/src/components/file-uploader.tsx @@ -6,8 +6,8 @@ import { Cross2Icon, UploadIcon } from "@radix-ui/react-icons"; import { twMerge } from "tailwind-merge"; import { useDropzone } from "@uploadthing/react"; -import { FileWithState } from "@uploadthing/shared"; -import { bytesToHumanReadable } from "uploadthing/client"; +import { bytesToFileSize } from "uploadthing/client"; +import { FileWithState } from "uploadthing/types"; import { Button } from "~/components/ui/button"; import { Progress } from "~/components/ui/progress"; @@ -160,7 +160,7 @@ function FileCard({ file, progress = 0, onRemove }: FileCardProps) { {file.name}

- {bytesToHumanReadable(file.size)} + {bytesToFileSize(file.size)}

{file.status === "uploading" && ( diff --git a/playground/src/utils.ts b/playground/src/utils.ts index 11320ffc1..fef53dd84 100644 --- a/playground/src/utils.ts +++ b/playground/src/utils.ts @@ -1,6 +1,6 @@ import { z } from "zod"; -import { FileWithState } from "@uploadthing/shared"; +import { FileWithState } from "uploadthing/types"; export const fileWithStateValidator = z.custom((value) => { if (!(value instanceof File)) return false; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8029a8073..0bab9f862 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1396,37 +1396,34 @@ importers: version: 3.4.2(react-hook-form@7.51.5) '@radix-ui/react-dialog': specifier: ^1.0.5 - version: 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) + version: 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-dropdown-menu': specifier: ^2.0.6 - version: 2.0.6(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) + version: 2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-icons': specifier: ^1.3.0 version: 1.3.0(react@18.3.1) '@radix-ui/react-label': specifier: ^2.0.2 - version: 2.0.2(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) + version: 2.0.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-progress': specifier: ^1.0.3 - version: 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) + version: 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-scroll-area': specifier: ^1.0.5 - version: 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) + version: 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-slot': specifier: ^1.0.2 - version: 1.0.2(@types/react@18.2.78)(react@18.3.1) + version: 1.0.2(@types/react@18.3.3)(react@18.3.1) '@radix-ui/react-tabs': specifier: ^1.0.4 - version: 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) + version: 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-tooltip': specifier: ^1.0.7 - version: 1.0.7(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) + version: 1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@uploadthing/react': specifier: 6.6.0 version: link:../packages/react - '@uploadthing/shared': - specifier: ^6.7.3 - version: link:../packages/shared class-variance-authority: specifier: ^0.7.0 version: 0.7.0 @@ -1468,11 +1465,11 @@ importers: specifier: ^20.11.21 version: 20.14.0 '@types/react': - specifier: 18.2.78 - version: 18.2.78 + specifier: 18.3.3 + version: 18.3.3 '@types/react-dom': - specifier: 18.2.25 - version: 18.2.25 + specifier: 18.3.0 + version: 18.3.0 postcss: specifier: 8.4.38 version: 8.4.38 @@ -5488,27 +5485,6 @@ packages: react-dom: 18.3.1(react@18.3.1) dev: false - /@radix-ui/react-arrow@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - /@radix-ui/react-arrow@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==} peerDependencies: @@ -5558,30 +5534,6 @@ packages: react-dom: 18.3.1(react@18.3.1) dev: false - /@radix-ui/react-collection@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.78)(react@18.3.1) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - /@radix-ui/react-collection@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==} peerDependencies: @@ -5615,20 +5567,6 @@ packages: react: 18.3.1 dev: false - /@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.78)(react@18.3.1): - resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.24.4 - '@types/react': 18.2.78 - react: 18.3.1 - dev: false - /@radix-ui/react-compose-refs@1.0.1(@types/react@18.3.3)(react@18.3.1): resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==} peerDependencies: @@ -5652,20 +5590,6 @@ packages: react: 18.3.1 dev: false - /@radix-ui/react-context@1.0.1(@types/react@18.2.78)(react@18.3.1): - resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.24.4 - '@types/react': 18.2.78 - react: 18.3.1 - dev: false - /@radix-ui/react-context@1.0.1(@types/react@18.3.3)(react@18.3.1): resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==} peerDependencies: @@ -5707,40 +5631,6 @@ packages: - '@types/react' dev: false - /@radix-ui/react-dialog@1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 - aria-hidden: 1.2.4 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.5.5(@types/react@18.2.78)(react@18.3.1) - dev: false - /@radix-ui/react-dialog@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==} peerDependencies: @@ -5775,20 +5665,6 @@ packages: react-remove-scroll: 2.5.5(@types/react@18.3.3)(react@18.3.1) dev: false - /@radix-ui/react-direction@1.0.1(@types/react@18.2.78)(react@18.3.1): - resolution: {integrity: sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.24.4 - '@types/react': 18.2.78 - react: 18.3.1 - dev: false - /@radix-ui/react-direction@1.0.1(@types/react@18.3.3)(react@18.3.1): resolution: {integrity: sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==} peerDependencies: @@ -5819,31 +5695,6 @@ packages: react-dom: 18.3.1(react@18.3.1) dev: false - /@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.2.78)(react@18.3.1) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - /@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==} peerDependencies: @@ -5869,33 +5720,6 @@ packages: react-dom: 18.3.1(react@18.3.1) dev: false - /@radix-ui/react-dropdown-menu@2.0.6(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-i6TuFOoWmLWq+M/eCLGd/bQ2HfAX1RJgvrBQ6AQLmzfvsLdefxbWu8G9zczcPFfcSPehz9GcpF6K9QYreFV8hA==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-menu': 2.0.6(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - /@radix-ui/react-dropdown-menu@2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-i6TuFOoWmLWq+M/eCLGd/bQ2HfAX1RJgvrBQ6AQLmzfvsLdefxbWu8G9zczcPFfcSPehz9GcpF6K9QYreFV8hA==} peerDependencies: @@ -5932,20 +5756,6 @@ packages: react: 18.3.1 dev: false - /@radix-ui/react-focus-guards@1.0.1(@types/react@18.2.78)(react@18.3.1): - resolution: {integrity: sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.24.4 - '@types/react': 18.2.78 - react: 18.3.1 - dev: false - /@radix-ui/react-focus-guards@1.0.1(@types/react@18.3.3)(react@18.3.1): resolution: {integrity: sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==} peerDependencies: @@ -5974,29 +5784,6 @@ packages: react-dom: 18.3.1(react@18.3.1) dev: false - /@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - /@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==} peerDependencies: @@ -6038,21 +5825,6 @@ packages: react: 18.3.1 dev: false - /@radix-ui/react-id@1.0.1(@types/react@18.2.78)(react@18.3.1): - resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@types/react': 18.2.78 - react: 18.3.1 - dev: false - /@radix-ui/react-id@1.0.1(@types/react@18.3.3)(react@18.3.1): resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==} peerDependencies: @@ -6068,27 +5840,6 @@ packages: react: 18.3.1 dev: false - /@radix-ui/react-label@2.0.2(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-N5ehvlM7qoTLx7nWPodsPYPgMzA5WM8zZChQg8nyFJKnDO5WHdba1vv5/H6IO5LtJMfD2Q3wh1qHFGNtK0w3bQ==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - /@radix-ui/react-label@2.0.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-N5ehvlM7qoTLx7nWPodsPYPgMzA5WM8zZChQg8nyFJKnDO5WHdba1vv5/H6IO5LtJMfD2Q3wh1qHFGNtK0w3bQ==} peerDependencies: @@ -6110,44 +5861,6 @@ packages: react-dom: 18.3.1(react@18.3.1) dev: false - /@radix-ui/react-menu@2.0.6(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-BVkFLS+bUC8HcImkRKPSiVumA1VPOOEC5WBMiT+QAVsPzW1FJzI9KnqgGxVDPBcql5xXrHkD3JOVoXWEXD8SYA==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 - aria-hidden: 1.2.4 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.5.5(@types/react@18.2.78)(react@18.3.1) - dev: false - /@radix-ui/react-menu@2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-BVkFLS+bUC8HcImkRKPSiVumA1VPOOEC5WBMiT+QAVsPzW1FJzI9KnqgGxVDPBcql5xXrHkD3JOVoXWEXD8SYA==} peerDependencies: @@ -6221,36 +5934,6 @@ packages: react-remove-scroll: 2.5.5(@types/react@18.3.3)(react@18.3.1) dev: false - /@radix-ui/react-popper@1.1.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-cKpopj/5RHZWjrbF2846jBNacjQVwkP068DfmgrNJXpvVWrOvlAmE9xSiy5OqeE+Gi8D9fP+oDhUnPqNMY8/5w==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - dependencies: - '@babel/runtime': 7.24.4 - '@floating-ui/react-dom': 2.0.9(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-use-rect': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/rect': 1.0.1 - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - /@radix-ui/react-popper@1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-cKpopj/5RHZWjrbF2846jBNacjQVwkP068DfmgrNJXpvVWrOvlAmE9xSiy5OqeE+Gi8D9fP+oDhUnPqNMY8/5w==} peerDependencies: @@ -6293,27 +5976,6 @@ packages: react-dom: 18.3.1(react@18.3.1) dev: false - /@radix-ui/react-portal@1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - /@radix-ui/react-portal@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==} peerDependencies: @@ -6348,28 +6010,6 @@ packages: react-dom: 18.3.1(react@18.3.1) dev: false - /@radix-ui/react-presence@1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - /@radix-ui/react-presence@1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==} peerDependencies: @@ -6404,27 +6044,6 @@ packages: react-dom: 18.3.1(react@18.3.1) dev: false - /@radix-ui/react-primitive@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.78)(react@18.3.1) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - /@radix-ui/react-primitive@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==} peerDependencies: @@ -6446,7 +6065,7 @@ packages: react-dom: 18.3.1(react@18.3.1) dev: false - /@radix-ui/react-progress@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1): + /@radix-ui/react-progress@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-5G6Om/tYSxjSeEdrb1VfKkfZfn/1IlPWd731h2RfPuSbIfNUgfqAwbKfJCg/PP6nuUCTrYzalwHSpSinoWoCag==} peerDependencies: '@types/react': '*' @@ -6460,39 +6079,10 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.4 - '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false @@ -6526,7 +6116,7 @@ packages: react-dom: 18.3.1(react@18.3.1) dev: false - /@radix-ui/react-scroll-area@1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1): + /@radix-ui/react-scroll-area@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-b6PAgH4GQf9QEn8zbT2XUHpW5z8BzqEc7Kl11TwDrvuTrxlkcjTD5qa/bxgKr+nmuXKu4L/W5UZ4mlP/VG/5Gw==} peerDependencies: '@types/react': '*' @@ -6542,15 +6132,15 @@ packages: '@babel/runtime': 7.24.4 '@radix-ui/number': 1.0.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-direction': 1.0.1(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false @@ -6565,21 +6155,6 @@ packages: react: 18.3.1 dev: false - /@radix-ui/react-slot@1.0.2(@types/react@18.2.78)(react@18.3.1): - resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@types/react': 18.2.78 - react: 18.3.1 - dev: false - /@radix-ui/react-slot@1.0.2(@types/react@18.3.3)(react@18.3.1): resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} peerDependencies: @@ -6595,7 +6170,7 @@ packages: react: 18.3.1 dev: false - /@radix-ui/react-tabs@1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1): + /@radix-ui/react-tabs@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-egZfYY/+wRNCflXNHx+dePvnz9FbmssDTJBtgRfDY7e8SE5oIo3Py2eCB1ckAbh1Q7cQ/6yJZThJ++sgbxibog==} peerDependencies: '@types/react': '*' @@ -6610,20 +6185,20 @@ packages: dependencies: '@babel/runtime': 7.24.4 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-direction': 1.0.1(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@radix-ui/react-tooltip@1.0.7(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1): + /@radix-ui/react-tooltip@1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-lPh5iKNFVQ/jav/j6ZrWq3blfDJ0OH9R6FlNUHPMqdLuQ9vwDgFsRxvl8b7Asuy5c8xmoojHUxKHQSOAvMHxyw==} peerDependencies: '@types/react': '*' @@ -6638,19 +6213,19 @@ packages: dependencies: '@babel/runtime': 7.24.4 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false @@ -6664,20 +6239,6 @@ packages: react: 18.3.1 dev: false - /@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.78)(react@18.3.1): - resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.24.4 - '@types/react': 18.2.78 - react: 18.3.1 - dev: false - /@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.3.3)(react@18.3.1): resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==} peerDependencies: @@ -6702,21 +6263,6 @@ packages: react: 18.3.1 dev: false - /@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.2.78)(react@18.3.1): - resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@types/react': 18.2.78 - react: 18.3.1 - dev: false - /@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.3.3)(react@18.3.1): resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==} peerDependencies: @@ -6742,21 +6288,6 @@ packages: react: 18.3.1 dev: false - /@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.2.78)(react@18.3.1): - resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@types/react': 18.2.78 - react: 18.3.1 - dev: false - /@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.3.3)(react@18.3.1): resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==} peerDependencies: @@ -6781,20 +6312,6 @@ packages: react: 18.3.1 dev: false - /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.78)(react@18.3.1): - resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.24.4 - '@types/react': 18.2.78 - react: 18.3.1 - dev: false - /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.3.3)(react@18.3.1): resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==} peerDependencies: @@ -6809,21 +6326,6 @@ packages: react: 18.3.1 dev: false - /@radix-ui/react-use-rect@1.0.1(@types/react@18.2.78)(react@18.3.1): - resolution: {integrity: sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/rect': 1.0.1 - '@types/react': 18.2.78 - react: 18.3.1 - dev: false - /@radix-ui/react-use-rect@1.0.1(@types/react@18.3.3)(react@18.3.1): resolution: {integrity: sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==} peerDependencies: @@ -6839,21 +6341,6 @@ packages: react: 18.3.1 dev: false - /@radix-ui/react-use-size@1.0.1(@types/react@18.2.78)(react@18.3.1): - resolution: {integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.78)(react@18.3.1) - '@types/react': 18.2.78 - react: 18.3.1 - dev: false - /@radix-ui/react-use-size@1.0.1(@types/react@18.3.3)(react@18.3.1): resolution: {integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==} peerDependencies: @@ -6869,7 +6356,7 @@ packages: react: 18.3.1 dev: false - /@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1): + /@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==} peerDependencies: '@types/react': '*' @@ -6883,9 +6370,9 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.4 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.3.1)(react@18.3.1) - '@types/react': 18.2.78 - '@types/react-dom': 18.2.25 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false @@ -8694,22 +8181,11 @@ packages: /@types/range-parser@1.2.7: resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - /@types/react-dom@18.2.25: - resolution: {integrity: sha512-o/V48vf4MQh7juIKZU2QGDfli6p1+OOi5oXx36Hffpc9adsHeXjVp8rHuPkjd8VT8sOJ2Zp05HR7CdpGTIUFUA==} - dependencies: - '@types/react': 18.3.3 - /@types/react-dom@18.3.0: resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} dependencies: '@types/react': 18.3.3 - /@types/react@18.2.78: - resolution: {integrity: sha512-qOwdPnnitQY4xKlKayt42q5W5UQrSHjgoXNVEtxeqdITJ99k4VXJOP3vt8Rkm9HmgJpH50UNU+rlqfkfWOqp0A==} - dependencies: - '@types/prop-types': 15.7.5 - csstype: 3.1.3 - /@types/react@18.3.3: resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} dependencies: @@ -19543,22 +19019,6 @@ packages: engines: {node: '>=0.10.0'} dev: false - /react-remove-scroll-bar@2.3.6(@types/react@18.2.78)(react@18.3.1): - resolution: {integrity: sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.2.78 - react: 18.3.1 - react-style-singleton: 2.2.1(@types/react@18.2.78)(react@18.3.1) - tslib: 2.6.2 - dev: false - /react-remove-scroll-bar@2.3.6(@types/react@18.3.3)(react@18.3.1): resolution: {integrity: sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==} engines: {node: '>=10'} @@ -19594,25 +19054,6 @@ packages: use-sidecar: 1.1.2(@types/react@18.3.3)(react@18.3.1) dev: false - /react-remove-scroll@2.5.5(@types/react@18.2.78)(react@18.3.1): - resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.2.78 - react: 18.3.1 - react-remove-scroll-bar: 2.3.6(@types/react@18.2.78)(react@18.3.1) - react-style-singleton: 2.2.1(@types/react@18.2.78)(react@18.3.1) - tslib: 2.6.2 - use-callback-ref: 1.3.2(@types/react@18.2.78)(react@18.3.1) - use-sidecar: 1.1.2(@types/react@18.2.78)(react@18.3.1) - dev: false - /react-remove-scroll@2.5.5(@types/react@18.3.3)(react@18.3.1): resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} engines: {node: '>=10'} @@ -19638,23 +19079,6 @@ packages: selecto: 1.26.3 dev: false - /react-style-singleton@2.2.1(@types/react@18.2.78)(react@18.3.1): - resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.2.78 - get-nonce: 1.0.1 - invariant: 2.2.4 - react: 18.3.1 - tslib: 2.6.2 - dev: false - /react-style-singleton@2.2.1(@types/react@18.3.3)(react@18.3.1): resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} engines: {node: '>=10'} @@ -22638,21 +22062,6 @@ packages: /urlpattern-polyfill@8.0.2: resolution: {integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==} - /use-callback-ref@1.3.2(@types/react@18.2.78)(react@18.3.1): - resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.2.78 - react: 18.3.1 - tslib: 2.6.2 - dev: false - /use-callback-ref@1.3.2(@types/react@18.3.3)(react@18.3.1): resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==} engines: {node: '>=10'} @@ -22677,22 +22086,6 @@ packages: react: 18.3.1 dev: false - /use-sidecar@1.1.2(@types/react@18.2.78)(react@18.3.1): - resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.2.78 - detect-node-es: 1.1.0 - react: 18.3.1 - tslib: 2.6.2 - dev: false - /use-sidecar@1.1.2(@types/react@18.3.3)(react@18.3.1): resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} engines: {node: '>=10'} From 35d478229a3a16d9f1e2803dee222f0b8f1231d3 Mon Sep 17 00:00:00 2001 From: "Mark R. Florkowski" Date: Mon, 24 Jun 2024 16:20:57 -0700 Subject: [PATCH 48/50] pnpm i --- pnpm-lock.yaml | 6353 ++++++++++++++++++++++++++++++++++-------------- 1 file changed, 4481 insertions(+), 1872 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 39a260167..11f4dda40 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -39,10 +39,10 @@ importers: version: 0.5.2(prettier@3.2.5) '@types/bun': specifier: ^1.1.3 - version: 1.1.3 + version: 1.1.5 '@types/node': specifier: ^20.14.0 - version: 20.14.0 + version: 20.14.8 '@uploadthing/eslint-config': specifier: 0.2.0 version: link:tooling/eslint-config @@ -63,7 +63,7 @@ importers: version: 0.5.14(@ianvs/prettier-plugin-sort-imports@4.2.1)(prettier@3.2.5) turbo: specifier: ^2.0.2 - version: 2.0.2 + version: 2.0.5 typescript: specifier: ^5.5.2 version: 5.5.2 @@ -75,7 +75,7 @@ importers: version: 4.3.2(typescript@5.5.2) vitest: specifier: ^1.3.1 - version: 1.5.0(@types/node@20.14.0)(happy-dom@13.10.1) + version: 1.5.0(@types/node@20.14.8)(happy-dom@13.10.1) docs: dependencies: @@ -168,7 +168,7 @@ importers: version: 5.5.2 vite: specifier: ^5.1.4 - version: 5.2.10(@types/node@20.14.0) + version: 5.2.10(@types/node@20.14.8) examples/backend-adapters/client-vanilla: dependencies: @@ -181,7 +181,7 @@ importers: version: 5.5.2 vite: specifier: ^5.1.4 - version: 5.2.10(@types/node@20.14.0) + version: 5.2.10(@types/node@20.14.8) examples/backend-adapters/client-vue: dependencies: @@ -193,17 +193,17 @@ importers: version: link:../../../packages/uploadthing vue: specifier: ^3.4.21 - version: 3.4.25(typescript@5.5.2) + version: 3.4.24(typescript@5.5.2) devDependencies: '@vitejs/plugin-vue': specifier: ^5.0.4 - version: 5.0.4(vite@5.2.10)(vue@3.4.25) + version: 5.0.4(vite@5.2.10)(vue@3.4.24) typescript: specifier: ^5.5.2 version: 5.5.2 vite: specifier: ^5.1.4 - version: 5.2.10(@types/node@20.14.0) + version: 5.2.10(@types/node@20.14.8) vue-tsc: specifier: ^2.0.6 version: 2.0.14(typescript@5.5.2) @@ -212,10 +212,10 @@ importers: dependencies: '@effect/platform': specifier: ^0.57.2 - version: 0.57.2(@effect/schema@0.67.24)(effect@3.3.2) + version: 0.57.8(@effect/schema@0.68.9)(effect@3.4.2) '@effect/platform-node': specifier: ^0.51.11 - version: 0.51.11(@effect/platform@0.57.2)(effect@3.3.2) + version: 0.51.17(@effect/platform@0.57.8)(effect@3.4.2) '@elysiajs/cors': specifier: ^0.8.0 version: 0.8.0(elysia@0.8.17) @@ -233,7 +233,7 @@ importers: version: 16.4.5 effect: specifier: ^3.3.2 - version: 3.3.2 + version: 3.4.2 elysia: specifier: ^0.8.17 version: 0.8.17(typescript@5.5.2) @@ -298,7 +298,7 @@ importers: version: 14.2.3 '@types/node': specifier: ^20.14.0 - version: 20.14.0 + version: 20.14.8 '@types/react': specifier: 18.3.3 version: 18.3.3 @@ -322,7 +322,7 @@ importers: version: link:../../packages/react astro: specifier: ^4.4.5 - version: 4.6.3(@types/node@20.14.0)(typescript@5.5.2) + version: 4.6.3(@types/node@20.14.8)(typescript@5.5.2) react: specifier: 18.3.1 version: 18.3.1 @@ -344,67 +344,67 @@ importers: dependencies: '@bacons/text-decoder': specifier: ^0.0.0 - version: 0.0.0(react-native@0.74.1) + version: 0.0.0(react-native@0.74.2) '@expo/vector-icons': specifier: ^14.0.1 version: 14.0.2 '@gorhom/bottom-sheet': specifier: ^4.6.1 - version: 4.6.3(@types/react@18.3.3)(react-native-gesture-handler@2.16.2)(react-native-reanimated@3.10.1)(react-native@0.74.1)(react@18.3.1) + version: 4.6.3(@types/react@18.3.3)(react-native-gesture-handler@2.16.2)(react-native-reanimated@3.10.1)(react-native@0.74.2)(react@18.3.1) '@shopify/flash-list': specifier: 1.6.4 - version: 1.6.4(@babel/runtime@7.24.4)(react-native@0.74.1)(react@18.3.1) + version: 1.6.4(@babel/runtime@7.24.4)(react-native@0.74.2)(react@18.3.1) '@tanstack/react-query': specifier: ^5.29.2 - version: 5.40.0(react@18.3.1) + version: 5.45.1(react@18.3.1) '@trpc/client': specifier: next - version: 11.0.0-rc.401(@trpc/server@11.0.0-rc.401) + version: 11.0.0-rc.421(@trpc/server@11.0.0-rc.421) '@trpc/react-query': specifier: next - version: 11.0.0-rc.401(@tanstack/react-query@5.40.0)(@trpc/client@11.0.0-rc.401)(@trpc/server@11.0.0-rc.401)(react-dom@18.3.1)(react@18.3.1) + version: 11.0.0-rc.421(@tanstack/react-query@5.45.1)(@trpc/client@11.0.0-rc.421)(@trpc/server@11.0.0-rc.421)(react-dom@18.3.1)(react@18.3.1) '@trpc/server': specifier: next - version: 11.0.0-rc.401 + version: 11.0.0-rc.421 '@uploadthing/expo': specifier: 6.6.0 version: link:../../packages/expo expo: specifier: ~51.0.8 - version: 51.0.9(@babel/core@7.24.4)(@babel/preset-env@7.24.6) + version: 51.0.14(@babel/core@7.24.4)(@babel/preset-env@7.24.7) expo-dev-client: specifier: ~4.0.10 - version: 4.0.15(expo@51.0.9) + version: 4.0.18(expo@51.0.14) expo-document-picker: specifier: ^12.0.1 - version: 12.0.1(expo@51.0.9) + version: 12.0.2(expo@51.0.14) expo-haptics: specifier: ~13.0.1 - version: 13.0.1(expo@51.0.9) + version: 13.0.1(expo@51.0.14) expo-image: specifier: ^1.10.6 - version: 1.12.9(expo@51.0.9) + version: 1.12.12(expo@51.0.14) expo-image-picker: specifier: ^15.0.4 - version: 15.0.5(expo@51.0.9) + version: 15.0.5(expo@51.0.14) expo-linking: specifier: ~6.3.1 - version: 6.3.1(expo@51.0.9) + version: 6.3.1(expo@51.0.14) expo-router: specifier: ~3.5.9 - version: 3.5.14(expo-constants@15.4.6)(expo-linking@6.3.1)(expo-modules-autolinking@1.11.1)(expo-status-bar@1.12.1)(expo@51.0.9)(react-native-reanimated@3.10.1)(react-native-safe-area-context@4.10.1)(react-native-screens@3.31.1)(react-native@0.74.1)(react@18.3.1)(typescript@5.5.2) + version: 3.5.16(expo-constants@15.4.6)(expo-linking@6.3.1)(expo-modules-autolinking@1.11.1)(expo-status-bar@1.12.1)(expo@51.0.14)(react-native-reanimated@3.10.1)(react-native-safe-area-context@4.10.1)(react-native-screens@3.31.1)(react-native@0.74.2)(react@18.3.1)(typescript@5.5.2) expo-splash-screen: specifier: ~0.27.4 - version: 0.27.4(expo-modules-autolinking@1.11.1)(expo@51.0.9) + version: 0.27.5(expo-modules-autolinking@1.11.1)(expo@51.0.14) expo-status-bar: specifier: ~1.12.1 version: 1.12.1 expo-web-browser: specifier: ^13.0.3 - version: 13.0.3(expo@51.0.9) + version: 13.0.3(expo@51.0.14) nativewind: specifier: ^4.0.36 - version: 4.0.36(@babel/core@7.24.4)(react-native-reanimated@3.10.1)(react-native-safe-area-context@4.10.1)(react-native@0.74.1)(react@18.3.1)(tailwindcss@3.4.3) + version: 4.0.36(@babel/core@7.24.4)(react-native-reanimated@3.10.1)(react-native-safe-area-context@4.10.1)(react-native@0.74.2)(react@18.3.1)(tailwindcss@3.4.3) react: specifier: 18.3.1 version: 18.3.1 @@ -413,19 +413,19 @@ importers: version: 18.3.1(react@18.3.1) react-native: specifier: ^0.74.1 - version: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6)(@types/react@18.3.3)(react@18.3.1) + version: 0.74.2(@babel/core@7.24.4)(@babel/preset-env@7.24.7)(@types/react@18.3.3)(react@18.3.1) react-native-gesture-handler: specifier: ~2.16.2 - version: 2.16.2(react-native@0.74.1)(react@18.3.1) + version: 2.16.2(react-native@0.74.2)(react@18.3.1) react-native-reanimated: specifier: ~3.10.0 - version: 3.10.1(@babel/core@7.24.4)(react-native@0.74.1)(react@18.3.1) + version: 3.10.1(@babel/core@7.24.4)(react-native@0.74.2)(react@18.3.1) react-native-safe-area-context: specifier: 4.10.1 - version: 4.10.1(react-native@0.74.1)(react@18.3.1) + version: 4.10.1(react-native@0.74.2)(react@18.3.1) react-native-screens: specifier: ~3.31.1 - version: 3.31.1(react-native@0.74.1)(react@18.3.1) + version: 3.31.1(react-native@0.74.2)(react@18.3.1) react-native-web: specifier: ~0.19.12 version: 0.19.12(react-dom@18.3.1)(react@18.3.1) @@ -459,16 +459,16 @@ importers: version: link:../../packages/nuxt nuxt: specifier: ^3.11.2 - version: 3.11.2(@types/node@20.14.0)(@unocss/reset@0.59.4)(floating-vue@5.2.2)(typescript@5.5.2)(unocss@0.59.4)(vite@5.2.10) + version: 3.11.2(@types/node@20.14.8)(@unocss/reset@0.59.4)(floating-vue@5.2.2)(typescript@5.5.2)(unocss@0.59.4)(vite@5.2.10) uploadthing: specifier: 6.12.0 version: link:../../packages/uploadthing vue: specifier: ^3.4.21 - version: 3.4.25(typescript@5.5.2) + version: 3.4.24(typescript@5.5.2) vue-router: specifier: ^4.3.0 - version: 4.3.2(vue@3.4.25) + version: 4.3.2(vue@3.4.24) examples/minimal-pagedir: dependencies: @@ -490,7 +490,7 @@ importers: devDependencies: '@types/node': specifier: ^20.14.0 - version: 20.14.0 + version: 20.14.8 '@types/react': specifier: 18.3.3 version: 18.3.3 @@ -523,11 +523,11 @@ importers: version: link:../../packages/uploadthing vinxi: specifier: 0.3.11 - version: 0.3.11(@types/node@20.14.0) + version: 0.3.11(@types/node@20.14.8) devDependencies: '@types/node': specifier: ^20.14.0 - version: 20.14.0 + version: 20.14.8 postcss: specifier: 8.4.38 version: 8.4.38 @@ -573,13 +573,13 @@ importers: version: 5.5.2 vite: specifier: ^5.1.4 - version: 5.2.10(@types/node@20.14.0) + version: 5.2.10(@types/node@20.14.8) examples/profile-picture: dependencies: '@auth/drizzle-adapter': specifier: ^1.2.0 - version: 1.2.0 + version: 1.4.1 '@libsql/client': specifier: ^0.6.0 version: 0.6.0 @@ -649,7 +649,7 @@ importers: version: 4.0.0-alpha.11(postcss@8.4.38) '@types/node': specifier: ^20.14.0 - version: 20.14.0 + version: 20.14.8 '@types/react': specifier: 18.3.3 version: 18.3.3 @@ -673,7 +673,7 @@ importers: version: 5.5.2 typescript-eslint: specifier: ^7.4.0 - version: 7.9.0(eslint@8.57.0)(typescript@5.5.2) + version: 7.10.0(eslint@8.57.0)(typescript@5.5.2) examples/with-clerk-appdir: dependencies: @@ -707,7 +707,7 @@ importers: version: 8.56.10 '@types/node': specifier: ^20.14.0 - version: 20.14.0 + version: 20.14.8 '@types/react': specifier: 18.3.3 version: 18.3.3 @@ -716,10 +716,10 @@ importers: version: 18.3.0 '@typescript-eslint/eslint-plugin': specifier: ^7.13.1 - version: 7.13.1(@typescript-eslint/parser@7.13.1)(eslint@8.57.0)(typescript@5.5.2) + version: 7.14.1(@typescript-eslint/parser@7.14.1)(eslint@8.57.0)(typescript@5.5.2) '@typescript-eslint/parser': specifier: ^7.13.1 - version: 7.13.1(eslint@8.57.0)(typescript@5.5.2) + version: 7.14.1(eslint@8.57.0)(typescript@5.5.2) eslint: specifier: ^8.57.0 version: 8.57.0 @@ -762,7 +762,7 @@ importers: version: 8.56.10 '@types/node': specifier: ^20.14.0 - version: 20.14.0 + version: 20.14.8 '@types/react': specifier: 18.3.3 version: 18.3.3 @@ -771,10 +771,10 @@ importers: version: 18.3.0 '@typescript-eslint/eslint-plugin': specifier: ^7.13.1 - version: 7.13.1(@typescript-eslint/parser@7.13.1)(eslint@8.57.0)(typescript@5.5.2) + version: 7.14.1(@typescript-eslint/parser@7.14.1)(eslint@8.57.0)(typescript@5.5.2) '@typescript-eslint/parser': specifier: ^7.13.1 - version: 7.13.1(eslint@8.57.0)(typescript@5.5.2) + version: 7.14.1(eslint@8.57.0)(typescript@5.5.2) eslint: specifier: ^8.57.0 version: 8.57.0 @@ -820,7 +820,7 @@ importers: version: 8.56.10 '@types/node': specifier: ^20.14.0 - version: 20.14.0 + version: 20.14.8 '@types/react': specifier: 18.3.3 version: 18.3.3 @@ -829,10 +829,10 @@ importers: version: 18.3.0 '@typescript-eslint/eslint-plugin': specifier: ^7.13.1 - version: 7.13.1(@typescript-eslint/parser@7.13.1)(eslint@8.57.0)(typescript@5.5.2) + version: 7.14.1(@typescript-eslint/parser@7.14.1)(eslint@8.57.0)(typescript@5.5.2) '@typescript-eslint/parser': specifier: ^7.13.1 - version: 7.13.1(eslint@8.57.0)(typescript@5.5.2) + version: 7.14.1(eslint@8.57.0)(typescript@5.5.2) drizzle-kit: specifier: ^0.20.18 version: 0.20.18 @@ -884,7 +884,7 @@ importers: version: 8.56.10 '@types/node': specifier: ^20.14.0 - version: 20.14.0 + version: 20.14.8 '@types/react': specifier: 18.3.3 version: 18.3.3 @@ -893,10 +893,10 @@ importers: version: 18.3.0 '@typescript-eslint/eslint-plugin': specifier: ^7.13.1 - version: 7.13.1(@typescript-eslint/parser@7.13.1)(eslint@8.57.0)(typescript@5.5.2) + version: 7.14.1(@typescript-eslint/parser@7.14.1)(eslint@8.57.0)(typescript@5.5.2) '@typescript-eslint/parser': specifier: ^7.13.1 - version: 7.13.1(eslint@8.57.0)(typescript@5.5.2) + version: 7.14.1(eslint@8.57.0)(typescript@5.5.2) drizzle-kit: specifier: ^0.20.18 version: 0.20.18 @@ -966,7 +966,7 @@ importers: devDependencies: '@types/node': specifier: ^20.14.0 - version: 20.14.0 + version: 20.14.8 '@types/react': specifier: 18.3.3 version: 18.3.3 @@ -1006,7 +1006,7 @@ importers: devDependencies: '@types/node': specifier: ^20.14.0 - version: 20.14.0 + version: 20.14.8 '@types/react': specifier: 18.3.3 version: 18.3.3 @@ -1034,7 +1034,7 @@ importers: devDependencies: '@types/node': specifier: ^20.14.0 - version: 20.14.0 + version: 20.14.8 '@types/react': specifier: 18.3.3 version: 18.3.3 @@ -1065,7 +1065,7 @@ importers: devDependencies: '@types/node': specifier: ^20.14.0 - version: 20.14.0 + version: 20.14.8 '@types/react': specifier: 18.3.3 version: 18.3.3 @@ -1089,7 +1089,7 @@ importers: version: link:../shared effect: specifier: ^3.1.0 - version: 3.2.7 + version: 3.1.0 file-selector: specifier: ^0.6.0 version: 0.6.0 @@ -1105,7 +1105,7 @@ importers: version: link:../../tooling/tsconfig bunchee: specifier: ^5.2.1 - version: 5.2.1(typescript@5.5.2) + version: 5.2.2(typescript@5.5.2) eslint: specifier: ^8.57.0 version: 8.57.0 @@ -1123,7 +1123,7 @@ importers: version: 5.5.2 vue: specifier: ^3.4.21 - version: 3.4.25(typescript@5.5.2) + version: 3.4.24(typescript@5.5.2) packages/expo: dependencies: @@ -1145,25 +1145,25 @@ importers: version: link:../../tooling/tsconfig bunchee: specifier: ^5.2.1 - version: 5.2.1(typescript@5.5.2) + version: 5.2.2(typescript@5.5.2) eslint: specifier: ^8.57.0 version: 8.57.0 expo-constants: specifier: ^15.4.5 - version: 15.4.6(expo@51.0.9) + version: 15.4.6(expo@51.0.14) expo-document-picker: specifier: ^12.0.1 - version: 12.0.1(expo@51.0.9) + version: 12.0.2(expo@51.0.14) expo-image-picker: specifier: ^15.0.4 - version: 15.0.5(expo@51.0.9) + version: 15.0.5(expo@51.0.14) react: specifier: 18.3.1 version: 18.3.1 react-native: specifier: ^0.74.1 - version: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6)(@types/react@18.3.3)(react@18.3.1) + version: 0.74.2(@babel/core@7.24.4)(@babel/preset-env@7.24.7)(@types/react@18.3.3)(react@18.3.1) typescript: specifier: ^5.5.2 version: 5.5.2 @@ -1184,7 +1184,7 @@ importers: version: link:../../tooling/tsconfig bunchee: specifier: ^5.2.1 - version: 5.2.1(typescript@5.5.2) + version: 5.2.2(typescript@5.5.2) eslint: specifier: ^8.57.0 version: 8.57.0 @@ -1206,7 +1206,7 @@ importers: devDependencies: '@nuxt/devtools': specifier: latest - version: 1.3.3(@unocss/reset@0.59.4)(floating-vue@5.2.2)(nuxt@3.11.2)(rollup@3.29.4)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.25) + version: 1.2.0(@unocss/reset@0.59.4)(floating-vue@5.2.2)(nuxt@3.11.2)(rollup@3.29.4)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.25) '@nuxt/module-builder': specifier: ^0.5.5 version: 0.5.5(@nuxt/kit@3.11.2)(nuxi@3.11.1)(typescript@5.5.2) @@ -1227,7 +1227,7 @@ importers: version: 1.11.1 nuxt: specifier: ^3.11.2 - version: 3.11.2(@types/node@20.14.0)(@unocss/reset@0.59.4)(eslint@8.57.0)(floating-vue@5.2.2)(rollup@3.29.4)(typescript@5.5.2)(unocss@0.59.4)(vite@5.2.10) + version: 3.11.2(@types/node@20.14.8)(@unocss/reset@0.59.4)(eslint@8.57.0)(floating-vue@5.2.2)(rollup@3.29.4)(typescript@5.5.2)(unocss@0.59.4)(vite@5.2.10) uploadthing: specifier: workspace:* version: link:../uploadthing @@ -1249,7 +1249,7 @@ importers: devDependencies: '@types/node': specifier: ^20.14.0 - version: 20.14.0 + version: 20.14.8 '@types/react': specifier: 18.3.3 version: 18.3.3 @@ -1264,7 +1264,7 @@ importers: version: link:../../tooling/tsconfig bunchee: specifier: ^5.2.1 - version: 5.2.1(typescript@5.5.2) + version: 5.2.2(typescript@5.5.2) concurrently: specifier: ^8.2.2 version: 8.2.2 @@ -1300,7 +1300,7 @@ importers: version: link:../mime-types effect: specifier: ^3.3.2 - version: 3.3.2 + version: 3.4.2 std-env: specifier: ^3.7.0 version: 3.7.0 @@ -1316,7 +1316,7 @@ importers: version: link:../../tooling/tsconfig bunchee: specifier: ^5.2.1 - version: 5.2.1(typescript@5.5.2) + version: 5.2.2(typescript@5.5.2) eslint: specifier: ^8.57.0 version: 8.57.0 @@ -1331,7 +1331,7 @@ importers: version: 5.5.2 vue: specifier: ^3.4.21 - version: 3.4.25(typescript@5.5.2) + version: 3.4.24(typescript@5.5.2) wait-on: specifier: ^7.2.0 version: 7.2.0 @@ -1426,13 +1426,13 @@ importers: version: link:../uploadthing vite: specifier: ^5.1.4 - version: 5.2.10(@types/node@20.14.0) + version: 5.2.10(@types/node@20.14.8) packages/uploadthing: dependencies: '@effect/schema': specifier: ^0.66.12 - version: 0.66.12(effect@3.2.7)(fast-check@3.18.0) + version: 0.66.12(effect@3.4.2)(fast-check@3.18.0) '@uploadthing/mime-types': specifier: workspace:* version: link:../mime-types @@ -1444,7 +1444,7 @@ importers: version: 3.2.3 effect: specifier: ^3.3.2 - version: 3.3.2 + version: 3.4.2 fast-check: specifier: ^3.18.0 version: 3.18.0 @@ -1454,7 +1454,7 @@ importers: devDependencies: '@effect/platform': specifier: ^0.57.2 - version: 0.57.2(@effect/schema@0.66.12)(effect@3.3.2) + version: 0.57.8(@effect/schema@0.66.12)(effect@3.4.2) '@types/body-parser': specifier: ^1.19.5 version: 1.19.5 @@ -1478,7 +1478,7 @@ importers: version: 1.20.2 bunchee: specifier: ^5.2.1 - version: 5.2.1(typescript@5.5.2) + version: 5.2.2(typescript@5.5.2) eslint: specifier: ^8.57.0 version: 8.57.0 @@ -1496,7 +1496,7 @@ importers: version: 14.2.3(@babel/core@7.24.4)(@playwright/test@1.42.1)(react-dom@18.3.1)(react@18.3.1) nuxt: specifier: ^3.11.2 - version: 3.11.2(@types/node@20.14.0)(@unocss/reset@0.59.4)(eslint@8.57.0)(floating-vue@5.2.2)(rollup@4.18.0)(typescript@5.5.2)(unocss@0.59.4)(vite@5.2.10) + version: 3.11.2(@types/node@20.14.8)(@unocss/reset@0.59.4)(eslint@8.57.0)(floating-vue@5.2.2)(rollup@4.18.0)(typescript@5.5.2)(unocss@0.59.4)(vite@5.2.10) solid-js: specifier: ^1.8.15 version: 1.8.16 @@ -1514,7 +1514,7 @@ importers: version: 6.14.0 vue: specifier: ^3.4.21 - version: 3.4.25(typescript@5.5.2) + version: 3.4.24(typescript@5.5.2) wait-on: specifier: ^7.2.0 version: 7.2.0 @@ -1532,7 +1532,7 @@ importers: version: link:../shared '@vueuse/core': specifier: ^10.9.0 - version: 10.9.0(vue@3.4.25) + version: 10.9.0(vue@3.4.24) file-selector: specifier: ^0.6.0 version: 0.6.0 @@ -1548,7 +1548,7 @@ importers: version: link:../../tooling/tsconfig bunchee: specifier: ^5.2.1 - version: 5.2.1(typescript@5.5.2) + version: 5.2.2(typescript@5.5.2) concurrently: specifier: ^8.2.2 version: 8.2.2 @@ -1563,7 +1563,7 @@ importers: version: link:../uploadthing vue: specifier: ^3.4.21 - version: 3.4.25(typescript@5.5.2) + version: 3.4.24(typescript@5.5.2) wait-on: specifier: ^7.2.0 version: 7.2.0 @@ -1572,7 +1572,7 @@ importers: dependencies: '@hookform/resolvers': specifier: ^3.3.4 - version: 3.4.2(react-hook-form@7.51.5) + version: 3.6.0(react-hook-form@7.52.0) '@radix-ui/react-dialog': specifier: ^1.0.5 version: 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) @@ -1587,19 +1587,19 @@ importers: version: 2.0.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-progress': specifier: ^1.0.3 - version: 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + version: 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-scroll-area': specifier: ^1.0.5 - version: 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + version: 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-slot': specifier: ^1.0.2 version: 1.0.2(@types/react@18.3.3)(react@18.3.1) '@radix-ui/react-tabs': specifier: ^1.0.4 - version: 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + version: 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-tooltip': specifier: ^1.0.7 - version: 1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + version: 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@uploadthing/react': specifier: 6.6.0 version: link:../packages/react @@ -1620,7 +1620,7 @@ importers: version: 18.3.1(react@18.3.1) react-hook-form: specifier: ^7.51.2 - version: 7.51.5(react@18.3.1) + version: 7.52.0(react@18.3.1) server-only: specifier: ^0.0.1 version: 0.0.1 @@ -1642,7 +1642,7 @@ importers: devDependencies: '@types/node': specifier: ^20.11.21 - version: 20.14.0 + version: 20.14.8 '@types/react': specifier: 18.3.3 version: 18.3.3 @@ -1657,22 +1657,22 @@ importers: version: 3.4.3 typescript: specifier: ^5.4.5 - version: 5.4.5 + version: 5.5.2 tooling/eslint-config: dependencies: '@next/eslint-plugin-next': specifier: ^14.2.3 - version: 14.2.3 + version: 14.2.4 '@types/eslint': specifier: ^8.56.4 version: 8.56.10 '@typescript-eslint/eslint-plugin': specifier: ^7.13.1 - version: 7.13.1(@typescript-eslint/parser@7.13.1)(eslint@8.57.0)(typescript@5.5.2) + version: 7.14.1(@typescript-eslint/parser@7.14.1)(eslint@8.57.0)(typescript@5.5.2) '@typescript-eslint/parser': specifier: ^7.13.1 - version: 7.13.1(eslint@8.57.0)(typescript@5.5.2) + version: 7.14.1(eslint@8.57.0)(typescript@5.5.2) '@uploadthing/eslint-plugin': specifier: ^0.1.0 version: link:../eslint-plugin @@ -1681,10 +1681,10 @@ importers: version: 9.1.0(eslint@8.57.0) eslint-config-turbo: specifier: ^2.0.2 - version: 2.0.2(eslint@8.57.0) + version: 2.0.5(eslint@8.57.0) eslint-plugin-import: specifier: ^2.29.1 - version: 2.29.1(@typescript-eslint/parser@7.13.1)(eslint@8.57.0) + version: 2.29.1(@typescript-eslint/parser@7.14.1)(eslint@8.57.0) eslint-plugin-react: specifier: ^7.33.2 version: 7.34.1(eslint@8.57.0) @@ -1706,10 +1706,10 @@ importers: dependencies: '@typescript-eslint/parser': specifier: ^7.13.1 - version: 7.13.1(eslint@8.57.0)(typescript@5.5.2) + version: 7.14.1(eslint@8.57.0)(typescript@5.5.2) '@typescript-eslint/utils': specifier: ^7.13.1 - version: 7.13.1(eslint@8.57.0)(typescript@5.5.2) + version: 7.14.1(eslint@8.57.0)(typescript@5.5.2) devDependencies: '@types/eslint': specifier: ^8.56.4 @@ -1752,6 +1752,13 @@ packages: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} + /@ampproject/remapping@2.2.1: + resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.19 + /@ampproject/remapping@2.3.0: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} @@ -1765,8 +1772,12 @@ packages: execa: 5.1.1 find-up: 5.0.0 - /@antfu/utils@0.7.8: - resolution: {integrity: sha512-rWQkqXRESdjXtc+7NRfK9lASQjpXJu1ayp7qi1d23zZorY+wBHVLHHoVcMsEnkqEBWTFqbztO7/QdJFzyEcLTg==} + /@antfu/utils@0.7.6: + resolution: {integrity: sha512-pvFiLP2BeOKA/ZOS6jxx4XhKzdVLHDhGlFEaZ2flWWYf2xOqVniqpk38I04DFRyz+L0ASggl7SkItTc+ZLju4w==} + dev: false + + /@antfu/utils@0.7.7: + resolution: {integrity: sha512-gFPqTG7otEJ8uP6wrhDv6mqwGWYZKNvAcCq6u9hOj0c+IKCEsY4L1oC9trPq2SaWIzAfHvqfBDxF591JkMf+kg==} /@apidevtools/json-schema-ref-parser@9.0.6: resolution: {integrity: sha512-M3YgsLjI0lZxvrpeGVk9Ap032W6TPQkH6pRAZz81Ac3WUNF79VQooAFnp8umjvVzUmD93NkogxEwbSce7qMsUg==} @@ -1823,7 +1834,7 @@ packages: remark-parse: 11.0.0 remark-rehype: 11.1.0 remark-smartypants: 2.1.0 - shiki: 1.5.2 + shiki: 1.3.0 unified: 11.0.4 unist-util-remove-position: 5.0.0 unist-util-visit: 5.0.0 @@ -1838,7 +1849,7 @@ packages: peerDependencies: astro: ^4.2.0 dependencies: - astro: 4.6.3(@types/node@20.14.0)(typescript@5.5.2) + astro: 4.6.3(@types/node@20.14.8)(typescript@5.5.2) send: 0.18.0 server-destroy: 1.0.1 transitivePeerDependencies: @@ -1866,7 +1877,7 @@ packages: '@vitejs/plugin-react': 4.2.1(vite@5.2.10) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - ultrahtml: 1.5.3 + ultrahtml: 1.3.0 transitivePeerDependencies: - supports-color - vite @@ -1910,10 +1921,33 @@ packages: preact-render-to-string: 5.2.3(preact@10.11.3) dev: false - /@auth/drizzle-adapter@1.2.0: - resolution: {integrity: sha512-95LHWlgtR4rQeHy4bACiVgTZdWkkEpVXYJim1IqbF1Hy0MnnMalmfGuIlNcOi64+6iC17j5FkDsMchqGwvj2Dg==} + /@auth/core@0.34.1: + resolution: {integrity: sha512-tuYU2VIbI8rFbkSwP710LmybB2FXJsPN7j3sjRVfN9SXVQBK2ej6LdewQaofpBGp4Mk+cC2UeiGNH0or4tgaeA==} + peerDependencies: + '@simplewebauthn/browser': ^9.0.1 + '@simplewebauthn/server': ^9.0.2 + nodemailer: ^6.8.0 + peerDependenciesMeta: + '@simplewebauthn/browser': + optional: true + '@simplewebauthn/server': + optional: true + nodemailer: + optional: true dependencies: - '@auth/core': 0.32.0 + '@panva/hkdf': 1.1.1 + '@types/cookie': 0.6.0 + cookie: 0.6.0 + jose: 5.3.0 + oauth4webapi: 2.10.4 + preact: 10.11.3 + preact-render-to-string: 5.2.3(preact@10.11.3) + dev: false + + /@auth/drizzle-adapter@1.4.1: + resolution: {integrity: sha512-pUC8D0jfANDvThH1CrcUXmjZyF98ccVMY3iEZUQzUTr0U1csuppvRoz5JccOLzjv3tu+Nb9Qd6SvrmmsnuYgSw==} + dependencies: + '@auth/core': 0.34.1 transitivePeerDependencies: - '@simplewebauthn/browser' - '@simplewebauthn/server' @@ -1923,17 +1957,28 @@ packages: /@babel/code-frame@7.10.4: resolution: {integrity: sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==} dependencies: - '@babel/highlight': 7.24.6 + '@babel/highlight': 7.24.2 + + /@babel/code-frame@7.24.2: + resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.24.2 + picocolors: 1.0.0 - /@babel/code-frame@7.24.6: - resolution: {integrity: sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==} + /@babel/code-frame@7.24.7: + resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.24.6 + '@babel/highlight': 7.24.7 picocolors: 1.0.0 - /@babel/compat-data@7.24.6: - resolution: {integrity: sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==} + /@babel/compat-data@7.24.4: + resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==} + engines: {node: '>=6.9.0'} + + /@babel/compat-data@7.24.7: + resolution: {integrity: sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==} engines: {node: '>=6.9.0'} /@babel/core@7.24.4: @@ -1941,15 +1986,15 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.6 + '@babel/code-frame': 7.24.2 '@babel/generator': 7.24.4 - '@babel/helper-compilation-targets': 7.24.6 - '@babel/helper-module-transforms': 7.24.6(@babel/core@7.24.4) + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) '@babel/helpers': 7.24.4 - '@babel/parser': 7.24.6 - '@babel/template': 7.24.6 + '@babel/parser': 7.24.4 + '@babel/template': 7.24.0 '@babel/traverse': 7.24.1 - '@babel/types': 7.24.6 + '@babel/types': 7.24.0 convert-source-map: 2.0.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -1962,58 +2007,123 @@ packages: resolution: {integrity: sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.6 + '@babel/types': 7.24.0 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 + + /@babel/generator@7.24.7: + resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.7 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 - /@babel/helper-annotate-as-pure@7.24.6: - resolution: {integrity: sha512-DitEzDfOMnd13kZnDqns1ccmftwJTS9DMkyn9pYTxulS7bZxUxpMly3Nf23QQ6NwA4UB8lAqjbqWtyvElEMAkg==} + /@babel/helper-annotate-as-pure@7.22.5: + resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.6 + '@babel/types': 7.24.0 - /@babel/helper-builder-binary-assignment-operator-visitor@7.24.6: - resolution: {integrity: sha512-+wnfqc5uHiMYtvRX7qu80Toef8BXeh4HHR1SPeonGb1SKPniNEd4a/nlaJJMv/OIEYvIVavvo0yR7u10Gqz0Iw==} + /@babel/helper-annotate-as-pure@7.24.7: + resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.6 + '@babel/types': 7.24.7 - /@babel/helper-compilation-targets@7.24.6: - resolution: {integrity: sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==} + /@babel/helper-builder-binary-assignment-operator-visitor@7.24.7: + resolution: {integrity: sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/compat-data': 7.24.6 - '@babel/helper-validator-option': 7.24.6 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color + + /@babel/helper-compilation-targets@7.23.6: + resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': 7.24.4 + '@babel/helper-validator-option': 7.23.5 + browserslist: 4.23.0 + lru-cache: 5.1.1 + semver: 6.3.1 + + /@babel/helper-compilation-targets@7.24.7: + resolution: {integrity: sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': 7.24.7 + '@babel/helper-validator-option': 7.24.7 browserslist: 4.23.0 lru-cache: 5.1.1 semver: 6.3.1 - /@babel/helper-create-class-features-plugin@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-djsosdPJVZE6Vsw3kk7IPRWethP94WHGOhQTc67SNXE0ZzMhHgALw8iGmYS0TD1bbMM0VDROy43od7/hN6WYcA==} + /@babel/helper-create-class-features-plugin@7.22.10(@babel/core@7.24.4): + resolution: {integrity: sha512-5IBb77txKYQPpOEdUdIhBx8VrZyDCQ+H82H0+5dX1TmuscP5vJKEE3cKurjtIw/vFwzbVH48VweE78kVDBrqjA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-function-name': 7.22.5 + '@babel/helper-member-expression-to-functions': 7.22.5 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.24.4) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + semver: 6.3.1 + dev: true + + /@babel/helper-create-class-features-plugin@7.24.4(@babel/core@7.24.4): + resolution: {integrity: sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.4) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + semver: 6.3.1 + + /@babel/helper-create-class-features-plugin@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-annotate-as-pure': 7.24.6 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-function-name': 7.24.6 - '@babel/helper-member-expression-to-functions': 7.24.6 - '@babel/helper-optimise-call-expression': 7.24.6 - '@babel/helper-replace-supers': 7.24.6(@babel/core@7.24.4) - '@babel/helper-skip-transparent-expression-wrappers': 7.24.6 - '@babel/helper-split-export-declaration': 7.24.6 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-member-expression-to-functions': 7.24.7 + '@babel/helper-optimise-call-expression': 7.24.7 + '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.4) + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 semver: 6.3.1 + transitivePeerDependencies: + - supports-color - /@babel/helper-create-regexp-features-plugin@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-C875lFBIWWwyv6MHZUG9HmRrlTDgOsLWZfYR0nW69gaKJNe0/Mpxx5r0EID2ZdHQkdUmQo2t0uNckTL08/1BgA==} + /@babel/helper-create-regexp-features-plugin@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-annotate-as-pure': 7.24.6 + '@babel/helper-annotate-as-pure': 7.24.7 regexpu-core: 5.3.2 semver: 6.3.1 @@ -2023,197 +2133,393 @@ packages: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-compilation-targets': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.24.7 debug: 4.3.4 lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: - supports-color - /@babel/helper-environment-visitor@7.24.6: - resolution: {integrity: sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g==} + + /@babel/helper-environment-visitor@7.22.20: + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + engines: {node: '>=6.9.0'} + + /@babel/helper-environment-visitor@7.22.5: + resolution: {integrity: sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-environment-visitor@7.24.7: + resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.7 + + /@babel/helper-function-name@7.22.5: + resolution: {integrity: sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.24.0 + '@babel/types': 7.24.0 + dev: true + + /@babel/helper-function-name@7.23.0: + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.24.0 + '@babel/types': 7.24.0 - /@babel/helper-function-name@7.24.6: - resolution: {integrity: sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==} + /@babel/helper-function-name@7.24.7: + resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.24.6 - '@babel/types': 7.24.6 + '@babel/template': 7.24.7 + '@babel/types': 7.24.7 - /@babel/helper-hoist-variables@7.24.6: - resolution: {integrity: sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA==} + /@babel/helper-hoist-variables@7.22.5: + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.6 + '@babel/types': 7.24.0 - /@babel/helper-member-expression-to-functions@7.24.6: - resolution: {integrity: sha512-OTsCufZTxDUsv2/eDXanw/mUZHWOxSbEmC3pP8cgjcy5rgeVPWWMStnv274DV60JtHxTk0adT0QrCzC4M9NWGg==} + /@babel/helper-hoist-variables@7.24.7: + resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.6 + '@babel/types': 7.24.7 + + /@babel/helper-member-expression-to-functions@7.22.5: + resolution: {integrity: sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 + dev: true + + /@babel/helper-member-expression-to-functions@7.23.0: + resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 + + /@babel/helper-member-expression-to-functions@7.24.7: + resolution: {integrity: sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color /@babel/helper-module-imports@7.18.6: resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.6 + '@babel/types': 7.24.0 + + /@babel/helper-module-imports@7.22.5: + resolution: {integrity: sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 + + /@babel/helper-module-imports@7.24.3: + resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 - /@babel/helper-module-imports@7.24.6: - resolution: {integrity: sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g==} + /@babel/helper-module-imports@7.24.7: + resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.6 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color - /@babel/helper-module-transforms@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==} + /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.4): + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-module-imports': 7.24.6 - '@babel/helper-simple-access': 7.24.6 - '@babel/helper-split-export-declaration': 7.24.6 - '@babel/helper-validator-identifier': 7.24.6 - - /@babel/helper-optimise-call-expression@7.24.6: - resolution: {integrity: sha512-3SFDJRbx7KuPRl8XDUr8O7GAEB8iGyWPjLKJh/ywP/Iy9WOmEfMrsWbaZpvBu2HSYn4KQygIsz0O7m8y10ncMA==} + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.24.3 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 + + /@babel/helper-module-transforms@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==} engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: - '@babel/types': 7.24.6 + '@babel/core': 7.24.4 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-simple-access': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + transitivePeerDependencies: + - supports-color + + /@babel/helper-optimise-call-expression@7.22.5: + resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 - /@babel/helper-plugin-utils@7.24.6: - resolution: {integrity: sha512-MZG/JcWfxybKwsA9N9PmtF2lOSFSEMVCpIRrbxccZFLJPrJciJdG/UhSh5W96GEteJI2ARqm5UAHxISwRDLSNg==} + /@babel/helper-optimise-call-expression@7.24.7: + resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.7 + + /@babel/helper-plugin-utils@7.22.5: + resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} + engines: {node: '>=6.9.0'} + + /@babel/helper-plugin-utils@7.24.0: + resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} + engines: {node: '>=6.9.0'} + + /@babel/helper-plugin-utils@7.24.7: + resolution: {integrity: sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==} + engines: {node: '>=6.9.0'} + + /@babel/helper-remap-async-to-generator@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-wrap-function': 7.24.7 + transitivePeerDependencies: + - supports-color + /@babel/helper-replace-supers@7.22.9(@babel/core@7.24.4): + resolution: {integrity: sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-member-expression-to-functions': 7.22.5 + '@babel/helper-optimise-call-expression': 7.22.5 + dev: true - /@babel/helper-remap-async-to-generator@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-1Qursq9ArRZPAMOZf/nuzVW8HgJLkTB9y9LfP4lW2MVp4e9WkLJDovfKBxoDcCk6VuzIxyqWHyBoaCtSRP10yg==} + /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-annotate-as-pure': 7.24.6 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-wrap-function': 7.24.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 - /@babel/helper-replace-supers@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-mRhfPwDqDpba8o1F8ESxsEkJMQkUF8ZIWrAc0FtWhxnjfextxMWxr22RtFizxxSYLjVHDeMgVsRq8BBZR2ikJQ==} + /@babel/helper-replace-supers@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-member-expression-to-functions': 7.24.6 - '@babel/helper-optimise-call-expression': 7.24.6 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-member-expression-to-functions': 7.24.7 + '@babel/helper-optimise-call-expression': 7.24.7 + transitivePeerDependencies: + - supports-color + + /@babel/helper-simple-access@7.22.5: + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 + + /@babel/helper-simple-access@7.24.7: + resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color - /@babel/helper-simple-access@7.24.6: - resolution: {integrity: sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==} + /@babel/helper-skip-transparent-expression-wrappers@7.22.5: + resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.6 + '@babel/types': 7.24.0 + + /@babel/helper-skip-transparent-expression-wrappers@7.24.7: + resolution: {integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color - /@babel/helper-skip-transparent-expression-wrappers@7.24.6: - resolution: {integrity: sha512-jhbbkK3IUKc4T43WadP96a27oYti9gEf1LdyGSP2rHGH77kwLwfhO7TgwnWvxxQVmke0ImmCSS47vcuxEMGD3Q==} + /@babel/helper-split-export-declaration@7.22.6: + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.6 + '@babel/types': 7.24.0 - /@babel/helper-split-export-declaration@7.24.6: - resolution: {integrity: sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==} + /@babel/helper-split-export-declaration@7.24.7: + resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.6 + '@babel/types': 7.24.7 + + /@babel/helper-string-parser@7.22.5: + resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} + engines: {node: '>=6.9.0'} + + /@babel/helper-string-parser@7.24.1: + resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} + engines: {node: '>=6.9.0'} + + /@babel/helper-string-parser@7.24.7: + resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==} + engines: {node: '>=6.9.0'} - /@babel/helper-string-parser@7.24.6: - resolution: {integrity: sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==} + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-identifier@7.24.6: - resolution: {integrity: sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==} + /@babel/helper-validator-identifier@7.22.5: + resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-option@7.24.6: - resolution: {integrity: sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==} + /@babel/helper-validator-identifier@7.24.7: + resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} - /@babel/helper-wrap-function@7.24.6: - resolution: {integrity: sha512-f1JLrlw/jbiNfxvdrfBgio/gRBk3yTAEJWirpAkiJG2Hb22E7cEYKHWo0dFPTv/niPovzIdPdEDetrv6tC6gPQ==} + /@babel/helper-validator-option@7.22.5: + resolution: {integrity: sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-option@7.23.5: + resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-option@7.24.7: + resolution: {integrity: sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==} + engines: {node: '>=6.9.0'} + + /@babel/helper-wrap-function@7.24.7: + resolution: {integrity: sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-function-name': 7.24.6 - '@babel/template': 7.24.6 - '@babel/types': 7.24.6 + '@babel/helper-function-name': 7.24.7 + '@babel/template': 7.24.7 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color /@babel/helpers@7.24.4: resolution: {integrity: sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.24.6 + '@babel/template': 7.24.0 '@babel/traverse': 7.24.1 - '@babel/types': 7.24.6 + '@babel/types': 7.24.0 transitivePeerDependencies: - supports-color - /@babel/highlight@7.24.6: - resolution: {integrity: sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==} + /@babel/highlight@7.24.2: + resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.24.6 + '@babel/helper-validator-identifier': 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 picocolors: 1.0.0 - /@babel/parser@7.24.6: - resolution: {integrity: sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==} + /@babel/highlight@7.24.7: + resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.24.7 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.0.0 + + /@babel/parser@7.22.10: + resolution: {integrity: sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.24.6 + '@babel/types': 7.24.0 - /@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-bYndrJ6Ph6Ar+GaB5VAc0JPoP80bQCm4qon6JEzXfRl5QZyQ8Ur1K6k7htxWmPA5z+k7JQvaMUrtXlqclWYzKw==} + /@babel/parser@7.24.4: + resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.24.0 + + /@babel/parser@7.24.7: + resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.24.7 + + /@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-iVuhb6poq5ikqRq2XWU6OQ+R5o9wF+r/or9CeUyovgptz0UlnK4/seOQ1Istu/XybYjAhQv1FRSSfHHufIku5Q==} + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-c8TER5xMDYzzFcGqOEp9l4hvB7dcbhcGjcLVwxWfe4P5DOafdwjsBJZKsmv+o3aXh7NhopvayQIovHrh2zSRUQ==} + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.6 - '@babel/plugin-transform-optional-chaining': 7.24.6(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/plugin-transform-optional-chaining': 7.24.7(@babel/core@7.24.4) + transitivePeerDependencies: + - supports-color - /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-z8zEjYmwBUHN/pCF3NuWBhHQjJCrd33qAi8MgANfMrAvn72k2cImT8VjK9LJFu4ysOLJqhfkYYb3MvwANRUNZQ==} + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 /@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.24.4): resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==} @@ -2223,10 +2529,12 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-remap-async-to-generator': 7.24.6(@babel/core@7.24.4) + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.24.4) '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.4) + transitivePeerDependencies: + - supports-color /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.24.4): resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} @@ -2236,8 +2544,8 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-create-class-features-plugin': 7.24.6(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-proposal-decorators@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-zPEvzFijn+hRvJuX2Vu3KbEBN39LN3f7tW3MQO2LsIs57B26KU+kUc82BdAktS1VCM6libzh45eKGI65lg0cpA==} @@ -2246,19 +2554,19 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-create-class-features-plugin': 7.24.6(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-decorators': 7.24.1(@babel/core@7.24.4) - /@babel/plugin-proposal-export-default-from@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-qPPDbYs9j5IArMFqYi85QxatHURSzRyskKpIbjrVoVglDuGdhu1s7UTCmXvP/qR2aHa3EdJ8X3iZvQAHjmdHUw==} + /@babel/plugin-proposal-export-default-from@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-CcmFwUJ3tKhLjPdt4NP+SHMshebytF8ZTYOv5ZDpkzq2sin80Wb5vJrGt8fhPrORQCfoSa0LAxC/DW+GAC5+Hw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-export-default-from': 7.24.6(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-export-default-from': 7.24.7(@babel/core@7.24.4) /@babel/plugin-proposal-logical-assignment-operators@7.20.7(@babel/core@7.24.4): resolution: {integrity: sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==} @@ -2268,7 +2576,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.4) /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.24.4): @@ -2279,7 +2587,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4) /@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.24.4): @@ -2290,7 +2598,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.4) /@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.24.4): @@ -2300,12 +2608,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.24.6 + '@babel/compat-data': 7.24.4 '@babel/core': 7.24.4 - '@babel/helper-compilation-targets': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-transform-parameters': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.4) /@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.24.4): resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} @@ -2315,7 +2623,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.4) /@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.24.4): @@ -2326,8 +2634,8 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.6 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4) /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.4): @@ -2344,7 +2652,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.4): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} @@ -2352,7 +2660,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.4): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} @@ -2361,7 +2669,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 /@babel/plugin-syntax-decorators@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-05RJdO/cCrtVWuAaSn1tS3bH8jbsJa/Y1uD186u6J4C/1mnHFxseeuWpsqr9anvo7TUulev7tm7GDwRV+VuhDw==} @@ -2370,7 +2678,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.4): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} @@ -2378,16 +2686,16 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-export-default-from@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-Nzl7kZ4tjOM2LJpejBMPwZs7OJfc26++2HsMQuSrw6gxpqXGtZZ3Rj4Zt4Qm7vulMZL2gHIGGc2stnlQnHQCqA==} + /@babel/plugin-syntax-export-default-from@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-bTPz4/635WQ9WhwsyPdxUJDVpsi/X9BMmy/8Rf/UAlOO4jSql4CxUCjWI5PiM+jG+c4LVPTScoTw80geFj9+Bw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.4): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} @@ -2395,34 +2703,43 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 + + /@babel/plugin-syntax-flow@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-9G8GYT/dxn/D1IIKOUBmGX0mnmj46mGH9NnZyJLwtCpgh5f7D2VbuKodb+2s9m1Yavh1s7ASQN8lf0eqrb1LTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-flow@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-gNkksSdV8RbsCoHF9sjVYrHfYACMl/8U32UfUhJ9+84/ASXw8dlx+eHyyF0m6ncQJ9IBSxfuCkB36GJqYdXTOA==} + /@babel/plugin-syntax-import-assertions@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-syntax-import-assertions@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-BE6o2BogJKJImTmGpkmOic4V0hlRRxVtzqxiSPa8TIFxyhi4EFjHm08nq1M4STK4RytuLMgnSz0/wfflvGFNOg==} + /@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.24.4): + resolution: {integrity: sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-import-attributes@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-D+CfsVZousPXIdudSII7RGy52+dYRtbyKAZcvtQKq/NpsivyMVduepzcLqG5pMBugtMdedxdC8Ramdpcne9ZWQ==} + /@babel/plugin-syntax-import-attributes@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.4): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} @@ -2430,7 +2747,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.4): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} @@ -2438,16 +2755,34 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 + + /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.24.4): + resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-jsx@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-lWfvAIFNWMlCsU0DRUun2GpFwZdGTukLaHJqRh1JRb80NdAP5Sb1HDHB5X9P9OtgZHQl089UzQkpYlBq2VTPRw==} + /@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.4): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} @@ -2455,7 +2790,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.4): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} @@ -2463,7 +2798,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.4): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} @@ -2471,7 +2806,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.4): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} @@ -2479,7 +2814,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.4): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} @@ -2487,7 +2822,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.4): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} @@ -2495,7 +2830,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.4): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} @@ -2504,7 +2839,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.4): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} @@ -2513,7 +2848,16 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 + + /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.24.4): + resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} @@ -2522,7 +2866,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.4): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} @@ -2531,415 +2875,470 @@ packages: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-create-regexp-features-plugin': 7.24.6(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-arrow-functions@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-jSSSDt4ZidNMggcLx8SaKsbGNEfIl0PHx/4mFEulorE7bpYLbN0d3pDW3eJ7Y5Z3yPhy3L3NaPCYyTUY7TuugQ==} + /@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-async-generator-functions@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-VEP2o4iR2DqQU6KPgizTW2mnMx6BG5b5O9iQdrW9HesLkv8GIA8x2daXBQxw1MrsIkFQGA/iJ204CKoQ8UcnAA==} + /@babel/plugin-transform-async-generator-functions@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-remap-async-to-generator': 7.24.6(@babel/core@7.24.4) + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.24.4) '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.4) + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-async-to-generator@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-NTBA2SioI3OsHeIn6sQmhvXleSl9T70YY/hostQLveWs0ic+qvbA3fa0kwAwQ0OA/XGaAerNZRQGJyRfhbJK4g==} + /@babel/plugin-transform-async-to-generator@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-module-imports': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-remap-async-to-generator': 7.24.6(@babel/core@7.24.4) + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.24.4) + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-block-scoped-functions@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-XNW7jolYHW9CwORrZgA/97tL/k05qe/HL0z/qqJq1mdWhwwCM6D4BJBV7wAz9HgFziN5dTOG31znkVIzwxv+vw==} + /@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-block-scoping@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-S/t1Xh4ehW7sGA7c1j/hiOBLnEYCp/c2sEG4ZkL8kI1xX9tW2pqJTCHKtdhe/jHKt8nG0pFCrDHUXd4DvjHS9w==} + /@babel/plugin-transform-block-scoping@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-class-properties@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-j6dZ0Z2Z2slWLR3kt9aOmSIrBvnntWjMDN/TVcMPxhXMLmJVqX605CBRlcGI4b32GMbfifTEsdEjGjiE+j/c3A==} + /@babel/plugin-transform-class-properties@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-create-class-features-plugin': 7.24.6(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.7 + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-class-static-block@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-1QSRfoPI9RoLRa8Mnakc6v3e0gJxiZQTYrMfLn+mD0sz5+ndSzwymp2hDcYJTyT0MOn0yuWzj8phlIvO72gTHA==} + /@babel/plugin-transform-class-static-block@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-create-class-features-plugin': 7.24.6(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.4) + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-classes@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-+fN+NO2gh8JtRmDSOB6gaCVo36ha8kfCW1nMq2Gc0DABln0VcHN4PrALDvF5/diLzIRKptC7z/d7Lp64zk92Fg==} + /@babel/plugin-transform-classes@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-CFbbBigp8ln4FU6Bpy6g7sE8B/WmCmzvivzUC6xDAdWVsjYTXijpuuGJmYkAaoWAzcItGKT3IOAbxRItZ5HTjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-annotate-as-pure': 7.24.6 - '@babel/helper-compilation-targets': 7.24.6 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-function-name': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-replace-supers': 7.24.6(@babel/core@7.24.4) - '@babel/helper-split-export-declaration': 7.24.6 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-compilation-targets': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.4) + '@babel/helper-split-export-declaration': 7.24.7 globals: 11.12.0 + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-computed-properties@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-cRzPobcfRP0ZtuIEkA8QzghoUpSB3X3qSH5W2+FzG+VjWbJXExtx0nbRqwumdBN1x/ot2SlTNQLfBCnPdzp6kg==} + /@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/template': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/template': 7.24.7 - /@babel/plugin-transform-destructuring@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-YLW6AE5LQpk5npNXL7i/O+U9CE4XsBCuRPgyjl1EICZYKmcitV+ayuuUGMJm2lC1WWjXYszeTnIxF/dq/GhIZQ==} + /@babel/plugin-transform-destructuring@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-dotall-regex@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-rCXPnSEKvkm/EjzOtLoGvKseK+dS4kZwx1HexO3BtRtgL0fQ34awHn34aeSHuXtZY2F8a1X8xqBBPRtOxDVmcA==} + /@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-create-regexp-features-plugin': 7.24.6(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-duplicate-keys@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-/8Odwp/aVkZwPFJMllSbawhDAO3UJi65foB00HYnK/uXvvCPm0TAXSByjz1mpRmp0q6oX2SIxpkUOpPFHk7FLA==} + /@babel/plugin-transform-duplicate-keys@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-dynamic-import@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-vpq8SSLRTBLOHUZHSnBqVo0AKX3PBaoPs2vVzYVWslXDTDIpwAcCDtfhUcHSQQoYoUvcFPTdC8TZYXu9ZnLT/w==} + /@babel/plugin-transform-dynamic-import@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.4) - /@babel/plugin-transform-exponentiation-operator@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-EemYpHtmz0lHE7hxxxYEuTYOOBZ43WkDgZ4arQ4r+VX9QHuNZC+WH3wUWmRNvR8ECpTRne29aZV6XO22qpOtdA==} + /@babel/plugin-transform-exponentiation-operator@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-export-namespace-from@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-inXaTM1SVrIxCkIJ5gqWiozHfFMStuGbGJAxZFBoHcRRdDP0ySLb3jH6JOwmfiinPwyMZqMBX+7NBDCO4z0NSA==} + /@babel/plugin-transform-export-namespace-from@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.4) - /@babel/plugin-transform-flow-strip-types@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-1l8b24NoCpaQ13Vi6FtLG1nv6kNoi8PWvQb1AYO7GHZDpFfBYc3lbXArx1lP2KRt8b4pej1eWc/zrRmsQTfOdQ==} + /@babel/plugin-transform-flow-strip-types@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-cjRKJ7FobOH2eakx7Ja+KpJRj8+y+/SiB3ooYm/n2UJfxu0oEaOoxOinitkJcPqv9KxS0kxTGPUaR7L2XcXDXA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-flow': 7.24.6(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.24.4) - /@babel/plugin-transform-for-of@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-n3Sf72TnqK4nw/jziSqEl1qaWPbCRw2CziHH+jdRYvw4J6yeCzsj4jdw8hIntOEeDGTmHVe2w4MVL44PN0GMzg==} + /@babel/plugin-transform-for-of@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-function-name@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-sOajCu6V0P1KPljWHKiDq6ymgqB+vfo3isUS4McqW1DZtvSVU2v/wuMhmRmkg3sFoq6GMaUUf8W4WtoSLkOV/Q==} + /@babel/plugin-transform-function-name@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-compilation-targets': 7.24.6 - '@babel/helper-function-name': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-compilation-targets': 7.24.7 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-json-strings@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-Uvgd9p2gUnzYJxVdBLcU0KurF8aVhkmVyMKW4MIY1/BByvs3EBpv45q01o7pRTVmTvtQq5zDlytP3dcUgm7v9w==} + /@babel/plugin-transform-json-strings@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.4) - /@babel/plugin-transform-literals@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-f2wHfR2HF6yMj+y+/y07+SLqnOSwRp8KYLpQKOzS58XLVlULhXbiYcygfXQxJlMbhII9+yXDwOUFLf60/TL5tw==} + /@babel/plugin-transform-literals@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-logical-assignment-operators@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-EKaWvnezBCMkRIHxMJSIIylzhqK09YpiJtDbr2wsXTwnO0TxyjMUkaw4RlFIZMIS0iDj0KyIg7H7XCguHu/YDA==} + /@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.4) - /@babel/plugin-transform-member-expression-literals@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-9g8iV146szUo5GWgXpRbq/GALTnY+WnNuRTuRHWWFfWGbP9ukRL0aO/jpu9dmOPikclkxnNsjY8/gsWl6bmZJQ==} + /@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.7 + + /@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.7 + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-modules-amd@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-eAGogjZgcwqAxhyFgqghvoHRr+EYRQPFjUXrTYKBRb5qPnAVxOOglaxc4/byHqjvq/bqO2F3/CGwTHsgKJYHhQ==} + /@babel/plugin-transform-modules-commonjs@7.22.5(@babel/core@7.24.4): + resolution: {integrity: sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-module-transforms': 7.24.6(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-simple-access': 7.22.5 + dev: true - /@babel/plugin-transform-modules-commonjs@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-JEV8l3MHdmmdb7S7Cmx6rbNEjRCgTQMZxllveHO0mx6uiclB0NflCawlQQ6+o5ZrwjUBYPzHm2XoK4wqGVUFuw==} + /@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-module-transforms': 7.24.6(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-simple-access': 7.24.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-simple-access': 7.22.5 - /@babel/plugin-transform-modules-systemjs@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-xg1Z0J5JVYxtpX954XqaaAT6NpAY6LtZXvYFCJmGFJWwtlz2EmJoR8LycFRGNE8dBKizGWkGQZGegtkV8y8s+w==} + /@babel/plugin-transform-modules-commonjs@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-hoist-variables': 7.24.6 - '@babel/helper-module-transforms': 7.24.6(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-validator-identifier': 7.24.6 + '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-simple-access': 7.24.7 + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-modules-umd@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-esRCC/KsSEUvrSjv5rFYnjZI6qv4R1e/iHQrqwbZIoRJqk7xCvEUiN7L1XrmW5QSmQe3n1XD88wbgDTWLbVSyg==} + /@babel/plugin-transform-modules-systemjs@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-module-transforms': 7.24.6(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-hoist-variables': 7.24.7 + '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-named-capturing-groups-regex@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-6DneiCiu91wm3YiNIGDWZsl6GfTTbspuj/toTEqLh9d4cx50UIzSdg+T96p8DuT7aJOBRhFyaE9ZvTHkXrXr6Q==} + /@babel/plugin-transform-modules-umd@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.7 + transitivePeerDependencies: + - supports-color + + /@babel/plugin-transform-named-capturing-groups-regex@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-create-regexp-features-plugin': 7.24.6(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-new-target@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-f8liz9JG2Va8A4J5ZBuaSdwfPqN6axfWRK+y66fjKYbwf9VBLuq4WxtinhJhvp1w6lamKUwLG0slK2RxqFgvHA==} + /@babel/plugin-transform-new-target@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-nullish-coalescing-operator@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-+QlAiZBMsBK5NqrBWFXCYeXyiU1y7BQ/OYaiPAcQJMomn5Tyg+r5WuVtyEuvTbpV7L25ZSLfE+2E9ywj4FD48A==} + /@babel/plugin-transform-nullish-coalescing-operator@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4) - /@babel/plugin-transform-numeric-separator@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-6voawq8T25Jvvnc4/rXcWZQKKxUNZcKMS8ZNrjxQqoRFernJJKjE3s18Qo6VFaatG5aiX5JV1oPD7DbJhn0a4Q==} + /@babel/plugin-transform-numeric-separator@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.4) - /@babel/plugin-transform-object-rest-spread@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-OKmi5wiMoRW5Smttne7BwHM8s/fb5JFs+bVGNSeHWzwZkWXWValR1M30jyXo1s/RaqgwwhEC62u4rFH/FBcBPg==} + /@babel/plugin-transform-object-rest-spread@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-compilation-targets': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-compilation-targets': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-transform-parameters': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.4) - /@babel/plugin-transform-object-super@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-N/C76ihFKlZgKfdkEYKtaRUtXZAgK7sOY4h2qrbVbVTXPrKGIi8aww5WGe/+Wmg8onn8sr2ut6FXlsbu/j6JHg==} + /@babel/plugin-transform-object-super@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-replace-supers': 7.24.6(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.4) + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-optional-catch-binding@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-L5pZ+b3O1mSzJ71HmxSCmTVd03VOT2GXOigug6vDYJzE5awLI7P1g0wFcdmGuwSDSrQ0L2rDOe/hHws8J1rv3w==} + /@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.4) - /@babel/plugin-transform-optional-chaining@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-cHbqF6l1QP11OkYTYQ+hhVx1E017O5ZcSPXk9oODpqhcAD1htsWG2NpHrrhthEO2qZomLK0FXS+u7NfrkF5aOQ==} + /@babel/plugin-transform-optional-chaining@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-tK+0N9yd4j+x/4hxF3F0e0fu/VdcxU18y5SevtyM/PCFlQvXbR0Zmlo2eBrKtVipGNFzpq56o8WsIIKcJFUCRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4) + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-parameters@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-ST7guE8vLV+vI70wmAxuZpIKzVjvFX9Qs8bl5w6tN/6gOypPWUmMQL2p7LJz5E63vEGrDhAiYetniJFyBH1RkA==} + /@babel/plugin-transform-parameters@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-private-methods@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-T9LtDI0BgwXOzyXrvgLTT8DFjCC/XgWLjflczTLXyvxbnSR/gpv0hbmzlHE/kmh9nOvlygbamLKRo6Op4yB6aw==} + /@babel/plugin-transform-private-methods@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-create-class-features-plugin': 7.24.6(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.7 + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-private-property-in-object@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-Qu/ypFxCY5NkAnEhCF86Mvg3NSabKsh/TPpBVswEdkGl7+FbsYHy1ziRqJpwGH4thBdQHh8zx+z7vMYmcJ7iaQ==} + /@babel/plugin-transform-private-property-in-object@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-annotate-as-pure': 7.24.6 - '@babel/helper-create-class-features-plugin': 7.24.6(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.4) + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-property-literals@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-oARaglxhRsN18OYsnPTpb8TcKQWDYNsPNmTnx5++WOAsUJ0cSC/FZVlIJCKvPbU4yn/UXsS0551CFKJhN0CaMw==} + /@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-react-display-name@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-/3iiEEHDsJuj9QU09gbyWGSUxDboFcD7Nj6dnHIlboWSodxXAoaY/zlNMHeYAC0WsERMqgO9a7UaM77CsYgWcg==} + /@babel/plugin-transform-react-display-name@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-react-jsx-development@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-F7EsNp5StNDouSSdYyDSxh4J+xvj/JqG+Cb6s2fA+jCyHOzigG5vTwgH8tU2U8Voyiu5zCG9bAK49wTr/wPH0w==} + /@babel/plugin-transform-react-jsx-development@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/plugin-transform-react-jsx': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-react-jsx': 7.24.7(@babel/core@7.24.4) + transitivePeerDependencies: + - supports-color /@babel/plugin-transform-react-jsx-self@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-kDJgnPujTmAZ/9q2CN4m2/lRsUUPDvsG3+tSHWUJIzMGTt5U/b/fwWd3RO3n+5mjLrsBrVa5eKFRVSQbi3dF1w==} @@ -2948,7 +3347,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-transform-react-jsx-source@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA==} @@ -2957,59 +3356,74 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-transform-react-jsx@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-pCtPHhpRZHfwdA5G1Gpk5mIzMA99hv0R8S/Ket50Rw+S+8hkt3wBWqdqHaPw0CuUYxdshUgsPiLQ5fAs4ASMhw==} + /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.4): + resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-module-imports': 7.24.3 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.4) + '@babel/types': 7.24.0 + + /@babel/plugin-transform-react-jsx@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-annotate-as-pure': 7.24.6 - '@babel/helper-module-imports': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/plugin-syntax-jsx': 7.24.6(@babel/core@7.24.4) - '@babel/types': 7.24.6 - - /@babel/plugin-transform-react-pure-annotations@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-0HoDQlFJJkXRyV2N+xOpUETbKHcouSwijRQbKWVtxsPoq5bbB30qZag9/pSc5xcWVYjTHlLsBsY+hZDnzQTPNw==} + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.4) + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color + + /@babel/plugin-transform-react-pure-annotations@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-annotate-as-pure': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-regenerator@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-SMDxO95I8WXRtXhTAc8t/NFQUT7VYbIWwJCJgEli9ml4MhqUMh4S6hxgH6SmAC3eAQNWCDJFxcFeEt9w2sDdXg==} + /@babel/plugin-transform-regenerator@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 regenerator-transform: 0.15.2 - /@babel/plugin-transform-reserved-words@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-DcrgFXRRlK64dGE0ZFBPD5egM2uM8mgfrvTMOSB2yKzOtjpGegVYkzh3s1zZg1bBck3nkXiaOamJUqK3Syk+4A==} + /@babel/plugin-transform-reserved-words@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-runtime@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-W3gQydMb0SY99y/2lV0Okx2xg/8KzmZLQsLaiCmwNRl1kKomz14VurEm+2TossUb+sRvBCnGe+wx8KtIgDtBbQ==} + /@babel/plugin-transform-runtime@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-module-imports': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.24.4) babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.4) babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.24.4) @@ -3017,51 +3431,66 @@ packages: transitivePeerDependencies: - supports-color - /@babel/plugin-transform-shorthand-properties@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-xnEUvHSMr9eOWS5Al2YPfc32ten7CXdH7Zwyyk7IqITg4nX61oHj+GxpNvl+y5JHjfN3KXE2IV55wAWowBYMVw==} + /@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.7 + + /@babel/plugin-transform-spread@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + transitivePeerDependencies: + - supports-color - /@babel/plugin-transform-spread@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-h/2j7oIUDjS+ULsIrNZ6/TKG97FgmEk1PXryk/HQq6op4XUUUwif2f69fJrzK0wza2zjCS1xhXmouACaWV5uPA==} + /@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-sticky-regex@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-fN8OcTLfGmYv7FnDrsjodYBo1DhPL3Pze/9mIIE2MGCT1KgADYIOD7rEglpLHZj8PZlC/JFX5WcD+85FLAQusw==} + /@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-template-literals@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-BJbEqJIcKwrqUP+KfUIkxz3q8VzXe2R8Wv8TaNgO1cx+nNavxn/2+H8kp9tgFSOL6wYPPEgFvU6IKS4qoGqhmg==} + /@babel/plugin-transform-typeof-symbol@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-VtR8hDy7YLB7+Pet9IarXjg/zgCMSF+1mNS/EQEiEaUPoFXCVsHG64SIxcaaI2zJgRiv+YmgaQESUfWAdbjzgg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-typeof-symbol@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-IshCXQ+G9JIFJI7bUpxTE/oA2lgVLAIK8q1KdJNoPXOpvRaNjMySGuvLfBw/Xi2/1lLo953uE8hyYSDW3TSYig==} + /@babel/plugin-transform-typescript@7.22.10(@babel/core@7.24.4): + resolution: {integrity: sha512-7++c8I/ymsDo4QQBAgbraXLzIM6jmfao11KgIBEYZRReWzNWH9NtNgJcyrZiXsOPh523FQm6LfpLyy/U5fn46A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.22.10(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.24.4) + dev: true /@babel/plugin-transform-typescript@7.24.4(@babel/core@7.24.4): resolution: {integrity: sha512-79t3CQ8+oBGk/80SQ8MN3Bs3obf83zJ0YZjDmDaEZN8MqhMI760apl5z6a20kFeMXBwJX99VpKT8CKxEBp5H1g==} @@ -3070,73 +3499,73 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-annotate-as-pure': 7.24.6 - '@babel/helper-create-class-features-plugin': 7.24.6(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.4) - /@babel/plugin-transform-unicode-escapes@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-bKl3xxcPbkQQo5eX9LjjDpU2xYHeEeNQbOhj0iPvetSzA+Tu9q/o5lujF4Sek60CM6MgYvOS/DJuwGbiEYAnLw==} + /@babel/plugin-transform-unicode-escapes@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-unicode-property-regex@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-8EIgImzVUxy15cZiPii9GvLZwsy7Vxc+8meSlR3cXFmBIl5W5Tn9LGBf7CDKkHj4uVfNXCJB8RsVfnmY61iedA==} + /@babel/plugin-transform-unicode-property-regex@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-create-regexp-features-plugin': 7.24.6(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-unicode-regex@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-pssN6ExsvxaKU638qcWb81RrvvgZom3jDgU/r5xFZ7TONkZGFf4MhI2ltMb8OcQWhHyxgIavEU+hgqtbKOmsPA==} + /@babel/plugin-transform-unicode-regex@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-create-regexp-features-plugin': 7.24.6(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.7 - /@babel/plugin-transform-unicode-sets-regex@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-quiMsb28oXWIDK0gXLALOJRXLgICLiulqdZGOaPPd0vRT7fQp74NtdADAVu+D8s00C+0Xs0MxVP0VKF/sZEUgw==} + /@babel/plugin-transform-unicode-sets-regex@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-create-regexp-features-plugin': 7.24.6(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.7 - /@babel/preset-env@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-CrxEAvN7VxfjOG8JNF2Y/eMqMJbZPZ185amwGUBp8D9USK90xQmv7dLdFSa+VbD7fdIqcy/Mfv7WtzG8+/qxKg==} + /@babel/preset-env@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-1YZNsc+y6cTvWlDHidMBsQZrZfEFjRIo/BZCT906PMdzOyXtSLTgqGdrpcuTDCXyd11Am5uQULtDIcCfnTc8fQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.24.6 + '@babel/compat-data': 7.24.7 '@babel/core': 7.24.4 - '@babel/helper-compilation-targets': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-validator-option': 7.24.6 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.6(@babel/core@7.24.4) + '@babel/helper-compilation-targets': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-validator-option': 7.24.7 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.7(@babel/core@7.24.4) '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.4) '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.4) '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.4) '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.4) '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.4) '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-import-assertions': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-syntax-import-attributes': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.24.4) '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.4) '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.4) '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.4) @@ -3148,54 +3577,54 @@ packages: '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.4) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.4) '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.4) - '@babel/plugin-transform-arrow-functions': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-async-generator-functions': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-async-to-generator': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-block-scoped-functions': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-block-scoping': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-class-properties': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-class-static-block': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-classes': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-computed-properties': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-destructuring': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-dotall-regex': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-duplicate-keys': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-dynamic-import': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-exponentiation-operator': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-export-namespace-from': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-for-of': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-function-name': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-json-strings': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-literals': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-logical-assignment-operators': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-member-expression-literals': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-modules-amd': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-modules-commonjs': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-modules-systemjs': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-modules-umd': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-named-capturing-groups-regex': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-new-target': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-nullish-coalescing-operator': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-numeric-separator': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-object-rest-spread': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-object-super': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-optional-catch-binding': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-optional-chaining': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-parameters': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-private-methods': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-private-property-in-object': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-property-literals': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-regenerator': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-reserved-words': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-shorthand-properties': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-spread': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-sticky-regex': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-template-literals': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-typeof-symbol': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-unicode-escapes': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-unicode-property-regex': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-unicode-regex': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-unicode-sets-regex': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-async-generator-functions': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-block-scoping': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-class-properties': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-class-static-block': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-classes': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-destructuring': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-dotall-regex': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-duplicate-keys': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-dynamic-import': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-exponentiation-operator': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-export-namespace-from': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-function-name': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-json-strings': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-literals': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-logical-assignment-operators': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-member-expression-literals': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-modules-amd': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-modules-commonjs': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-modules-systemjs': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-modules-umd': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-named-capturing-groups-regex': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-new-target': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-numeric-separator': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-object-rest-spread': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-object-super': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-optional-catch-binding': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-optional-chaining': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-private-methods': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-private-property-in-object': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-property-literals': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-regenerator': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-reserved-words': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-sticky-regex': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-typeof-symbol': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-unicode-escapes': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-unicode-property-regex': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-unicode-regex': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-unicode-sets-regex': 7.24.7(@babel/core@7.24.4) '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.4) babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.24.4) babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.4) @@ -3205,16 +3634,16 @@ packages: transitivePeerDependencies: - supports-color - /@babel/preset-flow@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-huoe0T1Qs9fQhMWbmqE/NHUeZbqmHDsN6n/jYvPcUUHfuKiPV32C9i8tDhMbQ1DEKTjbBP7Rjm3nSLwlB2X05g==} + /@babel/preset-flow@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-NL3Lo0NorCU607zU3NwRyJbpaB6E3t0xtd3LfAQKDfkeX4/ggcDXvkmkW42QWT5owUeW/jAe4hn+2qvkV1IbfQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-validator-option': 7.24.6 - '@babel/plugin-transform-flow-strip-types': 7.24.6(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-validator-option': 7.24.7 + '@babel/plugin-transform-flow-strip-types': 7.24.7(@babel/core@7.24.4) /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.4): resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} @@ -3222,23 +3651,39 @@ packages: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/types': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/types': 7.24.0 esutils: 2.0.3 - /@babel/preset-react@7.24.6(@babel/core@7.24.4): - resolution: {integrity: sha512-8mpzh1bWvmINmwM3xpz6ahu57mNaWavMm+wBNjQ4AFu1nghKBiIRET7l/Wmj4drXany/BBGjJZngICcD98F1iw==} + /@babel/preset-react@7.24.7(@babel/core@7.24.4): + resolution: {integrity: sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-validator-option': 7.24.7 + '@babel/plugin-transform-react-display-name': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-react-jsx': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-react-jsx-development': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-react-pure-annotations': 7.24.7(@babel/core@7.24.4) + transitivePeerDependencies: + - supports-color + + /@babel/preset-typescript@7.22.5(@babel/core@7.24.4): + resolution: {integrity: sha512-YbPaal9LxztSGhmndR46FmAbkJ/1fAsw293tSU+I5E5h+cnJ3d4GTwyUgGYmOXJYdGA+uNePle4qbaRzj2NISQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-validator-option': 7.24.6 - '@babel/plugin-transform-react-display-name': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-react-jsx': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-react-jsx-development': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-react-pure-annotations': 7.24.6(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.22.5 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.24.4) + '@babel/plugin-transform-modules-commonjs': 7.22.5(@babel/core@7.24.4) + '@babel/plugin-transform-typescript': 7.22.10(@babel/core@7.24.4) + dev: true /@babel/preset-typescript@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==} @@ -3247,10 +3692,10 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.24.6 - '@babel/helper-validator-option': 7.24.6 - '@babel/plugin-syntax-jsx': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-modules-commonjs': 7.24.6(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.4) '@babel/plugin-transform-typescript': 7.24.4(@babel/core@7.24.4) /@babel/register@7.24.6(@babel/core@7.24.4): @@ -3269,55 +3714,108 @@ packages: /@babel/regjsgen@0.8.0: resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} + /@babel/runtime@7.22.10: + resolution: {integrity: sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.0 + dev: false + /@babel/runtime@7.24.4: resolution: {integrity: sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.0 + /@babel/standalone@7.22.10: + resolution: {integrity: sha512-VmK2sWxUTfDDh9mPfCtFJPIehZToteqK+Zpwq8oJUjJ+WeeKIFTTQIrDzH7jEdom+cAaaguU7FI/FBsBWFkIeQ==} + engines: {node: '>=6.9.0'} + dev: true + /@babel/standalone@7.24.4: resolution: {integrity: sha512-V4uqWeedadiuiCx5P5OHYJZ1PehdMpcBccNCEptKFGPiZIY3FI5f2ClxUl4r5wZ5U+ohcQ+4KW6jX2K6xXzq4Q==} engines: {node: '>=6.9.0'} - /@babel/template@7.24.6: - resolution: {integrity: sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==} + /@babel/template@7.24.0: + resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.24.2 + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 + + /@babel/template@7.24.7: + resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.24.6 - '@babel/parser': 7.24.6 - '@babel/types': 7.24.6 + '@babel/code-frame': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 /@babel/traverse@7.24.1: resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.24.6 + '@babel/code-frame': 7.24.2 '@babel/generator': 7.24.4 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-function-name': 7.24.6 - '@babel/helper-hoist-variables': 7.24.6 - '@babel/helper-split-export-declaration': 7.24.6 - '@babel/parser': 7.24.6 - '@babel/types': 7.24.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + /@babel/traverse@7.24.7: + resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-hoist-variables': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color - /@babel/types@7.24.6: - resolution: {integrity: sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==} + /@babel/types@7.22.10: + resolution: {integrity: sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-string-parser': 7.24.6 - '@babel/helper-validator-identifier': 7.24.6 + '@babel/helper-string-parser': 7.22.5 + '@babel/helper-validator-identifier': 7.22.5 to-fast-properties: 2.0.0 - /@bacons/text-decoder@0.0.0(react-native@0.74.1): + /@babel/types@7.24.0: + resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.24.1 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + + /@babel/types@7.24.7: + resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + to-fast-properties: 2.0.0 + + /@bacons/text-decoder@0.0.0(react-native@0.74.2): resolution: {integrity: sha512-8KNbnXSHfhZRR1S1IQEdWQNa9HE/ylWRisDdkoCmHiaP53mksnPaxyqUSlwpJ3DyG1xEekRwFDEG+pbCbSsrkQ==} peerDependencies: react-native: '*' dependencies: - react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6)(@types/react@18.3.3)(react@18.3.1) + react-native: 0.74.2(@babel/core@7.24.4)(@babel/preset-env@7.24.7)(@types/react@18.3.3)(react@18.3.1) dev: false /@bcoe/v8-coverage@0.2.3: @@ -3361,7 +3859,7 @@ packages: outdent: 0.5.0 prettier: 2.8.8 resolve-from: 5.0.0 - semver: 7.6.2 + semver: 7.6.0 dev: false /@changesets/assemble-release-plan@6.0.0: @@ -3372,7 +3870,7 @@ packages: '@changesets/get-dependents-graph': 2.0.0 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 - semver: 7.6.2 + semver: 7.6.0 dev: false /@changesets/changelog-git@0.2.0: @@ -3410,7 +3908,7 @@ packages: '@changesets/types': 6.0.0 '@changesets/write': 0.3.0 '@manypkg/get-packages': 1.1.3 - '@types/semver': 7.5.8 + '@types/semver': 7.5.0 ansi-colors: 4.1.3 chalk: 2.4.2 ci-info: 3.8.0 @@ -3421,9 +3919,9 @@ packages: meow: 6.1.1 outdent: 0.5.0 p-limit: 2.3.0 - preferred-pm: 3.1.3 + preferred-pm: 3.0.3 resolve-from: 5.0.0 - semver: 7.6.2 + semver: 7.5.4 spawndamnit: 2.0.0 term-size: 2.2.1 tty-table: 4.2.1 @@ -3454,7 +3952,7 @@ packages: '@manypkg/get-packages': 1.1.3 chalk: 2.4.2 fs-extra: 7.0.1 - semver: 7.6.2 + semver: 7.6.0 dev: false /@changesets/get-github-info@0.6.0: @@ -3836,76 +4334,76 @@ packages: engines: {node: '>=10.0.0'} dev: true - /@effect/platform-node-shared@0.6.11(@effect/platform@0.57.2)(effect@3.3.2): - resolution: {integrity: sha512-x26HBbbZj1iLQW+8R5dCghH5LIdvW/VfYjToye+SPowqunQfCMnBtYZeQfBnyYfO4EM0Rsqqir3ETU8c8gkIvg==} + /@effect/platform-node-shared@0.6.17(@effect/platform@0.57.8)(effect@3.4.2): + resolution: {integrity: sha512-24iAKaLSuU4v7mEAvepfMOLrdzNxNjAiQ0C1vuD9ci4NAJ46ueiUQxQJJCQe7F1H4vtAwWWDFeHPKmqDk5JF4w==} peerDependencies: - '@effect/platform': ^0.57.2 - effect: ^3.3.3 + '@effect/platform': ^0.57.8 + effect: ^3.3.5 dependencies: - '@effect/platform': 0.57.2(@effect/schema@0.67.24)(effect@3.3.2) + '@effect/platform': 0.57.8(@effect/schema@0.68.9)(effect@3.4.2) '@parcel/watcher': 2.4.1 - effect: 3.3.2 - multipasta: 0.2.1 + effect: 3.4.2 + multipasta: 0.2.2 dev: false - /@effect/platform-node@0.51.11(@effect/platform@0.57.2)(effect@3.3.2): - resolution: {integrity: sha512-DMeoy2gKWgfhwdJrsh/HD9fjc2OTaSVIGtpgfAzduf+czo1seep3QaOIE5O4Vi94vGVjfLA8b2v4RKbX9Rm5fA==} + /@effect/platform-node@0.51.17(@effect/platform@0.57.8)(effect@3.4.2): + resolution: {integrity: sha512-WvKbbmZzDrjxHrr+/dhxSOtcyIgRDFlqdISyLwV/L2wVIyCR/hW0tYYWZqMy5d67p+Kdl6HcsyLJWkdlhi517A==} peerDependencies: - '@effect/platform': ^0.57.2 - effect: ^3.3.3 + '@effect/platform': ^0.57.8 + effect: ^3.3.5 dependencies: - '@effect/platform': 0.57.2(@effect/schema@0.67.24)(effect@3.3.2) - '@effect/platform-node-shared': 0.6.11(@effect/platform@0.57.2)(effect@3.3.2) - effect: 3.3.2 + '@effect/platform': 0.57.8(@effect/schema@0.68.9)(effect@3.4.2) + '@effect/platform-node-shared': 0.6.17(@effect/platform@0.57.8)(effect@3.4.2) + effect: 3.4.2 mime: 3.0.0 - undici: 6.19.0 - ws: 8.17.0 + undici: 6.19.2 + ws: 8.17.1 transitivePeerDependencies: - bufferutil - utf-8-validate dev: false - /@effect/platform@0.57.2(@effect/schema@0.66.12)(effect@3.3.2): - resolution: {integrity: sha512-b1HPUhRvgOKblufpgw7OxevuuZ4sTHV8rZdlH/eEuv7h37g7huk3G1WXvcgJ4J1sMUGKOGvc9YiFP9LP3lbeLw==} + /@effect/platform@0.57.8(@effect/schema@0.66.12)(effect@3.4.2): + resolution: {integrity: sha512-MC/Ny9hd1xCdhIvYyKnheUtKacYXD3hYD1DEpPfU9JrqQuHxXUBrN3/BdetTOn0UOivJx4k2WOhGRAvaZA5krg==} peerDependencies: - '@effect/schema': ^0.67.24 - effect: ^3.3.3 + '@effect/schema': ^0.68.3 + effect: ^3.3.5 dependencies: - '@effect/schema': 0.66.12(effect@3.3.2)(fast-check@3.18.0) - effect: 3.3.2 - find-my-way-ts: 0.1.2 - multipasta: 0.2.1 + '@effect/schema': 0.66.12(effect@3.4.2)(fast-check@3.18.0) + effect: 3.4.2 + find-my-way-ts: 0.1.4 + multipasta: 0.2.2 path-browserify: 1.0.1 dev: true - /@effect/platform@0.57.2(@effect/schema@0.67.24)(effect@3.3.2): - resolution: {integrity: sha512-b1HPUhRvgOKblufpgw7OxevuuZ4sTHV8rZdlH/eEuv7h37g7huk3G1WXvcgJ4J1sMUGKOGvc9YiFP9LP3lbeLw==} + /@effect/platform@0.57.8(@effect/schema@0.68.9)(effect@3.4.2): + resolution: {integrity: sha512-MC/Ny9hd1xCdhIvYyKnheUtKacYXD3hYD1DEpPfU9JrqQuHxXUBrN3/BdetTOn0UOivJx4k2WOhGRAvaZA5krg==} peerDependencies: - '@effect/schema': ^0.67.24 - effect: ^3.3.3 + '@effect/schema': ^0.68.3 + effect: ^3.3.5 dependencies: - '@effect/schema': 0.67.24(effect@3.3.2) - effect: 3.3.2 - find-my-way-ts: 0.1.2 - multipasta: 0.2.1 + '@effect/schema': 0.68.9(effect@3.4.2) + effect: 3.4.2 + find-my-way-ts: 0.1.4 + multipasta: 0.2.2 path-browserify: 1.0.1 dev: false - /@effect/schema@0.66.12(effect@3.3.2)(fast-check@3.18.0): + /@effect/schema@0.66.12(effect@3.4.2)(fast-check@3.18.0): resolution: {integrity: sha512-14X3D2FxTFDtll41MWw5OkLQCWqcs6pLYhs38oRK1o7rQ9gM2fdL4sw/gJu4dayAqv122GMgoIEOrzO5PyBuYA==} peerDependencies: effect: ^3.1.0 fast-check: ^3.13.2 dependencies: - effect: 3.3.2 + effect: 3.4.2 fast-check: 3.18.0 - /@effect/schema@0.67.24(effect@3.3.2): - resolution: {integrity: sha512-IaJYTqvWxOCTio8PHHtiZALDfYkUX90lElsqtQtuCTcrR14nzxwUb1gPye5iS3rZjbcc4NiDsROBJJs4+wMP0g==} + /@effect/schema@0.68.9(effect@3.4.2): + resolution: {integrity: sha512-5LgCBjGHEphteGxh0Eid7dJUlSs89yvZfJFSSKNDrBhC7c0YCrrzzKYlvmqyUJzvxx+q4yBakZNUQWcjOTGsKA==} peerDependencies: - effect: ^3.3.3 + effect: ^3.4.2 dependencies: - effect: 3.3.2 + effect: 3.4.2 fast-check: 3.18.0 dev: false @@ -4016,6 +4514,15 @@ packages: requiresBuild: true optional: true + /@esbuild/android-arm64@0.19.2: + resolution: {integrity: sha512-lsB65vAbe90I/Qe10OjkmrdxSX4UJDjosDgb8sZUKcg3oefEuW2OT2Vozz8ef7wrJbMcmhvCC+hciF8jY/uAkw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + /@esbuild/android-arm64@0.20.2: resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} engines: {node: '>=12'} @@ -4050,6 +4557,15 @@ packages: requiresBuild: true optional: true + /@esbuild/android-arm@0.19.2: + resolution: {integrity: sha512-tM8yLeYVe7pRyAu9VMi/Q7aunpLwD139EY1S99xbQkT4/q2qa6eA4ige/WJQYdJ8GBL1K33pPFhPfPdJ/WzT8Q==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + /@esbuild/android-arm@0.20.2: resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} engines: {node: '>=12'} @@ -4084,6 +4600,15 @@ packages: requiresBuild: true optional: true + /@esbuild/android-x64@0.19.2: + resolution: {integrity: sha512-qK/TpmHt2M/Hg82WXHRc/W/2SGo/l1thtDHZWqFq7oi24AjZ4O/CpPSu6ZuYKFkEgmZlFoa7CooAyYmuvnaG8w==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + /@esbuild/android-x64@0.20.2: resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} engines: {node: '>=12'} @@ -4118,6 +4643,15 @@ packages: requiresBuild: true optional: true + /@esbuild/darwin-arm64@0.19.2: + resolution: {integrity: sha512-Ora8JokrvrzEPEpZO18ZYXkH4asCdc1DLdcVy8TGf5eWtPO1Ie4WroEJzwI52ZGtpODy3+m0a2yEX9l+KUn0tA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /@esbuild/darwin-arm64@0.20.2: resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} engines: {node: '>=12'} @@ -4152,6 +4686,15 @@ packages: requiresBuild: true optional: true + /@esbuild/darwin-x64@0.19.2: + resolution: {integrity: sha512-tP+B5UuIbbFMj2hQaUr6EALlHOIOmlLM2FK7jeFBobPy2ERdohI4Ka6ZFjZ1ZYsrHE/hZimGuU90jusRE0pwDw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /@esbuild/darwin-x64@0.20.2: resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} engines: {node: '>=12'} @@ -4186,6 +4729,15 @@ packages: requiresBuild: true optional: true + /@esbuild/freebsd-arm64@0.19.2: + resolution: {integrity: sha512-YbPY2kc0acfzL1VPVK6EnAlig4f+l8xmq36OZkU0jzBVHcOTyQDhnKQaLzZudNJQyymd9OqQezeaBgkTGdTGeQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/freebsd-arm64@0.20.2: resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} engines: {node: '>=12'} @@ -4220,6 +4772,15 @@ packages: requiresBuild: true optional: true + /@esbuild/freebsd-x64@0.19.2: + resolution: {integrity: sha512-nSO5uZT2clM6hosjWHAsS15hLrwCvIWx+b2e3lZ3MwbYSaXwvfO528OF+dLjas1g3bZonciivI8qKR/Hm7IWGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/freebsd-x64@0.20.2: resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} engines: {node: '>=12'} @@ -4254,6 +4815,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-arm64@0.19.2: + resolution: {integrity: sha512-ig2P7GeG//zWlU0AggA3pV1h5gdix0MA3wgB+NsnBXViwiGgY77fuN9Wr5uoCrs2YzaYfogXgsWZbm+HGr09xg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-arm64@0.20.2: resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} engines: {node: '>=12'} @@ -4288,6 +4858,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-arm@0.19.2: + resolution: {integrity: sha512-Odalh8hICg7SOD7XCj0YLpYCEc+6mkoq63UnExDCiRA2wXEmGlK5JVrW50vZR9Qz4qkvqnHcpH+OFEggO3PgTg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-arm@0.20.2: resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} engines: {node: '>=12'} @@ -4322,6 +4901,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-ia32@0.19.2: + resolution: {integrity: sha512-mLfp0ziRPOLSTek0Gd9T5B8AtzKAkoZE70fneiiyPlSnUKKI4lp+mGEnQXcQEHLJAcIYDPSyBvsUbKUG2ri/XQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-ia32@0.20.2: resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} engines: {node: '>=12'} @@ -4356,6 +4944,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-loong64@0.19.2: + resolution: {integrity: sha512-hn28+JNDTxxCpnYjdDYVMNTR3SKavyLlCHHkufHV91fkewpIyQchS1d8wSbmXhs1fiYDpNww8KTFlJ1dHsxeSw==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-loong64@0.20.2: resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} engines: {node: '>=12'} @@ -4390,6 +4987,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-mips64el@0.19.2: + resolution: {integrity: sha512-KbXaC0Sejt7vD2fEgPoIKb6nxkfYW9OmFUK9XQE4//PvGIxNIfPk1NmlHmMg6f25x57rpmEFrn1OotASYIAaTg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-mips64el@0.20.2: resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} engines: {node: '>=12'} @@ -4424,6 +5030,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-ppc64@0.19.2: + resolution: {integrity: sha512-dJ0kE8KTqbiHtA3Fc/zn7lCd7pqVr4JcT0JqOnbj4LLzYnp+7h8Qi4yjfq42ZlHfhOCM42rBh0EwHYLL6LEzcw==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-ppc64@0.20.2: resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} engines: {node: '>=12'} @@ -4458,6 +5073,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-riscv64@0.19.2: + resolution: {integrity: sha512-7Z/jKNFufZ/bbu4INqqCN6DDlrmOTmdw6D0gH+6Y7auok2r02Ur661qPuXidPOJ+FSgbEeQnnAGgsVynfLuOEw==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-riscv64@0.20.2: resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} engines: {node: '>=12'} @@ -4492,6 +5116,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-s390x@0.19.2: + resolution: {integrity: sha512-U+RinR6aXXABFCcAY4gSlv4CL1oOVvSSCdseQmGO66H+XyuQGZIUdhG56SZaDJQcLmrSfRmx5XZOWyCJPRqS7g==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-s390x@0.20.2: resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} engines: {node: '>=12'} @@ -4526,6 +5159,15 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-x64@0.19.2: + resolution: {integrity: sha512-oxzHTEv6VPm3XXNaHPyUTTte+3wGv7qVQtqaZCrgstI16gCuhNOtBXLEBkBREP57YTd68P0VgDgG73jSD8bwXQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-x64@0.20.2: resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} engines: {node: '>=12'} @@ -4560,6 +5202,15 @@ packages: requiresBuild: true optional: true + /@esbuild/netbsd-x64@0.19.2: + resolution: {integrity: sha512-WNa5zZk1XpTTwMDompZmvQLHszDDDN7lYjEHCUmAGB83Bgs20EMs7ICD+oKeT6xt4phV4NDdSi/8OfjPbSbZfQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/netbsd-x64@0.20.2: resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} engines: {node: '>=12'} @@ -4594,6 +5245,15 @@ packages: requiresBuild: true optional: true + /@esbuild/openbsd-x64@0.19.2: + resolution: {integrity: sha512-S6kI1aT3S++Dedb7vxIuUOb3oAxqxk2Rh5rOXOTYnzN8JzW1VzBd+IqPiSpgitu45042SYD3HCoEyhLKQcDFDw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/openbsd-x64@0.20.2: resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} engines: {node: '>=12'} @@ -4628,6 +5288,15 @@ packages: requiresBuild: true optional: true + /@esbuild/sunos-x64@0.19.2: + resolution: {integrity: sha512-VXSSMsmb+Z8LbsQGcBMiM+fYObDNRm8p7tkUDMPG/g4fhFX5DEFmjxIEa3N8Zr96SjsJ1woAhF0DUnS3MF3ARw==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + /@esbuild/sunos-x64@0.20.2: resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} engines: {node: '>=12'} @@ -4662,6 +5331,15 @@ packages: requiresBuild: true optional: true + /@esbuild/win32-arm64@0.19.2: + resolution: {integrity: sha512-5NayUlSAyb5PQYFAU9x3bHdsqB88RC3aM9lKDAz4X1mo/EchMIT1Q+pSeBXNgkfNmRecLXA0O8xP+x8V+g/LKg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@esbuild/win32-arm64@0.20.2: resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} engines: {node: '>=12'} @@ -4696,6 +5374,15 @@ packages: requiresBuild: true optional: true + /@esbuild/win32-ia32@0.19.2: + resolution: {integrity: sha512-47gL/ek1v36iN0wL9L4Q2MFdujR0poLZMJwhO2/N3gA89jgHp4MR8DKCmwYtGNksbfJb9JoTtbkoe6sDhg2QTA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@esbuild/win32-ia32@0.20.2: resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} engines: {node: '>=12'} @@ -4730,6 +5417,15 @@ packages: requiresBuild: true optional: true + /@esbuild/win32-x64@0.19.2: + resolution: {integrity: sha512-tcuhV7ncXBqbt/Ybf0IyrMcwVOAPDckMK9rXNHtF17UTK18OKLpg08glminN06pt2WCoALhXdLfSPbVvK/6fxw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@esbuild/win32-x64@0.20.2: resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} engines: {node: '>=12'} @@ -4751,6 +5447,10 @@ packages: resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + /@eslint-community/regexpp@4.6.2: + resolution: {integrity: sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + /@eslint/eslintrc@2.1.4: resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4780,32 +5480,33 @@ packages: mv: 2.1.1 safe-json-stringify: 1.2.0 - /@expo/cli@0.18.14(expo-modules-autolinking@1.11.1): - resolution: {integrity: sha512-ke2IVs3MfIMe2NjXY11Ky9+r0+eav6NUa+cy61wpZNPe5QkwIJ56SdJ4wIMMKFPFhgLsy1vfaqhOcZo96U4wCg==} + /@expo/cli@0.18.19(expo-modules-autolinking@1.11.1): + resolution: {integrity: sha512-8Rj18cTofpLl+7D++auMVS71KungldHbrArR44fpE8loMVAvYZA+U932lmd0K2lOYBASPhm7SVP9wzls//ESFQ==} hasBin: true dependencies: '@babel/runtime': 7.24.4 '@expo/code-signing-certificates': 0.0.5 - '@expo/config': 9.0.2 - '@expo/config-plugins': 8.0.4 + '@expo/config': 9.0.1 + '@expo/config-plugins': 8.0.5 '@expo/devcert': 1.1.2 '@expo/env': 0.3.0 '@expo/image-utils': 0.5.1 '@expo/json-file': 8.3.3 - '@expo/metro-config': 0.18.3 + '@expo/metro-config': 0.18.7 '@expo/osascript': 2.1.3 '@expo/package-manager': 1.5.2 '@expo/plist': 0.1.3 - '@expo/prebuild-config': 7.0.3(expo-modules-autolinking@1.11.1) + '@expo/prebuild-config': 7.0.6(expo-modules-autolinking@1.11.1) '@expo/rudder-sdk-node': 1.1.1 '@expo/spawn-async': 1.7.2 '@expo/xcpretty': 4.3.1 - '@react-native/dev-middleware': 0.74.83 + '@react-native/dev-middleware': 0.74.84 '@urql/core': 2.3.6(graphql@15.8.0) '@urql/exchange-retry': 0.3.0(graphql@15.8.0) accepts: 1.3.8 arg: 5.0.2 better-opn: 3.0.2 + bplist-creator: 0.0.7 bplist-parser: 0.3.2 cacache: 18.0.2 chalk: 4.1.2 @@ -4846,7 +5547,7 @@ packages: resolve: 1.22.8 resolve-from: 5.0.0 resolve.exports: 2.0.2 - semver: 7.6.2 + semver: 7.6.0 send: 0.18.0 slugify: 1.6.6 source-map-support: 0.5.21 @@ -4859,7 +5560,7 @@ packages: text-table: 0.2.0 url-join: 4.0.0 wrap-ansi: 7.0.0 - ws: 8.17.0 + ws: 8.16.0 transitivePeerDependencies: - bufferutil - encoding @@ -4888,7 +5589,7 @@ packages: getenv: 1.0.0 glob: 7.1.6 resolve-from: 5.0.0 - semver: 7.6.2 + semver: 7.6.0 slash: 3.0.0 slugify: 1.6.6 xcode: 3.0.1 @@ -4896,10 +5597,10 @@ packages: transitivePeerDependencies: - supports-color - /@expo/config-plugins@8.0.4: - resolution: {integrity: sha512-Hi+xuyNWE2LT4LVbGttHJgl9brnsdWAhEB42gWKb5+8ae86Nr/KwUBQJsJppirBYTeLjj5ZlY0glYnAkDa2jqw==} + /@expo/config-plugins@8.0.5: + resolution: {integrity: sha512-VGseKX1dYvaf2qHUDGzIQwSOJrO5fomH0gE5cKSQyi6wn+Q6rcV2Dj2E5aga+9aKNPL6FxZ0dqRFC3t2sbhaSA==} dependencies: - '@expo/config-types': 51.0.0 + '@expo/config-types': 51.0.1 '@expo/json-file': 8.3.3 '@expo/plist': 0.1.3 '@expo/sdk-runtime-versions': 1.0.0 @@ -4909,7 +5610,7 @@ packages: getenv: 1.0.0 glob: 7.1.6 resolve-from: 5.0.0 - semver: 7.6.2 + semver: 7.6.0 slash: 3.0.0 slugify: 1.6.6 xcode: 3.0.1 @@ -4920,8 +5621,8 @@ packages: /@expo/config-types@50.0.1: resolution: {integrity: sha512-EZHMgzkWRB9SMHO1e9m8s+OMahf92XYTnsCFjxhSfcDrcEoSdFPyJWDJVloHZPMGhxns7Fi2+A+bEVN/hD4NKA==} - /@expo/config-types@51.0.0: - resolution: {integrity: sha512-acn03/u8mQvBhdTQtA7CNhevMltUhbSrpI01FYBJwpVntufkU++ncQujWKlgY/OwIajcfygk1AY4xcNZ5ImkRA==} + /@expo/config-types@51.0.1: + resolution: {integrity: sha512-5JuzUFobFImrUgnq93LeucP44ZMxq8WMXmCtIUf3ZC3mJSwjvvHJBMO2fS/sIlmgvvQk9eq4VnX06/7tgDFMSg==} /@expo/config@8.5.6: resolution: {integrity: sha512-wF5awSg6MNn1cb1lIgjnhOn5ov2TEUTnkAVCsOl0QqDwcP+YIerteSFwjn9V52UZvg58L+LKxpCuGbw5IHavbg==} @@ -4944,14 +5645,14 @@ packages: resolution: {integrity: sha512-0tjaXBstTbXmD4z+UMFBkh2SZFwilizSQhW6DlaTMnPG5ezuw93zSFEWAuEC3YzkpVtNQTmYzxAYjxwh6seOGg==} dependencies: '@babel/code-frame': 7.10.4 - '@expo/config-plugins': 8.0.4 - '@expo/config-types': 51.0.0 + '@expo/config-plugins': 8.0.5 + '@expo/config-types': 51.0.1 '@expo/json-file': 8.3.3 getenv: 1.0.0 glob: 7.1.6 require-from-string: 2.0.2 resolve-from: 5.0.0 - semver: 7.6.2 + semver: 7.6.0 slugify: 1.6.6 sucrase: 3.34.0 transitivePeerDependencies: @@ -4961,14 +5662,14 @@ packages: resolution: {integrity: sha512-BKQ4/qBf3OLT8hHp5kjObk2vxwoRQ1yYQBbG/OM9Jdz32yYtrU8opTbKRAxfZEWH5i3ZHdLrPdC1rO0I6WxtTw==} dependencies: '@babel/code-frame': 7.10.4 - '@expo/config-plugins': 8.0.4 - '@expo/config-types': 51.0.0 + '@expo/config-plugins': 8.0.5 + '@expo/config-types': 51.0.1 '@expo/json-file': 8.3.3 getenv: 1.0.0 glob: 7.1.6 require-from-string: 2.0.2 resolve-from: 5.0.0 - semver: 7.6.2 + semver: 7.6.0 slugify: 1.6.6 sucrase: 3.34.0 transitivePeerDependencies: @@ -5029,7 +5730,7 @@ packages: node-fetch: 2.6.12 parse-png: 2.1.0 resolve-from: 5.0.0 - semver: 7.6.2 + semver: 7.6.0 tempy: 0.3.0 transitivePeerDependencies: - encoding @@ -5041,14 +5742,14 @@ packages: json5: 2.2.3 write-file-atomic: 2.4.3 - /@expo/metro-config@0.18.3: - resolution: {integrity: sha512-E4iW+VT/xHPPv+t68dViOsW7egtGIr+sRElcym0iGpC4goLz9WBux/xGzWgxvgvvHEWa21uSZQPM0jWla0OZXg==} + /@expo/metro-config@0.18.7: + resolution: {integrity: sha512-MzAyFP0fvoyj9IUc6SPnpy6/HLT23j/p5J+yWjGug2ddOpSuKNDHOOqlwWZbJp5KfZCEIVWNHeUoE+TaC/yhaQ==} dependencies: '@babel/core': 7.24.4 '@babel/generator': 7.24.4 - '@babel/parser': 7.24.6 - '@babel/types': 7.24.6 - '@expo/config': 9.0.2 + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 + '@expo/config': 9.0.1 '@expo/env': 0.3.0 '@expo/json-file': 8.3.3 '@expo/spawn-async': 1.7.2 @@ -5065,12 +5766,12 @@ packages: transitivePeerDependencies: - supports-color - /@expo/metro-runtime@3.2.1(react-native@0.74.1): + /@expo/metro-runtime@3.2.1(react-native@0.74.2): resolution: {integrity: sha512-L7xNo5SmK+rcuXDm/+VBBImpA7FZsVB+m/rNr3fNl5or+1+yrZe99ViF7LZ8DOoVqAqcb4aCAXvGrP2JNYo1/Q==} peerDependencies: react-native: '*' dependencies: - react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6)(@types/react@18.3.3)(react@18.3.1) + react-native: 0.74.2(@babel/core@7.24.4)(@babel/preset-env@7.24.7)(@types/react@18.3.3)(react@18.3.1) dev: false /@expo/osascript@2.1.3: @@ -5103,22 +5804,22 @@ packages: base64-js: 1.5.1 xmlbuilder: 14.0.0 - /@expo/prebuild-config@7.0.3(expo-modules-autolinking@1.11.1): - resolution: {integrity: sha512-Kvxy/oQzkxwXLvAmwb+ygxuRn4xUUN2+mVJj3KDe4bRVCNyDPs7wlgdokF3twnWjzRZssUzseMkhp+yHPjAEhA==} + /@expo/prebuild-config@7.0.6(expo-modules-autolinking@1.11.1): + resolution: {integrity: sha512-Hts+iGBaG6OQ+N8IEMMgwQElzJeSTb7iUJ26xADEHkaexsucAK+V52dM8M4ceicvbZR9q8M+ebJEGj0MCNA3dQ==} peerDependencies: expo-modules-autolinking: '>=0.8.1' dependencies: '@expo/config': 9.0.2 - '@expo/config-plugins': 8.0.4 - '@expo/config-types': 51.0.0 + '@expo/config-plugins': 8.0.5 + '@expo/config-types': 51.0.1 '@expo/image-utils': 0.5.1 '@expo/json-file': 8.3.3 - '@react-native/normalize-colors': 0.74.83 + '@react-native/normalize-colors': 0.74.84 debug: 4.3.4 expo-modules-autolinking: 1.11.1 fs-extra: 9.1.0 resolve-from: 5.0.0 - semver: 7.6.2 + semver: 7.6.0 xml2js: 0.6.0 transitivePeerDependencies: - encoding @@ -5141,8 +5842,8 @@ packages: /@expo/sdk-runtime-versions@1.0.0: resolution: {integrity: sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==} - /@expo/server@0.4.2(typescript@5.5.2): - resolution: {integrity: sha512-HuXbzXTJh1/JG8FRuxcBqTNEuiriMhNhvh68CNCUXMR/s1f29DmZPBq+/IbG8yk+TkXvKIHjmUGAqqz/ddfyvA==} + /@expo/server@0.4.3(typescript@5.5.2): + resolution: {integrity: sha512-5mzMLGLfh3vAYrzO00ujpclk/N8j4xIBeFNyNURYyqa+q/gSUqRuJdHC0i/w8At1cITFGJGiId0eXlu7/S4jRw==} dependencies: '@remix-run/node': 2.9.2(typescript@5.5.2) abort-controller: 3.0.0 @@ -5208,6 +5909,12 @@ packages: dependencies: fast-deep-equal: 3.1.3 + /@floating-ui/core@1.6.0: + resolution: {integrity: sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==} + dependencies: + '@floating-ui/utils': 0.2.1 + dev: false + /@floating-ui/core@1.6.1: resolution: {integrity: sha512-42UH54oPZHPdRHdw6BgoBD6cg/eVTmVrFcgeRDM3jbO7uxSoipVcmcIGFcA5jmOHO5apcyvBhkSKES3fQJnu7A==} dependencies: @@ -5221,8 +5928,8 @@ packages: /@floating-ui/dom@1.6.3: resolution: {integrity: sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==} dependencies: - '@floating-ui/core': 1.6.1 - '@floating-ui/utils': 0.2.2 + '@floating-ui/core': 1.6.0 + '@floating-ui/utils': 0.2.1 dev: false /@floating-ui/react-dom@2.0.9(react-dom@18.3.1)(react@18.3.1): @@ -5236,6 +5943,10 @@ packages: react-dom: 18.3.1(react@18.3.1) dev: false + /@floating-ui/utils@0.2.1: + resolution: {integrity: sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==} + dev: false + /@floating-ui/utils@0.2.2: resolution: {integrity: sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==} @@ -5243,8 +5954,8 @@ packages: resolution: {integrity: sha512-EdrOljjkpkkqZnrpqUcPoz9NvHxuTjUtSInh6GMv3+Mcy+giY2cE2pHh9rpacRcZ2eMSCxel9jWkWXTjLmY55w==} dependencies: '@floating-ui/dom': 1.6.3 - '@floating-ui/utils': 0.2.2 - vue-demi: 0.14.7(vue@3.4.25) + '@floating-ui/utils': 0.2.1 + vue-demi: 0.14.5(vue@3.4.25) transitivePeerDependencies: - '@vue/composition-api' - vue @@ -5254,7 +5965,7 @@ packages: resolution: {integrity: sha512-rJzSrtJ3b7djiGFvRuTe6stDfbYJGhdQSfn2SI2WfXviee7Er0yKAHE5u7FU7OWVQQQ1x3+cxdmx9NdiAkcrcA==} dev: false - /@gorhom/bottom-sheet@4.6.3(@types/react@18.3.3)(react-native-gesture-handler@2.16.2)(react-native-reanimated@3.10.1)(react-native@0.74.1)(react@18.3.1): + /@gorhom/bottom-sheet@4.6.3(@types/react@18.3.3)(react-native-gesture-handler@2.16.2)(react-native-reanimated@3.10.1)(react-native@0.74.2)(react@18.3.1): resolution: {integrity: sha512-fSuSfbtoKsjmSeyz+tG2C0GtcEL7PS63iEXI23c9M+HeCT1IFK6ffmIa2pqyqB43L1jtkR+BWkpZwqXnN4H8xA==} peerDependencies: '@types/react': '*' @@ -5269,16 +5980,16 @@ packages: '@types/react-native': optional: true dependencies: - '@gorhom/portal': 1.0.14(react-native@0.74.1)(react@18.3.1) + '@gorhom/portal': 1.0.14(react-native@0.74.2)(react@18.3.1) '@types/react': 18.3.3 invariant: 2.2.4 react: 18.3.1 - react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6)(@types/react@18.3.3)(react@18.3.1) - react-native-gesture-handler: 2.16.2(react-native@0.74.1)(react@18.3.1) - react-native-reanimated: 3.10.1(@babel/core@7.24.4)(react-native@0.74.1)(react@18.3.1) + react-native: 0.74.2(@babel/core@7.24.4)(@babel/preset-env@7.24.7)(@types/react@18.3.3)(react@18.3.1) + react-native-gesture-handler: 2.16.2(react-native@0.74.2)(react@18.3.1) + react-native-reanimated: 3.10.1(@babel/core@7.24.4)(react-native@0.74.2)(react@18.3.1) dev: false - /@gorhom/portal@1.0.14(react-native@0.74.1)(react@18.3.1): + /@gorhom/portal@1.0.14(react-native@0.74.2)(react@18.3.1): resolution: {integrity: sha512-MXyL4xvCjmgaORr/rtryDNFy3kU4qUbKlwtQqqsygd0xX3mhKjOLn6mQK8wfu0RkoE0pBE0nAasRoHua+/QZ7A==} peerDependencies: react: '*' @@ -5286,7 +5997,7 @@ packages: dependencies: nanoid: 3.3.7 react: 18.3.1 - react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6)(@types/react@18.3.3)(react@18.3.1) + react-native: 0.74.2(@babel/core@7.24.4)(@babel/preset-env@7.24.7)(@types/react@18.3.3)(react@18.3.1) dev: false /@graphql-typed-document-node/core@3.2.0(graphql@15.8.0): @@ -5341,12 +6052,12 @@ packages: zod: 3.23.8 dev: true - /@hookform/resolvers@3.4.2(react-hook-form@7.51.5): - resolution: {integrity: sha512-1m9uAVIO8wVf7VCDAGsuGA0t6Z3m6jVGAN50HkV9vYLl0yixKK/Z1lr01vaRvYCkIKGoy1noVRxMzQYb4y/j1Q==} + /@hookform/resolvers@3.6.0(react-hook-form@7.52.0): + resolution: {integrity: sha512-UBcpyOX3+RR+dNnqBd0lchXpoL8p4xC21XP8H6Meb8uve5Br1GCnmg0PcBoKKqPKgGu9GHQ/oygcmPrQhetwqw==} peerDependencies: react-hook-form: ^7.0.0 dependencies: - react-hook-form: 7.51.5(react@18.3.1) + react-hook-form: 7.52.0(react@18.3.1) dev: false /@humanwhocodes/config-array@0.11.14: @@ -5377,11 +6088,11 @@ packages: dependencies: '@babel/core': 7.24.4 '@babel/generator': 7.24.4 - '@babel/parser': 7.24.6 + '@babel/parser': 7.24.4 '@babel/traverse': 7.24.1 - '@babel/types': 7.24.6 + '@babel/types': 7.24.0 prettier: 3.2.5 - semver: 7.6.2 + semver: 7.5.4 transitivePeerDependencies: - supports-color dev: false @@ -5393,12 +6104,12 @@ packages: resolution: {integrity: sha512-YGNbHKM5tyDvdWZ92y2mIkrfvm5Fvhe6WJSkWu7vvOFhMtYDP0casZpoRz0XEHZCrYsR4stdGT3cZ52yp5qZdQ==} dependencies: '@antfu/install-pkg': 0.1.1 - '@antfu/utils': 0.7.8 + '@antfu/utils': 0.7.7 '@iconify/types': 2.0.0 debug: 4.3.4 kolorist: 1.8.0 local-pkg: 0.5.0 - mlly: 1.7.0 + mlly: 1.6.1 transitivePeerDependencies: - supports-color @@ -5417,7 +6128,7 @@ packages: '@inquirer/figures': 1.0.1 '@inquirer/type': 1.3.0 '@types/mute-stream': 0.0.4 - '@types/node': 20.14.0 + '@types/node': 20.14.8 '@types/wrap-ansi': 3.0.0 ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -5474,7 +6185,7 @@ packages: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.14.0 + '@types/node': 20.14.8 jest-mock: 29.7.0 /@jest/fake-timers@29.7.0: @@ -5483,7 +6194,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.14.0 + '@types/node': 20.14.8 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -5500,7 +6211,7 @@ packages: dependencies: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.14.0 + '@types/node': 20.14.8 '@types/yargs': 15.0.19 chalk: 4.1.2 @@ -5511,10 +6222,18 @@ packages: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.14.0 + '@types/node': 20.14.8 '@types/yargs': 17.0.32 chalk: 4.1.2 + /@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.19 + /@jridgewell/gen-mapping@0.3.5: resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} @@ -5527,6 +6246,10 @@ packages: resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} engines: {node: '>=6.0.0'} + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + /@jridgewell/set-array@1.2.1: resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} engines: {node: '>=6.0.0'} @@ -5535,11 +6258,17 @@ packages: resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} dependencies: '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.19 /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + /@jridgewell/trace-mapping@0.3.19: + resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + /@jridgewell/trace-mapping@0.3.25: resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} dependencies: @@ -5677,7 +6406,7 @@ packages: resolution: {integrity: sha512-DtLWIH29onUYR00i0GlQ3UdcTRC6EP4u9w/h9LxpUZJWRMARk6dQwZ6Jkd+QdwVpuAOrdxt18v0K2uIYR3fwFg==} dependencies: '@types/ws': 8.5.10 - ws: 8.17.0 + ws: 8.16.0 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -5801,8 +6530,8 @@ packages: nopt: 5.0.0 npmlog: 5.0.1 rimraf: 3.0.2 - semver: 7.6.2 - tar: 6.2.1 + semver: 7.6.0 + tar: 6.1.15 transitivePeerDependencies: - encoding - supports-color @@ -6014,8 +6743,8 @@ packages: glob: 10.3.10 dev: true - /@next/eslint-plugin-next@14.2.3: - resolution: {integrity: sha512-L3oDricIIjgj1AVnRdRor21gI7mShlSwU/1ZGHmqM3LzHhXXhdkrfeNY5zif25Bi5Dd7fiJHsbhoZCHfXYvlAw==} + /@next/eslint-plugin-next@14.2.4: + resolution: {integrity: sha512-svSFxW9f3xDaZA3idQmlFw7SusOuWTpDTAeBlO3AEPDltrraV+lqs7mAc6A27YdnpQVVIA3sODqUAAHdWhVWsA==} dependencies: glob: 10.3.10 dev: false @@ -6114,10 +6843,10 @@ packages: resolution: {integrity: sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==} engines: {node: ^16.14.0 || >=18.0.0} dependencies: - agent-base: 7.1.1 + agent-base: 7.1.0 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.1 - lru-cache: 10.2.0 + lru-cache: 10.0.1 socks-proxy-agent: 8.0.3 transitivePeerDependencies: - supports-color @@ -6126,19 +6855,19 @@ packages: resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - semver: 7.6.2 + semver: 7.6.0 /@npmcli/git@5.0.6: resolution: {integrity: sha512-4x/182sKXmQkf0EtXxT26GEsaOATpD7WVtza5hrYivWZeo6QefC6xq9KAXrnjtFKBZ4rZwR7aX/zClYYXgtwLw==} engines: {node: ^16.14.0 || >=18.0.0} dependencies: '@npmcli/promise-spawn': 7.0.1 - lru-cache: 10.2.0 + lru-cache: 10.0.1 npm-pick-manifest: 9.0.0 proc-log: 4.2.0 promise-inflight: 1.0.1 promise-retry: 2.0.1 - semver: 7.6.2 + semver: 7.6.0 which: 4.0.0 transitivePeerDependencies: - bluebird @@ -6155,8 +6884,8 @@ packages: resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - /@npmcli/package-json@5.1.1: - resolution: {integrity: sha512-uTq5j/UqUzbOaOxVy+osfOhpqOiLfUZ0Ut33UbcyyAPJbZcJsf4Mrsyb8r58FoIFlofw0iOFsuCA/oDK14VDJQ==} + /@npmcli/package-json@5.0.3: + resolution: {integrity: sha512-cgsjCvld2wMqkUqvY+SZI+1ZJ7umGBYc9IAKfqJRKJCcs7hCQYxScUgdsyrRINk3VmdCYf9TXiLBHQ6ECTxhtg==} engines: {node: ^16.14.0 || >=18.0.0} dependencies: '@npmcli/git': 5.0.6 @@ -6165,7 +6894,7 @@ packages: json-parse-even-better-errors: 3.0.0 normalize-package-data: 6.0.0 proc-log: 4.2.0 - semver: 7.6.2 + semver: 7.6.0 transitivePeerDependencies: - bluebird @@ -6175,8 +6904,8 @@ packages: dependencies: which: 4.0.0 - /@npmcli/redact@2.0.0: - resolution: {integrity: sha512-SEjCPAVHWYUIQR+Yn03kJmrJjZDtJLYpj300m3HV9OTRZNpC5YpbMsM3eTkECyT4aWj8lDr9WeY6TWefpubtYQ==} + /@npmcli/redact@1.1.0: + resolution: {integrity: sha512-PfnWuOkQgu7gCbnSsAisaX7hKOdZ4wSAhAzH3/ph5dSGau52kCRrMMGbiSQLwyTZpgldkZ49b0brkOr1AzGBHQ==} engines: {node: ^16.14.0 || >=18.0.0} /@npmcli/run-script@8.0.0: @@ -6184,7 +6913,7 @@ packages: engines: {node: ^16.14.0 || >=18.0.0} dependencies: '@npmcli/node-gyp': 3.0.0 - '@npmcli/package-json': 5.1.1 + '@npmcli/package-json': 5.0.3 '@npmcli/promise-spawn': 7.0.1 node-gyp: 10.1.0 proc-log: 4.2.0 @@ -6196,8 +6925,8 @@ packages: /@nuxt/devalue@2.0.2: resolution: {integrity: sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA==} - /@nuxt/devtools-kit@1.3.3(nuxt@3.11.2)(rollup@3.29.4)(vite@5.2.10): - resolution: {integrity: sha512-YkcuSirzVVi36gWjIl9sJ4lsuiuQiIStY3upLy829zMTIXXeF8yUEBexKL6zHD3UPqCigoF7IuovnfLw78BQ9g==} + /@nuxt/devtools-kit@1.2.0(nuxt@3.11.2)(rollup@3.29.4)(vite@5.2.10): + resolution: {integrity: sha512-T81TQuaN6hbQFzgvQeRAMJjcL4mgWtYvlGTAvtuvd3TFuHV7bMK+tFZaxgJXzIu1/UPO7/aO4VLCB0xl5sSwZw==} peerDependencies: nuxt: ^3.9.0 vite: '*' @@ -6205,15 +6934,15 @@ packages: '@nuxt/kit': 3.11.2(rollup@3.29.4) '@nuxt/schema': 3.11.2(rollup@3.29.4) execa: 7.2.0 - nuxt: 3.11.2(@types/node@20.14.0)(@unocss/reset@0.59.4)(eslint@8.57.0)(floating-vue@5.2.2)(rollup@3.29.4)(typescript@5.5.2)(unocss@0.59.4)(vite@5.2.10) - vite: 5.2.10(@types/node@20.14.0) + nuxt: 3.11.2(@types/node@20.14.8)(@unocss/reset@0.59.4)(eslint@8.57.0)(floating-vue@5.2.2)(rollup@3.29.4)(typescript@5.5.2)(unocss@0.59.4)(vite@5.2.10) + vite: 5.2.10(@types/node@20.14.8) transitivePeerDependencies: - rollup - supports-color dev: true - /@nuxt/devtools-kit@1.3.3(nuxt@3.11.2)(rollup@4.18.0)(vite@5.2.10): - resolution: {integrity: sha512-YkcuSirzVVi36gWjIl9sJ4lsuiuQiIStY3upLy829zMTIXXeF8yUEBexKL6zHD3UPqCigoF7IuovnfLw78BQ9g==} + /@nuxt/devtools-kit@1.2.0(nuxt@3.11.2)(rollup@4.18.0)(vite@5.2.10): + resolution: {integrity: sha512-T81TQuaN6hbQFzgvQeRAMJjcL4mgWtYvlGTAvtuvd3TFuHV7bMK+tFZaxgJXzIu1/UPO7/aO4VLCB0xl5sSwZw==} peerDependencies: nuxt: ^3.9.0 vite: '*' @@ -6221,15 +6950,15 @@ packages: '@nuxt/kit': 3.11.2(rollup@4.18.0) '@nuxt/schema': 3.11.2(rollup@4.18.0) execa: 7.2.0 - nuxt: 3.11.2(@types/node@20.14.0)(@unocss/reset@0.59.4)(eslint@8.57.0)(floating-vue@5.2.2)(rollup@4.18.0)(typescript@5.5.2)(unocss@0.59.4)(vite@5.2.10) - vite: 5.2.10(@types/node@20.14.0) + nuxt: 3.11.2(@types/node@20.14.8)(@unocss/reset@0.59.4)(eslint@8.57.0)(floating-vue@5.2.2)(rollup@4.18.0)(typescript@5.5.2)(unocss@0.59.4)(vite@5.2.10) + vite: 5.2.10(@types/node@20.14.8) transitivePeerDependencies: - rollup - supports-color dev: true - /@nuxt/devtools-kit@1.3.3(nuxt@3.11.2)(vite@5.2.10): - resolution: {integrity: sha512-YkcuSirzVVi36gWjIl9sJ4lsuiuQiIStY3upLy829zMTIXXeF8yUEBexKL6zHD3UPqCigoF7IuovnfLw78BQ9g==} + /@nuxt/devtools-kit@1.2.0(nuxt@3.11.2)(vite@5.2.10): + resolution: {integrity: sha512-T81TQuaN6hbQFzgvQeRAMJjcL4mgWtYvlGTAvtuvd3TFuHV7bMK+tFZaxgJXzIu1/UPO7/aO4VLCB0xl5sSwZw==} peerDependencies: nuxt: ^3.9.0 vite: '*' @@ -6237,45 +6966,116 @@ packages: '@nuxt/kit': 3.11.2 '@nuxt/schema': 3.11.2 execa: 7.2.0 - nuxt: 3.11.2(@types/node@20.14.0)(@unocss/reset@0.59.4)(floating-vue@5.2.2)(typescript@5.5.2)(unocss@0.59.4)(vite@5.2.10) - vite: 5.2.10(@types/node@20.14.0) + nuxt: 3.11.2(@types/node@20.14.8)(@unocss/reset@0.59.4)(floating-vue@5.2.2)(typescript@5.5.2)(unocss@0.59.4)(vite@5.2.10) + vite: 5.2.10(@types/node@20.14.8) transitivePeerDependencies: - rollup - supports-color dev: false - /@nuxt/devtools-wizard@1.3.3: - resolution: {integrity: sha512-9Umo9eDgwhSBDnTzWINXwJBYy2J3ay6OviM7Qdr08B9hDu+CU6MrEpsT4hZ3npD7p1E+9t1YQw/4fZ8NMcPVnw==} + /@nuxt/devtools-wizard@1.2.0: + resolution: {integrity: sha512-qGepEgm7m1q9fmnwcrbijpRgdprPbczStmVlKcONYE/9PrGn+MHeHthJHD0im30FHBVQytbN11jor1sHEauGhA==} hasBin: true dependencies: consola: 3.2.3 - diff: 5.2.0 + diff: 5.2.0 + execa: 7.2.0 + global-directory: 4.0.1 + magicast: 0.3.4 + pathe: 1.1.2 + pkg-types: 1.1.0 + prompts: 2.4.2 + rc9: 2.1.2 + semver: 7.6.0 + + /@nuxt/devtools@1.2.0(@unocss/reset@0.59.4)(floating-vue@5.2.2)(nuxt@3.11.2)(rollup@3.29.4)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.24): + resolution: {integrity: sha512-pdEvZJqovqxJp9E1BJAaGeFdFPEpCKwuuy9l9k4exBvwvxjTfjLeyW7oPD5RUTCGGxhOswgbXwuDrO4k+x2zpA==} + hasBin: true + peerDependencies: + nuxt: ^3.9.0 + vite: '*' + dependencies: + '@antfu/utils': 0.7.7 + '@nuxt/devtools-kit': 1.2.0(nuxt@3.11.2)(rollup@3.29.4)(vite@5.2.10) + '@nuxt/devtools-wizard': 1.2.0 + '@nuxt/kit': 3.11.2(rollup@3.29.4) + '@vue/devtools-applet': 7.0.27(@unocss/reset@0.59.4)(floating-vue@5.2.2)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.24) + '@vue/devtools-core': 7.0.27(vite@5.2.10)(vue@3.4.24) + '@vue/devtools-kit': 7.0.27(vue@3.4.24) + birpc: 0.2.17 + consola: 3.2.3 + cronstrue: 2.49.0 + destr: 2.0.3 + error-stack-parser-es: 0.1.1 execa: 7.2.0 - global-directory: 4.0.1 + fast-glob: 3.3.2 + flatted: 3.3.1 + get-port-please: 3.1.2 + hookable: 5.5.3 + image-meta: 0.2.0 + is-installed-globally: 1.0.0 + launch-editor: 2.6.1 + local-pkg: 0.5.0 magicast: 0.3.4 + nuxt: 3.11.2(@types/node@20.14.8)(@unocss/reset@0.59.4)(eslint@8.57.0)(floating-vue@5.2.2)(rollup@3.29.4)(typescript@5.5.2)(unocss@0.59.4)(vite@5.2.10) + nypm: 0.3.8 + ohash: 1.1.3 + pacote: 18.0.0 pathe: 1.1.2 - pkg-types: 1.1.1 - prompts: 2.4.2 + perfect-debounce: 1.0.0 + pkg-types: 1.1.0 rc9: 2.1.2 - semver: 7.6.2 + scule: 1.3.0 + semver: 7.6.0 + simple-git: 3.24.0 + sirv: 2.0.4 + unimport: 3.7.1(rollup@3.29.4) + vite: 5.2.10(@types/node@20.14.8) + vite-plugin-inspect: 0.8.4(@nuxt/kit@3.11.2)(rollup@3.29.4)(vite@5.2.10) + vite-plugin-vue-inspector: 4.0.2(vite@5.2.10) + which: 3.0.1 + ws: 8.16.0 + transitivePeerDependencies: + - '@unocss/reset' + - '@vue/composition-api' + - async-validator + - axios + - bluebird + - bufferutil + - change-case + - drauu + - floating-vue + - fuse.js + - idb-keyval + - jwt-decode + - nprogress + - qrcode + - rollup + - sortablejs + - supports-color + - universal-cookie + - unocss + - utf-8-validate + - vue + dev: true - /@nuxt/devtools@1.3.3(@unocss/reset@0.59.4)(floating-vue@5.2.2)(nuxt@3.11.2)(rollup@3.29.4)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.25): - resolution: {integrity: sha512-rlFIggkUfYvSSZRkk7v9L4aqgmnCGSzcaYJYPA+RGtJQy7asJ3Ziqx/iXnj9Ih81L6vL/BqbX9G49beJGqL/MQ==} + /@nuxt/devtools@1.2.0(@unocss/reset@0.59.4)(floating-vue@5.2.2)(nuxt@3.11.2)(rollup@3.29.4)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.25): + resolution: {integrity: sha512-pdEvZJqovqxJp9E1BJAaGeFdFPEpCKwuuy9l9k4exBvwvxjTfjLeyW7oPD5RUTCGGxhOswgbXwuDrO4k+x2zpA==} hasBin: true peerDependencies: nuxt: ^3.9.0 vite: '*' dependencies: - '@antfu/utils': 0.7.8 - '@nuxt/devtools-kit': 1.3.3(nuxt@3.11.2)(rollup@3.29.4)(vite@5.2.10) - '@nuxt/devtools-wizard': 1.3.3 + '@antfu/utils': 0.7.7 + '@nuxt/devtools-kit': 1.2.0(nuxt@3.11.2)(rollup@3.29.4)(vite@5.2.10) + '@nuxt/devtools-wizard': 1.2.0 '@nuxt/kit': 3.11.2(rollup@3.29.4) - '@vue/devtools-applet': 7.1.3(@unocss/reset@0.59.4)(floating-vue@5.2.2)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.25) - '@vue/devtools-core': 7.1.3(vite@5.2.10)(vue@3.4.25) - '@vue/devtools-kit': 7.1.3(vue@3.4.25) + '@vue/devtools-applet': 7.0.27(@unocss/reset@0.59.4)(floating-vue@5.2.2)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.25) + '@vue/devtools-core': 7.0.27(vite@5.2.10)(vue@3.4.25) + '@vue/devtools-kit': 7.0.27(vue@3.4.25) birpc: 0.2.17 consola: 3.2.3 - cronstrue: 2.50.0 + cronstrue: 2.49.0 destr: 2.0.3 error-stack-parser-es: 0.1.1 execa: 7.2.0 @@ -6288,24 +7088,24 @@ packages: launch-editor: 2.6.1 local-pkg: 0.5.0 magicast: 0.3.4 - nuxt: 3.11.2(@types/node@20.14.0)(@unocss/reset@0.59.4)(eslint@8.57.0)(floating-vue@5.2.2)(rollup@3.29.4)(typescript@5.5.2)(unocss@0.59.4)(vite@5.2.10) + nuxt: 3.11.2(@types/node@20.14.8)(@unocss/reset@0.59.4)(eslint@8.57.0)(floating-vue@5.2.2)(rollup@3.29.4)(typescript@5.5.2)(unocss@0.59.4)(vite@5.2.10) nypm: 0.3.8 ohash: 1.1.3 - pacote: 18.0.6 + pacote: 18.0.0 pathe: 1.1.2 perfect-debounce: 1.0.0 - pkg-types: 1.1.1 + pkg-types: 1.1.0 rc9: 2.1.2 scule: 1.3.0 - semver: 7.6.2 + semver: 7.6.0 simple-git: 3.24.0 sirv: 2.0.4 unimport: 3.7.1(rollup@3.29.4) - vite: 5.2.10(@types/node@20.14.0) + vite: 5.2.10(@types/node@20.14.8) vite-plugin-inspect: 0.8.4(@nuxt/kit@3.11.2)(rollup@3.29.4)(vite@5.2.10) - vite-plugin-vue-inspector: 5.1.2(vite@5.2.10) + vite-plugin-vue-inspector: 4.0.2(vite@5.2.10) which: 3.0.1 - ws: 8.17.0 + ws: 8.16.0 transitivePeerDependencies: - '@unocss/reset' - '@vue/composition-api' @@ -6330,23 +7130,23 @@ packages: - vue dev: true - /@nuxt/devtools@1.3.3(@unocss/reset@0.59.4)(floating-vue@5.2.2)(nuxt@3.11.2)(rollup@4.18.0)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.25): - resolution: {integrity: sha512-rlFIggkUfYvSSZRkk7v9L4aqgmnCGSzcaYJYPA+RGtJQy7asJ3Ziqx/iXnj9Ih81L6vL/BqbX9G49beJGqL/MQ==} + /@nuxt/devtools@1.2.0(@unocss/reset@0.59.4)(floating-vue@5.2.2)(nuxt@3.11.2)(rollup@4.18.0)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.24): + resolution: {integrity: sha512-pdEvZJqovqxJp9E1BJAaGeFdFPEpCKwuuy9l9k4exBvwvxjTfjLeyW7oPD5RUTCGGxhOswgbXwuDrO4k+x2zpA==} hasBin: true peerDependencies: nuxt: ^3.9.0 vite: '*' dependencies: - '@antfu/utils': 0.7.8 - '@nuxt/devtools-kit': 1.3.3(nuxt@3.11.2)(rollup@4.18.0)(vite@5.2.10) - '@nuxt/devtools-wizard': 1.3.3 + '@antfu/utils': 0.7.7 + '@nuxt/devtools-kit': 1.2.0(nuxt@3.11.2)(rollup@4.18.0)(vite@5.2.10) + '@nuxt/devtools-wizard': 1.2.0 '@nuxt/kit': 3.11.2(rollup@4.18.0) - '@vue/devtools-applet': 7.1.3(@unocss/reset@0.59.4)(floating-vue@5.2.2)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.25) - '@vue/devtools-core': 7.1.3(vite@5.2.10)(vue@3.4.25) - '@vue/devtools-kit': 7.1.3(vue@3.4.25) + '@vue/devtools-applet': 7.0.27(@unocss/reset@0.59.4)(floating-vue@5.2.2)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.24) + '@vue/devtools-core': 7.0.27(vite@5.2.10)(vue@3.4.24) + '@vue/devtools-kit': 7.0.27(vue@3.4.24) birpc: 0.2.17 consola: 3.2.3 - cronstrue: 2.50.0 + cronstrue: 2.49.0 destr: 2.0.3 error-stack-parser-es: 0.1.1 execa: 7.2.0 @@ -6359,24 +7159,24 @@ packages: launch-editor: 2.6.1 local-pkg: 0.5.0 magicast: 0.3.4 - nuxt: 3.11.2(@types/node@20.14.0)(@unocss/reset@0.59.4)(eslint@8.57.0)(floating-vue@5.2.2)(rollup@4.18.0)(typescript@5.5.2)(unocss@0.59.4)(vite@5.2.10) + nuxt: 3.11.2(@types/node@20.14.8)(@unocss/reset@0.59.4)(eslint@8.57.0)(floating-vue@5.2.2)(rollup@4.18.0)(typescript@5.5.2)(unocss@0.59.4)(vite@5.2.10) nypm: 0.3.8 ohash: 1.1.3 - pacote: 18.0.6 + pacote: 18.0.0 pathe: 1.1.2 perfect-debounce: 1.0.0 - pkg-types: 1.1.1 + pkg-types: 1.1.0 rc9: 2.1.2 scule: 1.3.0 - semver: 7.6.2 + semver: 7.6.0 simple-git: 3.24.0 sirv: 2.0.4 unimport: 3.7.1(rollup@4.18.0) - vite: 5.2.10(@types/node@20.14.0) + vite: 5.2.10(@types/node@20.14.8) vite-plugin-inspect: 0.8.4(@nuxt/kit@3.11.2)(rollup@4.18.0)(vite@5.2.10) - vite-plugin-vue-inspector: 5.1.2(vite@5.2.10) + vite-plugin-vue-inspector: 4.0.2(vite@5.2.10) which: 3.0.1 - ws: 8.17.0 + ws: 8.16.0 transitivePeerDependencies: - '@unocss/reset' - '@vue/composition-api' @@ -6401,23 +7201,23 @@ packages: - vue dev: true - /@nuxt/devtools@1.3.3(@unocss/reset@0.59.4)(floating-vue@5.2.2)(nuxt@3.11.2)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.25): - resolution: {integrity: sha512-rlFIggkUfYvSSZRkk7v9L4aqgmnCGSzcaYJYPA+RGtJQy7asJ3Ziqx/iXnj9Ih81L6vL/BqbX9G49beJGqL/MQ==} + /@nuxt/devtools@1.2.0(@unocss/reset@0.59.4)(floating-vue@5.2.2)(nuxt@3.11.2)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.24): + resolution: {integrity: sha512-pdEvZJqovqxJp9E1BJAaGeFdFPEpCKwuuy9l9k4exBvwvxjTfjLeyW7oPD5RUTCGGxhOswgbXwuDrO4k+x2zpA==} hasBin: true peerDependencies: nuxt: ^3.9.0 vite: '*' dependencies: - '@antfu/utils': 0.7.8 - '@nuxt/devtools-kit': 1.3.3(nuxt@3.11.2)(vite@5.2.10) - '@nuxt/devtools-wizard': 1.3.3 + '@antfu/utils': 0.7.7 + '@nuxt/devtools-kit': 1.2.0(nuxt@3.11.2)(vite@5.2.10) + '@nuxt/devtools-wizard': 1.2.0 '@nuxt/kit': 3.11.2 - '@vue/devtools-applet': 7.1.3(@unocss/reset@0.59.4)(floating-vue@5.2.2)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.25) - '@vue/devtools-core': 7.1.3(vite@5.2.10)(vue@3.4.25) - '@vue/devtools-kit': 7.1.3(vue@3.4.25) + '@vue/devtools-applet': 7.0.27(@unocss/reset@0.59.4)(floating-vue@5.2.2)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.24) + '@vue/devtools-core': 7.0.27(vite@5.2.10)(vue@3.4.24) + '@vue/devtools-kit': 7.0.27(vue@3.4.24) birpc: 0.2.17 consola: 3.2.3 - cronstrue: 2.50.0 + cronstrue: 2.49.0 destr: 2.0.3 error-stack-parser-es: 0.1.1 execa: 7.2.0 @@ -6430,24 +7230,24 @@ packages: launch-editor: 2.6.1 local-pkg: 0.5.0 magicast: 0.3.4 - nuxt: 3.11.2(@types/node@20.14.0)(@unocss/reset@0.59.4)(floating-vue@5.2.2)(typescript@5.5.2)(unocss@0.59.4)(vite@5.2.10) + nuxt: 3.11.2(@types/node@20.14.8)(@unocss/reset@0.59.4)(floating-vue@5.2.2)(typescript@5.5.2)(unocss@0.59.4)(vite@5.2.10) nypm: 0.3.8 ohash: 1.1.3 - pacote: 18.0.6 + pacote: 18.0.0 pathe: 1.1.2 perfect-debounce: 1.0.0 - pkg-types: 1.1.1 + pkg-types: 1.1.0 rc9: 2.1.2 scule: 1.3.0 - semver: 7.6.2 + semver: 7.6.0 simple-git: 3.24.0 sirv: 2.0.4 unimport: 3.7.1(rollup@3.29.4) - vite: 5.2.10(@types/node@20.14.0) + vite: 5.2.10(@types/node@20.14.8) vite-plugin-inspect: 0.8.4(@nuxt/kit@3.11.2)(vite@5.2.10) - vite-plugin-vue-inspector: 5.1.2(vite@5.2.10) + vite-plugin-vue-inspector: 4.0.2(vite@5.2.10) which: 3.0.1 - ws: 8.17.0 + ws: 8.16.0 transitivePeerDependencies: - '@unocss/reset' - '@vue/composition-api' @@ -6485,11 +7285,11 @@ packages: ignore: 5.3.1 jiti: 1.21.0 knitwork: 1.1.0 - mlly: 1.7.0 + mlly: 1.6.1 pathe: 1.1.2 - pkg-types: 1.1.1 + pkg-types: 1.0.3 scule: 1.3.0 - semver: 7.6.2 + semver: 7.6.0 ufo: 1.5.3 unctx: 2.3.1 unimport: 3.7.1(rollup@3.29.4) @@ -6512,11 +7312,11 @@ packages: ignore: 5.3.1 jiti: 1.21.0 knitwork: 1.1.0 - mlly: 1.7.0 + mlly: 1.6.1 pathe: 1.1.2 - pkg-types: 1.1.1 + pkg-types: 1.0.3 scule: 1.3.0 - semver: 7.6.2 + semver: 7.6.0 ufo: 1.5.3 unctx: 2.3.1 unimport: 3.7.1(rollup@3.29.4) @@ -6538,11 +7338,11 @@ packages: ignore: 5.3.1 jiti: 1.21.0 knitwork: 1.1.0 - mlly: 1.7.0 + mlly: 1.6.1 pathe: 1.1.2 - pkg-types: 1.1.1 + pkg-types: 1.0.3 scule: 1.3.0 - semver: 7.6.2 + semver: 7.6.0 ufo: 1.5.3 unctx: 2.3.1 unimport: 3.7.1(rollup@4.18.0) @@ -6562,9 +7362,9 @@ packages: '@nuxt/kit': 3.11.2(rollup@3.29.4) citty: 0.1.6 consola: 3.2.3 - mlly: 1.7.0 + mlly: 1.6.1 nuxi: 3.11.1 - pathe: 1.1.2 + pathe: 1.1.1 unbuild: 2.0.0(typescript@5.5.2) transitivePeerDependencies: - sass @@ -6581,7 +7381,7 @@ packages: defu: 6.1.4 hookable: 5.5.3 pathe: 1.1.2 - pkg-types: 1.1.1 + pkg-types: 1.0.3 scule: 1.3.0 std-env: 3.7.0 ufo: 1.5.3 @@ -6601,7 +7401,7 @@ packages: defu: 6.1.4 hookable: 5.5.3 pathe: 1.1.2 - pkg-types: 1.1.1 + pkg-types: 1.0.3 scule: 1.3.0 std-env: 3.7.0 ufo: 1.5.3 @@ -6620,7 +7420,7 @@ packages: defu: 6.1.4 hookable: 5.5.3 pathe: 1.1.2 - pkg-types: 1.1.1 + pkg-types: 1.0.3 scule: 1.3.0 std-env: 3.7.0 ufo: 1.5.3 @@ -6774,8 +7574,8 @@ packages: ufo: 1.5.3 unenv: 1.9.0 unplugin: 1.10.1 - vite: 5.2.10(@types/node@20.14.0) - vitest: 1.5.0(@types/node@20.14.0)(happy-dom@13.10.1) + vite: 5.2.10(@types/node@20.14.8) + vitest: 1.5.0(@types/node@20.14.8)(happy-dom@13.10.1) vitest-environment-nuxt: 1.0.0(@playwright/test@1.42.1)(h3@1.11.1)(happy-dom@13.10.1)(rollup@3.29.4)(vite@5.2.10)(vitest@1.5.0)(vue-router@4.3.2)(vue@3.4.25) vue: 3.4.25(typescript@5.5.2) vue-router: 4.3.2(vue@3.4.25) @@ -6787,7 +7587,7 @@ packages: /@nuxt/ui-templates@1.3.3: resolution: {integrity: sha512-3BG5doAREcD50dbKyXgmjD4b1GzY8CUy3T41jMhHZXNDdaNwOd31IBq+D6dV00OSrDVhzrTVj0IxsUsnMyHvIQ==} - /@nuxt/vite-builder@3.11.2(@types/node@20.14.0)(eslint@8.57.0)(rollup@3.29.4)(typescript@5.5.2)(vue@3.4.25): + /@nuxt/vite-builder@3.11.2(@types/node@20.14.8)(eslint@8.57.0)(rollup@3.29.4)(typescript@5.5.2)(vue@3.4.24): resolution: {integrity: sha512-eXTZsAAN4dPz4eA2UD5YU2kD/DqgfyQp1UYsIdCe6+PAVe1ifkUboBjbc0piR5+3qI/S/eqk3nzxRGbiYF7Ccg==} engines: {node: ^14.18.0 || >=16.10.0} peerDependencies: @@ -6795,8 +7595,8 @@ packages: dependencies: '@nuxt/kit': 3.11.2(rollup@3.29.4) '@rollup/plugin-replace': 5.0.5(rollup@3.29.4) - '@vitejs/plugin-vue': 5.0.4(vite@5.2.10)(vue@3.4.25) - '@vitejs/plugin-vue-jsx': 3.1.0(vite@5.2.10)(vue@3.4.25) + '@vitejs/plugin-vue': 5.0.4(vite@5.2.10)(vue@3.4.24) + '@vitejs/plugin-vue-jsx': 3.1.0(vite@5.2.10)(vue@3.4.24) autoprefixer: 10.4.19(postcss@8.4.38) clear: 0.1.0 consola: 3.2.3 @@ -6811,11 +7611,11 @@ packages: h3: 1.11.1 knitwork: 1.1.0 magic-string: 0.30.10 - mlly: 1.7.0 + mlly: 1.6.1 ohash: 1.1.3 pathe: 1.1.2 perfect-debounce: 1.0.0 - pkg-types: 1.1.1 + pkg-types: 1.0.3 postcss: 8.4.38 rollup-plugin-visualizer: 5.12.0(rollup@3.29.4) std-env: 3.7.0 @@ -6823,10 +7623,10 @@ packages: ufo: 1.5.3 unenv: 1.9.0 unplugin: 1.10.1 - vite: 5.2.10(@types/node@20.14.0) - vite-node: 1.5.0(@types/node@20.14.0) + vite: 5.2.10(@types/node@20.14.8) + vite-node: 1.5.0(@types/node@20.14.8) vite-plugin-checker: 0.6.4(eslint@8.57.0)(typescript@5.5.2)(vite@5.2.10) - vue: 3.4.25(typescript@5.5.2) + vue: 3.4.24(typescript@5.5.2) vue-bundle-renderer: 2.0.0 transitivePeerDependencies: - '@types/node' @@ -6849,7 +7649,7 @@ packages: - vue-tsc dev: true - /@nuxt/vite-builder@3.11.2(@types/node@20.14.0)(eslint@8.57.0)(rollup@4.18.0)(typescript@5.5.2)(vue@3.4.25): + /@nuxt/vite-builder@3.11.2(@types/node@20.14.8)(eslint@8.57.0)(rollup@4.18.0)(typescript@5.5.2)(vue@3.4.24): resolution: {integrity: sha512-eXTZsAAN4dPz4eA2UD5YU2kD/DqgfyQp1UYsIdCe6+PAVe1ifkUboBjbc0piR5+3qI/S/eqk3nzxRGbiYF7Ccg==} engines: {node: ^14.18.0 || >=16.10.0} peerDependencies: @@ -6857,8 +7657,8 @@ packages: dependencies: '@nuxt/kit': 3.11.2(rollup@4.18.0) '@rollup/plugin-replace': 5.0.5(rollup@4.18.0) - '@vitejs/plugin-vue': 5.0.4(vite@5.2.10)(vue@3.4.25) - '@vitejs/plugin-vue-jsx': 3.1.0(vite@5.2.10)(vue@3.4.25) + '@vitejs/plugin-vue': 5.0.4(vite@5.2.10)(vue@3.4.24) + '@vitejs/plugin-vue-jsx': 3.1.0(vite@5.2.10)(vue@3.4.24) autoprefixer: 10.4.19(postcss@8.4.38) clear: 0.1.0 consola: 3.2.3 @@ -6873,11 +7673,11 @@ packages: h3: 1.11.1 knitwork: 1.1.0 magic-string: 0.30.10 - mlly: 1.7.0 + mlly: 1.6.1 ohash: 1.1.3 pathe: 1.1.2 perfect-debounce: 1.0.0 - pkg-types: 1.1.1 + pkg-types: 1.0.3 postcss: 8.4.38 rollup-plugin-visualizer: 5.12.0(rollup@4.18.0) std-env: 3.7.0 @@ -6885,10 +7685,10 @@ packages: ufo: 1.5.3 unenv: 1.9.0 unplugin: 1.10.1 - vite: 5.2.10(@types/node@20.14.0) - vite-node: 1.5.0(@types/node@20.14.0) + vite: 5.2.10(@types/node@20.14.8) + vite-node: 1.5.0(@types/node@20.14.8) vite-plugin-checker: 0.6.4(eslint@8.57.0)(typescript@5.5.2)(vite@5.2.10) - vue: 3.4.25(typescript@5.5.2) + vue: 3.4.24(typescript@5.5.2) vue-bundle-renderer: 2.0.0 transitivePeerDependencies: - '@types/node' @@ -6911,7 +7711,7 @@ packages: - vue-tsc dev: true - /@nuxt/vite-builder@3.11.2(@types/node@20.14.0)(typescript@5.5.2)(vue@3.4.25): + /@nuxt/vite-builder@3.11.2(@types/node@20.14.8)(typescript@5.5.2)(vue@3.4.24): resolution: {integrity: sha512-eXTZsAAN4dPz4eA2UD5YU2kD/DqgfyQp1UYsIdCe6+PAVe1ifkUboBjbc0piR5+3qI/S/eqk3nzxRGbiYF7Ccg==} engines: {node: ^14.18.0 || >=16.10.0} peerDependencies: @@ -6919,8 +7719,8 @@ packages: dependencies: '@nuxt/kit': 3.11.2 '@rollup/plugin-replace': 5.0.5(rollup@3.29.4) - '@vitejs/plugin-vue': 5.0.4(vite@5.2.10)(vue@3.4.25) - '@vitejs/plugin-vue-jsx': 3.1.0(vite@5.2.10)(vue@3.4.25) + '@vitejs/plugin-vue': 5.0.4(vite@5.2.10)(vue@3.4.24) + '@vitejs/plugin-vue-jsx': 3.1.0(vite@5.2.10)(vue@3.4.24) autoprefixer: 10.4.19(postcss@8.4.38) clear: 0.1.0 consola: 3.2.3 @@ -6935,11 +7735,11 @@ packages: h3: 1.11.1 knitwork: 1.1.0 magic-string: 0.30.10 - mlly: 1.7.0 + mlly: 1.6.1 ohash: 1.1.3 pathe: 1.1.2 perfect-debounce: 1.0.0 - pkg-types: 1.1.1 + pkg-types: 1.0.3 postcss: 8.4.38 rollup-plugin-visualizer: 5.12.0(rollup@4.18.0) std-env: 3.7.0 @@ -6947,10 +7747,10 @@ packages: ufo: 1.5.3 unenv: 1.9.0 unplugin: 1.10.1 - vite: 5.2.10(@types/node@20.14.0) - vite-node: 1.5.0(@types/node@20.14.0) + vite: 5.2.10(@types/node@20.14.8) + vite-node: 1.5.0(@types/node@20.14.8) vite-plugin-checker: 0.6.4(eslint@8.57.0)(typescript@5.5.2)(vite@5.2.10) - vue: 3.4.25(typescript@5.5.2) + vue: 3.4.24(typescript@5.5.2) vue-bundle-renderer: 2.0.0 transitivePeerDependencies: - '@types/node' @@ -7299,10 +8099,8 @@ packages: prettier: 3.2.5 dev: false - /@radix-ui/number@1.0.1: - resolution: {integrity: sha512-T5gIdVO2mmPW3NNhjNgEP3cqMXjXL9UbO0BzWcXfvdBs+BohbQxvd/K5hSVKmn9/lbTdsQVKbUcP5WLCwvUbBg==} - dependencies: - '@babel/runtime': 7.24.4 + /@radix-ui/number@1.1.0: + resolution: {integrity: sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ==} dev: false /@radix-ui/primitive@1.0.0: @@ -7317,6 +8115,10 @@ packages: '@babel/runtime': 7.24.4 dev: false + /@radix-ui/primitive@1.1.0: + resolution: {integrity: sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==} + dev: false + /@radix-ui/react-accordion@1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-fDG7jcoNKVjSK6yfmuAs0EnPDro0WMXIhMtXdTBWqEioVW206ku+4Lw07e+13lUkFkpoEQ2PdeMIAGpdqEAmDg==} peerDependencies: @@ -7330,7 +8132,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.24.4 + '@babel/runtime': 7.22.10 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-collapsible': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) @@ -7367,6 +8169,26 @@ packages: react-dom: 18.3.1(react@18.3.1) dev: false + /@radix-ui/react-arrow@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + /@radix-ui/react-collapsible@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-UBmVDkmR6IvDsloHVN+3rtx4Mi5TFvylYXpluuv0f37dtaz3H99bp8No0LGXRigVpl3UAT4l9j6bIchh42S/Gg==} peerDependencies: @@ -7419,6 +8241,29 @@ packages: react-dom: 18.3.1(react@18.3.1) dev: false + /@radix-ui/react-collection@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + /@radix-ui/react-compose-refs@1.0.0(react@18.3.1): resolution: {integrity: sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==} peerDependencies: @@ -7442,6 +8287,19 @@ packages: react: 18.3.1 dev: false + /@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + /@radix-ui/react-context@1.0.0(react@18.3.1): resolution: {integrity: sha512-1pVM9RfOQ+n/N5PJK33kRSKsr1glNxomxONs5c49MliinBY6Yw2Q995qfBUUo0/Mbg05B/sGA0gkgPI7kmSHBg==} peerDependencies: @@ -7465,6 +8323,19 @@ packages: react: 18.3.1 dev: false + /@radix-ui/react-context@1.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + /@radix-ui/react-dialog@1.0.0(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-Yn9YU+QlHYLWwV1XfKiqnGVpWYWk6MeBVM6x/bcoyPvxgjQGoeT35482viLPctTMWoMw0PoHgqfSox7Ig+957Q==} peerDependencies: @@ -7540,6 +8411,19 @@ packages: react: 18.3.1 dev: false + /@radix-ui/react-direction@1.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + /@radix-ui/react-dismissable-layer@1.0.0(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-n7kDRfx+LB1zLueRDvZ1Pd0bxdJWDUZNQ/GWoxDn2prnuJKRdxsjulejX/ePkOsLi2tTm6P24mDqlMSgQpsT6g==} peerDependencies: @@ -7581,6 +8465,30 @@ packages: react-dom: 18.3.1(react@18.3.1) dev: false + /@radix-ui/react-dismissable-layer@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-/UovfmmXGptwGcBQawLzvn2jOfM0t4z3/uKffoBlj724+n3FvBbZ7M0aaBOmkp6pqFYpO4yx8tSVJjx3Fl2jig==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + /@radix-ui/react-dropdown-menu@2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-i6TuFOoWmLWq+M/eCLGd/bQ2HfAX1RJgvrBQ6AQLmzfvsLdefxbWu8G9zczcPFfcSPehz9GcpF6K9QYreFV8hA==} peerDependencies: @@ -7668,6 +8576,14 @@ packages: react-dom: 18.3.1(react@18.3.1) dev: false + /@radix-ui/react-icons@1.3.0(react@18.3.1): + resolution: {integrity: sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==} + peerDependencies: + react: ^16.x || ^17.x || ^18.x + dependencies: + react: 18.3.1 + dev: false + /@radix-ui/react-id@1.0.0(react@18.3.1): resolution: {integrity: sha512-Q6iAB/U7Tq3NTolBBQbHTgclPmGWE3OlktGGqrClPozSw4vkQ1DfQAOtzgRPecKsMdJINE05iaoDUG8tRzCBjw==} peerDependencies: @@ -7693,6 +8609,20 @@ packages: react: 18.3.1 dev: false + /@radix-ui/react-id@1.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + /@radix-ui/react-label@2.0.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-N5ehvlM7qoTLx7nWPodsPYPgMzA5WM8zZChQg8nyFJKnDO5WHdba1vv5/H6IO5LtJMfD2Q3wh1qHFGNtK0w3bQ==} peerDependencies: @@ -7817,6 +8747,35 @@ packages: react-dom: 18.3.1(react@18.3.1) dev: false + /@radix-ui/react-popper@1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@floating-ui/react-dom': 2.0.9(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-arrow': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-rect': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/rect': 1.1.0 + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + /@radix-ui/react-portal@1.0.0(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-a8qyFO/Xb99d8wQdu4o7qnigNjTPG123uADNecz0eX4usnQEj7o+cG4ZX4zkqq98NYekT7UoEQIjxBNWIFuqTA==} peerDependencies: @@ -7850,6 +8809,27 @@ packages: react-dom: 18.3.1(react@18.3.1) dev: false + /@radix-ui/react-portal@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + /@radix-ui/react-presence@1.0.0(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-A+6XEvN01NfVWiKu38ybawfHsBjWum42MRPnEuqPsBZ4eV7e/7K321B5VgYMPv3Xx5An6o1/l9ZuDBgmcmWK3w==} peerDependencies: @@ -7885,6 +8865,27 @@ packages: react-dom: 18.3.1(react@18.3.1) dev: false + /@radix-ui/react-presence@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-Gq6wuRN/asf9H/E/VzdKoUtT8GC9PQc9z40/vEr0VCJ4u5XvvhWIrSsCB6vD2/cH7ugTdSfYq9fLJCcM00acrQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + /@radix-ui/react-primitive@1.0.0(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-EyXe6mnRlHZ8b6f4ilTDrXmkLShICIuOTTj0GX4w1rp+wSxf3+TD05u1UOITC8VsJ2a9nwHvdXtOXEOl0Cw/zQ==} peerDependencies: @@ -7918,6 +8919,47 @@ packages: react-dom: 18.3.1(react@18.3.1) dev: false + /@radix-ui/react-primitive@2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-progress@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-aSzvnYpP725CROcxAOEBVZZSIQVQdHgBr2QQFKySsaD14u8dNT0batuXI+AAGDdAHfXH8rbnHmjYFqVJ21KkRg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + /@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==} peerDependencies: @@ -7947,16 +8989,64 @@ packages: react-dom: 18.3.1(react@18.3.1) dev: false - /@radix-ui/react-icons@1.3.0(react@18.3.1): - resolution: {integrity: sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==} - peerDependencies: - react: ^16.x || ^17.x || ^18.x - dependencies: - react: 18.3.1 - dev: false - - /@radix-ui/react-id@1.0.0(react@18.3.1): - resolution: {integrity: sha512-Q6iAB/U7Tq3NTolBBQbHTgclPmGWE3OlktGGqrClPozSw4vkQ1DfQAOtzgRPecKsMdJINE05iaoDUG8tRzCBjw==} + /@radix-ui/react-roving-focus@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-EA6AMGeq9AEeQDeSH0aZgG198qkfHSbvWTf1HvoDmOB5bBG/qTxjYMWUKMnYiV6J/iP/J8MEFSuB2zRU2n7ODA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-scroll-area@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-9ArIZ9HWhsrfqS765h+GZuLoxaRHD/j0ZWOWilsCvYTpYJp8XwCqNG7Dt9Nu/TItKOdgLGkOPCodQvDc+UMwYg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/number': 1.1.0 + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-presence': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-slot@1.0.0(react@18.3.1): + resolution: {integrity: sha512-3mrKauI/tWXo1Ll+gN5dHcxDPdm/Df1ufcDLCecn+pnCIVcdWE7CujXo8QaXOWRJyZyQWWbpB8eFwHzWXlv5mQ==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 dependencies: @@ -7990,6 +9080,78 @@ packages: react: 18.3.1 dev: false + /@radix-ui/react-slot@1.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + + /@radix-ui/react-tabs@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-bZgOKB/LtZIij75FSuPzyEti/XBhJH52ExgtdVqjCIh+Nx/FW+LhnbXtbCzIi34ccyMsyOja8T0thCzoHFXNKA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-presence': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-tooltip@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-LLE8nzNE4MzPMw3O2zlVlkLFid3y9hMUs7uCbSHyKSo+tCN4yMCf+ZCCcfrYgsOC0TiHBPQ1mtpJ2liY3ZT3SQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-portal': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-presence': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + /@radix-ui/react-use-callback-ref@1.0.0(react@18.3.1): resolution: {integrity: sha512-GZtyzoHz95Rhs6S63D2t/eqvdFCm7I+yHMLVQheKM7nBD8mbZIt+ct1jz4536MDnaOGKIxynJ8eHTkVGVVkoTg==} peerDependencies: @@ -8013,6 +9175,19 @@ packages: react: 18.3.1 dev: false + /@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + /@radix-ui/react-use-controllable-state@1.0.0(react@18.3.1): resolution: {integrity: sha512-FohDoZvk3mEXh9AWAVyRTYR4Sq7/gavuofglmiXB2g1aKyboUD4YtgWxKj8O5n+Uak52gXQ4wKz5IFST4vtJHg==} peerDependencies: @@ -8038,6 +9213,20 @@ packages: react: 18.3.1 dev: false + /@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + /@radix-ui/react-use-escape-keydown@1.0.0(react@18.3.1): resolution: {integrity: sha512-JwfBCUIfhXRxKExgIqGa4CQsiMemo1Xt0W/B4ei3fpzpvPENKpMKQ8mZSB6Acj3ebrAEgi2xiQvcI1PAAodvyg==} peerDependencies: @@ -8063,6 +9252,20 @@ packages: react: 18.3.1 dev: false + /@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + /@radix-ui/react-use-layout-effect@1.0.0(react@18.3.1): resolution: {integrity: sha512-6Tpkq+R6LOlmQb1R5NNETLG0B4YP0wc+klfXafpUCj6JGyaUc8il7/kUZ7m59rGbXGczE9Bs+iz2qloqsZBduQ==} peerDependencies: @@ -8086,6 +9289,19 @@ packages: react: 18.3.1 dev: false + /@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + /@radix-ui/react-use-rect@1.0.1(@types/react@18.3.3)(react@18.3.1): resolution: {integrity: sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==} peerDependencies: @@ -8101,6 +9317,20 @@ packages: react: 18.3.1 dev: false + /@radix-ui/react-use-rect@1.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@radix-ui/rect': 1.1.0 + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + /@radix-ui/react-use-size@1.0.1(@types/react@18.3.3)(react@18.3.1): resolution: {integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==} peerDependencies: @@ -8116,26 +9346,64 @@ packages: react: 18.3.1 dev: false + /@radix-ui/react-use-size@1.1.0(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 + react: 18.3.1 + dev: false + + /@radix-ui/react-visually-hidden@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + /@radix-ui/rect@1.0.1: resolution: {integrity: sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==} dependencies: '@babel/runtime': 7.24.4 dev: false - /@react-native-community/cli-clean@13.6.6: - resolution: {integrity: sha512-cBwJTwl0NyeA4nyMxbhkWZhxtILYkbU3TW3k8AXLg+iGphe0zikYMGB3T+haTvTc6alTyEFwPbimk9bGIqkjAQ==} + /@radix-ui/rect@1.1.0: + resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==} + dev: false + + /@react-native-community/cli-clean@13.6.8: + resolution: {integrity: sha512-B1uxlm1N4BQuWFvBL3yRl3LVvydjswsdbTi7tMrHMtSxfRio1p9HjcmDzlzKco09Y+8qBGgakm3jcMZGLbhXQQ==} dependencies: - '@react-native-community/cli-tools': 13.6.6 + '@react-native-community/cli-tools': 13.6.8 chalk: 4.1.2 execa: 5.1.1 fast-glob: 3.3.2 transitivePeerDependencies: - encoding - /@react-native-community/cli-config@13.6.6: - resolution: {integrity: sha512-mbG425zCKr8JZhv/j11382arezwS/70juWMsn8j2lmrGTrP1cUdW0MF15CCIFtJsqyK3Qs+FTmqttRpq81QfSg==} + /@react-native-community/cli-config@13.6.8: + resolution: {integrity: sha512-RabCkIsWdP4Ex/sf1uSP9qxc30utm+0uIJAjrZkNQynm7T4Lyqn/kT3LKm4yM6M0Qk61YxGguiaXF4601vAduw==} dependencies: - '@react-native-community/cli-tools': 13.6.6 + '@react-native-community/cli-tools': 13.6.8 chalk: 4.1.2 cosmiconfig: 5.2.1 deepmerge: 4.3.1 @@ -8144,21 +9412,21 @@ packages: transitivePeerDependencies: - encoding - /@react-native-community/cli-debugger-ui@13.6.6: - resolution: {integrity: sha512-Vv9u6eS4vKSDAvdhA0OiQHoA7y39fiPIgJ6biT32tN4avHDtxlc6TWZGiqv7g98SBvDWvoVAmdPLcRf3kU+c8g==} + /@react-native-community/cli-debugger-ui@13.6.8: + resolution: {integrity: sha512-2cS+MX/Su6sVSjqpDftFOXbK7EuPg98xzsPkdPhkQnkZwvXqodK9CAMuDMbx3lBHHtrPrpMbBCpFmPN8iVOnlA==} dependencies: serve-static: 1.15.0 transitivePeerDependencies: - supports-color - /@react-native-community/cli-doctor@13.6.6: - resolution: {integrity: sha512-TWZb5g6EmQe2Ua2TEWNmyaEayvlWH4GmdD9ZC+p8EpKFpB1NpDGMK6sXbpb42TDvwZg5s4TDRplK0PBEA/SVDg==} + /@react-native-community/cli-doctor@13.6.8: + resolution: {integrity: sha512-/3Vdy9J3hyiu0y3nd/CU3kBqPlTRxnLXg7V6jrA1jbTOlZAMyV9imEkrqEaGK0SMOyMhh9Pipf98Ozhk0Nl4QA==} dependencies: - '@react-native-community/cli-config': 13.6.6 - '@react-native-community/cli-platform-android': 13.6.6 - '@react-native-community/cli-platform-apple': 13.6.6 - '@react-native-community/cli-platform-ios': 13.6.6 - '@react-native-community/cli-tools': 13.6.6 + '@react-native-community/cli-config': 13.6.8 + '@react-native-community/cli-platform-android': 13.6.8 + '@react-native-community/cli-platform-apple': 13.6.8 + '@react-native-community/cli-platform-ios': 13.6.8 + '@react-native-community/cli-tools': 13.6.8 chalk: 4.1.2 command-exists: 1.2.9 deepmerge: 4.3.1 @@ -8167,27 +9435,27 @@ packages: hermes-profile-transformer: 0.0.6 node-stream-zip: 1.15.0 ora: 5.4.1 - semver: 7.6.2 + semver: 7.6.0 strip-ansi: 5.2.0 wcwidth: 1.0.1 yaml: 2.4.1 transitivePeerDependencies: - encoding - /@react-native-community/cli-hermes@13.6.6: - resolution: {integrity: sha512-La5Ie+NGaRl3klei6WxKoOxmCUSGGxpOk6vU5pEGf0/O7ky+Ay0io+zXYUZqlNMi/cGpO7ZUijakBYOB/uyuFg==} + /@react-native-community/cli-hermes@13.6.8: + resolution: {integrity: sha512-lZi/OBFuZUj5cLK94oEgtrtmxGoqeYVRcnHXl/R5c4put9PDl+qH2bEMlGZkFiw57ae3UZKr3TMk+1s4jh3FYQ==} dependencies: - '@react-native-community/cli-platform-android': 13.6.6 - '@react-native-community/cli-tools': 13.6.6 + '@react-native-community/cli-platform-android': 13.6.8 + '@react-native-community/cli-tools': 13.6.8 chalk: 4.1.2 hermes-profile-transformer: 0.0.6 transitivePeerDependencies: - encoding - /@react-native-community/cli-platform-android@13.6.6: - resolution: {integrity: sha512-/tMwkBeNxh84syiSwNlYtmUz/Ppc+HfKtdopL/5RB+fd3SV1/5/NPNjMlyLNgFKnpxvKCInQ7dnl6jGHJjeHjg==} + /@react-native-community/cli-platform-android@13.6.8: + resolution: {integrity: sha512-vWrqeLRRTwp2kO33nbrAgbYn8HR2c2CpIfyVJY9Ckk7HGUSwDyxdcSu7YBvt2ShdfLZH0HctWFNXsgGrfg6BDw==} dependencies: - '@react-native-community/cli-tools': 13.6.6 + '@react-native-community/cli-tools': 13.6.8 chalk: 4.1.2 execa: 5.1.1 fast-glob: 3.3.2 @@ -8196,10 +9464,10 @@ packages: transitivePeerDependencies: - encoding - /@react-native-community/cli-platform-apple@13.6.6: - resolution: {integrity: sha512-bOmSSwoqNNT3AmCRZXEMYKz1Jf1l2F86Nhs7qBcXdY/sGiJ+Flng564LOqvdAlVLTbkgz47KjNKCS2pP4Jg0Mg==} + /@react-native-community/cli-platform-apple@13.6.8: + resolution: {integrity: sha512-1JPohnlXPqU44zns3ALEzIbH2cKRw6JtEDJERgLuEUbs2r2NeJgqDbKyZ7fTTO8o+pegDnn6+Rr7qGVVOuUzzg==} dependencies: - '@react-native-community/cli-tools': 13.6.6 + '@react-native-community/cli-tools': 13.6.8 chalk: 4.1.2 execa: 5.1.1 fast-glob: 3.3.2 @@ -8208,33 +9476,33 @@ packages: transitivePeerDependencies: - encoding - /@react-native-community/cli-platform-ios@13.6.6: - resolution: {integrity: sha512-vjDnRwhlSN5ryqKTas6/DPkxuouuyFBAqAROH4FR1cspTbn6v78JTZKDmtQy9JMMo7N5vZj1kASU5vbFep9IOQ==} + /@react-native-community/cli-platform-ios@13.6.8: + resolution: {integrity: sha512-/IIcIRM8qaoD7iZqsvtf6Qq1AwtChWYfB9sTn3mTiolZ5Zd5bXH37g+6liPfAICRkj2Ptq3iXmjrDVUQAxrOXw==} dependencies: - '@react-native-community/cli-platform-apple': 13.6.6 + '@react-native-community/cli-platform-apple': 13.6.8 transitivePeerDependencies: - encoding - /@react-native-community/cli-server-api@13.6.6: - resolution: {integrity: sha512-ZtCXxoFlM7oDv3iZ3wsrT3SamhtUJuIkX2WePLPlN5bcbq7zimbPm2lHyicNJtpcGQ5ymsgpUWPCNZsWQhXBqQ==} + /@react-native-community/cli-server-api@13.6.8: + resolution: {integrity: sha512-Lx664oWTzpVfbKUTy+3GIX7e+Mt5Zn+zdkM4ehllNdik/lbB3tM9Nrg8PSvOfI+tTXs2w55+nIydLfH+0FqJVg==} dependencies: - '@react-native-community/cli-debugger-ui': 13.6.6 - '@react-native-community/cli-tools': 13.6.6 + '@react-native-community/cli-debugger-ui': 13.6.8 + '@react-native-community/cli-tools': 13.6.8 compression: 1.7.4 connect: 3.7.0 errorhandler: 1.5.1 nocache: 3.0.4 pretty-format: 26.6.2 serve-static: 1.15.0 - ws: 6.2.2 + ws: 6.2.3 transitivePeerDependencies: - bufferutil - encoding - supports-color - utf-8-validate - /@react-native-community/cli-tools@13.6.6: - resolution: {integrity: sha512-ptOnn4AJczY5njvbdK91k4hcYazDnGtEPrqIwEI+k/CTBHNdb27Rsm2OZ7ye6f7otLBqF8gj/hK6QzJs8CEMgw==} + /@react-native-community/cli-tools@13.6.8: + resolution: {integrity: sha512-1MYlae9EkbjC7DBYOGMH5xF9yDoeNYUKgEdDjL6WAUBoF2gtwiZPM6igLKi/+dhb5sCtC7fiLrLi0Oevdf+RmQ==} dependencies: appdirsjs: 1.2.7 chalk: 4.1.2 @@ -8244,30 +9512,30 @@ packages: node-fetch: 2.6.12 open: 6.4.0 ora: 5.4.1 - semver: 7.6.2 + semver: 7.6.0 shell-quote: 1.8.1 sudo-prompt: 9.2.1 transitivePeerDependencies: - encoding - /@react-native-community/cli-types@13.6.6: - resolution: {integrity: sha512-733iaYzlmvNK7XYbnWlMjdE+2k0hlTBJW071af/xb6Bs+hbJqBP9c03FZuYH2hFFwDDntwj05bkri/P7VgSxug==} + /@react-native-community/cli-types@13.6.8: + resolution: {integrity: sha512-C4mVByy0i+/NPuPhdMLBR7ubEVkjVS1VwoQu/BoG1crJFNE+167QXAzH01eFbXndsjZaMWmD4Gerx7TYc6lHfA==} dependencies: joi: 17.12.3 - /@react-native-community/cli@13.6.6: - resolution: {integrity: sha512-IqclB7VQ84ye8Fcs89HOpOscY4284VZg2pojHNl8H0Lzd4DadXJWQoxC7zWm8v2f8eyeX2kdhxp2ETD5tceIgA==} + /@react-native-community/cli@13.6.8: + resolution: {integrity: sha512-0lRdgLNaXixWY4BfFRl1J6Ao9Lapo2z+++iE7TD4GAbuxOWJSyFi+KUA8XNfSDyML4jFO02MZgyBPxAWdaminQ==} engines: {node: '>=18'} hasBin: true dependencies: - '@react-native-community/cli-clean': 13.6.6 - '@react-native-community/cli-config': 13.6.6 - '@react-native-community/cli-debugger-ui': 13.6.6 - '@react-native-community/cli-doctor': 13.6.6 - '@react-native-community/cli-hermes': 13.6.6 - '@react-native-community/cli-server-api': 13.6.6 - '@react-native-community/cli-tools': 13.6.6 - '@react-native-community/cli-types': 13.6.6 + '@react-native-community/cli-clean': 13.6.8 + '@react-native-community/cli-config': 13.6.8 + '@react-native-community/cli-debugger-ui': 13.6.8 + '@react-native-community/cli-doctor': 13.6.8 + '@react-native-community/cli-hermes': 13.6.8 + '@react-native-community/cli-server-api': 13.6.8 + '@react-native-community/cli-tools': 13.6.8 + '@react-native-community/cli-types': 13.6.8 chalk: 4.1.2 commander: 9.5.0 deepmerge: 4.3.1 @@ -8276,28 +9544,28 @@ packages: fs-extra: 8.1.0 graceful-fs: 4.2.11 prompts: 2.4.2 - semver: 7.6.2 + semver: 7.6.0 transitivePeerDependencies: - bufferutil - encoding - supports-color - utf-8-validate - /@react-native/assets-registry@0.74.83: - resolution: {integrity: sha512-2vkLMVnp+YTZYTNSDIBZojSsjz8sl5PscP3j4GcV6idD8V978SZfwFlk8K0ti0BzRs11mzL0Pj17km597S/eTQ==} + /@react-native/assets-registry@0.74.84: + resolution: {integrity: sha512-dzUhwyaX04QosWZ8zyaaNB/WYZIdeDN1lcpfQbqiOhZJShRH+FLTDVONE/dqlMQrP+EO7lDqF0RrlIt9lnOCQQ==} engines: {node: '>=18'} - /@react-native/babel-plugin-codegen@0.74.83(@babel/preset-env@7.24.6): - resolution: {integrity: sha512-+S0st3t4Ro00bi9gjT1jnK8qTFOU+CwmziA7U9odKyWrCoRJrgmrvogq/Dr1YXlpFxexiGIupGut1VHxr+fxJA==} + /@react-native/babel-plugin-codegen@0.74.84(@babel/preset-env@7.24.7): + resolution: {integrity: sha512-UR4uiii5szIJA84mSC6GJOfYKDq7/ThyetOQT62+BBcyGeHVtHlNLNRzgaMeLqIQaT8Fq4pccMI+7QqLOMXzdw==} engines: {node: '>=18'} dependencies: - '@react-native/codegen': 0.74.83(@babel/preset-env@7.24.6) + '@react-native/codegen': 0.74.84(@babel/preset-env@7.24.7) transitivePeerDependencies: - '@babel/preset-env' - supports-color - /@react-native/babel-preset@0.74.83(@babel/core@7.24.4)(@babel/preset-env@7.24.6): - resolution: {integrity: sha512-KJuu3XyVh3qgyUer+rEqh9a/JoUxsDOzkJNfRpDyXiAyjDRoVch60X/Xa/NcEQ93iCVHAWs0yQ+XGNGIBCYE6g==} + /@react-native/babel-preset@0.74.84(@babel/core@7.24.4)(@babel/preset-env@7.24.7): + resolution: {integrity: sha512-WUfu6Y4aGuVdocQZvx33BJiQWFH6kRCHYbZfBn2psgFrSRLgQWEQrDCxqPFObNAVSayM0rNhp2FvI5K/Eyeqlg==} engines: {node: '>=18'} peerDependencies: '@babel/core': '*' @@ -8305,7 +9573,7 @@ packages: '@babel/core': 7.24.4 '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.24.4) '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.4) - '@babel/plugin-proposal-export-default-from': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-proposal-export-default-from': 7.24.7(@babel/core@7.24.4) '@babel/plugin-proposal-logical-assignment-operators': 7.20.7(@babel/core@7.24.4) '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.24.4) '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.24.4) @@ -8313,67 +9581,67 @@ packages: '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.24.4) '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.24.4) '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-export-default-from': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-syntax-flow': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-syntax-export-default-from': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.24.4) '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4) '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-transform-arrow-functions': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-async-to-generator': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-block-scoping': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-classes': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-computed-properties': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-destructuring': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-flow-strip-types': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-function-name': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-literals': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-modules-commonjs': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-named-capturing-groups-regex': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-parameters': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-private-methods': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-private-property-in-object': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-react-display-name': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-react-jsx': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-block-scoping': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-classes': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-destructuring': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-flow-strip-types': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-function-name': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-literals': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-named-capturing-groups-regex': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-private-methods': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-private-property-in-object': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-react-display-name': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.4) '@babel/plugin-transform-react-jsx-self': 7.24.1(@babel/core@7.24.4) '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-runtime': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-shorthand-properties': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-spread': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-sticky-regex': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-runtime': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-sticky-regex': 7.24.7(@babel/core@7.24.4) '@babel/plugin-transform-typescript': 7.24.4(@babel/core@7.24.4) - '@babel/plugin-transform-unicode-regex': 7.24.6(@babel/core@7.24.4) - '@babel/template': 7.24.6 - '@react-native/babel-plugin-codegen': 0.74.83(@babel/preset-env@7.24.6) + '@babel/plugin-transform-unicode-regex': 7.24.7(@babel/core@7.24.4) + '@babel/template': 7.24.0 + '@react-native/babel-plugin-codegen': 0.74.84(@babel/preset-env@7.24.7) babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.24.4) react-refresh: 0.14.2 transitivePeerDependencies: - '@babel/preset-env' - supports-color - /@react-native/codegen@0.74.83(@babel/preset-env@7.24.6): - resolution: {integrity: sha512-GgvgHS3Aa2J8/mp1uC/zU8HuTh8ZT5jz7a4mVMWPw7+rGyv70Ba8uOVBq6UH2Q08o617IATYc+0HfyzAfm4n0w==} + /@react-native/codegen@0.74.84(@babel/preset-env@7.24.7): + resolution: {integrity: sha512-0hXlnu9i0o8v+gXKQi+x6T471L85kCDwW4WrJiYAeOheWrQdNNW6rC3g8+LL7HXAf7QcHGU/8/d57iYfdVK2BQ==} engines: {node: '>=18'} peerDependencies: '@babel/preset-env': ^7.1.6 dependencies: - '@babel/parser': 7.24.6 - '@babel/preset-env': 7.24.6(@babel/core@7.24.4) + '@babel/parser': 7.24.4 + '@babel/preset-env': 7.24.7(@babel/core@7.24.4) glob: 7.2.3 hermes-parser: 0.19.1 invariant: 2.2.4 - jscodeshift: 0.14.0(@babel/preset-env@7.24.6) + jscodeshift: 0.14.0(@babel/preset-env@7.24.7) mkdirp: 0.5.6 nullthrows: 1.1.1 transitivePeerDependencies: - supports-color - /@react-native/community-cli-plugin@0.74.83(@babel/core@7.24.4)(@babel/preset-env@7.24.6): - resolution: {integrity: sha512-7GAFjFOg1mFSj8bnFNQS4u8u7+QtrEeflUIDVZGEfBZQ3wMNI5ycBzbBGycsZYiq00Xvoc6eKFC7kvIaqeJpUQ==} + /@react-native/community-cli-plugin@0.74.84(@babel/core@7.24.4)(@babel/preset-env@7.24.7): + resolution: {integrity: sha512-GBKE+1sUh86fS2XXV46gMCNHMc1KetshMbYJ0AhDhldpaILZHqRBX50mdVsiYVvkzp4QjM0nmYqefuJ9NVwicQ==} engines: {node: '>=18'} dependencies: - '@react-native-community/cli-server-api': 13.6.6 - '@react-native-community/cli-tools': 13.6.6 - '@react-native/dev-middleware': 0.74.83 - '@react-native/metro-babel-transformer': 0.74.83(@babel/core@7.24.4)(@babel/preset-env@7.24.6) + '@react-native-community/cli-server-api': 13.6.8 + '@react-native-community/cli-tools': 13.6.8 + '@react-native/dev-middleware': 0.74.84 + '@react-native/metro-babel-transformer': 0.74.84(@babel/core@7.24.4)(@babel/preset-env@7.24.7) chalk: 4.1.2 execa: 5.1.1 metro: 0.80.9 @@ -8390,16 +9658,16 @@ packages: - supports-color - utf-8-validate - /@react-native/debugger-frontend@0.74.83: - resolution: {integrity: sha512-RGQlVUegBRxAUF9c1ss1ssaHZh6CO+7awgtI9sDeU0PzDZY/40ImoPD5m0o0SI6nXoVzbPtcMGzU+VO590pRfA==} + /@react-native/debugger-frontend@0.74.84: + resolution: {integrity: sha512-YUEA03UNFbiYzHpYxlcS2D9+3eNT5YLGkl5yRg3nOSN6KbCc/OttGnNZme+tuSOJwjMN/vcvtDKYkTqjJw8U0A==} engines: {node: '>=18'} - /@react-native/dev-middleware@0.74.83: - resolution: {integrity: sha512-UH8iriqnf7N4Hpi20D7M2FdvSANwTVStwFCSD7VMU9agJX88Yk0D1T6Meh2RMhUu4kY2bv8sTkNRm7LmxvZqgA==} + /@react-native/dev-middleware@0.74.84: + resolution: {integrity: sha512-veYw/WmyrAOQHUiIeULzn2duJQnXDPiKq2jZ/lcmDo6jsLirpp+Q73lx09TYgy/oVoPRuV0nfmU3x9B6EV/7qQ==} engines: {node: '>=18'} dependencies: '@isaacs/ttlcache': 1.4.1 - '@react-native/debugger-frontend': 0.74.83 + '@react-native/debugger-frontend': 0.74.84 '@rnx-kit/chromium-edge-launcher': 1.0.0 chrome-launcher: 0.15.2 connect: 3.7.0 @@ -8410,29 +9678,29 @@ packages: selfsigned: 2.4.1 serve-static: 1.15.0 temp-dir: 2.0.0 - ws: 6.2.2 + ws: 6.2.3 transitivePeerDependencies: - bufferutil - encoding - supports-color - utf-8-validate - /@react-native/gradle-plugin@0.74.83: - resolution: {integrity: sha512-Pw2BWVyOHoBuJVKxGVYF6/GSZRf6+v1Ygc+ULGz5t20N8qzRWPa2fRZWqoxsN7TkNLPsECYY8gooOl7okOcPAQ==} + /@react-native/gradle-plugin@0.74.84: + resolution: {integrity: sha512-wYWC5WWXqzCCe4PDogz9pNc4xH5ZamahW5XGSbrrYJ5V3walZ+7z43V6iEBJkZbLjj9YBcSttkXYGr1Xh4veAg==} engines: {node: '>=18'} - /@react-native/js-polyfills@0.74.83: - resolution: {integrity: sha512-/t74n8r6wFhw4JEoOj3bN71N1NDLqaawB75uKAsSjeCwIR9AfCxlzZG0etsXtOexkY9KMeZIQ7YwRPqUdNXuqw==} + /@react-native/js-polyfills@0.74.84: + resolution: {integrity: sha512-+PgxuUjBw9JVlz6m4ECsIJMLbDopnr4rpLmsG32hQaJrg0wMuvHtsgAY/J/aVCSG2GNUXexfjrnhc+O9yGOZXQ==} engines: {node: '>=18'} - /@react-native/metro-babel-transformer@0.74.83(@babel/core@7.24.4)(@babel/preset-env@7.24.6): - resolution: {integrity: sha512-hGdx5N8diu8y+GW/ED39vTZa9Jx1di2ZZ0aapbhH4egN1agIAusj5jXTccfNBwwWF93aJ5oVbRzfteZgjbutKg==} + /@react-native/metro-babel-transformer@0.74.84(@babel/core@7.24.4)(@babel/preset-env@7.24.7): + resolution: {integrity: sha512-YtVGq7jkgyUECv5yt4BOFbOXyW4ddUn8+dnwGGpJKdfhXYL5o5++AxNdE+2x+SZdkj3JUVekGKPwRabFECABaw==} engines: {node: '>=18'} peerDependencies: '@babel/core': '*' dependencies: '@babel/core': 7.24.4 - '@react-native/babel-preset': 0.74.83(@babel/core@7.24.4)(@babel/preset-env@7.24.6) + '@react-native/babel-preset': 0.74.84(@babel/core@7.24.4)(@babel/preset-env@7.24.7) hermes-parser: 0.19.1 nullthrows: 1.1.1 transitivePeerDependencies: @@ -8442,11 +9710,11 @@ packages: /@react-native/normalize-color@2.1.0: resolution: {integrity: sha512-Z1jQI2NpdFJCVgpY+8Dq/Bt3d+YUi1928Q+/CZm/oh66fzM0RUl54vvuXlPJKybH4pdCZey1eDTPaLHkMPNgWA==} - /@react-native/normalize-colors@0.74.83: - resolution: {integrity: sha512-jhCY95gRDE44qYawWVvhTjTplW1g+JtKTKM3f8xYT1dJtJ8QWv+gqEtKcfmOHfDkSDaMKG0AGBaDTSK8GXLH8Q==} + /@react-native/normalize-colors@0.74.84: + resolution: {integrity: sha512-Y5W6x8cC5RuakUcTVUFNAIhUZ/tYpuqHZlRBoAuakrTwVuoNHXfQki8lj1KsYU7rW6e3VWgdEx33AfOQpdNp6A==} - /@react-native/virtualized-lists@0.74.83(@types/react@18.3.3)(react-native@0.74.1)(react@18.3.1): - resolution: {integrity: sha512-rmaLeE34rj7py4FxTod7iMTC7BAsm+HrGA8WxYmEJeyTV7WSaxAkosKoYBz8038mOiwnG9VwA/7FrB6bEQvn1A==} + /@react-native/virtualized-lists@0.74.84(@types/react@18.3.3)(react-native@0.74.2)(react@18.3.1): + resolution: {integrity: sha512-XcV+qdqt2WihaY4iRm/M1FdSy+18lecU9mRXNmy9YK8g9Th/8XbNtmmKI0qWBx3KxyuXMH/zd0ps05YTrX16kw==} engines: {node: '>=18'} peerDependencies: '@types/react': ^18.2.6 @@ -8460,9 +9728,9 @@ packages: invariant: 2.2.4 nullthrows: 1.1.1 react: 18.3.1 - react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6)(@types/react@18.3.3)(react@18.3.1) + react-native: 0.74.2(@babel/core@7.24.4)(@babel/preset-env@7.24.7)(@types/react@18.3.3)(react@18.3.1) - /@react-navigation/bottom-tabs@6.5.20(@react-navigation/native@6.1.17)(react-native-safe-area-context@4.10.1)(react-native-screens@3.31.1)(react-native@0.74.1)(react@18.3.1): + /@react-navigation/bottom-tabs@6.5.20(@react-navigation/native@6.1.17)(react-native-safe-area-context@4.10.1)(react-native-screens@3.31.1)(react-native@0.74.2)(react@18.3.1): resolution: {integrity: sha512-ow6Z06iS4VqBO8d7FP+HsGjJLWt2xTWIvuWjpoCvsM/uQXzCRDIjBv9HaKcXbF0yTW7IMir0oDAbU5PFzEDdgA==} peerDependencies: '@react-navigation/native': ^6.0.0 @@ -8471,13 +9739,13 @@ packages: react-native-safe-area-context: '>= 3.0.0' react-native-screens: '>= 3.0.0' dependencies: - '@react-navigation/elements': 1.3.30(@react-navigation/native@6.1.17)(react-native-safe-area-context@4.10.1)(react-native@0.74.1)(react@18.3.1) - '@react-navigation/native': 6.1.17(react-native@0.74.1)(react@18.3.1) + '@react-navigation/elements': 1.3.30(@react-navigation/native@6.1.17)(react-native-safe-area-context@4.10.1)(react-native@0.74.2)(react@18.3.1) + '@react-navigation/native': 6.1.17(react-native@0.74.2)(react@18.3.1) color: 4.2.3 react: 18.3.1 - react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6)(@types/react@18.3.3)(react@18.3.1) - react-native-safe-area-context: 4.10.1(react-native@0.74.1)(react@18.3.1) - react-native-screens: 3.31.1(react-native@0.74.1)(react@18.3.1) + react-native: 0.74.2(@babel/core@7.24.4)(@babel/preset-env@7.24.7)(@types/react@18.3.3)(react@18.3.1) + react-native-safe-area-context: 4.10.1(react-native@0.74.2)(react@18.3.1) + react-native-screens: 3.31.1(react-native@0.74.2)(react@18.3.1) warn-once: 0.1.1 dev: false @@ -8495,7 +9763,7 @@ packages: use-latest-callback: 0.1.9(react@18.3.1) dev: false - /@react-navigation/elements@1.3.30(@react-navigation/native@6.1.17)(react-native-safe-area-context@4.10.1)(react-native@0.74.1)(react@18.3.1): + /@react-navigation/elements@1.3.30(@react-navigation/native@6.1.17)(react-native-safe-area-context@4.10.1)(react-native@0.74.2)(react@18.3.1): resolution: {integrity: sha512-plhc8UvCZs0UkV+sI+3bisIyn78wz9O/BiWZXpounu72k/R/Sj5PuZYFJ1fi6psvriUveMCGh4LeZckAZu2qiQ==} peerDependencies: '@react-navigation/native': ^6.0.0 @@ -8503,74 +9771,14 @@ packages: react-native: '*' react-native-safe-area-context: '>= 3.0.0' dependencies: - '@react-navigation/native': 6.1.17(react-native@0.74.1)(react@18.3.1) - react: 18.3.1 - react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6)(@types/react@18.3.3)(react@18.3.1) - react-native-safe-area-context: 4.10.1(react-native@0.74.1)(react@18.3.1) - dev: false - - /@radix-ui/react-tabs@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-egZfYY/+wRNCflXNHx+dePvnz9FbmssDTJBtgRfDY7e8SE5oIo3Py2eCB1ckAbh1Q7cQ/6yJZThJ++sgbxibog==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-direction': 1.0.1(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@18.3.1) - '@types/react': 18.3.3 - '@types/react-dom': 18.3.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /@radix-ui/react-tooltip@1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-lPh5iKNFVQ/jav/j6ZrWq3blfDJ0OH9R6FlNUHPMqdLuQ9vwDgFsRxvl8b7Asuy5c8xmoojHUxKHQSOAvMHxyw==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - dependencies: - '@babel/runtime': 7.24.4 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) - '@types/react': 18.3.3 - '@types/react-dom': 18.3.0 + '@react-navigation/native': 6.1.17(react-native@0.74.2)(react@18.3.1) react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react-native: 0.74.2(@babel/core@7.24.4)(@babel/preset-env@7.24.7)(@types/react@18.3.3)(react@18.3.1) + react-native-safe-area-context: 4.10.1(react-native@0.74.2)(react@18.3.1) dev: false - /@radix-ui/react-use-callback-ref@1.0.0(react@18.3.1): - resolution: {integrity: sha512-GZtyzoHz95Rhs6S63D2t/eqvdFCm7I+yHMLVQheKM7nBD8mbZIt+ct1jz4536MDnaOGKIxynJ8eHTkVGVVkoTg==} + /@react-navigation/native-stack@6.9.26(@react-navigation/native@6.1.17)(react-native-safe-area-context@4.10.1)(react-native-screens@3.31.1)(react-native@0.74.2)(react@18.3.1): + resolution: {integrity: sha512-++dueQ+FDj2XkZ902DVrK79ub1vp19nSdAZWxKRgd6+Bc0Niiesua6rMCqymYOVaYh+dagwkA9r00bpt/U5WLw==} peerDependencies: '@react-navigation/native': ^6.0.0 react: '*' @@ -8578,16 +9786,16 @@ packages: react-native-safe-area-context: '>= 3.0.0' react-native-screens: '>= 3.0.0' dependencies: - '@react-navigation/elements': 1.3.30(@react-navigation/native@6.1.17)(react-native-safe-area-context@4.10.1)(react-native@0.74.1)(react@18.3.1) - '@react-navigation/native': 6.1.17(react-native@0.74.1)(react@18.3.1) + '@react-navigation/elements': 1.3.30(@react-navigation/native@6.1.17)(react-native-safe-area-context@4.10.1)(react-native@0.74.2)(react@18.3.1) + '@react-navigation/native': 6.1.17(react-native@0.74.2)(react@18.3.1) react: 18.3.1 - react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6)(@types/react@18.3.3)(react@18.3.1) - react-native-safe-area-context: 4.10.1(react-native@0.74.1)(react@18.3.1) - react-native-screens: 3.31.1(react-native@0.74.1)(react@18.3.1) + react-native: 0.74.2(@babel/core@7.24.4)(@babel/preset-env@7.24.7)(@types/react@18.3.3)(react@18.3.1) + react-native-safe-area-context: 4.10.1(react-native@0.74.2)(react@18.3.1) + react-native-screens: 3.31.1(react-native@0.74.2)(react@18.3.1) warn-once: 0.1.1 dev: false - /@react-navigation/native@6.1.17(react-native@0.74.1)(react@18.3.1): + /@react-navigation/native@6.1.17(react-native@0.74.2)(react@18.3.1): resolution: {integrity: sha512-mer3OvfwWOHoUSMJyLa4vnBH3zpFmCwuzrBPlw7feXklurr/ZDiLjLxUScOot6jLRMz/67GyilEYMmP99LL0RQ==} peerDependencies: react: '*' @@ -8598,7 +9806,7 @@ packages: fast-deep-equal: 3.1.3 nanoid: 3.3.7 react: 18.3.1 - react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6)(@types/react@18.3.3)(react@18.3.1) + react-native: 0.74.2(@babel/core@7.24.4)(@babel/preset-env@7.24.7)(@types/react@18.3.3)(react@18.3.1) dev: false /@react-navigation/routers@6.1.9: @@ -8650,7 +9858,7 @@ packages: cookie: 0.6.0 set-cookie-parser: 2.6.0 source-map: 0.7.4 - turbo-stream: 2.1.0 + turbo-stream: 2.2.0 typescript: 5.5.2 dev: false @@ -8718,11 +9926,11 @@ packages: transitivePeerDependencies: - supports-color - /@rollup/plugin-alias@5.1.0(rollup@3.29.4): - resolution: {integrity: sha512-lpA3RZ9PdIG7qqhEfv79tBffNaoDuukFDrmhLqg9ifv99u/ehn+lOg30x2zmhf8AQqQUZaMk/B9fZraQ6/acDQ==} + /@rollup/plugin-alias@5.0.0(rollup@3.29.4): + resolution: {integrity: sha512-l9hY5chSCjuFRPsnRm16twWBiSApl2uYFLsepQYwtBuAxNMQ/1dJqADld40P0Jkqm65GRTLy/AC6hnpVebtLsA==} engines: {node: '>=14.0.0'} peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + rollup: ^1.20.0||^2.0.0||^3.0.0 peerDependenciesMeta: rollup: optional: true @@ -8743,21 +9951,21 @@ packages: rollup: 4.16.2 slash: 4.0.0 - /@rollup/plugin-commonjs@25.0.7(rollup@3.29.4): - resolution: {integrity: sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==} + /@rollup/plugin-commonjs@25.0.4(rollup@3.29.4): + resolution: {integrity: sha512-L92Vz9WUZXDnlQQl3EwbypJR4+DM2EbsO+/KOcEkP4Mc6Ct453EeDB2uH9lgRwj4w5yflgNpq9pHOiY8aoUXBQ==} engines: {node: '>=14.0.0'} peerDependencies: - rollup: ^2.68.0||^3.0.0||^4.0.0 + rollup: ^2.68.0||^3.0.0 peerDependenciesMeta: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@3.29.4) + '@rollup/pluginutils': 5.0.3(rollup@3.29.4) commondir: 1.0.1 estree-walker: 2.0.2 glob: 8.1.0 is-reference: 1.2.1 - magic-string: 0.30.10 + magic-string: 0.27.0 rollup: 3.29.4 dev: true @@ -8810,16 +10018,16 @@ packages: magic-string: 0.30.10 rollup: 4.16.2 - /@rollup/plugin-json@6.1.0(rollup@3.29.4): - resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} + /@rollup/plugin-json@6.0.0(rollup@3.29.4): + resolution: {integrity: sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w==} engines: {node: '>=14.0.0'} peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + rollup: ^1.20.0||^2.0.0||^3.0.0 peerDependenciesMeta: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@3.29.4) + '@rollup/pluginutils': 5.0.3(rollup@3.29.4) rollup: 3.29.4 dev: true @@ -8862,7 +10070,7 @@ packages: deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 - resolve: 1.22.8 + resolve: 1.22.4 rollup: 3.29.4 dev: true @@ -8880,7 +10088,7 @@ packages: deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 - resolve: 1.22.8 + resolve: 1.22.4 rollup: 4.16.2 /@rollup/plugin-node-resolve@15.2.3(rollup@4.18.0): @@ -8897,10 +10105,24 @@ packages: deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 - resolve: 1.22.8 + resolve: 1.22.4 rollup: 4.18.0 dev: true + /@rollup/plugin-replace@5.0.2(rollup@3.29.4): + resolution: {integrity: sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.0.3(rollup@3.29.4) + magic-string: 0.27.0 + rollup: 3.29.4 + dev: true + /@rollup/plugin-replace@5.0.5(rollup@3.29.4): resolution: {integrity: sha512-rYO4fOi8lMaTg/z5Jb+hKnrHHVn8j2lwkqwyS4kTRhKyWOLf2wST2sWXr4WzWiTcoHTp2sTjqUbqIj2E39slKQ==} engines: {node: '>=14.0.0'} @@ -8975,6 +10197,20 @@ packages: estree-walker: 2.0.2 picomatch: 2.3.1 + /@rollup/pluginutils@5.0.3(rollup@3.29.4): + resolution: {integrity: sha512-hfllNN4a80rwNQ9QCxhxuHCGHMAvabXqxNdaChUSSadMre7t4iEUI6fFAhBOn/eIYTgYVhBv7vCLsAJ4u3lf3g==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.1 + estree-walker: 2.0.2 + picomatch: 2.3.1 + rollup: 3.29.4 + /@rollup/pluginutils@5.1.0(rollup@3.29.4): resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} engines: {node: '>=14.0.0'} @@ -8984,7 +10220,7 @@ packages: rollup: optional: true dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.1 estree-walker: 2.0.2 picomatch: 2.3.1 rollup: 3.29.4 @@ -8998,7 +10234,7 @@ packages: rollup: optional: true dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.1 estree-walker: 2.0.2 picomatch: 2.3.1 rollup: 4.16.2 @@ -9012,7 +10248,7 @@ packages: rollup: optional: true dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.1 estree-walker: 2.0.2 picomatch: 2.3.1 rollup: 4.18.0 @@ -9500,12 +10736,9 @@ packages: /@shikijs/core@1.3.0: resolution: {integrity: sha512-7fedsBfuILDTBmrYZNFI8B6ATTxhQAasUHllHmjvSZPnoq4bULWoTpHwmuQvZ8Aq03/tAa2IGo6RXqWtHdWaCA==} - - /@shikijs/core@1.5.2: - resolution: {integrity: sha512-wSAOgaz48GmhILFElMCeQypSZmj6Ru6DttOOtl3KNkdJ17ApQuGNCfzpk4cClasVrnIu45++2DBwG4LNMQAfaA==} dev: false - /@shopify/flash-list@1.6.4(@babel/runtime@7.24.4)(react-native@0.74.1)(react@18.3.1): + /@shopify/flash-list@1.6.4(@babel/runtime@7.24.4)(react-native@0.74.2)(react@18.3.1): resolution: {integrity: sha512-M2momcnY7swsvmpHIFDVbdOaFw4aQocJXA/lFP0Gpz+alQjFylqVKvszxl4atYO2SNbjxlb2L6hEP9WEcAknGQ==} peerDependencies: '@babel/runtime': '*' @@ -9514,8 +10747,8 @@ packages: dependencies: '@babel/runtime': 7.24.4 react: 18.3.1 - react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6)(@types/react@18.3.3)(react@18.3.1) - recyclerlistview: 4.2.0(react-native@0.74.1)(react@18.3.1) + react-native: 0.74.2(@babel/core@7.24.4)(@babel/preset-env@7.24.7)(@types/react@18.3.3)(react@18.3.1) + recyclerlistview: 4.2.0(react-native@0.74.2)(react@18.3.1) tslib: 2.4.0 dev: false @@ -9623,7 +10856,7 @@ packages: seroval: 1.0.5 seroval-plugins: 1.0.5(seroval@1.0.5) shikiji: 0.9.19 - source-map-js: 1.2.0 + source-map-js: 1.0.2 terracotta: 1.0.5(solid-js@1.8.16) vite-plugin-inspect: 0.7.38(vite@4.5.3) vite-plugin-solid: 2.9.1(solid-js@1.8.16)(vite@4.5.3) @@ -9670,7 +10903,7 @@ packages: sirv: 2.0.4 svelte: 4.2.15 tiny-glob: 0.2.9 - vite: 5.2.10(@types/node@20.14.0) + vite: 5.2.10(@types/node@20.14.8) dev: true /@sveltejs/package@2.3.1(svelte@4.2.15)(typescript@5.5.2): @@ -9683,7 +10916,7 @@ packages: chokidar: 3.6.0 kleur: 4.1.5 sade: 1.8.1 - semver: 7.6.2 + semver: 7.5.4 svelte: 4.2.15 svelte2tsx: 0.7.6(svelte@4.2.15)(typescript@5.5.2) transitivePeerDependencies: @@ -9701,7 +10934,7 @@ packages: '@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.15)(vite@5.2.10) debug: 4.3.4 svelte: 4.2.15 - vite: 5.2.10(@types/node@20.14.0) + vite: 5.2.10(@types/node@20.14.8) transitivePeerDependencies: - supports-color dev: true @@ -9720,7 +10953,7 @@ packages: magic-string: 0.30.10 svelte: 4.2.15 svelte-hmr: 0.16.0(svelte@4.2.15) - vite: 5.2.10(@types/node@20.14.0) + vite: 5.2.10(@types/node@20.14.8) vitefu: 0.2.5(vite@5.2.10) transitivePeerDependencies: - supports-color @@ -9735,8 +10968,8 @@ packages: dev: true optional: true - /@swc/core-darwin-arm64@1.5.29: - resolution: {integrity: sha512-6F/sSxpHaq3nzg2ADv9FHLi4Fu2A8w8vP8Ich8gIl16D2htStlwnaPmCLjRswO+cFkzgVqy/l01gzNGWd4DFqA==} + /@swc/core-darwin-arm64@1.6.5: + resolution: {integrity: sha512-RGQhMdni2v1/ANQ/2K+F+QYdzaucekYBewZcX1ogqJ8G5sbPaBdYdDN1qQ4kHLCIkPtGP6qC7c71qPEqL2RidQ==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] @@ -9753,8 +10986,8 @@ packages: dev: true optional: true - /@swc/core-darwin-x64@1.5.29: - resolution: {integrity: sha512-rF/rXkvUOTdTIfoYbmszbSUGsCyvqACqy1VeP3nXONS+LxFl4bRmRcUTRrblL7IE5RTMCKUuPbqbQSE2hK7bqg==} + /@swc/core-darwin-x64@1.6.5: + resolution: {integrity: sha512-/pSN0/Jtcbbb9+ovS9rKxR3qertpFAM3OEJr/+Dh/8yy7jK5G5EFPIrfsw/7Q5987ERPIJIH6BspK2CBB2tgcg==} engines: {node: '>=10'} cpu: [x64] os: [darwin] @@ -9771,8 +11004,8 @@ packages: dev: true optional: true - /@swc/core-linux-arm-gnueabihf@1.5.29: - resolution: {integrity: sha512-2OAPL8iWBsmmwkjGXqvuUhbmmoLxS1xNXiMq87EsnCNMAKohGc7wJkdAOUL6J/YFpean/vwMWg64rJD4pycBeg==} + /@swc/core-linux-arm-gnueabihf@1.6.5: + resolution: {integrity: sha512-B0g/dROCE747RRegs/jPHuKJgwXLracDhnqQa80kFdgWEMjlcb7OMCgs5OX86yJGRS4qcYbiMGD0Pp7Kbqn3yw==} engines: {node: '>=10'} cpu: [arm] os: [linux] @@ -9789,8 +11022,8 @@ packages: dev: true optional: true - /@swc/core-linux-arm64-gnu@1.5.29: - resolution: {integrity: sha512-eH/Q9+8O5qhSxMestZnhuS1xqQMr6M7SolZYxiXJqxArXYILLCF+nq2R9SxuMl0CfjHSpb6+hHPk/HXy54eIRA==} + /@swc/core-linux-arm64-gnu@1.6.5: + resolution: {integrity: sha512-W8meapgXTq8AOtSvDG4yKR8ant2WWD++yOjgzAleB5VAC+oC+aa8YJROGxj8HepurU8kurqzcialwoMeq5SZZQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux] @@ -9807,8 +11040,8 @@ packages: dev: true optional: true - /@swc/core-linux-arm64-musl@1.5.29: - resolution: {integrity: sha512-TERh2OICAJz+SdDIK9+0GyTUwF6r4xDlFmpoiHKHrrD/Hh3u+6Zue0d7jQ/he/i80GDn4tJQkHlZys+RZL5UZg==} + /@swc/core-linux-arm64-musl@1.6.5: + resolution: {integrity: sha512-jyCKqoX50Fg8rJUQqh4u5PqnE7nqYKXHjVH2WcYr114/MU21zlsI+YL6aOQU1XP8bJQ2gPQ1rnlnGJdEHiKS/w==} engines: {node: '>=10'} cpu: [arm64] os: [linux] @@ -9825,8 +11058,8 @@ packages: dev: true optional: true - /@swc/core-linux-x64-gnu@1.5.29: - resolution: {integrity: sha512-WMDPqU7Ji9dJpA+Llek2p9t7pcy7Bob8ggPUvgsIlv3R/eesF9DIzSbrgl6j3EAEPB9LFdSafsgf6kT/qnvqFg==} + /@swc/core-linux-x64-gnu@1.6.5: + resolution: {integrity: sha512-G6HmUn/RRIlXC0YYFfBz2qh6OZkHS/KUPkhoG4X9ADcgWXXjOFh6JrefwsYj8VBAJEnr5iewzjNfj+nztwHaeA==} engines: {node: '>=10'} cpu: [x64] os: [linux] @@ -9843,8 +11076,8 @@ packages: dev: true optional: true - /@swc/core-linux-x64-musl@1.5.29: - resolution: {integrity: sha512-DO14glwpdKY4POSN0201OnGg1+ziaSVr6/RFzuSLggshwXeeyVORiHv3baj7NENhJhWhUy3NZlDsXLnRFkmhHQ==} + /@swc/core-linux-x64-musl@1.6.5: + resolution: {integrity: sha512-AQpBjBnelQDSbeTJA50AXdS6+CP66LsXIMNTwhPSgUfE7Bx1ggZV11Fsi4Q5SGcs6a8Qw1cuYKN57ZfZC5QOuA==} engines: {node: '>=10'} cpu: [x64] os: [linux] @@ -9861,8 +11094,8 @@ packages: dev: true optional: true - /@swc/core-win32-arm64-msvc@1.5.29: - resolution: {integrity: sha512-V3Y1+a1zG1zpYXUMqPIHEMEOd+rHoVnIpO/KTyFwAmKVu8v+/xPEVx/AGoYE67x4vDAAvPQrKI3Aokilqa5yVg==} + /@swc/core-win32-arm64-msvc@1.6.5: + resolution: {integrity: sha512-MZTWM8kUwS30pVrtbzSGEXtek46aXNb/mT9D6rsS7NvOuv2w+qZhjR1rzf4LNbbn5f8VnR4Nac1WIOYZmfC5ng==} engines: {node: '>=10'} cpu: [arm64] os: [win32] @@ -9879,8 +11112,8 @@ packages: dev: true optional: true - /@swc/core-win32-ia32-msvc@1.5.29: - resolution: {integrity: sha512-OrM6yfXw4wXhnVFosOJzarw0Fdz5Y0okgHfn9oFbTPJhoqxV5Rdmd6kXxWu2RiVKs6kGSJFZXHDeUq2w5rTIMg==} + /@swc/core-win32-ia32-msvc@1.6.5: + resolution: {integrity: sha512-WZdu4gISAr3yOm1fVwKhhk6+MrP7kVX0KMP7+ZQFTN5zXQEiDSDunEJKVgjMVj3vlR+6mnAqa/L0V9Qa8+zKlQ==} engines: {node: '>=10'} cpu: [ia32] os: [win32] @@ -9897,8 +11130,8 @@ packages: dev: true optional: true - /@swc/core-win32-x64-msvc@1.5.29: - resolution: {integrity: sha512-eD/gnxqKyZQQR0hR7TMkIlJ+nCF9dzYmVVNbYZWuA1Xy94aBPUsEk3Uw3oG7q6R3ErrEUPP0FNf2ztEnv+I+dw==} + /@swc/core-win32-x64-msvc@1.6.5: + resolution: {integrity: sha512-ezXgucnMTzlFIxQZw7ls/5r2hseFaRoDL04cuXUOs97E8r+nJSmFsRQm/ygH5jBeXNo59nyZCalrjJAjwfgACA==} engines: {node: '>=10'} cpu: [x64] os: [win32] @@ -9931,8 +11164,8 @@ packages: '@swc/core-win32-x64-msvc': 1.4.16 dev: true - /@swc/core@1.5.29(@swc/helpers@0.5.11): - resolution: {integrity: sha512-nvTtHJI43DUSOAf3h9XsqYg8YXKc0/N4il9y4j0xAkO0ekgDNo+3+jbw6MInawjKJF9uulyr+f5bAutTsOKVlw==} + /@swc/core@1.6.5(@swc/helpers@0.5.11): + resolution: {integrity: sha512-tyVvUK/HDOUUsK6/GmWvnqUtD9oDpPUA4f7f7JCOV8hXxtfjMtAZeBKf93yrB1XZet69TDR7EN0hFC6i4MF0Ig==} engines: {node: '>=10'} requiresBuild: true peerDependencies: @@ -9943,18 +11176,18 @@ packages: dependencies: '@swc/counter': 0.1.3 '@swc/helpers': 0.5.11 - '@swc/types': 0.1.8 + '@swc/types': 0.1.9 optionalDependencies: - '@swc/core-darwin-arm64': 1.5.29 - '@swc/core-darwin-x64': 1.5.29 - '@swc/core-linux-arm-gnueabihf': 1.5.29 - '@swc/core-linux-arm64-gnu': 1.5.29 - '@swc/core-linux-arm64-musl': 1.5.29 - '@swc/core-linux-x64-gnu': 1.5.29 - '@swc/core-linux-x64-musl': 1.5.29 - '@swc/core-win32-arm64-msvc': 1.5.29 - '@swc/core-win32-ia32-msvc': 1.5.29 - '@swc/core-win32-x64-msvc': 1.5.29 + '@swc/core-darwin-arm64': 1.6.5 + '@swc/core-darwin-x64': 1.6.5 + '@swc/core-linux-arm-gnueabihf': 1.6.5 + '@swc/core-linux-arm64-gnu': 1.6.5 + '@swc/core-linux-arm64-musl': 1.6.5 + '@swc/core-linux-x64-gnu': 1.6.5 + '@swc/core-linux-x64-musl': 1.6.5 + '@swc/core-win32-arm64-msvc': 1.6.5 + '@swc/core-win32-ia32-msvc': 1.6.5 + '@swc/core-win32-x64-msvc': 1.6.5 dev: true /@swc/counter@0.1.3: @@ -9978,8 +11211,8 @@ packages: '@swc/counter': 0.1.3 dev: true - /@swc/types@0.1.8: - resolution: {integrity: sha512-RNFA3+7OJFNYY78x0FYwi1Ow+iF1eF5WvmfY1nXPOEH4R2p/D4Cr1vzje7dNAI2aLFqpv8Wyz4oKSWqIZArpQA==} + /@swc/types@0.1.9: + resolution: {integrity: sha512-qKnCno++jzcJ4lM4NTfYifm1EFSCeIfKiAHAfkENZAV5Kl9PjJIyd2yeeVv6c/2CckuLyv2NmRC5pv6pm2WQBg==} dependencies: '@swc/counter': 0.1.3 dev: true @@ -10128,7 +11361,7 @@ packages: resolution: {integrity: sha512-aFNUgfNG7KyQNGpSwpkx7deofUNOY0l0PAiG/j92wLsqu382Un7kjAY40YXuYWnx3QlH4yq1OlNA24XT7N1H2w==} dependencies: '@tailwindcss/oxide': 4.0.0-alpha.11 - lightningcss: 1.24.1 + lightningcss: 1.25.0 postcss-import: 16.1.0(postcss@8.4.38) tailwindcss: 4.0.0-alpha.11 transitivePeerDependencies: @@ -10147,16 +11380,16 @@ packages: tailwindcss: 3.4.3 dev: false - /@tanstack/query-core@5.40.0: - resolution: {integrity: sha512-eD8K8jsOIq0Z5u/QbvOmfvKKE/XC39jA7yv4hgpl/1SRiU+J8QCIwgM/mEHuunQsL87dcvnHqSVLmf9pD4CiaA==} + /@tanstack/query-core@5.45.0: + resolution: {integrity: sha512-RVfIZQmFUTdjhSAAblvueimfngYyfN6HlwaJUPK71PKd7yi43Vs1S/rdimmZedPWX/WGppcq/U1HOj7O7FwYxw==} dev: false - /@tanstack/react-query@5.40.0(react@18.3.1): - resolution: {integrity: sha512-iv/W0Axc4aXhFzkrByToE1JQqayxTPNotCoSCnarR/A1vDIHaoKpg7FTIfP3Ev2mbKn1yrxq0ZKYUdLEJxs6Tg==} + /@tanstack/react-query@5.45.1(react@18.3.1): + resolution: {integrity: sha512-mYYfJujKg2kxmkRRjA6nn4YKG3ITsKuH22f1kteJ5IuVQqgKUgbaSQfYwVP0gBS05mhwxO03HVpD0t7BMN7WOA==} peerDependencies: react: ^18.0.0 dependencies: - '@tanstack/query-core': 5.40.0 + '@tanstack/query-core': 5.45.0 react: 18.3.1 dev: false @@ -10543,32 +11776,32 @@ packages: '@tiptap/pm': 2.3.2 dev: false - /@trpc/client@11.0.0-rc.401(@trpc/server@11.0.0-rc.401): - resolution: {integrity: sha512-nRjqcZhsdIJk1BlVGhJhEwsET/KQH+izksWQP7oupeuqYLD6pvCQAvNpzqa1qhlfrfrN08ZSQmgHZ4A+O2FIww==} + /@trpc/client@11.0.0-rc.421(@trpc/server@11.0.0-rc.421): + resolution: {integrity: sha512-Ek9g3EEDtNeU35qgys1M7slyQPjwnAX2hHs8JN2AIXjDyfoT8n+ZdLJlJ8n9aoyGyO2LCFfbfyGhi3MeTMNHtg==} peerDependencies: - '@trpc/server': 11.0.0-rc.401+91720833b + '@trpc/server': 11.0.0-rc.421+bce4f97e9 dependencies: - '@trpc/server': 11.0.0-rc.401 + '@trpc/server': 11.0.0-rc.421 dev: false - /@trpc/react-query@11.0.0-rc.401(@tanstack/react-query@5.40.0)(@trpc/client@11.0.0-rc.401)(@trpc/server@11.0.0-rc.401)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-xH/3UE2dPUuF/MstlcappOlDQLNfuhI+YObLcYIJC+Yg8inkuygTZ5W6vRL/2BYHRJ8/UmV/K4aZazsTyKw9xg==} + /@trpc/react-query@11.0.0-rc.421(@tanstack/react-query@5.45.1)(@trpc/client@11.0.0-rc.421)(@trpc/server@11.0.0-rc.421)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-xoArO8tqzDDch4e2aH48bZ0SVHMpstsuhk/S0qTB1WybMV1pjZDnT/9qDQY8WwEkaqdVk/7BXXf94Kg5REAIpA==} peerDependencies: - '@tanstack/react-query': ^5.25.0 - '@trpc/client': 11.0.0-rc.401+91720833b - '@trpc/server': 11.0.0-rc.401+91720833b + '@tanstack/react-query': ^5.40.0 + '@trpc/client': 11.0.0-rc.421+bce4f97e9 + '@trpc/server': 11.0.0-rc.421+bce4f97e9 react: '>=18.2.0' react-dom: '>=18.2.0' dependencies: - '@tanstack/react-query': 5.40.0(react@18.3.1) - '@trpc/client': 11.0.0-rc.401(@trpc/server@11.0.0-rc.401) - '@trpc/server': 11.0.0-rc.401 + '@tanstack/react-query': 5.45.1(react@18.3.1) + '@trpc/client': 11.0.0-rc.421(@trpc/server@11.0.0-rc.421) + '@trpc/server': 11.0.0-rc.421 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false - /@trpc/server@11.0.0-rc.401: - resolution: {integrity: sha512-cHNrdZSTxabIo9XZ+c2GUCVlJOa84DI7ElzLph0oMn8Tsrq9iep+YWyhuoBlQKNdoCiRFgsptdTIvozWGdaNFw==} + /@trpc/server@11.0.0-rc.421: + resolution: {integrity: sha512-4epaOaNiqvIDuyA7FfjthKcUvFMfFoKwBTUzhu/xLGeSClgLZ0v+1HWRPPWGFLMu1ZKLHMeeySXhnY4yLFlYjw==} dev: false /@trysound/sax@0.2.0: @@ -10589,14 +11822,14 @@ packages: /@types/acorn@4.0.6: resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.1 dev: false /@types/babel__core@7.20.5: resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: - '@babel/parser': 7.24.6 - '@babel/types': 7.24.6 + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 '@types/babel__generator': 7.6.4 '@types/babel__template': 7.4.1 '@types/babel__traverse': 7.20.1 @@ -10605,42 +11838,42 @@ packages: /@types/babel__generator@7.6.4: resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==} dependencies: - '@babel/types': 7.24.6 + '@babel/types': 7.24.0 dev: false /@types/babel__template@7.4.1: resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} dependencies: - '@babel/parser': 7.24.6 - '@babel/types': 7.24.6 + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 dev: false /@types/babel__traverse@7.20.1: resolution: {integrity: sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg==} dependencies: - '@babel/types': 7.24.6 + '@babel/types': 7.24.0 dev: false /@types/body-parser@1.19.5: resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: '@types/connect': 3.4.38 - '@types/node': 20.14.0 + '@types/node': 20.14.8 /@types/braces@3.0.4: resolution: {integrity: sha512-0WR3b8eaISjEW7RpZnclONaLFDf7buaowRHdqLp4vLj54AsSAYWfh3DRbfiYJY9XDxMgx1B4sE1Afw2PGpuHOA==} dev: false - /@types/bun@1.1.3: - resolution: {integrity: sha512-i+mVz8C/lx+RprDR6Mr402iE1kmajgJPnmSfJ/NvU85sGGXSylYZ/6yc+XhVLr2E/t8o6HmjwV0evtnUOR0CFA==} + /@types/bun@1.1.5: + resolution: {integrity: sha512-7RprVDMF+1o+EWSo7F1+iJpkfNz+Ikw9K//vwambcY+D1QHXfb9l7jWY1hSBfuFEkW9yFAhkMzP2uTi1pQXoqw==} dependencies: - bun-types: 1.1.9 + bun-types: 1.1.14 dev: false /@types/connect@3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 20.14.0 + '@types/node': 20.14.8 /@types/cookie@0.5.4: resolution: {integrity: sha512-7z/eR6O859gyWIAjuvBWFzNURmf2oPBmJlfVWkwehU5nzIyjwBsTh7WMmEEV4JFnHuQ3ex4oyTvfKzcyJVDBNA==} @@ -10655,13 +11888,13 @@ packages: '@types/connect': 3.4.38 '@types/express': 4.17.21 '@types/keygrip': 1.0.6 - '@types/node': 20.14.0 + '@types/node': 20.14.8 dev: false /@types/cors@2.8.17: resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} dependencies: - '@types/node': 20.14.0 + '@types/node': 20.12.7 dev: true /@types/d3-scale-chromatic@3.0.3: @@ -10687,22 +11920,25 @@ packages: /@types/eslint@8.56.10: resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} dependencies: - '@types/estree': 1.0.5 - '@types/json-schema': 7.0.15 + '@types/estree': 1.0.1 + '@types/json-schema': 7.0.12 /@types/estree-jsx@1.0.0: resolution: {integrity: sha512-3qvGd0z8F2ENTGr/GG1yViqfiKmRfrXVx5sJyHGFu3z7m5g5utCQtGp/g29JnjflhtQJBv1WDQukHiT58xPcYQ==} dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.1 dev: false + /@types/estree@1.0.1: + resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} + /@types/estree@1.0.5: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} /@types/express-serve-static-core@4.19.0: resolution: {integrity: sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==} dependencies: - '@types/node': 20.14.0 + '@types/node': 20.14.8 '@types/qs': 6.9.15 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -10741,7 +11977,7 @@ packages: /@types/hast@3.0.4: resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} dependencies: - '@types/unist': 3.0.2 + '@types/unist': 2.0.7 dev: false /@types/http-cache-semantics@4.0.4: @@ -10754,7 +11990,7 @@ packages: /@types/http-proxy@1.17.14: resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} dependencies: - '@types/node': 20.14.0 + '@types/node': 20.14.8 /@types/istanbul-lib-coverage@2.0.6: resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} @@ -10773,6 +12009,9 @@ packages: resolution: {integrity: sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==} dev: false + /@types/json-schema@7.0.12: + resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} + /@types/json-schema@7.0.15: resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -10807,7 +12046,7 @@ packages: /@types/mdast@4.0.3: resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==} dependencies: - '@types/unist': 3.0.2 + '@types/unist': 2.0.7 dev: false /@types/mdurl@1.0.5: @@ -10838,7 +12077,7 @@ packages: /@types/mute-stream@0.0.4: resolution: {integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==} dependencies: - '@types/node': 20.14.0 + '@types/node': 20.14.8 dev: false /@types/nlcst@1.0.4: @@ -10850,14 +12089,14 @@ packages: /@types/node-fetch@2.6.2: resolution: {integrity: sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==} dependencies: - '@types/node': 20.14.0 + '@types/node': 20.14.8 form-data: 3.0.1 dev: false /@types/node-forge@1.3.11: resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} dependencies: - '@types/node': 20.14.0 + '@types/node': 20.14.8 /@types/node@12.20.55: resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} @@ -10876,8 +12115,14 @@ packages: undici-types: 5.26.5 dev: false - /@types/node@20.14.0: - resolution: {integrity: sha512-5cHBxFGJx6L4s56Bubp4fglrEpmyJypsqI6RgzMfBHWUJQGWAAi8cWcgetEbZXHYXo9C2Fa4EEds/uSyS4cxmA==} + /@types/node@20.12.7: + resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} + dependencies: + undici-types: 5.26.5 + dev: true + + /@types/node@20.14.8: + resolution: {integrity: sha512-DO+2/jZinXfROG7j7WKFn/3C6nFwxy2lLpgLjEXJz+0XKphZlTLJ14mo8Vfg8X5BWN6XjyESXq+LcYdT7tR3bA==} dependencies: undici-types: 5.26.5 @@ -10916,21 +12161,21 @@ packages: resolution: {integrity: sha512-KQf+QAMWKMrtBMsB8/24w53tEsxllMj6TuA80TT/5igJalLI/zm0L3oXRbIAl4Ohfc85gyHX/jhMwsVkmhLU4A==} dev: false - /@types/semver@7.5.8: - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + /@types/semver@7.5.0: + resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} dev: false /@types/send@0.17.4: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: '@types/mime': 1.3.5 - '@types/node': 20.14.0 + '@types/node': 20.14.8 /@types/serve-static@1.15.7: resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} dependencies: '@types/http-errors': 2.0.4 - '@types/node': 20.14.0 + '@types/node': 20.14.8 '@types/send': 0.17.4 /@types/stack-utils@2.0.3: @@ -10958,7 +12203,7 @@ packages: /@types/ws@8.5.10: resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} dependencies: - '@types/node': 20.14.0 + '@types/node': 20.14.8 dev: false /@types/yargs-parser@21.0.3: @@ -10974,8 +12219,8 @@ packages: dependencies: '@types/yargs-parser': 21.0.3 - /@typescript-eslint/eslint-plugin@7.13.1(@typescript-eslint/parser@7.13.1)(eslint@8.57.0)(typescript@5.5.2): - resolution: {integrity: sha512-kZqi+WZQaZfPKnsflLJQCz6Ze9FFSMfXrrIOcyargekQxG37ES7DJNpJUE9Q/X5n3yTIP/WPutVNzgknQ7biLg==} + /@typescript-eslint/eslint-plugin@7.10.0(@typescript-eslint/parser@7.10.0)(eslint@8.57.0)(typescript@5.5.2): + resolution: {integrity: sha512-PzCr+a/KAef5ZawX7nbyNwBDtM1HdLIT53aSA2DDlxmxMngZ43O8SIePOeX8H5S+FHXeI6t97mTt/dDdzY4Fyw==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 @@ -10986,11 +12231,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.13.1(eslint@8.57.0)(typescript@5.5.2) - '@typescript-eslint/scope-manager': 7.13.1 - '@typescript-eslint/type-utils': 7.13.1(eslint@8.57.0)(typescript@5.5.2) - '@typescript-eslint/utils': 7.13.1(eslint@8.57.0)(typescript@5.5.2) - '@typescript-eslint/visitor-keys': 7.13.1 + '@typescript-eslint/parser': 7.10.0(eslint@8.57.0)(typescript@5.5.2) + '@typescript-eslint/scope-manager': 7.10.0 + '@typescript-eslint/type-utils': 7.10.0(eslint@8.57.0)(typescript@5.5.2) + '@typescript-eslint/utils': 7.10.0(eslint@8.57.0)(typescript@5.5.2) + '@typescript-eslint/visitor-keys': 7.10.0 eslint: 8.57.0 graphemer: 1.4.0 ignore: 5.3.1 @@ -10999,9 +12244,10 @@ packages: typescript: 5.5.2 transitivePeerDependencies: - supports-color + dev: true - /@typescript-eslint/eslint-plugin@7.9.0(@typescript-eslint/parser@7.9.0)(eslint@8.57.0)(typescript@5.5.2): - resolution: {integrity: sha512-6e+X0X3sFe/G/54aC3jt0txuMTURqLyekmEHViqyA2VnxhLMpvA6nqmcjIy+Cr9tLDHPssA74BP5Mx9HQIxBEA==} + /@typescript-eslint/eslint-plugin@7.14.1(@typescript-eslint/parser@7.14.1)(eslint@8.57.0)(typescript@5.5.2): + resolution: {integrity: sha512-aAJd6bIf2vvQRjUG3ZkNXkmBpN+J7Wd0mfQiiVCJMu9Z5GcZZdcc0j8XwN/BM97Fl7e3SkTXODSk4VehUv7CGw==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 @@ -11012,11 +12258,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.9.0(eslint@8.57.0)(typescript@5.5.2) - '@typescript-eslint/scope-manager': 7.9.0 - '@typescript-eslint/type-utils': 7.9.0(eslint@8.57.0)(typescript@5.5.2) - '@typescript-eslint/utils': 7.9.0(eslint@8.57.0)(typescript@5.5.2) - '@typescript-eslint/visitor-keys': 7.9.0 + '@typescript-eslint/parser': 7.14.1(eslint@8.57.0)(typescript@5.5.2) + '@typescript-eslint/scope-manager': 7.14.1 + '@typescript-eslint/type-utils': 7.14.1(eslint@8.57.0)(typescript@5.5.2) + '@typescript-eslint/utils': 7.14.1(eslint@8.57.0)(typescript@5.5.2) + '@typescript-eslint/visitor-keys': 7.14.1 eslint: 8.57.0 graphemer: 1.4.0 ignore: 5.3.1 @@ -11025,7 +12271,6 @@ packages: typescript: 5.5.2 transitivePeerDependencies: - supports-color - dev: true /@typescript-eslint/parser@6.3.0(eslint@8.57.0)(typescript@5.5.2): resolution: {integrity: sha512-ibP+y2Gr6p0qsUkhs7InMdXrwldjxZw66wpcQq9/PzAroM45wdwyu81T+7RibNCh8oc0AgrsyCwJByncY0Ongg==} @@ -11048,8 +12293,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@7.13.1(eslint@8.57.0)(typescript@5.5.2): - resolution: {integrity: sha512-1ELDPlnLvDQ5ybTSrMhRTFDfOQEOXNM+eP+3HT/Yq7ruWpciQw+Avi73pdEbA4SooCawEWo3dtYbF68gN7Ed1A==} + /@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.5.2): + resolution: {integrity: sha512-2EjZMA0LUW5V5tGQiaa2Gys+nKdfrn2xiTIBLR4fxmPmVSvgPcKNW+AE/ln9k0A4zDUti0J/GZXMDupQoI+e1w==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -11058,18 +12303,19 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 7.13.1 - '@typescript-eslint/types': 7.13.1 - '@typescript-eslint/typescript-estree': 7.13.1(typescript@5.5.2) - '@typescript-eslint/visitor-keys': 7.13.1 + '@typescript-eslint/scope-manager': 7.10.0 + '@typescript-eslint/types': 7.10.0 + '@typescript-eslint/typescript-estree': 7.10.0(typescript@5.5.2) + '@typescript-eslint/visitor-keys': 7.10.0 debug: 4.3.4 eslint: 8.57.0 typescript: 5.5.2 transitivePeerDependencies: - supports-color + dev: true - /@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.5.2): - resolution: {integrity: sha512-qHMJfkL5qvgQB2aLvhUSXxbK7OLnDkwPzFalg458pxQgfxKDfT1ZDbHQM/I6mDIf/svlMkj21kzKuQ2ixJlatQ==} + /@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.5.2): + resolution: {integrity: sha512-8lKUOebNLcR0D7RvlcloOacTOWzOqemWEWkKSVpMZVF/XVcwjPR+3MD08QzbW9TCGJ+DwIc6zUSGZ9vd8cO1IA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -11078,16 +12324,15 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 7.9.0 - '@typescript-eslint/types': 7.9.0 - '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.5.2) - '@typescript-eslint/visitor-keys': 7.9.0 + '@typescript-eslint/scope-manager': 7.14.1 + '@typescript-eslint/types': 7.14.1 + '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.5.2) + '@typescript-eslint/visitor-keys': 7.14.1 debug: 4.3.4 eslint: 8.57.0 typescript: 5.5.2 transitivePeerDependencies: - supports-color - dev: true /@typescript-eslint/scope-manager@6.3.0: resolution: {integrity: sha512-WlNFgBEuGu74ahrXzgefiz/QlVb+qg8KDTpknKwR7hMH+lQygWyx0CQFoUmMn1zDkQjTBBIn75IxtWss77iBIQ==} @@ -11097,23 +12342,23 @@ packages: '@typescript-eslint/visitor-keys': 6.3.0 dev: true - /@typescript-eslint/scope-manager@7.13.1: - resolution: {integrity: sha512-adbXNVEs6GmbzaCpymHQ0MB6E4TqoiVbC0iqG3uijR8ZYfpAXMGttouQzF4Oat3P2GxDVIrg7bMI/P65LiQZdg==} + /@typescript-eslint/scope-manager@7.10.0: + resolution: {integrity: sha512-7L01/K8W/VGl7noe2mgH0K7BE29Sq6KAbVmxurj8GGaPDZXPr8EEQ2seOeAS+mEV9DnzxBQB6ax6qQQ5C6P4xg==} engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 7.13.1 - '@typescript-eslint/visitor-keys': 7.13.1 + '@typescript-eslint/types': 7.10.0 + '@typescript-eslint/visitor-keys': 7.10.0 + dev: true - /@typescript-eslint/scope-manager@7.9.0: - resolution: {integrity: sha512-ZwPK4DeCDxr3GJltRz5iZejPFAAr4Wk3+2WIBaj1L5PYK5RgxExu/Y68FFVclN0y6GGwH8q+KgKRCvaTmFBbgQ==} + /@typescript-eslint/scope-manager@7.14.1: + resolution: {integrity: sha512-gPrFSsoYcsffYXTOZ+hT7fyJr95rdVe4kGVX1ps/dJ+DfmlnjFN/GcMxXcVkeHDKqsq6uAcVaQaIi3cFffmAbA==} engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 7.9.0 - '@typescript-eslint/visitor-keys': 7.9.0 - dev: true + '@typescript-eslint/types': 7.14.1 + '@typescript-eslint/visitor-keys': 7.14.1 - /@typescript-eslint/type-utils@7.13.1(eslint@8.57.0)(typescript@5.5.2): - resolution: {integrity: sha512-aWDbLu1s9bmgPGXSzNCxELu+0+HQOapV/y+60gPXafR8e2g1Bifxzevaa+4L2ytCWm+CHqpELq4CSoN9ELiwCg==} + /@typescript-eslint/type-utils@7.10.0(eslint@8.57.0)(typescript@5.5.2): + resolution: {integrity: sha512-D7tS4WDkJWrVkuzgm90qYw9RdgBcrWmbbRkrLA4d7Pg3w0ttVGDsvYGV19SH8gPR5L7OtcN5J1hTtyenO9xE9g==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -11122,17 +12367,18 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 7.13.1(typescript@5.5.2) - '@typescript-eslint/utils': 7.13.1(eslint@8.57.0)(typescript@5.5.2) + '@typescript-eslint/typescript-estree': 7.10.0(typescript@5.5.2) + '@typescript-eslint/utils': 7.10.0(eslint@8.57.0)(typescript@5.5.2) debug: 4.3.4 eslint: 8.57.0 ts-api-utils: 1.3.0(typescript@5.5.2) typescript: 5.5.2 transitivePeerDependencies: - supports-color + dev: true - /@typescript-eslint/type-utils@7.9.0(eslint@8.57.0)(typescript@5.5.2): - resolution: {integrity: sha512-6Qy8dfut0PFrFRAZsGzuLoM4hre4gjzWJB6sUvdunCYZsYemTkzZNwF1rnGea326PHPT3zn5Lmg32M/xfJfByA==} + /@typescript-eslint/type-utils@7.14.1(eslint@8.57.0)(typescript@5.5.2): + resolution: {integrity: sha512-/MzmgNd3nnbDbOi3LfasXWWe292+iuo+umJ0bCCMCPc1jLO/z2BQmWUUUXvXLbrQey/JgzdF/OV+I5bzEGwJkQ==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -11141,29 +12387,28 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.5.2) - '@typescript-eslint/utils': 7.9.0(eslint@8.57.0)(typescript@5.5.2) + '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.5.2) + '@typescript-eslint/utils': 7.14.1(eslint@8.57.0)(typescript@5.5.2) debug: 4.3.4 eslint: 8.57.0 ts-api-utils: 1.3.0(typescript@5.5.2) typescript: 5.5.2 transitivePeerDependencies: - supports-color - dev: true /@typescript-eslint/types@6.3.0: resolution: {integrity: sha512-K6TZOvfVyc7MO9j60MkRNWyFSf86IbOatTKGrpTQnzarDZPYPVy0oe3myTMq7VjhfsUAbNUW8I5s+2lZvtx1gg==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/types@7.13.1: - resolution: {integrity: sha512-7K7HMcSQIAND6RBL4kDl24sG/xKM13cA85dc7JnmQXw2cBDngg7c19B++JzvJHRG3zG36n9j1i451GBzRuHchw==} + /@typescript-eslint/types@7.10.0: + resolution: {integrity: sha512-7fNj+Ya35aNyhuqrA1E/VayQX9Elwr8NKZ4WueClR3KwJ7Xx9jcCdOrLW04h51de/+gNbyFMs+IDxh5xIwfbNg==} engines: {node: ^18.18.0 || >=20.0.0} + dev: true - /@typescript-eslint/types@7.9.0: - resolution: {integrity: sha512-oZQD9HEWQanl9UfsbGVcZ2cGaR0YT5476xfWE0oE5kQa2sNK2frxOlkeacLOTh9po4AlUT5rtkGyYM5kew0z5w==} + /@typescript-eslint/types@7.14.1: + resolution: {integrity: sha512-mL7zNEOQybo5R3AavY+Am7KLv8BorIv7HCYS5rKoNZKQD9tsfGUpO4KdAn3sSUvTiS4PQkr2+K0KJbxj8H9NDg==} engines: {node: ^18.18.0 || >=20.0.0} - dev: true /@typescript-eslint/typescript-estree@6.3.0(typescript@5.5.2): resolution: {integrity: sha512-Xh4NVDaC4eYKY4O3QGPuQNp5NxBAlEvNQYOqJquR2MePNxO11E5K3t5x4M4Mx53IZvtpW+mBxIT0s274fLUocg==} @@ -11179,15 +12424,15 @@ packages: debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.6.2 + semver: 7.6.0 ts-api-utils: 1.3.0(typescript@5.5.2) typescript: 5.5.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/typescript-estree@7.13.1(typescript@5.5.2): - resolution: {integrity: sha512-uxNr51CMV7npU1BxZzYjoVz9iyjckBduFBP0S5sLlh1tXYzHzgZ3BR9SVsNed+LmwKrmnqN3Kdl5t7eZ5TS1Yw==} + /@typescript-eslint/typescript-estree@7.10.0(typescript@5.5.2): + resolution: {integrity: sha512-LXFnQJjL9XIcxeVfqmNj60YhatpRLt6UhdlFwAkjNc6jSUlK8zQOl1oktAP8PlWFzPQC1jny/8Bai3/HPuvN5g==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' @@ -11195,20 +12440,21 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 7.13.1 - '@typescript-eslint/visitor-keys': 7.13.1 + '@typescript-eslint/types': 7.10.0 + '@typescript-eslint/visitor-keys': 7.10.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.4 - semver: 7.6.2 + semver: 7.6.0 ts-api-utils: 1.3.0(typescript@5.5.2) typescript: 5.5.2 transitivePeerDependencies: - supports-color + dev: true - /@typescript-eslint/typescript-estree@7.9.0(typescript@5.5.2): - resolution: {integrity: sha512-zBCMCkrb2YjpKV3LA0ZJubtKCDxLttxfdGmwZvTqqWevUPN0FZvSI26FalGFFUZU/9YQK/A4xcQF9o/VVaCKAg==} + /@typescript-eslint/typescript-estree@7.14.1(typescript@5.5.2): + resolution: {integrity: sha512-k5d0VuxViE2ulIO6FbxxSZaxqDVUyMbXcidC8rHvii0I56XZPv8cq+EhMns+d/EVIL41sMXqRbK3D10Oza1bbA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' @@ -11216,49 +12462,48 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 7.9.0 - '@typescript-eslint/visitor-keys': 7.9.0 + '@typescript-eslint/types': 7.14.1 + '@typescript-eslint/visitor-keys': 7.14.1 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.4 - semver: 7.6.2 + semver: 7.6.0 ts-api-utils: 1.3.0(typescript@5.5.2) typescript: 5.5.2 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/utils@7.13.1(eslint@8.57.0)(typescript@5.5.2): - resolution: {integrity: sha512-h5MzFBD5a/Gh/fvNdp9pTfqJAbuQC4sCN2WzuXme71lqFJsZtLbjxfSk4r3p02WIArOF9N94pdsLiGutpDbrXQ==} + /@typescript-eslint/utils@7.10.0(eslint@8.57.0)(typescript@5.5.2): + resolution: {integrity: sha512-olzif1Fuo8R8m/qKkzJqT7qwy16CzPRWBvERS0uvyc+DHd8AKbO4Jb7kpAvVzMmZm8TrHnI7hvjN4I05zow+tg==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@typescript-eslint/scope-manager': 7.13.1 - '@typescript-eslint/types': 7.13.1 - '@typescript-eslint/typescript-estree': 7.13.1(typescript@5.5.2) + '@typescript-eslint/scope-manager': 7.10.0 + '@typescript-eslint/types': 7.10.0 + '@typescript-eslint/typescript-estree': 7.10.0(typescript@5.5.2) eslint: 8.57.0 transitivePeerDependencies: - supports-color - typescript + dev: true - /@typescript-eslint/utils@7.9.0(eslint@8.57.0)(typescript@5.5.2): - resolution: {integrity: sha512-5KVRQCzZajmT4Ep+NEgjXCvjuypVvYHUW7RHlXzNPuak2oWpVoD1jf5xCP0dPAuNIchjC7uQyvbdaSTFaLqSdA==} + /@typescript-eslint/utils@7.14.1(eslint@8.57.0)(typescript@5.5.2): + resolution: {integrity: sha512-CMmVVELns3nak3cpJhZosDkm63n+DwBlDX8g0k4QUa9BMnF+lH2lr3d130M1Zt1xxmB3LLk3NV7KQCq86ZBBhQ==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@typescript-eslint/scope-manager': 7.9.0 - '@typescript-eslint/types': 7.9.0 - '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.5.2) + '@typescript-eslint/scope-manager': 7.14.1 + '@typescript-eslint/types': 7.14.1 + '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.5.2) eslint: 8.57.0 transitivePeerDependencies: - supports-color - typescript - dev: true /@typescript-eslint/visitor-keys@6.3.0: resolution: {integrity: sha512-kEhRRj7HnvaSjux1J9+7dBen15CdWmDnwrpyiHsFX6Qx2iW5LOBUgNefOFeh2PjWPlNwN8TOn6+4eBU3J/gupw==} @@ -11268,20 +12513,20 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@7.13.1: - resolution: {integrity: sha512-k/Bfne7lrP7hcb7m9zSsgcBmo+8eicqqfNAJ7uUY+jkTFpKeH2FSkWpFRtimBxgkyvqfu9jTPRbYOvud6isdXA==} + /@typescript-eslint/visitor-keys@7.10.0: + resolution: {integrity: sha512-9ntIVgsi6gg6FIq9xjEO4VQJvwOqA3jaBFQJ/6TK5AvEup2+cECI6Fh7QiBxmfMHXU0V0J4RyPeOU1VDNzl9cg==} engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 7.13.1 + '@typescript-eslint/types': 7.10.0 eslint-visitor-keys: 3.4.3 + dev: true - /@typescript-eslint/visitor-keys@7.9.0: - resolution: {integrity: sha512-iESPx2TNLDNGQLyjKhUvIKprlP49XNEK+MvIf9nIO7ZZaZdbnfWKHnXAgufpxqfA0YryH8XToi4+CjBgVnFTSQ==} + /@typescript-eslint/visitor-keys@7.14.1: + resolution: {integrity: sha512-Crb+F75U1JAEtBeQGxSKwI60hZmmzaqA3z9sYsVm8X7W5cwLEm5bRe0/uXS6+MR/y8CVpKSR/ontIAIEPFcEkA==} engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 7.9.0 + '@typescript-eslint/types': 7.14.1 eslint-visitor-keys: 3.4.3 - dev: true /@uiw/codemirror-themes@4.21.25(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.3): resolution: {integrity: sha512-C3t/voELxQj0eaVhrlgzaOnSALNf8bOcRbL5xN9r2+RkdsbFOmvNl3VVhlxEB7PSGc1jUZwVO4wQsB2AP178ag==} @@ -11321,7 +12566,7 @@ packages: '@unhead/schema': 1.9.7 '@unhead/shared': 1.9.7 - /@unhead/vue@1.9.7(vue@3.4.25): + /@unhead/vue@1.9.7(vue@3.4.24): resolution: {integrity: sha512-c5pcNvi3FwMfqd+lfD3XUyRKPDv/AVPrep84CFXaqB7ebb+2OQTgtxBiCoRsa8+DtdhYI50lYJ/yeVdfLI9XUw==} peerDependencies: vue: '>=2.7 || >=3' @@ -11330,9 +12575,25 @@ packages: '@unhead/shared': 1.9.7 hookable: 5.5.3 unhead: 1.9.7 - vue: 3.4.25(typescript@5.5.2) + vue: 3.4.24(typescript@5.5.2) + + /@unocss/astro@0.59.4(rollup@3.29.4)(vite@5.2.10): + resolution: {integrity: sha512-DU3OR5MMR1Uvvec4/wB9EetDASHRg19Moy6z/MiIhn8JWJ0QzWYgSeJcfUX8exomMYv6WUEQJL+CyLI34Wmn8w==} + peerDependencies: + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 + peerDependenciesMeta: + vite: + optional: true + dependencies: + '@unocss/core': 0.59.4 + '@unocss/reset': 0.59.4 + '@unocss/vite': 0.59.4(rollup@3.29.4)(vite@5.2.10) + vite: 5.2.10(@types/node@20.14.8) + transitivePeerDependencies: + - rollup + dev: true - /@unocss/astro@0.59.4(rollup@3.29.4)(vite@5.2.10): + /@unocss/astro@0.59.4(vite@5.2.10): resolution: {integrity: sha512-DU3OR5MMR1Uvvec4/wB9EetDASHRg19Moy6z/MiIhn8JWJ0QzWYgSeJcfUX8exomMYv6WUEQJL+CyLI34Wmn8w==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 @@ -11343,7 +12604,7 @@ packages: '@unocss/core': 0.59.4 '@unocss/reset': 0.59.4 '@unocss/vite': 0.59.4(rollup@3.29.4)(vite@5.2.10) - vite: 5.2.10(@types/node@20.14.0) + vite: 5.2.10(@types/node@20.14.8) transitivePeerDependencies: - rollup @@ -11475,7 +12736,7 @@ packages: resolution: {integrity: sha512-xtCRSgeTaDBiNJLVX7oOSFe63JiFB5nrdK23PHn3IlZM9O7Bxx4ZxI3MQJtFZFQNE+INFko+DVyY1WiFEm1p/Q==} dependencies: '@babel/core': 7.24.4 - '@babel/plugin-syntax-jsx': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.4) '@babel/preset-typescript': 7.24.1(@babel/core@7.24.4) '@unocss/core': 0.59.4 transitivePeerDependencies: @@ -11518,7 +12779,7 @@ packages: chokidar: 3.6.0 fast-glob: 3.3.2 magic-string: 0.30.10 - vite: 5.2.10(@types/node@20.14.0) + vite: 5.2.10(@types/node@20.14.8) transitivePeerDependencies: - rollup @@ -11582,7 +12843,7 @@ packages: h3: 1.11.1 http-shutdown: 1.2.2 jiti: 1.21.0 - mlly: 1.7.0 + mlly: 1.6.1 node-forge: 1.3.1 pathe: 1.1.2 std-env: 3.7.0 @@ -11598,7 +12859,7 @@ packages: peerDependencies: vinxi: ^0.3.10 dependencies: - '@babel/parser': 7.24.6 + '@babel/parser': 7.24.4 acorn: 8.11.3 acorn-jsx: 5.3.2(acorn@8.11.3) acorn-loose: 8.4.0 @@ -11607,7 +12868,7 @@ packages: magicast: 0.2.10 recast: 0.23.4 tslib: 2.6.2 - vinxi: 0.3.11(@types/node@20.14.0) + vinxi: 0.3.11(@types/node@20.14.8) dev: false /@vinxi/server-components@0.3.3(vinxi@0.3.11): @@ -11622,7 +12883,7 @@ packages: astring: 1.8.6 magicast: 0.2.10 recast: 0.23.4 - vinxi: 0.3.11(@types/node@20.14.0) + vinxi: 0.3.11(@types/node@20.14.8) dev: false /@vinxi/server-functions@0.3.2(vinxi@0.3.11): @@ -11637,7 +12898,7 @@ packages: astring: 1.8.6 magicast: 0.2.10 recast: 0.23.4 - vinxi: 0.3.11(@types/node@20.14.0) + vinxi: 0.3.11(@types/node@20.14.8) dev: false /@vitejs/plugin-react-swc@3.6.0(vite@5.2.10): @@ -11646,7 +12907,7 @@ packages: vite: ^4 || ^5 dependencies: '@swc/core': 1.4.16 - vite: 5.2.10(@types/node@20.14.0) + vite: 5.2.10(@types/node@20.14.8) transitivePeerDependencies: - '@swc/helpers' dev: true @@ -11661,13 +12922,13 @@ packages: '@babel/plugin-transform-react-jsx-self': 7.24.1(@babel/core@7.24.4) '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.4) '@types/babel__core': 7.20.5 - react-refresh: 0.14.2 - vite: 5.2.10(@types/node@20.14.0) + react-refresh: 0.14.0 + vite: 5.2.10(@types/node@20.14.8) transitivePeerDependencies: - supports-color dev: false - /@vitejs/plugin-vue-jsx@3.1.0(vite@5.2.10)(vue@3.4.25): + /@vitejs/plugin-vue-jsx@3.1.0(vite@5.2.10)(vue@3.4.24): resolution: {integrity: sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -11677,27 +12938,27 @@ packages: '@babel/core': 7.24.4 '@babel/plugin-transform-typescript': 7.24.4(@babel/core@7.24.4) '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.24.4) - vite: 5.2.10(@types/node@20.14.0) - vue: 3.4.25(typescript@5.5.2) + vite: 5.2.10(@types/node@20.14.8) + vue: 3.4.24(typescript@5.5.2) transitivePeerDependencies: - supports-color - /@vitejs/plugin-vue@5.0.4(vite@5.2.10)(vue@3.4.25): + /@vitejs/plugin-vue@5.0.4(vite@5.2.10)(vue@3.4.24): resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: vite: ^5.0.0 vue: ^3.2.25 dependencies: - vite: 5.2.10(@types/node@20.14.0) - vue: 3.4.25(typescript@5.5.2) + vite: 5.2.10(@types/node@20.14.8) + vue: 3.4.24(typescript@5.5.2) /@vitest/coverage-v8@1.5.0(vitest@1.5.0): resolution: {integrity: sha512-1igVwlcqw1QUMdfcMlzzY4coikSIBN944pkueGi0pawrX5I5Z+9hxdTR+w3Sg6Q3eZhvdMAs8ZaF9JuTG1uYOQ==} peerDependencies: vitest: 1.5.0 dependencies: - '@ampproject/remapping': 2.3.0 + '@ampproject/remapping': 2.2.1 '@bcoe/v8-coverage': 0.2.3 debug: 4.3.4 istanbul-lib-coverage: 3.2.2 @@ -11710,7 +12971,7 @@ packages: std-env: 3.7.0 strip-literal: 2.1.0 test-exclude: 6.0.0 - vitest: 1.5.0(@types/node@20.14.0)(happy-dom@13.10.1) + vitest: 1.5.0(@types/node@20.14.8)(happy-dom@13.10.1) transitivePeerDependencies: - supports-color dev: false @@ -11727,13 +12988,13 @@ packages: dependencies: '@vitest/utils': 1.5.0 p-limit: 5.0.0 - pathe: 1.1.2 + pathe: 1.1.1 /@vitest/snapshot@1.5.0: resolution: {integrity: sha512-qpv3fSEuNrhAO3FpH6YYRdaECnnRjg9VxbhdtPwPRnzSfHVXnNzzrpX4cJxqiwgRMo7uRMWDFBlsBq4Cr+rO3A==} dependencies: magic-string: 0.30.10 - pathe: 1.1.2 + pathe: 1.1.1 pretty-format: 29.7.0 /@vitest/spy@1.5.0: @@ -11768,7 +13029,7 @@ packages: path-browserify: 1.0.1 dev: true - /@vue-macros/common@1.10.2(rollup@3.29.4)(vue@3.4.25): + /@vue-macros/common@1.10.2(rollup@3.29.4)(vue@3.4.24): resolution: {integrity: sha512-WC66NPVh2mJWqm4L0l/u/cOqm4pNOIwVdMGnDYAH2rHcOWy5x68GkhpkYTBu1+xwCSeHWOQn1TCGGbD+98fFpA==} engines: {node: '>=16.14.0'} peerDependencies: @@ -11777,17 +13038,17 @@ packages: vue: optional: true dependencies: - '@babel/types': 7.24.6 + '@babel/types': 7.24.0 '@rollup/pluginutils': 5.1.0(rollup@3.29.4) - '@vue/compiler-sfc': 3.4.25 + '@vue/compiler-sfc': 3.4.24 ast-kit: 0.12.1 local-pkg: 0.5.0 magic-string-ast: 0.3.0 - vue: 3.4.25(typescript@5.5.2) + vue: 3.4.24(typescript@5.5.2) transitivePeerDependencies: - rollup - /@vue-macros/common@1.10.2(rollup@4.18.0)(vue@3.4.25): + /@vue-macros/common@1.10.2(rollup@4.18.0)(vue@3.4.24): resolution: {integrity: sha512-WC66NPVh2mJWqm4L0l/u/cOqm4pNOIwVdMGnDYAH2rHcOWy5x68GkhpkYTBu1+xwCSeHWOQn1TCGGbD+98fFpA==} engines: {node: '>=16.14.0'} peerDependencies: @@ -11796,13 +13057,13 @@ packages: vue: optional: true dependencies: - '@babel/types': 7.24.6 + '@babel/types': 7.24.0 '@rollup/pluginutils': 5.1.0(rollup@4.18.0) - '@vue/compiler-sfc': 3.4.25 + '@vue/compiler-sfc': 3.4.24 ast-kit: 0.12.1 local-pkg: 0.5.0 magic-string-ast: 0.3.0 - vue: 3.4.25(typescript@5.5.2) + vue: 3.4.24(typescript@5.5.2) transitivePeerDependencies: - rollup dev: true @@ -11816,11 +13077,11 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.4 - '@babel/helper-module-imports': 7.24.6 - '@babel/plugin-syntax-jsx': 7.24.6(@babel/core@7.24.4) - '@babel/template': 7.24.6 + '@babel/helper-module-imports': 7.22.5 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.24.4) + '@babel/template': 7.24.0 '@babel/traverse': 7.24.1 - '@babel/types': 7.24.6 + '@babel/types': 7.24.0 '@vue/babel-helper-vue-transform-on': 1.1.5 camelcase: 6.3.0 html-tags: 3.3.1 @@ -11828,25 +13089,67 @@ packages: transitivePeerDependencies: - supports-color + /@vue/compiler-core@3.3.4: + resolution: {integrity: sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==} + dependencies: + '@babel/parser': 7.24.4 + '@vue/shared': 3.3.4 + estree-walker: 2.0.2 + source-map-js: 1.2.0 + + /@vue/compiler-core@3.4.24: + resolution: {integrity: sha512-vbW/tgbwJYj62N/Ww99x0zhFTkZDTcGh3uwJEuadZ/nF9/xuFMC4693P9r+3sxGXISABpDKvffY5ApH9pmdd1A==} + dependencies: + '@babel/parser': 7.24.4 + '@vue/shared': 3.4.24 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.0 + /@vue/compiler-core@3.4.25: resolution: {integrity: sha512-Y2pLLopaElgWnMNolgG8w3C5nNUVev80L7hdQ5iIKPtMJvhVpG0zhnBG/g3UajJmZdvW0fktyZTotEHD1Srhbg==} dependencies: - '@babel/parser': 7.24.6 + '@babel/parser': 7.24.4 '@vue/shared': 3.4.25 entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.2.0 + /@vue/compiler-dom@3.3.4: + resolution: {integrity: sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==} + dependencies: + '@vue/compiler-core': 3.3.4 + '@vue/shared': 3.3.4 + + /@vue/compiler-dom@3.4.24: + resolution: {integrity: sha512-4XgABML/4cNndVsQndG6BbGN7+EoisDwi3oXNovqL/4jdNhwvP8/rfRMTb6FxkxIxUUtg6AI1/qZvwfSjxJiWA==} + dependencies: + '@vue/compiler-core': 3.4.24 + '@vue/shared': 3.4.24 + /@vue/compiler-dom@3.4.25: resolution: {integrity: sha512-Ugz5DusW57+HjllAugLci19NsDK+VyjGvmbB2TXaTcSlQxwL++2PETHx/+Qv6qFwNLzSt7HKepPe4DcTE3pBWg==} dependencies: '@vue/compiler-core': 3.4.25 '@vue/shared': 3.4.25 + /@vue/compiler-sfc@3.4.24: + resolution: {integrity: sha512-nRAlJUK02FTWfA2nuvNBAqsDZuERGFgxZ8sGH62XgFSvMxO2URblzulExsmj4gFZ8e+VAyDooU9oAoXfEDNxTA==} + dependencies: + '@babel/parser': 7.24.4 + '@vue/compiler-core': 3.4.24 + '@vue/compiler-dom': 3.4.24 + '@vue/compiler-ssr': 3.4.24 + '@vue/shared': 3.4.24 + estree-walker: 2.0.2 + magic-string: 0.30.10 + postcss: 8.4.38 + source-map-js: 1.2.0 + /@vue/compiler-sfc@3.4.25: resolution: {integrity: sha512-m7rryuqzIoQpOBZ18wKyq05IwL6qEpZxFZfRxlNYuIPDqywrXQxgUwLXIvoU72gs6cRdY6wHD0WVZIFE4OEaAQ==} dependencies: - '@babel/parser': 7.24.6 + '@babel/parser': 7.24.4 '@vue/compiler-core': 3.4.25 '@vue/compiler-dom': 3.4.25 '@vue/compiler-ssr': 3.4.25 @@ -11856,6 +13159,12 @@ packages: postcss: 8.4.38 source-map-js: 1.2.0 + /@vue/compiler-ssr@3.4.24: + resolution: {integrity: sha512-ZsAtr4fhaUFnVcDqwW3bYCSDwq+9Gk69q2r/7dAHDrOMw41kylaMgOP4zRnn6GIEJkQznKgrMOGPMFnLB52RbQ==} + dependencies: + '@vue/compiler-dom': 3.4.24 + '@vue/shared': 3.4.24 + /@vue/compiler-ssr@3.4.25: resolution: {integrity: sha512-H2ohvM/Pf6LelGxDBnfbbXFPyM4NE3hrw0e/EpwuSiYu8c819wx+SVGdJ65p/sFrYDd6OnSDxN1MB2mN07hRSQ==} dependencies: @@ -11865,18 +13174,47 @@ packages: /@vue/devtools-api@6.6.1: resolution: {integrity: sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA==} - /@vue/devtools-applet@7.1.3(@unocss/reset@0.59.4)(floating-vue@5.2.2)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.25): - resolution: {integrity: sha512-525h17FzUF7ssko/U+yeP5jv0HaGm3eI4dVqncWPRCLTDtOy1V+srjoxYqr5qnzx6AdIU2icPQF2KNomd9FGZw==} + /@vue/devtools-applet@7.0.27(@unocss/reset@0.59.4)(floating-vue@5.2.2)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.24): + resolution: {integrity: sha512-ubNn/qIn5n3x7YCVSabfQfKL49GoJPJdYu4LfdNz/gZkgb1+djdATpKl/+xzQoOqtGzqnR9nMoCHApAJAgeMyg==} peerDependencies: vue: ^3.0.0 dependencies: - '@vue/devtools-core': 7.2.1(vite@5.2.10)(vue@3.4.25) - '@vue/devtools-kit': 7.2.1(vue@3.4.25) - '@vue/devtools-shared': 7.2.1 - '@vue/devtools-ui': 7.2.1(@unocss/reset@0.59.4)(floating-vue@5.2.2)(unocss@0.59.4)(vue@3.4.25) - lodash-es: 4.17.21 + '@vue/devtools-core': 7.0.27(vite@5.2.10)(vue@3.4.24) + '@vue/devtools-kit': 7.0.27(vue@3.4.24) + '@vue/devtools-shared': 7.0.27 + '@vue/devtools-ui': 7.0.27(@unocss/reset@0.59.4)(floating-vue@5.2.2)(unocss@0.59.4)(vue@3.4.24) + perfect-debounce: 1.0.0 + splitpanes: 3.1.5 + vue: 3.4.24(typescript@5.5.2) + vue-virtual-scroller: 2.0.0-beta.8(vue@3.4.24) + transitivePeerDependencies: + - '@unocss/reset' + - '@vue/composition-api' + - async-validator + - axios + - change-case + - drauu + - floating-vue + - fuse.js + - idb-keyval + - jwt-decode + - nprogress + - qrcode + - sortablejs + - universal-cookie + - unocss + - vite + + /@vue/devtools-applet@7.0.27(@unocss/reset@0.59.4)(floating-vue@5.2.2)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.25): + resolution: {integrity: sha512-ubNn/qIn5n3x7YCVSabfQfKL49GoJPJdYu4LfdNz/gZkgb1+djdATpKl/+xzQoOqtGzqnR9nMoCHApAJAgeMyg==} + peerDependencies: + vue: ^3.0.0 + dependencies: + '@vue/devtools-core': 7.0.27(vite@5.2.10)(vue@3.4.25) + '@vue/devtools-kit': 7.0.27(vue@3.4.25) + '@vue/devtools-shared': 7.0.27 + '@vue/devtools-ui': 7.0.27(@unocss/reset@0.59.4)(floating-vue@5.2.2)(unocss@0.59.4)(vue@3.4.25) perfect-debounce: 1.0.0 - shiki: 1.3.0 splitpanes: 3.1.5 vue: 3.4.25(typescript@5.5.2) vue-virtual-scroller: 2.0.0-beta.8(vue@3.4.25) @@ -11897,12 +13235,13 @@ packages: - universal-cookie - unocss - vite + dev: true - /@vue/devtools-core@7.1.3(vite@5.2.10)(vue@3.4.25): - resolution: {integrity: sha512-pVbWi8pf2Z/fZPioYOIgu+cv9pQG55k4D8bL31ec+Wfe+pQR0ImFDu0OhHfch1Ra8uvLLrAZTF4IKeGAkmzD4A==} + /@vue/devtools-core@7.0.27(vite@5.2.10)(vue@3.4.24): + resolution: {integrity: sha512-3rbtNGxFFFPfIObgTAPIw0h0rJy+y1PrbfgM9nXRf3/FIJkthfS19yj31pj9EWIqRsyiqK5u1Ni7SAJZ0vsQOA==} dependencies: - '@vue/devtools-kit': 7.2.1(vue@3.4.25) - '@vue/devtools-shared': 7.2.1 + '@vue/devtools-kit': 7.0.27(vue@3.4.24) + '@vue/devtools-shared': 7.0.27 mitt: 3.0.1 nanoid: 3.3.7 pathe: 1.1.2 @@ -11911,11 +13250,11 @@ packages: - vite - vue - /@vue/devtools-core@7.2.1(vite@5.2.10)(vue@3.4.25): - resolution: {integrity: sha512-OyWl455UnJIVgZ6lo5WQ79WbDMoXtSRwyNKp9WzCZ0HhuQywIk4qv59KtLRe75uVmtGBde4hXNaSyRm+x9bY6g==} + /@vue/devtools-core@7.0.27(vite@5.2.10)(vue@3.4.25): + resolution: {integrity: sha512-3rbtNGxFFFPfIObgTAPIw0h0rJy+y1PrbfgM9nXRf3/FIJkthfS19yj31pj9EWIqRsyiqK5u1Ni7SAJZ0vsQOA==} dependencies: - '@vue/devtools-kit': 7.2.1(vue@3.4.25) - '@vue/devtools-shared': 7.2.1 + '@vue/devtools-kit': 7.0.27(vue@3.4.25) + '@vue/devtools-shared': 7.0.27 mitt: 3.0.1 nanoid: 3.3.7 pathe: 1.1.2 @@ -11923,38 +13262,71 @@ packages: transitivePeerDependencies: - vite - vue + dev: true - /@vue/devtools-kit@7.1.3(vue@3.4.25): - resolution: {integrity: sha512-NFskFSJMVCBXTkByuk2llzI3KD3Blcm7WqiRorWjD6nClHPgkH5BobDH08rfulqq5ocRt5xV+3qOT1Q9FXJrwQ==} + /@vue/devtools-kit@7.0.27(vue@3.4.24): + resolution: {integrity: sha512-/A5xM38pPCFX5Yhl/lRFAzjyK6VNsH670nww2WbjFKWqlu3I+lMxWKzQkCW6A1V8bduITgl2kHORfg2gTw6QaA==} peerDependencies: vue: ^3.0.0 dependencies: - '@vue/devtools-shared': 7.2.1 + '@vue/devtools-shared': 7.0.27 hookable: 5.5.3 mitt: 3.0.1 perfect-debounce: 1.0.0 speakingurl: 14.0.1 - vue: 3.4.25(typescript@5.5.2) + vue: 3.4.24(typescript@5.5.2) - /@vue/devtools-kit@7.2.1(vue@3.4.25): - resolution: {integrity: sha512-Wak/fin1X0Q8LLIfCAHBrdaaB+R6IdpSXsDByPHbQ3BmkCP0/cIo/oEGp9i0U2+gEqD4L3V9RDjNf1S34DTzQQ==} + /@vue/devtools-kit@7.0.27(vue@3.4.25): + resolution: {integrity: sha512-/A5xM38pPCFX5Yhl/lRFAzjyK6VNsH670nww2WbjFKWqlu3I+lMxWKzQkCW6A1V8bduITgl2kHORfg2gTw6QaA==} peerDependencies: vue: ^3.0.0 dependencies: - '@vue/devtools-shared': 7.2.1 + '@vue/devtools-shared': 7.0.27 hookable: 5.5.3 mitt: 3.0.1 perfect-debounce: 1.0.0 speakingurl: 14.0.1 vue: 3.4.25(typescript@5.5.2) + dev: true - /@vue/devtools-shared@7.2.1: - resolution: {integrity: sha512-PCJF4UknJmOal68+X9XHyVeQ+idv0LFujkTOIW30+GaMJqwFVN9LkQKX4gLqn61KkGMdJTzQ1bt7EJag3TI6AA==} + /@vue/devtools-shared@7.0.27: + resolution: {integrity: sha512-4VxtmZ6yjhiSloqZZq2UYU0TBGxOJ8GxWvp5OlAH70zYqi0FIAyWGPkOhvfoZ7DKQyv2UU0mmKzFHjsEkelGyQ==} dependencies: rfdc: 1.3.1 - /@vue/devtools-ui@7.2.1(@unocss/reset@0.59.4)(floating-vue@5.2.2)(unocss@0.59.4)(vue@3.4.25): - resolution: {integrity: sha512-3XwW6uTn5noXKN4T4T9rpFlQR0B050ebwUO+Y8HsWHv8XZ451xk+A89y00s1Zx7P2SRkDqeJgbi4kYSHnXkxbg==} + /@vue/devtools-ui@7.0.27(@unocss/reset@0.59.4)(floating-vue@5.2.2)(unocss@0.59.4)(vue@3.4.24): + resolution: {integrity: sha512-MVcQwqqGNW2poW29OkzOcpNLHb0R/VQECWYiDYvKqjWp3G8M/FS2E5mUnjXxZGpfqHjSEmJs+fFGY8exnYpNng==} + peerDependencies: + '@unocss/reset': '>=0.50.0-0' + floating-vue: '>=2.0.0-0' + unocss: '>=0.50.0-0' + vue: '>=3.0.0-0' + dependencies: + '@unocss/reset': 0.59.4 + '@vueuse/components': 10.9.0(vue@3.4.24) + '@vueuse/core': 10.9.0(vue@3.4.24) + '@vueuse/integrations': 10.9.0(focus-trap@7.5.4)(vue@3.4.24) + colord: 2.9.3 + floating-vue: 5.2.2(vue@3.4.24) + focus-trap: 7.5.4 + unocss: 0.59.4(postcss@8.4.38)(vite@5.2.10) + vue: 3.4.24(typescript@5.5.2) + transitivePeerDependencies: + - '@vue/composition-api' + - async-validator + - axios + - change-case + - drauu + - fuse.js + - idb-keyval + - jwt-decode + - nprogress + - qrcode + - sortablejs + - universal-cookie + + /@vue/devtools-ui@7.0.27(@unocss/reset@0.59.4)(floating-vue@5.2.2)(unocss@0.59.4)(vue@3.4.25): + resolution: {integrity: sha512-MVcQwqqGNW2poW29OkzOcpNLHb0R/VQECWYiDYvKqjWp3G8M/FS2E5mUnjXxZGpfqHjSEmJs+fFGY8exnYpNng==} peerDependencies: '@unocss/reset': '>=0.50.0-0' floating-vue: '>=2.0.0-0' @@ -11962,7 +13334,6 @@ packages: vue: '>=3.0.0-0' dependencies: '@unocss/reset': 0.59.4 - '@vue/devtools-shared': 7.2.1 '@vueuse/components': 10.9.0(vue@3.4.25) '@vueuse/core': 10.9.0(vue@3.4.25) '@vueuse/integrations': 10.9.0(focus-trap@7.5.4)(vue@3.4.25) @@ -11984,6 +13355,7 @@ packages: - qrcode - sortablejs - universal-cookie + dev: true /@vue/language-core@2.0.14(typescript@5.5.2): resolution: {integrity: sha512-3q8mHSNcGTR7sfp2X6jZdcb4yt8AjBXAfKk0qkZIh7GAJxOnoZ10h5HToZglw4ToFvAnq+xu/Z2FFbglh9Icag==} @@ -11994,26 +13366,44 @@ packages: optional: true dependencies: '@volar/language-core': 2.2.0-alpha.10 - '@vue/compiler-dom': 3.4.25 - '@vue/shared': 3.4.25 + '@vue/compiler-dom': 3.4.24 + '@vue/shared': 3.4.24 computeds: 0.0.1 - minimatch: 9.0.4 + minimatch: 9.0.3 path-browserify: 1.0.1 typescript: 5.5.2 vue-template-compiler: 2.7.14 dev: true + /@vue/reactivity@3.4.24: + resolution: {integrity: sha512-nup3fSYg4i4LtNvu9slF/HF/0dkMQYfepUdORBcMSsankzRPzE7ypAFurpwyRBfU1i7Dn1kcwpYsE1wETSh91g==} + dependencies: + '@vue/shared': 3.4.24 + /@vue/reactivity@3.4.25: resolution: {integrity: sha512-mKbEtKr1iTxZkAG3vm3BtKHAOhuI4zzsVcN0epDldU/THsrvfXRKzq+lZnjczZGnTdh3ojd86/WrP+u9M51pWQ==} dependencies: '@vue/shared': 3.4.25 + /@vue/runtime-core@3.4.24: + resolution: {integrity: sha512-c7iMfj6cJMeAG3s5yOn9Rc5D9e2/wIuaozmGf/ICGCY3KV5H7mbTVdvEkd4ZshTq7RUZqj2k7LMJWVx+EBiY1g==} + dependencies: + '@vue/reactivity': 3.4.24 + '@vue/shared': 3.4.24 + /@vue/runtime-core@3.4.25: resolution: {integrity: sha512-3qhsTqbEh8BMH3pXf009epCI5E7bKu28fJLi9O6W+ZGt/6xgSfMuGPqa5HRbUxLoehTNp5uWvzCr60KuiRIL0Q==} dependencies: '@vue/reactivity': 3.4.25 '@vue/shared': 3.4.25 + /@vue/runtime-dom@3.4.24: + resolution: {integrity: sha512-uXKzuh/Emfad2Y7Qm0ABsLZZV6H3mAJ5ZVqmAOlrNQRf+T5mxpPGZBfec1hkP41t6h6FwF6RSGCs/gd8WbuySQ==} + dependencies: + '@vue/runtime-core': 3.4.24 + '@vue/shared': 3.4.24 + csstype: 3.1.3 + /@vue/runtime-dom@3.4.25: resolution: {integrity: sha512-ode0sj77kuwXwSc+2Yhk8JMHZh1sZp9F/51wdBiz3KGaWltbKtdihlJFhQG4H6AY+A06zzeMLkq6qu8uDSsaoA==} dependencies: @@ -12021,6 +13411,15 @@ packages: '@vue/shared': 3.4.25 csstype: 3.1.3 + /@vue/server-renderer@3.4.24(vue@3.4.24): + resolution: {integrity: sha512-H+DLK4sQF6sRgzKyofmlEVBIV/9KrQU6HIV7nt6yIwSGGKvSwlV8pqJlebUKLpbXaNHugdSfAbP6YmXF69lxow==} + peerDependencies: + vue: 3.4.24 + dependencies: + '@vue/compiler-ssr': 3.4.24 + '@vue/shared': 3.4.24 + vue: 3.4.24(typescript@5.5.2) + /@vue/server-renderer@3.4.25(vue@3.4.25): resolution: {integrity: sha512-8VTwq0Zcu3K4dWV0jOwIVINESE/gha3ifYCOKEhxOj6MEl5K5y8J8clQncTcDhKF+9U765nRw4UdUEXvrGhyVQ==} peerDependencies: @@ -12030,9 +13429,25 @@ packages: '@vue/shared': 3.4.25 vue: 3.4.25(typescript@5.5.2) + /@vue/shared@3.3.4: + resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==} + + /@vue/shared@3.4.24: + resolution: {integrity: sha512-BW4tajrJBM9AGAknnyEw5tO2xTmnqgup0VTnDAMcxYmqOX0RG0b9aSUGAbEKolD91tdwpA6oCwbltoJoNzpItw==} + /@vue/shared@3.4.25: resolution: {integrity: sha512-k0yappJ77g2+KNrIaF0FFnzwLvUBLUYr8VOwz+/6vLsmItFp51AcxLL7Ey3iPd7BIRyWPOcqUjMnm7OkahXllA==} + /@vueuse/components@10.9.0(vue@3.4.24): + resolution: {integrity: sha512-BHQpA0yIi3y7zKa1gYD0FUzLLkcRTqVhP8smnvsCK6GFpd94Nziq1XVPD7YpFeho0k5BzbBiNZF7V/DpkJ967A==} + dependencies: + '@vueuse/core': 10.9.0(vue@3.4.24) + '@vueuse/shared': 10.9.0(vue@3.4.24) + vue-demi: 0.14.7(vue@3.4.24) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + /@vueuse/components@10.9.0(vue@3.4.25): resolution: {integrity: sha512-BHQpA0yIi3y7zKa1gYD0FUzLLkcRTqVhP8smnvsCK6GFpd94Nziq1XVPD7YpFeho0k5BzbBiNZF7V/DpkJ967A==} dependencies: @@ -12042,6 +13457,18 @@ packages: transitivePeerDependencies: - '@vue/composition-api' - vue + dev: true + + /@vueuse/core@10.9.0(vue@3.4.24): + resolution: {integrity: sha512-/1vjTol8SXnx6xewDEKfS0Ra//ncg4Hb0DaZiwKf7drgfMsKFExQ+FnnENcN6efPen+1kIzhLQoGSy0eDUVOMg==} + dependencies: + '@types/web-bluetooth': 0.0.20 + '@vueuse/metadata': 10.9.0 + '@vueuse/shared': 10.9.0(vue@3.4.24) + vue-demi: 0.14.7(vue@3.4.24) + transitivePeerDependencies: + - '@vue/composition-api' + - vue /@vueuse/core@10.9.0(vue@3.4.25): resolution: {integrity: sha512-/1vjTol8SXnx6xewDEKfS0Ra//ncg4Hb0DaZiwKf7drgfMsKFExQ+FnnENcN6efPen+1kIzhLQoGSy0eDUVOMg==} @@ -12054,6 +13481,55 @@ packages: - '@vue/composition-api' - vue + /@vueuse/integrations@10.9.0(focus-trap@7.5.4)(vue@3.4.24): + resolution: {integrity: sha512-acK+A01AYdWSvL4BZmCoJAcyHJ6EqhmkQEXbQLwev1MY7NBnS+hcEMx/BzVoR9zKI+UqEPMD9u6PsyAuiTRT4Q==} + peerDependencies: + async-validator: '*' + axios: '*' + change-case: '*' + drauu: '*' + focus-trap: '*' + fuse.js: '*' + idb-keyval: '*' + jwt-decode: '*' + nprogress: '*' + qrcode: '*' + sortablejs: '*' + universal-cookie: '*' + peerDependenciesMeta: + async-validator: + optional: true + axios: + optional: true + change-case: + optional: true + drauu: + optional: true + focus-trap: + optional: true + fuse.js: + optional: true + idb-keyval: + optional: true + jwt-decode: + optional: true + nprogress: + optional: true + qrcode: + optional: true + sortablejs: + optional: true + universal-cookie: + optional: true + dependencies: + '@vueuse/core': 10.9.0(vue@3.4.24) + '@vueuse/shared': 10.9.0(vue@3.4.24) + focus-trap: 7.5.4 + vue-demi: 0.14.7(vue@3.4.24) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + /@vueuse/integrations@10.9.0(focus-trap@7.5.4)(vue@3.4.25): resolution: {integrity: sha512-acK+A01AYdWSvL4BZmCoJAcyHJ6EqhmkQEXbQLwev1MY7NBnS+hcEMx/BzVoR9zKI+UqEPMD9u6PsyAuiTRT4Q==} peerDependencies: @@ -12102,10 +13578,19 @@ packages: transitivePeerDependencies: - '@vue/composition-api' - vue + dev: true /@vueuse/metadata@10.9.0: resolution: {integrity: sha512-iddNbg3yZM0X7qFY2sAotomgdHK7YJ6sKUvQqbvwnf7TmaVPxS4EJydcNsVejNdS8iWCtDk+fYXr7E32nyTnGA==} + /@vueuse/shared@10.9.0(vue@3.4.24): + resolution: {integrity: sha512-Uud2IWncmAfJvRaFYzv5OHDli+FbOzxiVEQdLCKQKLyhz94PIyFC3CHcH7EDMwIn8NPtD06+PNbC/PiO0LGLtw==} + dependencies: + vue-demi: 0.14.7(vue@3.4.24) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + /@vueuse/shared@10.9.0(vue@3.4.25): resolution: {integrity: sha512-Uud2IWncmAfJvRaFYzv5OHDli+FbOzxiVEQdLCKQKLyhz94PIyFC3CHcH7EDMwIn8NPtD06+PNbC/PiO0LGLtw==} dependencies: @@ -12184,10 +13669,21 @@ packages: acorn: 8.11.3 dev: false + /acorn-walk@8.2.0: + resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} + engines: {node: '>=0.4.0'} + dev: true + /acorn-walk@8.3.2: resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} engines: {node: '>=0.4.0'} + /acorn@8.10.0: + resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + /acorn@8.11.3: resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} engines: {node: '>=0.4.0'} @@ -12201,6 +13697,14 @@ packages: transitivePeerDependencies: - supports-color + /agent-base@7.1.0: + resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} + engines: {node: '>= 14'} + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + /agent-base@7.1.1: resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} engines: {node: '>= 14'} @@ -12396,7 +13900,6 @@ packages: /are-we-there-yet@2.0.0: resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} engines: {node: '>=10'} - deprecated: This package is no longer supported. dependencies: delegates: 1.0.0 readable-stream: 3.6.2 @@ -12428,6 +13931,12 @@ packages: dependencies: dequal: 2.0.3 + /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 + /array-buffer-byte-length@1.0.1: resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} engines: {node: '>= 0.4'} @@ -12479,31 +13988,40 @@ packages: es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 + /array.prototype.flat@1.3.1: + resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.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.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-shim-unscopables: 1.0.2 + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.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.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-shim-unscopables: 1.0.2 + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + es-shim-unscopables: 1.0.0 /array.prototype.toreversed@1.1.2: resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==} dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-shim-unscopables: 1.0.2 + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + es-shim-unscopables: 1.0.0 /array.prototype.tosorted@1.1.3: resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==} @@ -12514,6 +14032,17 @@ packages: es-errors: 1.3.0 es-shim-unscopables: 1.0.2 + /arraybuffer.prototype.slice@1.0.1: + resolution: {integrity: sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.2 + define-properties: 1.2.0 + get-intrinsic: 1.2.1 + is-array-buffer: 3.0.2 + is-shared-array-buffer: 1.0.2 + /arraybuffer.prototype.slice@1.0.3: resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} engines: {node: '>= 0.4'} @@ -12566,14 +14095,14 @@ packages: resolution: {integrity: sha512-O+33g7x6irsESUcd47KdfWUrS2F6aGp9KeVJFGj0YjIznfXpBxVGjA0w+y/1OKqX4mFOfmZ9Xpf1ixPT4n9xxw==} engines: {node: '>=16.14.0'} dependencies: - '@babel/parser': 7.24.6 + '@babel/parser': 7.24.4 pathe: 1.1.2 /ast-kit@0.9.5(rollup@3.29.4): resolution: {integrity: sha512-kbL7ERlqjXubdDd+szuwdlQ1xUxEz9mCz1+m07ftNVStgwRb2RWw+U6oKo08PAvOishMxiqz1mlJyLl8yQx2Qg==} engines: {node: '>=16.14.0'} dependencies: - '@babel/parser': 7.24.6 + '@babel/parser': 7.24.4 '@rollup/pluginutils': 5.1.0(rollup@3.29.4) pathe: 1.1.2 transitivePeerDependencies: @@ -12583,7 +14112,7 @@ packages: resolution: {integrity: sha512-kbL7ERlqjXubdDd+szuwdlQ1xUxEz9mCz1+m07ftNVStgwRb2RWw+U6oKo08PAvOishMxiqz1mlJyLl8yQx2Qg==} engines: {node: '>=16.14.0'} dependencies: - '@babel/parser': 7.24.6 + '@babel/parser': 7.24.4 '@rollup/pluginutils': 5.1.0(rollup@4.18.0) pathe: 1.1.2 transitivePeerDependencies: @@ -12611,7 +14140,7 @@ packages: resolution: {integrity: sha512-NsyHMxBh4dmdEHjBo1/TBZvCKxffmZxRYhmclfu0PP6Aftre47jOHYaYaNqJcV0bxihxFXhDkzLHUwHc0ocd0Q==} engines: {node: '>=16.14.0'} dependencies: - '@babel/parser': 7.24.6 + '@babel/parser': 7.22.10 ast-kit: 0.9.5(rollup@3.29.4) transitivePeerDependencies: - rollup @@ -12621,7 +14150,7 @@ packages: resolution: {integrity: sha512-NsyHMxBh4dmdEHjBo1/TBZvCKxffmZxRYhmclfu0PP6Aftre47jOHYaYaNqJcV0bxihxFXhDkzLHUwHc0ocd0Q==} engines: {node: '>=16.14.0'} dependencies: - '@babel/parser': 7.24.6 + '@babel/parser': 7.22.10 ast-kit: 0.9.5(rollup@3.29.4) transitivePeerDependencies: - rollup @@ -12631,7 +14160,7 @@ packages: resolution: {integrity: sha512-NsyHMxBh4dmdEHjBo1/TBZvCKxffmZxRYhmclfu0PP6Aftre47jOHYaYaNqJcV0bxihxFXhDkzLHUwHc0ocd0Q==} engines: {node: '>=16.14.0'} dependencies: - '@babel/parser': 7.24.6 + '@babel/parser': 7.22.10 ast-kit: 0.9.5(rollup@4.18.0) transitivePeerDependencies: - rollup @@ -12646,7 +14175,7 @@ packages: hasBin: true dev: false - /astro@4.6.3(@types/node@20.14.0)(typescript@5.5.2): + /astro@4.6.3(@types/node@20.14.8)(typescript@5.5.2): resolution: {integrity: sha512-p2zs1Gac+ysdc/yFCoc8pOXTZE5L9foAtmqUzUVL22WX68bYTRovd03GRs7J1MDpwzsl9kJtlK20ROpjyIFpNw==} engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} hasBin: true @@ -12657,17 +14186,17 @@ packages: '@astrojs/telemetry': 3.1.0 '@babel/core': 7.24.4 '@babel/generator': 7.24.4 - '@babel/parser': 7.24.6 - '@babel/plugin-transform-react-jsx': 7.24.6(@babel/core@7.24.4) + '@babel/parser': 7.24.4 + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.4) '@babel/traverse': 7.24.1 - '@babel/types': 7.24.6 + '@babel/types': 7.24.0 '@types/babel__core': 7.20.5 '@types/cookie': 0.5.4 acorn: 8.11.3 aria-query: 5.3.0 axobject-query: 4.0.0 boxen: 7.1.1 - chokidar: 3.6.0 + chokidar: 3.5.3 ci-info: 4.0.0 clsx: 2.1.0 common-ancestor-path: 1.0.1 @@ -12676,7 +14205,7 @@ packages: debug: 4.3.4 deterministic-object-hash: 2.0.2 devalue: 4.3.2 - diff: 5.2.0 + diff: 5.1.0 dlv: 1.1.3 dset: 3.1.3 es-module-lexer: 1.5.0 @@ -12700,20 +14229,20 @@ packages: preferred-pm: 3.1.3 prompts: 2.4.2 rehype: 13.0.1 - resolve: 1.22.8 - semver: 7.6.2 - shiki: 1.5.2 + resolve: 1.22.4 + semver: 7.5.4 + shiki: 1.3.0 string-width: 7.1.0 strip-ansi: 7.1.0 tsconfck: 3.0.3(typescript@5.5.2) unist-util-visit: 5.0.0 vfile: 6.0.1 - vite: 5.2.10(@types/node@20.14.0) + vite: 5.2.10(@types/node@20.14.8) vitefu: 0.2.5(vite@5.2.10) which-pm: 2.1.1 yargs-parser: 21.1.1 - zod: 3.23.8 - zod-to-json-schema: 3.22.5(zod@3.23.8) + zod: 3.23.0 + zod-to-json-schema: 3.22.5(zod@3.23.0) optionalDependencies: sharp: 0.32.6 transitivePeerDependencies: @@ -12748,6 +14277,22 @@ packages: resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} engines: {node: '>=8.0.0'} + /autoprefixer@10.4.14(postcss@8.4.38): + resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: 4.23.0 + caniuse-lite: 1.0.30001612 + fraction.js: 4.2.0 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true + /autoprefixer@10.4.19(postcss@8.4.38): resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} engines: {node: ^10 || ^12 || >=14} @@ -12763,6 +14308,10 @@ packages: postcss: 8.4.38 postcss-value-parser: 4.2.0 + /available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + /available-typed-arrays@1.0.7: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} @@ -12814,6 +14363,19 @@ packages: dependencies: '@babel/core': 7.24.4 + /babel-plugin-jsx-dom-expressions@0.36.10(@babel/core@7.24.4): + resolution: {integrity: sha512-QA2k/14WGw+RgcGGnEuLWwnu4em6CGhjeXtjvgOYyFHYS2a+CzPeaVQHDOlfuiBcjq/3hWMspHMIMnPEOIzdBg==} + peerDependencies: + '@babel/core': ^7.20.12 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-module-imports': 7.18.6 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.24.4) + '@babel/types': 7.24.0 + html-entities: 2.3.3 + validate-html-nesting: 1.2.2 + dev: true + /babel-plugin-jsx-dom-expressions@0.37.19(@babel/core@7.24.4): resolution: {integrity: sha512-nef2eLpWBgFggwrYwN6O3dNKn3RnlX6n4DIamNEAeHwp03kVQUaKUiLaEPnHPJHwxie1KwPelyIY9QikU03vUA==} peerDependencies: @@ -12821,17 +14383,18 @@ packages: dependencies: '@babel/core': 7.24.4 '@babel/helper-module-imports': 7.18.6 - '@babel/plugin-syntax-jsx': 7.24.6(@babel/core@7.24.4) - '@babel/types': 7.24.6 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.24.4) + '@babel/types': 7.24.0 html-entities: 2.3.3 validate-html-nesting: 1.2.2 + dev: false /babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.24.4): resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/compat-data': 7.24.6 + '@babel/compat-data': 7.24.4 '@babel/core': 7.24.4 '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.4) semver: 6.3.1 @@ -12881,20 +14444,20 @@ packages: /babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.24.4): resolution: {integrity: sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==} dependencies: - '@babel/plugin-syntax-flow': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.24.4) transitivePeerDependencies: - '@babel/core' - /babel-preset-expo@11.0.6(@babel/core@7.24.4)(@babel/preset-env@7.24.6): - resolution: {integrity: sha512-jRi9I5/jT+dnIiNJDjDg+I/pV+AlxrIW/DNbdqYoRWPZA/LHDqD6IJnJXLxbuTcQ+llp+0LWcU7f/kC/PgGpkw==} + /babel-preset-expo@11.0.10(@babel/core@7.24.4)(@babel/preset-env@7.24.7): + resolution: {integrity: sha512-YBg40Om31gw9IPlRw5v8elzgtPUtNEh4GSibBi5MsmmYddGg4VPjWtCZIFJChN543qRmbGb/fa/kejvLX567hQ==} dependencies: '@babel/plugin-proposal-decorators': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-transform-export-namespace-from': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-object-rest-spread': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-parameters': 7.24.6(@babel/core@7.24.4) - '@babel/preset-react': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-export-namespace-from': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-object-rest-spread': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.4) + '@babel/preset-react': 7.24.7(@babel/core@7.24.4) '@babel/preset-typescript': 7.24.1(@babel/core@7.24.4) - '@react-native/babel-preset': 0.74.83(@babel/core@7.24.4)(@babel/preset-env@7.24.6) + '@react-native/babel-preset': 0.74.84(@babel/core@7.24.4)(@babel/preset-env@7.24.7) babel-plugin-react-native-web: 0.19.12 react-refresh: 0.14.2 transitivePeerDependencies: @@ -12902,6 +14465,15 @@ packages: - '@babel/preset-env' - supports-color + /babel-preset-solid@1.7.7(@babel/core@7.24.4): + resolution: {integrity: sha512-tdxVzx3kgcIjNXAOmGRbzIhFBPeJjSakiN9yM+IYdL/+LtXNnbGqb0Va5tJb8Sjbk+QVEriovCyuzB5T7jeTvg==} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.4 + babel-plugin-jsx-dom-expressions: 0.36.10(@babel/core@7.24.4) + dev: true + /babel-preset-solid@1.8.16(@babel/core@7.24.4): resolution: {integrity: sha512-b4HFg/xaKM+H3Tu5iUlZ/43TJOZnhi85xrm3JrXDQ0s4cmtmU37bXXYzb2m55G4QKiFjxLAjvb7sUorPrAMs5w==} peerDependencies: @@ -12909,6 +14481,7 @@ packages: dependencies: '@babel/core': 7.24.4 babel-plugin-jsx-dom-expressions: 0.37.19(@babel/core@7.24.4) + dev: false /bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} @@ -13050,6 +14623,11 @@ packages: wrap-ansi: 8.1.0 dev: false + /bplist-creator@0.0.7: + resolution: {integrity: sha512-xp/tcaV3T5PCiaY04mXga7o/TE+t95gqeLmADeBI1CvZtdWTbgBt3uLpvh4UWtenKeBhCV6oVxGk38yZr2uYEA==} + dependencies: + stream-buffers: 2.2.0 + /bplist-creator@0.1.0: resolution: {integrity: sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg==} dependencies: @@ -13158,17 +14736,17 @@ packages: /builtins@5.0.1: resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} dependencies: - semver: 7.6.2 + semver: 7.6.0 - /bun-types@1.1.9: - resolution: {integrity: sha512-3YuLiH4Ne/ghk7K6mHiaqCqKOMrtB0Z5p1WAskHSVgi0iMZgsARV4yGkbfi565YsStvUq6GXTWB3ga7M8cznkA==} + /bun-types@1.1.14: + resolution: {integrity: sha512-esfxOvECTkjEuUEHBOoOo590Qggf4b9cz5h29AOB2SKt3yZwG3LbAX4iIYwWZX7GnO7vaY5hIdcQygwN0xGdNw==} dependencies: '@types/node': 20.12.14 '@types/ws': 8.5.10 dev: false - /bunchee@5.2.1(typescript@5.5.2): - resolution: {integrity: sha512-F4vTm9xPKyGogMpck+IkdsHXcXgg0AISHuMOjjD8IOFbm9ifOkV0z9ACd/Zqazgq0FX8SkyxCMQFQy5ijhY6hQ==} + /bunchee@5.2.2(typescript@5.5.2): + resolution: {integrity: sha512-Xc3Rms+VFXVM3ubfim0G7blq0zJxVsojmN3zyqzEgD2XaxpWduF2CsKCDrA8XvfbOjjMJ+z6rqBU3sNrXSOu7w==} engines: {node: '>= 18.0.0'} hasBin: true peerDependencies: @@ -13183,7 +14761,7 @@ packages: '@rollup/plugin-replace': 5.0.5(rollup@4.18.0) '@rollup/plugin-wasm': 6.2.2(rollup@4.18.0) '@rollup/pluginutils': 5.1.0(rollup@4.18.0) - '@swc/core': 1.5.29(@swc/helpers@0.5.11) + '@swc/core': 1.6.5(@swc/helpers@0.5.11) '@swc/helpers': 0.5.11 arg: 5.0.2 clean-css: 5.3.3 @@ -13192,7 +14770,7 @@ packages: pretty-bytes: 5.6.0 rollup: 4.18.0 rollup-plugin-dts: 6.1.0(rollup@4.18.0)(typescript@5.5.2) - rollup-plugin-swc3: 0.11.1(@swc/core@1.5.29)(rollup@4.18.0) + rollup-plugin-swc3: 0.11.1(@swc/core@1.6.5)(rollup@4.18.0) rollup-preserve-directives: 1.1.1(rollup@4.18.0) tslib: 2.6.2 typescript: 5.5.2 @@ -13211,13 +14789,13 @@ packages: dependencies: run-applescript: 7.0.0 - /bundle-require@4.0.1(esbuild@0.19.12): + /bundle-require@4.0.1(esbuild@0.19.2): resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} peerDependencies: esbuild: '>=0.17' dependencies: - esbuild: 0.19.12 + esbuild: 0.19.2 load-tsconfig: 0.2.5 dev: true @@ -13244,12 +14822,12 @@ packages: dotenv: 16.4.5 giget: 1.2.3 jiti: 1.21.0 - mlly: 1.7.0 + mlly: 1.6.1 ohash: 1.1.3 pathe: 1.1.2 perfect-debounce: 1.0.0 - pkg-types: 1.1.1 - rc9: 2.1.2 + pkg-types: 1.0.3 + rc9: 2.1.1 /cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} @@ -13261,15 +14839,15 @@ packages: dependencies: '@npmcli/fs': 3.1.0 fs-minipass: 3.0.3 - glob: 10.3.12 - lru-cache: 10.2.0 - minipass: 7.0.4 + glob: 10.3.12 + lru-cache: 10.0.1 + minipass: 7.0.3 minipass-collect: 2.0.1 minipass-flush: 1.0.5 minipass-pipeline: 1.2.4 p-map: 4.0.0 ssri: 10.0.5 - tar: 6.2.1 + tar: 6.1.15 unique-filename: 3.0.0 /cacheable-lookup@7.0.0: @@ -13290,6 +14868,12 @@ packages: responselike: 3.0.0 dev: false + /call-bind@1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.2.1 + /call-bind@1.0.7: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} @@ -13381,7 +14965,7 @@ packages: check-error: 1.0.3 deep-eql: 4.1.3 get-func-name: 2.0.2 - loupe: 2.3.7 + loupe: 2.3.6 pathval: 1.1.1 type-detect: 4.0.8 @@ -13441,6 +15025,20 @@ packages: dependencies: get-func-name: 2.0.2 + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + /chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} @@ -13470,7 +15068,7 @@ packages: engines: {node: '>=12.13.0'} hasBin: true dependencies: - '@types/node': 20.14.0 + '@types/node': 20.14.8 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2 @@ -13637,7 +15235,7 @@ packages: resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 - '@types/estree': 1.0.5 + '@types/estree': 1.0.1 acorn: 8.11.3 estree-walker: 3.0.3 periscopic: 3.1.0 @@ -13848,6 +15446,9 @@ packages: /convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + /cookie-es@1.0.0: + resolution: {integrity: sha512-mWYvfOLrfEc996hlKcdABeIiPHUPC6DM2QYZdGGOvhOTbA3tjm2eBwqlJpoFdjC89NI4Qt6h0Pu06Mp+1Pj5OQ==} + /cookie-es@1.1.0: resolution: {integrity: sha512-L2rLOcK0wzWSfSDA33YR+PUHDG10a8px7rUHKWbGLP4YfbsMed2KFUw5fczvDPbT98DDe3LEzviswl810apTEw==} @@ -13933,8 +15534,8 @@ packages: resolution: {integrity: sha512-HgSdlSUX8mIgDTTiQpWUP4qY4IFRMsduPCYdca34Pelt8MVdxdaDOzreFtCscA6R+cRZd7UbD1CD3uyx6J3X1A==} engines: {node: '>=18.0'} - /cronstrue@2.50.0: - resolution: {integrity: sha512-ULYhWIonJzlScCCQrPUG5uMXzXxSixty4djud9SS37DoNxDdkeRocxzHuAo4ImRBUK+mAuU5X9TSwEDccnnuPg==} + /cronstrue@2.49.0: + resolution: {integrity: sha512-FWZBqdStQaPR8ZTBQGALh1EK9Hl1HcG70dyGvD1rKLPafFO3H73o38dz/e8YkIlbLn3JxmBI/f6Doe3Nh+DcEQ==} hasBin: true /cross-fetch@3.1.8: @@ -13989,6 +15590,15 @@ packages: resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} engines: {node: '>=8'} + /css-declaration-sorter@6.4.1(postcss@8.4.38): + resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} + engines: {node: ^10 || ^12 || >=14} + peerDependencies: + postcss: ^8.0.9 + dependencies: + postcss: 8.4.38 + dev: true + /css-declaration-sorter@7.2.0(postcss@8.4.38): resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==} engines: {node: ^14 || ^16 || >=18} @@ -14000,7 +15610,7 @@ packages: /css-in-js-utils@3.1.0: resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==} dependencies: - hyphenate-style-name: 1.0.5 + hyphenate-style-name: 1.1.0 dev: false /css-select@5.1.0: @@ -14037,7 +15647,7 @@ packages: engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} dependencies: mdn-data: 2.0.30 - source-map-js: 1.2.0 + source-map-js: 1.0.2 /css-what@6.1.0: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} @@ -14048,6 +15658,44 @@ packages: engines: {node: '>=4'} hasBin: true + /cssnano-preset-default@6.0.1(postcss@8.4.38): + resolution: {integrity: sha512-7VzyFZ5zEB1+l1nToKyrRkuaJIx0zi/1npjvZfbBwbtNTzhLtlvYraK/7/uqmX2Wb2aQtd983uuGw79jAjLSuQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + css-declaration-sorter: 6.4.1(postcss@8.4.38) + cssnano-utils: 4.0.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-calc: 9.0.1(postcss@8.4.38) + postcss-colormin: 6.0.0(postcss@8.4.38) + postcss-convert-values: 6.0.0(postcss@8.4.38) + postcss-discard-comments: 6.0.0(postcss@8.4.38) + postcss-discard-duplicates: 6.0.0(postcss@8.4.38) + postcss-discard-empty: 6.0.0(postcss@8.4.38) + postcss-discard-overridden: 6.0.0(postcss@8.4.38) + postcss-merge-longhand: 6.0.0(postcss@8.4.38) + postcss-merge-rules: 6.0.1(postcss@8.4.38) + postcss-minify-font-values: 6.0.0(postcss@8.4.38) + postcss-minify-gradients: 6.0.0(postcss@8.4.38) + postcss-minify-params: 6.0.0(postcss@8.4.38) + postcss-minify-selectors: 6.0.0(postcss@8.4.38) + postcss-normalize-charset: 6.0.0(postcss@8.4.38) + postcss-normalize-display-values: 6.0.0(postcss@8.4.38) + postcss-normalize-positions: 6.0.0(postcss@8.4.38) + postcss-normalize-repeat-style: 6.0.0(postcss@8.4.38) + postcss-normalize-string: 6.0.0(postcss@8.4.38) + postcss-normalize-timing-functions: 6.0.0(postcss@8.4.38) + postcss-normalize-unicode: 6.0.0(postcss@8.4.38) + postcss-normalize-url: 6.0.0(postcss@8.4.38) + postcss-normalize-whitespace: 6.0.0(postcss@8.4.38) + postcss-ordered-values: 6.0.0(postcss@8.4.38) + postcss-reduce-initial: 6.0.0(postcss@8.4.38) + postcss-reduce-transforms: 6.0.0(postcss@8.4.38) + postcss-svgo: 6.0.0(postcss@8.4.38) + postcss-unique-selectors: 6.0.0(postcss@8.4.38) + dev: true + /cssnano-preset-default@6.1.2(postcss@8.4.38): resolution: {integrity: sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==} engines: {node: ^14 || ^16 || >=18.0} @@ -14086,6 +15734,15 @@ packages: postcss-svgo: 6.0.3(postcss@8.4.38) postcss-unique-selectors: 6.0.4(postcss@8.4.38) + /cssnano-utils@4.0.0(postcss@8.4.38): + resolution: {integrity: sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.38 + dev: true + /cssnano-utils@4.0.2(postcss@8.4.38): resolution: {integrity: sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==} engines: {node: ^14 || ^16 || >=18.0} @@ -14094,6 +15751,17 @@ packages: dependencies: postcss: 8.4.38 + /cssnano@6.0.1(postcss@8.4.38): + resolution: {integrity: sha512-fVO1JdJ0LSdIGJq68eIxOqFpIJrZqXUsBt8fkrBcztCQqAjQD51OhZp7tc0ImcbwXD4k7ny84QTV90nZhmqbkg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + cssnano-preset-default: 6.0.1(postcss@8.4.38) + lilconfig: 2.1.0 + postcss: 8.4.38 + dev: true + /cssnano@6.1.2(postcss@8.4.38): resolution: {integrity: sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==} engines: {node: ^14 || ^16 || >=18.0} @@ -14114,6 +15782,9 @@ packages: resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} dev: false + /csstype@3.1.2: + resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} + /csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} @@ -14687,12 +16358,19 @@ packages: resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} engines: {node: '>=12'} + /define-properties@1.2.0: + resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} + engines: {node: '>= 0.4'} + dependencies: + 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.4 - has-property-descriptors: 1.0.2 + has-property-descriptors: 1.0.0 object-keys: 1.1.1 /defu@6.1.4: @@ -14794,6 +16472,11 @@ packages: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + /diff@5.1.0: + resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} + engines: {node: '>=0.3.1'} + dev: false + /diff@5.2.0: resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} engines: {node: '>=0.3.1'} @@ -14910,7 +16593,7 @@ packages: hono: 4.2.6 json-diff: 0.9.0 minimatch: 7.4.6 - semver: 7.6.2 + semver: 7.6.0 superjson: 2.2.1 zod: 3.23.8 transitivePeerDependencies: @@ -15016,8 +16699,12 @@ packages: /ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - /effect@3.3.2: - resolution: {integrity: sha512-695XQBtp+UUYG50oREG9ujnRoeQU7xhwHDhT6ZAexm3Q+umdml1kjxcPoYRrS65crmaLlhVpjZHePJNzWOODnA==} + /effect@3.1.0: + resolution: {integrity: sha512-A0kUH8qeH0jS0X4ViJXf/O5qfMQBrJRsTD1xHed4jpFF5ChUP96LmseaV9LQkFbVDo791REFWTOlMPGCyM/0Ng==} + dev: false + + /effect@3.4.2: + resolution: {integrity: sha512-y20gL/fMqm4mUL71Tcuu3pYQ7Phm8RMX/hUt6vVfkg4Iac/RvMjP5DrJxT6RI0j0VNRLhTgb6pyL3oXeqxTeRg==} /electron-to-chromium@1.4.746: resolution: {integrity: sha512-jeWaIta2rIG2FzHaYIhSuVWqC6KJYo7oSBX4Jv7g+aVujKztfvdpf+n6MGwZdC5hQXbax4nntykLH2juIQrfPg==} @@ -15137,6 +16824,50 @@ packages: accepts: 1.3.8 escape-html: 1.0.3 + /es-abstract@1.22.1: + resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + arraybuffer.prototype.slice: 1.0.1 + 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.5 + 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.12.3 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.0 + safe-array-concat: 1.0.0 + safe-regex-test: 1.0.0 + string.prototype.trim: 1.2.7 + string.prototype.trimend: 1.0.6 + string.prototype.trimstart: 1.0.6 + 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 + /es-abstract@1.23.3: resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} engines: {node: '>= 0.4'} @@ -15217,6 +16948,10 @@ packages: iterator.prototype: 1.1.2 safe-array-concat: 1.1.2 + /es-module-lexer@1.3.0: + resolution: {integrity: sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==} + dev: false + /es-module-lexer@1.5.0: resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==} dev: false @@ -15227,6 +16962,14 @@ packages: dependencies: es-errors: 1.3.0 + /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 + /es-set-tostringtag@2.0.3: resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} engines: {node: '>= 0.4'} @@ -15235,6 +16978,11 @@ packages: has-tostringtag: 1.0.2 hasown: 2.0.2 + /es-shim-unscopables@1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + dependencies: + has: 1.0.3 + /es-shim-unscopables@1.0.2: resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} dependencies: @@ -15299,8 +17047,8 @@ packages: solid-js: '>= 1.0' dependencies: '@babel/core': 7.24.4 - '@babel/preset-typescript': 7.24.1(@babel/core@7.24.4) - babel-preset-solid: 1.8.16(@babel/core@7.24.4) + '@babel/preset-typescript': 7.22.5(@babel/core@7.24.4) + babel-preset-solid: 1.7.7(@babel/core@7.24.4) esbuild: 0.20.2 solid-js: 1.8.16 transitivePeerDependencies: @@ -15408,6 +17156,36 @@ packages: '@esbuild/win32-ia32': 0.19.12 '@esbuild/win32-x64': 0.19.12 + /esbuild@0.19.2: + resolution: {integrity: sha512-G6hPax8UbFakEj3hWO0Vs52LQ8k3lnBhxZWomUJDxfz3rZTLqF5k/FCzuNdLx2RbpBiQQF9H9onlDDH1lZsnjg==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.19.2 + '@esbuild/android-arm64': 0.19.2 + '@esbuild/android-x64': 0.19.2 + '@esbuild/darwin-arm64': 0.19.2 + '@esbuild/darwin-x64': 0.19.2 + '@esbuild/freebsd-arm64': 0.19.2 + '@esbuild/freebsd-x64': 0.19.2 + '@esbuild/linux-arm': 0.19.2 + '@esbuild/linux-arm64': 0.19.2 + '@esbuild/linux-ia32': 0.19.2 + '@esbuild/linux-loong64': 0.19.2 + '@esbuild/linux-mips64el': 0.19.2 + '@esbuild/linux-ppc64': 0.19.2 + '@esbuild/linux-riscv64': 0.19.2 + '@esbuild/linux-s390x': 0.19.2 + '@esbuild/linux-x64': 0.19.2 + '@esbuild/netbsd-x64': 0.19.2 + '@esbuild/openbsd-x64': 0.19.2 + '@esbuild/sunos-x64': 0.19.2 + '@esbuild/win32-arm64': 0.19.2 + '@esbuild/win32-ia32': 0.19.2 + '@esbuild/win32-x64': 0.19.2 + dev: true + /esbuild@0.20.2: resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} engines: {node: '>=12'} @@ -15468,7 +17246,7 @@ packages: eslint: '>=6.0.0' dependencies: eslint: 8.57.0 - semver: 7.6.2 + semver: 7.6.0 dev: false /eslint-config-next@14.2.2(eslint@8.57.0)(typescript@5.5.2): @@ -15486,7 +17264,7 @@ packages: eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.3.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.13.1)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.14.1)(eslint@8.57.0) eslint-plugin-jsx-a11y: 6.8.0(eslint@8.57.0) eslint-plugin-react: 7.34.1(eslint@8.57.0) eslint-plugin-react-hooks: 4.6.0(eslint@8.57.0) @@ -15505,20 +17283,20 @@ packages: eslint: 8.57.0 dev: false - /eslint-config-turbo@2.0.2(eslint@8.57.0): - resolution: {integrity: sha512-b5GDRodV0dRD5rhbNl8MZoKU5RCIhkWjcZWwyf7qMKeK2RzrKmgKrvtDURKaW2QOvOgCfKqwgeD4NKQPbQKg/w==} + /eslint-config-turbo@2.0.5(eslint@8.57.0): + resolution: {integrity: sha512-iE/oD0ZBM6OQFbS/bKnc3UtqhMmJ1IEfqTQ0qCY1CauHm7gj85aRRX/1ydDYKLpu0RupBqzVPybsWxPif9rsig==} peerDependencies: eslint: '>6.6.0' dependencies: eslint: 8.57.0 - eslint-plugin-turbo: 2.0.2(eslint@8.57.0) + eslint-plugin-turbo: 2.0.5(eslint@8.57.0) dev: false /eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} dependencies: debug: 3.2.7 - is-core-module: 2.13.1 + is-core-module: 2.13.0 resolve: 1.22.8 transitivePeerDependencies: - supports-color @@ -15534,10 +17312,10 @@ packages: enhanced-resolve: 5.15.0 eslint: 8.57.0 eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.3.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.13.1)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.14.1)(eslint@8.57.0) fast-glob: 3.3.2 - get-tsconfig: 4.7.3 - is-core-module: 2.13.1 + get-tsconfig: 4.7.0 + is-core-module: 2.13.0 is-glob: 4.0.3 transitivePeerDependencies: - '@typescript-eslint/parser' @@ -15576,7 +17354,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.13.1)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.14.1)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -15597,14 +17375,14 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 7.13.1(eslint@8.57.0)(typescript@5.5.2) + '@typescript-eslint/parser': 7.14.1(eslint@8.57.0)(typescript@5.5.2) debug: 3.2.7 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.13.1)(eslint@8.57.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.14.1)(eslint@8.57.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -15614,7 +17392,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 7.13.1(eslint@8.57.0)(typescript@5.5.2) + '@typescript-eslint/parser': 7.14.1(eslint@8.57.0)(typescript@5.5.2) array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 array.prototype.flat: 1.3.2 @@ -15623,7 +17401,7 @@ packages: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.13.1)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.14.1)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) hasown: 2.0.2 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -15718,15 +17496,15 @@ packages: postcss-load-config: 3.1.4(postcss@8.4.38) postcss-safe-parser: 6.0.0(postcss@8.4.38) postcss-selector-parser: 6.0.16 - semver: 7.6.2 + semver: 7.6.0 svelte-eslint-parser: 0.34.1 transitivePeerDependencies: - supports-color - ts-node dev: false - /eslint-plugin-turbo@2.0.2(eslint@8.57.0): - resolution: {integrity: sha512-tgoUVTvEP++qID9xg3IxPnvbltfesKHIINjv6KlylkOtzw7F6uG1IxcO+Q1YuThcAhbc79B/LXbn6joT6bd51Q==} + /eslint-plugin-turbo@2.0.5(eslint@8.57.0): + resolution: {integrity: sha512-nCTXZdaKmdRybBdjnMrDFG+ppLc9toUqB01Hf0pfhkQw8OoC29oJIVPsCSvuL/W58RKD02CNEUrwnVt57t36IQ==} peerDependencies: eslint: '>6.6.0' dependencies: @@ -15751,7 +17529,7 @@ packages: hasBin: true dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@eslint-community/regexpp': 4.10.0 + '@eslint-community/regexpp': 4.6.2 '@eslint/eslintrc': 2.1.4 '@eslint/js': 8.57.0 '@humanwhocodes/config-array': 0.11.14 @@ -15775,7 +17553,7 @@ packages: glob-parent: 6.0.2 globals: 13.21.0 graphemer: 1.4.0 - ignore: 5.3.1 + ignore: 5.2.4 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -15837,7 +17615,7 @@ packages: /estree-util-attach-comments@2.1.1: resolution: {integrity: sha512-+5Ba/xGGS6mnwFbXIuQiDPTbuTxuMCooq3arVv7gPZtYpjp+VXH/NkHAP35OOefPhNG/UGqU3vt/LTABwcHX0w==} dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.1 dev: false /estree-util-build-jsx@2.2.2: @@ -15884,7 +17662,7 @@ packages: /estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.1 /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} @@ -15999,170 +17777,168 @@ packages: dev: false optional: true - /expo-asset@10.0.6(expo@51.0.9): - resolution: {integrity: sha512-waP73/ccn/HZNNcGM4/s3X3icKjSSbEQ9mwc6tX34oYNg+XE5WdwOuZ9wgVVFrU7wZMitq22lQXd2/O0db8bxg==} + /expo-asset@10.0.9(expo@51.0.14): + resolution: {integrity: sha512-KX7LPtVf9eeMidUvYZafXZldrVdzfjZNKKFAjFvDy2twg7sTa2R0L4VdCXp32eGLWZyk+i/rpOUSbyD1YFyJnA==} peerDependencies: expo: '*' dependencies: - '@react-native/assets-registry': 0.74.83 - expo: 51.0.9(@babel/core@7.24.4)(@babel/preset-env@7.24.6) - expo-constants: 16.0.2(expo@51.0.9) + expo: 51.0.14(@babel/core@7.24.4)(@babel/preset-env@7.24.7) + expo-constants: 16.0.2(expo@51.0.14) invariant: 2.2.4 md5-file: 3.2.3 transitivePeerDependencies: - supports-color - /expo-constants@15.4.6(expo@51.0.9): + /expo-constants@15.4.6(expo@51.0.14): resolution: {integrity: sha512-vizE69dww2Vl0PTWWvDmK0Jo2/J+WzdcMZlA05YEnEYofQuhKxTVsiuipf79mSOmFavt4UQYC1UnzptzKyfmiQ==} peerDependencies: expo: '*' dependencies: '@expo/config': 8.5.6 - expo: 51.0.9(@babel/core@7.24.4)(@babel/preset-env@7.24.6) + expo: 51.0.14(@babel/core@7.24.4)(@babel/preset-env@7.24.7) transitivePeerDependencies: - supports-color - /expo-constants@16.0.2(expo@51.0.9): + /expo-constants@16.0.2(expo@51.0.14): resolution: {integrity: sha512-9tNY3OVO0jfiMzl7ngb6IOyR5VFzNoN5OOazUWoeGfmMqVB5kltTemRvKraK9JRbBKIw+SOYLEmF0sEqgFZ6OQ==} peerDependencies: expo: '*' dependencies: '@expo/config': 9.0.2 '@expo/env': 0.3.0 - expo: 51.0.9(@babel/core@7.24.4)(@babel/preset-env@7.24.6) + expo: 51.0.14(@babel/core@7.24.4)(@babel/preset-env@7.24.7) transitivePeerDependencies: - supports-color - /expo-dev-client@4.0.15(expo@51.0.9): - resolution: {integrity: sha512-Ffwz66DW3xdldlSUwPPXJCWoL4teA8uV374sEJpKwyBhJrFuL+KpMWMe4/Dz/F1oHzjflD8GHBu9xqoqNdiJzw==} + /expo-dev-client@4.0.18(expo@51.0.14): + resolution: {integrity: sha512-FxqBLHcTvUvIeqgaDGAjEfalWCWn9xmfvVm0Bpb50tkwxFrDcg4t13p/tvYw8sLEm+87HSee/Lx04OrZcC3oiQ==} peerDependencies: expo: '*' dependencies: - expo: 51.0.9(@babel/core@7.24.4)(@babel/preset-env@7.24.6) - expo-dev-launcher: 4.0.16(expo@51.0.9) - expo-dev-menu: 5.0.14(expo@51.0.9) - expo-dev-menu-interface: 1.8.3(expo@51.0.9) - expo-manifests: 0.14.3(expo@51.0.9) - expo-updates-interface: 0.16.2(expo@51.0.9) + expo: 51.0.14(@babel/core@7.24.4)(@babel/preset-env@7.24.7) + expo-dev-launcher: 4.0.20(expo@51.0.14) + expo-dev-menu: 5.0.15(expo@51.0.14) + expo-dev-menu-interface: 1.8.3(expo@51.0.14) + expo-manifests: 0.14.3(expo@51.0.14) + expo-updates-interface: 0.16.2(expo@51.0.14) transitivePeerDependencies: - supports-color dev: false - /expo-dev-launcher@4.0.16(expo@51.0.9): - resolution: {integrity: sha512-mNt71awnJDL+GkvpBp9CzRR3q2Wm0GPo68noRvd389qDFBMA8QA8uyY8JVqekpr7RUwn1eg3cmfox5oSwL5rmA==} + /expo-dev-launcher@4.0.20(expo@51.0.14): + resolution: {integrity: sha512-BvEoBsSU2H3NHEa9qsydfv2dQFaNSMSW9g+dHXY8Zz3FpfR5FFbjxOpn/ck46GB52Zh3tLWggXKhoUXc8fEARA==} peerDependencies: expo: '*' dependencies: ajv: 8.11.0 - expo: 51.0.9(@babel/core@7.24.4)(@babel/preset-env@7.24.6) - expo-dev-menu: 5.0.14(expo@51.0.9) - expo-manifests: 0.14.3(expo@51.0.9) + expo: 51.0.14(@babel/core@7.24.4)(@babel/preset-env@7.24.7) + expo-dev-menu: 5.0.15(expo@51.0.14) + expo-manifests: 0.14.3(expo@51.0.14) resolve-from: 5.0.0 - semver: 7.6.2 + semver: 7.6.0 transitivePeerDependencies: - supports-color dev: false - /expo-dev-menu-interface@1.8.3(expo@51.0.9): + /expo-dev-menu-interface@1.8.3(expo@51.0.14): resolution: {integrity: sha512-QM0LRozeFT5Ek0N7XpV93M+HMdEKRLEOXn0aW5M3uoUlnqC1+PLtF3HMy3k3hMKTTE/kJ1y1Z7akH07T0lunCQ==} peerDependencies: expo: '*' dependencies: - expo: 51.0.9(@babel/core@7.24.4)(@babel/preset-env@7.24.6) + expo: 51.0.14(@babel/core@7.24.4)(@babel/preset-env@7.24.7) dev: false - /expo-dev-menu@5.0.14(expo@51.0.9): - resolution: {integrity: sha512-zPXBMCyjptn4Aw7D2Z8FEqndED33g1ryChN0nyTA1zHzckDNwnGuLdTWTsNFrqmFqyqjRJgG5xFVJmnsDO8WyQ==} + /expo-dev-menu@5.0.15(expo@51.0.14): + resolution: {integrity: sha512-a5aADQXOH/uw2NDy4fbgVl9wkAcZIfkrz8yzwQz0X6Yvf0a68zafqxSvvYkq+MmUTrFsuiST49s+mk4uRqHJMw==} peerDependencies: expo: '*' dependencies: - expo: 51.0.9(@babel/core@7.24.4)(@babel/preset-env@7.24.6) - expo-dev-menu-interface: 1.8.3(expo@51.0.9) - semver: 7.6.2 + expo: 51.0.14(@babel/core@7.24.4)(@babel/preset-env@7.24.7) + expo-dev-menu-interface: 1.8.3(expo@51.0.14) + semver: 7.6.0 dev: false - /expo-document-picker@12.0.1(expo@51.0.9): - resolution: {integrity: sha512-xkIzcQ8uHQ8QrSOM0jlemObQtxD0uE9QbLXo1mpGK5o+uh6Xp0JtYuB/6TqfoRX/q5pe2eyLYaSsCL3yWbZofw==} + /expo-document-picker@12.0.2(expo@51.0.14): + resolution: {integrity: sha512-tmwuRWoCPv6SmNDSMEWcttMBJ95k8/g5sMWnHdmvOx0UKp0pFXP8FI+55HKtQpo6k2+118MkdDDhQSwKqASVAw==} peerDependencies: expo: '*' dependencies: - expo: 51.0.9(@babel/core@7.24.4)(@babel/preset-env@7.24.6) + expo: 51.0.14(@babel/core@7.24.4)(@babel/preset-env@7.24.7) - /expo-file-system@17.0.1(expo@51.0.9): + /expo-file-system@17.0.1(expo@51.0.14): resolution: {integrity: sha512-dYpnZJqTGj6HCYJyXAgpFkQWsiCH3HY1ek2cFZVHFoEc5tLz9gmdEgTF6nFHurvmvfmXqxi7a5CXyVm0aFYJBw==} peerDependencies: expo: '*' dependencies: - expo: 51.0.9(@babel/core@7.24.4)(@babel/preset-env@7.24.6) + expo: 51.0.14(@babel/core@7.24.4)(@babel/preset-env@7.24.7) - /expo-font@12.0.6(expo@51.0.9): - resolution: {integrity: sha512-eognUxmZi2urCdERA5KuZpXUJO9JomOG/5ZKw9fGUhDi86SQ/6UWw+nMGbtshjWdJ0Vt0zHAdaIYx8aHq2iRzA==} + /expo-font@12.0.7(expo@51.0.14): + resolution: {integrity: sha512-rbSdpjtT/A3M+u9xchR9tdD+5VGSxptUis7ngX5zfAVp3O5atOcPNSA82Jeo15HkrQE+w/upfFBOvi56lsGdsQ==} peerDependencies: expo: '*' dependencies: - expo: 51.0.9(@babel/core@7.24.4)(@babel/preset-env@7.24.6) + expo: 51.0.14(@babel/core@7.24.4)(@babel/preset-env@7.24.7) fontfaceobserver: 2.3.0 - /expo-haptics@13.0.1(expo@51.0.9): + /expo-haptics@13.0.1(expo@51.0.14): resolution: {integrity: sha512-qG0EOLDE4bROVT3DtUSyV9g3iB3YFu9j3711X7SNNEnBDXc+2/p3wGDPTnJvPW0ao6HG3/McAOrBQA5hVSdWng==} peerDependencies: expo: '*' dependencies: - expo: 51.0.9(@babel/core@7.24.4)(@babel/preset-env@7.24.6) + expo: 51.0.14(@babel/core@7.24.4)(@babel/preset-env@7.24.7) dev: false - /expo-image-loader@4.7.0(expo@51.0.9): + /expo-image-loader@4.7.0(expo@51.0.14): resolution: {integrity: sha512-cx+MxxsAMGl9AiWnQUzrkJMJH4eNOGlu7XkLGnAXSJrRoIiciGaKqzeaD326IyCTV+Z1fXvIliSgNW+DscvD8g==} peerDependencies: expo: '*' dependencies: - expo: 51.0.9(@babel/core@7.24.4)(@babel/preset-env@7.24.6) + expo: 51.0.14(@babel/core@7.24.4)(@babel/preset-env@7.24.7) - /expo-image-picker@15.0.5(expo@51.0.9): + /expo-image-picker@15.0.5(expo@51.0.14): resolution: {integrity: sha512-Qqp16udsadx/YpNcNaWzfbmO0tbMxyX9bS1aFiDVC+Zffh8LY8S4HJJcnWqSC2TeuAl+9SxUwTloJagvPeMBBw==} peerDependencies: expo: '*' dependencies: - expo: 51.0.9(@babel/core@7.24.4)(@babel/preset-env@7.24.6) - expo-image-loader: 4.7.0(expo@51.0.9) + expo: 51.0.14(@babel/core@7.24.4)(@babel/preset-env@7.24.7) + expo-image-loader: 4.7.0(expo@51.0.14) - /expo-image@1.12.9(expo@51.0.9): - resolution: {integrity: sha512-WnC3Z3vsOTJLWE9FGB0a0GANmkpfBCqTf9bSLXXl50hEYiRcfwrAYZ/87oswAhggMGbJqOuLKZxt5rtuij1xcQ==} + /expo-image@1.12.12(expo@51.0.14): + resolution: {integrity: sha512-zZutUhKYqcqTH12o87pGCVLsuQeRK2vaNwxa8beznbDnmWevm3dmbOTCxaOhGgjyDxwcdwDa483Q4IKCXL6tBw==} peerDependencies: expo: '*' dependencies: - '@react-native/assets-registry': 0.74.83 - expo: 51.0.9(@babel/core@7.24.4)(@babel/preset-env@7.24.6) + expo: 51.0.14(@babel/core@7.24.4)(@babel/preset-env@7.24.7) dev: false /expo-json-utils@0.13.1: resolution: {integrity: sha512-mlfaSArGVb+oJmUcR22jEONlgPp0wj4iNIHfQ2je9Q8WTOqMc0Ws9tUciz3JdJnhffdHqo/k8fpvf0IRmN5HPA==} dev: false - /expo-keep-awake@13.0.2(expo@51.0.9): + /expo-keep-awake@13.0.2(expo@51.0.14): resolution: {integrity: sha512-kKiwkVg/bY0AJ5q1Pxnm/GvpeB6hbNJhcFsoOWDh2NlpibhCLaHL826KHUM+WsnJRbVRxJ+K9vbPRHEMvFpVyw==} peerDependencies: expo: '*' dependencies: - expo: 51.0.9(@babel/core@7.24.4)(@babel/preset-env@7.24.6) + expo: 51.0.14(@babel/core@7.24.4)(@babel/preset-env@7.24.7) - /expo-linking@6.3.1(expo@51.0.9): + /expo-linking@6.3.1(expo@51.0.14): resolution: {integrity: sha512-xuZCntSBGWCD/95iZ+mTUGTwHdy8Sx+immCqbUBxdvZ2TN61P02kKg7SaLS8A4a/hLrSCwrg5tMMwu5wfKr35g==} dependencies: - expo-constants: 16.0.2(expo@51.0.9) + expo-constants: 16.0.2(expo@51.0.14) invariant: 2.2.4 transitivePeerDependencies: - expo - supports-color dev: false - /expo-manifests@0.14.3(expo@51.0.9): + /expo-manifests@0.14.3(expo@51.0.14): resolution: {integrity: sha512-L3b5/qocBPiQjbW0cpOHfnqdKZbTJS7sA3mgeDJT+mWga/xYsdpma1EfNmsuvrOzjLGjStr1k1fceM9Bl49aqQ==} peerDependencies: expo: '*' dependencies: '@expo/config': 9.0.2 - expo: 51.0.9(@babel/core@7.24.4)(@babel/preset-env@7.24.6) + expo: 51.0.14(@babel/core@7.24.4)(@babel/preset-env@7.24.7) expo-json-utils: 0.13.1 transitivePeerDependencies: - supports-color @@ -16178,13 +17954,13 @@ packages: find-up: 5.0.0 fs-extra: 9.1.0 - /expo-modules-core@1.12.12: - resolution: {integrity: sha512-ls2Ido4Aduo4f9/LPQx66Hp3X2qddVOY5S7kP3/lp/G4ieqfPcUMueGYSeaz76fg/TYXRh2XLv/HGvu8zV6bbQ==} + /expo-modules-core@1.12.15: + resolution: {integrity: sha512-VjDPIgUyhCZzf692NF4p2iFTsKAQMcU3jc0pg33eNvN/kdrJqkeucqCDuuwoNxg0vIBKtoqAJDuPnWiemldsTg==} dependencies: invariant: 2.2.4 - /expo-router@3.5.14(expo-constants@15.4.6)(expo-linking@6.3.1)(expo-modules-autolinking@1.11.1)(expo-status-bar@1.12.1)(expo@51.0.9)(react-native-reanimated@3.10.1)(react-native-safe-area-context@4.10.1)(react-native-screens@3.31.1)(react-native@0.74.1)(react@18.3.1)(typescript@5.5.2): - resolution: {integrity: sha512-RVsyJLosZSq89ebA5qfPToRcFZJoTTb+6nwPHk6iESD6KON/Q7ZODt5fvCwXkY86tLNEMGo160QvBPfBZmglaA==} + /expo-router@3.5.16(expo-constants@15.4.6)(expo-linking@6.3.1)(expo-modules-autolinking@1.11.1)(expo-status-bar@1.12.1)(expo@51.0.14)(react-native-reanimated@3.10.1)(react-native-safe-area-context@4.10.1)(react-native-screens@3.31.1)(react-native@0.74.2)(react@18.3.1)(typescript@5.5.2): + resolution: {integrity: sha512-XP6LS13O8elK467gX9lN7Fr4s3OLfLFBOwVIxaV8idBc6e0lpnrm8gOiygSCtX511v04w13Uf1rKS+RApg709w==} peerDependencies: '@react-navigation/drawer': ^6.5.8 '@testing-library/jest-native': '*' @@ -16203,21 +17979,21 @@ packages: react-native-reanimated: optional: true dependencies: - '@expo/metro-runtime': 3.2.1(react-native@0.74.1) - '@expo/server': 0.4.2(typescript@5.5.2) + '@expo/metro-runtime': 3.2.1(react-native@0.74.2) + '@expo/server': 0.4.3(typescript@5.5.2) '@radix-ui/react-slot': 1.0.1(react@18.3.1) - '@react-navigation/bottom-tabs': 6.5.20(@react-navigation/native@6.1.17)(react-native-safe-area-context@4.10.1)(react-native-screens@3.31.1)(react-native@0.74.1)(react@18.3.1) - '@react-navigation/native': 6.1.17(react-native@0.74.1)(react@18.3.1) - '@react-navigation/native-stack': 6.9.26(@react-navigation/native@6.1.17)(react-native-safe-area-context@4.10.1)(react-native-screens@3.31.1)(react-native@0.74.1)(react@18.3.1) - expo: 51.0.9(@babel/core@7.24.4)(@babel/preset-env@7.24.6) - expo-constants: 15.4.6(expo@51.0.9) - expo-linking: 6.3.1(expo@51.0.9) - expo-splash-screen: 0.27.4(expo-modules-autolinking@1.11.1)(expo@51.0.9) + '@react-navigation/bottom-tabs': 6.5.20(@react-navigation/native@6.1.17)(react-native-safe-area-context@4.10.1)(react-native-screens@3.31.1)(react-native@0.74.2)(react@18.3.1) + '@react-navigation/native': 6.1.17(react-native@0.74.2)(react@18.3.1) + '@react-navigation/native-stack': 6.9.26(@react-navigation/native@6.1.17)(react-native-safe-area-context@4.10.1)(react-native-screens@3.31.1)(react-native@0.74.2)(react@18.3.1) + expo: 51.0.14(@babel/core@7.24.4)(@babel/preset-env@7.24.7) + expo-constants: 15.4.6(expo@51.0.14) + expo-linking: 6.3.1(expo@51.0.14) + expo-splash-screen: 0.27.5(expo-modules-autolinking@1.11.1)(expo@51.0.14) expo-status-bar: 1.12.1 react-native-helmet-async: 2.0.4(react@18.3.1) - react-native-reanimated: 3.10.1(@babel/core@7.24.4)(react-native@0.74.1)(react@18.3.1) - react-native-safe-area-context: 4.10.1(react-native@0.74.1)(react@18.3.1) - react-native-screens: 3.31.1(react-native@0.74.1)(react@18.3.1) + react-native-reanimated: 3.10.1(@babel/core@7.24.4)(react-native@0.74.2)(react@18.3.1) + react-native-safe-area-context: 4.10.1(react-native@0.74.2)(react@18.3.1) + react-native-screens: 3.31.1(react-native@0.74.2)(react@18.3.1) schema-utils: 4.2.0 transitivePeerDependencies: - encoding @@ -16228,13 +18004,13 @@ packages: - typescript dev: false - /expo-splash-screen@0.27.4(expo-modules-autolinking@1.11.1)(expo@51.0.9): - resolution: {integrity: sha512-JwepK1FjbwiOK2nwIFanfzj9s7UXYnpTwLX8A9v7Ec3K4V28yu8HooSc9X60cftBw9UZrs8Gwj4PgTpQabBS9A==} + /expo-splash-screen@0.27.5(expo-modules-autolinking@1.11.1)(expo@51.0.14): + resolution: {integrity: sha512-9rdZuLkFCfgJBxrheUsOEOIW6Rp+9NVlpSE0hgXQwbTCLTncf00IHSE8/L2NbFyeDLNjof1yZBppaV7tXHRUzA==} peerDependencies: expo: '*' dependencies: - '@expo/prebuild-config': 7.0.3(expo-modules-autolinking@1.11.1) - expo: 51.0.9(@babel/core@7.24.4)(@babel/preset-env@7.24.6) + '@expo/prebuild-config': 7.0.6(expo-modules-autolinking@1.11.1) + expo: 51.0.14(@babel/core@7.24.4)(@babel/preset-env@7.24.7) transitivePeerDependencies: - encoding - expo-modules-autolinking @@ -16245,39 +18021,39 @@ packages: resolution: {integrity: sha512-/t3xdbS8KB0prj5KG5w7z+wZPFlPtkgs95BsmrP/E7Q0xHXTcDcQ6Cu2FkFuRM+PKTb17cJDnLkawyS5vDLxMA==} dev: false - /expo-updates-interface@0.16.2(expo@51.0.9): + /expo-updates-interface@0.16.2(expo@51.0.14): resolution: {integrity: sha512-929XBU70q5ELxkKADj1xL0UIm3HvhYhNAOZv5DSk7rrKvLo7QDdPyl+JVnwZm9LrkNbH4wuE2rLoKu1KMgZ+9A==} peerDependencies: expo: '*' dependencies: - expo: 51.0.9(@babel/core@7.24.4)(@babel/preset-env@7.24.6) + expo: 51.0.14(@babel/core@7.24.4)(@babel/preset-env@7.24.7) dev: false - /expo-web-browser@13.0.3(expo@51.0.9): + /expo-web-browser@13.0.3(expo@51.0.14): resolution: {integrity: sha512-HXb7y82ApVJtqk8tManyudtTrCtx8xcUnVzmJECeHCB0SsWSQ+penVLZxJkcyATWoJOsFMnfVSVdrTcpKKGszQ==} peerDependencies: expo: '*' dependencies: - expo: 51.0.9(@babel/core@7.24.4)(@babel/preset-env@7.24.6) + expo: 51.0.14(@babel/core@7.24.4)(@babel/preset-env@7.24.7) dev: false - /expo@51.0.9(@babel/core@7.24.4)(@babel/preset-env@7.24.6): - resolution: {integrity: sha512-USckGusi4389X/mFy8X8tEA59vgsc5joOILQrTsDPdDJawkUidDAVqY4NIjJxOY7zEq1SfPv/LglJ4cOdtvfsg==} + /expo@51.0.14(@babel/core@7.24.4)(@babel/preset-env@7.24.7): + resolution: {integrity: sha512-99BAMSYBH1aq1TIEJqM03kRpsZjN8OqZXDqYHRq9/PXT67axRUOvRjwMMLprnCmqkAVM7m7FpiECNWN4U0gvLQ==} hasBin: true dependencies: '@babel/runtime': 7.24.4 - '@expo/cli': 0.18.14(expo-modules-autolinking@1.11.1) + '@expo/cli': 0.18.19(expo-modules-autolinking@1.11.1) '@expo/config': 9.0.1 - '@expo/config-plugins': 8.0.4 - '@expo/metro-config': 0.18.3 + '@expo/config-plugins': 8.0.5 + '@expo/metro-config': 0.18.7 '@expo/vector-icons': 14.0.2 - babel-preset-expo: 11.0.6(@babel/core@7.24.4)(@babel/preset-env@7.24.6) - expo-asset: 10.0.6(expo@51.0.9) - expo-file-system: 17.0.1(expo@51.0.9) - expo-font: 12.0.6(expo@51.0.9) - expo-keep-awake: 13.0.2(expo@51.0.9) + babel-preset-expo: 11.0.10(@babel/core@7.24.4)(@babel/preset-env@7.24.7) + expo-asset: 10.0.9(expo@51.0.14) + expo-file-system: 17.0.1(expo@51.0.14) + expo-font: 12.0.7(expo@51.0.14) + expo-keep-awake: 13.0.2(expo@51.0.14) expo-modules-autolinking: 1.11.1 - expo-modules-core: 1.12.12 + expo-modules-core: 1.12.15 fbemitter: 3.0.0 whatwg-url-without-unicode: 8.0.0-3 transitivePeerDependencies: @@ -16363,7 +18139,7 @@ packages: resolution: {integrity: sha512-LyExtJWKxtgVzmgtEHyQtLFpw1KFhQphF9nTG8TpAIVkiI/xQ3FJh75tRFLYl4hkn7BNIIdLJInuDAavX35pMw==} dependencies: enhanced-resolve: 5.15.0 - mlly: 1.7.0 + mlly: 1.6.1 pathe: 1.1.2 ufo: 1.5.3 @@ -16390,6 +18166,16 @@ packages: /fast-fifo@1.3.2: resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + /fast-glob@3.3.1: + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} + 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.3.2: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} @@ -16460,7 +18246,7 @@ packages: proxy-addr: 2.0.7 rfdc: 1.3.1 secure-json-parse: 2.7.0 - semver: 7.6.2 + semver: 7.5.4 toad-cache: 3.7.0 transitivePeerDependencies: - supports-color @@ -16572,8 +18358,8 @@ packages: make-dir: 2.1.0 pkg-dir: 3.0.0 - /find-my-way-ts@0.1.2: - resolution: {integrity: sha512-AWsH49RGcyayzzxSAkwQKC1bToY5ForAfNreix88slo7wijg1wwTtCPvUUoVm/qhIY3UVSHBKApw8mOGPxsvSg==} + /find-my-way-ts@0.1.4: + resolution: {integrity: sha512-naNl2YZ8m9LlYtPZathQBjXQQ8069uYBFq8We6w9AEGddJErVh0JZw8jd/C/2W9Ib3BjTnu+YN0/rR+ytWxNdw==} dependencies: fast-querystring: 1.1.2 @@ -16621,9 +18407,16 @@ packages: resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flatted: 3.3.1 + flatted: 3.2.7 rimraf: 3.0.2 + /flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + + /flatted@3.2.7: + resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + /flatted@3.3.1: resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} @@ -16649,12 +18442,26 @@ packages: '@nuxt/kit': 3.11.2(rollup@3.29.4) vue: 3.4.25(typescript@5.5.2) vue-resize: 2.0.0-alpha.1(vue@3.4.25) + dev: true + + /floating-vue@5.2.2(vue@3.4.24): + resolution: {integrity: sha512-afW+h2CFafo+7Y9Lvw/xsqjaQlKLdJV7h1fCHfcYQ1C4SVMlu7OAekqWgu5d4SgvkBVU0pVpLlVsrSTBURFRkg==} + peerDependencies: + '@nuxt/kit': ^3.2.0 + vue: ^3.2.0 + peerDependenciesMeta: + '@nuxt/kit': + optional: true + dependencies: + '@floating-ui/dom': 1.1.1 + vue: 3.4.24(typescript@5.5.2) + vue-resize: 2.0.0-alpha.1(vue@3.4.24) /flow-enums-runtime@0.0.6: resolution: {integrity: sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==} - /flow-parser@0.237.1: - resolution: {integrity: sha512-PUeG8GQLmrv49vEcFcag7mriJvVs7Yyegnv1DGskvcokhP8UyqWsLV0KoTQ1iAW3ePVUIGUc3MFfBaXwz9MmIg==} + /flow-parser@0.238.0: + resolution: {integrity: sha512-VE7XSv1epljsIN2YeBnxCmGJihpNIAnLLu/pPOdA+Gkso7qDltJwUi6vfHjgxdBbjSdAuPGnhuOHJUQG+yYwIg==} engines: {node: '>=0.4.0'} /focus-trap@7.5.4: @@ -16666,6 +18473,16 @@ packages: resolution: {integrity: sha512-Rwix9pBtC1Nuy5wysTmKy+UjbDJpIfg8eHjw0rjZ1mX4GNLz1Bmd16uDpI3Gk1i70Fgcs8Csg2lPm8HULFg9DQ==} dev: false + /follow-redirects@1.15.2: + resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: false + /follow-redirects@1.15.6: resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} engines: {node: '>=4.0'} @@ -16730,6 +18547,10 @@ packages: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} + /fraction.js@4.2.0: + resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} + dev: true + /fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} @@ -16751,6 +18572,14 @@ packages: dev: false optional: true + /fs-extra@11.1.1: + resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} + engines: {node: '>=14.14'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.0 + /fs-extra@11.2.0: resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} engines: {node: '>=14.14'} @@ -16804,7 +18633,7 @@ packages: resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - minipass: 7.0.4 + minipass: 7.0.3 /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -16823,9 +18652,21 @@ packages: requiresBuild: true optional: true + /function-bind@1.1.1: + resolution: {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.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + functions-have-names: 1.2.3 + /function.prototype.name@1.1.6: resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} engines: {node: '>= 0.4'} @@ -16846,7 +18687,6 @@ packages: /gauge@3.0.2: resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} engines: {node: '>=10'} - deprecated: This package is no longer supported. dependencies: aproba: 2.0.0 color-support: 1.1.3 @@ -16888,13 +18728,21 @@ packages: /get-func-name@2.0.2: resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + /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 + /get-intrinsic@1.2.4: resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} engines: {node: '>= 0.4'} dependencies: es-errors: 1.3.0 function-bind: 1.1.2 - has-proto: 1.0.3 + has-proto: 1.0.1 has-symbols: 1.0.3 hasown: 2.0.2 @@ -16940,6 +18788,13 @@ packages: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} + /get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + /get-symbol-description@1.0.2: resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} engines: {node: '>= 0.4'} @@ -16948,6 +18803,12 @@ packages: es-errors: 1.3.0 get-intrinsic: 1.2.4 + /get-tsconfig@4.7.0: + resolution: {integrity: sha512-pmjiZ7xtB8URYm74PlGJozDNyhvsVLUcpBa8DZBG3bWHwaHa9bPiRpiSfovw+fjhwONSCWKRyk+JQHEGZmMrzw==} + dependencies: + resolve-pkg-maps: 1.0.0 + dev: true + /get-tsconfig@4.7.3: resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} dependencies: @@ -17053,7 +18914,6 @@ packages: /glob@7.1.6: resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} - deprecated: Glob versions prior to v9 are no longer supported dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -17064,7 +18924,6 @@ packages: /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -17076,7 +18935,6 @@ packages: /glob@8.1.0: resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} engines: {node: '>=12'} - deprecated: Glob versions prior to v9 are no longer supported dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -17116,7 +18974,7 @@ packages: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.3.2 + fast-glob: 3.3.1 ignore: 5.3.1 merge2: 1.4.1 slash: 3.0.0 @@ -17138,7 +18996,7 @@ packages: dependencies: '@sindresorhus/merge-streams': 2.3.0 fast-glob: 3.3.2 - ignore: 5.3.1 + ignore: 5.2.4 path-type: 5.0.0 slash: 5.1.0 unicorn-magic: 0.1.0 @@ -17225,7 +19083,7 @@ packages: /h3@1.11.1: resolution: {integrity: sha512-AbaH6IDnZN6nmbnJOH72y3c5Wwh9P97soSVdGSBbcDACRdkC0FEWf25pzx4f/NuOCK6quHmW18yF2Wx+G4Zi1A==} dependencies: - cookie-es: 1.1.0 + cookie-es: 1.0.0 crossws: 0.2.4 defu: 6.1.4 destr: 2.0.3 @@ -17274,11 +19132,20 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} + /has-property-descriptors@1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + dependencies: + get-intrinsic: 1.2.4 + /has-property-descriptors@1.0.2: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} dependencies: es-define-property: 1.0.0 + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + /has-proto@1.0.3: resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} engines: {node: '>= 0.4'} @@ -17287,6 +19154,12 @@ packages: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} + /has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + /has-tostringtag@1.0.2: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} @@ -17296,6 +19169,12 @@ packages: /has-unicode@2.0.1: resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + /has@1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: 1.1.1 + /hash-obj@4.0.0: resolution: {integrity: sha512-FwO1BUVWkyHasWDW4S8o0ssQXjvyghLV2rfVhnN36b2bbcj45eGiuzdn9XOvOpjV3TKQD7Gm2BWNXdE9V4KKYg==} engines: {node: '>=12'} @@ -17425,7 +19304,7 @@ packages: /hast-util-to-estree@2.3.3: resolution: {integrity: sha512-ihhPIUPxN0v0w6M5+IiAZZrn0LH2uZomeWwhn7uP7avZC6TE7lIiEh2yBMPr5+zi1aUCXq6VoYRgs2Bw9xmycQ==} dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.1 '@types/estree-jsx': 1.0.0 '@types/hast': 2.3.5 '@types/unist': 2.0.7 @@ -17614,7 +19493,7 @@ packages: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} dependencies: - agent-base: 7.1.1 + agent-base: 7.1.0 debug: 4.3.4 transitivePeerDependencies: - supports-color @@ -17624,7 +19503,7 @@ packages: engines: {node: '>=8.0.0'} dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.15.6 + follow-redirects: 1.15.2 requires-port: 1.0.0 transitivePeerDependencies: - debug @@ -17655,7 +19534,7 @@ packages: resolution: {integrity: sha512-Eun8zV0kcYS1g19r78osiQLEFIRspRUDd9tIfBCTBPBeMieF/EsJNL8VI3xOIdYRDEkjQnqOYPsZ2DsWsVsFwQ==} engines: {node: '>= 14'} dependencies: - agent-base: 7.1.1 + agent-base: 7.1.0 debug: 4.3.4 transitivePeerDependencies: - supports-color @@ -17688,8 +19567,8 @@ packages: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} - /hyphenate-style-name@1.0.5: - resolution: {integrity: sha512-fedL7PRwmeVkgyhu9hLeTBaI6wcGk7JGJswdaRsa5aUbkXI1kr1xZwTPBtaYPpwf56878iDek6VbVnuWMebJmw==} + /hyphenate-style-name@1.1.0: + resolution: {integrity: sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==} dev: false /iconv-lite@0.4.24: @@ -17720,6 +19599,10 @@ packages: dependencies: minimatch: 9.0.4 + /ignore@5.2.4: + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + engines: {node: '>= 4'} + /ignore@5.3.1: resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} @@ -17761,7 +19644,6 @@ packages: /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. dependencies: once: 1.4.0 wrappy: 1.0.2 @@ -17794,13 +19676,21 @@ packages: default-gateway: 4.2.0 ipaddr.js: 1.9.1 + /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 + /internal-slot@1.0.7: resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} engines: {node: '>= 0.4'} dependencies: es-errors: 1.3.0 hasown: 2.0.2 - side-channel: 1.0.6 + side-channel: 1.0.4 /internmap@1.0.1: resolution: {integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==} @@ -17870,10 +19760,17 @@ packages: resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 - has-tostringtag: 1.0.2 + call-bind: 1.0.2 + has-tostringtag: 1.0.0 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 + /is-array-buffer@3.0.4: resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} engines: {node: '>= 0.4'} @@ -17893,7 +19790,7 @@ packages: resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} engines: {node: '>= 0.4'} dependencies: - has-tostringtag: 1.0.2 + has-tostringtag: 1.0.0 /is-bigint@1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} @@ -17911,7 +19808,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 - has-tostringtag: 1.0.2 + has-tostringtag: 1.0.0 /is-buffer@1.1.6: resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} @@ -17931,6 +19828,11 @@ packages: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} + /is-core-module@2.13.0: + resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} + dependencies: + has: 1.0.3 + /is-core-module@2.13.1: resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} dependencies: @@ -17946,7 +19848,7 @@ packages: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} dependencies: - has-tostringtag: 1.0.2 + has-tostringtag: 1.0.0 /is-decimal@2.0.1: resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} @@ -17996,7 +19898,7 @@ packages: resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} engines: {node: '>= 0.4'} dependencies: - has-tostringtag: 1.0.2 + has-tostringtag: 1.0.0 /is-glob@2.0.1: resolution: {integrity: sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==} @@ -18056,10 +19958,14 @@ packages: resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 + call-bind: 1.0.2 + define-properties: 1.2.0 dev: false + /is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + /is-negative-zero@2.0.3: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} @@ -18072,7 +19978,7 @@ packages: resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} engines: {node: '>= 0.4'} dependencies: - has-tostringtag: 1.0.2 + has-tostringtag: 1.0.0 /is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} @@ -18137,19 +20043,19 @@ packages: /is-reference@1.2.1: resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.1 /is-reference@3.0.1: resolution: {integrity: sha512-baJJdQLiYaJdvFbJqXrcGv3WU3QCzBlUcI5QhbesIm6/xPsvmO+2CDoi/GMOFBQEQm+PXkwOPrp9KK5ozZsp2w==} dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.1 /is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 - has-tostringtag: 1.0.2 + has-tostringtag: 1.0.0 /is-regexp@1.0.0: resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} @@ -18160,6 +20066,11 @@ packages: resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} engines: {node: '>= 0.4'} + /is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.2 + /is-shared-array-buffer@1.0.3: resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} engines: {node: '>= 0.4'} @@ -18187,7 +20098,7 @@ packages: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} dependencies: - has-tostringtag: 1.0.2 + has-tostringtag: 1.0.0 /is-subdir@1.2.0: resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} @@ -18202,6 +20113,12 @@ 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 + /is-typed-array@1.1.13: resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} engines: {node: '>= 0.4'} @@ -18352,7 +20269,7 @@ packages: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.14.0 + '@types/node': 20.14.8 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -18364,7 +20281,7 @@ packages: resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/code-frame': 7.24.6 + '@babel/code-frame': 7.24.2 '@jest/types': 29.6.3 '@types/stack-utils': 2.0.3 chalk: 4.1.2 @@ -18379,7 +20296,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.14.0 + '@types/node': 20.14.8 jest-util: 29.7.0 /jest-util@29.7.0: @@ -18387,7 +20304,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.14.0 + '@types/node': 20.14.8 chalk: 4.1.2 ci-info: 3.8.0 graceful-fs: 4.2.11 @@ -18408,7 +20325,7 @@ packages: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 20.14.0 + '@types/node': 20.14.8 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -18495,25 +20412,25 @@ packages: /jsc-safe-url@0.2.4: resolution: {integrity: sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q==} - /jscodeshift@0.14.0(@babel/preset-env@7.24.6): + /jscodeshift@0.14.0(@babel/preset-env@7.24.7): resolution: {integrity: sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA==} hasBin: true peerDependencies: '@babel/preset-env': ^7.1.6 dependencies: '@babel/core': 7.24.4 - '@babel/parser': 7.24.6 + '@babel/parser': 7.24.4 '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.4) '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.24.4) '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.24.4) - '@babel/plugin-transform-modules-commonjs': 7.24.6(@babel/core@7.24.4) - '@babel/preset-env': 7.24.6(@babel/core@7.24.4) - '@babel/preset-flow': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.4) + '@babel/preset-env': 7.24.7(@babel/core@7.24.4) + '@babel/preset-flow': 7.24.7(@babel/core@7.24.4) '@babel/preset-typescript': 7.24.1(@babel/core@7.24.4) '@babel/register': 7.24.6(@babel/core@7.24.4) babel-core: 7.0.0-bridge.0(@babel/core@7.24.4) chalk: 4.1.2 - flow-parser: 0.237.1 + flow-parser: 0.238.0 graceful-fs: 4.2.11 micromatch: 4.0.5 neo-async: 2.6.2 @@ -18597,7 +20514,6 @@ packages: /jsonc-parser@3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} - dev: false /jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} @@ -18620,8 +20536,8 @@ packages: engines: {node: '>=4.0'} dependencies: array-includes: 3.1.8 - array.prototype.flat: 1.3.2 - object.assign: 4.1.5 + array.prototype.flat: 1.3.1 + object.assign: 4.1.4 object.values: 1.2.0 /katex@0.16.10: @@ -18775,8 +20691,8 @@ packages: dev: false optional: true - /lightningcss-darwin-arm64@1.24.1: - resolution: {integrity: sha512-1jQ12jBy+AE/73uGQWGSafK5GoWgmSiIQOGhSEXiFJSZxzV+OXIx+a9h2EYHxdJfX864M+2TAxWPWb0Vv+8y4w==} + /lightningcss-darwin-arm64@1.25.0: + resolution: {integrity: sha512-neCU5PrQUAec/b2mpXv13rrBWObQVaG/y0yhGKzAqN9cj7lOv13Wegnpiro0M66XAxx/cIkZfmJstRfriOR2SQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [darwin] @@ -18801,8 +20717,8 @@ packages: dev: false optional: true - /lightningcss-darwin-x64@1.24.1: - resolution: {integrity: sha512-R4R1d7VVdq2mG4igMU+Di8GPf0b64ZLnYVkubYnGG0Qxq1KaXQtAzcLI43EkpnoWvB/kUg8JKCWH4S13NfiLcQ==} + /lightningcss-darwin-x64@1.25.0: + resolution: {integrity: sha512-h1XBxDHdED7TY4/1V30UNjiqXceGbcL8ARhUfbf8CWAEhD7wMKK/4UqMHi94RDl31ko4LTmt9fS2u1uyeWYE6g==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [darwin] @@ -18819,8 +20735,8 @@ packages: dev: false optional: true - /lightningcss-freebsd-x64@1.24.1: - resolution: {integrity: sha512-z6NberUUw5ALES6Ixn2shmjRRrM1cmEn1ZQPiM5IrZ6xHHL5a1lPin9pRv+w6eWfcrEo+qGG6R9XfJrpuY3e4g==} + /lightningcss-freebsd-x64@1.25.0: + resolution: {integrity: sha512-f7v6QwrqCFtQOG1Y7iZ4P1/EAmMsyUyRBrYbSmDxihMzdsL7xyTM753H2138/oCpam+maw2RZrXe/NA1r/I5cQ==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [freebsd] @@ -18845,8 +20761,8 @@ packages: dev: false optional: true - /lightningcss-linux-arm-gnueabihf@1.24.1: - resolution: {integrity: sha512-NLQLnBQW/0sSg74qLNI8F8QKQXkNg4/ukSTa+XhtkO7v3BnK19TS1MfCbDHt+TTdSgNEBv0tubRuapcKho2EWw==} + /lightningcss-linux-arm-gnueabihf@1.25.0: + resolution: {integrity: sha512-7KSVcjci9apHxUKNjiLKXn8hVQJqCtwFg5YNvTeKi/BM91A9lQTuO57RpmpPbRIb20Qm8vR7fZtL1iL5Yo3j9A==} engines: {node: '>= 12.0.0'} cpu: [arm] os: [linux] @@ -18871,8 +20787,8 @@ packages: dev: false optional: true - /lightningcss-linux-arm64-gnu@1.24.1: - resolution: {integrity: sha512-AQxWU8c9E9JAjAi4Qw9CvX2tDIPjgzCTrZCSXKELfs4mCwzxRkHh2RCxX8sFK19RyJoJAjA/Kw8+LMNRHS5qEg==} + /lightningcss-linux-arm64-gnu@1.25.0: + resolution: {integrity: sha512-1+6tuAsUyMVG5N2rzgwaOOf84yEU+Gjl71b+wLcz26lyM/ohgFgeqPWeB/Dor0wyUnq7vg184l8goGT26cRxoQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] @@ -18897,8 +20813,8 @@ packages: dev: false optional: true - /lightningcss-linux-arm64-musl@1.24.1: - resolution: {integrity: sha512-JCgH/SrNrhqsguUA0uJUM1PvN5+dVuzPIlXcoWDHSv2OU/BWlj2dUYr3XNzEw748SmNZPfl2NjQrAdzaPOn1lA==} + /lightningcss-linux-arm64-musl@1.25.0: + resolution: {integrity: sha512-4kw3ZnGQzxD8KkaB4doqfi32hP5h3o04OlrdfZ7T9VLTbUxeh3YZUKcJmhINV2rdMOOmVODqaRw1kuvvF16Q+Q==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] @@ -18923,8 +20839,8 @@ packages: dev: false optional: true - /lightningcss-linux-x64-gnu@1.24.1: - resolution: {integrity: sha512-TYdEsC63bHV0h47aNRGN3RiK7aIeco3/keN4NkoSQ5T8xk09KHuBdySltWAvKLgT8JvR+ayzq8ZHnL1wKWY0rw==} + /lightningcss-linux-x64-gnu@1.25.0: + resolution: {integrity: sha512-oVEP5rBrFQB5V7fRIPYkDxKLmd2fAbz9VagKWIRu1TlYDUFWXK4F3KztAtAKuD7tLMBSGGi1LMUueFzVe+cZbw==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] @@ -18949,8 +20865,8 @@ packages: dev: false optional: true - /lightningcss-linux-x64-musl@1.24.1: - resolution: {integrity: sha512-HLfzVik3RToot6pQ2Rgc3JhfZkGi01hFetHt40HrUMoeKitLoqUUT5owM6yTZPTytTUW9ukLBJ1pc3XNMSvlLw==} + /lightningcss-linux-x64-musl@1.25.0: + resolution: {integrity: sha512-7ssY6HwCvmPDohqtXuZG2Mh9q32LbVBhiF/SS/VMj2jUcXcsBilUEviq/zFDzhZMxl5f1lXi5/+mCuSGrMir1A==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] @@ -18975,8 +20891,8 @@ packages: dev: false optional: true - /lightningcss-win32-x64-msvc@1.24.1: - resolution: {integrity: sha512-joEupPjYJ7PjZtDsS5lzALtlAudAbgIBMGJPNeFe5HfdmJXFd13ECmEM+5rXNxYVMRHua2w8132R6ab5Z6K9Ow==} + /lightningcss-win32-x64-msvc@1.25.0: + resolution: {integrity: sha512-DUVxj1S6dCQkixQ5qiHcYojamxE02bgmSpc4p6lejPwW7WRd/pvDPDAr+BvZWAkX5MRphxB7ei6+93+42ZtvmQ==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [win32] @@ -19016,21 +20932,21 @@ packages: lightningcss-win32-x64-msvc: 1.22.0 dev: false - /lightningcss@1.24.1: - resolution: {integrity: sha512-kUpHOLiH5GB0ERSv4pxqlL0RYKnOXtgGtVe7shDGfhS0AZ4D1ouKFYAcLcZhql8aMspDNzaUCumGHZ78tb2fTg==} + /lightningcss@1.25.0: + resolution: {integrity: sha512-B08o6QQikGaY4rPuQohtFVE+X2++mm/QemwAJ/1sgnMgTwwUnafJbTmSSBWC8Tv4JPfhelXZB6sWA0Y/6eYJmQ==} engines: {node: '>= 12.0.0'} dependencies: detect-libc: 1.0.3 optionalDependencies: - lightningcss-darwin-arm64: 1.24.1 - lightningcss-darwin-x64: 1.24.1 - lightningcss-freebsd-x64: 1.24.1 - lightningcss-linux-arm-gnueabihf: 1.24.1 - lightningcss-linux-arm64-gnu: 1.24.1 - lightningcss-linux-arm64-musl: 1.24.1 - lightningcss-linux-x64-gnu: 1.24.1 - lightningcss-linux-x64-musl: 1.24.1 - lightningcss-win32-x64-msvc: 1.24.1 + lightningcss-darwin-arm64: 1.25.0 + lightningcss-darwin-x64: 1.25.0 + lightningcss-freebsd-x64: 1.25.0 + lightningcss-linux-arm-gnueabihf: 1.25.0 + lightningcss-linux-arm64-gnu: 1.25.0 + lightningcss-linux-arm64-musl: 1.25.0 + lightningcss-linux-x64-gnu: 1.25.0 + lightningcss-linux-x64-musl: 1.25.0 + lightningcss-win32-x64-msvc: 1.25.0 dev: true /lilconfig@2.1.0: @@ -19069,7 +20985,7 @@ packages: h3: 1.11.1 http-shutdown: 1.2.2 jiti: 1.21.0 - mlly: 1.7.0 + mlly: 1.6.1 node-forge: 1.3.1 pathe: 1.1.2 std-env: 3.7.0 @@ -19102,8 +21018,8 @@ packages: resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} engines: {node: '>=14'} dependencies: - mlly: 1.7.0 - pkg-types: 1.1.1 + mlly: 1.6.1 + pkg-types: 1.1.0 /locate-character@3.0.0: resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} @@ -19130,6 +21046,7 @@ packages: /lodash-es@4.17.21: resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + dev: false /lodash.castarray@4.4.0: resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} @@ -19226,6 +21143,12 @@ packages: dependencies: js-tokens: 4.0.0 + /loupe@2.3.6: + resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} + deprecated: Please upgrade to 2.3.7 which fixes GHSA-4q6p-r6v2-jvc5 + dependencies: + get-func-name: 2.0.2 + /loupe@2.3.7: resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} dependencies: @@ -19249,6 +21172,10 @@ packages: highlight.js: 11.9.0 dev: false + /lru-cache@10.0.1: + resolution: {integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==} + engines: {node: 14 || >=16.14} + /lru-cache@10.2.0: resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} engines: {node: 14 || >=16.14} @@ -19265,6 +21192,12 @@ packages: dependencies: yallist: 3.1.1 + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + /lru-queue@0.1.0: resolution: {integrity: sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==} dependencies: @@ -19291,6 +21224,13 @@ packages: sourcemap-codec: 1.4.8 dev: true + /magic-string@0.27.0: + resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + /magic-string@0.30.10: resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} dependencies: @@ -19299,16 +21239,16 @@ packages: /magicast@0.2.10: resolution: {integrity: sha512-Ah2qatigknxwmoYCd9hx/mmVyrRNhDKiaWZIuW4gL6dWrAGMoOpCVkQ3VpGWARtkaJVFhe8uIphcsxDzLPQUyg==} dependencies: - '@babel/parser': 7.24.6 - '@babel/types': 7.24.6 + '@babel/parser': 7.24.4 + '@babel/types': 7.22.10 recast: 0.23.4 dev: false /magicast@0.3.4: resolution: {integrity: sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==} dependencies: - '@babel/parser': 7.24.6 - '@babel/types': 7.24.6 + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 source-map-js: 1.2.0 /make-dir@2.1.0: @@ -19328,7 +21268,7 @@ packages: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} dependencies: - semver: 7.6.2 + semver: 7.6.0 dev: false /make-fetch-happen@13.0.0: @@ -19339,7 +21279,7 @@ packages: cacache: 18.0.2 http-cache-semantics: 4.1.1 is-lambda: 1.0.1 - minipass: 7.0.4 + minipass: 7.0.3 minipass-fetch: 3.0.4 minipass-flush: 1.0.5 minipass-pipeline: 1.2.4 @@ -19957,7 +21897,7 @@ packages: engines: {node: '>=18'} dependencies: '@babel/traverse': 7.24.1 - '@babel/types': 7.24.6 + '@babel/types': 7.24.0 invariant: 2.2.4 metro-symbolicate: 0.80.9 nullthrows: 1.1.1 @@ -19987,7 +21927,7 @@ packages: dependencies: '@babel/core': 7.24.4 '@babel/generator': 7.24.4 - '@babel/template': 7.24.6 + '@babel/template': 7.24.0 '@babel/traverse': 7.24.1 nullthrows: 1.1.1 transitivePeerDependencies: @@ -19999,8 +21939,8 @@ packages: dependencies: '@babel/core': 7.24.4 '@babel/generator': 7.24.4 - '@babel/parser': 7.24.6 - '@babel/types': 7.24.6 + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 metro: 0.80.9 metro-babel-transformer: 0.80.9 metro-cache: 0.80.9 @@ -20020,13 +21960,13 @@ packages: engines: {node: '>=18'} hasBin: true dependencies: - '@babel/code-frame': 7.24.6 + '@babel/code-frame': 7.24.2 '@babel/core': 7.24.4 '@babel/generator': 7.24.4 - '@babel/parser': 7.24.6 - '@babel/template': 7.24.6 + '@babel/parser': 7.24.4 + '@babel/template': 7.24.0 '@babel/traverse': 7.24.1 - '@babel/types': 7.24.6 + '@babel/types': 7.24.0 accepts: 1.3.8 chalk: 4.1.2 ci-info: 2.0.0 @@ -20270,7 +22210,7 @@ packages: /micromark-extension-mdx-expression@1.0.8: resolution: {integrity: sha512-zZpeQtc5wfWKdzDsHRBY003H2Smg+PUi2REhqgIhdzAa5xonhP03FcXxqFSerFiNUr5AWmHpaNPQTBVOS4lrXw==} dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.1 micromark-factory-mdx-expression: 1.0.9 micromark-factory-space: 1.1.0 micromark-util-character: 1.2.0 @@ -20284,7 +22224,7 @@ packages: resolution: {integrity: sha512-gPH+9ZdmDflbu19Xkb8+gheqEDqkSpdCEubQyxuz/Hn8DOXiXvrXeikOoBA71+e8Pfi0/UYmU3wW3H58kr7akA==} dependencies: '@types/acorn': 4.0.6 - '@types/estree': 1.0.5 + '@types/estree': 1.0.1 estree-util-is-identifier-name: 2.1.0 micromark-factory-mdx-expression: 1.0.9 micromark-factory-space: 1.1.0 @@ -20304,7 +22244,7 @@ packages: /micromark-extension-mdxjs-esm@1.0.5: resolution: {integrity: sha512-xNRBw4aoURcyz/S69B19WnZAkWJMxHMT5hE36GtDAyhoyn/8TuAeqjFJQlwk+MKQsUD7b3l7kFX+vlfVWgcX1w==} dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.1 micromark-core-commonmark: 1.1.0 micromark-util-character: 1.2.0 micromark-util-events-to-acorn: 1.2.3 @@ -20365,7 +22305,7 @@ packages: /micromark-factory-mdx-expression@1.0.9: resolution: {integrity: sha512-jGIWzSmNfdnkJq05c7b0+Wv0Kfz3NJ3N4cBjnbO4zjXIlxJr+f8lk+5ZmwFvqdAbUy2q6B5rCY//g0QAAaXDWA==} dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.1 micromark-util-character: 1.2.0 micromark-util-events-to-acorn: 1.2.3 micromark-util-symbol: 1.1.0 @@ -20523,7 +22463,7 @@ packages: resolution: {integrity: sha512-ij4X7Wuc4fED6UoLWkmo0xJQhsktfNh1J0m8g4PbIMPlx+ek/4YdW5mvbye8z/aZvAPUoxgXHrwVlXAPKMRp1w==} dependencies: '@types/acorn': 4.0.6 - '@types/estree': 1.0.5 + '@types/estree': 1.0.1 '@types/unist': 2.0.7 estree-util-visit: 1.2.1 micromark-util-symbol: 1.1.0 @@ -20731,15 +22671,15 @@ packages: hasBin: true dependencies: '@cspotcode/source-map-support': 0.8.1 - acorn: 8.11.3 - acorn-walk: 8.3.2 + acorn: 8.10.0 + acorn-walk: 8.2.0 capnp-ts: 0.7.0 exit-hook: 2.2.1 glob-to-regexp: 0.4.1 stoppable: 1.1.0 undici: 5.28.4 workerd: 1.20240405.0 - ws: 8.17.0 + ws: 8.16.0 youch: 3.3.3 zod: 3.23.8 transitivePeerDependencies: @@ -20766,6 +22706,13 @@ packages: brace-expansion: 2.0.1 dev: true + /minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + /minimatch@9.0.4: resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} engines: {node: '>=16 || 14 >=14.17'} @@ -20788,13 +22735,13 @@ packages: resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==} engines: {node: '>=16 || 14 >=14.17'} dependencies: - minipass: 7.0.4 + minipass: 7.0.3 /minipass-fetch@3.0.4: resolution: {integrity: sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - minipass: 7.0.4 + minipass: 7.0.3 minipass-sized: 1.0.3 minizlib: 2.1.2 optionalDependencies: @@ -20834,6 +22781,10 @@ packages: resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} engines: {node: '>=8'} + /minipass@7.0.3: + resolution: {integrity: sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg==} + engines: {node: '>=16 || 14 >=14.17'} + /minipass@7.0.4: resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} engines: {node: '>=16 || 14 >=14.17'} @@ -20885,28 +22836,28 @@ packages: typescript: optional: true dependencies: - autoprefixer: 10.4.19(postcss@8.4.38) + autoprefixer: 10.4.14(postcss@8.4.38) citty: 0.1.6 - cssnano: 6.1.2(postcss@8.4.38) + cssnano: 6.0.1(postcss@8.4.38) defu: 6.1.4 esbuild: 0.19.12 - fs-extra: 11.2.0 + fs-extra: 11.1.1 globby: 13.2.2 jiti: 1.21.0 - mlly: 1.7.0 + mlly: 1.6.1 mri: 1.2.0 - pathe: 1.1.2 + pathe: 1.1.1 postcss: 8.4.38 postcss-nested: 6.0.1(postcss@8.4.38) typescript: 5.5.2 dev: true - /mlly@1.7.0: - resolution: {integrity: sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ==} + /mlly@1.6.1: + resolution: {integrity: sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==} dependencies: acorn: 8.11.3 pathe: 1.1.2 - pkg-types: 1.1.1 + pkg-types: 1.0.3 ufo: 1.5.3 /mnemonist@0.39.6: @@ -20973,8 +22924,8 @@ packages: resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} dev: true - /multipasta@0.2.1: - resolution: {integrity: sha512-0NR15o5iewJFMsZ4jN6cztCd4izTLZPyHUfBrakbg/x70B8zplPE6qumbs+A7LmhGtQMzpN/K8MOOdifMgAKFA==} + /multipasta@0.2.2: + resolution: {integrity: sha512-KKGdmXIJUmt9BV45LsbUdMnju8eCNSyF9KpbyqK2E3wQXjpPQOg52/Hc+nsmBacmEkNxLVT5h1y3ZgEXB4prXg==} /mustache@4.2.0: resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} @@ -21003,6 +22954,12 @@ packages: object-assign: 4.1.1 thenify-all: 1.6.0 + /nanoid@3.3.6: + resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + /nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -21019,13 +22976,13 @@ packages: dev: false optional: true - /nativewind@4.0.36(@babel/core@7.24.4)(react-native-reanimated@3.10.1)(react-native-safe-area-context@4.10.1)(react-native@0.74.1)(react@18.3.1)(tailwindcss@3.4.3): + /nativewind@4.0.36(@babel/core@7.24.4)(react-native-reanimated@3.10.1)(react-native-safe-area-context@4.10.1)(react-native@0.74.2)(react@18.3.1)(tailwindcss@3.4.3): resolution: {integrity: sha512-nd0Xgjzaq0ISvUAjibZXcuSvvpX1BGX2mfOGBPZpjGfHL3By6fwLGsNhrKU6mi2FF30c+kdok3e2I4k/O0UO1Q==} engines: {node: '>=16'} peerDependencies: tailwindcss: '>3.3.0' dependencies: - react-native-css-interop: 0.0.36(@babel/core@7.24.4)(react-native-reanimated@3.10.1)(react-native-safe-area-context@4.10.1)(react-native@0.74.1)(react@18.3.1)(tailwindcss@3.4.3) + react-native-css-interop: 0.0.36(@babel/core@7.24.4)(react-native-reanimated@3.10.1)(react-native-safe-area-context@4.10.1)(react-native@0.74.2)(react@18.3.1)(tailwindcss@3.4.3) tailwindcss: 3.4.3 transitivePeerDependencies: - '@babel/core' @@ -21198,7 +23155,7 @@ packages: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) scroll-into-view-if-needed: 3.1.0 - zod: 3.23.8 + zod: 3.23.0 dev: false /nextra@2.13.4(next@14.2.3)(react-dom@18.3.1)(react@18.3.1): @@ -21237,7 +23194,7 @@ packages: title: 3.5.3 unist-util-remove: 4.0.0 unist-util-visit: 5.0.0 - zod: 3.23.8 + zod: 3.23.0 transitivePeerDependencies: - supports-color dev: false @@ -21297,7 +23254,7 @@ packages: listhen: 1.7.2 magic-string: 0.30.10 mime: 4.0.1 - mlly: 1.7.0 + mlly: 1.6.1 mri: 1.2.0 node-fetch-native: 1.6.4 ofetch: 1.3.4 @@ -21305,13 +23262,13 @@ packages: openapi-typescript: 6.7.5 pathe: 1.1.2 perfect-debounce: 1.0.0 - pkg-types: 1.1.1 + pkg-types: 1.0.3 pretty-bytes: 6.1.1 radix3: 1.1.2 rollup: 4.16.2 rollup-plugin-visualizer: 5.12.0(rollup@4.16.2) scule: 1.3.0 - semver: 7.6.2 + semver: 7.6.0 serve-placeholder: 2.0.1 serve-static: 1.15.0 std-env: 3.7.0 @@ -21363,7 +23320,7 @@ packages: engines: {node: '>=10'} requiresBuild: true dependencies: - semver: 7.6.2 + semver: 7.6.0 dev: false optional: true @@ -21437,8 +23394,8 @@ packages: make-fetch-happen: 13.0.0 nopt: 7.2.0 proc-log: 3.0.0 - semver: 7.6.2 - tar: 6.2.1 + semver: 7.6.0 + tar: 6.1.15 which: 4.0.0 transitivePeerDependencies: - supports-color @@ -21486,7 +23443,7 @@ packages: dependencies: hosted-git-info: 7.0.1 is-core-module: 2.13.1 - semver: 7.6.2 + semver: 7.6.0 validate-npm-package-license: 3.0.4 /normalize-path@3.0.0: @@ -21563,7 +23520,7 @@ packages: resolution: {integrity: sha512-744wat5wAAHsxa4590mWO0tJ8PKxR8ORZsH9wGpQc3nWTzozMAgBN/XyqYw7mg3yqLM8dLwEnwSfKMmXAjF69g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - semver: 7.6.2 + semver: 7.6.0 /npm-normalize-package-bin@2.0.0: resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==} @@ -21580,7 +23537,7 @@ packages: dependencies: hosted-git-info: 7.0.1 proc-log: 4.2.0 - semver: 7.6.2 + semver: 7.6.0 validate-npm-package-name: 5.0.0 /npm-package-arg@7.0.0: @@ -21615,15 +23572,15 @@ packages: npm-install-checks: 6.2.0 npm-normalize-package-bin: 3.0.1 npm-package-arg: 11.0.2 - semver: 7.6.2 + semver: 7.6.0 - /npm-registry-fetch@17.0.1: - resolution: {integrity: sha512-fLu9MTdZTlJAHUek/VLklE6EpIiP3VZpTiuN7OOMCt2Sd67NCpSEetMaxHHEZiZxllp8ZLsUpvbEszqTFEc+wA==} + /npm-registry-fetch@16.2.1: + resolution: {integrity: sha512-8l+7jxhim55S85fjiDGJ1rZXBWGtRLi1OSb4Z3BPLObPuIaeKRlPRiYMSHU4/81ck3t71Z+UwDDl47gcpmfQQA==} engines: {node: ^16.14.0 || >=18.0.0} dependencies: - '@npmcli/redact': 2.0.0 + '@npmcli/redact': 1.1.0 make-fetch-happen: 13.0.0 - minipass: 7.0.4 + minipass: 7.0.3 minipass-fetch: 3.0.4 minipass-json-stream: 1.0.1 minizlib: 2.1.2 @@ -21657,7 +23614,6 @@ packages: /npmlog@5.0.1: resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} - deprecated: This package is no longer supported. dependencies: are-we-there-yet: 2.0.0 console-control-strings: 1.1.0 @@ -21679,7 +23635,7 @@ packages: optionalDependencies: fsevents: 2.3.3 - /nuxt@3.11.2(@types/node@20.14.0)(@unocss/reset@0.59.4)(eslint@8.57.0)(floating-vue@5.2.2)(rollup@3.29.4)(typescript@5.5.2)(unocss@0.59.4)(vite@5.2.10): + /nuxt@3.11.2(@types/node@20.14.8)(@unocss/reset@0.59.4)(eslint@8.57.0)(floating-vue@5.2.2)(rollup@3.29.4)(typescript@5.5.2)(unocss@0.59.4)(vite@5.2.10): resolution: {integrity: sha512-Be1d4oyFo60pdF+diBolYDcfNemoMYM3R8PDjhnGrs/w3xJoDH1YMUVWHXXY8WhSmYZI7dyBehx/6kTfGFliVA==} engines: {node: ^14.18.0 || >=16.10.0} hasBin: true @@ -21693,17 +23649,17 @@ packages: optional: true dependencies: '@nuxt/devalue': 2.0.2 - '@nuxt/devtools': 1.3.3(@unocss/reset@0.59.4)(floating-vue@5.2.2)(nuxt@3.11.2)(rollup@3.29.4)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.25) + '@nuxt/devtools': 1.2.0(@unocss/reset@0.59.4)(floating-vue@5.2.2)(nuxt@3.11.2)(rollup@3.29.4)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.24) '@nuxt/kit': 3.11.2(rollup@3.29.4) '@nuxt/schema': 3.11.2(rollup@3.29.4) '@nuxt/telemetry': 2.5.4(rollup@3.29.4) '@nuxt/ui-templates': 1.3.3 - '@nuxt/vite-builder': 3.11.2(@types/node@20.14.0)(eslint@8.57.0)(rollup@3.29.4)(typescript@5.5.2)(vue@3.4.25) - '@types/node': 20.14.0 + '@nuxt/vite-builder': 3.11.2(@types/node@20.14.8)(eslint@8.57.0)(rollup@3.29.4)(typescript@5.5.2)(vue@3.4.24) + '@types/node': 20.14.8 '@unhead/dom': 1.9.7 '@unhead/ssr': 1.9.7 - '@unhead/vue': 1.9.7(vue@3.4.25) - '@vue/shared': 3.4.25 + '@unhead/vue': 1.9.7(vue@3.4.24) + '@vue/shared': 3.4.24 acorn: 8.11.3 c12: 1.10.0 chokidar: 3.6.0 @@ -21722,7 +23678,7 @@ packages: klona: 2.0.6 knitwork: 1.1.0 magic-string: 0.30.10 - mlly: 1.7.0 + mlly: 1.6.1 nitropack: 2.9.6 nuxi: 3.11.1 nypm: 0.3.8 @@ -21730,7 +23686,7 @@ packages: ohash: 1.1.3 pathe: 1.1.2 perfect-debounce: 1.0.0 - pkg-types: 1.1.1 + pkg-types: 1.0.3 radix3: 1.1.2 scule: 1.3.0 std-env: 3.7.0 @@ -21742,13 +23698,13 @@ packages: unenv: 1.9.0 unimport: 3.7.1(rollup@3.29.4) unplugin: 1.10.1 - unplugin-vue-router: 0.7.0(rollup@3.29.4)(vue-router@4.3.2)(vue@3.4.25) + unplugin-vue-router: 0.7.0(rollup@3.29.4)(vue-router@4.3.2)(vue@3.4.24) unstorage: 1.10.2(ioredis@5.3.2) untyped: 1.4.2 - vue: 3.4.25(typescript@5.5.2) + vue: 3.4.24(typescript@5.5.2) vue-bundle-renderer: 2.0.0 vue-devtools-stub: 0.1.0 - vue-router: 4.3.2(vue@3.4.25) + vue-router: 4.3.2(vue@3.4.24) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -21805,7 +23761,7 @@ packages: - xml2js dev: true - /nuxt@3.11.2(@types/node@20.14.0)(@unocss/reset@0.59.4)(eslint@8.57.0)(floating-vue@5.2.2)(rollup@4.18.0)(typescript@5.5.2)(unocss@0.59.4)(vite@5.2.10): + /nuxt@3.11.2(@types/node@20.14.8)(@unocss/reset@0.59.4)(eslint@8.57.0)(floating-vue@5.2.2)(rollup@4.18.0)(typescript@5.5.2)(unocss@0.59.4)(vite@5.2.10): resolution: {integrity: sha512-Be1d4oyFo60pdF+diBolYDcfNemoMYM3R8PDjhnGrs/w3xJoDH1YMUVWHXXY8WhSmYZI7dyBehx/6kTfGFliVA==} engines: {node: ^14.18.0 || >=16.10.0} hasBin: true @@ -21819,17 +23775,17 @@ packages: optional: true dependencies: '@nuxt/devalue': 2.0.2 - '@nuxt/devtools': 1.3.3(@unocss/reset@0.59.4)(floating-vue@5.2.2)(nuxt@3.11.2)(rollup@4.18.0)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.25) + '@nuxt/devtools': 1.2.0(@unocss/reset@0.59.4)(floating-vue@5.2.2)(nuxt@3.11.2)(rollup@4.18.0)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.24) '@nuxt/kit': 3.11.2(rollup@4.18.0) '@nuxt/schema': 3.11.2(rollup@4.18.0) '@nuxt/telemetry': 2.5.4(rollup@4.18.0) '@nuxt/ui-templates': 1.3.3 - '@nuxt/vite-builder': 3.11.2(@types/node@20.14.0)(eslint@8.57.0)(rollup@4.18.0)(typescript@5.5.2)(vue@3.4.25) - '@types/node': 20.14.0 + '@nuxt/vite-builder': 3.11.2(@types/node@20.14.8)(eslint@8.57.0)(rollup@4.18.0)(typescript@5.5.2)(vue@3.4.24) + '@types/node': 20.14.8 '@unhead/dom': 1.9.7 '@unhead/ssr': 1.9.7 - '@unhead/vue': 1.9.7(vue@3.4.25) - '@vue/shared': 3.4.25 + '@unhead/vue': 1.9.7(vue@3.4.24) + '@vue/shared': 3.4.24 acorn: 8.11.3 c12: 1.10.0 chokidar: 3.6.0 @@ -21848,7 +23804,7 @@ packages: klona: 2.0.6 knitwork: 1.1.0 magic-string: 0.30.10 - mlly: 1.7.0 + mlly: 1.6.1 nitropack: 2.9.6 nuxi: 3.11.1 nypm: 0.3.8 @@ -21856,7 +23812,7 @@ packages: ohash: 1.1.3 pathe: 1.1.2 perfect-debounce: 1.0.0 - pkg-types: 1.1.1 + pkg-types: 1.0.3 radix3: 1.1.2 scule: 1.3.0 std-env: 3.7.0 @@ -21868,13 +23824,13 @@ packages: unenv: 1.9.0 unimport: 3.7.1(rollup@4.18.0) unplugin: 1.10.1 - unplugin-vue-router: 0.7.0(rollup@4.18.0)(vue-router@4.3.2)(vue@3.4.25) + unplugin-vue-router: 0.7.0(rollup@4.18.0)(vue-router@4.3.2)(vue@3.4.24) unstorage: 1.10.2(ioredis@5.3.2) untyped: 1.4.2 - vue: 3.4.25(typescript@5.5.2) + vue: 3.4.24(typescript@5.5.2) vue-bundle-renderer: 2.0.0 vue-devtools-stub: 0.1.0 - vue-router: 4.3.2(vue@3.4.25) + vue-router: 4.3.2(vue@3.4.24) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -21931,7 +23887,7 @@ packages: - xml2js dev: true - /nuxt@3.11.2(@types/node@20.14.0)(@unocss/reset@0.59.4)(floating-vue@5.2.2)(typescript@5.5.2)(unocss@0.59.4)(vite@5.2.10): + /nuxt@3.11.2(@types/node@20.14.8)(@unocss/reset@0.59.4)(floating-vue@5.2.2)(typescript@5.5.2)(unocss@0.59.4)(vite@5.2.10): resolution: {integrity: sha512-Be1d4oyFo60pdF+diBolYDcfNemoMYM3R8PDjhnGrs/w3xJoDH1YMUVWHXXY8WhSmYZI7dyBehx/6kTfGFliVA==} engines: {node: ^14.18.0 || >=16.10.0} hasBin: true @@ -21945,17 +23901,17 @@ packages: optional: true dependencies: '@nuxt/devalue': 2.0.2 - '@nuxt/devtools': 1.3.3(@unocss/reset@0.59.4)(floating-vue@5.2.2)(nuxt@3.11.2)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.25) + '@nuxt/devtools': 1.2.0(@unocss/reset@0.59.4)(floating-vue@5.2.2)(nuxt@3.11.2)(unocss@0.59.4)(vite@5.2.10)(vue@3.4.24) '@nuxt/kit': 3.11.2 '@nuxt/schema': 3.11.2 '@nuxt/telemetry': 2.5.4 '@nuxt/ui-templates': 1.3.3 - '@nuxt/vite-builder': 3.11.2(@types/node@20.14.0)(typescript@5.5.2)(vue@3.4.25) - '@types/node': 20.14.0 + '@nuxt/vite-builder': 3.11.2(@types/node@20.14.8)(typescript@5.5.2)(vue@3.4.24) + '@types/node': 20.14.8 '@unhead/dom': 1.9.7 '@unhead/ssr': 1.9.7 - '@unhead/vue': 1.9.7(vue@3.4.25) - '@vue/shared': 3.4.25 + '@unhead/vue': 1.9.7(vue@3.4.24) + '@vue/shared': 3.4.24 acorn: 8.11.3 c12: 1.10.0 chokidar: 3.6.0 @@ -21974,7 +23930,7 @@ packages: klona: 2.0.6 knitwork: 1.1.0 magic-string: 0.30.10 - mlly: 1.7.0 + mlly: 1.6.1 nitropack: 2.9.6 nuxi: 3.11.1 nypm: 0.3.8 @@ -21982,7 +23938,7 @@ packages: ohash: 1.1.3 pathe: 1.1.2 perfect-debounce: 1.0.0 - pkg-types: 1.1.1 + pkg-types: 1.0.3 radix3: 1.1.2 scule: 1.3.0 std-env: 3.7.0 @@ -21994,13 +23950,13 @@ packages: unenv: 1.9.0 unimport: 3.7.1(rollup@3.29.4) unplugin: 1.10.1 - unplugin-vue-router: 0.7.0(vue-router@4.3.2)(vue@3.4.25) + unplugin-vue-router: 0.7.0(vue-router@4.3.2)(vue@3.4.24) unstorage: 1.10.2(ioredis@5.3.2) untyped: 1.4.2 - vue: 3.4.25(typescript@5.5.2) + vue: 3.4.24(typescript@5.5.2) vue-bundle-renderer: 2.0.0 vue-devtools-stub: 0.1.0 - vue-router: 4.3.2(vue@3.4.25) + vue-router: 4.3.2(vue@3.4.24) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -22084,6 +24040,9 @@ packages: resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} engines: {node: '>= 6'} + /object-inspect@1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + /object-inspect@1.13.1: resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} @@ -22091,14 +24050,23 @@ packages: resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 + call-bind: 1.0.2 + define-properties: 1.2.0 dev: false /object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} + /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.0 + has-symbols: 1.0.3 + object-keys: 1.1.1 + /object.assign@4.1.5: resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} @@ -22452,31 +24420,32 @@ packages: got: 12.6.1 registry-auth-token: 5.0.2 registry-url: 6.0.1 - semver: 7.6.2 + semver: 7.6.0 dev: false - /pacote@18.0.6: - resolution: {integrity: sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A==} + /pacote@18.0.0: + resolution: {integrity: sha512-ma7uVt/q3Sb3XbLwUjOeClz+7feHjMOFegHn5whw++x+GzikZkAq/2auklSbRuy6EI2iJh1/ZqCpVaUcxRaeqQ==} engines: {node: ^16.14.0 || >=18.0.0} hasBin: true dependencies: '@npmcli/git': 5.0.6 '@npmcli/installed-package-contents': 2.0.2 - '@npmcli/package-json': 5.1.1 '@npmcli/promise-spawn': 7.0.1 '@npmcli/run-script': 8.0.0 cacache: 18.0.2 fs-minipass: 3.0.3 - minipass: 7.0.4 + minipass: 7.0.3 npm-package-arg: 11.0.2 npm-packlist: 8.0.2 npm-pick-manifest: 9.0.0 - npm-registry-fetch: 17.0.1 + npm-registry-fetch: 16.2.1 proc-log: 4.2.0 promise-retry: 2.0.1 + read-package-json: 7.0.0 + read-package-json-fast: 3.0.2 sigstore: 2.3.0 ssri: 10.0.5 - tar: 6.2.1 + tar: 6.1.15 transitivePeerDependencies: - bluebird - supports-color @@ -22524,7 +24493,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.24.6 + '@babel/code-frame': 7.24.2 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -22637,6 +24606,9 @@ packages: resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} engines: {node: '>=12'} + /pathe@1.1.1: + resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} + /pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} @@ -22649,7 +24621,7 @@ packages: /periscopic@3.1.0: resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.1 estree-walker: 3.0.3 is-reference: 3.0.1 @@ -22714,11 +24686,18 @@ packages: find-up: 4.1.0 dev: false - /pkg-types@1.1.1: - resolution: {integrity: sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==} + /pkg-types@1.0.3: + resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} + dependencies: + jsonc-parser: 3.2.0 + mlly: 1.6.1 + pathe: 1.1.2 + + /pkg-types@1.1.0: + resolution: {integrity: sha512-/RpmvKdxKf8uILTtoOhAgf30wYbP2Qw+L9p3Rvshx1JZVX+XQNZQFjlbmGHEGIm4CkVPlSn+NXmIM8+9oWQaSA==} dependencies: confbox: 0.1.7 - mlly: 1.7.0 + mlly: 1.6.1 pathe: 1.1.2 /playwright-core@1.42.1: @@ -22761,6 +24740,19 @@ packages: postcss-selector-parser: 6.0.16 postcss-value-parser: 4.2.0 + /postcss-colormin@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.23.0 + caniuse-api: 3.0.0 + colord: 2.9.3 + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true + /postcss-colormin@6.1.0(postcss@8.4.38): resolution: {integrity: sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==} engines: {node: ^14 || ^16 || >=18.0} @@ -22773,6 +24765,17 @@ packages: postcss: 8.4.38 postcss-value-parser: 4.2.0 + /postcss-convert-values@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.23.0 + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true + /postcss-convert-values@6.1.0(postcss@8.4.38): resolution: {integrity: sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==} engines: {node: ^14 || ^16 || >=18.0} @@ -22783,6 +24786,15 @@ packages: postcss: 8.4.38 postcss-value-parser: 4.2.0 + /postcss-discard-comments@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.38 + dev: true + /postcss-discard-comments@6.0.2(postcss@8.4.38): resolution: {integrity: sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==} engines: {node: ^14 || ^16 || >=18.0} @@ -22791,6 +24803,15 @@ packages: dependencies: postcss: 8.4.38 + /postcss-discard-duplicates@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.38 + dev: true + /postcss-discard-duplicates@6.0.3(postcss@8.4.38): resolution: {integrity: sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==} engines: {node: ^14 || ^16 || >=18.0} @@ -22799,6 +24820,15 @@ packages: dependencies: postcss: 8.4.38 + /postcss-discard-empty@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.38 + dev: true + /postcss-discard-empty@6.0.3(postcss@8.4.38): resolution: {integrity: sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==} engines: {node: ^14 || ^16 || >=18.0} @@ -22807,6 +24837,15 @@ packages: dependencies: postcss: 8.4.38 + /postcss-discard-overridden@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.38 + dev: true + /postcss-discard-overridden@6.0.2(postcss@8.4.38): resolution: {integrity: sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==} engines: {node: ^14 || ^16 || >=18.0} @@ -22824,7 +24863,7 @@ packages: postcss: 8.4.38 postcss-value-parser: 4.2.0 read-cache: 1.0.0 - resolve: 1.22.8 + resolve: 1.22.4 /postcss-import@16.1.0(postcss@8.4.38): resolution: {integrity: sha512-7hsAZ4xGXl4MW+OKEWCnF6T5jqBw80/EE9aXg1r2yyn1RsVEU8EtKXbijEODa+rg7iih4bKf7vlvTGYR4CnPNg==} @@ -22878,7 +24917,7 @@ packages: dependencies: lilconfig: 2.1.0 postcss: 8.4.38 - yaml: 2.4.1 + yaml: 2.3.1 /postcss-load-config@5.0.3(postcss@8.4.38): resolution: {integrity: sha512-90pBBI5apUVruIEdCxZic93Wm+i9fTrp7TXbgdUCH+/L+2WnfpITSpq5dFU/IPvbv7aNiMlQISpUkAm3fEcvgQ==} @@ -22897,6 +24936,17 @@ packages: yaml: 2.4.1 dev: true + /postcss-merge-longhand@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + stylehacks: 6.0.0(postcss@8.4.38) + dev: true + /postcss-merge-longhand@6.0.5(postcss@8.4.38): resolution: {integrity: sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==} engines: {node: ^14 || ^16 || >=18.0} @@ -22907,6 +24957,19 @@ packages: postcss-value-parser: 4.2.0 stylehacks: 6.1.1(postcss@8.4.38) + /postcss-merge-rules@6.0.1(postcss@8.4.38): + resolution: {integrity: sha512-a4tlmJIQo9SCjcfiCcCMg/ZCEe0XTkl/xK0XHBs955GWg9xDX3NwP9pwZ78QUOWB8/0XCjZeJn98Dae0zg6AAw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.23.0 + caniuse-api: 3.0.0 + cssnano-utils: 4.0.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + dev: true + /postcss-merge-rules@6.1.1(postcss@8.4.38): resolution: {integrity: sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==} engines: {node: ^14 || ^16 || >=18.0} @@ -22919,6 +24982,16 @@ packages: postcss: 8.4.38 postcss-selector-parser: 6.0.16 + /postcss-minify-font-values@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true + /postcss-minify-font-values@6.1.0(postcss@8.4.38): resolution: {integrity: sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==} engines: {node: ^14 || ^16 || >=18.0} @@ -22928,6 +25001,18 @@ packages: postcss: 8.4.38 postcss-value-parser: 4.2.0 + /postcss-minify-gradients@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + colord: 2.9.3 + cssnano-utils: 4.0.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true + /postcss-minify-gradients@6.0.3(postcss@8.4.38): resolution: {integrity: sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==} engines: {node: ^14 || ^16 || >=18.0} @@ -22939,6 +25024,18 @@ packages: postcss: 8.4.38 postcss-value-parser: 4.2.0 + /postcss-minify-params@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.23.0 + cssnano-utils: 4.0.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true + /postcss-minify-params@6.1.0(postcss@8.4.38): resolution: {integrity: sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==} engines: {node: ^14 || ^16 || >=18.0} @@ -22950,6 +25047,16 @@ packages: postcss: 8.4.38 postcss-value-parser: 4.2.0 + /postcss-minify-selectors@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + dev: true + /postcss-minify-selectors@6.0.4(postcss@8.4.38): resolution: {integrity: sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==} engines: {node: ^14 || ^16 || >=18.0} @@ -22966,7 +25073,16 @@ packages: postcss: ^8.2.14 dependencies: postcss: 8.4.38 - postcss-selector-parser: 6.0.16 + postcss-selector-parser: 6.0.13 + + /postcss-normalize-charset@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.38 + dev: true /postcss-normalize-charset@6.0.2(postcss@8.4.38): resolution: {integrity: sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==} @@ -22976,6 +25092,16 @@ packages: dependencies: postcss: 8.4.38 + /postcss-normalize-display-values@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true + /postcss-normalize-display-values@6.0.2(postcss@8.4.38): resolution: {integrity: sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==} engines: {node: ^14 || ^16 || >=18.0} @@ -22985,6 +25111,16 @@ packages: postcss: 8.4.38 postcss-value-parser: 4.2.0 + /postcss-normalize-positions@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true + /postcss-normalize-positions@6.0.2(postcss@8.4.38): resolution: {integrity: sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==} engines: {node: ^14 || ^16 || >=18.0} @@ -22994,6 +25130,16 @@ packages: postcss: 8.4.38 postcss-value-parser: 4.2.0 + /postcss-normalize-repeat-style@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true + /postcss-normalize-repeat-style@6.0.2(postcss@8.4.38): resolution: {integrity: sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==} engines: {node: ^14 || ^16 || >=18.0} @@ -23003,6 +25149,16 @@ packages: postcss: 8.4.38 postcss-value-parser: 4.2.0 + /postcss-normalize-string@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true + /postcss-normalize-string@6.0.2(postcss@8.4.38): resolution: {integrity: sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==} engines: {node: ^14 || ^16 || >=18.0} @@ -23012,6 +25168,16 @@ packages: postcss: 8.4.38 postcss-value-parser: 4.2.0 + /postcss-normalize-timing-functions@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true + /postcss-normalize-timing-functions@6.0.2(postcss@8.4.38): resolution: {integrity: sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==} engines: {node: ^14 || ^16 || >=18.0} @@ -23021,6 +25187,17 @@ packages: postcss: 8.4.38 postcss-value-parser: 4.2.0 + /postcss-normalize-unicode@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.23.0 + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true + /postcss-normalize-unicode@6.1.0(postcss@8.4.38): resolution: {integrity: sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==} engines: {node: ^14 || ^16 || >=18.0} @@ -23031,6 +25208,16 @@ packages: postcss: 8.4.38 postcss-value-parser: 4.2.0 + /postcss-normalize-url@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true + /postcss-normalize-url@6.0.2(postcss@8.4.38): resolution: {integrity: sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==} engines: {node: ^14 || ^16 || >=18.0} @@ -23040,6 +25227,16 @@ packages: postcss: 8.4.38 postcss-value-parser: 4.2.0 + /postcss-normalize-whitespace@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true + /postcss-normalize-whitespace@6.0.2(postcss@8.4.38): resolution: {integrity: sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==} engines: {node: ^14 || ^16 || >=18.0} @@ -23049,6 +25246,17 @@ packages: postcss: 8.4.38 postcss-value-parser: 4.2.0 + /postcss-ordered-values@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + cssnano-utils: 4.0.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true + /postcss-ordered-values@6.0.2(postcss@8.4.38): resolution: {integrity: sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==} engines: {node: ^14 || ^16 || >=18.0} @@ -23059,6 +25267,17 @@ packages: postcss: 8.4.38 postcss-value-parser: 4.2.0 + /postcss-reduce-initial@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.23.0 + caniuse-api: 3.0.0 + postcss: 8.4.38 + dev: true + /postcss-reduce-initial@6.1.0(postcss@8.4.38): resolution: {integrity: sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==} engines: {node: ^14 || ^16 || >=18.0} @@ -23069,6 +25288,16 @@ packages: caniuse-api: 3.0.0 postcss: 8.4.38 + /postcss-reduce-transforms@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + dev: true + /postcss-reduce-transforms@6.0.2(postcss@8.4.38): resolution: {integrity: sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==} engines: {node: ^14 || ^16 || >=18.0} @@ -23104,6 +25333,13 @@ packages: util-deprecate: 1.0.2 dev: false + /postcss-selector-parser@6.0.13: + resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + /postcss-selector-parser@6.0.16: resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} engines: {node: '>=4'} @@ -23111,6 +25347,17 @@ packages: cssesc: 3.0.0 util-deprecate: 1.0.2 + /postcss-svgo@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw==} + engines: {node: ^14 || ^16 || >= 18} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + svgo: 3.0.2 + dev: true + /postcss-svgo@6.0.3(postcss@8.4.38): resolution: {integrity: sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==} engines: {node: ^14 || ^16 || >= 18} @@ -23121,6 +25368,16 @@ packages: postcss-value-parser: 4.2.0 svgo: 3.2.0 + /postcss-unique-selectors@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + dev: true + /postcss-unique-selectors@6.0.4(postcss@8.4.38): resolution: {integrity: sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==} engines: {node: ^14 || ^16 || >=18.0} @@ -23183,6 +25440,16 @@ packages: dev: false optional: true + /preferred-pm@3.0.3: + resolution: {integrity: sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==} + engines: {node: '>=10'} + dependencies: + find-up: 5.0.0 + find-yarn-workspace-root2: 1.2.16 + path-exists: 4.0.0 + which-pm: 2.0.0 + dev: false + /preferred-pm@3.1.3: resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==} engines: {node: '>=10'} @@ -23586,7 +25853,7 @@ packages: resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} engines: {node: '>=0.6'} dependencies: - side-channel: 1.0.6 + side-channel: 1.0.4 /query-string@7.1.3: resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==} @@ -23648,6 +25915,13 @@ packages: iconv-lite: 0.4.24 unpipe: 1.0.0 + /rc9@2.1.1: + resolution: {integrity: sha512-lNeOl38Ws0eNxpO3+wD1I9rkHGQyj1NU1jlzv4go2CtEnEQEUfqnIvZG7W+bC/aXdJ27n5x/yUjb6RoT9tko+Q==} + dependencies: + defu: 6.1.4 + destr: 2.0.3 + flat: 5.0.2 + /rc9@2.1.2: resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} dependencies: @@ -23700,12 +25974,6 @@ packages: tslib: 2.6.2 dev: false - /react-hook-form@7.51.5(react@18.3.1): - resolution: {integrity: sha512-J2ILT5gWx1XUIJRETiA7M19iXHlG74+6O3KApzvqB/w8S5NQR7AbU8HVZrMALdmDgWpRPYiZJl0zx8Z4L2mP6Q==} - engines: {node: '>=12.22.0'} - peerDependencies: - react: ^16.8.0 || ^17 || ^18 - /react-fast-compare@3.2.2: resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} dev: false @@ -23719,6 +25987,15 @@ packages: react: 18.3.1 dev: false + /react-hook-form@7.52.0(react@18.3.1): + resolution: {integrity: sha512-mJX506Xc6mirzLsmXUJyqlAI3Kj9Ph2RhplYhUVffeOQSnubK2uVqBFOBJmvKikvbFV91pxVXmDiR+QMF19x6A==} + engines: {node: '>=12.22.0'} + peerDependencies: + react: ^16.8.0 || ^17 || ^18 || ^19 + dependencies: + react: 18.3.1 + dev: false + /react-image-crop@11.0.5(react@18.3.1): resolution: {integrity: sha512-A/Y/kspOzki1zDL/bSgwWIY1X3CQ9F1QwpdnncWLBVAktnKfAZDIQnWmjXzuzEjZHDMsBlArytIcPBVi6DNklg==} peerDependencies: @@ -23781,7 +26058,7 @@ packages: react-selecto: 1.26.3 dev: false - /react-native-css-interop@0.0.36(@babel/core@7.24.4)(react-native-reanimated@3.10.1)(react-native-safe-area-context@4.10.1)(react-native@0.74.1)(react@18.3.1)(tailwindcss@3.4.3): + /react-native-css-interop@0.0.36(@babel/core@7.24.4)(react-native-reanimated@3.10.1)(react-native-safe-area-context@4.10.1)(react-native@0.74.2)(react@18.3.1)(tailwindcss@3.4.3): resolution: {integrity: sha512-ZWoKQlq6XrI5DB4BdPk5ABvJQsX7zls1SQYWuYXOQB8u5QE0KH3OfOGAGRZPekTjgkhjqGO4Bf8G2JTSWAYMSg==} engines: {node: '>=18'} peerDependencies: @@ -23797,22 +26074,22 @@ packages: react-native-svg: optional: true dependencies: - '@babel/helper-module-imports': 7.24.6 + '@babel/helper-module-imports': 7.24.3 '@babel/traverse': 7.24.1 - '@babel/types': 7.24.6 + '@babel/types': 7.24.0 babel-plugin-tester: 11.0.4(@babel/core@7.24.4) lightningcss: 1.22.0 react: 18.3.1 - react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6)(@types/react@18.3.3)(react@18.3.1) - react-native-reanimated: 3.10.1(@babel/core@7.24.4)(react-native@0.74.1)(react@18.3.1) - react-native-safe-area-context: 4.10.1(react-native@0.74.1)(react@18.3.1) + react-native: 0.74.2(@babel/core@7.24.4)(@babel/preset-env@7.24.7)(@types/react@18.3.3)(react@18.3.1) + react-native-reanimated: 3.10.1(@babel/core@7.24.4)(react-native@0.74.2)(react@18.3.1) + react-native-safe-area-context: 4.10.1(react-native@0.74.2)(react@18.3.1) tailwindcss: 3.4.3 transitivePeerDependencies: - '@babel/core' - supports-color dev: false - /react-native-gesture-handler@2.16.2(react-native@0.74.1)(react@18.3.1): + /react-native-gesture-handler@2.16.2(react-native@0.74.2)(react@18.3.1): resolution: {integrity: sha512-vGFlrDKlmyI+BT+FemqVxmvO7nqxU33cgXVsn6IKAFishvlG3oV2Ds67D5nPkHMea8T+s1IcuMm0bF8ntZtAyg==} peerDependencies: react: '*' @@ -23824,7 +26101,7 @@ packages: lodash: 4.17.21 prop-types: 15.8.1 react: 18.3.1 - react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6)(@types/react@18.3.3)(react@18.3.1) + react-native: 0.74.2(@babel/core@7.24.4)(@babel/preset-env@7.24.7)(@types/react@18.3.3)(react@18.3.1) dev: false /react-native-helmet-async@2.0.4(react@18.3.1): @@ -23838,7 +26115,7 @@ packages: shallowequal: 1.1.0 dev: false - /react-native-reanimated@3.10.1(@babel/core@7.24.4)(react-native@0.74.1)(react@18.3.1): + /react-native-reanimated@3.10.1(@babel/core@7.24.4)(react-native@0.74.2)(react@18.3.1): resolution: {integrity: sha512-sfxg6vYphrDc/g4jf/7iJ7NRi+26z2+BszPmvmk0Vnrz6FL7HYljJqTf531F1x6tFmsf+FEAmuCtTUIXFLVo9w==} peerDependencies: '@babel/core': ^7.0.0-0 @@ -23846,29 +26123,31 @@ packages: react-native: '*' dependencies: '@babel/core': 7.24.4 - '@babel/plugin-transform-arrow-functions': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-nullish-coalescing-operator': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-optional-chaining': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-shorthand-properties': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-transform-template-literals': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-optional-chaining': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.24.4) '@babel/preset-typescript': 7.24.1(@babel/core@7.24.4) convert-source-map: 2.0.0 invariant: 2.2.4 react: 18.3.1 - react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6)(@types/react@18.3.3)(react@18.3.1) + react-native: 0.74.2(@babel/core@7.24.4)(@babel/preset-env@7.24.7)(@types/react@18.3.3)(react@18.3.1) + transitivePeerDependencies: + - supports-color dev: false - /react-native-safe-area-context@4.10.1(react-native@0.74.1)(react@18.3.1): + /react-native-safe-area-context@4.10.1(react-native@0.74.2)(react@18.3.1): resolution: {integrity: sha512-w8tCuowDorUkPoWPXmhqosovBr33YsukkwYCDERZFHAxIkx6qBadYxfeoaJ91nCQKjkNzGrK5qhoNOeSIcYSpA==} peerDependencies: react: '*' react-native: '*' dependencies: react: 18.3.1 - react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6)(@types/react@18.3.3)(react@18.3.1) + react-native: 0.74.2(@babel/core@7.24.4)(@babel/preset-env@7.24.7)(@types/react@18.3.3)(react@18.3.1) dev: false - /react-native-screens@3.31.1(react-native@0.74.1)(react@18.3.1): + /react-native-screens@3.31.1(react-native@0.74.2)(react@18.3.1): resolution: {integrity: sha512-8fRW362pfZ9y4rS8KY5P3DFScrmwo/vu1RrRMMx0PNHbeC9TLq0Kw1ubD83591yz64gLNHFLTVkTJmWeWCXKtQ==} peerDependencies: react: '*' @@ -23876,7 +26155,7 @@ packages: dependencies: react: 18.3.1 react-freeze: 1.0.4(react@18.3.1) - react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6)(@types/react@18.3.3)(react@18.3.1) + react-native: 0.74.2(@babel/core@7.24.4)(@babel/preset-env@7.24.7)(@types/react@18.3.3)(react@18.3.1) warn-once: 0.1.1 dev: false @@ -23887,7 +26166,7 @@ packages: react-dom: ^18.0.0 dependencies: '@babel/runtime': 7.24.4 - '@react-native/normalize-colors': 0.74.83 + '@react-native/normalize-colors': 0.74.84 fbjs: 3.0.5 inline-style-prefixer: 6.0.4 memoize-one: 6.0.0 @@ -23900,8 +26179,8 @@ packages: - encoding dev: false - /react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6)(@types/react@18.3.3)(react@18.3.1): - resolution: {integrity: sha512-0H2XpmghwOtfPpM2LKqHIN7gxy+7G/r1hwJHKLV6uoyXGC/gCojRtoo5NqyKrWpFC8cqyT6wTYCLuG7CxEKilg==} + /react-native@0.74.2(@babel/core@7.24.4)(@babel/preset-env@7.24.7)(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-EBMBjPPL4/GjHMP4NqsZabT3gI5WU9cSmduABGAGrd8uIcmTZ5F2Ng9k6gFmRm7n8e8CULxDNu98ZpQfBjl7Bw==} engines: {node: '>=18'} hasBin: true peerDependencies: @@ -23912,16 +26191,16 @@ packages: optional: true dependencies: '@jest/create-cache-key-function': 29.7.0 - '@react-native-community/cli': 13.6.6 - '@react-native-community/cli-platform-android': 13.6.6 - '@react-native-community/cli-platform-ios': 13.6.6 - '@react-native/assets-registry': 0.74.83 - '@react-native/codegen': 0.74.83(@babel/preset-env@7.24.6) - '@react-native/community-cli-plugin': 0.74.83(@babel/core@7.24.4)(@babel/preset-env@7.24.6) - '@react-native/gradle-plugin': 0.74.83 - '@react-native/js-polyfills': 0.74.83 - '@react-native/normalize-colors': 0.74.83 - '@react-native/virtualized-lists': 0.74.83(@types/react@18.3.3)(react-native@0.74.1)(react@18.3.1) + '@react-native-community/cli': 13.6.8 + '@react-native-community/cli-platform-android': 13.6.8 + '@react-native-community/cli-platform-ios': 13.6.8 + '@react-native/assets-registry': 0.74.84 + '@react-native/codegen': 0.74.84(@babel/preset-env@7.24.7) + '@react-native/community-cli-plugin': 0.74.84(@babel/core@7.24.4)(@babel/preset-env@7.24.7) + '@react-native/gradle-plugin': 0.74.84 + '@react-native/js-polyfills': 0.74.84 + '@react-native/normalize-colors': 0.74.84 + '@react-native/virtualized-lists': 0.74.84(@types/react@18.3.3)(react-native@0.74.2)(react@18.3.1) '@types/react': 18.3.3 abort-controller: 3.0.0 anser: 1.4.10 @@ -23942,13 +26221,13 @@ packages: promise: 8.3.0 react: 18.3.1 react-devtools-core: 5.2.0 - react-refresh: 0.14.2 + react-refresh: 0.14.0 react-shallow-renderer: 16.15.0(react@18.3.1) regenerator-runtime: 0.13.11 scheduler: 0.24.0-canary-efb381bbf-20230505 stacktrace-parser: 0.1.10 whatwg-fetch: 3.6.20 - ws: 6.2.2 + ws: 6.2.3 yargs: 17.7.2 transitivePeerDependencies: - '@babel/core' @@ -23958,6 +26237,10 @@ packages: - supports-color - utf-8-validate + /react-refresh@0.14.0: + resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} + engines: {node: '>=0.10.0'} + /react-refresh@0.14.2: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} @@ -24059,6 +26342,22 @@ packages: dependencies: pify: 2.3.0 + /read-package-json-fast@3.0.2: + resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + json-parse-even-better-errors: 3.0.0 + npm-normalize-package-bin: 3.0.1 + + /read-package-json@7.0.0: + resolution: {integrity: sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg==} + engines: {node: ^16.14.0 || >=18.0.0} + dependencies: + glob: 10.3.12 + json-parse-even-better-errors: 3.0.0 + normalize-package-data: 6.0.0 + npm-normalize-package-bin: 3.0.1 + /read-pkg-up@7.0.1: resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} engines: {node: '>=8'} @@ -24159,7 +26458,7 @@ packages: tslib: 2.6.2 dev: false - /recyclerlistview@4.2.0(react-native@0.74.1)(react@18.3.1): + /recyclerlistview@4.2.0(react-native@0.74.2)(react@18.3.1): resolution: {integrity: sha512-uuBCi0c+ggqHKwrzPX4Z/mJOzsBbjZEAwGGmlwpD/sD7raXixdAbdJ6BTcAmuWG50Cg4ru9p12M94Njwhr/27A==} peerDependencies: react: '>= 15.2.1' @@ -24168,7 +26467,7 @@ packages: lodash.debounce: 4.0.8 prop-types: 15.8.1 react: 18.3.1 - react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6)(@types/react@18.3.3)(react@18.3.1) + react-native: 0.74.2(@babel/core@7.24.4)(@babel/preset-env@7.24.7)(@types/react@18.3.3)(react@18.3.1) ts-object-utils: 0.0.5 dev: false @@ -24222,6 +26521,14 @@ packages: dependencies: '@babel/runtime': 7.24.4 + /regexp.prototype.flags@1.5.0: + resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + functions-have-names: 1.2.3 + /regexp.prototype.flags@1.5.2: resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} engines: {node: '>= 0.4'} @@ -24532,6 +26839,14 @@ packages: resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} engines: {node: '>=10'} + /resolve@1.22.4: + resolution: {integrity: sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==} + hasBin: true + dependencies: + is-core-module: 2.13.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + /resolve@1.22.8: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true @@ -24549,7 +26864,7 @@ packages: resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} hasBin: true dependencies: - is-core-module: 2.13.1 + is-core-module: 2.13.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -24656,7 +26971,6 @@ packages: /rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true dependencies: glob: 7.2.3 @@ -24676,7 +26990,7 @@ packages: rollup: 3.29.4 typescript: 5.5.2 optionalDependencies: - '@babel/code-frame': 7.24.6 + '@babel/code-frame': 7.24.2 dev: true /rollup-plugin-dts@6.1.0(rollup@4.18.0)(typescript@5.5.2): @@ -24690,7 +27004,7 @@ packages: rollup: 4.18.0 typescript: 5.5.2 optionalDependencies: - '@babel/code-frame': 7.24.6 + '@babel/code-frame': 7.24.2 dev: true /rollup-plugin-inject@3.0.2: @@ -24708,7 +27022,7 @@ packages: rollup-plugin-inject: 3.0.2 dev: true - /rollup-plugin-swc3@0.11.1(@swc/core@1.5.29)(rollup@4.18.0): + /rollup-plugin-swc3@0.11.1(@swc/core@1.6.5)(rollup@4.18.0): resolution: {integrity: sha512-6j8kWS6HM63P9pc6O5UtfhZkW9vVmkYfoEmZxR3Nua6KQRDCM3a6RrskqiGeiCnJ9s1W+tAmlVYz80G9yy2/Kg==} engines: {node: '>=12'} peerDependencies: @@ -24717,7 +27031,7 @@ packages: dependencies: '@fastify/deepmerge': 1.3.0 '@rollup/pluginutils': 5.1.0(rollup@4.18.0) - '@swc/core': 1.5.29(@swc/helpers@0.5.11) + '@swc/core': 1.6.5(@swc/helpers@0.5.11) get-tsconfig: 4.7.3 rollup: 4.18.0 rollup-preserve-directives: 1.1.1(rollup@4.18.0) @@ -24879,6 +27193,15 @@ packages: dependencies: mri: 1.2.0 + /safe-array-concat@1.0.0: + resolution: {integrity: sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + isarray: 2.0.5 + /safe-array-concat@1.1.2: resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} engines: {node: '>=0.4'} @@ -24899,6 +27222,13 @@ packages: requiresBuild: true optional: true + /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 + /safe-regex-test@1.0.3: resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} engines: {node: '>= 0.4'} @@ -24957,6 +27287,10 @@ packages: compute-scroll-into-view: 3.0.3 dev: false + /scule@1.0.0: + resolution: {integrity: sha512-4AsO/FrViE/iDNEPaAQlb77tf0csuq27EsVpy6ett584EcRTp6pTDLoGWVxCD77y5iU5FauOvhsI4o1APwPoSQ==} + dev: true + /scule@1.3.0: resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} @@ -25015,10 +27349,19 @@ packages: dependencies: lru-cache: 6.0.0 - /semver@7.6.2: - resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} engines: {node: '>=10'} hasBin: true + dependencies: + lru-cache: 6.0.0 /send@0.18.0: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} @@ -25136,7 +27479,7 @@ packages: detect-libc: 2.0.2 node-addon-api: 6.1.0 prebuild-install: 7.1.2 - semver: 7.6.2 + semver: 7.6.0 simple-get: 4.0.1 tar-fs: 3.0.5 tunnel-agent: 0.6.0 @@ -25179,11 +27522,6 @@ packages: resolution: {integrity: sha512-9aNdQy/etMXctnPzsje1h1XIGm9YfRcSksKOGqZWXA/qP9G18/8fpz5Bjpma8bOgz3tqIpjERAd6/lLjFyzoww==} dependencies: '@shikijs/core': 1.3.0 - - /shiki@1.5.2: - resolution: {integrity: sha512-fpPbuSaatinmdGijE7VYUD3hxLozR3ZZ+iAx8Iy2X6REmJGyF5hQl94SgmiUNTospq346nXUVZx0035dyGvIVw==} - dependencies: - '@shikijs/core': 1.5.2 dev: false /shikiji-core@0.9.19: @@ -25196,6 +27534,13 @@ packages: shikiji-core: 0.9.19 dev: false + /side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + object-inspect: 1.12.3 + /side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} engines: {node: '>= 0.4'} @@ -25311,7 +27656,7 @@ packages: engines: {node: '>=6'} hasBin: true dependencies: - array.prototype.flat: 1.3.2 + array.prototype.flat: 1.3.1 breakword: 1.0.6 grapheme-splitter: 1.0.4 strip-ansi: 6.0.1 @@ -25366,7 +27711,7 @@ packages: /solid-js@1.8.16: resolution: {integrity: sha512-rja94MNU9flF3qQRLNsu60QHKBDKBkVE1DldJZPIfn2ypIn3NV2WpSbGTQIvsyGPBo+9E2IMjwqnqpbgfWuzeg==} dependencies: - csstype: 3.1.3 + csstype: 3.1.2 seroval: 1.0.5 seroval-plugins: 1.0.5(seroval@1.0.5) @@ -25376,8 +27721,8 @@ packages: solid-js: ^1.3 dependencies: '@babel/generator': 7.24.4 - '@babel/helper-module-imports': 7.24.6 - '@babel/types': 7.24.6 + '@babel/helper-module-imports': 7.24.3 + '@babel/types': 7.24.0 solid-js: 1.8.16 dev: false @@ -25422,6 +27767,10 @@ packages: is-plain-obj: 4.1.0 dev: false + /source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + /source-map-js@1.2.0: resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} @@ -25516,7 +27865,7 @@ packages: resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - minipass: 7.0.4 + minipass: 7.0.3 /stack-utils@2.0.6: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} @@ -25659,6 +28008,14 @@ packages: set-function-name: 2.0.2 side-channel: 1.0.6 + /string.prototype.trim@1.2.7: + resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + /string.prototype.trim@1.2.9: resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} engines: {node: '>= 0.4'} @@ -25668,6 +28025,13 @@ packages: es-abstract: 1.23.3 es-object-atoms: 1.0.0 + /string.prototype.trimend@1.0.6: + resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + /string.prototype.trimend@1.0.8: resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} dependencies: @@ -25675,6 +28039,13 @@ packages: define-properties: 1.2.1 es-object-atoms: 1.0.0 + /string.prototype.trimstart@1.0.6: + resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + /string.prototype.trimstart@1.0.8: resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} engines: {node: '>= 0.4'} @@ -25805,6 +28176,17 @@ packages: client-only: 0.0.1 react: 18.3.1 + /stylehacks@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.23.0 + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + dev: true + /stylehacks@6.1.1(postcss@8.4.38): resolution: {integrity: sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==} engines: {node: ^14 || ^16 || >=18.0} @@ -25828,7 +28210,7 @@ packages: engines: {node: '>=8'} hasBin: true dependencies: - '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/gen-mapping': 0.3.3 commander: 4.1.1 glob: 7.1.6 lines-and-columns: 1.2.4 @@ -25898,9 +28280,9 @@ packages: peerDependencies: svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 dependencies: - '@jridgewell/trace-mapping': 0.3.25 - chokidar: 3.6.0 - fast-glob: 3.3.2 + '@jridgewell/trace-mapping': 0.3.19 + chokidar: 3.5.3 + fast-glob: 3.3.1 import-fresh: 3.3.0 picocolors: 1.0.0 sade: 1.8.1 @@ -26010,11 +28392,11 @@ packages: resolution: {integrity: sha512-j9KJSccHgLeRERPlhMKrCXpk2TqL2m5Z+k+OBTQhZOhIdCCd3WfqV+ylPWeipEwq17P/ekiSFWwrVQv93i3bsg==} engines: {node: '>=16'} dependencies: - '@ampproject/remapping': 2.3.0 + '@ampproject/remapping': 2.2.1 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.25 - '@types/estree': 1.0.5 - acorn: 8.11.3 + '@jridgewell/trace-mapping': 0.3.19 + '@types/estree': 1.0.1 + acorn: 8.10.0 aria-query: 5.3.0 axobject-query: 4.0.0 code-red: 1.0.4 @@ -26029,6 +28411,19 @@ packages: /svg-tags@1.0.0: resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} + /svgo@3.0.2: + resolution: {integrity: sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 5.1.0 + css-tree: 2.3.1 + csso: 5.0.5 + picocolors: 1.0.0 + dev: true + /svgo@3.2.0: resolution: {integrity: sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==} engines: {node: '>=14.0.0'} @@ -26088,10 +28483,10 @@ packages: dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 - chokidar: 3.6.0 + chokidar: 3.5.3 didyoumean: 1.2.2 dlv: 1.1.3 - fast-glob: 3.3.2 + fast-glob: 3.3.1 glob-parent: 6.0.2 is-glob: 4.0.3 jiti: 1.21.0 @@ -26105,8 +28500,8 @@ packages: postcss-js: 4.0.1(postcss@8.4.38) postcss-load-config: 4.0.1(postcss@8.4.38) postcss-nested: 6.0.1(postcss@8.4.38) - postcss-selector-parser: 6.0.16 - resolve: 1.22.8 + postcss-selector-parser: 6.0.13 + resolve: 1.22.4 sucrase: 3.34.0 transitivePeerDependencies: - ts-node @@ -26162,6 +28557,17 @@ packages: fast-fifo: 1.3.2 streamx: 2.16.1 + /tar@6.1.15: + resolution: {integrity: sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==} + engines: {node: '>=10'} + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + /tar@6.2.1: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} @@ -26530,11 +28936,11 @@ packages: typescript: optional: true dependencies: - bundle-require: 4.0.1(esbuild@0.19.12) + bundle-require: 4.0.1(esbuild@0.19.2) cac: 6.7.14 - chokidar: 3.6.0 + chokidar: 3.5.3 debug: 4.3.4 - esbuild: 0.19.12 + esbuild: 0.19.2 execa: 5.1.1 globby: 11.1.0 joycon: 3.1.1 @@ -26609,68 +29015,68 @@ packages: engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} dev: false - /turbo-darwin-64@2.0.2: - resolution: {integrity: sha512-5eqlzc/lm9G4jM1bQyuKxdLS7kPotHL31MtiCepJKEnONYeJ36NRITsBiHNsQC2/qNGfYwjpxxO+RC/Hs6Y3zw==} + /turbo-darwin-64@2.0.5: + resolution: {integrity: sha512-t/9XpWYIjOhIHUdwiR47SYBGYHkR1zWLxTkTNKZwCSn8BN0cfjPZ1BR6kcwYGxLGBhtl5GBf6A29nq2K7iwAjg==} cpu: [x64] os: [darwin] requiresBuild: true dev: false optional: true - /turbo-darwin-arm64@2.0.2: - resolution: {integrity: sha512-Qh6cU8f+A4mwFaU0/HCKu9Zh67A+XHOh8AX9i+lvwfyl8rxCA+ToUQQo5OCMzV/XwJ6tLoLJH0c0GMsaESK4Tg==} + /turbo-darwin-arm64@2.0.5: + resolution: {integrity: sha512-//5y4RJvnal8CttOLBwlaBqblcQb1qTlIxLN+I8O3E3rPuvHOupNKB9ZJxYIQ8oWf8ns8Ec8cxQ0GSBLTJIMtA==} cpu: [arm64] os: [darwin] requiresBuild: true dev: false optional: true - /turbo-linux-64@2.0.2: - resolution: {integrity: sha512-86YP2P3Kx9zhbKU5WtCXju2H2pooiOPuuw+6OAfXlwc2Omg/55NCZf3WquMFQMPxvrWCdWLruDtY4TD8m9t1EQ==} + /turbo-linux-64@2.0.5: + resolution: {integrity: sha512-LDtEDU2Gm8p3lKu//aHXZFRKUCVu68BNF9LQ+HmiCKFpNyK7khpMTxIAAUhDqt+AzlrbxtrxcCpCJaWg1JDjHg==} cpu: [x64] os: [linux] requiresBuild: true dev: false optional: true - /turbo-linux-arm64@2.0.2: - resolution: {integrity: sha512-jTVyaTo9rPMGDcu6wsS6F72lSeVibWmGgcKTVQTxl5+H73hknyQFFaEqwg8y7VU+soySte7szQkeBpYRTGzkRQ==} + /turbo-linux-arm64@2.0.5: + resolution: {integrity: sha512-84wdrzntErBNxkHcwHxiTZdaginQAxGPnwLTyZj8lpUYI7okPoxy3jKpUeMHN3adm3iDedl/x0mYSIvVVkmOiA==} cpu: [arm64] os: [linux] requiresBuild: true dev: false optional: true - /turbo-stream@2.1.0: - resolution: {integrity: sha512-muUMPf3BT7N6PeJJn91Wf+8oXEkwktNJZ9kBjIm0QzhFYPGJ7xqgQMblRQcscysb2v7VhY9AB+bOQbHaIUXyGA==} + /turbo-stream@2.2.0: + resolution: {integrity: sha512-FKFg7A0To1VU4CH9YmSMON5QphK0BXjSoiC7D9yMh+mEEbXLUP9qJ4hEt1qcjKtzncs1OpcnjZO8NgrlVbZH+g==} dev: false - /turbo-windows-64@2.0.2: - resolution: {integrity: sha512-vNRmFZyGPgLdr943hrn0dPY00DtYmOBoBoj6M72ftnBU7dPK7OFMF95cVXr0I6XssRsYSz+xIwyM98xt+2e4hQ==} + /turbo-windows-64@2.0.5: + resolution: {integrity: sha512-SgaFZ0VW6kHCJogLNuLEleAauAJx2Y48wazZGVRmBpgSUS2AylXesaBMhJaEScYqLz7mIRn6KOgwM8D4wTxI9g==} cpu: [x64] os: [win32] requiresBuild: true dev: false optional: true - /turbo-windows-arm64@2.0.2: - resolution: {integrity: sha512-1O8gP6OvdvW5FQytURVhU0U83h9cEq2vD0JpTXK4ueOsYfwV762LXszB0/20S3arw4UzeNU0Q6SHIwRgW/K8lA==} + /turbo-windows-arm64@2.0.5: + resolution: {integrity: sha512-foUxLOZoru0IRNIxm53fkfM4ubas9P0nTFjIcHtd+E8YHeogt8GqTweNre2e6ri1EHDo71emmuQgpuoFCOXZMg==} cpu: [arm64] os: [win32] requiresBuild: true dev: false optional: true - /turbo@2.0.2: - resolution: {integrity: sha512-Uty6r3QIX7XvfsJbdj2q6j1lNbZ/heN4U1bsOWsUk9AJGV4bPCHccRsBBRsQ01Bqhnw0M9Q4UzKXdL2n/XrnyA==} + /turbo@2.0.5: + resolution: {integrity: sha512-+6+hcWr4nwuESlKqUc626HMOTd3QT8hUOc9QM45PP1d4nErGkNOgExm4Pcov3in7LTuadMnB0gcd/BuzkEDIPw==} hasBin: true optionalDependencies: - turbo-darwin-64: 2.0.2 - turbo-darwin-arm64: 2.0.2 - turbo-linux-64: 2.0.2 - turbo-linux-arm64: 2.0.2 - turbo-windows-64: 2.0.2 - turbo-windows-arm64: 2.0.2 + turbo-darwin-64: 2.0.5 + turbo-darwin-arm64: 2.0.5 + turbo-linux-64: 2.0.5 + turbo-linux-arm64: 2.0.5 + turbo-windows-64: 2.0.5 + turbo-windows-arm64: 2.0.5 dev: false /type-check@0.4.0: @@ -26747,6 +29153,14 @@ packages: resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} 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 + /typed-array-buffer@1.0.2: resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} engines: {node: '>= 0.4'} @@ -26755,6 +29169,15 @@ packages: es-errors: 1.3.0 is-typed-array: 1.1.13 + /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 + /typed-array-byte-length@1.0.1: resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} engines: {node: '>= 0.4'} @@ -26765,6 +29188,16 @@ packages: has-proto: 1.0.3 is-typed-array: 1.1.13 + /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 + /typed-array-byte-offset@1.0.2: resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} engines: {node: '>= 0.4'} @@ -26776,6 +29209,13 @@ packages: has-proto: 1.0.3 is-typed-array: 1.1.13 + /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 + /typed-array-length@1.0.6: resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} engines: {node: '>= 0.4'} @@ -26798,8 +29238,8 @@ packages: typed-array-buffer: 1.0.2 typed-array-byte-offset: 1.0.2 - /typescript-eslint@7.9.0(eslint@8.57.0)(typescript@5.5.2): - resolution: {integrity: sha512-7iTn9c10teHHCys5Ud/yaJntXZrjt3h2mrx3feJGBOLgQkF3TB1X89Xs3aVQ/GgdXRAXpk2bPTdpRwHP4YkUow==} + /typescript-eslint@7.10.0(eslint@8.57.0)(typescript@5.5.2): + resolution: {integrity: sha512-thO8nyqptXdfWHQrMJJiJyftpW8aLmwRNs11xA8pSrXneoclFPstQZqXvDWuH1WNL4CHffqHvYUeCHTit6yfhQ==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -26808,9 +29248,9 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 7.9.0(@typescript-eslint/parser@7.9.0)(eslint@8.57.0)(typescript@5.5.2) - '@typescript-eslint/parser': 7.9.0(eslint@8.57.0)(typescript@5.5.2) - '@typescript-eslint/utils': 7.9.0(eslint@8.57.0)(typescript@5.5.2) + '@typescript-eslint/eslint-plugin': 7.10.0(@typescript-eslint/parser@7.10.0)(eslint@8.57.0)(typescript@5.5.2) + '@typescript-eslint/parser': 7.10.0(eslint@8.57.0)(typescript@5.5.2) + '@typescript-eslint/utils': 7.10.0(eslint@8.57.0)(typescript@5.5.2) eslint: 8.57.0 typescript: 5.5.2 transitivePeerDependencies: @@ -26838,6 +29278,10 @@ packages: /ufo@1.5.3: resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} + /ultrahtml@1.3.0: + resolution: {integrity: sha512-xmXvE8tC8t4PVqy0/g1fe7H9USY/Brr425q4dD/0QbQMQit7siCtb06+SCqE4GfU24nwsZz8Th1g7L7mm1lL5g==} + dev: false + /ultrahtml@1.5.3: resolution: {integrity: sha512-GykOvZwgDWZlTQMtp5jrD4BVL+gNn2NVlVafjcFUJ7taY20tqYdwdoWBFy6GBJsNTZe1GkGPkSl5knQAjtgceg==} @@ -26858,31 +29302,31 @@ packages: typescript: optional: true dependencies: - '@rollup/plugin-alias': 5.1.0(rollup@3.29.4) - '@rollup/plugin-commonjs': 25.0.7(rollup@3.29.4) - '@rollup/plugin-json': 6.1.0(rollup@3.29.4) + '@rollup/plugin-alias': 5.0.0(rollup@3.29.4) + '@rollup/plugin-commonjs': 25.0.4(rollup@3.29.4) + '@rollup/plugin-json': 6.0.0(rollup@3.29.4) '@rollup/plugin-node-resolve': 15.2.3(rollup@3.29.4) - '@rollup/plugin-replace': 5.0.5(rollup@3.29.4) - '@rollup/pluginutils': 5.1.0(rollup@3.29.4) + '@rollup/plugin-replace': 5.0.2(rollup@3.29.4) + '@rollup/pluginutils': 5.0.3(rollup@3.29.4) chalk: 5.3.0 citty: 0.1.6 consola: 3.2.3 defu: 6.1.4 - esbuild: 0.19.12 + esbuild: 0.19.2 globby: 13.2.2 hookable: 5.5.3 jiti: 1.21.0 magic-string: 0.30.10 mkdist: 1.4.0(typescript@5.5.2) - mlly: 1.7.0 - pathe: 1.1.2 - pkg-types: 1.1.1 + mlly: 1.6.1 + pathe: 1.1.1 + pkg-types: 1.0.3 pretty-bytes: 6.1.1 rollup: 3.29.4 rollup-plugin-dts: 6.1.0(rollup@3.29.4)(typescript@5.5.2) - scule: 1.3.0 + scule: 1.0.0 typescript: 5.5.2 - untyped: 1.4.2 + untyped: 1.4.0 transitivePeerDependencies: - sass - supports-color @@ -26891,7 +29335,7 @@ packages: /unconfig@0.3.13: resolution: {integrity: sha512-N9Ph5NC4+sqtcOjPfHrRcHekBCadCXWTBzp2VYYbySOHW0PfD9XLCeXshTXjkPYwLrBr9AtSeU0CZmkYECJhng==} dependencies: - '@antfu/utils': 0.7.8 + '@antfu/utils': 0.7.7 defu: 6.1.4 jiti: 1.21.0 @@ -26923,8 +29367,8 @@ packages: resolution: {integrity: sha512-esJ/x2QU5boTG6thdA0o4qP3cv/oPx9mcQGcp8TAHI+ZBTa0EvM9Jiyp0ILdPGLGxs5HATTKrJqAK+YhrSFicg==} engines: {node: '>=18.17'} - /undici@6.19.0: - resolution: {integrity: sha512-9gGwbSLgYMjp4r6M5P9bhqhx1E+RyUIHqZE0r7BmrRoqroJUG6xlVu5TXH9DnwmCPLkcaVNrcYtxUE9d3InnyQ==} + /undici@6.19.2: + resolution: {integrity: sha512-JfjKqIauur3Q6biAtHJ564e3bWa8VvT+7cSiOJHFbX4Erv6CLGDpg8z+Fmg/1OI/47RA+GI2QZaF48SSaLvyBA==} engines: {node: '>=18.17'} dev: false @@ -26935,7 +29379,7 @@ packages: defu: 6.1.4 mime: 3.0.0 node-fetch-native: 1.6.4 - pathe: 1.1.2 + pathe: 1.1.1 /unhead@1.9.7: resolution: {integrity: sha512-Kv7aU5l41qiq36t9qMks8Pgsj7adaTBm9aDS6USlmodTXioeqlJ5vEu9DI+8ZZPwRlmof3aDlo1kubyaXdSNmQ==} @@ -27006,9 +29450,9 @@ packages: fast-glob: 3.3.2 local-pkg: 0.5.0 magic-string: 0.30.10 - mlly: 1.7.0 + mlly: 1.6.1 pathe: 1.1.2 - pkg-types: 1.1.1 + pkg-types: 1.0.3 scule: 1.3.0 strip-literal: 1.3.0 unplugin: 1.10.1 @@ -27025,9 +29469,9 @@ packages: fast-glob: 3.3.2 local-pkg: 0.5.0 magic-string: 0.30.10 - mlly: 1.7.0 + mlly: 1.6.1 pathe: 1.1.2 - pkg-types: 1.1.1 + pkg-types: 1.0.3 scule: 1.3.0 strip-literal: 1.3.0 unplugin: 1.10.1 @@ -27044,9 +29488,9 @@ packages: fast-glob: 3.3.2 local-pkg: 0.5.0 magic-string: 0.30.10 - mlly: 1.7.0 + mlly: 1.6.1 pathe: 1.1.2 - pkg-types: 1.1.1 + pkg-types: 1.0.3 scule: 1.3.0 strip-literal: 1.3.0 unplugin: 1.10.1 @@ -27259,7 +29703,46 @@ packages: '@unocss/transformer-directives': 0.59.4 '@unocss/transformer-variant-group': 0.59.4 '@unocss/vite': 0.59.4(rollup@3.29.4)(vite@5.2.10) - vite: 5.2.10(@types/node@20.14.0) + vite: 5.2.10(@types/node@20.14.8) + transitivePeerDependencies: + - postcss + - rollup + - supports-color + dev: true + + /unocss@0.59.4(postcss@8.4.38)(vite@5.2.10): + resolution: {integrity: sha512-QmCVjRObvVu/gsGrJGVt0NnrdhFFn314BUZn2WQyXV9rIvHLRmG5bIu0j5vibJkj7ZhFchTrnTM1pTFXP1xt5g==} + engines: {node: '>=14'} + peerDependencies: + '@unocss/webpack': 0.59.4 + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 + peerDependenciesMeta: + '@unocss/webpack': + optional: true + vite: + optional: true + dependencies: + '@unocss/astro': 0.59.4(vite@5.2.10) + '@unocss/cli': 0.59.4(rollup@3.29.4) + '@unocss/core': 0.59.4 + '@unocss/extractor-arbitrary-variants': 0.59.4 + '@unocss/postcss': 0.59.4(postcss@8.4.38) + '@unocss/preset-attributify': 0.59.4 + '@unocss/preset-icons': 0.59.4 + '@unocss/preset-mini': 0.59.4 + '@unocss/preset-tagify': 0.59.4 + '@unocss/preset-typography': 0.59.4 + '@unocss/preset-uno': 0.59.4 + '@unocss/preset-web-fonts': 0.59.4 + '@unocss/preset-wind': 0.59.4 + '@unocss/reset': 0.59.4 + '@unocss/transformer-attributify-jsx': 0.59.4 + '@unocss/transformer-attributify-jsx-babel': 0.59.4 + '@unocss/transformer-compile-class': 0.59.4 + '@unocss/transformer-directives': 0.59.4 + '@unocss/transformer-variant-group': 0.59.4 + '@unocss/vite': 0.59.4(rollup@3.29.4)(vite@5.2.10) + vite: 5.2.10(@types/node@20.14.8) transitivePeerDependencies: - postcss - rollup @@ -27269,7 +29752,7 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - /unplugin-vue-router@0.7.0(rollup@3.29.4)(vue-router@4.3.2)(vue@3.4.25): + /unplugin-vue-router@0.7.0(rollup@3.29.4)(vue-router@4.3.2)(vue@3.4.24): resolution: {integrity: sha512-ddRreGq0t5vlSB7OMy4e4cfU1w2AwBQCwmvW3oP/0IHQiokzbx4hd3TpwBu3eIAFVuhX2cwNQwp1U32UybTVCw==} peerDependencies: vue-router: ^4.1.0 @@ -27277,26 +29760,26 @@ packages: vue-router: optional: true dependencies: - '@babel/types': 7.24.6 + '@babel/types': 7.24.0 '@rollup/pluginutils': 5.1.0(rollup@3.29.4) - '@vue-macros/common': 1.10.2(rollup@3.29.4)(vue@3.4.25) + '@vue-macros/common': 1.10.2(rollup@3.29.4)(vue@3.4.24) ast-walker-scope: 0.5.0(rollup@3.29.4) chokidar: 3.6.0 - fast-glob: 3.3.2 + fast-glob: 3.3.1 json5: 2.2.3 local-pkg: 0.4.3 - mlly: 1.7.0 + mlly: 1.6.1 pathe: 1.1.2 scule: 1.3.0 unplugin: 1.10.1 - vue-router: 4.3.2(vue@3.4.25) + vue-router: 4.3.2(vue@3.4.24) yaml: 2.4.1 transitivePeerDependencies: - rollup - vue dev: true - /unplugin-vue-router@0.7.0(rollup@4.18.0)(vue-router@4.3.2)(vue@3.4.25): + /unplugin-vue-router@0.7.0(rollup@4.18.0)(vue-router@4.3.2)(vue@3.4.24): resolution: {integrity: sha512-ddRreGq0t5vlSB7OMy4e4cfU1w2AwBQCwmvW3oP/0IHQiokzbx4hd3TpwBu3eIAFVuhX2cwNQwp1U32UybTVCw==} peerDependencies: vue-router: ^4.1.0 @@ -27304,26 +29787,26 @@ packages: vue-router: optional: true dependencies: - '@babel/types': 7.24.6 + '@babel/types': 7.24.0 '@rollup/pluginutils': 5.1.0(rollup@4.18.0) - '@vue-macros/common': 1.10.2(rollup@4.18.0)(vue@3.4.25) + '@vue-macros/common': 1.10.2(rollup@4.18.0)(vue@3.4.24) ast-walker-scope: 0.5.0(rollup@4.18.0) chokidar: 3.6.0 - fast-glob: 3.3.2 + fast-glob: 3.3.1 json5: 2.2.3 local-pkg: 0.4.3 - mlly: 1.7.0 + mlly: 1.6.1 pathe: 1.1.2 scule: 1.3.0 unplugin: 1.10.1 - vue-router: 4.3.2(vue@3.4.25) + vue-router: 4.3.2(vue@3.4.24) yaml: 2.4.1 transitivePeerDependencies: - rollup - vue dev: true - /unplugin-vue-router@0.7.0(vue-router@4.3.2)(vue@3.4.25): + /unplugin-vue-router@0.7.0(vue-router@4.3.2)(vue@3.4.24): resolution: {integrity: sha512-ddRreGq0t5vlSB7OMy4e4cfU1w2AwBQCwmvW3oP/0IHQiokzbx4hd3TpwBu3eIAFVuhX2cwNQwp1U32UybTVCw==} peerDependencies: vue-router: ^4.1.0 @@ -27331,19 +29814,19 @@ packages: vue-router: optional: true dependencies: - '@babel/types': 7.24.6 + '@babel/types': 7.24.0 '@rollup/pluginutils': 5.1.0(rollup@3.29.4) - '@vue-macros/common': 1.10.2(rollup@3.29.4)(vue@3.4.25) + '@vue-macros/common': 1.10.2(rollup@3.29.4)(vue@3.4.24) ast-walker-scope: 0.5.0 chokidar: 3.6.0 - fast-glob: 3.3.2 + fast-glob: 3.3.1 json5: 2.2.3 local-pkg: 0.4.3 - mlly: 1.7.0 + mlly: 1.6.1 pathe: 1.1.2 scule: 1.3.0 unplugin: 1.10.1 - vue-router: 4.3.2(vue@3.4.25) + vue-router: 4.3.2(vue@3.4.24) yaml: 2.4.1 transitivePeerDependencies: - rollup @@ -27430,13 +29913,28 @@ packages: consola: 3.2.3 pathe: 1.1.2 + /untyped@1.4.0: + resolution: {integrity: sha512-Egkr/s4zcMTEuulcIb7dgURS6QpN7DyqQYdf+jBtiaJvQ+eRsrtWUoX84SbvQWuLkXsOjM+8sJC9u6KoMK/U7Q==} + hasBin: true + dependencies: + '@babel/core': 7.24.4 + '@babel/standalone': 7.22.10 + '@babel/types': 7.22.10 + defu: 6.1.4 + jiti: 1.21.0 + mri: 1.2.0 + scule: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: true + /untyped@1.4.2: resolution: {integrity: sha512-nC5q0DnPEPVURPhfPQLahhSTnemVtPzdx7ofiRxXpOB2SYnb3MfdU3DVGyJdS8Lx+tBWeAePO8BfU/3EgksM7Q==} hasBin: true dependencies: '@babel/core': 7.24.4 '@babel/standalone': 7.24.4 - '@babel/types': 7.24.6 + '@babel/types': 7.24.0 defu: 6.1.4 jiti: 1.21.0 mri: 1.2.0 @@ -27449,9 +29947,9 @@ packages: dependencies: knitwork: 1.1.0 magic-string: 0.30.10 - mlly: 1.7.0 + mlly: 1.6.1 pathe: 1.1.2 - pkg-types: 1.1.1 + pkg-types: 1.0.3 unplugin: 1.10.1 /update-browserslist-db@1.0.13(browserslist@4.23.0): @@ -27543,8 +30041,8 @@ packages: inherits: 2.0.4 is-arguments: 1.1.1 is-generator-function: 1.0.10 - is-typed-array: 1.1.13 - which-typed-array: 1.1.15 + is-typed-array: 1.1.12 + which-typed-array: 1.1.11 dev: false /utils-merge@1.0.1: @@ -27570,7 +30068,7 @@ packages: hasBin: true dependencies: dequal: 2.0.3 - diff: 5.2.0 + diff: 5.1.0 kleur: 4.1.5 sade: 1.8.1 dev: false @@ -27648,25 +30146,25 @@ packages: vfile-message: 4.0.2 dev: false - /vinxi@0.3.11(@types/node@20.14.0): + /vinxi@0.3.11(@types/node@20.14.8): resolution: {integrity: sha512-ASEpiwldZIsViv2/ZlO6qnRhDAwxr92nKXxMOinA+5nCY7nlaKgekaLDjTyUmFzB8DSiXVZqmHnd6OZVkn4vzw==} hasBin: true dependencies: '@babel/core': 7.24.4 - '@babel/plugin-syntax-jsx': 7.24.6(@babel/core@7.24.4) - '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.24.4) + '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.24.4) '@types/micromatch': 4.0.7 '@vinxi/listhen': 1.5.6 boxen: 7.1.1 - chokidar: 3.6.0 + chokidar: 3.5.3 citty: 0.1.6 consola: 3.2.3 crossws: 0.2.4 dax-sh: 0.39.2 defu: 6.1.4 - es-module-lexer: 1.5.0 + es-module-lexer: 1.3.0 esbuild: 0.18.20 - fast-glob: 3.3.2 + fast-glob: 3.3.1 get-port-please: 3.1.2 h3: 1.11.1 hookable: 5.5.3 @@ -27675,7 +30173,7 @@ packages: nitropack: 2.9.6 node-fetch-native: 1.6.4 path-to-regexp: 6.2.1 - pathe: 1.1.2 + pathe: 1.1.1 radix3: 1.1.2 resolve: 1.22.8 serve-placeholder: 2.0.1 @@ -27684,7 +30182,7 @@ packages: unctx: 2.3.1 unenv: 1.9.0 unstorage: 1.10.2(ioredis@5.3.2) - vite: 5.2.10(@types/node@20.14.0) + vite: 5.2.10(@types/node@20.14.8) zod: 3.23.8 transitivePeerDependencies: - '@azure/app-configuration' @@ -27722,18 +30220,18 @@ packages: peerDependencies: vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 dependencies: - vite: 5.2.10(@types/node@20.14.0) + vite: 5.2.10(@types/node@20.14.8) - /vite-node@1.5.0(@types/node@20.14.0): + /vite-node@1.5.0(@types/node@20.14.8): resolution: {integrity: sha512-tV8h6gMj6vPzVCa7l+VGq9lwoJjW8Y79vst8QZZGiuRAfijU+EEWuc0kFpmndQrWhMMhet1jdSF+40KSZUqIIw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true dependencies: cac: 6.7.14 debug: 4.3.4 - pathe: 1.1.2 + pathe: 1.1.1 picocolors: 1.0.0 - vite: 5.2.10(@types/node@20.14.0) + vite: 5.2.10(@types/node@20.14.8) transitivePeerDependencies: - '@types/node' - less @@ -27775,7 +30273,7 @@ packages: vue-tsc: optional: true dependencies: - '@babel/code-frame': 7.24.6 + '@babel/code-frame': 7.24.2 ansi-escapes: 4.3.2 chalk: 4.1.2 chokidar: 3.6.0 @@ -27784,11 +30282,11 @@ packages: fast-glob: 3.3.2 fs-extra: 11.2.0 npm-run-path: 4.0.1 - semver: 7.6.2 + semver: 7.6.0 strip-ansi: 6.0.1 tiny-invariant: 1.3.1 typescript: 5.5.2 - vite: 5.2.10(@types/node@20.14.0) + vite: 5.2.10(@types/node@20.14.8) vscode-languageclient: 7.0.0 vscode-languageserver: 7.0.0 vscode-languageserver-textdocument: 1.0.8 @@ -27804,15 +30302,15 @@ packages: '@nuxt/kit': optional: true dependencies: - '@antfu/utils': 0.7.8 - '@rollup/pluginutils': 5.1.0(rollup@3.29.4) + '@antfu/utils': 0.7.6 + '@rollup/pluginutils': 5.0.3(rollup@3.29.4) debug: 4.3.4 error-stack-parser-es: 0.1.1 - fs-extra: 11.2.0 + fs-extra: 11.1.1 open: 9.1.0 picocolors: 1.0.0 sirv: 2.0.4 - vite: 4.5.3(@types/node@20.14.0) + vite: 4.5.3(@types/node@20.14.8) transitivePeerDependencies: - rollup - supports-color @@ -27828,7 +30326,7 @@ packages: '@nuxt/kit': optional: true dependencies: - '@antfu/utils': 0.7.8 + '@antfu/utils': 0.7.7 '@nuxt/kit': 3.11.2(rollup@3.29.4) '@rollup/pluginutils': 5.1.0(rollup@3.29.4) debug: 4.3.4 @@ -27838,7 +30336,7 @@ packages: perfect-debounce: 1.0.0 picocolors: 1.0.0 sirv: 2.0.4 - vite: 5.2.10(@types/node@20.14.0) + vite: 5.2.10(@types/node@20.14.8) transitivePeerDependencies: - rollup - supports-color @@ -27854,7 +30352,7 @@ packages: '@nuxt/kit': optional: true dependencies: - '@antfu/utils': 0.7.8 + '@antfu/utils': 0.7.7 '@nuxt/kit': 3.11.2(rollup@4.18.0) '@rollup/pluginutils': 5.1.0(rollup@4.18.0) debug: 4.3.4 @@ -27864,7 +30362,7 @@ packages: perfect-debounce: 1.0.0 picocolors: 1.0.0 sirv: 2.0.4 - vite: 5.2.10(@types/node@20.14.0) + vite: 5.2.10(@types/node@20.14.8) transitivePeerDependencies: - rollup - supports-color @@ -27880,7 +30378,7 @@ packages: '@nuxt/kit': optional: true dependencies: - '@antfu/utils': 0.7.8 + '@antfu/utils': 0.7.7 '@nuxt/kit': 3.11.2 '@rollup/pluginutils': 5.1.0(rollup@3.29.4) debug: 4.3.4 @@ -27890,7 +30388,7 @@ packages: perfect-debounce: 1.0.0 picocolors: 1.0.0 sirv: 2.0.4 - vite: 5.2.10(@types/node@20.14.0) + vite: 5.2.10(@types/node@20.14.8) transitivePeerDependencies: - rollup - supports-color @@ -27912,27 +30410,27 @@ packages: merge-anything: 5.1.7 solid-js: 1.8.16 solid-refresh: 0.6.3(solid-js@1.8.16) - vite: 4.5.3(@types/node@20.14.0) + vite: 4.5.3(@types/node@20.14.8) vitefu: 0.2.5(vite@4.5.3) transitivePeerDependencies: - supports-color dev: false - /vite-plugin-vue-inspector@5.1.2(vite@5.2.10): - resolution: {integrity: sha512-M+yH2LlQtVNzJAljQM+61CqDXBvHim8dU5ImGaQuwlo13tMDHue5D7IC20YwDJuWDODiYc/cZBUYspVlyPf2vQ==} + /vite-plugin-vue-inspector@4.0.2(vite@5.2.10): + resolution: {integrity: sha512-KPvLEuafPG13T7JJuQbSm5PwSxKFnVS965+MP1we2xGw9BPkkc/+LPix5MMWenpKWqtjr0ws8THrR+KuoDC8hg==} peerDependencies: vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 dependencies: '@babel/core': 7.24.4 '@babel/plugin-proposal-decorators': 7.24.1(@babel/core@7.24.4) - '@babel/plugin-syntax-import-attributes': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.24.4) '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.4) '@babel/plugin-transform-typescript': 7.24.4(@babel/core@7.24.4) '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.24.4) - '@vue/compiler-dom': 3.4.25 + '@vue/compiler-dom': 3.3.4 kolorist: 1.8.0 magic-string: 0.30.10 - vite: 5.2.10(@types/node@20.14.0) + vite: 5.2.10(@types/node@20.14.8) transitivePeerDependencies: - supports-color @@ -27952,7 +30450,7 @@ packages: - typescript dev: false - /vite@4.5.3(@types/node@20.14.0): + /vite@4.5.3(@types/node@20.14.8): resolution: {integrity: sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -27980,7 +30478,7 @@ packages: terser: optional: true dependencies: - '@types/node': 20.14.0 + '@types/node': 20.14.8 esbuild: 0.18.20 postcss: 8.4.38 rollup: 3.29.4 @@ -27988,7 +30486,7 @@ packages: fsevents: 2.3.3 dev: false - /vite@5.2.10(@types/node@20.14.0): + /vite@5.2.10(@types/node@20.14.8): resolution: {integrity: sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -28016,7 +30514,7 @@ packages: terser: optional: true dependencies: - '@types/node': 20.14.0 + '@types/node': 20.14.8 esbuild: 0.20.2 postcss: 8.4.38 rollup: 4.16.2 @@ -28031,7 +30529,7 @@ packages: vite: optional: true dependencies: - vite: 4.5.3(@types/node@20.14.0) + vite: 4.5.3(@types/node@20.14.8) dev: false /vitefu@0.2.5(vite@5.2.10): @@ -28042,7 +30540,7 @@ packages: vite: optional: true dependencies: - vite: 5.2.10(@types/node@20.14.0) + vite: 5.2.10(@types/node@20.14.8) /vitest-environment-nuxt@1.0.0(@playwright/test@1.42.1)(h3@1.11.1)(happy-dom@13.10.1)(rollup@3.29.4)(vite@5.2.10)(vitest@1.5.0)(vue-router@4.3.2)(vue@3.4.25): resolution: {integrity: sha512-AWMO9h4HdbaFdPWZw34gALFI8gbBiOpvfbyeZwHIPfh4kWg/TwElYHvYMQ61WPUlCGaS5LebfHkaI0WPyb//Iw==} @@ -28067,7 +30565,7 @@ packages: - vue-router dev: true - /vitest@1.5.0(@types/node@20.14.0)(happy-dom@13.10.1): + /vitest@1.5.0(@types/node@20.14.8)(happy-dom@13.10.1): resolution: {integrity: sha512-d8UKgR0m2kjdxDWX6911uwxout6GHS0XaGH1cksSIVVG8kRlE7G7aBw7myKQCvDI5dT4j7ZMa+l706BIORMDLw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -28092,7 +30590,7 @@ packages: jsdom: optional: true dependencies: - '@types/node': 20.14.0 + '@types/node': 20.14.8 '@vitest/expect': 1.5.0 '@vitest/runner': 1.5.0 '@vitest/snapshot': 1.5.0 @@ -28105,14 +30603,14 @@ packages: happy-dom: 13.10.1 local-pkg: 0.5.0 magic-string: 0.30.10 - pathe: 1.1.2 + pathe: 1.1.1 picocolors: 1.0.0 std-env: 3.7.0 strip-literal: 2.1.0 tinybench: 2.8.0 tinypool: 0.8.4 - vite: 5.2.10(@types/node@20.14.0) - vite-node: 1.5.0(@types/node@20.14.0) + vite: 5.2.10(@types/node@20.14.8) + vite-node: 1.5.0(@types/node@20.14.8) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -28135,7 +30633,7 @@ packages: engines: {vscode: ^1.52.0} dependencies: minimatch: 3.1.2 - semver: 7.6.2 + semver: 7.6.0 vscode-languageserver-protocol: 3.16.0 /vscode-languageserver-protocol@3.16.0: @@ -28172,6 +30670,35 @@ packages: dependencies: ufo: 1.5.3 + /vue-demi@0.14.5(vue@3.4.25): + resolution: {integrity: sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + vue: 3.4.25(typescript@5.5.2) + dev: false + + /vue-demi@0.14.7(vue@3.4.24): + resolution: {integrity: sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + vue: 3.4.24(typescript@5.5.2) + /vue-demi@0.14.7(vue@3.4.25): resolution: {integrity: sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==} engines: {node: '>=12'} @@ -28189,12 +30716,27 @@ packages: /vue-devtools-stub@0.1.0: resolution: {integrity: sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ==} + /vue-observe-visibility@2.0.0-alpha.1(vue@3.4.24): + resolution: {integrity: sha512-flFbp/gs9pZniXR6fans8smv1kDScJ8RS7rEpMjhVabiKeq7Qz3D9+eGsypncjfIyyU84saU88XZ0zjbD6Gq/g==} + peerDependencies: + vue: ^3.0.0 + dependencies: + vue: 3.4.24(typescript@5.5.2) + /vue-observe-visibility@2.0.0-alpha.1(vue@3.4.25): resolution: {integrity: sha512-flFbp/gs9pZniXR6fans8smv1kDScJ8RS7rEpMjhVabiKeq7Qz3D9+eGsypncjfIyyU84saU88XZ0zjbD6Gq/g==} peerDependencies: vue: ^3.0.0 dependencies: vue: 3.4.25(typescript@5.5.2) + dev: true + + /vue-resize@2.0.0-alpha.1(vue@3.4.24): + resolution: {integrity: sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg==} + peerDependencies: + vue: ^3.0.0 + dependencies: + vue: 3.4.24(typescript@5.5.2) /vue-resize@2.0.0-alpha.1(vue@3.4.25): resolution: {integrity: sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg==} @@ -28202,6 +30744,15 @@ packages: vue: ^3.0.0 dependencies: vue: 3.4.25(typescript@5.5.2) + dev: true + + /vue-router@4.3.2(vue@3.4.24): + resolution: {integrity: sha512-hKQJ1vDAZ5LVkKEnHhmm1f9pMiWIBNGF5AwU67PdH7TyXCj/a4hTccuUuYCAMgJK6rO/NVYtQIEN3yL8CECa7Q==} + peerDependencies: + vue: ^3.2.0 + dependencies: + '@vue/devtools-api': 6.6.1 + vue: 3.4.24(typescript@5.5.2) /vue-router@4.3.2(vue@3.4.25): resolution: {integrity: sha512-hKQJ1vDAZ5LVkKEnHhmm1f9pMiWIBNGF5AwU67PdH7TyXCj/a4hTccuUuYCAMgJK6rO/NVYtQIEN3yL8CECa7Q==} @@ -28210,6 +30761,7 @@ packages: dependencies: '@vue/devtools-api': 6.6.1 vue: 3.4.25(typescript@5.5.2) + dev: true /vue-sonner@1.1.2: resolution: {integrity: sha512-yg4f5s0a3oiiI7cNvO0Dajux1Y7s04lxww3vnQtnwQawJ3KqaKA9RIRMdI9wGTosRGIOwgYFniFRGl4+IuKPZw==} @@ -28230,10 +30782,20 @@ packages: dependencies: '@volar/typescript': 2.2.0-alpha.10 '@vue/language-core': 2.0.14(typescript@5.5.2) - semver: 7.6.2 + semver: 7.5.4 typescript: 5.5.2 dev: true + /vue-virtual-scroller@2.0.0-beta.8(vue@3.4.24): + resolution: {integrity: sha512-b8/f5NQ5nIEBRTNi6GcPItE4s7kxNHw2AIHLtDp+2QvqdTjVN0FgONwX9cr53jWRgnu+HRLPaWDOR2JPI5MTfQ==} + peerDependencies: + vue: ^3.2.0 + dependencies: + mitt: 2.1.0 + vue: 3.4.24(typescript@5.5.2) + vue-observe-visibility: 2.0.0-alpha.1(vue@3.4.24) + vue-resize: 2.0.0-alpha.1(vue@3.4.24) + /vue-virtual-scroller@2.0.0-beta.8(vue@3.4.25): resolution: {integrity: sha512-b8/f5NQ5nIEBRTNi6GcPItE4s7kxNHw2AIHLtDp+2QvqdTjVN0FgONwX9cr53jWRgnu+HRLPaWDOR2JPI5MTfQ==} peerDependencies: @@ -28243,6 +30805,22 @@ packages: vue: 3.4.25(typescript@5.5.2) vue-observe-visibility: 2.0.0-alpha.1(vue@3.4.25) vue-resize: 2.0.0-alpha.1(vue@3.4.25) + dev: true + + /vue@3.4.24(typescript@5.5.2): + resolution: {integrity: sha512-NPdx7dLGyHmKHGRRU5bMRYVE+rechR+KDU5R2tSTNG36PuMwbfAJ+amEvOAw7BPfZp5sQulNELSLm5YUkau+Sg==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@vue/compiler-dom': 3.4.24 + '@vue/compiler-sfc': 3.4.24 + '@vue/runtime-dom': 3.4.24 + '@vue/server-renderer': 3.4.24(vue@3.4.24) + '@vue/shared': 3.4.24 + typescript: 5.5.2 /vue@3.4.25(typescript@5.5.2): resolution: {integrity: sha512-HWyDqoBHMgav/OKiYA2ZQg+kjfMgLt/T0vg4cbIF7JbXAjDexRf5JRg+PWAfrAkSmTd2I8aPSXtooBFWHB98cg==} @@ -28414,8 +30992,8 @@ packages: resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} engines: {node: '>= 0.4'} dependencies: - function.prototype.name: 1.1.6 - has-tostringtag: 1.0.2 + function.prototype.name: 1.1.5 + has-tostringtag: 1.0.0 is-async-function: 2.0.0 is-date-object: 1.0.5 is-finalizationregistry: 1.0.2 @@ -28425,7 +31003,7 @@ packages: isarray: 2.0.5 which-boxed-primitive: 1.0.2 which-collection: 1.0.2 - which-typed-array: 1.1.15 + which-typed-array: 1.1.11 /which-collection@1.0.2: resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} @@ -28460,6 +31038,16 @@ 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 + /which-typed-array@1.1.15: resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} engines: {node: '>= 0.4'} @@ -28552,10 +31140,10 @@ packages: '@esbuild-plugins/node-globals-polyfill': 0.2.3(esbuild@0.17.19) '@esbuild-plugins/node-modules-polyfill': 0.2.2(esbuild@0.17.19) blake3-wasm: 2.1.5 - chokidar: 3.6.0 + chokidar: 3.5.3 esbuild: 0.17.19 miniflare: 3.20240405.2 - nanoid: 3.3.7 + nanoid: 3.3.6 path-to-regexp: 6.2.1 resolve: 1.22.8 resolve.exports: 2.0.2 @@ -28605,8 +31193,8 @@ packages: imurmurhash: 0.1.4 signal-exit: 3.0.7 - /ws@6.2.2: - resolution: {integrity: sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==} + /ws@6.2.3: + resolution: {integrity: sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==} peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ^5.0.2 @@ -28630,8 +31218,8 @@ packages: utf-8-validate: optional: true - /ws@8.17.0: - resolution: {integrity: sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==} + /ws@8.16.0: + resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -28642,6 +31230,19 @@ packages: utf-8-validate: optional: true + /ws@8.17.1: + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: false + /xcode@3.0.1: resolution: {integrity: sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==} engines: {node: '>=10.0.0'} @@ -28711,6 +31312,10 @@ packages: engines: {node: '>= 6'} dev: false + /yaml@2.3.1: + resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==} + engines: {node: '>= 14'} + /yaml@2.4.1: resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} engines: {node: '>= 14'} @@ -28789,12 +31394,16 @@ packages: compress-commons: 6.0.2 readable-stream: 4.5.2 - /zod-to-json-schema@3.22.5(zod@3.23.8): + /zod-to-json-schema@3.22.5(zod@3.23.0): resolution: {integrity: sha512-+akaPo6a0zpVCCseDed504KBJUQpEW5QZw7RMneNmKw+fGaML1Z9tUNLnHHAC8x6dzVRO1eB2oEMyZRnuBZg7Q==} peerDependencies: zod: ^3.22.4 dependencies: - zod: 3.23.8 + zod: 3.23.0 + dev: false + + /zod@3.23.0: + resolution: {integrity: sha512-OFLT+LTocvabn6q76BTwVB0hExEBS0IduTr3cqZyMqEDbOnYmcU+y0tUAYbND4uwclpBGi4I4UUBGzylWpjLGA==} dev: false /zod@3.23.8: From 7182285eb2af068541a7190a6c97c4fe154e0de0 Mon Sep 17 00:00:00 2001 From: "Mark R. Florkowski" Date: Mon, 24 Jun 2024 16:23:43 -0700 Subject: [PATCH 49/50] remove duplicate imports --- packages/react/src/components/button.tsx | 1 - packages/react/src/components/dropzone.tsx | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/react/src/components/button.tsx b/packages/react/src/components/button.tsx index 9ef155c43..99f825fb4 100644 --- a/packages/react/src/components/button.tsx +++ b/packages/react/src/components/button.tsx @@ -23,7 +23,6 @@ import type { FileRouter } from "uploadthing/types"; import { usePaste } from "../hooks/use-paste"; import type { UploadthingComponentProps } from "../types"; -import { usePaste } from "../utils/usePaste"; import { Cancel, progressWidths, Spinner } from "./shared"; type ButtonStyleFieldCallbackArgs = { diff --git a/packages/react/src/components/dropzone.tsx b/packages/react/src/components/dropzone.tsx index 2052f5c77..f4495808f 100644 --- a/packages/react/src/components/dropzone.tsx +++ b/packages/react/src/components/dropzone.tsx @@ -25,7 +25,6 @@ import type { FileRouter } from "uploadthing/types"; import { usePaste } from "../hooks/use-paste"; import { INTERNAL_uploadthingHookGen } from "../hooks/use-uploadthing"; import type { UploadthingComponentProps } from "../types"; -import { INTERNAL_uploadthingHookGen } from "../useUploadThing"; import { Cancel, progressWidths, Spinner } from "./shared"; type DropzoneStyleFieldCallbackArgs = { @@ -148,7 +147,7 @@ export function UploadDropzone< const { fileTypes, multiple } = generatePermittedFileTypes(routeConfig); - const uploadFiles = useCallback( + const uploadFiles = useCallback( (files: File[]) => { void startUpload(files, fileRouteInput).catch((e) => { if (e instanceof UploadAbortedError) { From 8c592a6ed049c75907f558766f349d81c15a700e Mon Sep 17 00:00:00 2001 From: "Mark R. Florkowski" Date: Mon, 24 Jun 2024 16:25:21 -0700 Subject: [PATCH 50/50] format --- packages/react/src/useUploadThing.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react/src/useUploadThing.ts b/packages/react/src/useUploadThing.ts index d1f92f489..cfbe3bba9 100644 --- a/packages/react/src/useUploadThing.ts +++ b/packages/react/src/useUploadThing.ts @@ -86,7 +86,7 @@ export const INTERNAL_uploadthingHookGen = < files.forEach((f) => fileProgress.current.set(f.name, 0)); opts?.onUploadProgress?.(0); - + try { const res = await uploadFiles(endpoint, { signal: opts?.signal,