splitfire desktop

Seto Elkahfi committed Jul 30, 2024 at 01:14 UTC 14fd26b95335586bf8e16912dc94aace8d391e76
38 files changed +19909 -34
frontend/splitfire-desktop/.npmrc new
+1
@@ -0,0 +1 @@
1 +registry=https://registry.npmjs.org
frontend/splitfire-desktop/README.md
+7
@@ -2,6 +2,13 @@
2
3 SplitFire AI is an artificial intelligence app for music enthusiasts. This repo builds desktop version of SplitFire AI.
4
5 +## Bazel
6 +
7 +Run under bazel for more faster iteration:
8 +```bash
9 +bazel run //frontend/splitfire-desktop:dev
10 +```
11 +
12 ## Local development
13
14 Run only the web target:
frontend/splitfire-desktop/app/_lib/hooks/use-enter-submit.tsx new
+23
@@ -0,0 +1,23 @@
1 +import { useRef, type RefObject } from 'react'
2 +
3 +export function useEnterSubmit(): {
4 + formRef: RefObject<HTMLFormElement>
5 + onKeyDown: (event: React.KeyboardEvent<HTMLTextAreaElement>) => void
6 +} {
7 + const formRef = useRef<HTMLFormElement>(null)
8 +
9 + const handleKeyDown = (
10 + event: React.KeyboardEvent<HTMLTextAreaElement>
11 + ): void => {
12 + if (
13 + event.key === 'Enter' &&
14 + !event.shiftKey &&
15 + !event.nativeEvent.isComposing
16 + ) {
17 + formRef.current?.requestSubmit()
18 + event.preventDefault()
19 + }
20 + }
21 +
22 + return { formRef, onKeyDown: handleKeyDown }
23 +}
frontend/splitfire-desktop/app/_lib/hooks/use-local-storage.ts new
+24
@@ -0,0 +1,24 @@
1 +import { useEffect, useState } from 'react'
2 +
3 +export const useLocalStorage = <T>(
4 + key: string,
5 + initialValue: T
6 +): [T, (value: T) => void] => {
7 + const [storedValue, setStoredValue] = useState(initialValue)
8 +
9 + useEffect(() => {
10 + // Retrieve from localStorage
11 + const item = window.localStorage.getItem(key)
12 + if (item) {
13 + setStoredValue(JSON.parse(item))
14 + }
15 + }, [key])
16 +
17 + const setValue = (value: T) => {
18 + // Save state
19 + setStoredValue(value)
20 + // Save to localStorage
21 + window.localStorage.setItem(key, JSON.stringify(value))
22 + }
23 + return [storedValue, setValue]
24 +}
frontend/splitfire-desktop/app/_lib/menus.ts new
+20
@@ -0,0 +1,20 @@
1 +export type Item = {
2 + name: string;
3 + slug: string;
4 + description?: string;
5 +};
6 +
7 +export const menus: { items: Item[] }[] = [
8 + {
9 + items: [
10 + {
11 + name: 'Play',
12 + slug: 'play',
13 + },
14 + {
15 + name: 'Chat 🤖',
16 + slug: 'chat',
17 + },
18 + ],
19 + },
20 +];
frontend/splitfire-desktop/app/_lib/utils.ts new
+43
@@ -0,0 +1,43 @@
1 +import { clsx, type ClassValue } from 'clsx'
2 +import { customAlphabet } from 'nanoid'
3 +import { twMerge } from 'tailwind-merge'
4 +
5 +export function cn(...inputs: ClassValue[]) {
6 + return twMerge(clsx(inputs))
7 +}
8 +
9 +export const nanoid = customAlphabet(
10 + '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',
11 + 7
12 +) // 7-character random string
13 +
14 +export async function fetcher<JSON = any>(
15 + input: RequestInfo,
16 + init?: RequestInit
17 +): Promise<JSON> {
18 + const res = await fetch(input, init)
19 +
20 + if (!res.ok) {
21 + const json = await res.json()
22 + if (json.error) {
23 + const error = new Error(json.error) as Error & {
24 + status: number
25 + }
26 + error.status = res.status
27 + throw error
28 + } else {
29 + throw new Error('An unexpected error occurred')
30 + }
31 + }
32 +
33 + return res.json()
34 +}
35 +
36 +export function formatDate(input: string | number | Date): string {
37 + const date = new Date(input)
38 + return date.toLocaleDateString('en-US', {
39 + month: 'long',
40 + day: 'numeric',
41 + year: 'numeric'
42 + })
43 +}
frontend/splitfire-desktop/app/_ui/address-bar.tsx new
+79
@@ -0,0 +1,79 @@
1 +'use client';
2 +
3 +import React, { Suspense } from 'react';
4 +import { usePathname, useSearchParams } from 'next/navigation';
5 +import { HomeIcon } from '@heroicons/react/solid';
6 +
7 +function Params() {
8 + const searchParams = useSearchParams()!;
9 +
10 + return searchParams.toString().length !== 0 ? (
11 + <div className="px-2 text-gray-500">
12 + <span>?</span>
13 + {Array.from(searchParams.entries()).map(([key, value], index) => {
14 + return (
15 + <React.Fragment key={key}>
16 + {index !== 0 ? <span>&</span> : null}
17 + <span className="px-1">
18 + <span
19 + key={key}
20 + className="animate-[highlight_1s_ease-in-out_1] text-gray-100"
21 + >
22 + {key}
23 + </span>
24 + <span>=</span>
25 + <span
26 + key={value}
27 + className="animate-[highlight_1s_ease-in-out_1] text-gray-100"
28 + >
29 + {value}
30 + </span>
31 + </span>
32 + </React.Fragment>
33 + );
34 + })}
35 + </div>
36 + ) : null;
37 +}
38 +
39 +export function AddressBar() {
40 + const pathname = usePathname();
41 + console.log('pathname', pathname);
42 + return (
43 + <div className="flex items-center gap-x-2 p-3.5 lg:px-5 lg:py-3">
44 + <div className="text-gray-600">
45 + <HomeIcon width={16} />
46 + </div>
47 + <div className="flex gap-x-1 text-sm font-medium">
48 + {pathname ? (
49 + <>
50 + <span className="text-gray-600">/</span>
51 + {pathname
52 + .split('/')
53 + .slice(1)
54 + .map((segment) => {
55 + return (
56 + <React.Fragment key={segment}>
57 + <span>
58 + <span
59 + key={segment}
60 + className="animate-[highlight_1s_ease-in-out_1] rounded-full px-1.5 py-0.5 text-gray-100"
61 + >
62 + {segment}
63 + </span>
64 + </span>
65 +
66 + <span className="text-gray-600">/</span>
67 + </React.Fragment>
68 + );
69 + })}
70 + </>
71 + ) : null}
72 +
73 + <Suspense>
74 + <Params />
75 + </Suspense>
76 + </div>
77 + </div>
78 + );
79 +}
frontend/splitfire-desktop/app/_ui/boundary.tsx new
+82
@@ -0,0 +1,82 @@
1 +import clsx from 'clsx';
2 +import React from 'react';
3 +
4 +const Label = ({
5 + children,
6 + animateRerendering,
7 + color,
8 +}: {
9 + children: React.ReactNode;
10 + animateRerendering?: boolean;
11 + color?: 'default' | 'pink' | 'blue' | 'violet' | 'cyan' | 'orange';
12 +}) => {
13 + return (
14 + <div
15 + className={clsx('rounded-full px-1.5 shadow-[0_0_1px_3px_black]', {
16 + 'bg-gray-800 text-gray-300': color === 'default',
17 + 'bg-vercel-pink text-white': color === 'pink',
18 + 'bg-vercel-blue text-white': color === 'blue',
19 + 'bg-vercel-cyan text-white': color === 'cyan',
20 + 'bg-vercel-violet text-violet-100': color === 'violet',
21 + 'bg-vercel-orange text-white': color === 'orange',
22 + 'animate-[highlight_1s_ease-in-out_1]': animateRerendering,
23 + })}
24 + >
25 + {children}
26 + </div>
27 + );
28 +};
29 +export const Boundary = ({
30 + children,
31 + labels = ['children'],
32 + size = 'default',
33 + color = 'default',
34 + animateRerendering = true,
35 +}: {
36 + children: React.ReactNode;
37 + labels?: string[];
38 + size?: 'small' | 'default';
39 + color?: 'default' | 'pink' | 'blue' | 'violet' | 'cyan' | 'orange';
40 + animateRerendering?: boolean;
41 +}) => {
42 + return (
43 + <div
44 + className={clsx('relative rounded-lg border border-dashed', {
45 + 'p-3 lg:p-5': size === 'small',
46 + 'p-4 lg:p-9': size === 'default',
47 + 'border-gray-700': color === 'default',
48 + 'border-vercel-pink': color === 'pink',
49 + 'border-vercel-blue': color === 'blue',
50 + 'border-vercel-cyan': color === 'cyan',
51 + 'border-vercel-violet': color === 'violet',
52 + 'border-vercel-orange': color === 'orange',
53 + 'text-vercel-pink animate-[rerender_1s_ease-in-out_1]':
54 + animateRerendering,
55 + })}
56 + >
57 + <div
58 + className={clsx(
59 + 'absolute -top-2.5 flex gap-x-1 text-[9px] uppercase leading-4 tracking-widest',
60 + {
61 + 'left-3 lg:left-5': size === 'small',
62 + 'left-4 lg:left-9': size === 'default',
63 + },
64 + )}
65 + >
66 + {labels.map((label) => {
67 + return (
68 + <Label
69 + key={label}
70 + color={color}
71 + animateRerendering={animateRerendering}
72 + >
73 + {label}
74 + </Label>
75 + );
76 + })}
77 + </div>
78 +
79 + {children}
80 + </div>
81 + );
82 +};
frontend/splitfire-desktop/app/_ui/click-counter.tsx new
+16
@@ -0,0 +1,16 @@
1 +'use client';
2 +
3 +import React from 'react';
4 +
5 +export function ClickCounter() {
6 + const [count, setCount] = React.useState(0);
7 +
8 + return (
9 + <button
10 + onClick={() => setCount(count + 1)}
11 + className="whitespace-nowrap rounded-lg bg-gray-700 px-3 py-1 text-sm font-medium tabular-nums text-gray-100 hover:bg-gray-500 hover:text-white"
12 + >
13 + {count} Clicks
14 + </button>
15 + );
16 +}
frontend/splitfire-desktop/app/_ui/components/button.tsx new
+57
@@ -0,0 +1,57 @@
1 +import * as React from 'react'
2 +import { Slot } from '@radix-ui/react-slot'
3 +import { cva, type VariantProps } from 'class-variance-authority'
4 +import { cn } from '@/app/_lib/utils'
5 +
6 +
7 +const buttonVariants = cva(
8 + 'inline-flex items-center justify-center rounded-md text-sm font-medium shadow ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',
9 + {
10 + variants: {
11 + variant: {
12 + default:
13 + 'bg-primary text-primary-foreground shadow-md hover:bg-primary/90',
14 + destructive:
15 + 'bg-destructive text-destructive-foreground hover:bg-destructive/90',
16 + outline:
17 + 'border border-input hover:bg-accent hover:text-accent-foreground',
18 + secondary:
19 + 'bg-secondary text-secondary-foreground hover:bg-secondary/80',
20 + ghost: 'shadow-none hover:bg-accent hover:text-accent-foreground',
21 + link: 'text-primary underline-offset-4 shadow-none hover:underline'
22 + },
23 + size: {
24 + default: 'h-8 px-4 py-2',
25 + sm: 'h-8 rounded-md px-3',
26 + lg: 'h-11 rounded-md px-8',
27 + icon: 'size-8 p-0'
28 + }
29 + },
30 + defaultVariants: {
31 + variant: 'default',
32 + size: 'default'
33 + }
34 + }
35 +)
36 +
37 +export interface ButtonProps
38 + extends React.ButtonHTMLAttributes<HTMLButtonElement>,
39 + VariantProps<typeof buttonVariants> {
40 + asChild?: boolean
41 +}
42 +
43 +const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
44 + ({ className, variant, size, asChild = false, ...props }, ref) => {
45 + const Comp = asChild ? Slot : 'button'
46 + return (
47 + <Comp
48 + className={cn(buttonVariants({ variant, size, className }))}
49 + ref={ref}
50 + {...props}
51 + />
52 + )
53 + }
54 +)
55 +Button.displayName = 'Button'
56 +
57 +export { Button, buttonVariants }
frontend/splitfire-desktop/app/_ui/components/chat-panel.tsx new
+57
@@ -0,0 +1,57 @@
1 +'use client'
2 +
3 +import * as React from 'react'
4 +import { type UseChatHelpers } from 'ai/react'
5 +
6 +import { PromptForm } from './prompt-form'
7 +
8 +export interface ChatPanelProps
9 + extends Pick<
10 + UseChatHelpers,
11 + | 'append'
12 + | 'isLoading'
13 + | 'reload'
14 + | 'messages'
15 + | 'stop'
16 + | 'input'
17 + | 'setInput'
18 + > {
19 + id?: string
20 + title?: string
21 +}
22 +
23 +export function ChatPanel({
24 + id,
25 + title,
26 + isLoading,
27 + stop,
28 + append,
29 + reload,
30 + input,
31 + setInput,
32 + messages
33 +}: ChatPanelProps) {
34 + const [shareDialogOpen, setShareDialogOpen] = React.useState(false)
35 +
36 + return (
37 + <div className="fixed inset-x-0 bottom-0 w-full bg-gradient-to-b from-muted/30 from-0% to-muted/30 to-50% animate-in duration-300 ease-in-out dark:from-background/10 dark:from-10% dark:to-background/80 peer-[[data-state=open]]:group-[]:lg:pl-[250px] peer-[[data-state=open]]:group-[]:xl:pl-[300px]">
38 + <div className="mx-auto sm:max-w-2xl sm:px-4">
39 + <div className="flex items-center justify-center h-12"></div>
40 + <div className="px-4 py-2 space-y-4 border-t shadow-lg bg-background sm:rounded-t-xl sm:border md:py-4">
41 + <PromptForm
42 + onSubmit={async value => {
43 + await append({
44 + id,
45 + content: value,
46 + role: 'user'
47 + })
48 + }}
49 + input={input}
50 + setInput={setInput}
51 + isLoading={isLoading}
52 + />
53 + </div>
54 + </div>
55 + </div>
56 + )
57 +}
frontend/splitfire-desktop/app/_ui/components/empty-screen.tsx new
+56
@@ -0,0 +1,56 @@
1 +import { UseChatHelpers } from 'ai/react'
2 +
3 +import { Button } from './button'
4 +import { ExternalLink } from './external-link'
5 +import { IconArrowRight } from './icons'
6 +
7 +const exampleMessages = [
8 + {
9 + heading: 'Explain technical concepts',
10 + message: `What is a "serverless function"?`
11 + },
12 + {
13 + heading: 'Summarize an article',
14 + message: 'Summarize the following article for a 2nd grader: \n'
15 + },
16 + {
17 + heading: 'Draft an email',
18 + message: `Draft an email to my boss about the following: \n`
19 + }
20 +]
21 +
22 +export function EmptyScreen({ setInput }: Pick<UseChatHelpers, 'setInput'>) {
23 + return (
24 + <div className="mx-auto max-w-2xl px-4">
25 + <div className="rounded-lg border bg-background p-8">
26 + <h1 className="mb-2 text-lg font-semibold">
27 + Welcome to Next.js AI Chatbot!
28 + </h1>
29 + <p className="mb-2 leading-normal text-muted-foreground">
30 + This is an open source AI chatbot app template built with{' '}
31 + <ExternalLink href="https://nextjs.org">Next.js</ExternalLink> and{' '}
32 + <ExternalLink href="https://vercel.com/storage/kv">
33 + Vercel KV
34 + </ExternalLink>
35 + .
36 + </p>
37 + <p className="leading-normal text-muted-foreground">
38 + You can start a conversation here or try the following examples:
39 + </p>
40 + <div className="mt-4 flex flex-col items-start space-y-2">
41 + {exampleMessages.map((message, index) => (
42 + <Button
43 + key={index}
44 + variant="link"
45 + className="h-auto p-0 text-base"
46 + onClick={() => setInput(message.message)}
47 + >
48 + <IconArrowRight className="mr-2 text-muted-foreground" />
49 + {message.heading}
50 + </Button>
51 + ))}
52 + </div>
53 + </div>
54 + </div>
55 + )
56 +}
frontend/splitfire-desktop/app/_ui/components/external-link.tsx new
+29
@@ -0,0 +1,29 @@
1 +export function ExternalLink({
2 + href,
3 + children
4 +}: {
5 + href: string
6 + children: React.ReactNode
7 +}) {
8 + return (
9 + <a
10 + href={href}
11 + target="_blank"
12 + className="inline-flex flex-1 justify-center gap-1 leading-4 hover:underline"
13 + >
14 + <span>{children}</span>
15 + <svg
16 + aria-hidden="true"
17 + height="7"
18 + viewBox="0 0 6 6"
19 + width="7"
20 + className="opacity-70"
21 + >
22 + <path
23 + d="M1.25215 5.54731L0.622742 4.9179L3.78169 1.75597H1.3834L1.38936 0.890915H5.27615V4.78069H4.40513L4.41109 2.38538L1.25215 5.54731Z"
24 + fill="currentColor"
25 + ></path>
26 + </svg>
27 + </a>
28 + )
29 +}
frontend/splitfire-desktop/app/_ui/components/icons.tsx new
+506
@@ -0,0 +1,506 @@
1 +'use client'
2 +
3 +import { cn } from '@/app/_lib/utils'
4 +import * as React from 'react'
5 +
6 +function IconNextChat({
7 + className,
8 + inverted,
9 + ...props
10 +}: React.ComponentProps<'svg'> & { inverted?: boolean }) {
11 + const id = React.useId()
12 +
13 + return (
14 + <svg
15 + viewBox="0 0 17 17"
16 + fill="none"
17 + xmlns="http://www.w3.org/2000/svg"
18 + className={cn('size-4', className)}
19 + {...props}
20 + >
21 + <defs>
22 + <linearGradient
23 + id={`gradient-${id}-1`}
24 + x1="10.6889"
25 + y1="10.3556"
26 + x2="13.8445"
27 + y2="14.2667"
28 + gradientUnits="userSpaceOnUse"
29 + >
30 + <stop stopColor={inverted ? 'white' : 'black'} />
31 + <stop
32 + offset={1}
33 + stopColor={inverted ? 'white' : 'black'}
34 + stopOpacity={0}
35 + />
36 + </linearGradient>
37 + <linearGradient
38 + id={`gradient-${id}-2`}
39 + x1="11.7555"
40 + y1="4.8"
41 + x2="11.7376"
42 + y2="9.50002"
43 + gradientUnits="userSpaceOnUse"
44 + >
45 + <stop stopColor={inverted ? 'white' : 'black'} />
46 + <stop
47 + offset={1}
48 + stopColor={inverted ? 'white' : 'black'}
49 + stopOpacity={0}
50 + />
51 + </linearGradient>
52 + </defs>
53 + <path
54 + d="M1 16L2.58314 11.2506C1.83084 9.74642 1.63835 8.02363 2.04013 6.39052C2.4419 4.75741 3.41171 3.32057 4.776 2.33712C6.1403 1.35367 7.81003 0.887808 9.4864 1.02289C11.1628 1.15798 12.7364 1.8852 13.9256 3.07442C15.1148 4.26363 15.842 5.83723 15.9771 7.5136C16.1122 9.18997 15.6463 10.8597 14.6629 12.224C13.6794 13.5883 12.2426 14.5581 10.6095 14.9599C8.97637 15.3616 7.25358 15.1692 5.74942 14.4169L1 16Z"
55 + fill={inverted ? 'black' : 'white'}
56 + stroke={inverted ? 'black' : 'white'}
57 + strokeWidth={2}
58 + strokeLinecap="round"
59 + strokeLinejoin="round"
60 + />
61 + <mask
62 + id="mask0_91_2047"
63 + style={{ maskType: 'alpha' }}
64 + maskUnits="userSpaceOnUse"
65 + x={1}
66 + y={0}
67 + width={16}
68 + height={16}
69 + >
70 + <circle cx={9} cy={8} r={8} fill={inverted ? 'black' : 'white'} />
71 + </mask>
72 + <g mask="url(#mask0_91_2047)">
73 + <circle cx={9} cy={8} r={8} fill={inverted ? 'black' : 'white'} />
74 + <path
75 + d="M14.2896 14.0018L7.146 4.8H5.80005V11.1973H6.87681V6.16743L13.4444 14.6529C13.7407 14.4545 14.0231 14.2369 14.2896 14.0018Z"
76 + fill={`url(#gradient-${id}-1)`}
77 + />
78 + <rect
79 + x="11.2222"
80 + y="4.8"
81 + width="1.06667"
82 + height="6.4"
83 + fill={`url(#gradient-${id}-2)`}
84 + />
85 + </g>
86 + </svg>
87 + )
88 +}
89 +
90 +function IconOpenAI({ className, ...props }: React.ComponentProps<'svg'>) {
91 + return (
92 + <svg
93 + fill="currentColor"
94 + viewBox="0 0 24 24"
95 + role="img"
96 + xmlns="http://www.w3.org/2000/svg"
97 + className={cn('size-4', className)}
98 + {...props}
99 + >
100 + <title>OpenAI icon</title>
101 + <path d="M22.2819 9.8211a5.9847 5.9847 0 0 0-.5157-4.9108 6.0462 6.0462 0 0 0-6.5098-2.9A6.0651 6.0651 0 0 0 4.9807 4.1818a5.9847 5.9847 0 0 0-3.9977 2.9 6.0462 6.0462 0 0 0 .7427 7.0966 5.98 5.98 0 0 0 .511 4.9107 6.051 6.051 0 0 0 6.5146 2.9001A5.9847 5.9847 0 0 0 13.2599 24a6.0557 6.0557 0 0 0 5.7718-4.2058 5.9894 5.9894 0 0 0 3.9977-2.9001 6.0557 6.0557 0 0 0-.7475-7.0729zm-9.022 12.6081a4.4755 4.4755 0 0 1-2.8764-1.0408l.1419-.0804 4.7783-2.7582a.7948.7948 0 0 0 .3927-.6813v-6.7369l2.02 1.1686a.071.071 0 0 1 .038.052v5.5826a4.504 4.504 0 0 1-4.4945 4.4944zm-9.6607-4.1254a4.4708 4.4708 0 0 1-.5346-3.0137l.142.0852 4.783 2.7582a.7712.7712 0 0 0 .7806 0l5.8428-3.3685v2.3324a.0804.0804 0 0 1-.0332.0615L9.74 19.9502a4.4992 4.4992 0 0 1-6.1408-1.6464zM2.3408 7.8956a4.485 4.485 0 0 1 2.3655-1.9728V11.6a.7664.7664 0 0 0 .3879.6765l5.8144 3.3543-2.0201 1.1685a.0757.0757 0 0 1-.071 0l-4.8303-2.7865A4.504 4.504 0 0 1 2.3408 7.872zm16.5963 3.8558L13.1038 8.364 15.1192 7.2a.0757.0757 0 0 1 .071 0l4.8303 2.7913a4.4944 4.4944 0 0 1-.6765 8.1042v-5.6772a.79.79 0 0 0-.407-.667zm2.0107-3.0231l-.142-.0852-4.7735-2.7818a.7759.7759 0 0 0-.7854 0L9.409 9.2297V6.8974a.0662.0662 0 0 1 .0284-.0615l4.8303-2.7866a4.4992 4.4992 0 0 1 6.6802 4.66zM8.3065 12.863l-2.02-1.1638a.0804.0804 0 0 1-.038-.0567V6.0742a4.4992 4.4992 0 0 1 7.3757-3.4537l-.142.0805L8.704 5.459a.7948.7948 0 0 0-.3927.6813zm1.0976-2.3654l2.602-1.4998 2.6069 1.4998v2.9994l-2.5974 1.4997-2.6067-1.4997Z" />
102 + </svg>
103 + )
104 +}
105 +
106 +function IconVercel({ className, ...props }: React.ComponentProps<'svg'>) {
107 + return (
108 + <svg
109 + aria-label="Vercel logomark"
110 + role="img"
111 + viewBox="0 0 74 64"
112 + className={cn('size-4', className)}
113 + {...props}
114 + >
115 + <path
116 + d="M37.5896 0.25L74.5396 64.25H0.639648L37.5896 0.25Z"
117 + fill="currentColor"
118 + ></path>
119 + </svg>
120 + )
121 +}
122 +
123 +function IconGitHub({ className, ...props }: React.ComponentProps<'svg'>) {
124 + return (
125 + <svg
126 + role="img"
127 + viewBox="0 0 24 24"
128 + xmlns="http://www.w3.org/2000/svg"
129 + fill="currentColor"
130 + className={cn('size-4', className)}
131 + {...props}
132 + >
133 + <title>GitHub</title>
134 + <path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12" />
135 + </svg>
136 + )
137 +}
138 +
139 +function IconSeparator({ className, ...props }: React.ComponentProps<'svg'>) {
140 + return (
141 + <svg
142 + fill="none"
143 + shapeRendering="geometricPrecision"
144 + stroke="currentColor"
145 + strokeLinecap="round"
146 + strokeLinejoin="round"
147 + strokeWidth="1"
148 + viewBox="0 0 24 24"
149 + aria-hidden="true"
150 + className={cn('size-4', className)}
151 + {...props}
152 + >
153 + <path d="M16.88 3.549L7.12 20.451"></path>
154 + </svg>
155 + )
156 +}
157 +
158 +function IconArrowDown({ className, ...props }: React.ComponentProps<'svg'>) {
159 + return (
160 + <svg
161 + xmlns="http://www.w3.org/2000/svg"
162 + viewBox="0 0 256 256"
163 + fill="currentColor"
164 + className={cn('size-4', className)}
165 + {...props}
166 + >
167 + <path d="m205.66 149.66-72 72a8 8 0 0 1-11.32 0l-72-72a8 8 0 0 1 11.32-11.32L120 196.69V40a8 8 0 0 1 16 0v156.69l58.34-58.35a8 8 0 0 1 11.32 11.32Z" />
168 + </svg>
169 + )
170 +}
171 +
172 +function IconArrowRight({ className, ...props }: React.ComponentProps<'svg'>) {
173 + return (
174 + <svg
175 + xmlns="http://www.w3.org/2000/svg"
176 + viewBox="0 0 256 256"
177 + fill="currentColor"
178 + className={cn('size-4', className)}
179 + {...props}
180 + >
181 + <path d="m221.66 133.66-72 72a8 8 0 0 1-11.32-11.32L196.69 136H40a8 8 0 0 1 0-16h156.69l-58.35-58.34a8 8 0 0 1 11.32-11.32l72 72a8 8 0 0 1 0 11.32Z" />
182 + </svg>
183 + )
184 +}
185 +
186 +function IconUser({ className, ...props }: React.ComponentProps<'svg'>) {
187 + return (
188 + <svg
189 + xmlns="http://www.w3.org/2000/svg"
190 + viewBox="0 0 256 256"
191 + fill="currentColor"
192 + className={cn('size-4', className)}
193 + {...props}
194 + >
195 + <path d="M230.92 212c-15.23-26.33-38.7-45.21-66.09-54.16a72 72 0 1 0-73.66 0c-27.39 8.94-50.86 27.82-66.09 54.16a8 8 0 1 0 13.85 8c18.84-32.56 52.14-52 89.07-52s70.23 19.44 89.07 52a8 8 0 1 0 13.85-8ZM72 96a56 56 0 1 1 56 56 56.06 56.06 0 0 1-56-56Z" />
196 + </svg>
197 + )
198 +}
199 +
200 +function IconPlus({ className, ...props }: React.ComponentProps<'svg'>) {
201 + return (
202 + <svg
203 + xmlns="http://www.w3.org/2000/svg"
204 + viewBox="0 0 256 256"
205 + fill="currentColor"
206 + className={cn('size-4', className)}
207 + {...props}
208 + >
209 + <path d="M224 128a8 8 0 0 1-8 8h-80v80a8 8 0 0 1-16 0v-80H40a8 8 0 0 1 0-16h80V40a8 8 0 0 1 16 0v80h80a8 8 0 0 1 8 8Z" />
210 + </svg>
211 + )
212 +}
213 +
214 +function IconArrowElbow({ className, ...props }: React.ComponentProps<'svg'>) {
215 + return (
216 + <svg
217 + xmlns="http://www.w3.org/2000/svg"
218 + viewBox="0 0 256 256"
219 + fill="currentColor"
220 + className={cn('size-4', className)}
221 + {...props}
222 + >
223 + <path d="M200 32v144a8 8 0 0 1-8 8H67.31l34.35 34.34a8 8 0 0 1-11.32 11.32l-48-48a8 8 0 0 1 0-11.32l48-48a8 8 0 0 1 11.32 11.32L67.31 168H184V32a8 8 0 0 1 16 0Z" />
224 + </svg>
225 + )
226 +}
227 +
228 +function IconSpinner({ className, ...props }: React.ComponentProps<'svg'>) {
229 + return (
230 + <svg
231 + xmlns="http://www.w3.org/2000/svg"
232 + viewBox="0 0 256 256"
233 + fill="currentColor"
234 + className={cn('size-4 animate-spin', className)}
235 + {...props}
236 + >
237 + <path d="M232 128a104 104 0 0 1-208 0c0-41 23.81-78.36 60.66-95.27a8 8 0 0 1 6.68 14.54C60.15 61.59 40 93.27 40 128a88 88 0 0 0 176 0c0-34.73-20.15-66.41-51.34-80.73a8 8 0 0 1 6.68-14.54C208.19 49.64 232 87 232 128Z" />
238 + </svg>
239 + )
240 +}
241 +
242 +function IconMessage({ className, ...props }: React.ComponentProps<'svg'>) {
243 + return (
244 + <svg
245 + xmlns="http://www.w3.org/2000/svg"
246 + viewBox="0 0 256 256"
247 + fill="currentColor"
248 + className={cn('size-4', className)}
249 + {...props}
250 + >
251 + <path d="M216 48H40a16 16 0 0 0-16 16v160a15.84 15.84 0 0 0 9.25 14.5A16.05 16.05 0 0 0 40 240a15.89 15.89 0 0 0 10.25-3.78.69.69 0 0 0 .13-.11L82.5 208H216a16 16 0 0 0 16-16V64a16 16 0 0 0-16-16ZM40 224Zm176-32H82.5a16 16 0 0 0-10.3 3.75l-.12.11L40 224V64h176Z" />
252 + </svg>
253 + )
254 +}
255 +
256 +function IconTrash({ className, ...props }: React.ComponentProps<'svg'>) {
257 + return (
258 + <svg
259 + xmlns="http://www.w3.org/2000/svg"
260 + viewBox="0 0 256 256"
261 + fill="currentColor"
262 + className={cn('size-4', className)}
263 + {...props}
264 + >
265 + <path d="M216 48h-40v-8a24 24 0 0 0-24-24h-48a24 24 0 0 0-24 24v8H40a8 8 0 0 0 0 16h8v144a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16V64h8a8 8 0 0 0 0-16ZM96 40a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v8H96Zm96 168H64V64h128Zm-80-104v64a8 8 0 0 1-16 0v-64a8 8 0 0 1 16 0Zm48 0v64a8 8 0 0 1-16 0v-64a8 8 0 0 1 16 0Z" />
266 + </svg>
267 + )
268 +}
269 +
270 +function IconRefresh({ className, ...props }: React.ComponentProps<'svg'>) {
271 + return (
272 + <svg
273 + xmlns="http://www.w3.org/2000/svg"
274 + viewBox="0 0 256 256"
275 + fill="currentColor"
276 + className={cn('size-4', className)}
277 + {...props}
278 + >
279 + <path d="M197.67 186.37a8 8 0 0 1 0 11.29C196.58 198.73 170.82 224 128 224c-37.39 0-64.53-22.4-80-39.85V208a8 8 0 0 1-16 0v-48a8 8 0 0 1 8-8h48a8 8 0 0 1 0 16H55.44C67.76 183.35 93 208 128 208c36 0 58.14-21.46 58.36-21.68a8 8 0 0 1 11.31.05ZM216 40a8 8 0 0 0-8 8v23.85C192.53 54.4 165.39 32 128 32c-42.82 0-68.58 25.27-69.66 26.34a8 8 0 0 0 11.3 11.34C69.86 69.46 92 48 128 48c35 0 60.24 24.65 72.56 40H168a8 8 0 0 0 0 16h48a8 8 0 0 0 8-8V48a8 8 0 0 0-8-8Z" />
280 + </svg>
281 + )
282 +}
283 +
284 +function IconStop({ className, ...props }: React.ComponentProps<'svg'>) {
285 + return (
286 + <svg
287 + xmlns="http://www.w3.org/2000/svg"
288 + viewBox="0 0 256 256"
289 + fill="currentColor"
290 + className={cn('size-4', className)}
291 + {...props}
292 + >
293 + <path d="M128 24a104 104 0 1 0 104 104A104.11 104.11 0 0 0 128 24Zm0 192a88 88 0 1 1 88-88 88.1 88.1 0 0 1-88 88Zm24-120h-48a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8Zm-8 48h-32v-32h32Z" />
294 + </svg>
295 + )
296 +}
297 +
298 +function IconSidebar({ className, ...props }: React.ComponentProps<'svg'>) {
299 + return (
300 + <svg
301 + xmlns="http://www.w3.org/2000/svg"
302 + viewBox="0 0 256 256"
303 + fill="currentColor"
304 + className={cn('size-4', className)}
305 + {...props}
306 + >
307 + <path d="M216 40H40a16 16 0 0 0-16 16v144a16 16 0 0 0 16 16h176a16 16 0 0 0 16-16V56a16 16 0 0 0-16-16ZM40 56h40v144H40Zm176 144H96V56h120v144Z" />
308 + </svg>
309 + )
310 +}
311 +
312 +function IconMoon({ className, ...props }: React.ComponentProps<'svg'>) {
313 + return (
314 + <svg
315 + xmlns="http://www.w3.org/2000/svg"
316 + viewBox="0 0 256 256"
317 + fill="currentColor"
318 + className={cn('size-4', className)}
319 + {...props}
320 + >
321 + <path d="M233.54 142.23a8 8 0 0 0-8-2 88.08 88.08 0 0 1-109.8-109.8 8 8 0 0 0-10-10 104.84 104.84 0 0 0-52.91 37A104 104 0 0 0 136 224a103.09 103.09 0 0 0 62.52-20.88 104.84 104.84 0 0 0 37-52.91 8 8 0 0 0-1.98-7.98Zm-44.64 48.11A88 88 0 0 1 65.66 67.11a89 89 0 0 1 31.4-26A106 106 0 0 0 96 56a104.11 104.11 0 0 0 104 104 106 106 0 0 0 14.92-1.06 89 89 0 0 1-26.02 31.4Z" />
322 + </svg>
323 + )
324 +}
325 +
326 +function IconSun({ className, ...props }: React.ComponentProps<'svg'>) {
327 + return (
328 + <svg
329 + xmlns="http://www.w3.org/2000/svg"
330 + viewBox="0 0 256 256"
331 + fill="currentColor"
332 + className={cn('size-4', className)}
333 + {...props}
334 + >
335 + <path d="M120 40V16a8 8 0 0 1 16 0v24a8 8 0 0 1-16 0Zm72 88a64 64 0 1 1-64-64 64.07 64.07 0 0 1 64 64Zm-16 0a48 48 0 1 0-48 48 48.05 48.05 0 0 0 48-48ZM58.34 69.66a8 8 0 0 0 11.32-11.32l-16-16a8 8 0 0 0-11.32 11.32Zm0 116.68-16 16a8 8 0 0 0 11.32 11.32l16-16a8 8 0 0 0-11.32-11.32ZM192 72a8 8 0 0 0 5.66-2.34l16-16a8 8 0 0 0-11.32-11.32l-16 16A8 8 0 0 0 192 72Zm5.66 114.34a8 8 0 0 0-11.32 11.32l16 16a8 8 0 0 0 11.32-11.32ZM48 128a8 8 0 0 0-8-8H16a8 8 0 0 0 0 16h24a8 8 0 0 0 8-8Zm80 80a8 8 0 0 0-8 8v24a8 8 0 0 0 16 0v-24a8 8 0 0 0-8-8Zm112-88h-24a8 8 0 0 0 0 16h24a8 8 0 0 0 0-16Z" />
336 + </svg>
337 + )
338 +}
339 +
340 +function IconCopy({ className, ...props }: React.ComponentProps<'svg'>) {
341 + return (
342 + <svg
343 + xmlns="http://www.w3.org/2000/svg"
344 + viewBox="0 0 256 256"
345 + fill="currentColor"
346 + className={cn('size-4', className)}
347 + {...props}
348 + >
349 + <path d="M216 32H88a8 8 0 0 0-8 8v40H40a8 8 0 0 0-8 8v128a8 8 0 0 0 8 8h128a8 8 0 0 0 8-8v-40h40a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8Zm-56 176H48V96h112Zm48-48h-32V88a8 8 0 0 0-8-8H96V48h112Z" />
350 + </svg>
351 + )
352 +}
353 +
354 +function IconCheck({ className, ...props }: React.ComponentProps<'svg'>) {
355 + return (
356 + <svg
357 + xmlns="http://www.w3.org/2000/svg"
358 + viewBox="0 0 256 256"
359 + fill="currentColor"
360 + className={cn('size-4', className)}
361 + {...props}
362 + >
363 + <path d="m229.66 77.66-128 128a8 8 0 0 1-11.32 0l-56-56a8 8 0 0 1 11.32-11.32L96 188.69 218.34 66.34a8 8 0 0 1 11.32 11.32Z" />
364 + </svg>
365 + )
366 +}
367 +
368 +function IconDownload({ className, ...props }: React.ComponentProps<'svg'>) {
369 + return (
370 + <svg
371 + xmlns="http://www.w3.org/2000/svg"
372 + viewBox="0 0 256 256"
373 + fill="currentColor"
374 + className={cn('size-4', className)}
375 + {...props}
376 + >
377 + <path d="M224 152v56a16 16 0 0 1-16 16H48a16 16 0 0 1-16-16v-56a8 8 0 0 1 16 0v56h160v-56a8 8 0 0 1 16 0Zm-101.66 5.66a8 8 0 0 0 11.32 0l40-40a8 8 0 0 0-11.32-11.32L136 132.69V40a8 8 0 0 0-16 0v92.69l-26.34-26.35a8 8 0 0 0-11.32 11.32Z" />
378 + </svg>
379 + )
380 +}
381 +
382 +function IconClose({ className, ...props }: React.ComponentProps<'svg'>) {
383 + return (
384 + <svg
385 + xmlns="http://www.w3.org/2000/svg"
386 + viewBox="0 0 256 256"
387 + fill="currentColor"
388 + className={cn('size-4', className)}
389 + {...props}
390 + >
391 + <path d="M205.66 194.34a8 8 0 0 1-11.32 11.32L128 139.31l-66.34 66.35a8 8 0 0 1-11.32-11.32L116.69 128 50.34 61.66a8 8 0 0 1 11.32-11.32L128 116.69l66.34-66.35a8 8 0 0 1 11.32 11.32L139.31 128Z" />
392 + </svg>
393 + )
394 +}
395 +
396 +function IconEdit({ className, ...props }: React.ComponentProps<'svg'>) {
397 + return (
398 + <svg
399 + xmlns="http://www.w3.org/2000/svg"
400 + fill="none"
401 + viewBox="0 0 24 24"
402 + strokeWidth={1.5}
403 + stroke="currentColor"
404 + className={cn('size-4', className)}
405 + {...props}
406 + >
407 + <path
408 + strokeLinecap="round"
409 + strokeLinejoin="round"
410 + d="M16.862 4.487l1.687-1.688a1.875 1.875 0 112.652 2.652L10.582 16.07a4.5 4.5 0 01-1.897 1.13L6 18l.8-2.685a4.5 4.5 0 011.13-1.897l8.932-8.931zm0 0L19.5 7.125M18 14v4.75A2.25 2.25 0 0115.75 21H5.25A2.25 2.25 0 013 18.75V8.25A2.25 2.25 0 015.25 6H10"
411 + />
412 + </svg>
413 + )
414 +}
415 +
416 +function IconShare({ className, ...props }: React.ComponentProps<'svg'>) {
417 + return (
418 + <svg
419 + xmlns="http://www.w3.org/2000/svg"
420 + fill="currentColor"
421 + className={cn('size-4', className)}
422 + viewBox="0 0 256 256"
423 + {...props}
424 + >
425 + <path d="m237.66 106.35-80-80A8 8 0 0 0 144 32v40.35c-25.94 2.22-54.59 14.92-78.16 34.91-28.38 24.08-46.05 55.11-49.76 87.37a12 12 0 0 0 20.68 9.58c11-11.71 50.14-48.74 107.24-52V192a8 8 0 0 0 13.66 5.65l80-80a8 8 0 0 0 0-11.3ZM160 172.69V144a8 8 0 0 0-8-8c-28.08 0-55.43 7.33-81.29 21.8a196.17 196.17 0 0 0-36.57 26.52c5.8-23.84 20.42-46.51 42.05-64.86C99.41 99.77 127.75 88 152 88a8 8 0 0 0 8-8V51.32L220.69 112Z" />
426 + </svg>
427 + )
428 +}
429 +
430 +function IconUsers({ className, ...props }: React.ComponentProps<'svg'>) {
431 + return (
432 + <svg
433 + xmlns="http://www.w3.org/2000/svg"
434 + fill="currentColor"
435 + className={cn('size-4', className)}
436 + viewBox="0 0 256 256"
437 + {...props}
438 + >
439 + <path d="M117.25 157.92a60 60 0 1 0-66.5 0 95.83 95.83 0 0 0-47.22 37.71 8 8 0 1 0 13.4 8.74 80 80 0 0 1 134.14 0 8 8 0 0 0 13.4-8.74 95.83 95.83 0 0 0-47.22-37.71ZM40 108a44 44 0 1 1 44 44 44.05 44.05 0 0 1-44-44Zm210.14 98.7a8 8 0 0 1-11.07-2.33A79.83 79.83 0 0 0 172 168a8 8 0 0 1 0-16 44 44 0 1 0-16.34-84.87 8 8 0 1 1-5.94-14.85 60 60 0 0 1 55.53 105.64 95.83 95.83 0 0 1 47.22 37.71 8 8 0 0 1-2.33 11.07Z" />
440 + </svg>
441 + )
442 +}
443 +
444 +function IconExternalLink({
445 + className,
446 + ...props
447 +}: React.ComponentProps<'svg'>) {
448 + return (
449 + <svg
450 + xmlns="http://www.w3.org/2000/svg"
451 + fill="currentColor"
452 + className={cn('size-4', className)}
453 + viewBox="0 0 256 256"
454 + {...props}
455 + >
456 + <path d="M224 104a8 8 0 0 1-16 0V59.32l-66.33 66.34a8 8 0 0 1-11.32-11.32L196.68 48H152a8 8 0 0 1 0-16h64a8 8 0 0 1 8 8Zm-40 24a8 8 0 0 0-8 8v72H48V80h72a8 8 0 0 0 0-16H48a16 16 0 0 0-16 16v128a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-72a8 8 0 0 0-8-8Z" />
457 + </svg>
458 + )
459 +}
460 +
461 +function IconChevronUpDown({
462 + className,
463 + ...props
464 +}: React.ComponentProps<'svg'>) {
465 + return (
466 + <svg
467 + xmlns="http://www.w3.org/2000/svg"
468 + fill="currentColor"
469 + className={cn('size-4', className)}
470 + viewBox="0 0 256 256"
471 + {...props}
472 + >
473 + <path d="M181.66 170.34a8 8 0 0 1 0 11.32l-48 48a8 8 0 0 1-11.32 0l-48-48a8 8 0 0 1 11.32-11.32L128 212.69l42.34-42.35a8 8 0 0 1 11.32 0Zm-96-84.68L128 43.31l42.34 42.35a8 8 0 0 0 11.32-11.32l-48-48a8 8 0 0 0-11.32 0l-48 48a8 8 0 0 0 11.32 11.32Z" />
474 + </svg>
475 + )
476 +}
477 +
478 +export {
479 + IconEdit,
480 + IconNextChat,
481 + IconOpenAI,
482 + IconVercel,
483 + IconGitHub,
484 + IconSeparator,
485 + IconArrowDown,
486 + IconArrowRight,
487 + IconUser,
488 + IconPlus,
489 + IconArrowElbow,
490 + IconSpinner,
491 + IconMessage,
492 + IconTrash,
493 + IconRefresh,
494 + IconStop,
495 + IconSidebar,
496 + IconMoon,
497 + IconSun,
498 + IconCopy,
499 + IconCheck,
500 + IconDownload,
501 + IconClose,
502 + IconShare,
503 + IconUsers,
504 + IconExternalLink,
505 + IconChevronUpDown
506 +}
frontend/splitfire-desktop/app/_ui/components/prompt-form.tsx new
+99
@@ -0,0 +1,99 @@
1 +'use client';
2 +
3 +import * as React from 'react'
4 +import Textarea from 'react-textarea-autosize'
5 +import { UseChatHelpers } from 'ai/react'
6 +import {
7 + Tooltip,
8 + TooltipContent,
9 + TooltipTrigger
10 +} from './tooltip'
11 +import { IconArrowElbow, IconPlus } from './icons'
12 +import { useRouter } from 'next/navigation'
13 +import { Button, buttonVariants } from './button';
14 +import { useEnterSubmit } from '@/app/_lib/hooks/use-enter-submit';
15 +import { cn } from '@/app/_lib/utils';
16 +
17 +export interface PromptProps
18 + extends Pick<UseChatHelpers, 'input' | 'setInput'> {
19 + onSubmit: (value: string) => void
20 + isLoading: boolean
21 +}
22 +
23 +export function PromptForm({
24 + onSubmit,
25 + input,
26 + setInput,
27 + isLoading
28 +}: PromptProps) {
29 + const { formRef, onKeyDown } = useEnterSubmit()
30 + const inputRef = React.useRef<HTMLTextAreaElement>(null)
31 + const router = useRouter()
32 + React.useEffect(() => {
33 + if (inputRef.current) {
34 + inputRef.current.focus()
35 + }
36 + }, [])
37 +
38 + return (
39 + <form
40 + onSubmit={async e => {
41 + e.preventDefault()
42 + if (!input?.trim()) {
43 + return
44 + }
45 + setInput('')
46 + await onSubmit(input)
47 + }}
48 + ref={formRef}
49 + >
50 + <div className="relative flex flex-col w-full px-8 overflow-hidden max-h-60 grow bg-background sm:rounded-md sm:border sm:px-12">
51 + <Tooltip>
52 + <TooltipTrigger asChild>
53 + <button
54 + onClick={e => {
55 + e.preventDefault()
56 + router.refresh()
57 + router.push('/')
58 + }}
59 + className={cn(
60 + buttonVariants({ size: 'sm', variant: 'outline' }),
61 + 'absolute left-0 top-4 size-8 rounded-full bg-background p-0 sm:left-4'
62 + )}
63 + >
64 + <IconPlus />
65 + <span className="sr-only">New Chat</span>
66 + </button>
67 + </TooltipTrigger>
68 + <TooltipContent>New Chat</TooltipContent>
69 + </Tooltip>
70 + <Textarea
71 + ref={inputRef}
72 + tabIndex={0}
73 + onKeyDown={onKeyDown}
74 + rows={1}
75 + value={input}
76 + onChange={e => setInput(e.target.value)}
77 + placeholder="Send a message."
78 + spellCheck={false}
79 + className="min-h-[60px] w-full resize-none bg-transparent px-4 py-[1.3rem] focus-within:outline-none sm:text-sm"
80 + />
81 + <div className="absolute right-0 top-4 sm:right-4">
82 + <Tooltip>
83 + <TooltipTrigger asChild>
84 + <Button
85 + type="submit"
86 + size="icon"
87 + disabled={isLoading || input === ''}
88 + >
89 + <IconArrowElbow />
90 + <span className="sr-only">Send message</span>
91 + </Button>
92 + </TooltipTrigger>
93 + <TooltipContent>Send message</TooltipContent>
94 + </Tooltip>
95 + </div>
96 + </div>
97 + </form>
98 + )
99 +}
frontend/splitfire-desktop/app/_ui/components/tooltip.tsx new
+29
@@ -0,0 +1,29 @@
1 +'use client'
2 +
3 +import * as React from 'react'
4 +import * as TooltipPrimitive from '@radix-ui/react-tooltip'
5 +import { cn } from '@/app/_lib/utils'
6 +
7 +const TooltipProvider = TooltipPrimitive.Provider
8 +
9 +const Tooltip = TooltipPrimitive.Root
10 +
11 +const TooltipTrigger = TooltipPrimitive.Trigger
12 +
13 +const TooltipContent = React.forwardRef<
14 + React.ElementRef<typeof TooltipPrimitive.Content>,
15 + React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>
16 +>(({ className, sideOffset = 4, ...props }, ref) => (
17 + <TooltipPrimitive.Content
18 + ref={ref}
19 + sideOffset={sideOffset}
20 + className={cn(
21 + 'z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-xs font-medium text-popover-foreground shadow-md animate-in fade-in-50 data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1',
22 + className
23 + )}
24 + {...props}
25 + />
26 +))
27 +TooltipContent.displayName = TooltipPrimitive.Content.displayName
28 +
29 +export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }
frontend/splitfire-desktop/app/_ui/external-link.tsx new
+20
@@ -0,0 +1,20 @@
1 +import { ArrowRightIcon } from '@heroicons/react/outline';
2 +
3 +export const ExternalLink = ({
4 + children,
5 + href,
6 +}: {
7 + children: React.ReactNode;
8 + href: string;
9 +}) => {
10 + return (
11 + <a
12 + href={href}
13 + className="inline-flex gap-x-2 rounded-lg bg-gray-700 px-3 py-1 text-sm font-medium text-gray-100 no-underline hover:bg-gray-500 hover:text-white"
14 + >
15 + <div>{children}</div>
16 +
17 + <ArrowRightIcon className="block w-4" />
18 + </a>
19 + );
20 +};
frontend/splitfire-desktop/app/_ui/global-nav.tsx new
+97
@@ -0,0 +1,97 @@
1 +'use client';
2 +
3 +import { menus, type Item } from '../_lib/menus';
4 +import Link from 'next/link';
5 +import { useSelectedLayoutSegment } from 'next/navigation';
6 +import { MenuAlt2Icon, XIcon } from '@heroicons/react/solid';
7 +import clsx from 'clsx';
8 +import { useState } from 'react';
9 +import Image from 'next/image';
10 +
11 +export function GlobalNav() {
12 + const [isOpen, setIsOpen] = useState(false);
13 + const close = () => setIsOpen(false);
14 +
15 + return (
16 + <div className="fixed top-0 z-10 flex w-full flex-col border-b border-gray-800 bg-black lg:bottom-0 lg:z-auto lg:w-72 lg:border-b-0 lg:border-r lg:border-gray-800">
17 + <div className="flex h-14 items-center px-4 py-4 lg:h-auto">
18 + <Link
19 + href="/"
20 + className="group flex w-full items-center gap-x-2.5"
21 + onClick={close}
22 + >
23 + <div className="h-7 w-7 rounded-sm border border-white/30 group-hover:border-white/50">
24 + <Image src="/logo192.png" alt="Tauri on Bazel" width={40} height={40} />
25 + </div>
26 +
27 + <h3 className="font-semibold tracking-wide text-gray-400 group-hover:text-gray-50">
28 + Tauri on Bazel
29 + </h3>
30 + </Link>
31 + </div>
32 + <button
33 + type="button"
34 + className="group absolute right-0 top-0 flex h-14 items-center gap-x-2 px-4 lg:hidden"
35 + onClick={() => setIsOpen(!isOpen)}
36 + >
37 + <div className="font-medium text-gray-100 group-hover:text-gray-400">
38 + Menu
39 + </div>
40 + {isOpen ? (
41 + <XIcon className="block w-6 text-gray-400" />
42 + ) : (
43 + <MenuAlt2Icon className="block w-6 text-gray-400" />
44 + )}
45 + </button>
46 +
47 + <div
48 + className={clsx('overflow-y-auto lg:static lg:block', {
49 + 'fixed inset-x-0 bottom-0 top-14 mt-px bg-black': isOpen,
50 + hidden: !isOpen,
51 + })}
52 + >
53 + <nav className="space-y-6 px-2 pb-24 pt-5">
54 + {menus.map((section, index) => {
55 + return (
56 + <div key={index}>
57 +
58 + <div className="space-y-1">
59 + {section.items.map((item) => (
60 + <GlobalNavItem key={item.slug} item={item} close={close} />
61 + ))}
62 + </div>
63 + </div>
64 + );
65 + })}
66 + </nav>
67 + </div>
68 + </div>
69 + );
70 +}
71 +
72 +function GlobalNavItem({
73 + item,
74 + close,
75 +}: {
76 + item: Item;
77 + close: () => false | void;
78 +}) {
79 + const segment = useSelectedLayoutSegment();
80 + const isActive = item.slug === segment;
81 +
82 + return (
83 + <Link
84 + onClick={close}
85 + href={`/${item.slug}`}
86 + className={clsx(
87 + 'block rounded-md px-3 py-2 text-sm font-medium hover:text-gray-300',
88 + {
89 + 'text-gray-400 hover:bg-gray-800': !isActive,
90 + 'text-white': isActive,
91 + },
92 + )}
93 + >
94 + {item.name}
95 + </Link>
96 + );
97 +}
frontend/splitfire-desktop/app/_ui/skeleton-card.tsx new
+16
@@ -0,0 +1,16 @@
1 +import clsx from 'clsx';
2 +
3 +export const SkeletonCard = ({ isLoading }: { isLoading?: boolean }) => (
4 + <div
5 + className={clsx('rounded-2xl bg-gray-900/80 p-4', {
6 + 'relative overflow-hidden before:absolute before:inset-0 before:-translate-x-full before:animate-[shimmer_1.5s_infinite] before:bg-gradient-to-r before:from-transparent before:via-white/10 before:to-transparent':
7 + isLoading,
8 + })}
9 + >
10 + <div className="space-y-3">
11 + <div className="h-14 rounded-lg bg-gray-700" />
12 + <div className="h-3 w-11/12 rounded-lg bg-gray-700" />
13 + <div className="h-3 w-8/12 rounded-lg bg-gray-700" />
14 + </div>
15 + </div>
16 +);
frontend/splitfire-desktop/app/_ui/tab-group.tsx new
+31
@@ -0,0 +1,31 @@
1 +import { Tab } from "./tab";
2 +
3 +export type Item = {
4 + text: string;
5 + slug?: string;
6 + segment?: string;
7 + parallelRoutesKey?: string;
8 +};
9 +
10 +export const TabGroup = ({
11 + path,
12 + parallelRoutesKey,
13 + items,
14 +}: {
15 + path: string;
16 + parallelRoutesKey?: string;
17 + items: Item[];
18 +}) => {
19 + return (
20 + <div className="flex flex-wrap items-center gap-2">
21 + {items.map((item) => (
22 + <Tab
23 + key={path + item.slug}
24 + item={item}
25 + path={path}
26 + parallelRoutesKey={parallelRoutesKey}
27 + />
28 + ))}
29 + </div>
30 + );
31 +};
frontend/splitfire-desktop/app/_ui/tab-nav-item.tsx new
+25
@@ -0,0 +1,25 @@
1 +import clsx from 'clsx';
2 +import Link from 'next/link';
3 +
4 +export const TabNavItem = ({
5 + children,
6 + href,
7 + isActive,
8 +}: {
9 + children: React.ReactNode;
10 + href: string;
11 + isActive?: boolean;
12 +}) => {
13 + return (
14 + <Link
15 + href={href}
16 + className={clsx('rounded-lg px-3 py-1 text-sm font-medium', {
17 + 'bg-gray-700 text-gray-100 hover:bg-gray-500 hover:text-white':
18 + !isActive,
19 + 'bg-vercel-blue text-white': isActive,
20 + })}
21 + >
22 + {children}
23 + </Link>
24 + );
25 +};
frontend/splitfire-desktop/app/_ui/tab.tsx new
+39
@@ -0,0 +1,39 @@
1 +'use client';
2 +
3 +import type { Item } from '@/app/_ui/tab-group';
4 +import clsx from 'clsx';
5 +import Link from 'next/link';
6 +import { useSelectedLayoutSegment } from 'next/navigation';
7 +
8 +export const Tab = ({
9 + path,
10 + parallelRoutesKey,
11 + item,
12 +}: {
13 + path: string;
14 + parallelRoutesKey?: string;
15 + item: Item;
16 +}) => {
17 + const segment = useSelectedLayoutSegment(parallelRoutesKey);
18 +
19 + const href = item.slug ? path + '/' + item.slug : path;
20 + const isActive =
21 + // Example home pages e.g. `/layouts`
22 + (!item.slug && segment === null) ||
23 + segment === item.segment ||
24 + // Nested pages e.g. `/layouts/electronics`
25 + segment === item.slug;
26 +
27 + return (
28 + <Link
29 + href={href}
30 + className={clsx('rounded-lg px-3 py-1 text-sm font-medium', {
31 + 'bg-gray-700 text-gray-100 hover:bg-gray-500 hover:text-white':
32 + !isActive,
33 + 'bg-vercel-blue text-white': isActive,
34 + })}
35 + >
36 + {item.text}
37 + </Link>
38 + );
39 +};
frontend/splitfire-desktop/app/globals.css new
+3
@@ -0,0 +1,3 @@
1 +@tailwind base;
2 +@tailwind components;
3 +@tailwind utilities;
frontend/splitfire-desktop/app/layout.tsx new
+31
@@ -0,0 +1,31 @@
1 +'use client'
2 +
3 +import { AddressBar } from './_ui/address-bar';
4 +import { GlobalNav } from './_ui/global-nav';
5 +import './globals.css';
6 +
7 +export default function RootLayout({
8 + children,
9 +}: {
10 + children: React.ReactNode;
11 +}) {
12 + return (
13 + <html lang="en" className="[color-scheme:dark]">
14 + <body className="bg-gray-1100 overflow-y-scroll bg-[url('/grid.svg')] pb-36">
15 + <GlobalNav />
16 + <div className="lg:pl-72">
17 + <div className="bg-vc-border-gradient rounded-lg p-px shadow-lg shadow-black/20">
18 + <div className="rounded-lg bg-black">
19 + <AddressBar />
20 + </div>
21 + </div>
22 + <div className="mx-auto max-w-4xl space-y-8 px-2 pt-20 lg:px-8 lg:py-8">
23 + <div className="bg-vc-border-gradient rounded-lg p-px shadow-lg shadow-black/20">
24 + <div className="rounded-lg bg-black p-3.5 lg:p-6">{children}</div>
25 + </div>
26 + </div>
27 + </div>
28 + </body>
29 + </html>
30 + );
31 +}
frontend/splitfire-desktop/app/page.tsx new
+12
@@ -0,0 +1,12 @@
1 +export default function Page() {
2 + return (
3 + <div className="space-y-8">
4 + <h1 className="text-xl font-medium text-gray-300">Hello, Tauri on Bazel!</h1>
5 + <div className="space-y-10 text-white">
6 + <div className="space-y-5">
7 + <div className="grid grid-cols-1 gap-5 lg:grid-cols-2"></div>
8 + </div>
9 + </div>
10 + </div>
11 + );
12 +}
frontend/splitfire-desktop/app/play/(checkout)/checkout/page.tsx new
+15
@@ -0,0 +1,15 @@
1 +export async function generateStaticParams() {
2 + const posts = [
3 + { slug: "post-1" },
4 + { slug: "post-2" },
5 + { slug: "post-3" },
6 + ];
7 +
8 + return posts.map((post) => ({
9 + slug: post.slug,
10 + }))
11 +}
12 +
13 +export default function Page() {
14 + return <h1 className="text-xl font-medium text-gray-400/80">Checkout</h1>;
15 +}
frontend/splitfire-desktop/app/play/(checkout)/layout.tsx new
+23
@@ -0,0 +1,23 @@
1 +import { Boundary } from '@/app/_ui/boundary';
2 +import { TabNavItem } from '@/app/_ui/tab-nav-item';
3 +import React from 'react';
4 +
5 +export default function Layout({ children }: { children: React.ReactNode }) {
6 + return (
7 + <Boundary
8 + labels={['checkout layout']}
9 + color="blue"
10 + animateRerendering={false}
11 + >
12 + <div className="space-y-9">
13 + <div className="flex items-center justify-between">
14 + <div className="flex items-center gap-x-4">
15 + <TabNavItem href="/play">Back</TabNavItem>
16 + </div>
17 + </div>
18 +
19 + <div>{children}</div>
20 + </div>
21 + </Boundary>
22 + );
23 +}
frontend/splitfire-desktop/app/play/(checkout)/template.tsx new
+6
@@ -0,0 +1,6 @@
1 +import { Boundary } from '@/app/_ui/boundary';
2 +import React from 'react';
3 +
4 +export default function Template({ children }: { children: React.ReactNode }) {
5 + return <Boundary>{children}</Boundary>;
6 +}
frontend/splitfire-desktop/app/play/layout.tsx new
+29
@@ -0,0 +1,29 @@
1 +import React from 'react';
2 +
3 +const title = 'Nested Layouts';
4 +
5 +export const metadata = {
6 + metadataBase: new URL('https://splitfire.ai'),
7 + title,
8 + openGraph: {
9 + title,
10 + images: [`/api/og?title=${title}`],
11 + },
12 +};
13 +
14 +export default async function Layout({
15 + children,
16 +}: {
17 + children: React.ReactNode;
18 +}) {
19 + return (
20 + <div className="space-y-9">
21 + <div className="flex justify-between">
22 + <div className="self-start">
23 + <h1 className="text-3xl font-bold">Ready to play!</h1>
24 + </div>
25 + </div>
26 + <div>{children}</div>
27 + </div>
28 + );
29 +}
frontend/splitfire-desktop/app/play/page.tsx new
+25
@@ -0,0 +1,25 @@
1 +import { SkeletonCard } from '../_ui/skeleton-card';
2 +
3 +export async function generateStaticParams() {
4 + const posts = [
5 + { slug: "post-1" },
6 + { slug: "post-2" },
7 + { slug: "post-3" },
8 + ];
9 +
10 + return posts.map((post) => ({
11 + slug: post.slug,
12 + }))
13 +}
14 +
15 +export default function Page() {
16 + return (
17 + <div className="prose prose-sm prose-invert max-w-none">
18 + <div className="grid grid-cols-1 gap-6 lg:grid-cols-3">
19 + {Array.from({ length: 6 }).map((_, i) => (
20 + <SkeletonCard key={i} />
21 + ))}
22 + </div>
23 + </div>
24 + );
25 +}
frontend/splitfire-desktop/bun.lockb
Binary files a/frontend/splitfire-desktop/bun.lockb and /dev/null differ
frontend/splitfire-desktop/next.config.js new
+7
@@ -0,0 +1,7 @@
1 +/** @type {import('next').NextConfig} */
2 +const nextConfig = {
3 + output: 'export',
4 + images: { unoptimized: true }
5 +};
6 +
7 +module.exports = nextConfig;
frontend/splitfire-desktop/package-lock.json new
+18253
@@ -0,0 +1,18253 @@
1 +{
2 + "name": "splitfire",
3 + "version": "0.3.4",
4 + "lockfileVersion": 3,
5 + "requires": true,
6 + "packages": {
7 + "": {
8 + "name": "splitfire",
9 + "version": "0.3.4",
10 + "license": "MIT",
11 + "dependencies": {
12 + "@heroicons/react": "1.0.6",
13 + "@radix-ui/react-slot": "^1.0.2",
14 + "@radix-ui/react-tooltip": "^1.0.7",
15 + "@sentry/react": "^7.12.1",
16 + "@sentry/tracing": "^7.12.1",
17 + "@tauri-apps/api": "^1.5.3",
18 + "@types/actioncable": "^5.2.7",
19 + "@types/jest": "^27.4.0",
20 + "@types/node": "18.17.0",
21 + "@types/react": "18.2.78",
22 + "@types/react-dom": "18.2.25",
23 + "actioncable": "^5.2.6",
24 + "axios": "^0.25.0",
25 + "bootstrap": "5.1.3",
26 + "class-variance-authority": "^0.7.0",
27 + "clsx": "1.2.1",
28 + "dexie": "^3.2.0",
29 + "dexie-observable": "^3.0.0-beta.11",
30 + "eslint": "8.32.0",
31 + "eslint-config-next": "14.1.0",
32 + "lodash.debounce": "^4.0.8",
33 + "next": "14.2.5",
34 + "react": "18.2.0",
35 + "react-bootstrap": "^2.1.1",
36 + "react-dnd": "^16.0.1",
37 + "react-dnd-html5-backend": "^16.0.1",
38 + "react-dom": "18.2.0",
39 + "react-hot-toast": "^2.4.1",
40 + "react-icons": "^4.3.1",
41 + "react-intl": "^5.24.4",
42 + "react-router-dom": "6",
43 + "react-scripts": "5.0.0",
44 + "react-textarea-autosize": "^8.5.3",
45 + "react-transition-group": "4.x",
46 + "react-youtube": "^7.14.0",
47 + "tailwind-merge": "^2.2.1",
48 + "tone": "^14.7.77",
49 + "tslog": "^4.9.2",
50 + "typescript": "4.9.4",
51 + "web-vitals": "^2.1.3"
52 + },
53 + "devDependencies": {
54 + "@tailwindcss/forms": "0.5.3",
55 + "@tailwindcss/typography": "0.5.9",
56 + "@tauri-apps/cli": "^1.5.14",
57 + "@types/lodash.debounce": "^4.0.7",
58 + "autoprefixer": "^10.4.19",
59 + "postcss": "^8.4.38",
60 + "tailwindcss": "^3.4.3"
61 + }
62 + },
63 + "node_modules/@alloc/quick-lru": {
64 + "version": "5.2.0",
65 + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
66 + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
67 + "engines": {
68 + "node": ">=10"
69 + },
70 + "funding": {
71 + "url": "https://github.com/sponsors/sindresorhus"
72 + }
73 + },
74 + "node_modules/@ampproject/remapping": {
75 + "version": "2.3.0",
76 + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
77 + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
78 + "dependencies": {
79 + "@jridgewell/gen-mapping": "^0.3.5",
80 + "@jridgewell/trace-mapping": "^0.3.24"
81 + },
82 + "engines": {
83 + "node": ">=6.0.0"
84 + }
85 + },
86 + "node_modules/@babel/code-frame": {
87 + "version": "7.24.7",
88 + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz",
89 + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==",
90 + "dependencies": {
91 + "@babel/highlight": "^7.24.7",
92 + "picocolors": "^1.0.0"
93 + },
94 + "engines": {
95 + "node": ">=6.9.0"
96 + }
97 + },
98 + "node_modules/@babel/compat-data": {
99 + "version": "7.25.0",
100 + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.0.tgz",
101 + "integrity": "sha512-P4fwKI2mjEb3ZU5cnMJzvRsRKGBUcs8jvxIoRmr6ufAY9Xk2Bz7JubRTTivkw55c7WQJfTECeqYVa+HZ0FzREg==",
102 + "engines": {
103 + "node": ">=6.9.0"
104 + }
105 + },
106 + "node_modules/@babel/core": {
107 + "version": "7.24.9",
108 + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.9.tgz",
109 + "integrity": "sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==",
110 + "dependencies": {
111 + "@ampproject/remapping": "^2.2.0",
112 + "@babel/code-frame": "^7.24.7",
113 + "@babel/generator": "^7.24.9",
114 + "@babel/helper-compilation-targets": "^7.24.8",
115 + "@babel/helper-module-transforms": "^7.24.9",
116 + "@babel/helpers": "^7.24.8",
117 + "@babel/parser": "^7.24.8",
118 + "@babel/template": "^7.24.7",
119 + "@babel/traverse": "^7.24.8",
120 + "@babel/types": "^7.24.9",
121 + "convert-source-map": "^2.0.0",
122 + "debug": "^4.1.0",
123 + "gensync": "^1.0.0-beta.2",
124 + "json5": "^2.2.3",
125 + "semver": "^6.3.1"
126 + },
127 + "engines": {
128 + "node": ">=6.9.0"
129 + },
130 + "funding": {
131 + "type": "opencollective",
132 + "url": "https://opencollective.com/babel"
133 + }
134 + },
135 + "node_modules/@babel/core/node_modules/semver": {
136 + "version": "6.3.1",
137 + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
138 + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
139 + "bin": {
140 + "semver": "bin/semver.js"
141 + }
142 + },
143 + "node_modules/@babel/eslint-parser": {
144 + "version": "7.25.1",
145 + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.25.1.tgz",
146 + "integrity": "sha512-Y956ghgTT4j7rKesabkh5WeqgSFZVFwaPR0IWFm7KFHFmmJ4afbG49SmfW4S+GyRPx0Dy5jxEWA5t0rpxfElWg==",
147 + "dependencies": {
148 + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
149 + "eslint-visitor-keys": "^2.1.0",
150 + "semver": "^6.3.1"
151 + },
152 + "engines": {
153 + "node": "^10.13.0 || ^12.13.0 || >=14.0.0"
154 + },
155 + "peerDependencies": {
156 + "@babel/core": "^7.11.0",
157 + "eslint": "^7.5.0 || ^8.0.0 || ^9.0.0"
158 + }
159 + },
160 + "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": {
161 + "version": "2.1.0",
162 + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
163 + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
164 + "engines": {
165 + "node": ">=10"
166 + }
167 + },
168 + "node_modules/@babel/eslint-parser/node_modules/semver": {
169 + "version": "6.3.1",
170 + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
171 + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
172 + "bin": {
173 + "semver": "bin/semver.js"
174 + }
175 + },
176 + "node_modules/@babel/generator": {
177 + "version": "7.25.0",
178 + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz",
179 + "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==",
180 + "dependencies": {
181 + "@babel/types": "^7.25.0",
182 + "@jridgewell/gen-mapping": "^0.3.5",
183 + "@jridgewell/trace-mapping": "^0.3.25",
184 + "jsesc": "^2.5.1"
185 + },
186 + "engines": {
187 + "node": ">=6.9.0"
188 + }
189 + },
190 + "node_modules/@babel/helper-annotate-as-pure": {
191 + "version": "7.24.7",
192 + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz",
193 + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==",
194 + "dependencies": {
195 + "@babel/types": "^7.24.7"
196 + },
197 + "engines": {
198 + "node": ">=6.9.0"
199 + }
200 + },
201 + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
202 + "version": "7.24.7",
203 + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz",
204 + "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==",
205 + "dependencies": {
206 + "@babel/traverse": "^7.24.7",
207 + "@babel/types": "^7.24.7"
208 + },
209 + "engines": {
210 + "node": ">=6.9.0"
211 + }
212 + },
213 + "node_modules/@babel/helper-compilation-targets": {
214 + "version": "7.24.8",
215 + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.8.tgz",
216 + "integrity": "sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==",
217 + "dependencies": {
218 + "@babel/compat-data": "^7.24.8",
219 + "@babel/helper-validator-option": "^7.24.8",
220 + "browserslist": "^4.23.1",
221 + "lru-cache": "^5.1.1",
222 + "semver": "^6.3.1"
223 + },
224 + "engines": {
225 + "node": ">=6.9.0"
226 + }
227 + },
228 + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": {
229 + "version": "5.1.1",
230 + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
231 + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
232 + "dependencies": {
233 + "yallist": "^3.0.2"
234 + }
235 + },
236 + "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
237 + "version": "6.3.1",
238 + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
239 + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
240 + "bin": {
241 + "semver": "bin/semver.js"
242 + }
243 + },
244 + "node_modules/@babel/helper-create-class-features-plugin": {
245 + "version": "7.25.0",
246 + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.0.tgz",
247 + "integrity": "sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ==",
248 + "dependencies": {
249 + "@babel/helper-annotate-as-pure": "^7.24.7",
250 + "@babel/helper-member-expression-to-functions": "^7.24.8",
251 + "@babel/helper-optimise-call-expression": "^7.24.7",
252 + "@babel/helper-replace-supers": "^7.25.0",
253 + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7",
254 + "@babel/traverse": "^7.25.0",
255 + "semver": "^6.3.1"
256 + },
257 + "engines": {
258 + "node": ">=6.9.0"
259 + },
260 + "peerDependencies": {
261 + "@babel/core": "^7.0.0"
262 + }
263 + },
264 + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": {
265 + "version": "6.3.1",
266 + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
267 + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
268 + "bin": {
269 + "semver": "bin/semver.js"
270 + }
271 + },
272 + "node_modules/@babel/helper-create-regexp-features-plugin": {
273 + "version": "7.25.0",
274 + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.0.tgz",
275 + "integrity": "sha512-q0T+dknZS+L5LDazIP+02gEZITG5unzvb6yIjcmj5i0eFrs5ToBV2m2JGH4EsE/gtP8ygEGLGApBgRIZkTm7zg==",
276 + "dependencies": {
277 + "@babel/helper-annotate-as-pure": "^7.24.7",
278 + "regexpu-core": "^5.3.1",
279 + "semver": "^6.3.1"
280 + },
281 + "engines": {
282 + "node": ">=6.9.0"
283 + },
284 + "peerDependencies": {
285 + "@babel/core": "^7.0.0"
286 + }
287 + },
288 + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": {
289 + "version": "6.3.1",
290 + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
291 + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
292 + "bin": {
293 + "semver": "bin/semver.js"
294 + }
295 + },
296 + "node_modules/@babel/helper-define-polyfill-provider": {
297 + "version": "0.6.2",
298 + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz",
299 + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==",
300 + "dependencies": {
301 + "@babel/helper-compilation-targets": "^7.22.6",
302 + "@babel/helper-plugin-utils": "^7.22.5",
303 + "debug": "^4.1.1",
304 + "lodash.debounce": "^4.0.8",
305 + "resolve": "^1.14.2"
306 + },
307 + "peerDependencies": {
308 + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
309 + }
310 + },
311 + "node_modules/@babel/helper-member-expression-to-functions": {
312 + "version": "7.24.8",
313 + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz",
314 + "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==",
315 + "dependencies": {
316 + "@babel/traverse": "^7.24.8",
317 + "@babel/types": "^7.24.8"
318 + },
319 + "engines": {
320 + "node": ">=6.9.0"
321 + }
322 + },
323 + "node_modules/@babel/helper-module-imports": {
324 + "version": "7.24.7",
325 + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz",
326 + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==",
327 + "dependencies": {
328 + "@babel/traverse": "^7.24.7",
329 + "@babel/types": "^7.24.7"
330 + },
331 + "engines": {
332 + "node": ">=6.9.0"
333 + }
334 + },
335 + "node_modules/@babel/helper-module-transforms": {
336 + "version": "7.25.0",
337 + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.0.tgz",
338 + "integrity": "sha512-bIkOa2ZJYn7FHnepzr5iX9Kmz8FjIz4UKzJ9zhX3dnYuVW0xul9RuR3skBfoLu+FPTQw90EHW9rJsSZhyLQ3fQ==",
339 + "dependencies": {
340 + "@babel/helper-module-imports": "^7.24.7",
341 + "@babel/helper-simple-access": "^7.24.7",
342 + "@babel/helper-validator-identifier": "^7.24.7",
343 + "@babel/traverse": "^7.25.0"
344 + },
345 + "engines": {
346 + "node": ">=6.9.0"
347 + },
348 + "peerDependencies": {
349 + "@babel/core": "^7.0.0"
350 + }
351 + },
352 + "node_modules/@babel/helper-optimise-call-expression": {
353 + "version": "7.24.7",
354 + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz",
355 + "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==",
356 + "dependencies": {
357 + "@babel/types": "^7.24.7"
358 + },
359 + "engines": {
360 + "node": ">=6.9.0"
361 + }
362 + },
363 + "node_modules/@babel/helper-plugin-utils": {
364 + "version": "7.24.8",
365 + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz",
366 + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==",
367 + "engines": {
368 + "node": ">=6.9.0"
369 + }
370 + },
371 + "node_modules/@babel/helper-remap-async-to-generator": {
372 + "version": "7.25.0",
373 + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz",
374 + "integrity": "sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==",
375 + "dependencies": {
376 + "@babel/helper-annotate-as-pure": "^7.24.7",
377 + "@babel/helper-wrap-function": "^7.25.0",
378 + "@babel/traverse": "^7.25.0"
379 + },
380 + "engines": {
381 + "node": ">=6.9.0"
382 + },
383 + "peerDependencies": {
384 + "@babel/core": "^7.0.0"
385 + }
386 + },
387 + "node_modules/@babel/helper-replace-supers": {
388 + "version": "7.25.0",
389 + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz",
390 + "integrity": "sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==",
391 + "dependencies": {
392 + "@babel/helper-member-expression-to-functions": "^7.24.8",
393 + "@babel/helper-optimise-call-expression": "^7.24.7",
394 + "@babel/traverse": "^7.25.0"
395 + },
396 + "engines": {
397 + "node": ">=6.9.0"
398 + },
399 + "peerDependencies": {
400 + "@babel/core": "^7.0.0"
401 + }
402 + },
403 + "node_modules/@babel/helper-simple-access": {
404 + "version": "7.24.7",
405 + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz",
406 + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==",
407 + "dependencies": {
408 + "@babel/traverse": "^7.24.7",
409 + "@babel/types": "^7.24.7"
410 + },
411 + "engines": {
412 + "node": ">=6.9.0"
413 + }
414 + },
415 + "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
416 + "version": "7.24.7",
417 + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz",
418 + "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==",
419 + "dependencies": {
420 + "@babel/traverse": "^7.24.7",
421 + "@babel/types": "^7.24.7"
422 + },
423 + "engines": {
424 + "node": ">=6.9.0"
425 + }
426 + },
427 + "node_modules/@babel/helper-string-parser": {
428 + "version": "7.24.8",
429 + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz",
430 + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==",
431 + "engines": {
432 + "node": ">=6.9.0"
433 + }
434 + },
435 + "node_modules/@babel/helper-validator-identifier": {
436 + "version": "7.24.7",
437 + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz",
438 + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==",
439 + "engines": {
440 + "node": ">=6.9.0"
441 + }
442 + },
443 + "node_modules/@babel/helper-validator-option": {
444 + "version": "7.24.8",
445 + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz",
446 + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==",
447 + "engines": {
448 + "node": ">=6.9.0"
449 + }
450 + },
451 + "node_modules/@babel/helper-wrap-function": {
452 + "version": "7.25.0",
453 + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz",
454 + "integrity": "sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==",
455 + "dependencies": {
456 + "@babel/template": "^7.25.0",
457 + "@babel/traverse": "^7.25.0",
458 + "@babel/types": "^7.25.0"
459 + },
460 + "engines": {
461 + "node": ">=6.9.0"
462 + }
463 + },
464 + "node_modules/@babel/helpers": {
465 + "version": "7.25.0",
466 + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.0.tgz",
467 + "integrity": "sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==",
468 + "dependencies": {
469 + "@babel/template": "^7.25.0",
470 + "@babel/types": "^7.25.0"
471 + },
472 + "engines": {
473 + "node": ">=6.9.0"
474 + }
475 + },
476 + "node_modules/@babel/highlight": {
477 + "version": "7.24.7",
478 + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz",
479 + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==",
480 + "dependencies": {
481 + "@babel/helper-validator-identifier": "^7.24.7",
482 + "chalk": "^2.4.2",
483 + "js-tokens": "^4.0.0",
484 + "picocolors": "^1.0.0"
485 + },
486 + "engines": {
487 + "node": ">=6.9.0"
488 + }
489 + },
490 + "node_modules/@babel/highlight/node_modules/ansi-styles": {
491 + "version": "3.2.1",
492 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
493 + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
494 + "dependencies": {
495 + "color-convert": "^1.9.0"
496 + },
497 + "engines": {
498 + "node": ">=4"
499 + }
500 + },
501 + "node_modules/@babel/highlight/node_modules/chalk": {
502 + "version": "2.4.2",
503 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
504 + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
505 + "dependencies": {
506 + "ansi-styles": "^3.2.1",
507 + "escape-string-regexp": "^1.0.5",
508 + "supports-color": "^5.3.0"
509 + },
510 + "engines": {
511 + "node": ">=4"
512 + }
513 + },
514 + "node_modules/@babel/highlight/node_modules/color-convert": {
515 + "version": "1.9.3",
516 + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
517 + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
518 + "dependencies": {
519 + "color-name": "1.1.3"
520 + }
521 + },
522 + "node_modules/@babel/highlight/node_modules/color-name": {
523 + "version": "1.1.3",
524 + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
525 + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
526 + },
527 + "node_modules/@babel/highlight/node_modules/escape-string-regexp": {
528 + "version": "1.0.5",
529 + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
530 + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
531 + "engines": {
532 + "node": ">=0.8.0"
533 + }
534 + },
535 + "node_modules/@babel/highlight/node_modules/has-flag": {
536 + "version": "3.0.0",
537 + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
538 + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
539 + "engines": {
540 + "node": ">=4"
541 + }
542 + },
543 + "node_modules/@babel/highlight/node_modules/supports-color": {
544 + "version": "5.5.0",
545 + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
546 + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
547 + "dependencies": {
548 + "has-flag": "^3.0.0"
549 + },
550 + "engines": {
551 + "node": ">=4"
552 + }
553 + },
554 + "node_modules/@babel/parser": {
555 + "version": "7.25.0",
556 + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.0.tgz",
557 + "integrity": "sha512-CzdIU9jdP0dg7HdyB+bHvDJGagUv+qtzZt5rYCWwW6tITNqV9odjp6Qu41gkG0ca5UfdDUWrKkiAnHHdGRnOrA==",
558 + "bin": {
559 + "parser": "bin/babel-parser.js"
560 + },
561 + "engines": {
562 + "node": ">=6.0.0"
563 + }
564 + },
565 + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": {
566 + "version": "7.25.0",
567 + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.0.tgz",
568 + "integrity": "sha512-dG0aApncVQwAUJa8tP1VHTnmU67BeIQvKafd3raEx315H54FfkZSz3B/TT+33ZQAjatGJA79gZqTtqL5QZUKXw==",
569 + "dependencies": {
570 + "@babel/helper-plugin-utils": "^7.24.8",
571 + "@babel/traverse": "^7.25.0"
572 + },
573 + "engines": {
574 + "node": ">=6.9.0"
575 + },
576 + "peerDependencies": {
577 + "@babel/core": "^7.0.0"
578 + }
579 + },
580 + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": {
581 + "version": "7.25.0",
582 + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz",
583 + "integrity": "sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==",
584 + "dependencies": {
585 + "@babel/helper-plugin-utils": "^7.24.8"
586 + },
587 + "engines": {
588 + "node": ">=6.9.0"
589 + },
590 + "peerDependencies": {
591 + "@babel/core": "^7.0.0"
592 + }
593 + },
594 + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
595 + "version": "7.25.0",
596 + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.0.tgz",
597 + "integrity": "sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==",
598 + "dependencies": {
599 + "@babel/helper-plugin-utils": "^7.24.8"
600 + },
601 + "engines": {
602 + "node": ">=6.9.0"
603 + },
604 + "peerDependencies": {
605 + "@babel/core": "^7.0.0"
606 + }
607 + },
608 + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
609 + "version": "7.24.7",
610 + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz",
611 + "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==",
612 + "dependencies": {
613 + "@babel/helper-plugin-utils": "^7.24.7",
614 + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7",
615 + "@babel/plugin-transform-optional-chaining": "^7.24.7"
616 + },
617 + "engines": {
618 + "node": ">=6.9.0"
619 + },
620 + "peerDependencies": {
621 + "@babel/core": "^7.13.0"
622 + }
623 + },
624 + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": {
625 + "version": "7.25.0",
626 + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz",
627 + "integrity": "sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==",
628 + "dependencies": {
629 + "@babel/helper-plugin-utils": "^7.24.8",
630 + "@babel/traverse": "^7.25.0"
631 + },
632 + "engines": {
633 + "node": ">=6.9.0"
634 + },
635 + "peerDependencies": {
636 + "@babel/core": "^7.0.0"
637 + }
638 + },
639 + "node_modules/@babel/plugin-proposal-class-properties": {
640 + "version": "7.18.6",
641 + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz",
642 + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==",
643 + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.",
644 + "dependencies": {
645 + "@babel/helper-create-class-features-plugin": "^7.18.6",
646 + "@babel/helper-plugin-utils": "^7.18.6"
647 + },
648 + "engines": {
649 + "node": ">=6.9.0"
650 + },
651 + "peerDependencies": {
652 + "@babel/core": "^7.0.0-0"
653 + }
654 + },
655 + "node_modules/@babel/plugin-proposal-decorators": {
656 + "version": "7.24.7",
657 + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.24.7.tgz",
658 + "integrity": "sha512-RL9GR0pUG5Kc8BUWLNDm2T5OpYwSX15r98I0IkgmRQTXuELq/OynH8xtMTMvTJFjXbMWFVTKtYkTaYQsuAwQlQ==",
659 + "dependencies": {
660 + "@babel/helper-create-class-features-plugin": "^7.24.7",
661 + "@babel/helper-plugin-utils": "^7.24.7",
662 + "@babel/plugin-syntax-decorators": "^7.24.7"
663 + },
664 + "engines": {
665 + "node": ">=6.9.0"
666 + },
667 + "peerDependencies": {
668 + "@babel/core": "^7.0.0-0"
669 + }
670 + },
671 + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": {
672 + "version": "7.18.6",
673 + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz",
674 + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==",
675 + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.",
676 + "dependencies": {
677 + "@babel/helper-plugin-utils": "^7.18.6",
678 + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
679 + },
680 + "engines": {
681 + "node": ">=6.9.0"
682 + },
683 + "peerDependencies": {
684 + "@babel/core": "^7.0.0-0"
685 + }
686 + },
687 + "node_modules/@babel/plugin-proposal-numeric-separator": {
688 + "version": "7.18.6",
689 + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz",
690 + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==",
691 + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.",
692 + "dependencies": {
693 + "@babel/helper-plugin-utils": "^7.18.6",
694 + "@babel/plugin-syntax-numeric-separator": "^7.10.4"
695 + },
696 + "engines": {
697 + "node": ">=6.9.0"
698 + },
699 + "peerDependencies": {
700 + "@babel/core": "^7.0.0-0"
701 + }
702 + },
703 + "node_modules/@babel/plugin-proposal-optional-chaining": {
704 + "version": "7.21.0",
705 + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz",
706 + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==",
707 + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.",
708 + "dependencies": {
709 + "@babel/helper-plugin-utils": "^7.20.2",
710 + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0",
711 + "@babel/plugin-syntax-optional-chaining": "^7.8.3"
712 + },
713 + "engines": {
714 + "node": ">=6.9.0"
715 + },
716 + "peerDependencies": {
717 + "@babel/core": "^7.0.0-0"
718 + }
719 + },
720 + "node_modules/@babel/plugin-proposal-private-methods": {
721 + "version": "7.18.6",
722 + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz",
723 + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==",
724 + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.",
725 + "dependencies": {
726 + "@babel/helper-create-class-features-plugin": "^7.18.6",
727 + "@babel/helper-plugin-utils": "^7.18.6"
728 + },
729 + "engines": {
730 + "node": ">=6.9.0"
731 + },
732 + "peerDependencies": {
733 + "@babel/core": "^7.0.0-0"
734 + }
735 + },
736 + "node_modules/@babel/plugin-proposal-private-property-in-object": {
737 + "version": "7.21.0-placeholder-for-preset-env.2",
738 + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
739 + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==",
740 + "engines": {
741 + "node": ">=6.9.0"
742 + },
743 + "peerDependencies": {
744 + "@babel/core": "^7.0.0-0"
745 + }
746 + },
747 + "node_modules/@babel/plugin-syntax-async-generators": {
748 + "version": "7.8.4",
749 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
750 + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
751 + "dependencies": {
752 + "@babel/helper-plugin-utils": "^7.8.0"
753 + },
754 + "peerDependencies": {
755 + "@babel/core": "^7.0.0-0"
756 + }
757 + },
758 + "node_modules/@babel/plugin-syntax-bigint": {
759 + "version": "7.8.3",
760 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
761 + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
762 + "dependencies": {
763 + "@babel/helper-plugin-utils": "^7.8.0"
764 + },
765 + "peerDependencies": {
766 + "@babel/core": "^7.0.0-0"
767 + }
768 + },
769 + "node_modules/@babel/plugin-syntax-class-properties": {
770 + "version": "7.12.13",
771 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
772 + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
773 + "dependencies": {
774 + "@babel/helper-plugin-utils": "^7.12.13"
775 + },
776 + "peerDependencies": {
777 + "@babel/core": "^7.0.0-0"
778 + }
779 + },
780 + "node_modules/@babel/plugin-syntax-class-static-block": {
781 + "version": "7.14.5",
782 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
783 + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
784 + "dependencies": {
785 + "@babel/helper-plugin-utils": "^7.14.5"
786 + },
787 + "engines": {
788 + "node": ">=6.9.0"
789 + },
790 + "peerDependencies": {
791 + "@babel/core": "^7.0.0-0"
792 + }
793 + },
794 + "node_modules/@babel/plugin-syntax-decorators": {
795 + "version": "7.24.7",
796 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.7.tgz",
797 + "integrity": "sha512-Ui4uLJJrRV1lb38zg1yYTmRKmiZLiftDEvZN2iq3kd9kUFU+PttmzTbAFC2ucRk/XJmtek6G23gPsuZbhrT8fQ==",
798 + "dependencies": {
799 + "@babel/helper-plugin-utils": "^7.24.7"
800 + },
801 + "engines": {
802 + "node": ">=6.9.0"
803 + },
804 + "peerDependencies": {
805 + "@babel/core": "^7.0.0-0"
806 + }
807 + },
808 + "node_modules/@babel/plugin-syntax-dynamic-import": {
809 + "version": "7.8.3",
810 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
811 + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
812 + "dependencies": {
813 + "@babel/helper-plugin-utils": "^7.8.0"
814 + },
815 + "peerDependencies": {
816 + "@babel/core": "^7.0.0-0"
817 + }
818 + },
819 + "node_modules/@babel/plugin-syntax-export-namespace-from": {
820 + "version": "7.8.3",
821 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
822 + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
823 + "dependencies": {
824 + "@babel/helper-plugin-utils": "^7.8.3"
825 + },
826 + "peerDependencies": {
827 + "@babel/core": "^7.0.0-0"
828 + }
829 + },
830 + "node_modules/@babel/plugin-syntax-flow": {
831 + "version": "7.24.7",
832 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.24.7.tgz",
833 + "integrity": "sha512-9G8GYT/dxn/D1IIKOUBmGX0mnmj46mGH9NnZyJLwtCpgh5f7D2VbuKodb+2s9m1Yavh1s7ASQN8lf0eqrb1LTw==",
834 + "dependencies": {
835 + "@babel/helper-plugin-utils": "^7.24.7"
836 + },
837 + "engines": {
838 + "node": ">=6.9.0"
839 + },
840 + "peerDependencies": {
841 + "@babel/core": "^7.0.0-0"
842 + }
843 + },
844 + "node_modules/@babel/plugin-syntax-import-assertions": {
845 + "version": "7.24.7",
846 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz",
847 + "integrity": "sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==",
848 + "dependencies": {
849 + "@babel/helper-plugin-utils": "^7.24.7"
850 + },
851 + "engines": {
852 + "node": ">=6.9.0"
853 + },
854 + "peerDependencies": {
855 + "@babel/core": "^7.0.0-0"
856 + }
857 + },
858 + "node_modules/@babel/plugin-syntax-import-attributes": {
859 + "version": "7.24.7",
860 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz",
861 + "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==",
862 + "dependencies": {
863 + "@babel/helper-plugin-utils": "^7.24.7"
864 + },
865 + "engines": {
866 + "node": ">=6.9.0"
867 + },
868 + "peerDependencies": {
869 + "@babel/core": "^7.0.0-0"
870 + }
871 + },
872 + "node_modules/@babel/plugin-syntax-import-meta": {
873 + "version": "7.10.4",
874 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
875 + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
876 + "dependencies": {
877 + "@babel/helper-plugin-utils": "^7.10.4"
878 + },
879 + "peerDependencies": {
880 + "@babel/core": "^7.0.0-0"
881 + }
882 + },
883 + "node_modules/@babel/plugin-syntax-json-strings": {
884 + "version": "7.8.3",
885 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
886 + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
887 + "dependencies": {
888 + "@babel/helper-plugin-utils": "^7.8.0"
889 + },
890 + "peerDependencies": {
891 + "@babel/core": "^7.0.0-0"
892 + }
893 + },
894 + "node_modules/@babel/plugin-syntax-jsx": {
895 + "version": "7.24.7",
896 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz",
897 + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==",
898 + "dependencies": {
899 + "@babel/helper-plugin-utils": "^7.24.7"
900 + },
901 + "engines": {
902 + "node": ">=6.9.0"
903 + },
904 + "peerDependencies": {
905 + "@babel/core": "^7.0.0-0"
906 + }
907 + },
908 + "node_modules/@babel/plugin-syntax-logical-assignment-operators": {
909 + "version": "7.10.4",
910 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
911 + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
912 + "dependencies": {
913 + "@babel/helper-plugin-utils": "^7.10.4"
914 + },
915 + "peerDependencies": {
916 + "@babel/core": "^7.0.0-0"
917 + }
918 + },
919 + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": {
920 + "version": "7.8.3",
921 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
922 + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
923 + "dependencies": {
924 + "@babel/helper-plugin-utils": "^7.8.0"
925 + },
926 + "peerDependencies": {
927 + "@babel/core": "^7.0.0-0"
928 + }
929 + },
930 + "node_modules/@babel/plugin-syntax-numeric-separator": {
931 + "version": "7.10.4",
932 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
933 + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
934 + "dependencies": {
935 + "@babel/helper-plugin-utils": "^7.10.4"
936 + },
937 + "peerDependencies": {
938 + "@babel/core": "^7.0.0-0"
939 + }
940 + },
941 + "node_modules/@babel/plugin-syntax-object-rest-spread": {
942 + "version": "7.8.3",
943 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
944 + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
945 + "dependencies": {
946 + "@babel/helper-plugin-utils": "^7.8.0"
947 + },
948 + "peerDependencies": {
949 + "@babel/core": "^7.0.0-0"
950 + }
951 + },
952 + "node_modules/@babel/plugin-syntax-optional-catch-binding": {
953 + "version": "7.8.3",
954 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
955 + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
956 + "dependencies": {
957 + "@babel/helper-plugin-utils": "^7.8.0"
958 + },
959 + "peerDependencies": {
960 + "@babel/core": "^7.0.0-0"
961 + }
962 + },
963 + "node_modules/@babel/plugin-syntax-optional-chaining": {
964 + "version": "7.8.3",
965 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
966 + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
967 + "dependencies": {
968 + "@babel/helper-plugin-utils": "^7.8.0"
969 + },
970 + "peerDependencies": {
971 + "@babel/core": "^7.0.0-0"
972 + }
973 + },
974 + "node_modules/@babel/plugin-syntax-private-property-in-object": {
975 + "version": "7.14.5",
976 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
977 + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
978 + "dependencies": {
979 + "@babel/helper-plugin-utils": "^7.14.5"
980 + },
981 + "engines": {
982 + "node": ">=6.9.0"
983 + },
984 + "peerDependencies": {
985 + "@babel/core": "^7.0.0-0"
986 + }
987 + },
988 + "node_modules/@babel/plugin-syntax-top-level-await": {
989 + "version": "7.14.5",
990 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
991 + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
992 + "dependencies": {
993 + "@babel/helper-plugin-utils": "^7.14.5"
994 + },
995 + "engines": {
996 + "node": ">=6.9.0"
997 + },
998 + "peerDependencies": {
999 + "@babel/core": "^7.0.0-0"
1000 + }
1001 + },
1002 + "node_modules/@babel/plugin-syntax-typescript": {
1003 + "version": "7.24.7",
1004 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz",
1005 + "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==",
1006 + "dependencies": {
1007 + "@babel/helper-plugin-utils": "^7.24.7"
1008 + },
1009 + "engines": {
1010 + "node": ">=6.9.0"
1011 + },
1012 + "peerDependencies": {
1013 + "@babel/core": "^7.0.0-0"
1014 + }
1015 + },
1016 + "node_modules/@babel/plugin-syntax-unicode-sets-regex": {
1017 + "version": "7.18.6",
1018 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz",
1019 + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==",
1020 + "dependencies": {
1021 + "@babel/helper-create-regexp-features-plugin": "^7.18.6",
1022 + "@babel/helper-plugin-utils": "^7.18.6"
1023 + },
1024 + "engines": {
1025 + "node": ">=6.9.0"
1026 + },
1027 + "peerDependencies": {
1028 + "@babel/core": "^7.0.0"
1029 + }
1030 + },
1031 + "node_modules/@babel/plugin-transform-arrow-functions": {
1032 + "version": "7.24.7",
1033 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz",
1034 + "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==",
1035 + "dependencies": {
1036 + "@babel/helper-plugin-utils": "^7.24.7"
1037 + },
1038 + "engines": {
1039 + "node": ">=6.9.0"
1040 + },
1041 + "peerDependencies": {
1042 + "@babel/core": "^7.0.0-0"
1043 + }
1044 + },
1045 + "node_modules/@babel/plugin-transform-async-generator-functions": {
1046 + "version": "7.25.0",
1047 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz",
1048 + "integrity": "sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==",
1049 + "dependencies": {
1050 + "@babel/helper-plugin-utils": "^7.24.8",
1051 + "@babel/helper-remap-async-to-generator": "^7.25.0",
1052 + "@babel/plugin-syntax-async-generators": "^7.8.4",
1053 + "@babel/traverse": "^7.25.0"
1054 + },
1055 + "engines": {
1056 + "node": ">=6.9.0"
1057 + },
1058 + "peerDependencies": {
1059 + "@babel/core": "^7.0.0-0"
1060 + }
1061 + },
1062 + "node_modules/@babel/plugin-transform-async-to-generator": {
1063 + "version": "7.24.7",
1064 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz",
1065 + "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==",
1066 + "dependencies": {
1067 + "@babel/helper-module-imports": "^7.24.7",
1068 + "@babel/helper-plugin-utils": "^7.24.7",
1069 + "@babel/helper-remap-async-to-generator": "^7.24.7"
1070 + },
1071 + "engines": {
1072 + "node": ">=6.9.0"
1073 + },
1074 + "peerDependencies": {
1075 + "@babel/core": "^7.0.0-0"
1076 + }
1077 + },
1078 + "node_modules/@babel/plugin-transform-block-scoped-functions": {
1079 + "version": "7.24.7",
1080 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz",
1081 + "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==",
1082 + "dependencies": {
1083 + "@babel/helper-plugin-utils": "^7.24.7"
1084 + },
1085 + "engines": {
1086 + "node": ">=6.9.0"
1087 + },
1088 + "peerDependencies": {
1089 + "@babel/core": "^7.0.0-0"
1090 + }
1091 + },
1092 + "node_modules/@babel/plugin-transform-block-scoping": {
1093 + "version": "7.25.0",
1094 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz",
1095 + "integrity": "sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==",
1096 + "dependencies": {
1097 + "@babel/helper-plugin-utils": "^7.24.8"
1098 + },
1099 + "engines": {
1100 + "node": ">=6.9.0"
1101 + },
1102 + "peerDependencies": {
1103 + "@babel/core": "^7.0.0-0"
1104 + }
1105 + },
1106 + "node_modules/@babel/plugin-transform-class-properties": {
1107 + "version": "7.24.7",
1108 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz",
1109 + "integrity": "sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==",
1110 + "dependencies": {
1111 + "@babel/helper-create-class-features-plugin": "^7.24.7",
1112 + "@babel/helper-plugin-utils": "^7.24.7"
1113 + },
1114 + "engines": {
1115 + "node": ">=6.9.0"
1116 + },
1117 + "peerDependencies": {
1118 + "@babel/core": "^7.0.0-0"
1119 + }
1120 + },
1121 + "node_modules/@babel/plugin-transform-class-static-block": {
1122 + "version": "7.24.7",
1123 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz",
1124 + "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==",
1125 + "dependencies": {
1126 + "@babel/helper-create-class-features-plugin": "^7.24.7",
1127 + "@babel/helper-plugin-utils": "^7.24.7",
1128 + "@babel/plugin-syntax-class-static-block": "^7.14.5"
1129 + },
1130 + "engines": {
1131 + "node": ">=6.9.0"
1132 + },
1133 + "peerDependencies": {
1134 + "@babel/core": "^7.12.0"
1135 + }
1136 + },
1137 + "node_modules/@babel/plugin-transform-classes": {
1138 + "version": "7.25.0",
1139 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.0.tgz",
1140 + "integrity": "sha512-xyi6qjr/fYU304fiRwFbekzkqVJZ6A7hOjWZd+89FVcBqPV3S9Wuozz82xdpLspckeaafntbzglaW4pqpzvtSw==",
1141 + "dependencies": {
1142 + "@babel/helper-annotate-as-pure": "^7.24.7",
1143 + "@babel/helper-compilation-targets": "^7.24.8",
1144 + "@babel/helper-plugin-utils": "^7.24.8",
1145 + "@babel/helper-replace-supers": "^7.25.0",
1146 + "@babel/traverse": "^7.25.0",
1147 + "globals": "^11.1.0"
1148 + },
1149 + "engines": {
1150 + "node": ">=6.9.0"
1151 + },
1152 + "peerDependencies": {
1153 + "@babel/core": "^7.0.0-0"
1154 + }
1155 + },
1156 + "node_modules/@babel/plugin-transform-classes/node_modules/globals": {
1157 + "version": "11.12.0",
1158 + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
1159 + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
1160 + "engines": {
1161 + "node": ">=4"
1162 + }
1163 + },
1164 + "node_modules/@babel/plugin-transform-computed-properties": {
1165 + "version": "7.24.7",
1166 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz",
1167 + "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==",
1168 + "dependencies": {
1169 + "@babel/helper-plugin-utils": "^7.24.7",
1170 + "@babel/template": "^7.24.7"
1171 + },
1172 + "engines": {
1173 + "node": ">=6.9.0"
1174 + },
1175 + "peerDependencies": {
1176 + "@babel/core": "^7.0.0-0"
1177 + }
1178 + },
1179 + "node_modules/@babel/plugin-transform-destructuring": {
1180 + "version": "7.24.8",
1181 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz",
1182 + "integrity": "sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==",
1183 + "dependencies": {
1184 + "@babel/helper-plugin-utils": "^7.24.8"
1185 + },
1186 + "engines": {
1187 + "node": ">=6.9.0"
1188 + },
1189 + "peerDependencies": {
1190 + "@babel/core": "^7.0.0-0"
1191 + }
1192 + },
1193 + "node_modules/@babel/plugin-transform-dotall-regex": {
1194 + "version": "7.24.7",
1195 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz",
1196 + "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==",
1197 + "dependencies": {
1198 + "@babel/helper-create-regexp-features-plugin": "^7.24.7",
1199 + "@babel/helper-plugin-utils": "^7.24.7"
1200 + },
1201 + "engines": {
1202 + "node": ">=6.9.0"
1203 + },
1204 + "peerDependencies": {
1205 + "@babel/core": "^7.0.0-0"
1206 + }
1207 + },
1208 + "node_modules/@babel/plugin-transform-duplicate-keys": {
1209 + "version": "7.24.7",
1210 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz",
1211 + "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==",
1212 + "dependencies": {
1213 + "@babel/helper-plugin-utils": "^7.24.7"
1214 + },
1215 + "engines": {
1216 + "node": ">=6.9.0"
1217 + },
1218 + "peerDependencies": {
1219 + "@babel/core": "^7.0.0-0"
1220 + }
1221 + },
1222 + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": {
1223 + "version": "7.25.0",
1224 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz",
1225 + "integrity": "sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==",
1226 + "dependencies": {
1227 + "@babel/helper-create-regexp-features-plugin": "^7.25.0",
1228 + "@babel/helper-plugin-utils": "^7.24.8"
1229 + },
1230 + "engines": {
1231 + "node": ">=6.9.0"
1232 + },
1233 + "peerDependencies": {
1234 + "@babel/core": "^7.0.0"
1235 + }
1236 + },
1237 + "node_modules/@babel/plugin-transform-dynamic-import": {
1238 + "version": "7.24.7",
1239 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz",
1240 + "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==",
1241 + "dependencies": {
1242 + "@babel/helper-plugin-utils": "^7.24.7",
1243 + "@babel/plugin-syntax-dynamic-import": "^7.8.3"
1244 + },
1245 + "engines": {
1246 + "node": ">=6.9.0"
1247 + },
1248 + "peerDependencies": {
1249 + "@babel/core": "^7.0.0-0"
1250 + }
1251 + },
1252 + "node_modules/@babel/plugin-transform-exponentiation-operator": {
1253 + "version": "7.24.7",
1254 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz",
1255 + "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==",
1256 + "dependencies": {
1257 + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7",
1258 + "@babel/helper-plugin-utils": "^7.24.7"
1259 + },
1260 + "engines": {
1261 + "node": ">=6.9.0"
1262 + },
1263 + "peerDependencies": {
1264 + "@babel/core": "^7.0.0-0"
1265 + }
1266 + },
1267 + "node_modules/@babel/plugin-transform-export-namespace-from": {
1268 + "version": "7.24.7",
1269 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz",
1270 + "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==",
1271 + "dependencies": {
1272 + "@babel/helper-plugin-utils": "^7.24.7",
1273 + "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
1274 + },
1275 + "engines": {
1276 + "node": ">=6.9.0"
1277 + },
1278 + "peerDependencies": {
1279 + "@babel/core": "^7.0.0-0"
1280 + }
1281 + },
1282 + "node_modules/@babel/plugin-transform-flow-strip-types": {
1283 + "version": "7.24.7",
1284 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.24.7.tgz",
1285 + "integrity": "sha512-cjRKJ7FobOH2eakx7Ja+KpJRj8+y+/SiB3ooYm/n2UJfxu0oEaOoxOinitkJcPqv9KxS0kxTGPUaR7L2XcXDXA==",
1286 + "dependencies": {
1287 + "@babel/helper-plugin-utils": "^7.24.7",
1288 + "@babel/plugin-syntax-flow": "^7.24.7"
1289 + },
1290 + "engines": {
1291 + "node": ">=6.9.0"
1292 + },
1293 + "peerDependencies": {
1294 + "@babel/core": "^7.0.0-0"
1295 + }
1296 + },
1297 + "node_modules/@babel/plugin-transform-for-of": {
1298 + "version": "7.24.7",
1299 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz",
1300 + "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==",
1301 + "dependencies": {
1302 + "@babel/helper-plugin-utils": "^7.24.7",
1303 + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7"
1304 + },
1305 + "engines": {
1306 + "node": ">=6.9.0"
1307 + },
1308 + "peerDependencies": {
1309 + "@babel/core": "^7.0.0-0"
1310 + }
1311 + },
1312 + "node_modules/@babel/plugin-transform-function-name": {
1313 + "version": "7.25.1",
1314 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz",
1315 + "integrity": "sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==",
1316 + "dependencies": {
1317 + "@babel/helper-compilation-targets": "^7.24.8",
1318 + "@babel/helper-plugin-utils": "^7.24.8",
1319 + "@babel/traverse": "^7.25.1"
1320 + },
1321 + "engines": {
1322 + "node": ">=6.9.0"
1323 + },
1324 + "peerDependencies": {
1325 + "@babel/core": "^7.0.0-0"
1326 + }
1327 + },
1328 + "node_modules/@babel/plugin-transform-json-strings": {
1329 + "version": "7.24.7",
1330 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz",
1331 + "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==",
1332 + "dependencies": {
1333 + "@babel/helper-plugin-utils": "^7.24.7",
1334 + "@babel/plugin-syntax-json-strings": "^7.8.3"
1335 + },
1336 + "engines": {
1337 + "node": ">=6.9.0"
1338 + },
1339 + "peerDependencies": {
1340 + "@babel/core": "^7.0.0-0"
1341 + }
1342 + },
1343 + "node_modules/@babel/plugin-transform-literals": {
1344 + "version": "7.24.7",
1345 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.7.tgz",
1346 + "integrity": "sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==",
1347 + "dependencies": {
1348 + "@babel/helper-plugin-utils": "^7.24.7"
1349 + },
1350 + "engines": {
1351 + "node": ">=6.9.0"
1352 + },
1353 + "peerDependencies": {
1354 + "@babel/core": "^7.0.0-0"
1355 + }
1356 + },
1357 + "node_modules/@babel/plugin-transform-logical-assignment-operators": {
1358 + "version": "7.24.7",
1359 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz",
1360 + "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==",
1361 + "dependencies": {
1362 + "@babel/helper-plugin-utils": "^7.24.7",
1363 + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
1364 + },
1365 + "engines": {
1366 + "node": ">=6.9.0"
1367 + },
1368 + "peerDependencies": {
1369 + "@babel/core": "^7.0.0-0"
1370 + }
1371 + },
1372 + "node_modules/@babel/plugin-transform-member-expression-literals": {
1373 + "version": "7.24.7",
1374 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz",
1375 + "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==",
1376 + "dependencies": {
1377 + "@babel/helper-plugin-utils": "^7.24.7"
1378 + },
1379 + "engines": {
1380 + "node": ">=6.9.0"
1381 + },
1382 + "peerDependencies": {
1383 + "@babel/core": "^7.0.0-0"
1384 + }
1385 + },
1386 + "node_modules/@babel/plugin-transform-modules-amd": {
1387 + "version": "7.24.7",
1388 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz",
1389 + "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==",
1390 + "dependencies": {
1391 + "@babel/helper-module-transforms": "^7.24.7",
1392 + "@babel/helper-plugin-utils": "^7.24.7"
1393 + },
1394 + "engines": {
1395 + "node": ">=6.9.0"
1396 + },
1397 + "peerDependencies": {
1398 + "@babel/core": "^7.0.0-0"
1399 + }
1400 + },
1401 + "node_modules/@babel/plugin-transform-modules-commonjs": {
1402 + "version": "7.24.8",
1403 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz",
1404 + "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==",
1405 + "dependencies": {
1406 + "@babel/helper-module-transforms": "^7.24.8",
1407 + "@babel/helper-plugin-utils": "^7.24.8",
1408 + "@babel/helper-simple-access": "^7.24.7"
1409 + },
1410 + "engines": {
1411 + "node": ">=6.9.0"
1412 + },
1413 + "peerDependencies": {
1414 + "@babel/core": "^7.0.0-0"
1415 + }
1416 + },
1417 + "node_modules/@babel/plugin-transform-modules-systemjs": {
1418 + "version": "7.25.0",
1419 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz",
1420 + "integrity": "sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==",
1421 + "dependencies": {
1422 + "@babel/helper-module-transforms": "^7.25.0",
1423 + "@babel/helper-plugin-utils": "^7.24.8",
1424 + "@babel/helper-validator-identifier": "^7.24.7",
1425 + "@babel/traverse": "^7.25.0"
1426 + },
1427 + "engines": {
1428 + "node": ">=6.9.0"
1429 + },
1430 + "peerDependencies": {
1431 + "@babel/core": "^7.0.0-0"
1432 + }
1433 + },
1434 + "node_modules/@babel/plugin-transform-modules-umd": {
1435 + "version": "7.24.7",
1436 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz",
1437 + "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==",
1438 + "dependencies": {
1439 + "@babel/helper-module-transforms": "^7.24.7",
1440 + "@babel/helper-plugin-utils": "^7.24.7"
1441 + },
1442 + "engines": {
1443 + "node": ">=6.9.0"
1444 + },
1445 + "peerDependencies": {
1446 + "@babel/core": "^7.0.0-0"
1447 + }
1448 + },
1449 + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
1450 + "version": "7.24.7",
1451 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz",
1452 + "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==",
1453 + "dependencies": {
1454 + "@babel/helper-create-regexp-features-plugin": "^7.24.7",
1455 + "@babel/helper-plugin-utils": "^7.24.7"
1456 + },
1457 + "engines": {
1458 + "node": ">=6.9.0"
1459 + },
1460 + "peerDependencies": {
1461 + "@babel/core": "^7.0.0"
1462 + }
1463 + },
1464 + "node_modules/@babel/plugin-transform-new-target": {
1465 + "version": "7.24.7",
1466 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz",
1467 + "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==",
1468 + "dependencies": {
1469 + "@babel/helper-plugin-utils": "^7.24.7"
1470 + },
1471 + "engines": {
1472 + "node": ">=6.9.0"
1473 + },
1474 + "peerDependencies": {
1475 + "@babel/core": "^7.0.0-0"
1476 + }
1477 + },
1478 + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
1479 + "version": "7.24.7",
1480 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz",
1481 + "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==",
1482 + "dependencies": {
1483 + "@babel/helper-plugin-utils": "^7.24.7",
1484 + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
1485 + },
1486 + "engines": {
1487 + "node": ">=6.9.0"
1488 + },
1489 + "peerDependencies": {
1490 + "@babel/core": "^7.0.0-0"
1491 + }
1492 + },
1493 + "node_modules/@babel/plugin-transform-numeric-separator": {
1494 + "version": "7.24.7",
1495 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz",
1496 + "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==",
1497 + "dependencies": {
1498 + "@babel/helper-plugin-utils": "^7.24.7",
1499 + "@babel/plugin-syntax-numeric-separator": "^7.10.4"
1500 + },
1501 + "engines": {
1502 + "node": ">=6.9.0"
1503 + },
1504 + "peerDependencies": {
1505 + "@babel/core": "^7.0.0-0"
1506 + }
1507 + },
1508 + "node_modules/@babel/plugin-transform-object-rest-spread": {
1509 + "version": "7.24.7",
1510 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz",
1511 + "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==",
1512 + "dependencies": {
1513 + "@babel/helper-compilation-targets": "^7.24.7",
1514 + "@babel/helper-plugin-utils": "^7.24.7",
1515 + "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
1516 + "@babel/plugin-transform-parameters": "^7.24.7"
1517 + },
1518 + "engines": {
1519 + "node": ">=6.9.0"
1520 + },
1521 + "peerDependencies": {
1522 + "@babel/core": "^7.0.0-0"
1523 + }
1524 + },
1525 + "node_modules/@babel/plugin-transform-object-super": {
1526 + "version": "7.24.7",
1527 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz",
1528 + "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==",
1529 + "dependencies": {
1530 + "@babel/helper-plugin-utils": "^7.24.7",
1531 + "@babel/helper-replace-supers": "^7.24.7"
1532 + },
1533 + "engines": {
1534 + "node": ">=6.9.0"
1535 + },
1536 + "peerDependencies": {
1537 + "@babel/core": "^7.0.0-0"
1538 + }
1539 + },
1540 + "node_modules/@babel/plugin-transform-optional-catch-binding": {
1541 + "version": "7.24.7",
1542 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz",
1543 + "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==",
1544 + "dependencies": {
1545 + "@babel/helper-plugin-utils": "^7.24.7",
1546 + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
1547 + },
1548 + "engines": {
1549 + "node": ">=6.9.0"
1550 + },
1551 + "peerDependencies": {
1552 + "@babel/core": "^7.0.0-0"
1553 + }
1554 + },
1555 + "node_modules/@babel/plugin-transform-optional-chaining": {
1556 + "version": "7.24.8",
1557 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz",
1558 + "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==",
1559 + "dependencies": {
1560 + "@babel/helper-plugin-utils": "^7.24.8",
1561 + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7",
1562 + "@babel/plugin-syntax-optional-chaining": "^7.8.3"
1563 + },
1564 + "engines": {
1565 + "node": ">=6.9.0"
1566 + },
1567 + "peerDependencies": {
1568 + "@babel/core": "^7.0.0-0"
1569 + }
1570 + },
1571 + "node_modules/@babel/plugin-transform-parameters": {
1572 + "version": "7.24.7",
1573 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz",
1574 + "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==",
1575 + "dependencies": {
1576 + "@babel/helper-plugin-utils": "^7.24.7"
1577 + },
1578 + "engines": {
1579 + "node": ">=6.9.0"
1580 + },
1581 + "peerDependencies": {
1582 + "@babel/core": "^7.0.0-0"
1583 + }
1584 + },
1585 + "node_modules/@babel/plugin-transform-private-methods": {
1586 + "version": "7.24.7",
1587 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz",
1588 + "integrity": "sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==",
1589 + "dependencies": {
1590 + "@babel/helper-create-class-features-plugin": "^7.24.7",
1591 + "@babel/helper-plugin-utils": "^7.24.7"
1592 + },
1593 + "engines": {
1594 + "node": ">=6.9.0"
1595 + },
1596 + "peerDependencies": {
1597 + "@babel/core": "^7.0.0-0"
1598 + }
1599 + },
1600 + "node_modules/@babel/plugin-transform-private-property-in-object": {
1601 + "version": "7.24.7",
1602 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz",
1603 + "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==",
1604 + "dependencies": {
1605 + "@babel/helper-annotate-as-pure": "^7.24.7",
1606 + "@babel/helper-create-class-features-plugin": "^7.24.7",
1607 + "@babel/helper-plugin-utils": "^7.24.7",
1608 + "@babel/plugin-syntax-private-property-in-object": "^7.14.5"
1609 + },
1610 + "engines": {
1611 + "node": ">=6.9.0"
1612 + },
1613 + "peerDependencies": {
1614 + "@babel/core": "^7.0.0-0"
1615 + }
1616 + },
1617 + "node_modules/@babel/plugin-transform-property-literals": {
1618 + "version": "7.24.7",
1619 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz",
1620 + "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==",
1621 + "dependencies": {
1622 + "@babel/helper-plugin-utils": "^7.24.7"
1623 + },
1624 + "engines": {
1625 + "node": ">=6.9.0"
1626 + },
1627 + "peerDependencies": {
1628 + "@babel/core": "^7.0.0-0"
1629 + }
1630 + },
1631 + "node_modules/@babel/plugin-transform-react-constant-elements": {
1632 + "version": "7.25.1",
1633 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.25.1.tgz",
1634 + "integrity": "sha512-SLV/giH/V4SmloZ6Dt40HjTGTAIkxn33TVIHxNGNvo8ezMhrxBkzisj4op1KZYPIOHFLqhv60OHvX+YRu4xbmQ==",
1635 + "dependencies": {
1636 + "@babel/helper-plugin-utils": "^7.24.8"
1637 + },
1638 + "engines": {
1639 + "node": ">=6.9.0"
1640 + },
1641 + "peerDependencies": {
1642 + "@babel/core": "^7.0.0-0"
1643 + }
1644 + },
1645 + "node_modules/@babel/plugin-transform-react-display-name": {
1646 + "version": "7.24.7",
1647 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz",
1648 + "integrity": "sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==",
1649 + "dependencies": {
1650 + "@babel/helper-plugin-utils": "^7.24.7"
1651 + },
1652 + "engines": {
1653 + "node": ">=6.9.0"
1654 + },
1655 + "peerDependencies": {
1656 + "@babel/core": "^7.0.0-0"
1657 + }
1658 + },
1659 + "node_modules/@babel/plugin-transform-react-jsx": {
1660 + "version": "7.24.7",
1661 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.24.7.tgz",
1662 + "integrity": "sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA==",
1663 + "dependencies": {
1664 + "@babel/helper-annotate-as-pure": "^7.24.7",
1665 + "@babel/helper-module-imports": "^7.24.7",
1666 + "@babel/helper-plugin-utils": "^7.24.7",
1667 + "@babel/plugin-syntax-jsx": "^7.24.7",
1668 + "@babel/types": "^7.24.7"
1669 + },
1670 + "engines": {
1671 + "node": ">=6.9.0"
1672 + },
1673 + "peerDependencies": {
1674 + "@babel/core": "^7.0.0-0"
1675 + }
1676 + },
1677 + "node_modules/@babel/plugin-transform-react-jsx-development": {
1678 + "version": "7.24.7",
1679 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.7.tgz",
1680 + "integrity": "sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==",
1681 + "dependencies": {
1682 + "@babel/plugin-transform-react-jsx": "^7.24.7"
1683 + },
1684 + "engines": {
1685 + "node": ">=6.9.0"
1686 + },
1687 + "peerDependencies": {
1688 + "@babel/core": "^7.0.0-0"
1689 + }
1690 + },
1691 + "node_modules/@babel/plugin-transform-react-pure-annotations": {
1692 + "version": "7.24.7",
1693 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz",
1694 + "integrity": "sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==",
1695 + "dependencies": {
1696 + "@babel/helper-annotate-as-pure": "^7.24.7",
1697 + "@babel/helper-plugin-utils": "^7.24.7"
1698 + },
1699 + "engines": {
1700 + "node": ">=6.9.0"
1701 + },
1702 + "peerDependencies": {
1703 + "@babel/core": "^7.0.0-0"
1704 + }
1705 + },
1706 + "node_modules/@babel/plugin-transform-regenerator": {
1707 + "version": "7.24.7",
1708 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz",
1709 + "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==",
1710 + "dependencies": {
1711 + "@babel/helper-plugin-utils": "^7.24.7",
1712 + "regenerator-transform": "^0.15.2"
1713 + },
1714 + "engines": {
1715 + "node": ">=6.9.0"
1716 + },
1717 + "peerDependencies": {
1718 + "@babel/core": "^7.0.0-0"
1719 + }
1720 + },
1721 + "node_modules/@babel/plugin-transform-reserved-words": {
1722 + "version": "7.24.7",
1723 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz",
1724 + "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==",
1725 + "dependencies": {
1726 + "@babel/helper-plugin-utils": "^7.24.7"
1727 + },
1728 + "engines": {
1729 + "node": ">=6.9.0"
1730 + },
1731 + "peerDependencies": {
1732 + "@babel/core": "^7.0.0-0"
1733 + }
1734 + },
1735 + "node_modules/@babel/plugin-transform-runtime": {
1736 + "version": "7.24.7",
1737 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.7.tgz",
1738 + "integrity": "sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw==",
1739 + "dependencies": {
1740 + "@babel/helper-module-imports": "^7.24.7",
1741 + "@babel/helper-plugin-utils": "^7.24.7",
1742 + "babel-plugin-polyfill-corejs2": "^0.4.10",
1743 + "babel-plugin-polyfill-corejs3": "^0.10.1",
1744 + "babel-plugin-polyfill-regenerator": "^0.6.1",
1745 + "semver": "^6.3.1"
1746 + },
1747 + "engines": {
1748 + "node": ">=6.9.0"
1749 + },
1750 + "peerDependencies": {
1751 + "@babel/core": "^7.0.0-0"
1752 + }
1753 + },
1754 + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": {
1755 + "version": "6.3.1",
1756 + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
1757 + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
1758 + "bin": {
1759 + "semver": "bin/semver.js"
1760 + }
1761 + },
1762 + "node_modules/@babel/plugin-transform-shorthand-properties": {
1763 + "version": "7.24.7",
1764 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz",
1765 + "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==",
1766 + "dependencies": {
1767 + "@babel/helper-plugin-utils": "^7.24.7"
1768 + },
1769 + "engines": {
1770 + "node": ">=6.9.0"
1771 + },
1772 + "peerDependencies": {
1773 + "@babel/core": "^7.0.0-0"
1774 + }
1775 + },
1776 + "node_modules/@babel/plugin-transform-spread": {
1777 + "version": "7.24.7",
1778 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz",
1779 + "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==",
1780 + "dependencies": {
1781 + "@babel/helper-plugin-utils": "^7.24.7",
1782 + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7"
1783 + },
1784 + "engines": {
1785 + "node": ">=6.9.0"
1786 + },
1787 + "peerDependencies": {
1788 + "@babel/core": "^7.0.0-0"
1789 + }
1790 + },
1791 + "node_modules/@babel/plugin-transform-sticky-regex": {
1792 + "version": "7.24.7",
1793 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz",
1794 + "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==",
1795 + "dependencies": {
1796 + "@babel/helper-plugin-utils": "^7.24.7"
1797 + },
1798 + "engines": {
1799 + "node": ">=6.9.0"
1800 + },
1801 + "peerDependencies": {
1802 + "@babel/core": "^7.0.0-0"
1803 + }
1804 + },
1805 + "node_modules/@babel/plugin-transform-template-literals": {
1806 + "version": "7.24.7",
1807 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz",
1808 + "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==",
1809 + "dependencies": {
1810 + "@babel/helper-plugin-utils": "^7.24.7"
1811 + },
1812 + "engines": {
1813 + "node": ">=6.9.0"
1814 + },
1815 + "peerDependencies": {
1816 + "@babel/core": "^7.0.0-0"
1817 + }
1818 + },
1819 + "node_modules/@babel/plugin-transform-typeof-symbol": {
1820 + "version": "7.24.8",
1821 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz",
1822 + "integrity": "sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==",
1823 + "dependencies": {
1824 + "@babel/helper-plugin-utils": "^7.24.8"
1825 + },
1826 + "engines": {
1827 + "node": ">=6.9.0"
1828 + },
1829 + "peerDependencies": {
1830 + "@babel/core": "^7.0.0-0"
1831 + }
1832 + },
1833 + "node_modules/@babel/plugin-transform-typescript": {
1834 + "version": "7.25.0",
1835 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.0.tgz",
1836 + "integrity": "sha512-LZicxFzHIw+Sa3pzgMgSz6gdpsdkfiMObHUzhSIrwKF0+/rP/nuR49u79pSS+zIFJ1FeGeqQD2Dq4QGFbOVvSw==",
1837 + "dependencies": {
1838 + "@babel/helper-annotate-as-pure": "^7.24.7",
1839 + "@babel/helper-create-class-features-plugin": "^7.25.0",
1840 + "@babel/helper-plugin-utils": "^7.24.8",
1841 + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7",
1842 + "@babel/plugin-syntax-typescript": "^7.24.7"
1843 + },
1844 + "engines": {
1845 + "node": ">=6.9.0"
1846 + },
1847 + "peerDependencies": {
1848 + "@babel/core": "^7.0.0-0"
1849 + }
1850 + },
1851 + "node_modules/@babel/plugin-transform-unicode-escapes": {
1852 + "version": "7.24.7",
1853 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz",
1854 + "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==",
1855 + "dependencies": {
1856 + "@babel/helper-plugin-utils": "^7.24.7"
1857 + },
1858 + "engines": {
1859 + "node": ">=6.9.0"
1860 + },
1861 + "peerDependencies": {
1862 + "@babel/core": "^7.0.0-0"
1863 + }
1864 + },
1865 + "node_modules/@babel/plugin-transform-unicode-property-regex": {
1866 + "version": "7.24.7",
1867 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz",
1868 + "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==",
1869 + "dependencies": {
1870 + "@babel/helper-create-regexp-features-plugin": "^7.24.7",
1871 + "@babel/helper-plugin-utils": "^7.24.7"
1872 + },
1873 + "engines": {
1874 + "node": ">=6.9.0"
1875 + },
1876 + "peerDependencies": {
1877 + "@babel/core": "^7.0.0-0"
1878 + }
1879 + },
1880 + "node_modules/@babel/plugin-transform-unicode-regex": {
1881 + "version": "7.24.7",
1882 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz",
1883 + "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==",
1884 + "dependencies": {
1885 + "@babel/helper-create-regexp-features-plugin": "^7.24.7",
1886 + "@babel/helper-plugin-utils": "^7.24.7"
1887 + },
1888 + "engines": {
1889 + "node": ">=6.9.0"
1890 + },
1891 + "peerDependencies": {
1892 + "@babel/core": "^7.0.0-0"
1893 + }
1894 + },
1895 + "node_modules/@babel/plugin-transform-unicode-sets-regex": {
1896 + "version": "7.24.7",
1897 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz",
1898 + "integrity": "sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==",
1899 + "dependencies": {
1900 + "@babel/helper-create-regexp-features-plugin": "^7.24.7",
1901 + "@babel/helper-plugin-utils": "^7.24.7"
1902 + },
1903 + "engines": {
1904 + "node": ">=6.9.0"
1905 + },
1906 + "peerDependencies": {
1907 + "@babel/core": "^7.0.0"
1908 + }
1909 + },
1910 + "node_modules/@babel/preset-env": {
1911 + "version": "7.25.0",
1912 + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.0.tgz",
1913 + "integrity": "sha512-vYAA8PrCOeZfG4D87hmw1KJ1BPubghXP1e2MacRFwECGNKL76dkA38JEwYllbvQCpf/kLxsTtir0b8MtxKoVCw==",
1914 + "dependencies": {
1915 + "@babel/compat-data": "^7.25.0",
1916 + "@babel/helper-compilation-targets": "^7.24.8",
1917 + "@babel/helper-plugin-utils": "^7.24.8",
1918 + "@babel/helper-validator-option": "^7.24.8",
1919 + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.0",
1920 + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.0",
1921 + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.0",
1922 + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7",
1923 + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.0",
1924 + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
1925 + "@babel/plugin-syntax-async-generators": "^7.8.4",
1926 + "@babel/plugin-syntax-class-properties": "^7.12.13",
1927 + "@babel/plugin-syntax-class-static-block": "^7.14.5",
1928 + "@babel/plugin-syntax-dynamic-import": "^7.8.3",
1929 + "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
1930 + "@babel/plugin-syntax-import-assertions": "^7.24.7",
1931 + "@babel/plugin-syntax-import-attributes": "^7.24.7",
1932 + "@babel/plugin-syntax-import-meta": "^7.10.4",
1933 + "@babel/plugin-syntax-json-strings": "^7.8.3",
1934 + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
1935 + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
1936 + "@babel/plugin-syntax-numeric-separator": "^7.10.4",
1937 + "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
1938 + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
1939 + "@babel/plugin-syntax-optional-chaining": "^7.8.3",
1940 + "@babel/plugin-syntax-private-property-in-object": "^7.14.5",
1941 + "@babel/plugin-syntax-top-level-await": "^7.14.5",
1942 + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6",
1943 + "@babel/plugin-transform-arrow-functions": "^7.24.7",
1944 + "@babel/plugin-transform-async-generator-functions": "^7.25.0",
1945 + "@babel/plugin-transform-async-to-generator": "^7.24.7",
1946 + "@babel/plugin-transform-block-scoped-functions": "^7.24.7",
1947 + "@babel/plugin-transform-block-scoping": "^7.25.0",
1948 + "@babel/plugin-transform-class-properties": "^7.24.7",
1949 + "@babel/plugin-transform-class-static-block": "^7.24.7",
1950 + "@babel/plugin-transform-classes": "^7.25.0",
1951 + "@babel/plugin-transform-computed-properties": "^7.24.7",
1952 + "@babel/plugin-transform-destructuring": "^7.24.8",
1953 + "@babel/plugin-transform-dotall-regex": "^7.24.7",
1954 + "@babel/plugin-transform-duplicate-keys": "^7.24.7",
1955 + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.0",
1956 + "@babel/plugin-transform-dynamic-import": "^7.24.7",
1957 + "@babel/plugin-transform-exponentiation-operator": "^7.24.7",
1958 + "@babel/plugin-transform-export-namespace-from": "^7.24.7",
1959 + "@babel/plugin-transform-for-of": "^7.24.7",
1960 + "@babel/plugin-transform-function-name": "^7.25.0",
1961 + "@babel/plugin-transform-json-strings": "^7.24.7",
1962 + "@babel/plugin-transform-literals": "^7.24.7",
1963 + "@babel/plugin-transform-logical-assignment-operators": "^7.24.7",
1964 + "@babel/plugin-transform-member-expression-literals": "^7.24.7",
1965 + "@babel/plugin-transform-modules-amd": "^7.24.7",
1966 + "@babel/plugin-transform-modules-commonjs": "^7.24.8",
1967 + "@babel/plugin-transform-modules-systemjs": "^7.25.0",
1968 + "@babel/plugin-transform-modules-umd": "^7.24.7",
1969 + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7",
1970 + "@babel/plugin-transform-new-target": "^7.24.7",
1971 + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7",
1972 + "@babel/plugin-transform-numeric-separator": "^7.24.7",
1973 + "@babel/plugin-transform-object-rest-spread": "^7.24.7",
1974 + "@babel/plugin-transform-object-super": "^7.24.7",
1975 + "@babel/plugin-transform-optional-catch-binding": "^7.24.7",
1976 + "@babel/plugin-transform-optional-chaining": "^7.24.8",
1977 + "@babel/plugin-transform-parameters": "^7.24.7",
1978 + "@babel/plugin-transform-private-methods": "^7.24.7",
1979 + "@babel/plugin-transform-private-property-in-object": "^7.24.7",
1980 + "@babel/plugin-transform-property-literals": "^7.24.7",
1981 + "@babel/plugin-transform-regenerator": "^7.24.7",
1982 + "@babel/plugin-transform-reserved-words": "^7.24.7",
1983 + "@babel/plugin-transform-shorthand-properties": "^7.24.7",
1984 + "@babel/plugin-transform-spread": "^7.24.7",
1985 + "@babel/plugin-transform-sticky-regex": "^7.24.7",
1986 + "@babel/plugin-transform-template-literals": "^7.24.7",
1987 + "@babel/plugin-transform-typeof-symbol": "^7.24.8",
1988 + "@babel/plugin-transform-unicode-escapes": "^7.24.7",
1989 + "@babel/plugin-transform-unicode-property-regex": "^7.24.7",
1990 + "@babel/plugin-transform-unicode-regex": "^7.24.7",
1991 + "@babel/plugin-transform-unicode-sets-regex": "^7.24.7",
1992 + "@babel/preset-modules": "0.1.6-no-external-plugins",
1993 + "babel-plugin-polyfill-corejs2": "^0.4.10",
1994 + "babel-plugin-polyfill-corejs3": "^0.10.4",
1995 + "babel-plugin-polyfill-regenerator": "^0.6.1",
1996 + "core-js-compat": "^3.37.1",
1997 + "semver": "^6.3.1"
1998 + },
1999 + "engines": {
2000 + "node": ">=6.9.0"
2001 + },
2002 + "peerDependencies": {
2003 + "@babel/core": "^7.0.0-0"
2004 + }
2005 + },
2006 + "node_modules/@babel/preset-env/node_modules/semver": {
2007 + "version": "6.3.1",
2008 + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
2009 + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
2010 + "bin": {
2011 + "semver": "bin/semver.js"
2012 + }
2013 + },
2014 + "node_modules/@babel/preset-modules": {
2015 + "version": "0.1.6-no-external-plugins",
2016 + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz",
2017 + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==",
2018 + "dependencies": {
2019 + "@babel/helper-plugin-utils": "^7.0.0",
2020 + "@babel/types": "^7.4.4",
2021 + "esutils": "^2.0.2"
2022 + },
2023 + "peerDependencies": {
2024 + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0"
2025 + }
2026 + },
2027 + "node_modules/@babel/preset-react": {
2028 + "version": "7.24.7",
2029 + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.7.tgz",
2030 + "integrity": "sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==",
2031 + "dependencies": {
2032 + "@babel/helper-plugin-utils": "^7.24.7",
2033 + "@babel/helper-validator-option": "^7.24.7",
2034 + "@babel/plugin-transform-react-display-name": "^7.24.7",
2035 + "@babel/plugin-transform-react-jsx": "^7.24.7",
2036 + "@babel/plugin-transform-react-jsx-development": "^7.24.7",
2037 + "@babel/plugin-transform-react-pure-annotations": "^7.24.7"
2038 + },
2039 + "engines": {
2040 + "node": ">=6.9.0"
2041 + },
2042 + "peerDependencies": {
2043 + "@babel/core": "^7.0.0-0"
2044 + }
2045 + },
2046 + "node_modules/@babel/preset-typescript": {
2047 + "version": "7.24.7",
2048 + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz",
2049 + "integrity": "sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==",
2050 + "dependencies": {
2051 + "@babel/helper-plugin-utils": "^7.24.7",
2052 + "@babel/helper-validator-option": "^7.24.7",
2053 + "@babel/plugin-syntax-jsx": "^7.24.7",
2054 + "@babel/plugin-transform-modules-commonjs": "^7.24.7",
2055 + "@babel/plugin-transform-typescript": "^7.24.7"
2056 + },
2057 + "engines": {
2058 + "node": ">=6.9.0"
2059 + },
2060 + "peerDependencies": {
2061 + "@babel/core": "^7.0.0-0"
2062 + }
2063 + },
2064 + "node_modules/@babel/regjsgen": {
2065 + "version": "0.8.0",
2066 + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz",
2067 + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA=="
2068 + },
2069 + "node_modules/@babel/runtime": {
2070 + "version": "7.25.0",
2071 + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz",
2072 + "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==",
2073 + "dependencies": {
2074 + "regenerator-runtime": "^0.14.0"
2075 + },
2076 + "engines": {
2077 + "node": ">=6.9.0"
2078 + }
2079 + },
2080 + "node_modules/@babel/template": {
2081 + "version": "7.25.0",
2082 + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz",
2083 + "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==",
2084 + "dependencies": {
2085 + "@babel/code-frame": "^7.24.7",
2086 + "@babel/parser": "^7.25.0",
2087 + "@babel/types": "^7.25.0"
2088 + },
2089 + "engines": {
2090 + "node": ">=6.9.0"
2091 + }
2092 + },
2093 + "node_modules/@babel/traverse": {
2094 + "version": "7.25.1",
2095 + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.1.tgz",
2096 + "integrity": "sha512-LrHHoWq08ZpmmFqBAzN+hUdWwy5zt7FGa/hVwMcOqW6OVtwqaoD5utfuGYU87JYxdZgLUvktAsn37j/sYR9siA==",
2097 + "dependencies": {
2098 + "@babel/code-frame": "^7.24.7",
2099 + "@babel/generator": "^7.25.0",
2100 + "@babel/parser": "^7.25.0",
2101 + "@babel/template": "^7.25.0",
2102 + "@babel/types": "^7.25.0",
2103 + "debug": "^4.3.1",
2104 + "globals": "^11.1.0"
2105 + },
2106 + "engines": {
2107 + "node": ">=6.9.0"
2108 + }
2109 + },
2110 + "node_modules/@babel/traverse/node_modules/globals": {
2111 + "version": "11.12.0",
2112 + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
2113 + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
2114 + "engines": {
2115 + "node": ">=4"
2116 + }
2117 + },
2118 + "node_modules/@babel/types": {
2119 + "version": "7.25.0",
2120 + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.0.tgz",
2121 + "integrity": "sha512-LcnxQSsd9aXOIgmmSpvZ/1yo46ra2ESYyqLcryaBZOghxy5qqOBjvCWP5JfkI8yl9rlxRgdLTTMCQQRcN2hdCg==",
2122 + "dependencies": {
2123 + "@babel/helper-string-parser": "^7.24.8",
2124 + "@babel/helper-validator-identifier": "^7.24.7",
2125 + "to-fast-properties": "^2.0.0"
2126 + },
2127 + "engines": {
2128 + "node": ">=6.9.0"
2129 + }
2130 + },
2131 + "node_modules/@bcoe/v8-coverage": {
2132 + "version": "0.2.3",
2133 + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
2134 + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw=="
2135 + },
2136 + "node_modules/@csstools/normalize.css": {
2137 + "version": "12.1.1",
2138 + "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.1.1.tgz",
2139 + "integrity": "sha512-YAYeJ+Xqh7fUou1d1j9XHl44BmsuThiTr4iNrgCQ3J27IbhXsxXDGZ1cXv8Qvs99d4rBbLiSKy3+WZiet32PcQ=="
2140 + },
2141 + "node_modules/@csstools/postcss-cascade-layers": {
2142 + "version": "1.1.1",
2143 + "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz",
2144 + "integrity": "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==",
2145 + "dependencies": {
2146 + "@csstools/selector-specificity": "^2.0.2",
2147 + "postcss-selector-parser": "^6.0.10"
2148 + },
2149 + "engines": {
2150 + "node": "^12 || ^14 || >=16"
2151 + },
2152 + "funding": {
2153 + "type": "opencollective",
2154 + "url": "https://opencollective.com/csstools"
2155 + },
2156 + "peerDependencies": {
2157 + "postcss": "^8.2"
2158 + }
2159 + },
2160 + "node_modules/@csstools/postcss-color-function": {
2161 + "version": "1.1.1",
2162 + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz",
2163 + "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==",
2164 + "dependencies": {
2165 + "@csstools/postcss-progressive-custom-properties": "^1.1.0",
2166 + "postcss-value-parser": "^4.2.0"
2167 + },
2168 + "engines": {
2169 + "node": "^12 || ^14 || >=16"
2170 + },
2171 + "funding": {
2172 + "type": "opencollective",
2173 + "url": "https://opencollective.com/csstools"
2174 + },
2175 + "peerDependencies": {
2176 + "postcss": "^8.2"
2177 + }
2178 + },
2179 + "node_modules/@csstools/postcss-font-format-keywords": {
2180 + "version": "1.0.1",
2181 + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz",
2182 + "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==",
2183 + "dependencies": {
2184 + "postcss-value-parser": "^4.2.0"
2185 + },
2186 + "engines": {
2187 + "node": "^12 || ^14 || >=16"
2188 + },
2189 + "funding": {
2190 + "type": "opencollective",
2191 + "url": "https://opencollective.com/csstools"
2192 + },
2193 + "peerDependencies": {
2194 + "postcss": "^8.2"
2195 + }
2196 + },
2197 + "node_modules/@csstools/postcss-hwb-function": {
2198 + "version": "1.0.2",
2199 + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz",
2200 + "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==",
2201 + "dependencies": {
2202 + "postcss-value-parser": "^4.2.0"
2203 + },
2204 + "engines": {
2205 + "node": "^12 || ^14 || >=16"
2206 + },
2207 + "funding": {
2208 + "type": "opencollective",
2209 + "url": "https://opencollective.com/csstools"
2210 + },
2211 + "peerDependencies": {
2212 + "postcss": "^8.2"
2213 + }
2214 + },
2215 + "node_modules/@csstools/postcss-ic-unit": {
2216 + "version": "1.0.1",
2217 + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz",
2218 + "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==",
2219 + "dependencies": {
2220 + "@csstools/postcss-progressive-custom-properties": "^1.1.0",
2221 + "postcss-value-parser": "^4.2.0"
2222 + },
2223 + "engines": {
2224 + "node": "^12 || ^14 || >=16"
2225 + },
2226 + "funding": {
2227 + "type": "opencollective",
2228 + "url": "https://opencollective.com/csstools"
2229 + },
2230 + "peerDependencies": {
2231 + "postcss": "^8.2"
2232 + }
2233 + },
2234 + "node_modules/@csstools/postcss-is-pseudo-class": {
2235 + "version": "2.0.7",
2236 + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz",
2237 + "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==",
2238 + "dependencies": {
2239 + "@csstools/selector-specificity": "^2.0.0",
2240 + "postcss-selector-parser": "^6.0.10"
2241 + },
2242 + "engines": {
2243 + "node": "^12 || ^14 || >=16"
2244 + },
2245 + "funding": {
2246 + "type": "opencollective",
2247 + "url": "https://opencollective.com/csstools"
2248 + },
2249 + "peerDependencies": {
2250 + "postcss": "^8.2"
2251 + }
2252 + },
2253 + "node_modules/@csstools/postcss-nested-calc": {
2254 + "version": "1.0.0",
2255 + "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz",
2256 + "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==",
2257 + "dependencies": {
2258 + "postcss-value-parser": "^4.2.0"
2259 + },
2260 + "engines": {
2261 + "node": "^12 || ^14 || >=16"
2262 + },
2263 + "funding": {
2264 + "type": "opencollective",
2265 + "url": "https://opencollective.com/csstools"
2266 + },
2267 + "peerDependencies": {
2268 + "postcss": "^8.2"
2269 + }
2270 + },
2271 + "node_modules/@csstools/postcss-normalize-display-values": {
2272 + "version": "1.0.1",
2273 + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz",
2274 + "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==",
2275 + "dependencies": {
2276 + "postcss-value-parser": "^4.2.0"
2277 + },
2278 + "engines": {
2279 + "node": "^12 || ^14 || >=16"
2280 + },
2281 + "funding": {
2282 + "type": "opencollective",
2283 + "url": "https://opencollective.com/csstools"
2284 + },
2285 + "peerDependencies": {
2286 + "postcss": "^8.2"
2287 + }
2288 + },
2289 + "node_modules/@csstools/postcss-oklab-function": {
2290 + "version": "1.1.1",
2291 + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz",
2292 + "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==",
2293 + "dependencies": {
2294 + "@csstools/postcss-progressive-custom-properties": "^1.1.0",
2295 + "postcss-value-parser": "^4.2.0"
2296 + },
2297 + "engines": {
2298 + "node": "^12 || ^14 || >=16"
2299 + },
2300 + "funding": {
2301 + "type": "opencollective",
2302 + "url": "https://opencollective.com/csstools"
2303 + },
2304 + "peerDependencies": {
2305 + "postcss": "^8.2"
2306 + }
2307 + },
2308 + "node_modules/@csstools/postcss-progressive-custom-properties": {
2309 + "version": "1.3.0",
2310 + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz",
2311 + "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==",
2312 + "dependencies": {
2313 + "postcss-value-parser": "^4.2.0"
2314 + },
2315 + "engines": {
2316 + "node": "^12 || ^14 || >=16"
2317 + },
2318 + "peerDependencies": {
2319 + "postcss": "^8.3"
2320 + }
2321 + },
2322 + "node_modules/@csstools/postcss-stepped-value-functions": {
2323 + "version": "1.0.1",
2324 + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz",
2325 + "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==",
2326 + "dependencies": {
2327 + "postcss-value-parser": "^4.2.0"
2328 + },
2329 + "engines": {
2330 + "node": "^12 || ^14 || >=16"
2331 + },
2332 + "funding": {
2333 + "type": "opencollective",
2334 + "url": "https://opencollective.com/csstools"
2335 + },
2336 + "peerDependencies": {
2337 + "postcss": "^8.2"
2338 + }
2339 + },
2340 + "node_modules/@csstools/postcss-text-decoration-shorthand": {
2341 + "version": "1.0.0",
2342 + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz",
2343 + "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==",
2344 + "dependencies": {
2345 + "postcss-value-parser": "^4.2.0"
2346 + },
2347 + "engines": {
2348 + "node": "^12 || ^14 || >=16"
2349 + },
2350 + "funding": {
2351 + "type": "opencollective",
2352 + "url": "https://opencollective.com/csstools"
2353 + },
2354 + "peerDependencies": {
2355 + "postcss": "^8.2"
2356 + }
2357 + },
2358 + "node_modules/@csstools/postcss-trigonometric-functions": {
2359 + "version": "1.0.2",
2360 + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz",
2361 + "integrity": "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==",
2362 + "dependencies": {
2363 + "postcss-value-parser": "^4.2.0"
2364 + },
2365 + "engines": {
2366 + "node": "^14 || >=16"
2367 + },
2368 + "funding": {
2369 + "type": "opencollective",
2370 + "url": "https://opencollective.com/csstools"
2371 + },
2372 + "peerDependencies": {
2373 + "postcss": "^8.2"
2374 + }
2375 + },
2376 + "node_modules/@csstools/postcss-unset-value": {
2377 + "version": "1.0.2",
2378 + "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz",
2379 + "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==",
2380 + "engines": {
2381 + "node": "^12 || ^14 || >=16"
2382 + },
2383 + "funding": {
2384 + "type": "opencollective",
2385 + "url": "https://opencollective.com/csstools"
2386 + },
2387 + "peerDependencies": {
2388 + "postcss": "^8.2"
2389 + }
2390 + },
2391 + "node_modules/@csstools/selector-specificity": {
2392 + "version": "2.2.0",
2393 + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz",
2394 + "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==",
2395 + "engines": {
2396 + "node": "^14 || ^16 || >=18"
2397 + },
2398 + "funding": {
2399 + "type": "opencollective",
2400 + "url": "https://opencollective.com/csstools"
2401 + },
2402 + "peerDependencies": {
2403 + "postcss-selector-parser": "^6.0.10"
2404 + }
2405 + },
2406 + "node_modules/@eslint-community/eslint-utils": {
2407 + "version": "4.4.0",
2408 + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
2409 + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
2410 + "dependencies": {
2411 + "eslint-visitor-keys": "^3.3.0"
2412 + },
2413 + "engines": {
2414 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
2415 + },
2416 + "peerDependencies": {
2417 + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
2418 + }
2419 + },
2420 + "node_modules/@eslint-community/regexpp": {
2421 + "version": "4.11.0",
2422 + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz",
2423 + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==",
2424 + "engines": {
2425 + "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
2426 + }
2427 + },
2428 + "node_modules/@eslint/eslintrc": {
2429 + "version": "1.4.1",
2430 + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz",
2431 + "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==",
2432 + "dependencies": {
2433 + "ajv": "^6.12.4",
2434 + "debug": "^4.3.2",
2435 + "espree": "^9.4.0",
2436 + "globals": "^13.19.0",
2437 + "ignore": "^5.2.0",
2438 + "import-fresh": "^3.2.1",
2439 + "js-yaml": "^4.1.0",
2440 + "minimatch": "^3.1.2",
2441 + "strip-json-comments": "^3.1.1"
2442 + },
2443 + "engines": {
2444 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
2445 + },
2446 + "funding": {
2447 + "url": "https://opencollective.com/eslint"
2448 + }
2449 + },
2450 + "node_modules/@floating-ui/core": {
2451 + "version": "1.6.5",
2452 + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.5.tgz",
2453 + "integrity": "sha512-8GrTWmoFhm5BsMZOTHeGD2/0FLKLQQHvO/ZmQga4tKempYRLz8aqJGqXVuQgisnMObq2YZ2SgkwctN1LOOxcqA==",
2454 + "dependencies": {
2455 + "@floating-ui/utils": "^0.2.5"
2456 + }
2457 + },
2458 + "node_modules/@floating-ui/dom": {
2459 + "version": "1.6.8",
2460 + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.8.tgz",
2461 + "integrity": "sha512-kx62rP19VZ767Q653wsP1XZCGIirkE09E0QUGNYTM/ttbbQHqcGPdSfWFxUyyNLc/W6aoJRBajOSXhP6GXjC0Q==",
2462 + "dependencies": {
2463 + "@floating-ui/core": "^1.6.0",
2464 + "@floating-ui/utils": "^0.2.5"
2465 + }
2466 + },
2467 + "node_modules/@floating-ui/react-dom": {
2468 + "version": "2.1.1",
2469 + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.1.tgz",
2470 + "integrity": "sha512-4h84MJt3CHrtG18mGsXuLCHMrug49d7DFkU0RMIyshRveBeyV2hmV/pDaF2Uxtu8kgq5r46llp5E5FQiR0K2Yg==",
2471 + "dependencies": {
2472 + "@floating-ui/dom": "^1.0.0"
2473 + },
2474 + "peerDependencies": {
2475 + "react": ">=16.8.0",
2476 + "react-dom": ">=16.8.0"
2477 + }
2478 + },
2479 + "node_modules/@floating-ui/utils": {
2480 + "version": "0.2.5",
2481 + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.5.tgz",
2482 + "integrity": "sha512-sTcG+QZ6fdEUObICavU+aB3Mp8HY4n14wYHdxK4fXjPmv3PXZZeY5RaguJmGyeH/CJQhX3fqKUtS4qc1LoHwhQ=="
2483 + },
2484 + "node_modules/@formatjs/ecma402-abstract": {
2485 + "version": "1.11.4",
2486 + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
2487 + "integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
2488 + "dependencies": {
2489 + "@formatjs/intl-localematcher": "0.2.25",
2490 + "tslib": "^2.1.0"
2491 + }
2492 + },
2493 + "node_modules/@formatjs/fast-memoize": {
2494 + "version": "1.2.1",
2495 + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-1.2.1.tgz",
2496 + "integrity": "sha512-Rg0e76nomkz3vF9IPlKeV+Qynok0r7YZjL6syLz4/urSg0IbjPZCB/iYUMNsYA643gh4mgrX3T7KEIFIxJBQeg==",
2497 + "dependencies": {
2498 + "tslib": "^2.1.0"
2499 + }
2500 + },
2501 + "node_modules/@formatjs/icu-messageformat-parser": {
2502 + "version": "2.1.0",
2503 + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.0.tgz",
2504 + "integrity": "sha512-Qxv/lmCN6hKpBSss2uQ8IROVnta2r9jd3ymUEIjm2UyIkUCHVcbUVRGL/KS/wv7876edvsPe+hjHVJ4z8YuVaw==",
2505 + "dependencies": {
2506 + "@formatjs/ecma402-abstract": "1.11.4",
2507 + "@formatjs/icu-skeleton-parser": "1.3.6",
2508 + "tslib": "^2.1.0"
2509 + }
2510 + },
2511 + "node_modules/@formatjs/icu-skeleton-parser": {
2512 + "version": "1.3.6",
2513 + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.6.tgz",
2514 + "integrity": "sha512-I96mOxvml/YLrwU2Txnd4klA7V8fRhb6JG/4hm3VMNmeJo1F03IpV2L3wWt7EweqNLES59SZ4d6hVOPCSf80Bg==",
2515 + "dependencies": {
2516 + "@formatjs/ecma402-abstract": "1.11.4",
2517 + "tslib": "^2.1.0"
2518 + }
2519 + },
2520 + "node_modules/@formatjs/intl": {
2521 + "version": "2.2.1",
2522 + "resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-2.2.1.tgz",
2523 + "integrity": "sha512-vgvyUOOrzqVaOFYzTf2d3+ToSkH2JpR7x/4U1RyoHQLmvEaTQvXJ7A2qm1Iy3brGNXC/+/7bUlc3lpH+h/LOJA==",
2524 + "dependencies": {
2525 + "@formatjs/ecma402-abstract": "1.11.4",
2526 + "@formatjs/fast-memoize": "1.2.1",
2527 + "@formatjs/icu-messageformat-parser": "2.1.0",
2528 + "@formatjs/intl-displaynames": "5.4.3",
2529 + "@formatjs/intl-listformat": "6.5.3",
2530 + "intl-messageformat": "9.13.0",
2531 + "tslib": "^2.1.0"
2532 + },
2533 + "peerDependencies": {
2534 + "typescript": "^4.5"
2535 + },
2536 + "peerDependenciesMeta": {
2537 + "typescript": {
2538 + "optional": true
2539 + }
2540 + }
2541 + },
2542 + "node_modules/@formatjs/intl-displaynames": {
2543 + "version": "5.4.3",
2544 + "resolved": "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-5.4.3.tgz",
2545 + "integrity": "sha512-4r12A3mS5dp5hnSaQCWBuBNfi9Amgx2dzhU4lTFfhSxgb5DOAiAbMpg6+7gpWZgl4ahsj3l2r/iHIjdmdXOE2Q==",
2546 + "dependencies": {
2547 + "@formatjs/ecma402-abstract": "1.11.4",
2548 + "@formatjs/intl-localematcher": "0.2.25",
2549 + "tslib": "^2.1.0"
2550 + }
2551 + },
2552 + "node_modules/@formatjs/intl-listformat": {
2553 + "version": "6.5.3",
2554 + "resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-6.5.3.tgz",
2555 + "integrity": "sha512-ozpz515F/+3CU+HnLi5DYPsLa6JoCfBggBSSg/8nOB5LYSFW9+ZgNQJxJ8tdhKYeODT+4qVHX27EeJLoxLGLNg==",
2556 + "dependencies": {
2557 + "@formatjs/ecma402-abstract": "1.11.4",
2558 + "@formatjs/intl-localematcher": "0.2.25",
2559 + "tslib": "^2.1.0"
2560 + }
2561 + },
2562 + "node_modules/@formatjs/intl-localematcher": {
2563 + "version": "0.2.25",
2564 + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.2.25.tgz",
2565 + "integrity": "sha512-YmLcX70BxoSopLFdLr1Ds99NdlTI2oWoLbaUW2M406lxOIPzE1KQhRz2fPUkq34xVZQaihCoU29h0KK7An3bhA==",
2566 + "dependencies": {
2567 + "tslib": "^2.1.0"
2568 + }
2569 + },
2570 + "node_modules/@heroicons/react": {
2571 + "version": "1.0.6",
2572 + "resolved": "https://registry.npmjs.org/@heroicons/react/-/react-1.0.6.tgz",
2573 + "integrity": "sha512-JJCXydOFWMDpCP4q13iEplA503MQO3xLoZiKum+955ZCtHINWnx26CUxVxxFQu/uLb4LW3ge15ZpzIkXKkJ8oQ==",
2574 + "peerDependencies": {
2575 + "react": ">= 16"
2576 + }
2577 + },
2578 + "node_modules/@humanwhocodes/config-array": {
2579 + "version": "0.11.14",
2580 + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
2581 + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
2582 + "deprecated": "Use @eslint/config-array instead",
2583 + "dependencies": {
2584 + "@humanwhocodes/object-schema": "^2.0.2",
2585 + "debug": "^4.3.1",
2586 + "minimatch": "^3.0.5"
2587 + },
2588 + "engines": {
2589 + "node": ">=10.10.0"
2590 + }
2591 + },
2592 + "node_modules/@humanwhocodes/module-importer": {
2593 + "version": "1.0.1",
2594 + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
2595 + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
2596 + "engines": {
2597 + "node": ">=12.22"
2598 + },
2599 + "funding": {
2600 + "type": "github",
2601 + "url": "https://github.com/sponsors/nzakas"
2602 + }
2603 + },
2604 + "node_modules/@humanwhocodes/object-schema": {
2605 + "version": "2.0.3",
2606 + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
2607 + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
2608 + "deprecated": "Use @eslint/object-schema instead"
2609 + },
2610 + "node_modules/@isaacs/cliui": {
2611 + "version": "8.0.2",
2612 + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
2613 + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
2614 + "dependencies": {
2615 + "string-width": "^5.1.2",
2616 + "string-width-cjs": "npm:string-width@^4.2.0",
2617 + "strip-ansi": "^7.0.1",
2618 + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
2619 + "wrap-ansi": "^8.1.0",
2620 + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
2621 + },
2622 + "engines": {
2623 + "node": ">=12"
2624 + }
2625 + },
2626 + "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
2627 + "version": "6.0.1",
2628 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
2629 + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
2630 + "engines": {
2631 + "node": ">=12"
2632 + },
2633 + "funding": {
2634 + "url": "https://github.com/chalk/ansi-regex?sponsor=1"
2635 + }
2636 + },
2637 + "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
2638 + "version": "7.1.0",
2639 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
2640 + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
2641 + "dependencies": {
2642 + "ansi-regex": "^6.0.1"
2643 + },
2644 + "engines": {
2645 + "node": ">=12"
2646 + },
2647 + "funding": {
2648 + "url": "https://github.com/chalk/strip-ansi?sponsor=1"
2649 + }
2650 + },
2651 + "node_modules/@istanbuljs/load-nyc-config": {
2652 + "version": "1.1.0",
2653 + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
2654 + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
2655 + "dependencies": {
2656 + "camelcase": "^5.3.1",
2657 + "find-up": "^4.1.0",
2658 + "get-package-type": "^0.1.0",
2659 + "js-yaml": "^3.13.1",
2660 + "resolve-from": "^5.0.0"
2661 + },
2662 + "engines": {
2663 + "node": ">=8"
2664 + }
2665 + },
2666 + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": {
2667 + "version": "1.0.10",
2668 + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
2669 + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
2670 + "dependencies": {
2671 + "sprintf-js": "~1.0.2"
2672 + }
2673 + },
2674 + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": {
2675 + "version": "5.3.1",
2676 + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
2677 + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
2678 + "engines": {
2679 + "node": ">=6"
2680 + }
2681 + },
2682 + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": {
2683 + "version": "4.1.0",
2684 + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
2685 + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
2686 + "dependencies": {
2687 + "locate-path": "^5.0.0",
2688 + "path-exists": "^4.0.0"
2689 + },
2690 + "engines": {
2691 + "node": ">=8"
2692 + }
2693 + },
2694 + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": {
2695 + "version": "3.14.1",
2696 + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
2697 + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
2698 + "dependencies": {
2699 + "argparse": "^1.0.7",
2700 + "esprima": "^4.0.0"
2701 + },
2702 + "bin": {
2703 + "js-yaml": "bin/js-yaml.js"
2704 + }
2705 + },
2706 + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": {
2707 + "version": "5.0.0",
2708 + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
2709 + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
2710 + "dependencies": {
2711 + "p-locate": "^4.1.0"
2712 + },
2713 + "engines": {
2714 + "node": ">=8"
2715 + }
2716 + },
2717 + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": {
2718 + "version": "2.3.0",
2719 + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
2720 + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
2721 + "dependencies": {
2722 + "p-try": "^2.0.0"
2723 + },
2724 + "engines": {
2725 + "node": ">=6"
2726 + },
2727 + "funding": {
2728 + "url": "https://github.com/sponsors/sindresorhus"
2729 + }
2730 + },
2731 + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": {
2732 + "version": "4.1.0",
2733 + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
2734 + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
2735 + "dependencies": {
2736 + "p-limit": "^2.2.0"
2737 + },
2738 + "engines": {
2739 + "node": ">=8"
2740 + }
2741 + },
2742 + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": {
2743 + "version": "5.0.0",
2744 + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
2745 + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
2746 + "engines": {
2747 + "node": ">=8"
2748 + }
2749 + },
2750 + "node_modules/@istanbuljs/schema": {
2751 + "version": "0.1.3",
2752 + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
2753 + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
2754 + "engines": {
2755 + "node": ">=8"
2756 + }
2757 + },
2758 + "node_modules/@jest/console": {
2759 + "version": "27.5.1",
2760 + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz",
2761 + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==",
2762 + "dependencies": {
2763 + "@jest/types": "^27.5.1",
2764 + "@types/node": "*",
2765 + "chalk": "^4.0.0",
2766 + "jest-message-util": "^27.5.1",
2767 + "jest-util": "^27.5.1",
2768 + "slash": "^3.0.0"
2769 + },
2770 + "engines": {
2771 + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
2772 + }
2773 + },
2774 + "node_modules/@jest/core": {
2775 + "version": "27.5.1",
2776 + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz",
2777 + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==",
2778 + "dependencies": {
2779 + "@jest/console": "^27.5.1",
2780 + "@jest/reporters": "^27.5.1",
2781 + "@jest/test-result": "^27.5.1",
2782 + "@jest/transform": "^27.5.1",
2783 + "@jest/types": "^27.5.1",
2784 + "@types/node": "*",
2785 + "ansi-escapes": "^4.2.1",
2786 + "chalk": "^4.0.0",
2787 + "emittery": "^0.8.1",
2788 + "exit": "^0.1.2",
2789 + "graceful-fs": "^4.2.9",
2790 + "jest-changed-files": "^27.5.1",
2791 + "jest-config": "^27.5.1",
2792 + "jest-haste-map": "^27.5.1",
2793 + "jest-message-util": "^27.5.1",
2794 + "jest-regex-util": "^27.5.1",
2795 + "jest-resolve": "^27.5.1",
2796 + "jest-resolve-dependencies": "^27.5.1",
2797 + "jest-runner": "^27.5.1",
2798 + "jest-runtime": "^27.5.1",
2799 + "jest-snapshot": "^27.5.1",
2800 + "jest-util": "^27.5.1",
2801 + "jest-validate": "^27.5.1",
2802 + "jest-watcher": "^27.5.1",
2803 + "micromatch": "^4.0.4",
2804 + "rimraf": "^3.0.0",
2805 + "slash": "^3.0.0",
2806 + "strip-ansi": "^6.0.0"
2807 + },
2808 + "engines": {
2809 + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
2810 + },
2811 + "peerDependencies": {
2812 + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
2813 + },
2814 + "peerDependenciesMeta": {
2815 + "node-notifier": {
2816 + "optional": true
2817 + }
2818 + }
2819 + },
2820 + "node_modules/@jest/environment": {
2821 + "version": "27.5.1",
2822 + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz",
2823 + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==",
2824 + "dependencies": {
2825 + "@jest/fake-timers": "^27.5.1",
2826 + "@jest/types": "^27.5.1",
2827 + "@types/node": "*",
2828 + "jest-mock": "^27.5.1"
2829 + },
2830 + "engines": {
2831 + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
2832 + }
2833 + },
2834 + "node_modules/@jest/fake-timers": {
2835 + "version": "27.5.1",
2836 + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz",
2837 + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==",
2838 + "dependencies": {
2839 + "@jest/types": "^27.5.1",
2840 + "@sinonjs/fake-timers": "^8.0.1",
2841 + "@types/node": "*",
2842 + "jest-message-util": "^27.5.1",
2843 + "jest-mock": "^27.5.1",
2844 + "jest-util": "^27.5.1"
2845 + },
2846 + "engines": {
2847 + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
2848 + }
2849 + },
2850 + "node_modules/@jest/globals": {
2851 + "version": "27.5.1",
2852 + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz",
2853 + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==",
2854 + "dependencies": {
2855 + "@jest/environment": "^27.5.1",
2856 + "@jest/types": "^27.5.1",
2857 + "expect": "^27.5.1"
2858 + },
2859 + "engines": {
2860 + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
2861 + }
2862 + },
2863 + "node_modules/@jest/reporters": {
2864 + "version": "27.5.1",
2865 + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz",
2866 + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==",
2867 + "dependencies": {
2868 + "@bcoe/v8-coverage": "^0.2.3",
2869 + "@jest/console": "^27.5.1",
2870 + "@jest/test-result": "^27.5.1",
2871 + "@jest/transform": "^27.5.1",
2872 + "@jest/types": "^27.5.1",
2873 + "@types/node": "*",
2874 + "chalk": "^4.0.0",
2875 + "collect-v8-coverage": "^1.0.0",
2876 + "exit": "^0.1.2",
2877 + "glob": "^7.1.2",
2878 + "graceful-fs": "^4.2.9",
2879 + "istanbul-lib-coverage": "^3.0.0",
2880 + "istanbul-lib-instrument": "^5.1.0",
2881 + "istanbul-lib-report": "^3.0.0",
2882 + "istanbul-lib-source-maps": "^4.0.0",
2883 + "istanbul-reports": "^3.1.3",
2884 + "jest-haste-map": "^27.5.1",
2885 + "jest-resolve": "^27.5.1",
2886 + "jest-util": "^27.5.1",
2887 + "jest-worker": "^27.5.1",
2888 + "slash": "^3.0.0",
2889 + "source-map": "^0.6.0",
2890 + "string-length": "^4.0.1",
2891 + "terminal-link": "^2.0.0",
2892 + "v8-to-istanbul": "^8.1.0"
2893 + },
2894 + "engines": {
2895 + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
2896 + },
2897 + "peerDependencies": {
2898 + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
2899 + },
2900 + "peerDependenciesMeta": {
2901 + "node-notifier": {
2902 + "optional": true
2903 + }
2904 + }
2905 + },
2906 + "node_modules/@jest/reporters/node_modules/glob": {
2907 + "version": "7.2.3",
2908 + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
2909 + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
2910 + "deprecated": "Glob versions prior to v9 are no longer supported",
2911 + "dependencies": {
2912 + "fs.realpath": "^1.0.0",
2913 + "inflight": "^1.0.4",
2914 + "inherits": "2",
2915 + "minimatch": "^3.1.1",
2916 + "once": "^1.3.0",
2917 + "path-is-absolute": "^1.0.0"
2918 + },
2919 + "engines": {
2920 + "node": "*"
2921 + },
2922 + "funding": {
2923 + "url": "https://github.com/sponsors/isaacs"
2924 + }
2925 + },
2926 + "node_modules/@jest/reporters/node_modules/source-map": {
2927 + "version": "0.6.1",
2928 + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
2929 + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
2930 + "engines": {
2931 + "node": ">=0.10.0"
2932 + }
2933 + },
2934 + "node_modules/@jest/schemas": {
2935 + "version": "28.1.3",
2936 + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz",
2937 + "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==",
2938 + "dependencies": {
2939 + "@sinclair/typebox": "^0.24.1"
2940 + },
2941 + "engines": {
2942 + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
2943 + }
2944 + },
2945 + "node_modules/@jest/source-map": {
2946 + "version": "27.5.1",
2947 + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz",
2948 + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==",
2949 + "dependencies": {
2950 + "callsites": "^3.0.0",
2951 + "graceful-fs": "^4.2.9",
2952 + "source-map": "^0.6.0"
2953 + },
2954 + "engines": {
2955 + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
2956 + }
2957 + },
2958 + "node_modules/@jest/source-map/node_modules/source-map": {
2959 + "version": "0.6.1",
2960 + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
2961 + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
2962 + "engines": {
2963 + "node": ">=0.10.0"
2964 + }
2965 + },
2966 + "node_modules/@jest/test-result": {
2967 + "version": "27.5.1",
2968 + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz",
2969 + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==",
2970 + "dependencies": {
2971 + "@jest/console": "^27.5.1",
2972 + "@jest/types": "^27.5.1",
2973 + "@types/istanbul-lib-coverage": "^2.0.0",
2974 + "collect-v8-coverage": "^1.0.0"
2975 + },
2976 + "engines": {
2977 + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
2978 + }
2979 + },
2980 + "node_modules/@jest/test-sequencer": {
2981 + "version": "27.5.1",
2982 + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz",
2983 + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==",
2984 + "dependencies": {
2985 + "@jest/test-result": "^27.5.1",
2986 + "graceful-fs": "^4.2.9",
2987 + "jest-haste-map": "^27.5.1",
2988 + "jest-runtime": "^27.5.1"
2989 + },
2990 + "engines": {
2991 + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
2992 + }
2993 + },
2994 + "node_modules/@jest/transform": {
2995 + "version": "27.5.1",
2996 + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz",
2997 + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==",
2998 + "dependencies": {
2999 + "@babel/core": "^7.1.0",
3000 + "@jest/types": "^27.5.1",
3001 + "babel-plugin-istanbul": "^6.1.1",
3002 + "chalk": "^4.0.0",
3003 + "convert-source-map": "^1.4.0",
3004 + "fast-json-stable-stringify": "^2.0.0",
3005 + "graceful-fs": "^4.2.9",
3006 + "jest-haste-map": "^27.5.1",
3007 + "jest-regex-util": "^27.5.1",
3008 + "jest-util": "^27.5.1",
3009 + "micromatch": "^4.0.4",
3010 + "pirates": "^4.0.4",
3011 + "slash": "^3.0.0",
3012 + "source-map": "^0.6.1",
3013 + "write-file-atomic": "^3.0.0"
3014 + },
3015 + "engines": {
3016 + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
3017 + }
3018 + },
3019 + "node_modules/@jest/transform/node_modules/convert-source-map": {
3020 + "version": "1.9.0",
3021 + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
3022 + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A=="
3023 + },
3024 + "node_modules/@jest/transform/node_modules/source-map": {
3025 + "version": "0.6.1",
3026 + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
3027 + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
3028 + "engines": {
3029 + "node": ">=0.10.0"
3030 + }
3031 + },
3032 + "node_modules/@jest/types": {
3033 + "version": "27.5.1",
3034 + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
3035 + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
3036 + "dependencies": {
3037 + "@types/istanbul-lib-coverage": "^2.0.0",
3038 + "@types/istanbul-reports": "^3.0.0",
3039 + "@types/node": "*",
3040 + "@types/yargs": "^16.0.0",
3041 + "chalk": "^4.0.0"
3042 + },
3043 + "engines": {
3044 + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
3045 + }
3046 + },
3047 + "node_modules/@jridgewell/gen-mapping": {
3048 + "version": "0.3.5",
3049 + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
3050 + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
3051 + "dependencies": {
3052 + "@jridgewell/set-array": "^1.2.1",
3053 + "@jridgewell/sourcemap-codec": "^1.4.10",
3054 + "@jridgewell/trace-mapping": "^0.3.24"
3055 + },
3056 + "engines": {
3057 + "node": ">=6.0.0"
3058 + }
3059 + },
3060 + "node_modules/@jridgewell/resolve-uri": {
3061 + "version": "3.1.2",
3062 + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
3063 + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
3064 + "engines": {
3065 + "node": ">=6.0.0"
3066 + }
3067 + },
3068 + "node_modules/@jridgewell/set-array": {
3069 + "version": "1.2.1",
3070 + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
3071 + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
3072 + "engines": {
3073 + "node": ">=6.0.0"
3074 + }
3075 + },
3076 + "node_modules/@jridgewell/source-map": {
3077 + "version": "0.3.6",
3078 + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz",
3079 + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==",
3080 + "dependencies": {
3081 + "@jridgewell/gen-mapping": "^0.3.5",
3082 + "@jridgewell/trace-mapping": "^0.3.25"
3083 + }
3084 + },
3085 + "node_modules/@jridgewell/sourcemap-codec": {
3086 + "version": "1.5.0",
3087 + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
3088 + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="
3089 + },
3090 + "node_modules/@jridgewell/trace-mapping": {
3091 + "version": "0.3.25",
3092 + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
3093 + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
3094 + "dependencies": {
3095 + "@jridgewell/resolve-uri": "^3.1.0",
3096 + "@jridgewell/sourcemap-codec": "^1.4.14"
3097 + }
3098 + },
3099 + "node_modules/@leichtgewicht/ip-codec": {
3100 + "version": "2.0.5",
3101 + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz",
3102 + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw=="
3103 + },
3104 + "node_modules/@next/env": {
3105 + "version": "14.2.5",
3106 + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.5.tgz",
3107 + "integrity": "sha512-/zZGkrTOsraVfYjGP8uM0p6r0BDT6xWpkjdVbcz66PJVSpwXX3yNiRycxAuDfBKGWBrZBXRuK/YVlkNgxHGwmA=="
3108 + },
3109 + "node_modules/@next/eslint-plugin-next": {
3110 + "version": "14.1.0",
3111 + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.1.0.tgz",
3112 + "integrity": "sha512-x4FavbNEeXx/baD/zC/SdrvkjSby8nBn8KcCREqk6UuwvwoAPZmaV8TFCAuo/cpovBRTIY67mHhe86MQQm/68Q==",
3113 + "dependencies": {
3114 + "glob": "10.3.10"
3115 + }
3116 + },
3117 + "node_modules/@next/swc-darwin-arm64": {
3118 + "version": "14.2.5",
3119 + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.5.tgz",
3120 + "integrity": "sha512-/9zVxJ+K9lrzSGli1///ujyRfon/ZneeZ+v4ptpiPoOU+GKZnm8Wj8ELWU1Pm7GHltYRBklmXMTUqM/DqQ99FQ==",
3121 + "cpu": [
3122 + "arm64"
3123 + ],
3124 + "optional": true,
3125 + "os": [
3126 + "darwin"
3127 + ],
3128 + "engines": {
3129 + "node": ">= 10"
3130 + }
3131 + },
3132 + "node_modules/@next/swc-darwin-x64": {
3133 + "version": "14.2.5",
3134 + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.5.tgz",
3135 + "integrity": "sha512-vXHOPCwfDe9qLDuq7U1OYM2wUY+KQ4Ex6ozwsKxp26BlJ6XXbHleOUldenM67JRyBfVjv371oneEvYd3H2gNSA==",
3136 + "cpu": [
3137 + "x64"
3138 + ],
3139 + "optional": true,
3140 + "os": [
3141 + "darwin"
3142 + ],
3143 + "engines": {
3144 + "node": ">= 10"
3145 + }
3146 + },
3147 + "node_modules/@next/swc-linux-arm64-gnu": {
3148 + "version": "14.2.5",
3149 + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.5.tgz",
3150 + "integrity": "sha512-vlhB8wI+lj8q1ExFW8lbWutA4M2ZazQNvMWuEDqZcuJJc78iUnLdPPunBPX8rC4IgT6lIx/adB+Cwrl99MzNaA==",
3151 + "cpu": [
3152 + "arm64"
3153 + ],
3154 + "optional": true,
3155 + "os": [
3156 + "linux"
3157 + ],
3158 + "engines": {
3159 + "node": ">= 10"
3160 + }
3161 + },
3162 + "node_modules/@next/swc-linux-arm64-musl": {
3163 + "version": "14.2.5",
3164 + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.5.tgz",
3165 + "integrity": "sha512-NpDB9NUR2t0hXzJJwQSGu1IAOYybsfeB+LxpGsXrRIb7QOrYmidJz3shzY8cM6+rO4Aojuef0N/PEaX18pi9OA==",
3166 + "cpu": [
3167 + "arm64"
3168 + ],
3169 + "optional": true,
3170 + "os": [
3171 + "linux"
3172 + ],
3173 + "engines": {
3174 + "node": ">= 10"
3175 + }
3176 + },
3177 + "node_modules/@next/swc-linux-x64-gnu": {
3178 + "version": "14.2.5",
3179 + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.5.tgz",
3180 + "integrity": "sha512-8XFikMSxWleYNryWIjiCX+gU201YS+erTUidKdyOVYi5qUQo/gRxv/3N1oZFCgqpesN6FPeqGM72Zve+nReVXQ==",
3181 + "cpu": [
3182 + "x64"
3183 + ],
3184 + "optional": true,
3185 + "os": [
3186 + "linux"
3187 + ],
3188 + "engines": {
3189 + "node": ">= 10"
3190 + }
3191 + },
3192 + "node_modules/@next/swc-linux-x64-musl": {
3193 + "version": "14.2.5",
3194 + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.5.tgz",
3195 + "integrity": "sha512-6QLwi7RaYiQDcRDSU/os40r5o06b5ue7Jsk5JgdRBGGp8l37RZEh9JsLSM8QF0YDsgcosSeHjglgqi25+m04IQ==",
3196 + "cpu": [
3197 + "x64"
3198 + ],
3199 + "optional": true,
3200 + "os": [
3201 + "linux"
3202 + ],
3203 + "engines": {
3204 + "node": ">= 10"
3205 + }
3206 + },
3207 + "node_modules/@next/swc-win32-arm64-msvc": {
3208 + "version": "14.2.5",
3209 + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.5.tgz",
3210 + "integrity": "sha512-1GpG2VhbspO+aYoMOQPQiqc/tG3LzmsdBH0LhnDS3JrtDx2QmzXe0B6mSZZiN3Bq7IOMXxv1nlsjzoS1+9mzZw==",
3211 + "cpu": [
3212 + "arm64"
3213 + ],
3214 + "optional": true,
3215 + "os": [
3216 + "win32"
3217 + ],
3218 + "engines": {
3219 + "node": ">= 10"
3220 + }
3221 + },
3222 + "node_modules/@next/swc-win32-ia32-msvc": {
3223 + "version": "14.2.5",
3224 + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.5.tgz",
3225 + "integrity": "sha512-Igh9ZlxwvCDsu6438FXlQTHlRno4gFpJzqPjSIBZooD22tKeI4fE/YMRoHVJHmrQ2P5YL1DoZ0qaOKkbeFWeMg==",
3226 + "cpu": [
3227 + "ia32"
3228 + ],
3229 + "optional": true,
3230 + "os": [
3231 + "win32"
3232 + ],
3233 + "engines": {
3234 + "node": ">= 10"
3235 + }
3236 + },
3237 + "node_modules/@next/swc-win32-x64-msvc": {
3238 + "version": "14.2.5",
3239 + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.5.tgz",
3240 + "integrity": "sha512-tEQ7oinq1/CjSG9uSTerca3v4AZ+dFa+4Yu6ihaG8Ud8ddqLQgFGcnwYls13H5X5CPDPZJdYxyeMui6muOLd4g==",
3241 + "cpu": [
3242 + "x64"
3243 + ],
3244 + "optional": true,
3245 + "os": [
3246 + "win32"
3247 + ],
3248 + "engines": {
3249 + "node": ">= 10"
3250 + }
3251 + },
3252 + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": {
3253 + "version": "5.1.1-v1",
3254 + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz",
3255 + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==",
3256 + "dependencies": {
3257 + "eslint-scope": "5.1.1"
3258 + }
3259 + },
3260 + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope": {
3261 + "version": "5.1.1",
3262 + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
3263 + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
3264 + "dependencies": {
3265 + "esrecurse": "^4.3.0",
3266 + "estraverse": "^4.1.1"
3267 + },
3268 + "engines": {
3269 + "node": ">=8.0.0"
3270 + }
3271 + },
3272 + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/estraverse": {
3273 + "version": "4.3.0",
3274 + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
3275 + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
3276 + "engines": {
3277 + "node": ">=4.0"
3278 + }
3279 + },
3280 + "node_modules/@nodelib/fs.scandir": {
3281 + "version": "2.1.5",
3282 + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
3283 + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
3284 + "dependencies": {
3285 + "@nodelib/fs.stat": "2.0.5",
3286 + "run-parallel": "^1.1.9"
3287 + },
3288 + "engines": {
3289 + "node": ">= 8"
3290 + }
3291 + },
3292 + "node_modules/@nodelib/fs.stat": {
3293 + "version": "2.0.5",
3294 + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
3295 + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
3296 + "engines": {
3297 + "node": ">= 8"
3298 + }
3299 + },
3300 + "node_modules/@nodelib/fs.walk": {
3301 + "version": "1.2.8",
3302 + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
3303 + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
3304 + "dependencies": {
3305 + "@nodelib/fs.scandir": "2.1.5",
3306 + "fastq": "^1.6.0"
3307 + },
3308 + "engines": {
3309 + "node": ">= 8"
3310 + }
3311 + },
3312 + "node_modules/@pkgjs/parseargs": {
3313 + "version": "0.11.0",
3314 + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
3315 + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
3316 + "optional": true,
3317 + "engines": {
3318 + "node": ">=14"
3319 + }
3320 + },
3321 + "node_modules/@pmmmwh/react-refresh-webpack-plugin": {
3322 + "version": "0.5.15",
3323 + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.15.tgz",
3324 + "integrity": "sha512-LFWllMA55pzB9D34w/wXUCf8+c+IYKuJDgxiZ3qMhl64KRMBHYM1I3VdGaD2BV5FNPV2/S2596bppxHbv2ZydQ==",
3325 + "dependencies": {
3326 + "ansi-html": "^0.0.9",
3327 + "core-js-pure": "^3.23.3",
3328 + "error-stack-parser": "^2.0.6",
3329 + "html-entities": "^2.1.0",
3330 + "loader-utils": "^2.0.4",
3331 + "schema-utils": "^4.2.0",
3332 + "source-map": "^0.7.3"
3333 + },
3334 + "engines": {
3335 + "node": ">= 10.13"
3336 + },
3337 + "peerDependencies": {
3338 + "@types/webpack": "4.x || 5.x",
3339 + "react-refresh": ">=0.10.0 <1.0.0",
3340 + "sockjs-client": "^1.4.0",
3341 + "type-fest": ">=0.17.0 <5.0.0",
3342 + "webpack": ">=4.43.0 <6.0.0",
3343 + "webpack-dev-server": "3.x || 4.x || 5.x",
3344 + "webpack-hot-middleware": "2.x",
3345 + "webpack-plugin-serve": "0.x || 1.x"
3346 + },
3347 + "peerDependenciesMeta": {
3348 + "@types/webpack": {
3349 + "optional": true
3350 + },
3351 + "sockjs-client": {
3352 + "optional": true
3353 + },
3354 + "type-fest": {
3355 + "optional": true
3356 + },
3357 + "webpack-dev-server": {
3358 + "optional": true
3359 + },
3360 + "webpack-hot-middleware": {
3361 + "optional": true
3362 + },
3363 + "webpack-plugin-serve": {
3364 + "optional": true
3365 + }
3366 + }
3367 + },
3368 + "node_modules/@popperjs/core": {
3369 + "version": "2.11.8",
3370 + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
3371 + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
3372 + "funding": {
3373 + "type": "opencollective",
3374 + "url": "https://opencollective.com/popperjs"
3375 + }
3376 + },
3377 + "node_modules/@radix-ui/primitive": {
3378 + "version": "1.1.0",
3379 + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.0.tgz",
3380 + "integrity": "sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA=="
3381 + },
3382 + "node_modules/@radix-ui/react-arrow": {
3383 + "version": "1.1.0",
3384 + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.0.tgz",
3385 + "integrity": "sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==",
3386 + "dependencies": {
3387 + "@radix-ui/react-primitive": "2.0.0"
3388 + },
3389 + "peerDependencies": {
3390 + "@types/react": "*",
3391 + "@types/react-dom": "*",
3392 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
3393 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
3394 + },
3395 + "peerDependenciesMeta": {
3396 + "@types/react": {
3397 + "optional": true
3398 + },
3399 + "@types/react-dom": {
3400 + "optional": true
3401 + }
3402 + }
3403 + },
3404 + "node_modules/@radix-ui/react-compose-refs": {
3405 + "version": "1.1.0",
3406 + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.0.tgz",
3407 + "integrity": "sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==",
3408 + "peerDependencies": {
3409 + "@types/react": "*",
3410 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
3411 + },
3412 + "peerDependenciesMeta": {
3413 + "@types/react": {
3414 + "optional": true
3415 + }
3416 + }
3417 + },
3418 + "node_modules/@radix-ui/react-context": {
3419 + "version": "1.1.0",
3420 + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz",
3421 + "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==",
3422 + "peerDependencies": {
3423 + "@types/react": "*",
3424 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
3425 + },
3426 + "peerDependenciesMeta": {
3427 + "@types/react": {
3428 + "optional": true
3429 + }
3430 + }
3431 + },
3432 + "node_modules/@radix-ui/react-dismissable-layer": {
3433 + "version": "1.1.0",
3434 + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.0.tgz",
3435 + "integrity": "sha512-/UovfmmXGptwGcBQawLzvn2jOfM0t4z3/uKffoBlj724+n3FvBbZ7M0aaBOmkp6pqFYpO4yx8tSVJjx3Fl2jig==",
3436 + "dependencies": {
3437 + "@radix-ui/primitive": "1.1.0",
3438 + "@radix-ui/react-compose-refs": "1.1.0",
3439 + "@radix-ui/react-primitive": "2.0.0",
3440 + "@radix-ui/react-use-callback-ref": "1.1.0",
3441 + "@radix-ui/react-use-escape-keydown": "1.1.0"
3442 + },
3443 + "peerDependencies": {
3444 + "@types/react": "*",
3445 + "@types/react-dom": "*",
3446 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
3447 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
3448 + },
3449 + "peerDependenciesMeta": {
3450 + "@types/react": {
3451 + "optional": true
3452 + },
3453 + "@types/react-dom": {
3454 + "optional": true
3455 + }
3456 + }
3457 + },
3458 + "node_modules/@radix-ui/react-id": {
3459 + "version": "1.1.0",
3460 + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.0.tgz",
3461 + "integrity": "sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==",
3462 + "dependencies": {
3463 + "@radix-ui/react-use-layout-effect": "1.1.0"
3464 + },
3465 + "peerDependencies": {
3466 + "@types/react": "*",
3467 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
3468 + },
3469 + "peerDependenciesMeta": {
3470 + "@types/react": {
3471 + "optional": true
3472 + }
3473 + }
3474 + },
3475 + "node_modules/@radix-ui/react-popper": {
3476 + "version": "1.2.0",
3477 + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.0.tgz",
3478 + "integrity": "sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==",
3479 + "dependencies": {
3480 + "@floating-ui/react-dom": "^2.0.0",
3481 + "@radix-ui/react-arrow": "1.1.0",
3482 + "@radix-ui/react-compose-refs": "1.1.0",
3483 + "@radix-ui/react-context": "1.1.0",
3484 + "@radix-ui/react-primitive": "2.0.0",
3485 + "@radix-ui/react-use-callback-ref": "1.1.0",
3486 + "@radix-ui/react-use-layout-effect": "1.1.0",
3487 + "@radix-ui/react-use-rect": "1.1.0",
3488 + "@radix-ui/react-use-size": "1.1.0",
3489 + "@radix-ui/rect": "1.1.0"
3490 + },
3491 + "peerDependencies": {
3492 + "@types/react": "*",
3493 + "@types/react-dom": "*",
3494 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
3495 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
3496 + },
3497 + "peerDependenciesMeta": {
3498 + "@types/react": {
3499 + "optional": true
3500 + },
3501 + "@types/react-dom": {
3502 + "optional": true
3503 + }
3504 + }
3505 + },
3506 + "node_modules/@radix-ui/react-portal": {
3507 + "version": "1.1.1",
3508 + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.1.tgz",
3509 + "integrity": "sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g==",
3510 + "dependencies": {
3511 + "@radix-ui/react-primitive": "2.0.0",
3512 + "@radix-ui/react-use-layout-effect": "1.1.0"
3513 + },
3514 + "peerDependencies": {
3515 + "@types/react": "*",
3516 + "@types/react-dom": "*",
3517 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
3518 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
3519 + },
3520 + "peerDependenciesMeta": {
3521 + "@types/react": {
3522 + "optional": true
3523 + },
3524 + "@types/react-dom": {
3525 + "optional": true
3526 + }
3527 + }
3528 + },
3529 + "node_modules/@radix-ui/react-presence": {
3530 + "version": "1.1.0",
3531 + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.0.tgz",
3532 + "integrity": "sha512-Gq6wuRN/asf9H/E/VzdKoUtT8GC9PQc9z40/vEr0VCJ4u5XvvhWIrSsCB6vD2/cH7ugTdSfYq9fLJCcM00acrQ==",
3533 + "dependencies": {
3534 + "@radix-ui/react-compose-refs": "1.1.0",
3535 + "@radix-ui/react-use-layout-effect": "1.1.0"
3536 + },
3537 + "peerDependencies": {
3538 + "@types/react": "*",
3539 + "@types/react-dom": "*",
3540 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
3541 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
3542 + },
3543 + "peerDependenciesMeta": {
3544 + "@types/react": {
3545 + "optional": true
3546 + },
3547 + "@types/react-dom": {
3548 + "optional": true
3549 + }
3550 + }
3551 + },
3552 + "node_modules/@radix-ui/react-primitive": {
3553 + "version": "2.0.0",
3554 + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz",
3555 + "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==",
3556 + "dependencies": {
3557 + "@radix-ui/react-slot": "1.1.0"
3558 + },
3559 + "peerDependencies": {
3560 + "@types/react": "*",
3561 + "@types/react-dom": "*",
3562 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
3563 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
3564 + },
3565 + "peerDependenciesMeta": {
3566 + "@types/react": {
3567 + "optional": true
3568 + },
3569 + "@types/react-dom": {
3570 + "optional": true
3571 + }
3572 + }
3573 + },
3574 + "node_modules/@radix-ui/react-slot": {
3575 + "version": "1.1.0",
3576 + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.0.tgz",
3577 + "integrity": "sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==",
3578 + "dependencies": {
3579 + "@radix-ui/react-compose-refs": "1.1.0"
3580 + },
3581 + "peerDependencies": {
3582 + "@types/react": "*",
3583 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
3584 + },
3585 + "peerDependenciesMeta": {
3586 + "@types/react": {
3587 + "optional": true
3588 + }
3589 + }
3590 + },
3591 + "node_modules/@radix-ui/react-tooltip": {
3592 + "version": "1.1.2",
3593 + "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.1.2.tgz",
3594 + "integrity": "sha512-9XRsLwe6Yb9B/tlnYCPVUd/TFS4J7HuOZW345DCeC6vKIxQGMZdx21RK4VoZauPD5frgkXTYVS5y90L+3YBn4w==",
3595 + "dependencies": {
3596 + "@radix-ui/primitive": "1.1.0",
3597 + "@radix-ui/react-compose-refs": "1.1.0",
3598 + "@radix-ui/react-context": "1.1.0",
3599 + "@radix-ui/react-dismissable-layer": "1.1.0",
3600 + "@radix-ui/react-id": "1.1.0",
3601 + "@radix-ui/react-popper": "1.2.0",
3602 + "@radix-ui/react-portal": "1.1.1",
3603 + "@radix-ui/react-presence": "1.1.0",
3604 + "@radix-ui/react-primitive": "2.0.0",
3605 + "@radix-ui/react-slot": "1.1.0",
3606 + "@radix-ui/react-use-controllable-state": "1.1.0",
3607 + "@radix-ui/react-visually-hidden": "1.1.0"
3608 + },
3609 + "peerDependencies": {
3610 + "@types/react": "*",
3611 + "@types/react-dom": "*",
3612 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
3613 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
3614 + },
3615 + "peerDependenciesMeta": {
3616 + "@types/react": {
3617 + "optional": true
3618 + },
3619 + "@types/react-dom": {
3620 + "optional": true
3621 + }
3622 + }
3623 + },
3624 + "node_modules/@radix-ui/react-use-callback-ref": {
3625 + "version": "1.1.0",
3626 + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz",
3627 + "integrity": "sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==",
3628 + "peerDependencies": {
3629 + "@types/react": "*",
3630 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
3631 + },
3632 + "peerDependenciesMeta": {
3633 + "@types/react": {
3634 + "optional": true
3635 + }
3636 + }
3637 + },
3638 + "node_modules/@radix-ui/react-use-controllable-state": {
3639 + "version": "1.1.0",
3640 + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz",
3641 + "integrity": "sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==",
3642 + "dependencies": {
3643 + "@radix-ui/react-use-callback-ref": "1.1.0"
3644 + },
3645 + "peerDependencies": {
3646 + "@types/react": "*",
3647 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
3648 + },
3649 + "peerDependenciesMeta": {
3650 + "@types/react": {
3651 + "optional": true
3652 + }
3653 + }
3654 + },
3655 + "node_modules/@radix-ui/react-use-escape-keydown": {
3656 + "version": "1.1.0",
3657 + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz",
3658 + "integrity": "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==",
3659 + "dependencies": {
3660 + "@radix-ui/react-use-callback-ref": "1.1.0"
3661 + },
3662 + "peerDependencies": {
3663 + "@types/react": "*",
3664 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
3665 + },
3666 + "peerDependenciesMeta": {
3667 + "@types/react": {
3668 + "optional": true
3669 + }
3670 + }
3671 + },
3672 + "node_modules/@radix-ui/react-use-layout-effect": {
3673 + "version": "1.1.0",
3674 + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz",
3675 + "integrity": "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==",
3676 + "peerDependencies": {
3677 + "@types/react": "*",
3678 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
3679 + },
3680 + "peerDependenciesMeta": {
3681 + "@types/react": {
3682 + "optional": true
3683 + }
3684 + }
3685 + },
3686 + "node_modules/@radix-ui/react-use-rect": {
3687 + "version": "1.1.0",
3688 + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.0.tgz",
3689 + "integrity": "sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==",
3690 + "dependencies": {
3691 + "@radix-ui/rect": "1.1.0"
3692 + },
3693 + "peerDependencies": {
3694 + "@types/react": "*",
3695 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
3696 + },
3697 + "peerDependenciesMeta": {
3698 + "@types/react": {
3699 + "optional": true
3700 + }
3701 + }
3702 + },
3703 + "node_modules/@radix-ui/react-use-size": {
3704 + "version": "1.1.0",
3705 + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.0.tgz",
3706 + "integrity": "sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==",
3707 + "dependencies": {
3708 + "@radix-ui/react-use-layout-effect": "1.1.0"
3709 + },
3710 + "peerDependencies": {
3711 + "@types/react": "*",
3712 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
3713 + },
3714 + "peerDependenciesMeta": {
3715 + "@types/react": {
3716 + "optional": true
3717 + }
3718 + }
3719 + },
3720 + "node_modules/@radix-ui/react-visually-hidden": {
3721 + "version": "1.1.0",
3722 + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.0.tgz",
3723 + "integrity": "sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ==",
3724 + "dependencies": {
3725 + "@radix-ui/react-primitive": "2.0.0"
3726 + },
3727 + "peerDependencies": {
3728 + "@types/react": "*",
3729 + "@types/react-dom": "*",
3730 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
3731 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
3732 + },
3733 + "peerDependenciesMeta": {
3734 + "@types/react": {
3735 + "optional": true
3736 + },
3737 + "@types/react-dom": {
3738 + "optional": true
3739 + }
3740 + }
3741 + },
3742 + "node_modules/@radix-ui/rect": {
3743 + "version": "1.1.0",
3744 + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.0.tgz",
3745 + "integrity": "sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg=="
3746 + },
3747 + "node_modules/@react-aria/ssr": {
3748 + "version": "3.9.5",
3749 + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.5.tgz",
3750 + "integrity": "sha512-xEwGKoysu+oXulibNUSkXf8itW0npHHTa6c4AyYeZIJyRoegeteYuFpZUBPtIDE8RfHdNsSmE1ssOkxRnwbkuQ==",
3751 + "dependencies": {
3752 + "@swc/helpers": "^0.5.0"
3753 + },
3754 + "engines": {
3755 + "node": ">= 12"
3756 + },
3757 + "peerDependencies": {
3758 + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0"
3759 + }
3760 + },
3761 + "node_modules/@react-dnd/asap": {
3762 + "version": "5.0.2",
3763 + "resolved": "https://registry.npmjs.org/@react-dnd/asap/-/asap-5.0.2.tgz",
3764 + "integrity": "sha512-WLyfoHvxhs0V9U+GTsGilGgf2QsPl6ZZ44fnv0/b8T3nQyvzxidxsg/ZltbWssbsRDlYW8UKSQMTGotuTotZ6A=="
3765 + },
3766 + "node_modules/@react-dnd/invariant": {
3767 + "version": "4.0.2",
3768 + "resolved": "https://registry.npmjs.org/@react-dnd/invariant/-/invariant-4.0.2.tgz",
3769 + "integrity": "sha512-xKCTqAK/FFauOM9Ta2pswIyT3D8AQlfrYdOi/toTPEhqCuAs1v5tcJ3Y08Izh1cJ5Jchwy9SeAXmMg6zrKs2iw=="
3770 + },
3771 + "node_modules/@react-dnd/shallowequal": {
3772 + "version": "4.0.2",
3773 + "resolved": "https://registry.npmjs.org/@react-dnd/shallowequal/-/shallowequal-4.0.2.tgz",
3774 + "integrity": "sha512-/RVXdLvJxLg4QKvMoM5WlwNR9ViO9z8B/qPcc+C0Sa/teJY7QG7kJ441DwzOjMYEY7GmU4dj5EcGHIkKZiQZCA=="
3775 + },
3776 + "node_modules/@remix-run/router": {
3777 + "version": "1.18.0",
3778 + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.18.0.tgz",
3779 + "integrity": "sha512-L3jkqmqoSVBVKHfpGZmLrex0lxR5SucGA0sUfFzGctehw+S/ggL9L/0NnC5mw6P8HUWpFZ3nQw3cRApjjWx9Sw==",
3780 + "engines": {
3781 + "node": ">=14.0.0"
3782 + }
3783 + },
3784 + "node_modules/@restart/hooks": {
3785 + "version": "0.4.16",
3786 + "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.16.tgz",
3787 + "integrity": "sha512-f7aCv7c+nU/3mF7NWLtVVr0Ra80RqsO89hO72r+Y/nvQr5+q0UFGkocElTH6MJApvReVh6JHUFYn2cw1WdHF3w==",
3788 + "dependencies": {
3789 + "dequal": "^2.0.3"
3790 + },
3791 + "peerDependencies": {
3792 + "react": ">=16.8.0"
3793 + }
3794 + },
3795 + "node_modules/@restart/ui": {
3796 + "version": "1.6.9",
3797 + "resolved": "https://registry.npmjs.org/@restart/ui/-/ui-1.6.9.tgz",
3798 + "integrity": "sha512-mUbygUsJcRurjZCt1f77gg4DpheD1D+Sc7J3JjAkysUj7t8m4EBJVOqWC9788Qtbc69cJ+HlJc6jBguKwS8Mcw==",
3799 + "dependencies": {
3800 + "@babel/runtime": "^7.21.0",
3801 + "@popperjs/core": "^2.11.6",
3802 + "@react-aria/ssr": "^3.5.0",
3803 + "@restart/hooks": "^0.4.9",
3804 + "@types/warning": "^3.0.0",
3805 + "dequal": "^2.0.3",
3806 + "dom-helpers": "^5.2.0",
3807 + "uncontrollable": "^8.0.1",
3808 + "warning": "^4.0.3"
3809 + },
3810 + "peerDependencies": {
3811 + "react": ">=16.14.0",
3812 + "react-dom": ">=16.14.0"
3813 + }
3814 + },
3815 + "node_modules/@restart/ui/node_modules/uncontrollable": {
3816 + "version": "8.0.4",
3817 + "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-8.0.4.tgz",
3818 + "integrity": "sha512-ulRWYWHvscPFc0QQXvyJjY6LIXU56f0h8pQFvhxiKk5V1fcI8gp9Ht9leVAhrVjzqMw0BgjspBINx9r6oyJUvQ==",
3819 + "peerDependencies": {
3820 + "react": ">=16.14.0"
3821 + }
3822 + },
3823 + "node_modules/@rollup/plugin-babel": {
3824 + "version": "5.3.1",
3825 + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz",
3826 + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==",
3827 + "dependencies": {
3828 + "@babel/helper-module-imports": "^7.10.4",
3829 + "@rollup/pluginutils": "^3.1.0"
3830 + },
3831 + "engines": {
3832 + "node": ">= 10.0.0"
3833 + },
3834 + "peerDependencies": {
3835 + "@babel/core": "^7.0.0",
3836 + "@types/babel__core": "^7.1.9",
3837 + "rollup": "^1.20.0||^2.0.0"
3838 + },
3839 + "peerDependenciesMeta": {
3840 + "@types/babel__core": {
3841 + "optional": true
3842 + }
3843 + }
3844 + },
3845 + "node_modules/@rollup/plugin-node-resolve": {
3846 + "version": "11.2.1",
3847 + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz",
3848 + "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==",
3849 + "dependencies": {
3850 + "@rollup/pluginutils": "^3.1.0",
3851 + "@types/resolve": "1.17.1",
3852 + "builtin-modules": "^3.1.0",
3853 + "deepmerge": "^4.2.2",
3854 + "is-module": "^1.0.0",
3855 + "resolve": "^1.19.0"
3856 + },
3857 + "engines": {
3858 + "node": ">= 10.0.0"
3859 + },
3860 + "peerDependencies": {
3861 + "rollup": "^1.20.0||^2.0.0"
3862 + }
3863 + },
3864 + "node_modules/@rollup/plugin-replace": {
3865 + "version": "2.4.2",
3866 + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz",
3867 + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==",
3868 + "dependencies": {
3869 + "@rollup/pluginutils": "^3.1.0",
3870 + "magic-string": "^0.25.7"
3871 + },
3872 + "peerDependencies": {
3873 + "rollup": "^1.20.0 || ^2.0.0"
3874 + }
3875 + },
3876 + "node_modules/@rollup/pluginutils": {
3877 + "version": "3.1.0",
3878 + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz",
3879 + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==",
3880 + "dependencies": {
3881 + "@types/estree": "0.0.39",
3882 + "estree-walker": "^1.0.1",
3883 + "picomatch": "^2.2.2"
3884 + },
3885 + "engines": {
3886 + "node": ">= 8.0.0"
3887 + },
3888 + "peerDependencies": {
3889 + "rollup": "^1.20.0||^2.0.0"
3890 + }
3891 + },
3892 + "node_modules/@rollup/pluginutils/node_modules/@types/estree": {
3893 + "version": "0.0.39",
3894 + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
3895 + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw=="
3896 + },
3897 + "node_modules/@rushstack/eslint-patch": {
3898 + "version": "1.10.4",
3899 + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz",
3900 + "integrity": "sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA=="
3901 + },
3902 + "node_modules/@sentry-internal/feedback": {
3903 + "version": "7.118.0",
3904 + "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-7.118.0.tgz",
3905 + "integrity": "sha512-IYOGRcqIqKJJpMwBBv+0JTu0FPpXnakJYvOx/XEa/SNyF5+l7b9gGEjUVWh1ok50kTLW/XPnpnXNAGQcoKHg+w==",
3906 + "dependencies": {
3907 + "@sentry/core": "7.118.0",
3908 + "@sentry/types": "7.118.0",
3909 + "@sentry/utils": "7.118.0"
3910 + },
3911 + "engines": {
3912 + "node": ">=12"
3913 + }
3914 + },
3915 + "node_modules/@sentry-internal/replay-canvas": {
3916 + "version": "7.118.0",
3917 + "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-7.118.0.tgz",
3918 + "integrity": "sha512-XxHlCClvrxmVKpiZetFYyiBaPQNiojoBGFFVgbbWBIAPc+fWeLJ2BMoQEBjn/0NA/8u8T6lErK5YQo/eIx9+XQ==",
3919 + "dependencies": {
3920 + "@sentry/core": "7.118.0",
3921 + "@sentry/replay": "7.118.0",
3922 + "@sentry/types": "7.118.0",
3923 + "@sentry/utils": "7.118.0"
3924 + },
3925 + "engines": {
3926 + "node": ">=12"
3927 + }
3928 + },
3929 + "node_modules/@sentry-internal/tracing": {
3930 + "version": "7.118.0",
3931 + "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.118.0.tgz",
3932 + "integrity": "sha512-dERAshKlQLrBscHSarhHyUeGsu652bDTUN1FK0m4e3X48M3I5/s+0N880Qjpe5MprNLcINlaIgdQ9jkisvxjfw==",
3933 + "dependencies": {
3934 + "@sentry/core": "7.118.0",
3935 + "@sentry/types": "7.118.0",
3936 + "@sentry/utils": "7.118.0"
3937 + },
3938 + "engines": {
3939 + "node": ">=8"
3940 + }
3941 + },
3942 + "node_modules/@sentry/browser": {
3943 + "version": "7.118.0",
3944 + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.118.0.tgz",
3945 + "integrity": "sha512-8onDOFV1VLEoBuqA5yaJeR3FF1JNuxr5C7p1oN3OwY724iTVqQnOLmZKZaSnHV3RkY67wKDGQkQIie14sc+42g==",
3946 + "dependencies": {
3947 + "@sentry-internal/feedback": "7.118.0",
3948 + "@sentry-internal/replay-canvas": "7.118.0",
3949 + "@sentry-internal/tracing": "7.118.0",
3950 + "@sentry/core": "7.118.0",
3951 + "@sentry/integrations": "7.118.0",
3952 + "@sentry/replay": "7.118.0",
3953 + "@sentry/types": "7.118.0",
3954 + "@sentry/utils": "7.118.0"
3955 + },
3956 + "engines": {
3957 + "node": ">=8"
3958 + }
3959 + },
3960 + "node_modules/@sentry/core": {
3961 + "version": "7.118.0",
3962 + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.118.0.tgz",
3963 + "integrity": "sha512-ol0xBdp3/K11IMAYSQE0FMxBOOH9hMsb/rjxXWe0hfM5c72CqYWL3ol7voPci0GELJ5CZG+9ImEU1V9r6gK64g==",
3964 + "dependencies": {
3965 + "@sentry/types": "7.118.0",
3966 + "@sentry/utils": "7.118.0"
3967 + },
3968 + "engines": {
3969 + "node": ">=8"
3970 + }
3971 + },
3972 + "node_modules/@sentry/integrations": {
3973 + "version": "7.118.0",
3974 + "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-7.118.0.tgz",
3975 + "integrity": "sha512-C2rR4NvIMjokF8jP5qzSf1o2zxDx7IeYnr8u15Kb2+HdZtX559owALR0hfgwnfeElqMhGlJBaKUWZ48lXJMzCQ==",
3976 + "dependencies": {
3977 + "@sentry/core": "7.118.0",
3978 + "@sentry/types": "7.118.0",
3979 + "@sentry/utils": "7.118.0",
3980 + "localforage": "^1.8.1"
3981 + },
3982 + "engines": {
3983 + "node": ">=8"
3984 + }
3985 + },
3986 + "node_modules/@sentry/react": {
3987 + "version": "7.118.0",
3988 + "resolved": "https://registry.npmjs.org/@sentry/react/-/react-7.118.0.tgz",
3989 + "integrity": "sha512-oEYe5TGk8S7YzPsFqDf4xDHjfzs35/QFE+dou3S2d24OYpso8Tq4C5f1VzYmnOOyy85T7JNicYLSo0n0NSJvQg==",
3990 + "dependencies": {
3991 + "@sentry/browser": "7.118.0",
3992 + "@sentry/core": "7.118.0",
3993 + "@sentry/types": "7.118.0",
3994 + "@sentry/utils": "7.118.0",
3995 + "hoist-non-react-statics": "^3.3.2"
3996 + },
3997 + "engines": {
3998 + "node": ">=8"
3999 + },
4000 + "peerDependencies": {
4001 + "react": "15.x || 16.x || 17.x || 18.x"
4002 + }
4003 + },
4004 + "node_modules/@sentry/replay": {
4005 + "version": "7.118.0",
4006 + "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.118.0.tgz",
4007 + "integrity": "sha512-boQfCL+1L/tSZ9Huwi00+VtU+Ih1Lcg8HtxBuAsBCJR9pQgUL5jp7ECYdTeeHyCh/RJO7JqV1CEoGTgohe10mA==",
4008 + "dependencies": {
4009 + "@sentry-internal/tracing": "7.118.0",
4010 + "@sentry/core": "7.118.0",
4011 + "@sentry/types": "7.118.0",
4012 + "@sentry/utils": "7.118.0"
4013 + },
4014 + "engines": {
4015 + "node": ">=12"
4016 + }
4017 + },
4018 + "node_modules/@sentry/tracing": {
4019 + "version": "7.114.0",
4020 + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.114.0.tgz",
4021 + "integrity": "sha512-eldEYGADReZ4jWdN5u35yxLUSTOvjsiZAYd4KBEpf+Ii65n7g/kYOKAjNl7tHbrEG1EsMW4nDPWStUMk1w+tfg==",
4022 + "dependencies": {
4023 + "@sentry-internal/tracing": "7.114.0"
4024 + },
4025 + "engines": {
4026 + "node": ">=8"
4027 + }
4028 + },
4029 + "node_modules/@sentry/tracing/node_modules/@sentry-internal/tracing": {
4030 + "version": "7.114.0",
4031 + "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.114.0.tgz",
4032 + "integrity": "sha512-dOuvfJN7G+3YqLlUY4HIjyWHaRP8vbOgF+OsE5w2l7ZEn1rMAaUbPntAR8AF9GBA6j2zWNoSo8e7GjbJxVofSg==",
4033 + "dependencies": {
4034 + "@sentry/core": "7.114.0",
4035 + "@sentry/types": "7.114.0",
4036 + "@sentry/utils": "7.114.0"
4037 + },
4038 + "engines": {
4039 + "node": ">=8"
4040 + }
4041 + },
4042 + "node_modules/@sentry/tracing/node_modules/@sentry/core": {
4043 + "version": "7.114.0",
4044 + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.114.0.tgz",
4045 + "integrity": "sha512-YnanVlmulkjgZiVZ9BfY9k6I082n+C+LbZo52MTvx3FY6RE5iyiPMpaOh67oXEZRWcYQEGm+bKruRxLVP6RlbA==",
4046 + "dependencies": {
4047 + "@sentry/types": "7.114.0",
4048 + "@sentry/utils": "7.114.0"
4049 + },
4050 + "engines": {
4051 + "node": ">=8"
4052 + }
4053 + },
4054 + "node_modules/@sentry/tracing/node_modules/@sentry/types": {
4055 + "version": "7.114.0",
4056 + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.114.0.tgz",
4057 + "integrity": "sha512-tsqkkyL3eJtptmPtT0m9W/bPLkU7ILY7nvwpi1hahA5jrM7ppoU0IMaQWAgTD+U3rzFH40IdXNBFb8Gnqcva4w==",
4058 + "engines": {
4059 + "node": ">=8"
4060 + }
4061 + },
4062 + "node_modules/@sentry/tracing/node_modules/@sentry/utils": {
4063 + "version": "7.114.0",
4064 + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.114.0.tgz",
4065 + "integrity": "sha512-319N90McVpupQ6vws4+tfCy/03AdtsU0MurIE4+W5cubHME08HtiEWlfacvAxX+yuKFhvdsO4K4BB/dj54ideg==",
4066 + "dependencies": {
4067 + "@sentry/types": "7.114.0"
4068 + },
4069 + "engines": {
4070 + "node": ">=8"
4071 + }
4072 + },
4073 + "node_modules/@sentry/types": {
4074 + "version": "7.118.0",
4075 + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.118.0.tgz",
4076 + "integrity": "sha512-2drqrD2+6kgeg+W/ycmiti3G4lJrV3hGjY9PpJ3bJeXrh6T2+LxKPzlgSEnKFaeQWkXdZ4eaUbtTXVebMjb5JA==",
4077 + "engines": {
4078 + "node": ">=8"
4079 + }
4080 + },
4081 + "node_modules/@sentry/utils": {
4082 + "version": "7.118.0",
4083 + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.118.0.tgz",
4084 + "integrity": "sha512-43qItc/ydxZV1Zb3Kn2M54RwL9XXFa3IAYBO8S82Qvq5YUYmU2AmJ1jgg7DabXlVSWgMA1HntwqnOV3JLaEnTQ==",
4085 + "dependencies": {
4086 + "@sentry/types": "7.118.0"
4087 + },
4088 + "engines": {
4089 + "node": ">=8"
4090 + }
4091 + },
4092 + "node_modules/@sinclair/typebox": {
4093 + "version": "0.24.51",
4094 + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz",
4095 + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA=="
4096 + },
4097 + "node_modules/@sinonjs/commons": {
4098 + "version": "1.8.6",
4099 + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz",
4100 + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==",
4101 + "dependencies": {
4102 + "type-detect": "4.0.8"
4103 + }
4104 + },
4105 + "node_modules/@sinonjs/fake-timers": {
4106 + "version": "8.1.0",
4107 + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz",
4108 + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==",
4109 + "dependencies": {
4110 + "@sinonjs/commons": "^1.7.0"
4111 + }
4112 + },
4113 + "node_modules/@surma/rollup-plugin-off-main-thread": {
4114 + "version": "2.2.3",
4115 + "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz",
4116 + "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==",
4117 + "dependencies": {
4118 + "ejs": "^3.1.6",
4119 + "json5": "^2.2.0",
4120 + "magic-string": "^0.25.0",
4121 + "string.prototype.matchall": "^4.0.6"
4122 + }
4123 + },
4124 + "node_modules/@svgr/babel-plugin-add-jsx-attribute": {
4125 + "version": "5.4.0",
4126 + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz",
4127 + "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==",
4128 + "engines": {
4129 + "node": ">=10"
4130 + },
4131 + "funding": {
4132 + "type": "github",
4133 + "url": "https://github.com/sponsors/gregberge"
4134 + }
4135 + },
4136 + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": {
4137 + "version": "5.4.0",
4138 + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz",
4139 + "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==",
4140 + "engines": {
4141 + "node": ">=10"
4142 + },
4143 + "funding": {
4144 + "type": "github",
4145 + "url": "https://github.com/sponsors/gregberge"
4146 + }
4147 + },
4148 + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": {
4149 + "version": "5.0.1",
4150 + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz",
4151 + "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==",
4152 + "engines": {
4153 + "node": ">=10"
4154 + },
4155 + "funding": {
4156 + "type": "github",
4157 + "url": "https://github.com/sponsors/gregberge"
4158 + }
4159 + },
4160 + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": {
4161 + "version": "5.0.1",
4162 + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz",
4163 + "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==",
4164 + "engines": {
4165 + "node": ">=10"
4166 + },
4167 + "funding": {
4168 + "type": "github",
4169 + "url": "https://github.com/sponsors/gregberge"
4170 + }
4171 + },
4172 + "node_modules/@svgr/babel-plugin-svg-dynamic-title": {
4173 + "version": "5.4.0",
4174 + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz",
4175 + "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==",
4176 + "engines": {
4177 + "node": ">=10"
4178 + },
4179 + "funding": {
4180 + "type": "github",
4181 + "url": "https://github.com/sponsors/gregberge"
4182 + }
4183 + },
4184 + "node_modules/@svgr/babel-plugin-svg-em-dimensions": {
4185 + "version": "5.4.0",
4186 + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz",
4187 + "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==",
4188 + "engines": {
4189 + "node": ">=10"
4190 + },
4191 + "funding": {
4192 + "type": "github",
4193 + "url": "https://github.com/sponsors/gregberge"
4194 + }
4195 + },
4196 + "node_modules/@svgr/babel-plugin-transform-react-native-svg": {
4197 + "version": "5.4.0",
4198 + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz",
4199 + "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==",
4200 + "engines": {
4201 + "node": ">=10"
4202 + },
4203 + "funding": {
4204 + "type": "github",
4205 + "url": "https://github.com/sponsors/gregberge"
4206 + }
4207 + },
4208 + "node_modules/@svgr/babel-plugin-transform-svg-component": {
4209 + "version": "5.5.0",
4210 + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz",
4211 + "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==",
4212 + "engines": {
4213 + "node": ">=10"
4214 + },
4215 + "funding": {
4216 + "type": "github",
4217 + "url": "https://github.com/sponsors/gregberge"
4218 + }
4219 + },
4220 + "node_modules/@svgr/babel-preset": {
4221 + "version": "5.5.0",
4222 + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz",
4223 + "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==",
4224 + "dependencies": {
4225 + "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0",
4226 + "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0",
4227 + "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1",
4228 + "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1",
4229 + "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0",
4230 + "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0",
4231 + "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0",
4232 + "@svgr/babel-plugin-transform-svg-component": "^5.5.0"
4233 + },
4234 + "engines": {
4235 + "node": ">=10"
4236 + },
4237 + "funding": {
4238 + "type": "github",
4239 + "url": "https://github.com/sponsors/gregberge"
4240 + }
4241 + },
4242 + "node_modules/@svgr/core": {
4243 + "version": "5.5.0",
4244 + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz",
4245 + "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==",
4246 + "dependencies": {
4247 + "@svgr/plugin-jsx": "^5.5.0",
4248 + "camelcase": "^6.2.0",
4249 + "cosmiconfig": "^7.0.0"
4250 + },
4251 + "engines": {
4252 + "node": ">=10"
4253 + },
4254 + "funding": {
4255 + "type": "github",
4256 + "url": "https://github.com/sponsors/gregberge"
4257 + }
4258 + },
4259 + "node_modules/@svgr/hast-util-to-babel-ast": {
4260 + "version": "5.5.0",
4261 + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz",
4262 + "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==",
4263 + "dependencies": {
4264 + "@babel/types": "^7.12.6"
4265 + },
4266 + "engines": {
4267 + "node": ">=10"
4268 + },
4269 + "funding": {
4270 + "type": "github",
4271 + "url": "https://github.com/sponsors/gregberge"
4272 + }
4273 + },
4274 + "node_modules/@svgr/plugin-jsx": {
4275 + "version": "5.5.0",
4276 + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz",
4277 + "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==",
4278 + "dependencies": {
4279 + "@babel/core": "^7.12.3",
4280 + "@svgr/babel-preset": "^5.5.0",
4281 + "@svgr/hast-util-to-babel-ast": "^5.5.0",
4282 + "svg-parser": "^2.0.2"
4283 + },
4284 + "engines": {
4285 + "node": ">=10"
4286 + },
4287 + "funding": {
4288 + "type": "github",
4289 + "url": "https://github.com/sponsors/gregberge"
4290 + }
4291 + },
4292 + "node_modules/@svgr/plugin-svgo": {
4293 + "version": "5.5.0",
4294 + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz",
4295 + "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==",
4296 + "dependencies": {
4297 + "cosmiconfig": "^7.0.0",
4298 + "deepmerge": "^4.2.2",
4299 + "svgo": "^1.2.2"
4300 + },
4301 + "engines": {
4302 + "node": ">=10"
4303 + },
4304 + "funding": {
4305 + "type": "github",
4306 + "url": "https://github.com/sponsors/gregberge"
4307 + }
4308 + },
4309 + "node_modules/@svgr/webpack": {
4310 + "version": "5.5.0",
4311 + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz",
4312 + "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==",
4313 + "dependencies": {
4314 + "@babel/core": "^7.12.3",
4315 + "@babel/plugin-transform-react-constant-elements": "^7.12.1",
4316 + "@babel/preset-env": "^7.12.1",
4317 + "@babel/preset-react": "^7.12.5",
4318 + "@svgr/core": "^5.5.0",
4319 + "@svgr/plugin-jsx": "^5.5.0",
4320 + "@svgr/plugin-svgo": "^5.5.0",
4321 + "loader-utils": "^2.0.0"
4322 + },
4323 + "engines": {
4324 + "node": ">=10"
4325 + },
4326 + "funding": {
4327 + "type": "github",
4328 + "url": "https://github.com/sponsors/gregberge"
4329 + }
4330 + },
4331 + "node_modules/@swc/counter": {
4332 + "version": "0.1.3",
4333 + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz",
4334 + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ=="
4335 + },
4336 + "node_modules/@swc/helpers": {
4337 + "version": "0.5.5",
4338 + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz",
4339 + "integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==",
4340 + "dependencies": {
4341 + "@swc/counter": "^0.1.3",
4342 + "tslib": "^2.4.0"
4343 + }
4344 + },
4345 + "node_modules/@tailwindcss/forms": {
4346 + "version": "0.5.3",
4347 + "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.3.tgz",
4348 + "integrity": "sha512-y5mb86JUoiUgBjY/o6FJSFZSEttfb3Q5gllE4xoKjAAD+vBrnIhE4dViwUuow3va8mpH4s9jyUbUbrRGoRdc2Q==",
4349 + "dev": true,
4350 + "dependencies": {
4351 + "mini-svg-data-uri": "^1.2.3"
4352 + },
4353 + "peerDependencies": {
4354 + "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1"
4355 + }
4356 + },
4357 + "node_modules/@tailwindcss/typography": {
4358 + "version": "0.5.9",
4359 + "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.9.tgz",
4360 + "integrity": "sha512-t8Sg3DyynFysV9f4JDOVISGsjazNb48AeIYQwcL+Bsq5uf4RYL75C1giZ43KISjeDGBaTN3Kxh7Xj/vRSMJUUg==",
4361 + "dev": true,
4362 + "dependencies": {
4363 + "lodash.castarray": "^4.4.0",
4364 + "lodash.isplainobject": "^4.0.6",
4365 + "lodash.merge": "^4.6.2",
4366 + "postcss-selector-parser": "6.0.10"
4367 + },
4368 + "peerDependencies": {
4369 + "tailwindcss": ">=3.0.0 || insiders"
4370 + }
4371 + },
4372 + "node_modules/@tauri-apps/api": {
4373 + "version": "1.6.0",
4374 + "resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-1.6.0.tgz",
4375 + "integrity": "sha512-rqI++FWClU5I2UBp4HXFvl+sBWkdigBkxnpJDQUWttNyG7IZP4FwQGhTNL5EOw0vI8i6eSAJ5frLqO7n7jbJdg==",
4376 + "engines": {
4377 + "node": ">= 14.6.0",
4378 + "npm": ">= 6.6.0",
4379 + "yarn": ">= 1.19.1"
4380 + },
4381 + "funding": {
4382 + "type": "opencollective",
4383 + "url": "https://opencollective.com/tauri"
4384 + }
4385 + },
4386 + "node_modules/@tauri-apps/cli": {
4387 + "version": "1.6.0",
4388 + "resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-1.6.0.tgz",
4389 + "integrity": "sha512-DBBpBl6GhTzm8ImMbKkfaZ4fDTykWrC7Q5OXP4XqD91recmDEn2LExuvuiiS3HYe7uP8Eb5B9NPHhqJb+Zo7qQ==",
4390 + "dev": true,
4391 + "bin": {
4392 + "tauri": "tauri.js"
4393 + },
4394 + "engines": {
4395 + "node": ">= 10"
4396 + },
4397 + "funding": {
4398 + "type": "opencollective",
4399 + "url": "https://opencollective.com/tauri"
4400 + },
4401 + "optionalDependencies": {
4402 + "@tauri-apps/cli-darwin-arm64": "1.6.0",
4403 + "@tauri-apps/cli-darwin-x64": "1.6.0",
4404 + "@tauri-apps/cli-linux-arm-gnueabihf": "1.6.0",
4405 + "@tauri-apps/cli-linux-arm64-gnu": "1.6.0",
4406 + "@tauri-apps/cli-linux-arm64-musl": "1.6.0",
4407 + "@tauri-apps/cli-linux-x64-gnu": "1.6.0",
4408 + "@tauri-apps/cli-linux-x64-musl": "1.6.0",
4409 + "@tauri-apps/cli-win32-arm64-msvc": "1.6.0",
4410 + "@tauri-apps/cli-win32-ia32-msvc": "1.6.0",
4411 + "@tauri-apps/cli-win32-x64-msvc": "1.6.0"
4412 + }
4413 + },
4414 + "node_modules/@tauri-apps/cli-darwin-arm64": {
4415 + "version": "1.6.0",
4416 + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-1.6.0.tgz",
4417 + "integrity": "sha512-SNRwUD9nqGxY47mbY1CGTt/jqyQOU7Ps7Mx/mpgahL0FVUDiCEY/5L9QfEPPhEgccgcelEVn7i6aQHIkHyUtCA==",
4418 + "cpu": [
4419 + "arm64"
4420 + ],
4421 + "dev": true,
4422 + "optional": true,
4423 + "os": [
4424 + "darwin"
4425 + ],
4426 + "engines": {
4427 + "node": ">= 10"
4428 + }
4429 + },
4430 + "node_modules/@tauri-apps/cli-darwin-x64": {
4431 + "version": "1.6.0",
4432 + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-1.6.0.tgz",
4433 + "integrity": "sha512-g2/uDR/eeH2arvuawA4WwaEOqv/7jDO/ZLNI3JlBjP5Pk8GGb3Kdy0ro1xQzF94mtk2mOnOXa4dMgAet4sUJ1A==",
4434 + "cpu": [
4435 + "x64"
4436 + ],
4437 + "dev": true,
4438 + "optional": true,
4439 + "os": [
4440 + "darwin"
4441 + ],
4442 + "engines": {
4443 + "node": ">= 10"
4444 + }
4445 + },
4446 + "node_modules/@tauri-apps/cli-linux-arm-gnueabihf": {
4447 + "version": "1.6.0",
4448 + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-1.6.0.tgz",
4449 + "integrity": "sha512-EVwf4oRkQyG8BpSrk0gqO7oA0sDM2MdNDtJpMfleYFEgCxLIOGZKNqaOW3M7U+0Y4qikmG3TtRK+ngc8Ymtrjg==",
4450 + "cpu": [
4451 + "arm"
4452 + ],
4453 + "dev": true,
4454 + "optional": true,
4455 + "os": [
4456 + "linux"
4457 + ],
4458 + "engines": {
4459 + "node": ">= 10"
4460 + }
4461 + },
4462 + "node_modules/@tauri-apps/cli-linux-arm64-gnu": {
4463 + "version": "1.6.0",
4464 + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-1.6.0.tgz",
4465 + "integrity": "sha512-YdpY17cAySrhK9dX4BUVEmhAxE2o+6skIEFg8iN/xrDwRxhaNPI9I80YXPatUTX54Kx55T5++25VJG9+3iw83A==",
4466 + "cpu": [
4467 + "arm64"
4468 + ],
4469 + "dev": true,
4470 + "optional": true,
4471 + "os": [
4472 + "linux"
4473 + ],
4474 + "engines": {
4475 + "node": ">= 10"
4476 + }
4477 + },
4478 + "node_modules/@tauri-apps/cli-linux-arm64-musl": {
4479 + "version": "1.6.0",
4480 + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.6.0.tgz",
4481 + "integrity": "sha512-4U628tuf2U8pMr4tIBJhEkrFwt+46dwhXrDlpdyWSZtnop5RJAVKHODm0KbWns4xGKfTW1F3r6sSv+2ZxLcISA==",
4482 + "cpu": [
4483 + "arm64"
4484 + ],
4485 + "dev": true,
4486 + "optional": true,
4487 + "os": [
4488 + "linux"
4489 + ],
4490 + "engines": {
4491 + "node": ">= 10"
4492 + }
4493 + },
4494 + "node_modules/@tauri-apps/cli-linux-x64-gnu": {
4495 + "version": "1.6.0",
4496 + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-1.6.0.tgz",
4497 + "integrity": "sha512-AKRzp76fVUaJyXj5KRJT9bJyhwZyUnRQU0RqIRqOtZCT5yr6qGP8rjtQ7YhCIzWrseBlOllc3Qvbgw3Yl0VQcA==",
4498 + "cpu": [
4499 + "x64"
4500 + ],
4501 + "dev": true,
4502 + "optional": true,
4503 + "os": [
4504 + "linux"
4505 + ],
4506 + "engines": {
4507 + "node": ">= 10"
4508 + }
4509 + },
4510 + "node_modules/@tauri-apps/cli-linux-x64-musl": {
4511 + "version": "1.6.0",
4512 + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-1.6.0.tgz",
4513 + "integrity": "sha512-0edIdq6aMBTaRMIXddHfyAFL361JqulLLd2Wi2aoOie7DkQ2MYh6gv3hA7NB9gqFwNIGE+xtJ4BkXIP2tSGPlg==",
4514 + "cpu": [
4515 + "x64"
4516 + ],
4517 + "dev": true,
4518 + "optional": true,
4519 + "os": [
4520 + "linux"
4521 + ],
4522 + "engines": {
4523 + "node": ">= 10"
4524 + }
4525 + },
4526 + "node_modules/@tauri-apps/cli-win32-arm64-msvc": {
4527 + "version": "1.6.0",
4528 + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-arm64-msvc/-/cli-win32-arm64-msvc-1.6.0.tgz",
4529 + "integrity": "sha512-QwWpWk4ubcwJ1rljsRAmINgB2AwkyzZhpYbalA+MmzyYMREcdXWGkyixWbRZgqc6fEWEBmq5UG73qz5eBJiIKg==",
4530 + "cpu": [
4531 + "arm64"
4532 + ],
4533 + "dev": true,
4534 + "optional": true,
4535 + "os": [
4536 + "win32"
4537 + ],
4538 + "engines": {
4539 + "node": ">= 10"
4540 + }
4541 + },
4542 + "node_modules/@tauri-apps/cli-win32-ia32-msvc": {
4543 + "version": "1.6.0",
4544 + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-1.6.0.tgz",
4545 + "integrity": "sha512-Vtw0yxO9+aEFuhuxQ57ALG43tjECopRimRuKGbtZYDCriB/ty5TrT3QWMdy0dxBkpDTu3Rqsz30sbDzw6tlP3Q==",
4546 + "cpu": [
4547 + "ia32"
4548 + ],
4549 + "dev": true,
4550 + "optional": true,
4551 + "os": [
4552 + "win32"
4553 + ],
4554 + "engines": {
4555 + "node": ">= 10"
4556 + }
4557 + },
4558 + "node_modules/@tauri-apps/cli-win32-x64-msvc": {
4559 + "version": "1.6.0",
4560 + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-1.6.0.tgz",
4561 + "integrity": "sha512-h54FHOvGi7+LIfRchzgZYSCHB1HDlP599vWXQQJ/XnwJY+6Rwr2E5bOe/EhqoG8rbGkfK0xX3KPAvXPbUlmggg==",
4562 + "cpu": [
4563 + "x64"
4564 + ],
4565 + "dev": true,
4566 + "optional": true,
4567 + "os": [
4568 + "win32"
4569 + ],
4570 + "engines": {
4571 + "node": ">= 10"
4572 + }
4573 + },
4574 + "node_modules/@tootallnate/once": {
4575 + "version": "1.1.2",
4576 + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
4577 + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
4578 + "engines": {
4579 + "node": ">= 6"
4580 + }
4581 + },
4582 + "node_modules/@trysound/sax": {
4583 + "version": "0.2.0",
4584 + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz",
4585 + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==",
4586 + "engines": {
4587 + "node": ">=10.13.0"
4588 + }
4589 + },
4590 + "node_modules/@types/actioncable": {
4591 + "version": "5.2.11",
4592 + "resolved": "https://registry.npmjs.org/@types/actioncable/-/actioncable-5.2.11.tgz",
4593 + "integrity": "sha512-aGzv5JS3razLvv4ZJW+wlDuNS5y1IFFVlm1EkZq3ZHs6txju7/2iee1e6sdK6DE4zsz8cIREs1K4BtfF5RMESQ=="
4594 + },
4595 + "node_modules/@types/babel__core": {
4596 + "version": "7.20.5",
4597 + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
4598 + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
4599 + "dependencies": {
4600 + "@babel/parser": "^7.20.7",
4601 + "@babel/types": "^7.20.7",
4602 + "@types/babel__generator": "*",
4603 + "@types/babel__template": "*",
4604 + "@types/babel__traverse": "*"
4605 + }
4606 + },
4607 + "node_modules/@types/babel__generator": {
4608 + "version": "7.6.8",
4609 + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz",
4610 + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==",
4611 + "dependencies": {
4612 + "@babel/types": "^7.0.0"
4613 + }
4614 + },
4615 + "node_modules/@types/babel__template": {
4616 + "version": "7.4.4",
4617 + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
4618 + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
4619 + "dependencies": {
4620 + "@babel/parser": "^7.1.0",
4621 + "@babel/types": "^7.0.0"
4622 + }
4623 + },
4624 + "node_modules/@types/babel__traverse": {
4625 + "version": "7.20.6",
4626 + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz",
4627 + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==",
4628 + "dependencies": {
4629 + "@babel/types": "^7.20.7"
4630 + }
4631 + },
4632 + "node_modules/@types/body-parser": {
4633 + "version": "1.19.5",
4634 + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz",
4635 + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==",
4636 + "dependencies": {
4637 + "@types/connect": "*",
4638 + "@types/node": "*"
4639 + }
4640 + },
4641 + "node_modules/@types/bonjour": {
4642 + "version": "3.5.13",
4643 + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz",
4644 + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==",
4645 + "dependencies": {
4646 + "@types/node": "*"
4647 + }
4648 + },
4649 + "node_modules/@types/connect": {
4650 + "version": "3.4.38",
4651 + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
4652 + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==",
4653 + "dependencies": {
4654 + "@types/node": "*"
4655 + }
4656 + },
4657 + "node_modules/@types/connect-history-api-fallback": {
4658 + "version": "1.5.4",
4659 + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz",
4660 + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==",
4661 + "dependencies": {
4662 + "@types/express-serve-static-core": "*",
4663 + "@types/node": "*"
4664 + }
4665 + },
4666 + "node_modules/@types/eslint": {
4667 + "version": "8.56.11",
4668 + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.11.tgz",
4669 + "integrity": "sha512-sVBpJMf7UPo/wGecYOpk2aQya2VUGeHhe38WG7/mN5FufNSubf5VT9Uh9Uyp8/eLJpu1/tuhJ/qTo4mhSB4V4Q==",
4670 + "dependencies": {
4671 + "@types/estree": "*",
4672 + "@types/json-schema": "*"
4673 + }
4674 + },
4675 + "node_modules/@types/eslint-scope": {
4676 + "version": "3.7.7",
4677 + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz",
4678 + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==",
4679 + "dependencies": {
4680 + "@types/eslint": "*",
4681 + "@types/estree": "*"
4682 + }
4683 + },
4684 + "node_modules/@types/estree": {
4685 + "version": "1.0.5",
4686 + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
4687 + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw=="
4688 + },
4689 + "node_modules/@types/express": {
4690 + "version": "4.17.21",
4691 + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz",
4692 + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==",
4693 + "dependencies": {
4694 + "@types/body-parser": "*",
4695 + "@types/express-serve-static-core": "^4.17.33",
4696 + "@types/qs": "*",
4697 + "@types/serve-static": "*"
4698 + }
4699 + },
4700 + "node_modules/@types/express-serve-static-core": {
4701 + "version": "4.19.5",
4702 + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz",
4703 + "integrity": "sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==",
4704 + "dependencies": {
4705 + "@types/node": "*",
4706 + "@types/qs": "*",
4707 + "@types/range-parser": "*",
4708 + "@types/send": "*"
4709 + }
4710 + },
4711 + "node_modules/@types/graceful-fs": {
4712 + "version": "4.1.9",
4713 + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz",
4714 + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==",
4715 + "dependencies": {
4716 + "@types/node": "*"
4717 + }
4718 + },
4719 + "node_modules/@types/hoist-non-react-statics": {
4720 + "version": "3.3.5",
4721 + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz",
4722 + "integrity": "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==",
4723 + "dependencies": {
4724 + "@types/react": "*",
4725 + "hoist-non-react-statics": "^3.3.0"
4726 + }
4727 + },
4728 + "node_modules/@types/html-minifier-terser": {
4729 + "version": "6.1.0",
4730 + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz",
4731 + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg=="
4732 + },
4733 + "node_modules/@types/http-errors": {
4734 + "version": "2.0.4",
4735 + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz",
4736 + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA=="
4737 + },
4738 + "node_modules/@types/http-proxy": {
4739 + "version": "1.17.14",
4740 + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz",
4741 + "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==",
4742 + "dependencies": {
4743 + "@types/node": "*"
4744 + }
4745 + },
4746 + "node_modules/@types/istanbul-lib-coverage": {
4747 + "version": "2.0.6",
4748 + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
4749 + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w=="
4750 + },
4751 + "node_modules/@types/istanbul-lib-report": {
4752 + "version": "3.0.3",
4753 + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz",
4754 + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==",
4755 + "dependencies": {
4756 + "@types/istanbul-lib-coverage": "*"
4757 + }
4758 + },
4759 + "node_modules/@types/istanbul-reports": {
4760 + "version": "3.0.4",
4761 + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz",
4762 + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==",
4763 + "dependencies": {
4764 + "@types/istanbul-lib-report": "*"
4765 + }
4766 + },
4767 + "node_modules/@types/jest": {
4768 + "version": "27.5.2",
4769 + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.5.2.tgz",
4770 + "integrity": "sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA==",
4771 + "dependencies": {
4772 + "jest-matcher-utils": "^27.0.0",
4773 + "pretty-format": "^27.0.0"
4774 + }
4775 + },
4776 + "node_modules/@types/json-schema": {
4777 + "version": "7.0.15",
4778 + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
4779 + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="
4780 + },
4781 + "node_modules/@types/json5": {
4782 + "version": "0.0.29",
4783 + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
4784 + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
4785 + },
4786 + "node_modules/@types/lodash": {
4787 + "version": "4.17.7",
4788 + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.7.tgz",
4789 + "integrity": "sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==",
4790 + "dev": true
4791 + },
4792 + "node_modules/@types/lodash.debounce": {
4793 + "version": "4.0.9",
4794 + "resolved": "https://registry.npmjs.org/@types/lodash.debounce/-/lodash.debounce-4.0.9.tgz",
4795 + "integrity": "sha512-Ma5JcgTREwpLRwMM+XwBR7DaWe96nC38uCBDFKZWbNKD+osjVzdpnUSwBcqCptrp16sSOLBAUb50Car5I0TCsQ==",
4796 + "dev": true,
4797 + "dependencies": {
4798 + "@types/lodash": "*"
4799 + }
4800 + },
4801 + "node_modules/@types/mime": {
4802 + "version": "1.3.5",
4803 + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz",
4804 + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w=="
4805 + },
4806 + "node_modules/@types/node": {
4807 + "version": "18.17.0",
4808 + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.17.0.tgz",
4809 + "integrity": "sha512-GXZxEtOxYGFchyUzxvKI14iff9KZ2DI+A6a37o6EQevtg6uO9t+aUZKcaC1Te5Ng1OnLM7K9NVVj+FbecD9cJg=="
4810 + },
4811 + "node_modules/@types/node-forge": {
4812 + "version": "1.3.11",
4813 + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz",
4814 + "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==",
4815 + "dependencies": {
4816 + "@types/node": "*"
4817 + }
4818 + },
4819 + "node_modules/@types/parse-json": {
4820 + "version": "4.0.2",
4821 + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz",
4822 + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw=="
4823 + },
4824 + "node_modules/@types/prettier": {
4825 + "version": "2.7.3",
4826 + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz",
4827 + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA=="
4828 + },
4829 + "node_modules/@types/prop-types": {
4830 + "version": "15.7.12",
4831 + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz",
4832 + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q=="
4833 + },
4834 + "node_modules/@types/q": {
4835 + "version": "1.5.8",
4836 + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz",
4837 + "integrity": "sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw=="
4838 + },
4839 + "node_modules/@types/qs": {
4840 + "version": "6.9.15",
4841 + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz",
4842 + "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg=="
4843 + },
4844 + "node_modules/@types/range-parser": {
4845 + "version": "1.2.7",
4846 + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz",
4847 + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ=="
4848 + },
4849 + "node_modules/@types/react": {
4850 + "version": "18.2.78",
4851 + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.78.tgz",
4852 + "integrity": "sha512-qOwdPnnitQY4xKlKayt42q5W5UQrSHjgoXNVEtxeqdITJ99k4VXJOP3vt8Rkm9HmgJpH50UNU+rlqfkfWOqp0A==",
4853 + "dependencies": {
4854 + "@types/prop-types": "*",
4855 + "csstype": "^3.0.2"
4856 + }
4857 + },
4858 + "node_modules/@types/react-dom": {
4859 + "version": "18.2.25",
4860 + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.25.tgz",
4861 + "integrity": "sha512-o/V48vf4MQh7juIKZU2QGDfli6p1+OOi5oXx36Hffpc9adsHeXjVp8rHuPkjd8VT8sOJ2Zp05HR7CdpGTIUFUA==",
4862 + "dependencies": {
4863 + "@types/react": "*"
4864 + }
4865 + },
4866 + "node_modules/@types/react-transition-group": {
4867 + "version": "4.4.10",
4868 + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz",
4869 + "integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==",
4870 + "dependencies": {
4871 + "@types/react": "*"
4872 + }
4873 + },
4874 + "node_modules/@types/resolve": {
4875 + "version": "1.17.1",
4876 + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz",
4877 + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==",
4878 + "dependencies": {
4879 + "@types/node": "*"
4880 + }
4881 + },
4882 + "node_modules/@types/retry": {
4883 + "version": "0.12.0",
4884 + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz",
4885 + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA=="
4886 + },
4887 + "node_modules/@types/semver": {
4888 + "version": "7.5.8",
4889 + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz",
4890 + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ=="
4891 + },
4892 + "node_modules/@types/send": {
4893 + "version": "0.17.4",
4894 + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz",
4895 + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==",
4896 + "dependencies": {
4897 + "@types/mime": "^1",
4898 + "@types/node": "*"
4899 + }
4900 + },
4901 + "node_modules/@types/serve-index": {
4902 + "version": "1.9.4",
4903 + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz",
4904 + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==",
4905 + "dependencies": {
4906 + "@types/express": "*"
4907 + }
4908 + },
4909 + "node_modules/@types/serve-static": {
4910 + "version": "1.15.7",
4911 + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz",
4912 + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==",
4913 + "dependencies": {
4914 + "@types/http-errors": "*",
4915 + "@types/node": "*",
4916 + "@types/send": "*"
4917 + }
4918 + },
4919 + "node_modules/@types/sockjs": {
4920 + "version": "0.3.36",
4921 + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz",
4922 + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==",
4923 + "dependencies": {
4924 + "@types/node": "*"
4925 + }
4926 + },
4927 + "node_modules/@types/stack-utils": {
4928 + "version": "2.0.3",
4929 + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz",
4930 + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw=="
4931 + },
4932 + "node_modules/@types/trusted-types": {
4933 + "version": "2.0.7",
4934 + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
4935 + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw=="
4936 + },
4937 + "node_modules/@types/warning": {
4938 + "version": "3.0.3",
4939 + "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.3.tgz",
4940 + "integrity": "sha512-D1XC7WK8K+zZEveUPY+cf4+kgauk8N4eHr/XIHXGlGYkHLud6hK9lYfZk1ry1TNh798cZUCgb6MqGEG8DkJt6Q=="
4941 + },
4942 + "node_modules/@types/ws": {
4943 + "version": "8.5.12",
4944 + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.12.tgz",
4945 + "integrity": "sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==",
4946 + "dependencies": {
4947 + "@types/node": "*"
4948 + }
4949 + },
4950 + "node_modules/@types/yargs": {
4951 + "version": "16.0.9",
4952 + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz",
4953 + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==",
4954 + "dependencies": {
4955 + "@types/yargs-parser": "*"
4956 + }
4957 + },
4958 + "node_modules/@types/yargs-parser": {
4959 + "version": "21.0.3",
4960 + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
4961 + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ=="
4962 + },
4963 + "node_modules/@typescript-eslint/eslint-plugin": {
4964 + "version": "5.62.0",
4965 + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz",
4966 + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==",
4967 + "dependencies": {
4968 + "@eslint-community/regexpp": "^4.4.0",
4969 + "@typescript-eslint/scope-manager": "5.62.0",
4970 + "@typescript-eslint/type-utils": "5.62.0",
4971 + "@typescript-eslint/utils": "5.62.0",
4972 + "debug": "^4.3.4",
4973 + "graphemer": "^1.4.0",
4974 + "ignore": "^5.2.0",
4975 + "natural-compare-lite": "^1.4.0",
4976 + "semver": "^7.3.7",
4977 + "tsutils": "^3.21.0"
4978 + },
4979 + "engines": {
4980 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
4981 + },
4982 + "funding": {
4983 + "type": "opencollective",
4984 + "url": "https://opencollective.com/typescript-eslint"
4985 + },
4986 + "peerDependencies": {
4987 + "@typescript-eslint/parser": "^5.0.0",
4988 + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
4989 + },
4990 + "peerDependenciesMeta": {
4991 + "typescript": {
4992 + "optional": true
4993 + }
4994 + }
4995 + },
4996 + "node_modules/@typescript-eslint/experimental-utils": {
4997 + "version": "5.62.0",
4998 + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.62.0.tgz",
4999 + "integrity": "sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==",

This file is too large to show in full.

frontend/splitfire-desktop/package.json
+30 -17
@@ -6,42 +6,50 @@
6 "dependencies": {
7 "@sentry/react": "^7.12.1",
8 "@sentry/tracing": "^7.12.1",
9 - "@tauri-apps/api": "latest",
10 - "@testing-library/jest-dom": "^5.16.1",
11 - "@testing-library/react": "^12.1.2",
12 - "@testing-library/user-event": "^13.5.0",
9 "@types/actioncable": "^5.2.7",
10 "@types/jest": "^27.4.0",
15 - "@types/node": "^17.0.12",
16 - "@types/react": "^17.0.38",
17 - "@types/react-dom": "^17.0.11",
11 "actioncable": "^5.2.6",
12 "axios": "^0.25.0",
13 "bootstrap": "5.1.3",
14 "dexie": "^3.2.0",
15 "dexie-observable": "^3.0.0-beta.11",
16 "lodash.debounce": "^4.0.8",
24 - "react": "^17.0.2",
17 "react-bootstrap": "^2.1.1",
18 "react-dnd": "^16.0.1",
19 "react-dnd-html5-backend": "^16.0.1",
28 - "react-dom": "^17.0.2",
20 "react-icons": "^4.3.1",
21 "react-intl": "^5.24.4",
22 "react-router-dom": "6",
23 "react-scripts": "5.0.0",
33 - "react-transition-group": "1.x",
24 + "react-transition-group": "4.x",
25 "react-youtube": "^7.14.0",
26 "tone": "^14.7.77",
27 "tslog": "^4.9.2",
37 - "typescript": "^4.5.5",
38 - "web-vitals": "^2.1.3"
28 + "web-vitals": "^2.1.3",
29 + "@heroicons/react": "1.0.6",
30 + "@radix-ui/react-slot": "^1.0.2",
31 + "@radix-ui/react-tooltip": "^1.0.7",
32 + "@tauri-apps/api": "^1.5.3",
33 + "@types/node": "18.17.0",
34 + "@types/react": "18.2.78",
35 + "@types/react-dom": "18.2.25",
36 + "class-variance-authority": "^0.7.0",
37 + "clsx": "1.2.1",
38 + "eslint": "8.32.0",
39 + "eslint-config-next": "14.1.0",
40 + "next": "14.2.5",
41 + "react": "18.2.0",
42 + "react-hot-toast": "^2.4.1",
43 + "react-textarea-autosize": "^8.5.3",
44 + "react-dom": "18.2.0",
45 + "typescript": "4.9.4",
46 + "tailwind-merge": "^2.2.1"
47 },
48 "scripts": {
41 - "start": "PORT=3002 react-scripts start",
42 - "build": "react-scripts build",
43 - "test": "react-scripts test",
44 - "eject": "react-scripts eject"
49 + "next-dev": "next dev",
50 + "next-build": "next build",
51 + "tauri-dev": "tauri dev",
52 + "tauri-build": "tauri build"
53 },
54 "eslintConfig": {
55 "extends": [
@@ -66,6 +74,11 @@
74 },
75 "devDependencies": {
76 "@tauri-apps/cli": "^1.5.14",
69 - "@types/lodash.debounce": "^4.0.7"
77 + "@types/lodash.debounce": "^4.0.7",
78 + "@tailwindcss/forms": "0.5.3",
79 + "@tailwindcss/typography": "0.5.9",
80 + "autoprefixer": "^10.4.19",
81 + "postcss": "^8.4.38",
82 + "tailwindcss": "^3.4.3"
83 }
84 }
frontend/splitfire-desktop/postcss.config.js new
+6
@@ -0,0 +1,6 @@
1 +module.exports = {
2 + plugins: {
3 + tailwindcss: {},
4 + autoprefixer: {},
5 + },
6 +}
frontend/splitfire-desktop/src-tauri/tauri.conf.json
+5 -5
@@ -1,12 +1,12 @@
1 {
2 "build": {
3 - "beforeBuildCommand": "bun build",
4 - "beforeDevCommand": "bun start",
5 - "devPath": "http://localhost:3002",
3 + "beforeDevCommand": "node node_modules/next/dist/bin/next dev -p 1420",
4 + "beforeBuildCommand": "node node_modules/next/dist/bin/next build",
5 + "devPath": "http://localhost:1420",
6 "distDir": "../build"
7 },
8 "package": {
9 - "productName": "SplitFire",
9 + "productName": "SplitFire intelligent expression engine",
10 "version": "0.3.4"
11 },
12 "tauri": {
@@ -15,7 +15,7 @@
15 },
16 "bundle": {
17 "active": true,
18 - "category": "DeveloperTool",
18 + "category": "artificial intelligence, music, community",
19 "copyright": "",
20 "deb": {
21 "depends": []
frontend/splitfire-desktop/tailwind.config.js new
+88
@@ -0,0 +1,88 @@
1 +import colors from 'tailwindcss/colors';
2 +import { Config } from 'tailwindcss';
3 +
4 +export default {
5 + content: [
6 + './app/**/*.{js,ts,jsx,tsx,mdx}',
7 + ],
8 + future: {
9 + hoverOnlyWhenSupported: true,
10 + },
11 + darkMode: 'class',
12 + theme: {
13 + extend: {
14 + // https://vercel.com/design/color
15 + colors: {
16 + gray: colors.zinc,
17 + 'gray-1000': 'rgb(17,17,19)',
18 + 'gray-1100': 'rgb(10,10,11)',
19 + vercel: {
20 + pink: '#FF0080',
21 + blue: '#0070F3',
22 + cyan: '#50E3C2',
23 + orange: '#F5A623',
24 + violet: '#7928CA',
25 + },
26 + },
27 + backgroundImage: ({ theme }) => ({
28 + 'vc-border-gradient': `radial-gradient(at left top, ${theme(
29 + 'colors.gray.500',
30 + )}, 50px, ${theme('colors.gray.800')} 50%)`,
31 + }),
32 + keyframes: ({ theme }) => ({
33 + rerender: {
34 + '0%': {
35 + ['border-color']: theme('colors.vercel.pink'),
36 + },
37 + '40%': {
38 + ['border-color']: theme('colors.vercel.pink'),
39 + },
40 + },
41 + highlight: {
42 + '0%': {
43 + background: theme('colors.vercel.pink'),
44 + color: theme('colors.white'),
45 + },
46 + '40%': {
47 + background: theme('colors.vercel.pink'),
48 + color: theme('colors.white'),
49 + },
50 + },
51 + loading: {
52 + '0%': {
53 + opacity: '.2',
54 + },
55 + '20%': {
56 + opacity: '1',
57 + transform: 'translateX(1px)',
58 + },
59 + to: {
60 + opacity: '.2',
61 + },
62 + },
63 + shimmer: {
64 + '100%': {
65 + transform: 'translateX(100%)',
66 + },
67 + },
68 + translateXReset: {
69 + '100%': {
70 + transform: 'translateX(0)',
71 + },
72 + },
73 + fadeToTransparent: {
74 + '0%': {
75 + opacity: '1',
76 + },
77 + '40%': {
78 + opacity: '1',
79 + },
80 + '100%': {
81 + opacity: '0',
82 + },
83 + },
84 + }),
85 + },
86 + },
87 + plugins: [require('@tailwindcss/typography'), require('@tailwindcss/forms')],
88 +} satisfies Config;
frontend/splitfire-desktop/tsconfig.json
+20 -12
@@ -8,27 +8,35 @@
8 ],
9 "allowJs": true,
10 "skipLibCheck": true,
11 - "esModuleInterop": true,
12 - "allowSyntheticDefaultImports": true,
11 "strict": true,
12 "forceConsistentCasingInFileNames": true,
13 + "noEmit": true,
14 + "esModuleInterop": true,
15 "module": "esnext",
16 "moduleResolution": "node",
17 "resolveJsonModule": true,
18 "isolatedModules": true,
19 - "noEmit": true,
20 - "jsx": "react-jsx",
21 - "typeRoots": [
22 - "./types",
23 - "./node_modules/@types"
24 - ],
25 - "noFallthroughCasesInSwitch": true
19 + "jsx": "preserve",
20 + "incremental": true,
21 + "baseUrl": ".",
22 + "paths": {
23 + "@/*": [
24 + "./*"
25 + ]
26 + },
27 + "plugins": [
28 + {
29 + "name": "next"
30 + }
31 + ]
32 },
33 "include": [
28 - "src"
34 + "next-env.d.ts",
35 + "**/*.ts",
36 + "**/*.tsx",
37 + ".next/types/**/*.ts"
38 ],
39 "exclude": [
31 - "node_modules",
32 - "types"
40 + "node_modules"
41 ]
42 }