diff --git a/Cargo.lock b/Cargo.lock index cd5c30365731..63abd19c93b8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9985,7 +9985,7 @@ dependencies = [ [[package]] name = "sd-core" -version = "0.5.0" +version = "0.4.3" dependencies = [ "async-channel", "async-recursion", @@ -10018,6 +10018,7 @@ dependencies = [ "mini-moka", "normpath", "notify", + "once_cell", "openssl", "openssl-sys", "pin-project-lite", diff --git a/apps/desktop/src/App.tsx b/apps/desktop/src/App.tsx index 54322ad88368..b5153c13355d 100644 --- a/apps/desktop/src/App.tsx +++ b/apps/desktop/src/App.tsx @@ -60,21 +60,22 @@ declare global { } } -SuperTokens.init({ - appInfo: { - apiDomain: AUTH_SERVER_URL, - apiBasePath: '/api/auth', - appName: 'Spacedrive Auth Service' - }, - cookieHandler: getCookieHandler, - windowHandler: getWindowHandler, - recipeList: [ - Session.init({ tokenTransferMethod: 'header' }), - EmailPassword.init(), - ThirdParty.init(), - Passwordless.init() - ] -}); +// Disabling until sync is ready. +// SuperTokens.init({ +// appInfo: { +// apiDomain: AUTH_SERVER_URL, +// apiBasePath: '/api/auth', +// appName: 'Spacedrive Auth Service' +// }, +// cookieHandler: getCookieHandler, +// windowHandler: getWindowHandler, +// recipeList: [ +// Session.init({ tokenTransferMethod: 'header' }), +// EmailPassword.init(), +// ThirdParty.init(), +// Passwordless.init() +// ] +// }); const startupError = (window as any).__SD_ERROR__ as string | undefined; diff --git a/apps/landing/contentlayer.config.ts b/apps/landing/contentlayer.config.ts index 3e34ab14fa4e..025bf3881b69 100644 --- a/apps/landing/contentlayer.config.ts +++ b/apps/landing/contentlayer.config.ts @@ -1,4 +1,4 @@ -import { defineDocumentType, makeSource } from '@contentlayer/source-files'; +import { defineDocumentType, makeSource } from 'contentlayer2/source-files'; import readingTime from 'reading-time'; // support for anchor links import rehypeAutolinkHeadings from 'rehype-autolink-headings'; diff --git a/apps/landing/next-env.d.ts b/apps/landing/next-env.d.ts index 4f11a03dc6cc..40c3d68096c2 100644 --- a/apps/landing/next-env.d.ts +++ b/apps/landing/next-env.d.ts @@ -2,4 +2,4 @@ /// // NOTE: This file should not be edited -// see https://nextjs.org/docs/basic-features/typescript for more information. +// see https://nextjs.org/docs/app/building-your-application/configuring/typescript for more information. diff --git a/apps/landing/next.config.js b/apps/landing/next.config.js index f16ffbef6d94..424a6b664e11 100644 --- a/apps/landing/next.config.js +++ b/apps/landing/next.config.js @@ -1,5 +1,5 @@ // @ts-check -const { withContentlayer } = require('next-contentlayer'); +const { withContentlayer } = require('next-contentlayer2'); const withBundleAnalyzer = require('@next/bundle-analyzer')({ enabled: process.env.ANALYZE === 'true' }); diff --git a/apps/landing/package.json b/apps/landing/package.json index 72c858680656..c25cbf7654a6 100644 --- a/apps/landing/package.json +++ b/apps/landing/package.json @@ -3,11 +3,11 @@ "private": true, "scripts": { "dev": "next dev", - "build": "contentlayer build && next build", + "build": "contentlayer2 build && next build", "start": "next start", "prod": "pnpm build && pnpm start", "lint": "next lint", - "typecheck": "contentlayer build && tsc -b" + "typecheck": "contentlayer2 build && tsc -b" }, "dependencies": { "@docsearch/react": "^3.5.2", @@ -23,15 +23,16 @@ "@sd/ui": "workspace:*", "@t3-oss/env-nextjs": "^0.7.1", "@tsparticles/react": "^3.0.0", + "@vercel/edge-config": "^1.4.0", "clsx": "^2.0.0", - "contentlayer": "^0.3.4", + "contentlayer2": "^0.5.3", "dayjs": "^1.11.10", "framer-motion": "^10.16.5", "image-size": "^1.0.2", "katex": "^0.16.9", "markdown-to-jsx": "^7.3.2", - "next": "14.2.5", - "next-contentlayer": "^0.3.4", + "next": "14.2.12", + "next-contentlayer2": "^0.5.3", "next-plausible": "^3.11.3", "react": "18.2.0", "react-burger-menu": "^3.0.9", @@ -40,15 +41,17 @@ "react-error-boundary": "^4.0.11", "react-github-btn": "^1.4.0", "react-parallax-tilt": "^1.7.250", + "react-scroll-parallax": "^3.4.5", "reading-time": "^1.5.0", - "rehype-autolink-headings": "^6.1.1", - "rehype-external-links": "^2.1.0", - "rehype-katex": "^6.0.3", - "rehype-prism-plus": "^1.6.3", + "rehype-autolink-headings": "^7.0.0", + "rehype-external-links": "^3.0.0", + "rehype-katex": "^7.0.0", + "rehype-prism-plus": "^2.0.0", "rehype-slug": "^5.1.0", - "remark-gfm": "^3.0.1", - "remark-math": "^5.1.1", - "remark-mdx-images": "^2.0.0", + "remark": "15.0.1", + "remark-gfm": "4.0.0", + "remark-math": "^6.0.0", + "remark-mdx-images": "^3.0.0", "tailwind-merge": "^1.14.0", "three": "^0.161.0", "tsparticles": "^3.3.0", diff --git a/apps/landing/public/images/app/AppHero.png b/apps/landing/public/images/app/AppHero.png new file mode 100644 index 000000000000..d89538817840 Binary files /dev/null and b/apps/landing/public/images/app/AppHero.png differ diff --git a/apps/landing/public/images/app/mobile1.png b/apps/landing/public/images/app/mobile1.png new file mode 100644 index 000000000000..350a8b8a475f Binary files /dev/null and b/apps/landing/public/images/app/mobile1.png differ diff --git a/apps/landing/public/images/app/mobile2.png b/apps/landing/public/images/app/mobile2.png new file mode 100644 index 000000000000..5ea183b8b4ed Binary files /dev/null and b/apps/landing/public/images/app/mobile2.png differ diff --git a/apps/landing/public/images/app/mobile3.png b/apps/landing/public/images/app/mobile3.png new file mode 100644 index 000000000000..dbb31c38ae58 Binary files /dev/null and b/apps/landing/public/images/app/mobile3.png differ diff --git a/apps/landing/public/images/app/mobile4.png b/apps/landing/public/images/app/mobile4.png new file mode 100644 index 000000000000..7cc06737f1c6 Binary files /dev/null and b/apps/landing/public/images/app/mobile4.png differ diff --git a/apps/landing/public/images/app/mobile5.png b/apps/landing/public/images/app/mobile5.png new file mode 100644 index 000000000000..c09c41f2c765 Binary files /dev/null and b/apps/landing/public/images/app/mobile5.png differ diff --git a/apps/landing/public/images/cloud.png b/apps/landing/public/images/cloud.png new file mode 100644 index 000000000000..bf9de8ac368c Binary files /dev/null and b/apps/landing/public/images/cloud.png differ diff --git a/apps/landing/public/images/companies/1Password.svg b/apps/landing/public/images/companies/1Password.svg new file mode 100644 index 000000000000..eb439c726de9 --- /dev/null +++ b/apps/landing/public/images/companies/1Password.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/landing/public/images/companies/Apache.svg b/apps/landing/public/images/companies/Apache.svg new file mode 100644 index 000000000000..5c9d99b89a6c --- /dev/null +++ b/apps/landing/public/images/companies/Apache.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/landing/public/images/companies/ClickHouse.svg b/apps/landing/public/images/companies/ClickHouse.svg new file mode 100644 index 000000000000..99d80f91234a --- /dev/null +++ b/apps/landing/public/images/companies/ClickHouse.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/landing/public/images/companies/Cloudflare.svg b/apps/landing/public/images/companies/Cloudflare.svg new file mode 100644 index 000000000000..ff21b9db2c09 --- /dev/null +++ b/apps/landing/public/images/companies/Cloudflare.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/apps/landing/public/images/companies/CrabNebula.svg b/apps/landing/public/images/companies/CrabNebula.svg new file mode 100644 index 000000000000..e26a01e3eec6 --- /dev/null +++ b/apps/landing/public/images/companies/CrabNebula.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/apps/landing/public/images/companies/Datadog.svg b/apps/landing/public/images/companies/Datadog.svg new file mode 100644 index 000000000000..b527bcf1c6b7 --- /dev/null +++ b/apps/landing/public/images/companies/Datadog.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/apps/landing/public/images/companies/Github.svg b/apps/landing/public/images/companies/Github.svg new file mode 100644 index 000000000000..e28a39bb390d --- /dev/null +++ b/apps/landing/public/images/companies/Github.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/landing/public/images/companies/Gitpod.svg b/apps/landing/public/images/companies/Gitpod.svg new file mode 100644 index 000000000000..b2f583b60a1e --- /dev/null +++ b/apps/landing/public/images/companies/Gitpod.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/apps/landing/public/images/companies/Google.svg b/apps/landing/public/images/companies/Google.svg new file mode 100644 index 000000000000..29dcff20c9da --- /dev/null +++ b/apps/landing/public/images/companies/Google.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/apps/landing/public/images/companies/Microsoft.svg b/apps/landing/public/images/companies/Microsoft.svg new file mode 100644 index 000000000000..27d36f9b0652 --- /dev/null +++ b/apps/landing/public/images/companies/Microsoft.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/landing/public/images/companies/Netflix.svg b/apps/landing/public/images/companies/Netflix.svg new file mode 100644 index 000000000000..e8192b02b80d --- /dev/null +++ b/apps/landing/public/images/companies/Netflix.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/apps/landing/public/images/companies/Nvidia.svg b/apps/landing/public/images/companies/Nvidia.svg new file mode 100644 index 000000000000..294213eafe3e --- /dev/null +++ b/apps/landing/public/images/companies/Nvidia.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/landing/public/images/companies/PostHog.svg b/apps/landing/public/images/companies/PostHog.svg new file mode 100644 index 000000000000..b87f76cb5c30 --- /dev/null +++ b/apps/landing/public/images/companies/PostHog.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/apps/landing/public/images/companies/RunPod.svg b/apps/landing/public/images/companies/RunPod.svg new file mode 100644 index 000000000000..7ec25b681096 --- /dev/null +++ b/apps/landing/public/images/companies/RunPod.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/landing/public/images/companies/flag-standalone 1.svg b/apps/landing/public/images/companies/flag-standalone 1.svg new file mode 100644 index 000000000000..ade7f94d6012 --- /dev/null +++ b/apps/landing/public/images/companies/flag-standalone 1.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/apps/landing/public/images/multi-node-compute.png b/apps/landing/public/images/multi-node-compute.png new file mode 100644 index 000000000000..b89f21a5a00b Binary files /dev/null and b/apps/landing/public/images/multi-node-compute.png differ diff --git a/apps/landing/public/images/vault-base.png b/apps/landing/public/images/vault-base.png new file mode 100644 index 000000000000..03cb3bfa8842 Binary files /dev/null and b/apps/landing/public/images/vault-base.png differ diff --git a/apps/landing/public/images/vault-handle.png b/apps/landing/public/images/vault-handle.png new file mode 100644 index 000000000000..646e922b50bb Binary files /dev/null and b/apps/landing/public/images/vault-handle.png differ diff --git a/apps/landing/public/images/vault-light.png b/apps/landing/public/images/vault-light.png new file mode 100644 index 000000000000..0902b2b47261 Binary files /dev/null and b/apps/landing/public/images/vault-light.png differ diff --git a/apps/landing/public/images/vault1.png b/apps/landing/public/images/vault1.png new file mode 100644 index 000000000000..65a35b0a31c1 Binary files /dev/null and b/apps/landing/public/images/vault1.png differ diff --git a/apps/landing/src/app/Icon.tsx b/apps/landing/src/app/Icon.tsx new file mode 100644 index 000000000000..24fdb1dee408 --- /dev/null +++ b/apps/landing/src/app/Icon.tsx @@ -0,0 +1,23 @@ +import { getIcon, iconNames } from '@sd/assets/util'; +import clsx from 'clsx'; +import Image from 'next/image'; +import { ImgHTMLAttributes } from 'react'; + +export type IconName = keyof typeof iconNames; + +interface Props extends ImgHTMLAttributes { + name: IconName; + size?: number; +} + +export const Icon = ({ name, size, ...props }: Props) => { + return ( + {name} + ); +}; diff --git a/apps/landing/src/app/api/github-stats/route.ts b/apps/landing/src/app/api/github-stats/route.ts new file mode 100644 index 000000000000..e4dd27ec6b29 --- /dev/null +++ b/apps/landing/src/app/api/github-stats/route.ts @@ -0,0 +1,44 @@ +import { NextResponse } from 'next/server'; + +const runtime = 'edge'; +const revalidate = 21600; // 6 hours + +async function getGitHubReleaseStats() { + const response = await fetch( + 'https://api.github.com/repos/spacedriveapp/spacedrive/releases', + { + headers: { + 'Accept': 'application/vnd.github.v3+json', + ...(process.env.GITHUB_TOKEN && { + 'Authorization': `token ${process.env.GITHUB_TOKEN}` + }) + } + } + ); + + if (!response.ok) { + throw new Error('Failed to fetch GitHub stats'); + } + + const releases = await response.json(); + + // Sum up download count from all assets across all releases + const totalDownloads = releases.reduce((total: number, release: any) => { + const releaseDownloads = release.assets.reduce((sum: number, asset: any) => { + return sum + asset.download_count; + }, 0); + return total + releaseDownloads; + }, 0); + + return totalDownloads; +} + +export async function GET() { + try { + const downloads = await getGitHubReleaseStats(); + return NextResponse.json({ downloads }); + } catch (error) { + console.error('Error fetching GitHub stats:', error); + return NextResponse.json({ error: 'Failed to fetch download stats' }, { status: 500 }); + } +} diff --git a/apps/landing/src/app/blog/[slug]/page.tsx b/apps/landing/src/app/blog/[slug]/page.tsx index a1683b4169c8..5200c503bd0c 100644 --- a/apps/landing/src/app/blog/[slug]/page.tsx +++ b/apps/landing/src/app/blog/[slug]/page.tsx @@ -1,7 +1,7 @@ import { allPosts } from '@contentlayer/generated'; import dayjs from 'dayjs'; import { Metadata } from 'next'; -import { useMDXComponent } from 'next-contentlayer/hooks'; +import { useMDXComponent } from 'next-contentlayer2/hooks'; import Image from 'next/image'; import { notFound } from 'next/navigation'; import { BlogTag } from '~/components/blog-tag'; diff --git a/apps/landing/src/app/client-providers.tsx b/apps/landing/src/app/client-providers.tsx index 2bbe162492c5..179bab32a03e 100644 --- a/apps/landing/src/app/client-providers.tsx +++ b/apps/landing/src/app/client-providers.tsx @@ -1,8 +1,13 @@ 'use client'; import { PropsWithChildren } from 'react'; +import { ParallaxProvider } from 'react-scroll-parallax'; import { TooltipProvider } from '@sd/ui'; export function ClientProviders({ children }: PropsWithChildren) { - return {children}; + return ( + + {children} + + ); } diff --git a/apps/landing/src/app/cloud/page.tsx b/apps/landing/src/app/cloud/page.tsx deleted file mode 100644 index e36a6f258a99..000000000000 --- a/apps/landing/src/app/cloud/page.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import React from 'react'; - -const Page: React.FC = () => { - return

Cloud

; -}; - -export default Page; diff --git a/apps/landing/src/app/docs/[...slug]/page.tsx b/apps/landing/src/app/docs/[...slug]/page.tsx index 210ea4bfdbe2..64bf2ee4de8a 100644 --- a/apps/landing/src/app/docs/[...slug]/page.tsx +++ b/apps/landing/src/app/docs/[...slug]/page.tsx @@ -2,7 +2,7 @@ import { allDocs } from '@contentlayer/generated'; import { CaretRight } from '@phosphor-icons/react/dist/ssr'; import { Github } from '@sd/assets/svgs/brands'; import { Metadata } from 'next'; -import { getMDXComponent } from 'next-contentlayer/hooks'; +import { getMDXComponent } from 'next-contentlayer2/hooks'; import Link from 'next/link'; import { notFound } from 'next/navigation'; import { DocMDXComponents } from '~/components/mdx'; diff --git a/apps/landing/src/app/docs/changelog/[category]/[tag]/page.tsx b/apps/landing/src/app/docs/changelog/[category]/[tag]/page.tsx index e0bd2ecd98dd..6f3123422da1 100644 --- a/apps/landing/src/app/docs/changelog/[category]/[tag]/page.tsx +++ b/apps/landing/src/app/docs/changelog/[category]/[tag]/page.tsx @@ -1,5 +1,5 @@ import { bundleMDX } from 'mdx-bundler'; -import { getMDXComponent } from 'next-contentlayer/hooks'; +import { getMDXComponent } from 'next-contentlayer2/hooks'; import { notFound } from 'next/navigation'; import { getRelease, githubFetch } from '~/app/api/github'; import { DocMDXComponents } from '~/components/mdx'; @@ -13,9 +13,22 @@ interface Props { } export async function generateStaticParams(): Promise> { - const categories = await getReleasesCategories(); + try { + const categories = await getReleasesCategories(); - return categories.flatMap((c) => c.docs.map((d) => ({ category: c.slug, tag: d.slug }))); + // Handle null/undefined case + if (!categories) return []; + + return categories.flatMap((c) => + c.docs.map((d) => ({ + category: c.slug, + tag: d.slug + })) + ); + } catch (error) { + // Return empty array if error occurs + return []; + } } export async function generateMetadata({ params }: Props) { diff --git a/apps/landing/src/app/docs/changelog/data.ts b/apps/landing/src/app/docs/changelog/data.ts index a7de94665eff..438bfb5ccac7 100644 --- a/apps/landing/src/app/docs/changelog/data.ts +++ b/apps/landing/src/app/docs/changelog/data.ts @@ -8,7 +8,10 @@ export async function getReleasesCategories(): Promise = {}; - for (const release of releases ?? []) { + // Ensure releases is an array before iteration + const releasesArray = Array.isArray(releases) ? releases : []; + + for (const release of releasesArray) { if (release.draft) continue; const { frontmatter } = getReleaseFrontmatter(release); diff --git a/apps/landing/src/app/explorer/page.tsx b/apps/landing/src/app/explorer/page.tsx deleted file mode 100644 index 0c95f613904e..000000000000 --- a/apps/landing/src/app/explorer/page.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import React from 'react'; - -const Page: React.FC = () => { - return ( -

Spacedrive Explorer — Open source, cross-platform file manager powered by a VDFS

- ); -}; - -export default Page; diff --git a/apps/landing/src/app/page-sections/bento.tsx b/apps/landing/src/app/page-sections/bento.tsx new file mode 100644 index 000000000000..9e4517377317 --- /dev/null +++ b/apps/landing/src/app/page-sections/bento.tsx @@ -0,0 +1,149 @@ +import { ArrowRight } from '@phosphor-icons/react'; +import clsx from 'clsx'; +import { motion } from 'framer-motion'; +import Image from 'next/image'; + +import { CtaButton } from '../../components/cta-button'; +import { Icon, IconName } from '../Icon'; + +interface BentoCardProps { + icon?: IconName; + title: string; + size?: 'small' | 'large'; + children?: React.ReactNode; + className?: string; + description?: string; + comingSoon?: boolean; +} + +const BENTO_BASE_CLASS = `bento-border-left relative flex flex-col rounded-[10px] bg-[radial-gradient(66.79%_83.82%_at_0%_3.69%,#1B1D25_0%,#15161C_100%)] overflow-hidden group`; +const BENTO_TITLE_CLASS = 'text-md font-bold text-ink-dull'; + +function BentoCard({ + icon, + title, + size = 'small', + children, + className, + description, + comingSoon = false +}: BentoCardProps) { + return ( +
+ {comingSoon && ( +
+ + COMING SOON + +
+ )} +
+ {icon && } +

{title}

+
+ {children} + {description && ( +
+

{description}

+
+ )} +
+ ); +} + +export function Bento() { + return ( +
+
+ + + + + + Spacedrive vault +
+

Spacedrive Cloud

+

+ Store your files in the cloud with our secure cloud storage solution. +

+ + View Plans + +
+
+ + + + +
+
+ ); +} diff --git a/apps/landing/src/app/page-sections/companies.tsx b/apps/landing/src/app/page-sections/companies.tsx new file mode 100644 index 000000000000..1e5f20c466ed --- /dev/null +++ b/apps/landing/src/app/page-sections/companies.tsx @@ -0,0 +1,53 @@ +export function Companies() { + const companies = [ + 'Microsoft', + 'Apache', + 'Cloudflare', + 'Google', + 'CrabNebula', + 'Nvidia', + 'Gitpod', + 'PostHog', + 'Github', + '1Password', + 'Netflix', + 'Datadog', + 'RunPod', + 'ClickHouse' + ]; + + // Duplicate the array to create a seamless loop + const duplicatedCompanies = [...companies, ...companies]; + + return ( +
+

+ Loved by employees at leading tech companies +

+
+ {/* Gradient masks for fade effect */} +
+
+ + {/* Scrolling container */} +
+
+ {duplicatedCompanies.map((company, index) => ( +
+ {/* eslint-disable-next-line @next/next/no-img-element */} + {`${company} +
+ ))} +
+
+
+
+ ); +} diff --git a/apps/landing/src/app/page-sections/header.tsx b/apps/landing/src/app/page-sections/header.tsx index e84caf41344d..61f9dc70d221 100644 --- a/apps/landing/src/app/page-sections/header.tsx +++ b/apps/landing/src/app/page-sections/header.tsx @@ -12,6 +12,8 @@ import Particles from '~/components/particles'; import { PlatformIcons } from '~/components/platform-icons'; import { toTitleCase } from '~/utils/misc'; +import { Icon } from '../Icon'; + export async function Header() { const [release, repoStats] = await Promise.all([ githubFetch(getLatestRelease), @@ -32,9 +34,9 @@ export async function Header() {

- {`Sync, manage, & discover.`} + Sync, manage, & discover.
- {`Across all your devices.`} + Across all your devices.

@@ -78,12 +80,19 @@ export async function Header() { /> {/* 2nd light */}
- +
+ + +
diff --git a/apps/landing/src/app/page-sections/index.ts b/apps/landing/src/app/page-sections/index.ts index 42aef310812a..74bb5b9a1692 100644 --- a/apps/landing/src/app/page-sections/index.ts +++ b/apps/landing/src/app/page-sections/index.ts @@ -1,7 +1,12 @@ export * from './header'; -export * from './assistant'; +export * from './organizer'; export * from './explorer'; export * from './github'; export * from './features'; export * from './search'; export * from './tags'; +export * from './companies'; +export * from './bento'; +export * from './vdfs'; +export * from './security'; +export * from './mobile'; diff --git a/apps/landing/src/app/page-sections/mobile.tsx b/apps/landing/src/app/page-sections/mobile.tsx index 7ca446a3e237..8adaef2b6f24 100644 --- a/apps/landing/src/app/page-sections/mobile.tsx +++ b/apps/landing/src/app/page-sections/mobile.tsx @@ -3,28 +3,100 @@ import { GooglePlayLogo } from '@phosphor-icons/react'; import { Apple } from '@sd/assets/svgs/brands'; import Image from 'next/image'; +import { useEffect, useState } from 'react'; +import { useParallax } from 'react-scroll-parallax'; import { tw } from '@sd/ui'; -const DownloadButton = tw.button`flex w-fit flex-row items-center gap-2 rounded-lg border border-zinc-800 bg-zinc-900 p-2.5 text-[13px] transition-all duration-300 hover:border-zinc-700 hover:bg-zinc-800`; +import { CtaSecondaryButton } from '../../components/cta-secondary-button'; const Mobile = () => { + const [screenSize, setScreenSize] = useState('sm'); + + const parallax1 = useParallax({ speed: 5, translateY: [0, -15] }); + const parallax2 = useParallax({ speed: 8, translateY: [0, -25] }); + const parallax3 = useParallax({ speed: 10, translateY: [0, -40] }); + const parallax4 = useParallax({ speed: 8, translateY: [0, -25] }); + const parallax5 = useParallax({ speed: 5, translateY: [0, -15] }); + + const parallaxRefs = [parallax1, parallax2, parallax3, parallax4, parallax5]; + + useEffect(() => { + const handleResize = () => { + if (window.innerWidth >= 1024) setScreenSize('lg'); + else if (window.innerWidth >= 768) setScreenSize('md'); + else setScreenSize('sm'); + }; + + handleResize(); + window.addEventListener('resize', handleResize); + return () => window.removeEventListener('resize', handleResize); + }, []); + + const getSpacing = () => { + switch (screenSize) { + case 'lg': + return { x: 160, y: 30, width: 250, containerWidth: 1200 }; + case 'md': + return { x: 130, y: 25, width: 200, containerWidth: 960 }; + default: + return { x: 80, y: 15, width: 150, containerWidth: 720 }; + } + }; + + const spacing = getSpacing(); + const totalWidth = spacing.x * 4 + spacing.width; + return ( -
- Mobile -
+
+
+
+
+
+ {[1, 2, 3, 4, 5].map((num, i) => ( +
+ {`Mobile +
+ ))} +
+
+
+

Cross platform.  @@ -33,22 +105,25 @@ const Mobile = () => {

- Using the mobile app, you can sync your files across all your devices. Take your - personal data with you wherever you are! + Access your files from anywhere, on any device, with the Spacedrive app.

- - + {/* }> Open Play Store - - - + + }> Open App Store - + */} + } + disabled={true} + > + Coming Soon +
); }; -export default Mobile; +export { Mobile }; diff --git a/apps/landing/src/app/page-sections/assistant.tsx b/apps/landing/src/app/page-sections/organizer.tsx similarity index 100% rename from apps/landing/src/app/page-sections/assistant.tsx rename to apps/landing/src/app/page-sections/organizer.tsx diff --git a/apps/landing/src/app/page-sections/security.tsx b/apps/landing/src/app/page-sections/security.tsx new file mode 100644 index 000000000000..d114254b0fff --- /dev/null +++ b/apps/landing/src/app/page-sections/security.tsx @@ -0,0 +1,173 @@ +'use client'; + +import Image from 'next/image'; +import { useEffect, useRef, useState } from 'react'; + +function BinaryBackground({ isInView }: { isInView: boolean }) { + const [digits, setDigits] = useState([]); + const [isVisible, setIsVisible] = useState(false); + const layoutRef = useRef<{ length: number; offset: number }[]>([]); + const animationStartedRef = useRef(false); + + useEffect(() => { + if (isInView && !animationStartedRef.current) { + animationStartedRef.current = true; + + if (layoutRef.current.length === 0) { + layoutRef.current = Array.from({ length: 8 }, () => ({ + length: Math.floor(Math.random() * 15) + 25, + offset: Math.random() * 40 + })); + } + + // Wait for handle snap to almost complete (1.85s is 92.5% of 2s animation) + setTimeout(() => { + setIsVisible(true); + }, 1250); + + const generateDigits = () => { + const newDigits = layoutRef.current.map((row) => + Array.from({ length: row.length }, () => (Math.random() > 0.5 ? '1' : '0')) + ); + setDigits(newDigits); + }; + + generateDigits(); + const interval = setInterval(generateDigits, 100); + return () => clearInterval(interval); + } else { + setIsVisible(false); + animationStartedRef.current = false; + } + }, [isInView]); + + if (!isVisible) return null; + + // Calculate center points + const centerRow = Math.floor(layoutRef.current.length / 2); + const maxDistance = Math.sqrt( + Math.pow(layoutRef.current.length, 2) + + Math.pow(Math.max(...layoutRef.current.map((r) => r.length)), 2) + ); + + return ( +
+
+ {digits.map((row, rowIndex) => { + const centerCol = Math.floor(row.length / 2); + + return ( +
+ {row.map((digit, colIndex) => { + // Calculate distance from center + const distanceFromCenter = Math.sqrt( + Math.pow(rowIndex - centerRow, 2) + + Math.pow(colIndex - centerCol, 2) + ); + + // Normalize distance to 0-1 range and use it for delay + const normalizedDistance = distanceFromCenter / maxDistance; + const delay = normalizedDistance * 1.5; // Increased to 1.5s max delay + + return ( + + {digit} + + ); + })} +
+ ); + })} +
+
+ ); +} + +export function Security() { + const [isInView, setIsInView] = useState(false); + const ref = useRef(null); + + useEffect(() => { + const observer = new IntersectionObserver( + ([entry]) => { + setIsInView(entry.isIntersecting); + }, + { + threshold: 0.5 // Trigger when 50% of the component is visible + } + ); + + if (ref.current) { + observer.observe(ref.current); + } + + return () => { + observer.disconnect(); + }; + }, []); + + return ( +
+
+ + Spacedrive vault +
+ Spacedrive vault +
+ Spacedrive vault +
+ +
+

Designed for privacy

+

+ Spacedrive is designed from the ground up to be secure and ensure your data is + safe, with client-side, end-to-end encryption. +

+
+
+ ); +} diff --git a/apps/landing/src/app/page-sections/tags.tsx b/apps/landing/src/app/page-sections/tags.tsx index e6101a9cb1a7..f3350e2cee06 100644 --- a/apps/landing/src/app/page-sections/tags.tsx +++ b/apps/landing/src/app/page-sections/tags.tsx @@ -43,7 +43,7 @@ const MemoizedTags = memo(function Tags() { {/* Some controlled line breaks here based on breakpoint to make sure the breaks looks nice always :) */}
- quickly organize your files. + Quickly organize your files.
@@ -65,4 +65,4 @@ const MemoizedTags = memo(function Tags() { ); }); -export default MemoizedTags; +export { MemoizedTags as Tags }; diff --git a/apps/landing/src/app/page-sections/vdfs.tsx b/apps/landing/src/app/page-sections/vdfs.tsx new file mode 100644 index 000000000000..92a07eedacb6 --- /dev/null +++ b/apps/landing/src/app/page-sections/vdfs.tsx @@ -0,0 +1,59 @@ +'use client'; + +import { useParallax } from 'react-scroll-parallax'; +import Particles from '~/components/particles'; + +import { Icon } from '../Icon'; + +export function Vdfs() { + const parallax = useParallax({ + speed: 5 + }); + + return ( +
+

POWERED BY THE

+

+ VIRTUAL DISTRIBUTED FILESYSTEM +

+
+

+ VDFS +

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

+ Your Files. Every Device. Instantly. +

+

+ Built in Rust for unmatched speed and memory safety, the VDFS unites your devices + into a single, seamless file management experience. +

+
+
+ ); +} diff --git a/apps/landing/src/app/page.tsx b/apps/landing/src/app/page.tsx index cae7c9319987..a13c9e80fa51 100644 --- a/apps/landing/src/app/page.tsx +++ b/apps/landing/src/app/page.tsx @@ -1,7 +1,15 @@ -import { Assistant, Explorer, Features, Github, Header, Search } from '~/app/page-sections'; - -import Mobile from './page-sections/mobile'; -import Tags from './page-sections/tags'; +import { + Bento, + Companies, + Explorer, + Github, + Header, + Mobile, + Search, + Security, + Tags, + Vdfs +} from '~/app/page-sections'; export const metadata = { title: 'Spacedrive — Sync, manage, and discover. Across all your devices.', @@ -19,13 +27,15 @@ export default function Page() { return ( <>
-
- {/* */} - {/* */} +
+ + + + + - {/* */}
diff --git a/apps/landing/src/app/pricing/Cards.tsx b/apps/landing/src/app/pricing/Cards.tsx deleted file mode 100644 index a74f0874cb8f..000000000000 --- a/apps/landing/src/app/pricing/Cards.tsx +++ /dev/null @@ -1,148 +0,0 @@ -'use client'; - -import { Check } from '@phosphor-icons/react'; -import clsx from 'clsx'; -import { useState } from 'react'; -import { Button, Switch } from '@sd/ui'; - -export function Cards() { - const [toggle, setToggle] = useState(false); - - return ( - <> -
-

Monthly

- -

Yearly

-
-
- - - -
- - ); -} - -interface Props { - features: string[]; - name: 'Free' | 'Pro' | 'Enterprise'; - subTitle?: string; - price?: { - monthly: string; - yearly: string; - }; - toggle: boolean; -} - -const PackageCard = ({ features, name, price, toggle, subTitle }: Props) => { - const duration = toggle ? 'year' : 'month'; - return ( -
- {name === 'Pro' && ( -
-

Popular

-
- )} -
-
-
-

{name}

- {price && ( - <> -

- ${toggle ? price.yearly : price.monthly} -

-

per {duration}

- - )} - {subTitle && ( -

{subTitle}

- )} -
-
-
-
- {name === 'Pro' && ( -

- Everything in Free, plus... -

- )} - {name === 'Enterprise' && ( -

- Everything in Pro, plus... -

- )} - {features.map((feature, index) => ( -
-
- -
-

{feature}

-
- ))} -
- -
-
-
- ); -}; diff --git a/apps/landing/src/app/pricing/PlanAddons.tsx b/apps/landing/src/app/pricing/PlanAddons.tsx deleted file mode 100644 index 87e2c79482d9..000000000000 --- a/apps/landing/src/app/pricing/PlanAddons.tsx +++ /dev/null @@ -1,68 +0,0 @@ -'use client'; - -import { X } from '@phosphor-icons/react'; -import { Button, Dialog } from '@sd/ui'; - -import type { Plan } from './plans'; - -interface PlanAddonsProps { - plan: Plan; - isAnnual: boolean; - onClose: () => void; -} - -export function PlanAddons({ plan, isAnnual, onClose }: PlanAddonsProps) { - return ( - onClose()}> -
-
-
-

- Customize your {plan.name} plan -

- -
- -
-
-

- Data Retention Add-on -

-
- {[1, 2, 3, 4, 5].map((years) => ( - - ))} -
-
- -
- - -
-
-
-
-
- ); -} diff --git a/apps/landing/src/app/pricing/PricingCards.tsx b/apps/landing/src/app/pricing/PricingCards.tsx deleted file mode 100644 index a077c4946257..000000000000 --- a/apps/landing/src/app/pricing/PricingCards.tsx +++ /dev/null @@ -1,79 +0,0 @@ -'use client'; - -import { Check } from '@phosphor-icons/react'; -import { useState } from 'react'; -import { Button, Switch } from '@sd/ui'; - -import { PlanAddons } from './PlanAddons'; -import { plans, type Plan } from './plans'; - -export function PricingCards() { - const [isAnnual, setIsAnnual] = useState(false); - const [selectedPlan, setSelectedPlan] = useState(null); - - return ( -
-
-

Monthly

- -

- Yearly (20% off) -

-
- -
- {plans.map((plan) => ( -
-
-

{plan.name}

- {plan.price ? ( -
- - ${isAnnual ? plan.price.yearly : plan.price.monthly} - - /mo -
- ) : ( -
- {plan.subTitle} -
- )} - -
    - {plan.features.map((feature) => ( -
  • - - {feature} -
  • - ))} -
- - -
-
- ))} -
- - {selectedPlan && ( - setSelectedPlan(null)} - /> - )} -
- ); -} diff --git a/apps/landing/src/app/pricing/page.tsx b/apps/landing/src/app/pricing/page.tsx index 5b2510f68550..9d73161a3a2a 100644 --- a/apps/landing/src/app/pricing/page.tsx +++ b/apps/landing/src/app/pricing/page.tsx @@ -1,36 +1,241 @@ +'use client'; + +import { ArrowCircleDown, ArrowRight } from '@phosphor-icons/react'; +import clsx from 'clsx'; +import { AnimatePresence, motion } from 'framer-motion'; import Image from 'next/image'; -import React from 'react'; +import React, { useState } from 'react'; +import { Switch } from '@sd/ui'; +import { CtaButton } from '~/components/cta-button'; + +const BENTO_BASE_CLASS = `bento-border-left relative flex flex-col rounded-[10px] bg-[radial-gradient(66.79%_83.82%_at_0%_3.69%,#1B1D25_0%,#15161C_100%)] overflow-hidden group`; -// import { Background } from './Background'; -import { Cards } from './Cards'; +interface PricingTier { + name: string; + price: { + monthly: string; + yearly: string; + }; + description: string; + features: string[]; + highlighted?: boolean; + href: string; + cta: { + text: string; + icon: React.ReactNode; + }; +} -export const metadata = { - title: 'Pricing - Spacedrive', - description: 'Spacedrive pricing and packages' -}; +const pricingTiers: PricingTier[] = [ + { + name: 'Free', + price: { + monthly: '$0', + yearly: '$0' + }, + description: 'Your personal data command center', + features: [ + 'All client apps', + 'Full core feature set', + 'Your devices are your cloud', + 'Connect custom S3 storage', + 'Local P2P sync & transfer', + 'Unlimited personal use' + ], + href: '/download', + cta: { + text: 'Download', + icon: + } + }, + { + name: 'Sync', + price: { + monthly: '$2.99', + yearly: '$29.99' + }, + description: 'Seamless multi-device experience', + features: [ + 'Everything in Free', + 'Always-on encrypted cloud sync', + '10GB cloud backup for library & previews', + 'Global P2P relay network', + 'Email support' + ], + highlighted: true, + href: '/cloud/subscribe/sync', + cta: { + text: 'Get Started', + icon: + } + }, + { + name: 'Pro', + price: { + monthly: '$9.99', + yearly: '$99.99' + }, + description: 'Power user cloud features', + features: [ + 'Everything in Sync', + '1TB managed cloud storage', + '100GB monthly transfer quota', + 'Custom sd.app share URLs', + 'Unlimited sharing capabilities', + 'Priority support' + ], + href: '/cloud/subscribe/pro', + cta: { + text: 'Get Started', + icon: + } + }, + { + name: 'Enterprise', + price: { + monthly: 'Contact us', + yearly: 'Contact us' + }, + description: 'Scale to meet your needs', + features: [ + 'Per-seat licensing model', + 'Team workspace & management', + 'Cross-cloud data transfer', + 'Self-hosted infrastructure', + 'Custom integration support', + 'Dedicated success manager' + ], + href: '/enterprise', + cta: { + text: 'Contact Sales', + icon: + } + } +]; export default function PricingPage() { + const [yearlyBilling, setYearlyBilling] = useState(true); + return ( - <> - {/* */} - l -
-

- Pricing +
+
+ Spacedrive vault +

+ + Go the extra mile with Spacedrive Cloud +

-

- Spacedrive can be used for free as you like. Upgrading gives you access to early - features, and this is placeholder text +

+ Choose the perfect plan for your needs, from personal projects to enterprise + solutions. All plans include client-side encryption and optional self-hosting + capabilities.

- + +
+ Monthly + + + Yearly (Save 20%) + +
+ +
+ {pricingTiers.map((tier) => { + const monthlyPrice = + tier.name === 'Free' + ? '0' + : yearlyBilling + ? (parseFloat(tier.price.yearly.replace('$', '')) / 12).toFixed( + 2 + ) + : tier.price.monthly.replace('$', ''); + + return ( +
+
+
+

+ {tier.name} +

+
+ {tier.price.monthly !== 'Contact us' ? ( + <> +
+ + ${monthlyPrice} + + + /mo + +
+ {yearlyBilling && tier.name !== 'Free' && ( + + + billed {tier.price.yearly} yearly + + + )} + + ) : ( + + Contact us + + )} +
+

+ {tier.description} +

+
+ +
    + {tier.features.map((feature) => ( +
  • +
    + {feature} +
  • + ))} +
+ + + {tier.cta.text} + +
+
+ ); + })} +
- +
); } diff --git a/apps/landing/src/app/pricing/plans.ts b/apps/landing/src/app/pricing/plans.ts deleted file mode 100644 index 5f21cf48c5ad..000000000000 --- a/apps/landing/src/app/pricing/plans.ts +++ /dev/null @@ -1,69 +0,0 @@ -export interface Plan { - name: string; - subTitle?: string; - price?: { - monthly: number; - yearly: number; - }; - features: string[]; -} - -export const plans: Plan[] = [ - { - name: 'Free', - subTitle: 'Free forever', - features: [ - 'Local storage only', - 'Cross-platform support', - 'End-to-end encryption', - '2 cloud devices', - '100 MB cloud database sync', - '7 days version history' - ] - }, - { - name: 'Personal', - price: { - monthly: 5.99, - yearly: 4.79 - }, - features: [ - '1 TB storage', - 'Unlimited cloud database sync', - '5 cloud devices', - '3 shares', - 'Cold storage redundancy', - '30 days version history' - ] - }, - { - name: 'Pro', - price: { - monthly: 19.99, - yearly: 15.99 - }, - features: [ - '5 TB storage', - 'Unlimited cloud devices', - 'Unlimited shares', - 'Custom branding', - 'Priority support', - '90 days version history' - ] - }, - { - name: 'Business', - price: { - monthly: 39.99, - yearly: 31.99 - }, - features: [ - '10 TB storage', - 'Up to 10 team members', - 'SSO integration', - 'Advanced security', - 'Priority phone support', - '180 days version history' - ] - } -]; diff --git a/apps/landing/src/app/roadmap/items.ts b/apps/landing/src/app/roadmap/items.ts index 6f0831678129..904464da97c9 100644 --- a/apps/landing/src/app/roadmap/items.ts +++ b/apps/landing/src/app/roadmap/items.ts @@ -5,256 +5,267 @@ export const items: { title: string; description: string; }[] = [ - { - when: 'Big Bang', - subtext: 'Q1 2022', - completed: true, - title: 'File discovery', - description: - 'Scan devices, drives and cloud accounts to build a directory of all files with metadata.' - }, - { - title: 'Preview generation', - completed: true, - description: 'Auto generate lower resolution stand-ins for image and video.' - }, - { - title: 'Statistics', - completed: true, - description: 'Total capacity, index size, preview media size, free space etc.' - }, - { - title: 'Jobs', - completed: true, - description: - 'Tasks to be performed via a queue system with multi-threaded workers, such as indexing, identifying, generating preview media and moving files. With a Job Manager interface for tracking progress, pausing and restarting jobs.' - }, - { - completed: true, - title: 'Explorer', - description: - 'Browse online/offline storage locations, view files with metadata, perform basic CRUD.' - }, - { - completed: true, - title: 'Self hosting', - description: - 'Spacedrive can be deployed as a service via Docker, behaving as just another device powering your personal cloud.' - }, - { - completed: true, - title: 'Tags', - description: - 'Define routines on custom tags to automate workflows, easily tag files individually, in bulk and automatically via rules.' - }, - { - completed: true, - title: 'Search', - description: - 'Instantly search your library, including offline locations. Use advanced filters to refine and save searches for later.' - }, - { - completed: true, - title: 'Quick view', - description: - 'View images, videos and documents in a full screen modal with nested inspector and context switcher.' - }, - { - completed: true, - title: 'Media view', - description: 'Turn any directory into a camera roll including media from subdirectories' - }, - { - completed: true, - title: 'Spacedrop', - description: 'Drop files between devices and contacts on a keybind like AirDrop.' - }, - // { - // completed: true, - // title: 'AI labeling for images', - // description: - // 'Automatically label images with objects, with a model loader to support future models and upgrading to more powerful models for various jobs.' - // }, - { - title: 'Drag & drop', - completed: true, - description: 'Drag and drop files between devices and drives.' - }, - { - title: 'Language support', - completed: true, - description: 'Support for 12+ languages, with a community-driven translation via i18n.' - }, - { - when: '0.2 Alpha', - subtext: 'February 2024', - title: 'Command Palette', - completed: true, - description: 'Quickly navigate to any file or folder from anywhere in the app.' - }, - { - title: 'Video thumbstrips', - completed: true, - description: - 'Generate and display thumbstrips for videos, with a scrubber to preview the video.' - }, - { - title: 'Resizable Sidebar', - completed: true, - description: - 'Customize the sidebar width to your liking, with a toggle to hide it completely.' - }, - { - title: 'Move to Trash', - completed: true, - description: - 'Have the option to move files and folders to the trash, instead of deleting them permanently.' - }, - { - when: '0.3 Alpha', - subtext: 'May 2024', - title: 'Media File Metadata', - description: 'View metadata for media files, for all common formats.', - completed: true - }, - { - when: '0.4 Alpha', - subtext: 'June 2024', - title: 'New Overview Design', - description: - 'New Overview design with a focus on the most important information about your library.', - completed: true, - }, - { - title: 'Tag Assignment', - completed: true, - description: 'Assign tags to multiple files and folders at once.' - }, - { - title: 'Estimated time remaining for Jobs', - completed: true, - description: 'See how long a job will take to complete.' - }, - { - when: '0.5 Beta', - subtext: 'December 2024', - title: 'iOS & Android release', - completed: false, - description: 'Spacedrive will be available on the App Store and Google Play Store.' - }, - { - title: 'Spacedrive Cloud', - completed: false, - description: - 'Sync your library to the cloud, to be accessed from anywhere (mobile & desktop apps).' - }, - { - title: "New Authentication Services", - completed: false, - description: "Support for OAuth, Apple ID, Google Sign-In, and more." - }, - { - when: '0.6 Beta', - subtext: 'Q1 2025', - title: '3rd-Party Authentication', - completed: false, - description: 'Authenticate with Spacedrive using your Google, Apple, or Github accounts.' - }, - { - title: "Peer-to-Peer Sync", - completed: false, - description: "Sync & Fetch files from your library with other devices on your local network." - }, - { - title: 'AI Search', - completed: false, - description: - 'Search the contents of your files, including images, audio and video with a deep understanding of context and content.' - }, - { - when: '0.7 Beta', - subtext: 'Q2 2025', - title: 'Third-party cloud integrations', - completed: false, - description: - 'Filesystem integrations with iCloud, Google Drive, Dropbox, OneDrive & Mega + easy API for the community to add more.' - }, - { - title: 'Column view', - completed: false, - description: 'View files in the beloved column layout with a nested inspector, with trees!' - }, - { - when: '1.0 Release', - subtext: 'Q3 2025', - title: 'Security audit', - completed: false, - description: - 'We will hire a third party security firm to audit the codebase and ensure the highest level of security.' - }, - { - title: 'Local Server Protection', - completed: false, - description: - "Protect local instances of Spacedrive's server from other clients on your network." - }, - { - when: 'The Future', - subtext: 'To be determined', - title: 'Security audit', - description: - 'We will hire a third party security firm to audit the codebase and ensure the highest level of security.' - }, - { - title: 'Extensions', - completed: false, - description: - 'Build tools on top of Spacedrive, extend functionality and integrate third party services.' - }, - { - title: 'File versioning', - completed: false, - description: - 'Automatically save versions of files when they change, with a timeline view and the ability to restore.' - }, - { - title: 'CLI', - completed: false, - description: - 'Access Spacedrive from the command line, with a rich set of commands to manage your library and devices.' - }, - { - title: 'Web portal', - completed: false, - description: - 'Access the web interface via the browser, remotely access your library and manage your devices and Spaces.' - }, - { - title: 'Spaces', - completed: false, - description: - 'Create and manage Spaces, hosted locally or on the cloud, to share with friends or publish on the web. Spaces are AI native, with a custom local language model that can converse with the user and puppeteer the Explorer view.' - }, - { - title: 'Key manager', - completed: false, - description: - 'View, mount, unmount and hide keys. Mounted keys can be used to instantly encrypt and decrypt any files on your node.' - }, - { - title: 'Advanced media analysis', - completed: false, - description: 'Transcribe audio, identify faces, video scenes and more.' - }, - { - title: 'Comments', - completed: false, - description: - 'Add comments to files and folders, with support for XY coordinates for photos and timestamp for videos.' - }, - { - title: 'File converter', - completed: false, - description: 'Convert image and video between common formats from the context menu.' - }, - ]; + { + when: 'Big Bang', + subtext: 'Q1 2022', + completed: true, + title: 'File discovery', + description: + 'Scan devices, drives and cloud accounts to build a directory of all files with metadata.' + }, + { + title: 'Preview generation', + completed: true, + description: 'Auto generate lower resolution stand-ins for image and video.' + }, + { + title: 'Statistics', + completed: true, + description: 'Total capacity, index size, preview media size, free space etc.' + }, + { + title: 'Jobs', + completed: true, + description: + 'Tasks to be performed via a queue system with multi-threaded workers, such as indexing, identifying, generating preview media and moving files. With a Job Manager interface for tracking progress, pausing and restarting jobs.' + }, + { + completed: true, + title: 'Explorer', + description: + 'Browse online/offline storage locations, view files with metadata, perform basic CRUD.' + }, + { + completed: true, + title: 'Self hosting', + description: + 'Spacedrive can be deployed as a service via Docker, behaving as just another device powering your personal cloud.' + }, + { + completed: true, + title: 'Tags', + description: + 'Define routines on custom tags to automate workflows, easily tag files individually, in bulk and automatically via rules.' + }, + { + completed: true, + title: 'Search', + description: + 'Instantly search your library, including offline locations. Use advanced filters to refine and save searches for later.' + }, + { + completed: true, + title: 'Quick view', + description: + 'View images, videos and documents in a full screen modal with nested inspector and context switcher.' + }, + { + completed: true, + title: 'Media view', + description: 'Turn any directory into a camera roll including media from subdirectories' + }, + { + completed: true, + title: 'Spacedrop', + description: 'Drop files between devices and contacts on a keybind like AirDrop.' + }, + { + when: '0.2 Alpha', + subtext: 'February 2024', + title: 'Drag & drop', + completed: true, + description: 'Drag and drop files between devices and drives.' + }, + { + title: 'Language support', + completed: true, + description: 'Support for 12+ languages, with a community-driven translation via i18n.' + }, + { + title: 'Command Palette', + completed: true, + description: 'Quickly navigate to any file or folder from anywhere in the app.' + }, + { + title: 'Resizable Sidebar', + completed: true, + description: + 'Customize the sidebar width to your liking, with a toggle to hide it completely.' + }, + { + when: '0.3 Alpha', + subtext: 'May 2024', + title: 'Media File Metadata', + description: 'View metadata for media files, for all common formats.', + completed: true + }, + { + title: 'Move to Trash', + completed: true, + description: + 'Have the option to move files and folders to the trash, instead of deleting them permanently.' + }, + { + title: 'Tag Assign Mode', + completed: true, + description: 'Assign tags to multiple files and folders at once with hotkeys.' + }, + { + title: 'Estimated time remaining for Jobs', + completed: true, + description: 'See how long a job will take to complete.' + }, + { + when: '0.4 Alpha', + subtext: 'June 2024', + title: 'Local Server Protection', + completed: true, + description: + "Protect local instances of Spacedrive's server from other clients on your network." + }, + { + title: 'Multi-device FS Actions', + completed: true, + description: + 'Support for creating, copying, moving, renaming, and deleting files and folders between devices.' + }, + { + title: 'OS Drag & Drop', + completed: true, + description: 'Drag and drop files and folders to and from the operating system.' + }, + { + title: 'New Overview Design', + description: + 'New Overview design with a focus on the most important information about your library.', + completed: true, + }, + { + when: '0.5 Beta', + subtext: 'To be determined', + title: 'Video thumbstrips', + completed: false, + description: + 'Generate and display thumbstrips for videos, with a scrubber to preview the video.' + }, + { + title: 'Spacedrive Cloud', + completed: false, + description: + 'Sync your library to the cloud, to be accessed from anywhere (mobile & desktop apps).' + }, + { + title: 'Peer-to-Peer Sync', + completed: false, + description: + 'Sync & Fetch files from your library with other devices on your local network.' + }, + { + title: 'iOS & Android release', + completed: false, + description: + 'Spacedrive will be available on the App Store and Google Play Store (TestFlight to start).' + }, + { + title: '3rd-Party Authentication', + completed: false, + description: 'Authenticate with Spacedrive using your Google, Apple, or Github accounts.' + }, + { + title: 'AI Object Detection', + completed: false, + description: 'Identify objects in images and videos assigning system labels.' + }, + { + title: 'OCR Text Extraction', + completed: false, + description: 'Extract text from images and PDFs, and documents.' + }, + { + title: 'AI Search', + completed: false, + description: + 'Search the contents of your files, including images, audio and video with a deep understanding of context and content.' + }, + { + title: 'Comments', + completed: false, + description: + 'Add comments to files and folders, with support for XY coordinates for photos and timestamp for videos.' + }, + { + when: '0.6 Beta', + subtext: 'To be determined', + title: 'Third-party cloud integrations', + completed: false, + description: + 'Filesystem integrations with iCloud, Google Drive, Dropbox, OneDrive & Mega + easy API for the community to add more.' + }, + { + title: 'Organizer', + completed: false, + description: 'Natural language file management.' + }, + { + title: 'Column view', + completed: false, + description: 'View files in the beloved column layout with a nested inspector, with trees!' + }, + { + title: 'Extensions', + completed: false, + description: + 'Build tools on top of Spacedrive, extend functionality and integrate third party services.' + }, + { + title: 'File versioning', + completed: false, + description: + 'Automatically save versions of files when they change, with a timeline view and the ability to restore.' + }, + { + title: 'CLI', + completed: false, + description: + 'Access Spacedrive from the command line, with a rich set of commands to manage your library and devices.' + }, + { + title: 'Advanced media analysis', + completed: false, + description: 'Transcribe audio, identify faces, video scenes and more.' + }, + + { + title: 'File converter', + completed: false, + description: 'Convert image and video between common formats from the context menu.' + }, + { + when: '1.0 Release', + subtext: 'To be determined', + title: 'Security audit', + completed: false, + description: + 'We will hire a third party security firm to audit the codebase and ensure the highest level of security.' + }, + { + when: 'The Future', + subtext: 'To be determined', + title: 'Web portal', + completed: false, + description: + 'Access the web interface via the browser, remotely access your library and manage your devices and Spaces.' + }, + { + title: 'Spaces', + completed: false, + description: + 'Create and manage Spaces, hosted locally or on the cloud, to share with friends or publish on the web. Spaces are AI native, with a custom local language model that can converse with the user and puppeteer the Explorer view.' + }, + { + title: 'Key manager', + completed: false, + description: + 'View, mount, unmount and hide keys. Mounted keys can be used to instantly encrypt and decrypt any files on your node.' + } +]; diff --git a/apps/landing/src/app/roadmap/page.tsx b/apps/landing/src/app/roadmap/page.tsx index 40feb61a4fb5..a81597d3db2a 100644 --- a/apps/landing/src/app/roadmap/page.tsx +++ b/apps/landing/src/app/roadmap/page.tsx @@ -16,7 +16,7 @@ export default function Page() {

- Last updated: September 19th, 2024 + Last updated: January 21st, 2025

diff --git a/apps/landing/src/app/store/page.tsx b/apps/landing/src/app/store/page.tsx deleted file mode 100644 index 21a6170a4074..000000000000 --- a/apps/landing/src/app/store/page.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import React from 'react'; - -const Page: React.FC = () => { - return

Store

; -}; - -export default Page; diff --git a/apps/landing/src/app/team/people.tsx b/apps/landing/src/app/team/people.tsx index b3bafbc1baf3..58315945177b 100644 --- a/apps/landing/src/app/team/people.tsx +++ b/apps/landing/src/app/team/people.tsx @@ -22,15 +22,15 @@ export const teamMembers: Array = [ github: 'https://github.com/fogodev' } }, - { - name: 'Ameer Al Ashhab', - location: 'Amman, Jordan', - role: 'Product Manager & TypeScript Engineer - Interface Design', - imageUrl: '/images/team/ameer.jpg', - socials: { - github: 'https://github.com/ameer2468' - } - }, + // { + // name: 'Ameer Al Ashhab', + // location: 'Amman, Jordan', + // role: 'Product Manager & TypeScript Engineer - Interface Design', + // imageUrl: '/images/team/ameer.jpg', + // socials: { + // github: 'https://github.com/ameer2468' + // } + // }, { name: 'Matheus Consoli', location: 'São Paulo, Brazil', @@ -40,36 +40,36 @@ export const teamMembers: Array = [ github: 'https://github.com/matheus-consoli' } }, - { - name: 'Vítor Vasconcellos', - location: 'Rio de Janeiro, Brazil', - role: 'Fullstack Devops Engineer', - imageUrl: '/images/team/vitor.jpg', - socials: { - github: 'https://github.com/HeavenVolkoff', - gitlab: 'https://gitlab.com/VitorVasconcellos', - twitter: 'https://x.com/vasvas10' - } - }, - { - name: 'Mihail Dounaev', - location: 'Finland', - role: 'Graphic Designer - Icons & Animations', - imageUrl: '/images/team/mihail.jpg', - socials: { - twitter: 'https://x.com/mmmintdesign', - dribbble: 'https://dribbble.com/mmmint' - } - }, - { - name: 'Matthew Yung', - location: 'Vancouver, Canada', - role: 'TypeScript Engineer - Intern', - imageUrl: '/images/team/matthew.jpg', - socials: { - website: 'https://myung03.github.io' - } - }, + // { + // name: 'Vítor Vasconcellos', + // location: 'Rio de Janeiro, Brazil', + // role: 'Fullstack Devops Engineer', + // imageUrl: '/images/team/vitor.jpg', + // socials: { + // github: 'https://github.com/HeavenVolkoff', + // gitlab: 'https://gitlab.com/VitorVasconcellos', + // twitter: 'https://x.com/vasvas10' + // } + // }, + // { + // name: 'Mihail Dounaev', + // location: 'Finland', + // role: 'Graphic Designer - Icons & Animations', + // imageUrl: '/images/team/mihail.jpg', + // socials: { + // twitter: 'https://x.com/mmmintdesign', + // dribbble: 'https://dribbble.com/mmmint' + // } + // }, + // { + // name: 'Matthew Yung', + // location: 'Vancouver, Canada', + // role: 'TypeScript Engineer - Intern', + // imageUrl: '/images/team/matthew.jpg', + // socials: { + // website: 'https://myung03.github.io' + // } + // }, { name: 'Arnab Chakraborty', location: 'New York, United States', diff --git a/apps/landing/src/app/use-cases/page.tsx b/apps/landing/src/app/use-cases/page.tsx deleted file mode 100644 index f90fa9a740a7..000000000000 --- a/apps/landing/src/app/use-cases/page.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import React from 'react'; - -interface Props { - // Define your component props here -} - -const Page: React.FC = () => { - return

Use Cases

; -}; - -export default Page; diff --git a/apps/landing/src/components/cta-button.tsx b/apps/landing/src/components/cta-button.tsx new file mode 100644 index 000000000000..69a08a488390 --- /dev/null +++ b/apps/landing/src/components/cta-button.tsx @@ -0,0 +1,48 @@ +import clsx from 'clsx'; +import Link from 'next/link'; +import { ComponentProps, ReactNode } from 'react'; + +interface CtaButtonProps extends ComponentProps<'button'> { + icon?: ReactNode; + glow?: 'lg' | 'sm' | 'none'; + href: string; + children: ReactNode; + highlighted?: boolean; +} + +export function CtaButton({ + icon, + glow = 'lg', + href, + children, + highlighted = false, + ...props +}: CtaButtonProps) { + return ( + + {icon} + + {children} + + + ); +} diff --git a/apps/landing/src/components/cta-primary-button.tsx b/apps/landing/src/components/cta-primary-button.tsx index f696ece48a7f..2ced42d39274 100644 --- a/apps/landing/src/components/cta-primary-button.tsx +++ b/apps/landing/src/components/cta-primary-button.tsx @@ -1,53 +1,22 @@ -import { ArrowCircleDown, Icon } from '@phosphor-icons/react'; +import { Icon } from '@phosphor-icons/react'; import clsx from 'clsx'; import Link from 'next/link'; import { ComponentProps, ReactNode, useId } from 'react'; -import { Platform } from '~/utils/current-platform'; -type CtaButtonProps = { - iconComponent?: Icon; +interface CtaPrimaryButtonProps extends ComponentProps<'button'> { + icon?: Icon | ReactNode; glow?: 'lg' | 'sm' | 'none'; - shrinksOnSmallScreen?: boolean; -} & ( - | { - href: string; - children: ReactNode; - } - | { - platform: Platform | null; - } -) & - ComponentProps<'button'>; + href: string; + children: ReactNode; +} export function CtaPrimaryButton({ - iconComponent: Icon = ArrowCircleDown, + icon: Icon, glow = 'lg', - shrinksOnSmallScreen = false, + href, + children, ...props -}: CtaButtonProps) { - const href = - 'href' in props - ? props.href - : `https://spacedrive.com/api/releases/desktop/stable/${props.platform?.os ?? 'linux'}/x86_64`; - const platformName = - 'platform' in props - ? props.platform?.name === 'macOS' - ? 'Mac' - : props.platform?.name - : undefined; - const children = - 'children' in props ? ( - props.children - ) : ( - <> - Download - - {' '} - for {platformName ?? 'Linux'} - - - ); - +}: CtaPrimaryButtonProps) { const id = useId(); return ( @@ -63,12 +32,16 @@ export function CtaPrimaryButton({ } )} > - - - - - - + {typeof Icon === 'function' ? ( + + + + + + + ) : ( + Icon + )} {children} diff --git a/apps/landing/src/components/cta-secondary-button.tsx b/apps/landing/src/components/cta-secondary-button.tsx index 30d779612ab8..9a49068b8ae4 100644 --- a/apps/landing/src/components/cta-secondary-button.tsx +++ b/apps/landing/src/components/cta-secondary-button.tsx @@ -1,3 +1,4 @@ +/* eslint-disable tailwindcss/no-contradicting-classname */ import { Discord } from '@sd/assets/svgs/brands'; import clsx from 'clsx'; import Link from 'next/link'; @@ -18,18 +19,29 @@ export function CtaSecondaryButton({ children = 'Chat on Discord', href = DISCORD_HREF, target = href.match(ExternalLinkRegex)?.length ? '_blank' : undefined, + disabled, ...props -}: CtaSecondaryButtonProps) { +}: CtaSecondaryButtonProps & { disabled?: boolean }) { + const sharedClasses = clsx( + props.className, + 'noise with-rounded-2px-border-images inline-flex min-w-52 flex-row items-center justify-center gap-x-2.5 overflow-hidden rounded-xl px-3 py-2 transition-all', + 'bg-[#213448]/40 [--border-image:linear-gradient(to_bottom,hsl(210_22%_37%/40%),hsl(220_7%_68%/0%)75%)]', + !disabled && 'cursor-pointer hover:brightness-110' + ); + + if (disabled) { + return ( +
+ {icon} + + {children} + +
+ ); + } + return ( - + {icon} {children} diff --git a/apps/landing/src/components/download-button.tsx b/apps/landing/src/components/download-button.tsx new file mode 100644 index 000000000000..cd9d62069e4a --- /dev/null +++ b/apps/landing/src/components/download-button.tsx @@ -0,0 +1,29 @@ +import { ArrowCircleDown } from '@phosphor-icons/react'; +import { ComponentProps } from 'react'; +import { Platform } from '~/utils/current-platform'; + +import { CtaPrimaryButton } from './cta-primary-button'; + +interface DownloadButtonProps extends Omit, 'children'> { + platform: Platform | null; + shrinksOnSmallScreen?: boolean; +} + +export function DownloadButton({ + platform, + shrinksOnSmallScreen = false, + ...props +}: DownloadButtonProps) { + const href = `https://spacedrive.com/api/releases/desktop/stable/${platform?.os ?? 'linux'}/x86_64`; + const platformName = platform?.name === 'macOS' ? 'Mac' : platform?.name; + + return ( + }> + Download + + {' '} + for {platformName ?? 'Linux'} + + + ); +} diff --git a/apps/landing/src/components/global-footer.tsx b/apps/landing/src/components/global-footer.tsx index 2bef81b6a093..31275d053249 100644 --- a/apps/landing/src/components/global-footer.tsx +++ b/apps/landing/src/components/global-footer.tsx @@ -1,21 +1,94 @@ 'use client'; +import clsx from 'clsx'; import Image from 'next/image'; +import { use, useEffect, useState } from 'react'; +import { getLatestRelease, githubFetch } from '~/app/api/github'; import companyLogoFull from '~/assets/company_full_logo.svg?url'; -import { CtaPrimaryButton } from '~/components/cta-primary-button'; -import { useCurrentPlatform } from '~/utils/current-platform'; +import { useCurrentPlatform } from '../utils/current-platform'; +import { DownloadButton } from './download-button'; import Particles from './particles'; +const versionPill = ({ state }: { state: 'Alpha' | 'Testing' }) => ( + + {state} + +); + +interface DownloadProps { + title: string; + state: 'Alpha' | 'Testing'; + version: + | 'Windows' + | { type: 'macOS'; isArm: boolean } + | 'Linux' + | 'iOS' + | 'Android' + | 'iPadOS' + | 'visionOS' + | 'Docker'; + disabled?: boolean; +} + +const Download = ({ title, state, version, disabled }: DownloadProps) => { + const getDownloadUrl = () => { + switch (version) { + case 'Windows': + return 'https://spacedrive.com/api/releases/desktop/stable/windows/x86_64'; + case 'Linux': + return 'https://spacedrive.com/api/releases/desktop/stable/linux/x86_64'; + case 'Docker': + return 'https://github.com/spacedriveapp/spacedrive/pkgs/container/spacedrive%2Fserver'; + default: + if (typeof version === 'object' && version.type === 'macOS') { + return `https://spacedrive.com/api/releases/desktop/stable/macos/${ + version.isArm ? 'aarch64' : 'x86_64' + }`; + } + return '#'; + } + }; + + const css = disabled + ? 'cursor-not-allowed text-gray-450' + : 'transition-colors hover:text-white'; + + return ( + + {title} + {disabled ? null : versionPill({ state })} + + ); +}; + export function GlobalFooter() { const currentPlatform = useCurrentPlatform(); + const [releaseTag, setReleaseTag] = useState(null); + + useEffect(() => { + async function fetchRelease() { + const release = await githubFetch(getLatestRelease); + setReleaseTag(release.tag_name); + } + + fetchRelease(); + }, []); return (
{/* Download Button */}
- +
@@ -100,7 +173,12 @@ export function GlobalFooter() {
  • - + Changelog
  • @@ -114,99 +192,59 @@ export function GlobalFooter() {

    diff --git a/apps/landing/src/components/global-nav-bar/index.tsx b/apps/landing/src/components/global-nav-bar/index.tsx index c67fe0f8fbbe..611004d5ae60 100644 --- a/apps/landing/src/components/global-nav-bar/index.tsx +++ b/apps/landing/src/components/global-nav-bar/index.tsx @@ -7,7 +7,7 @@ import Image from 'next/image'; import Link from 'next/link'; import { memo, ReactNode, useCallback, useState } from 'react'; import appFullLogo from '~/assets/app_full_logo.svg?url'; -import { CtaPrimaryButton } from '~/components/cta-primary-button'; +import { DownloadButton } from '~/components/download-button'; import '~/styles/navbar.css'; @@ -29,13 +29,14 @@ import { ExternalLinkRegex } from '~/utils/regex-external-link'; const NAVIGATION_ITEMS: { label: string; href: string; adornment?: string }[] = [ // { label: 'Explorer', href: '#' }, - // { label: 'Cloud', href: '#' }, - { label: 'Roadmap', href: '/roadmap' }, - { label: 'Team', href: '/team' }, + + { label: 'Pricing', href: '/pricing' }, // { label: 'Assistant', href: '#', adornment: 'New' }, // { label: 'Store', href: '#' }, // { label: 'Use Cases', href: '/use-cases' }, { label: 'Blog', href: '/blog' }, + { label: 'Team', href: '/team' }, + { label: 'Roadmap', href: '/roadmap' }, { label: 'Docs', href: '/docs/product/getting-started/introduction' }, { label: 'Careers', href: '/careers' } ]; @@ -111,12 +112,8 @@ const MemoizedNavBar = memo(function NavBar() {
    {/* Download Button */} -
    - +
    +
    {/* List Icon */} @@ -176,11 +173,9 @@ const MemoizedNavBar = memo(function NavBar() { )} ))} - +
    + +
    diff --git a/apps/landing/src/components/hero-image.tsx b/apps/landing/src/components/hero-image.tsx index fee89b38605a..4984ad2beda7 100644 --- a/apps/landing/src/components/hero-image.tsx +++ b/apps/landing/src/components/hero-image.tsx @@ -14,13 +14,13 @@ interface HeroImageProps { export const HeroImage: React.FC = ({ src, alt, width, height }) => { return ( - -
    + +
    -
    +
    -
    -
    + {/*
    */} + {/*
    */} (null); + + useEffect(() => { + fetch('/api/github-stats') + .then((res) => res.json()) + .then((data) => { + if (data.downloads) { + setDownloads(data.downloads); + } + }) + .catch(console.error); + }, []); + const [formattedVersion, note] = (() => { const platform = selectedPlatform ?? currentPlatform; return platform @@ -30,55 +45,21 @@ export function HomeCtaButtons({ latestVersion }: Props) { })(); return ( - <> -
    +
    +
    {currentPlatform && (() => { const { links } = currentPlatform; - return ( - // } - // text={`Download for ${currentPlatform.name}`} - // onClick={() => { - // plausible('download', { - // props: { os: currentPlatform.name } - // }); - // setSelectedPlatform(currentPlatform); - // }} - // /> - - ); + return ; })()} - - + } + > + Chat on Discord +
    - - {/* {selectedPlatform?.links && selectedPlatform.links.length > 1 && ( -
    - {selectedPlatform.links.map(({ name, arch }) => ( - { - plausible('download', { - props: { os: selectedPlatform.name + ' ' + arch } - }); - }} - className="z-5 relative !py-1 !text-sm" - /> - ))} -
    - )} */}

    {latestVersion} {formattedVersion && ( @@ -93,43 +74,13 @@ export function HomeCtaButtons({ latestVersion }: Props) { {note} )} + {downloads !== null && ( + <> + | + {new Intl.NumberFormat().format(downloads)} Downloads + + )}

    - {/* Platform icons */} - {/*
    - {Object.values(platforms).map((platform, i) => { - return ( - - { - if (platform.name === 'Docker') { - setDockerDialogOpen(true); - return; - } - if (platform.links) { - if (platform.links.length === 1) { - plausible('download', { - props: { os: platform.name } - }); - } else { - setSelectedPlatform(platform); - } - } - }} - /> - - ); - })} -
    */} - {/* Docker Dialog */} - {/* */} - +
    ); } diff --git a/apps/landing/src/components/platform-icons.tsx b/apps/landing/src/components/platform-icons.tsx index 1d6845680a8e..ffad52e59393 100644 --- a/apps/landing/src/components/platform-icons.tsx +++ b/apps/landing/src/components/platform-icons.tsx @@ -28,7 +28,7 @@ export function PlatformIcons() { > @@ -39,7 +39,7 @@ export function PlatformIcons() { > @@ -47,18 +47,18 @@ export function PlatformIcons() { {/* Docker */}
    diff --git a/apps/landing/src/utils/contentlayer.ts b/apps/landing/src/utils/contentlayer.ts index 42f453bc2b7b..f9404240ad64 100644 --- a/apps/landing/src/utils/contentlayer.ts +++ b/apps/landing/src/utils/contentlayer.ts @@ -19,12 +19,16 @@ type DocsSection = { export type DocsNavigation = DocsSection[]; export function getDocsNavigation(docs: Doc[]): DocsNavigation { + if (!Array.isArray(docs)) return []; + const coreDocs = allCoreContent(docs); + if (!coreDocs.length) return []; const docsNavigation: DocsNavigation = []; const docsBySection = coreDocs.reduce( (acc, doc) => { + if (!doc?.section) return acc; const section = doc.section; acc[section] = acc[section] || []; acc[section].push(doc); @@ -33,12 +37,13 @@ export function getDocsNavigation(docs: Doc[]): DocsNavigation { {} as Record[]> ); - // console.log('docsBySection', docsBySection); - for (const section in docsBySection) { + if (!docsBySection[section]?.length) continue; + const docs = docsBySection[section]; const docsByCategory = docs.reduce( (acc, doc) => { + if (!doc?.category) return acc; const category = doc.category; acc[category] = acc[category] || []; acc[category].push(doc); @@ -47,36 +52,24 @@ export function getDocsNavigation(docs: Doc[]): DocsNavigation { {} as Record[]> ); - // console.log('docsByCategory', docsByCategory); - - const sectionNavigation: DocsCategory[] = []; - for (const category in docsByCategory) { - const docs = docsByCategory[category]; - docs.sort((a, b) => a.index - b.index); - const categoryIndex = docs[0].index; - sectionNavigation.push({ + const categories = Object.entries(docsByCategory) + .filter(([_, docs]) => Array.isArray(docs) && docs.length > 0) + .map(([category, docs]) => ({ title: toTitleCase(category), slug: category, - categoryIndex, - docs + categoryIndex: docs[0]?.index ?? 0, + docs: docs.sort((a, b) => (a.index ?? 0) - (b.index ?? 0)) + })) + .sort((a, b) => a.categoryIndex - b.categoryIndex); + + if (categories.length > 0) { + docsNavigation.push({ + slug: section, + categories }); } - - sectionNavigation.sort((a, b) => a.categoryIndex - b.categoryIndex); - - docsNavigation.push({ - slug: section, - categories: sectionNavigation - }); } - // Sort the sections using the order on iconConfig - docsNavigation.sort((a, b) => { - const aIndex = Object.keys(iconConfig).indexOf(a.slug); - const bIndex = Object.keys(iconConfig).indexOf(b.slug); - return aIndex - bIndex; - }); - return docsNavigation; } @@ -84,29 +77,27 @@ export function getDocsNavigation(docs: Doc[]): DocsNavigation { export const iconConfig: Record = { product: Sparkle, developers: Cube, - company: Circle, - changelog: Star + company: Star, + changelog: Circle }; export function getSortedDocs(docs: Doc[]) { - return docs.sort((a, b) => a.index - b.index); + return docs.sort((a, b) => (a.index ?? 0) - (b.index ?? 0)); } -// This function is used to omit the fields that are not needed in the sidebar navigation -export const omit = (obj: Obj, keys: Keys[]): Omit => { - const result = Object.assign({}, obj); - keys.forEach((key) => { - delete result[key]; - }); +function omit(obj: Obj, keys: Keys[]): Omit { + const result = { ...obj }; + keys.forEach((key) => delete result[key]); return result; -}; +} -export type CoreContent = Omit; +type CoreContent = Omit; -export function coreContent(content: T) { +function coreContent(content: T): CoreContent { return omit(content, ['body', '_raw', '_id']); } -export function allCoreContent(contents: T[]) { +function allCoreContent(contents: T[]) { + if (!Array.isArray(contents)) return []; return contents.map((c) => coreContent(c)); } diff --git a/apps/landing/tailwind.config.js b/apps/landing/tailwind.config.js index 306d40eb3c49..a8fef80eef22 100644 --- a/apps/landing/tailwind.config.js +++ b/apps/landing/tailwind.config.js @@ -1 +1,57 @@ -module.exports = require('@sd/ui/tailwind')('landing'); +const base = require('@sd/ui/tailwind')('landing'); + +/** @type {import('tailwindcss').Config} */ +module.exports = { + ...base, + theme: { + ...base.theme, + extend: { + ...base.theme?.extend, + animation: { + ...base.theme?.extend?.animation, + 'scroll': 'scroll 80s linear infinite', + 'handle-rotate': 'handle-rotate 2s ease forwards', + 'digit-reveal': 'digit-reveal 1s cubic-bezier(0.4, 0, 0.2, 1) forwards' + }, + keyframes: { + ...base.theme?.extend?.keyframes, + 'scroll': { + '0%': { transform: 'translateX(0)' }, + '100%': { transform: 'translateX(-50%)' } + }, + 'handle-rotate': { + '0%': { + transform: 'rotate(0deg)', + animationTimingFunction: 'cubic-bezier(0.3, 0, 0.3, 1)' + }, + '65%': { + transform: 'rotate(330deg)', + animationTimingFunction: 'cubic-bezier(0, 0, 0.2, 1)' + }, + '75%': { + transform: 'rotate(330deg)', + animationTimingFunction: 'cubic-bezier(0.3, 0, 0, 1)' + }, + '100%': { transform: 'rotate(417deg)' } + }, + 'digit-reveal': { + '0%': { + opacity: '0', + transform: 'scale(1.2)' + }, + '50%': { + opacity: '0.4', + transform: 'scale(1.1)' + }, + '100%': { + opacity: '0.2', + transform: 'scale(1)' + } + } + }, + gridTemplateColumns: { + 20: 'repeat(20, minmax(0, 1fr))' + } + } + } +}; diff --git a/core/Cargo.toml b/core/Cargo.toml index 967553ab50e8..572cad4dd84f 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "sd-core" -version = "0.5.0" +version = "0.4.3" authors = ["Spacedrive Technology Inc "] description = "Virtual distributed filesystem engine that powers Spacedrive." @@ -104,6 +104,7 @@ tar = "0.4.41" tower-service = "0.3.2" tracing-appender = "0.2.3" whoami = "1.5.2" +once_cell = "1.19.0" [dependencies.tokio] features = ["io-util", "macros", "process", "rt-multi-thread", "sync", "time"] diff --git a/core/crates/cloud-services/src/client.rs b/core/crates/cloud-services/src/client.rs index 13aee00dfa9c..c37274b61e15 100644 --- a/core/crates/cloud-services/src/client.rs +++ b/core/crates/cloud-services/src/client.rs @@ -64,7 +64,7 @@ impl CloudServices { cloud_p2p_dns_origin_name: String, domain_name: String, ) -> Result { - let http_client_builder = reqwest::Client::builder().timeout(Duration::from_secs(3)); + let mut http_client_builder = reqwest::Client::builder().timeout(Duration::from_secs(3)); #[cfg(not(debug_assertions))] { diff --git a/core/crates/cloud-services/src/lib.rs b/core/crates/cloud-services/src/lib.rs index f088426a70d1..064634faca3a 100644 --- a/core/crates/cloud-services/src/lib.rs +++ b/core/crates/cloud-services/src/lib.rs @@ -51,5 +51,5 @@ pub use sync::{ pub use quic_rpc::transport::quinn::QuinnConnector; // Export URL for the auth server -// pub const AUTH_SERVER_URL: &str = "https://auth.spacedrive.com"; -pub const AUTH_SERVER_URL: &str = "http://localhost:9420"; +pub const AUTH_SERVER_URL: &str = "https://auth.spacedrive.com"; +// pub const AUTH_SERVER_URL: &str = "http://localhost:9420"; diff --git a/core/src/api/keys.rs b/core/src/api/keys.rs index 4504ce8b66e5..a7e2afd6d4b9 100644 --- a/core/src/api/keys.rs +++ b/core/src/api/keys.rs @@ -1,5 +1,6 @@ use super::utils::library; use super::{Ctx, SanitizedNodeConfig, R}; +use once_cell::sync::Lazy; use rspc::{alpha::AlphaRouter, ErrorCode}; use sd_crypto::cookie::CookieCipher; use serde_json::{json, Map, Value}; @@ -9,6 +10,8 @@ use tokio::io::AsyncWriteExt; use tokio::sync::RwLock; use tracing::{debug, error}; +static CACHE: Lazy>> = Lazy::new(|| RwLock::new(None)); + #[derive(Clone)] struct CipherCache { uuid: String, @@ -91,31 +94,31 @@ async fn write_file(path: &Path, data: &[u8]) -> Result<(), rspc::Error> { }) } -fn sanitize_path(base_dir: &Path, path: &Path) -> Result { - let abs_base = base_dir.canonicalize().map_err(|e| { - error!("Failed to canonicalize base directory: {:?}", e.to_string()); - rspc::Error::new( - ErrorCode::InternalServerError, - "Failed to canonicalize base directory".to_string(), - ) - })?; - let abs_path = abs_base.join(path).canonicalize().map_err(|e| { - error!("Failed to canonicalize path: {:?}", e.to_string()); - rspc::Error::new( - ErrorCode::InternalServerError, - "Failed to canonicalize path".to_string(), - ) - })?; - if abs_path.starts_with(&abs_base) { - Ok(abs_path) - } else { - error!("Path injection attempt detected: {:?}", abs_path); - Err(rspc::Error::new( - ErrorCode::InternalServerError, - "Invalid path".to_string(), - )) - } -} +// fn sanitize_path(base_dir: &Path, path: &Path) -> Result { +// let abs_base = base_dir.canonicalize().map_err(|e| { +// error!("Failed to canonicalize base directory: {:?}", e.to_string()); +// rspc::Error::new( +// ErrorCode::InternalServerError, +// "Failed to canonicalize base directory".to_string(), +// ) +// })?; +// let abs_path = abs_base.join(path).canonicalize().map_err(|e| { +// error!("Failed to canonicalize path: {:?}", e.to_string()); +// rspc::Error::new( +// ErrorCode::InternalServerError, +// "Failed to canonicalize path".to_string(), +// ) +// })?; +// if abs_path.starts_with(&abs_base) { +// Ok(abs_path) +// } else { +// error!("Path injection attempt detected: {:?}", abs_path); +// Err(rspc::Error::new( +// ErrorCode::InternalServerError, +// "Invalid path".to_string(), +// )) +// } +// } pub(crate) fn mount() -> AlphaRouter { let cipher_cache = Arc::new(RwLock::new(None)); @@ -126,8 +129,15 @@ pub(crate) fn mount() -> AlphaRouter { R.query(move |node, _: ()| { let cipher_cache = cipher_cache.clone(); async move { + let cache_guard = CACHE.read().await; + if let Some(cached_data) = cache_guard.clone().as_ref() { + debug!("Returning cached data"); + return Ok(cached_data.clone()); + } + let base_dir = node.config.data_directory(); - let path = sanitize_path(&base_dir, Path::new(".sdks"))?; + // let path = sanitize_path(&base_dir, Path::new(".sdks"))?; + let path = base_dir.join(".sdks"); let data = read_file(&path).await?; let cipher = get_cipher(&node, cipher_cache).await?; @@ -169,7 +179,8 @@ pub(crate) fn mount() -> AlphaRouter { let cipher_cache = cipher_cache.clone(); async move { let base_dir = node.config.data_directory(); - let path = sanitize_path(&base_dir, Path::new(".sdks"))?; + // let path = sanitize_path(&base_dir, Path::new(".sdks"))?; + let path = base_dir.join(".sdks"); // Read and decrypt existing data if it exists let existing_decrypted = if let Ok(existing_data) = read_file(&path).await { @@ -217,6 +228,10 @@ pub(crate) fn mount() -> AlphaRouter { let en_data = CookieCipher::base64_encode(&en_data); write_file(&path, en_data.as_bytes()).await?; + let mut cache_guard = CACHE.write().await; + *cache_guard = Some(args.clone()); + debug!("Written to read cache"); + debug!("Saved data to {:?}", path); Ok(()) } diff --git a/core/src/api/libraries.rs b/core/src/api/libraries.rs index 76c4a4301827..13d7e698ee95 100644 --- a/core/src/api/libraries.rs +++ b/core/src/api/libraries.rs @@ -1,7 +1,7 @@ use crate::{ api::CoreEvent, invalidate_query, - library::{Library, LibraryConfig, LibraryName}, + library::{update_library_statistics, Library, LibraryConfig, LibraryName}, location::{scan_location, LocationCreateArgs, ScanState}, util::MaybeUndefined, Node, @@ -132,23 +132,27 @@ pub(crate) fn mount() -> AlphaRouter { } R.with2(library()) .query(|(node, library), _: ()| async move { + debug!("Getting statistics for library"); let statistics = library .db .statistics() .find_unique(statistics::id::equals(1)) .exec() .await?; + debug!(?statistics, "Got statistics for library"); match STATISTICS_UPDATERS.lock().await.entry(library.id) { Entry::Occupied(entry) => { if entry.get().send(Instant::now()).await.is_err() { error!("Failed to send statistics update request;"); } + debug!("Sent statistics update request;"); } Entry::Vacant(entry) => { let (tx, rx) = chan::bounded(1); entry.insert(tx); + debug!("Spawning statistics updater loop;"); spawn(update_statistics_loop(node, library, rx)); } } @@ -644,13 +648,13 @@ async fn update_statistics_loop( while let Some(msg) = msg_stream.next().await { match msg { Message::Tick => { - // if last_received_at.elapsed() < FIVE_MINUTES { - // if let Err(e) = update_library_statistics(&node, &library).await { - // error!(?e, "Failed to update library statistics;"); - // } else { - // invalidate_query!(&library, "library.statistics"); - // } - // } + if last_received_at.elapsed() < FIVE_MINUTES { + if let Err(e) = update_library_statistics(&node, &library).await { + error!(?e, "Failed to update library statistics;"); + } else { + invalidate_query!(&library, "library.statistics"); + } + } } Message::Requested(instant) => { if instant - last_received_at > TWO_MINUTES { diff --git a/core/src/lib.rs b/core/src/lib.rs index 419b395f631b..deb991e4d6a3 100644 --- a/core/src/lib.rs +++ b/core/src/lib.rs @@ -142,9 +142,9 @@ impl Node { ( "https://auth.spacedrive.com/cloud-api-address".to_string(), "https://relay.spacedrive.com/".to_string(), - "irohdns.spacedrive.com".to_string(), - "irohdns.spacedrive.com/pkarr".to_string(), - "api.spacedrive.com".to_string(), + "https://irohdns.spacedrive.com".to_string(), + "https://irohdns.spacedrive.com/pkarr".to_string(), + "https://cloud.spacedrive.com".to_string(), ) } }; @@ -196,6 +196,21 @@ impl Node { init_data.apply(&node.libraries, &node).await?; } + // Create the .sdks file if it doesn't exist + let temp_data_dir_clone = data_dir.to_path_buf(); + let data_directory = temp_data_dir_clone + .parent() + .expect("Config path must have a parent directory"); + let sdks_file = data_directory.join(".sdks"); + if !sdks_file.exists() { + fs::write(&sdks_file, b"") + .await + .map_err(|e| { + FileIOError::from((sdks_file.clone(), e, "Failed to create .sdks file")) + }) + .map_err(|e| NodeError::FileIO(e))?; + } + let router = api::mount(); // Be REALLY careful about ordering here or you'll get unreliable deadlock's! @@ -417,4 +432,6 @@ pub enum NodeError { Crypto(#[from] sd_crypto::Error), #[error(transparent)] Volume(#[from] volume::VolumeError), + #[error(transparent)] + FileIO(#[from] FileIOError), } diff --git a/core/src/library/manager/error.rs b/core/src/library/manager/error.rs index 4fc01dd4e7fa..b0d4e1535407 100644 --- a/core/src/library/manager/error.rs +++ b/core/src/library/manager/error.rs @@ -1,4 +1,4 @@ -use crate::{library::LibraryConfigError, location::LocationManagerError}; +use crate::{library::LibraryConfigError, location::LocationManagerError, volume}; use sd_core_indexer_rules::seed::SeederError; use sd_core_sync::DevicePubId; @@ -41,6 +41,8 @@ pub enum LibraryManagerError { CurrentDeviceNotFound(DevicePubId), #[error("missing-field: {0}")] MissingField(#[from] MissingFieldError), + #[error("Error in volumes: {0}")] + VolumeError(#[from] volume::VolumeError), #[error(transparent)] FileIO(#[from] FileIOError), diff --git a/core/src/library/statistics.rs b/core/src/library/statistics.rs index 9b1d6c085fa9..07807673816a 100644 --- a/core/src/library/statistics.rs +++ b/core/src/library/statistics.rs @@ -1,110 +1,118 @@ -// use crate::{ -// api::utils::get_size, invalidate_query, library::Library, volume::os::get_volumes, Node, -// }; - -// use sd_prisma::prisma::{statistics, storage_statistics}; -// use sd_utils::db::size_in_bytes_from_db; - -// use chrono::Utc; -// use tracing::{error, info}; - -// use super::LibraryManagerError; - -// pub async fn update_library_statistics( -// node: &Node, -// library: &Library, -// ) -> Result { -// let (mut total_capacity, mut available_capacity) = library -// .db -// .storage_statistics() -// .find_many(vec![]) -// .select(storage_statistics::select!({ total_capacity available_capacity })) -// .exec() -// .await? -// .into_iter() -// .fold((0, 0), |(mut total, mut available), stat| { -// total += stat.total_capacity as u64; -// available += stat.available_capacity as u64; -// (total, available) -// }); - -// if total_capacity == 0 && available_capacity == 0 { -// // Failed to fetch storage statistics from database, so we compute from local volumes -// let volumes = get_volumes().await; - -// let mut local_total_capacity: u64 = 0; -// let mut local_available_capacity: u64 = 0; -// for volume in volumes { -// local_total_capacity += volume.total_bytes_capacity; -// local_available_capacity += volume.total_bytes_available; -// } - -// total_capacity = local_total_capacity; -// available_capacity = local_available_capacity; -// } - -// let total_bytes_used = total_capacity - available_capacity; - -// let library_db_size = get_size( -// node.config -// .data_directory() -// .join("libraries") -// .join(format!("{}.db", library.id)), -// ) -// .await -// .unwrap_or(0); - -// let total_library_bytes = library -// .db -// .location() -// .find_many(vec![]) -// .exec() -// .await -// .unwrap_or_else(|e| { -// error!(?e, "Failed to get locations;"); -// vec![] -// }) -// .into_iter() -// .map(|location| { -// location -// .size_in_bytes -// .map(|size| size_in_bytes_from_db(&size)) -// .unwrap_or(0) -// }) -// .sum::(); - -// let thumbnail_folder_size = get_size(node.config.data_directory().join("thumbnails")) -// .await -// .unwrap_or(0); - -// use statistics::*; -// let params = vec![ -// id::set(1), // Each library is a database so only one of these ever exists -// date_captured::set(Utc::now().into()), -// total_object_count::set(0), -// library_db_size::set(library_db_size.to_string()), -// total_library_bytes::set(total_library_bytes.to_string()), -// total_local_bytes_used::set(total_bytes_used.to_string()), -// total_local_bytes_capacity::set(total_capacity.to_string()), -// total_local_bytes_free::set(available_capacity.to_string()), -// total_library_preview_media_bytes::set(thumbnail_folder_size.to_string()), -// ]; - -// let stats = library -// .db -// .statistics() -// .upsert( -// // Each library is a database so only one of these ever exists -// statistics::id::equals(1), -// statistics::create(params.clone()), -// params, -// ) -// .exec() -// .await?; - -// info!(?stats, "Updated library statistics;"); - -// invalidate_query!(&library, "library.statistics"); - -// Ok(stats) -// } +use crate::{api::utils::get_size, invalidate_query, library::Library, Node}; + +use sd_prisma::prisma::{statistics, volume}; +use sd_utils::db::size_in_bytes_from_db; + +use chrono::Utc; +use tracing::{debug, error, info}; + +use super::LibraryManagerError; + +pub async fn update_library_statistics( + node: &Node, + library: &Library, +) -> Result { + let (mut total_capacity, mut available_capacity) = library + .db + .volume() + .find_many(vec![]) + .select(volume::select!({ total_bytes_capacity total_bytes_available })) + .exec() + .await? + .into_iter() + .fold((0, 0), |(mut total, mut available), vol| { + total += vol + .total_bytes_capacity + .map(|c| c.parse::().unwrap_or(0)) + .unwrap_or(0); + available += vol + .total_bytes_available + .map(|a| a.parse::().unwrap_or(0)) + .unwrap_or(0); + (total, available) + }); + debug!( + ?total_capacity, + ?available_capacity, + "Fetched volume statistics;" + ); + + if total_capacity == 0 && available_capacity == 0 { + // Failed to fetch volume statistics from database, so we compute from local volumes + let volumes = crate::volume::get_volumes().await?; + + let mut local_total_capacity: u64 = 0; + let mut local_available_capacity: u64 = 0; + for volume in volumes { + local_total_capacity += volume.total_bytes_capacity; + local_available_capacity += volume.total_bytes_available; + } + + total_capacity = local_total_capacity; + available_capacity = local_available_capacity; + } + + let total_bytes_used = total_capacity - available_capacity; + + let library_db_size = get_size( + node.config + .data_directory() + .join("libraries") + .join(format!("{}.db", library.id)), + ) + .await + .unwrap_or(0); + + let total_library_bytes = library + .db + .location() + .find_many(vec![]) + .exec() + .await + .unwrap_or_else(|e| { + error!(?e, "Failed to get locations;"); + vec![] + }) + .into_iter() + .map(|location| { + location + .size_in_bytes + .map(|size| size_in_bytes_from_db(&size)) + .unwrap_or(0) + }) + .sum::(); + + let thumbnail_folder_size = get_size(node.config.data_directory().join("thumbnails")) + .await + .unwrap_or(0); + + use statistics::*; + let params = vec![ + id::set(1), // Each library is a database so only one of these ever exists + date_captured::set(Utc::now().into()), + total_object_count::set(0), + library_db_size::set(library_db_size.to_string()), + total_library_bytes::set(total_library_bytes.to_string()), + total_local_bytes_used::set(total_bytes_used.to_string()), + total_local_bytes_capacity::set(total_capacity.to_string()), + total_local_bytes_free::set(available_capacity.to_string()), + total_library_preview_media_bytes::set(thumbnail_folder_size.to_string()), + ]; + + let stats = library + .db + .statistics() + .upsert( + statistics::id::equals(1), + statistics::create(params.clone()), + params, + ) + .exec() + .await?; + + info!(?stats, "Updated library statistics;"); + + invalidate_query!(&library, "library.statistics"); + + Ok(stats) +} diff --git a/core/src/volume/actor.rs b/core/src/volume/actor.rs index 60fb456ab0db..d1fa062a1edd 100644 --- a/core/src/volume/actor.rs +++ b/core/src/volume/actor.rs @@ -81,8 +81,10 @@ impl VolumeManagerActor { let (event_tx, _) = broadcast::channel(DEFAULT_CHANNEL_SIZE); let manager = Volumes::new(message_tx, event_tx.clone()); + debug!("Volume manager event_tx initialized"); let state = VolumeManagerState::new(ctx.device_id.clone().into(), options, event_tx.clone()); + debug!("Volume manager state initialized"); let actor = VolumeManagerActor { state: Arc::new(RwLock::new(state)), @@ -139,8 +141,10 @@ impl VolumeManagerActor { .subscribe(move |event| { let self_arc_inner = Arc::clone(&self_arc_subscribe); async move { + debug!("Received library event: {:?}", event); match event { LibraryManagerEvent::Load(library) => { + debug!("Initializing volume manager for library"); if let Err(e) = { let mut actor = self_arc_inner.lock().await; @@ -276,7 +280,6 @@ impl VolumeManagerActor { let device_id = DevicePubId::from(self.ctx.device_id.clone()); let state = self.state.clone(); let state = state.write().await; - let mut registry = state.registry.write().await; let db_device = library .db @@ -307,6 +310,7 @@ impl VolumeManagerActor { { // Update existing volume let updated = Volume::merge_with_db(volume, db_volume); + let mut registry = state.registry.write().await; registry.register_volume(updated.clone()); } else if volume.mount_type == MountType::System { // Create new system volume in database diff --git a/core/src/volume/mod.rs b/core/src/volume/mod.rs index 1f7e11861dce..7cfe3cc2e7a2 100644 --- a/core/src/volume/mod.rs +++ b/core/src/volume/mod.rs @@ -56,6 +56,8 @@ impl VolumeExt for Volume { pub use os::linux::get_volumes; #[cfg(target_os = "macos")] pub use os::macos::get_volumes; +#[cfg(any(target_os = "ios", target_os = "android"))] +pub use os::mobile::get_volumes; #[cfg(target_os = "windows")] pub use os::windows::get_volumes; diff --git a/core/src/volume/os.rs b/core/src/volume/os.rs index 0658bce94974..fe5af17f5d57 100644 --- a/core/src/volume/os.rs +++ b/core/src/volume/os.rs @@ -7,6 +7,8 @@ use tokio::task; pub use self::linux::get_volumes; #[cfg(target_os = "macos")] pub use self::macos::get_volumes; +#[cfg(any(target_os = "ios", target_os = "android"))] +pub use self::mobile::get_volumes; #[cfg(target_os = "windows")] pub use self::windows::get_volumes; @@ -15,6 +17,8 @@ pub use self::windows::get_volumes; pub use self::linux::unmount_volume; #[cfg(target_os = "macos")] pub use self::macos::unmount_volume; +#[cfg(any(target_os = "ios", target_os = "android"))] +pub use self::mobile::unmount_volume; #[cfg(target_os = "windows")] pub use self::windows::unmount_volume; @@ -469,3 +473,19 @@ pub mod windows { } } } + +#[cfg(any(target_os = "ios", target_os = "android"))] +pub mod mobile { + use super::*; + + pub async fn get_volumes() -> Result, VolumeError> { + // Mobile platforms don't have mountable volumes + Ok(Vec::new()) + } + + pub async fn unmount_volume(_path: &std::path::Path) -> Result<(), VolumeError> { + Err(VolumeError::Platform( + "Volumes not supported on mobile platforms".to_string(), + )) + } +} diff --git a/docs/company/about/integrity.mdx b/docs/company/about/integrity.mdx index 88723ed370c2..6e4a4b8141af 100644 --- a/docs/company/about/integrity.mdx +++ b/docs/company/about/integrity.mdx @@ -8,7 +8,7 @@ To preserve the essence and foundational principles of Spacedrive, we establish 2. **Local-First and AI Empowerment:** Spacedrive champions a local-first approach, prioritizing the privacy and speed of local computations and storage. Complementing this, Spacedrive commits to leveraging local AI models, enhancing user experience and functionality without compromising privacy or autonomy. -3. **Leadership and Continuity:** In unforeseen circumstances where Jamie Pine cannot continue his role, Joseph Jacks will assume operational leadership or designate a new CEO. This ensures continuity, preserving the vision and operational excellence of Spacedrive. +3. **Leadership and Continuity:** In unforeseen circumstances where Jamie Pine cannot continue his role, the top 5 contributors active at that time will assume operational leadership as a or designate a new CEO. This ensures continuity, preserving the vision and operational excellence of Spacedrive. 4. **Mission-Centric Development:** Spacedrive is unwavering in its mission to deliver unparalleled software and hardware solutions for personal data preservation and protection. This guiding principle informs all strategic decisions and innovations. diff --git a/interface/app/$libraryId/Layout/Sidebar/index.tsx b/interface/app/$libraryId/Layout/Sidebar/index.tsx index 1805cc23916b..0d946ebdc7ee 100644 --- a/interface/app/$libraryId/Layout/Sidebar/index.tsx +++ b/interface/app/$libraryId/Layout/Sidebar/index.tsx @@ -1,5 +1,6 @@ import { LibraryContextProvider, useClientContext } from '@sd/client'; +import Categories from './sections/Categories'; import Debug from './sections/Debug'; // sections import Devices from './sections/Devices'; @@ -26,9 +27,10 @@ export default function Sidebar() { {library && ( - - + {/* */} + + )} diff --git a/interface/app/$libraryId/Layout/Sidebar/sections/Categories/index.tsx b/interface/app/$libraryId/Layout/Sidebar/sections/Categories/index.tsx new file mode 100644 index 000000000000..f8210db56e16 --- /dev/null +++ b/interface/app/$libraryId/Layout/Sidebar/sections/Categories/index.tsx @@ -0,0 +1,69 @@ +import { + Aperture, + Cube, + CubeFocus, + FrameCorners, + Image, + MonitorPlay, + Person, + Record +} from '@phosphor-icons/react'; +import { HardwareModel, usePeers } from '@sd/client'; +import { Icon } from '~/components'; +import { useLocale } from '~/hooks'; +import { hardwareModelToIcon } from '~/util/hardware'; + +import SidebarLink from '../../SidebarLayout/Link'; +import Section from '../../SidebarLayout/Section'; +import { SeeMore } from '../../SidebarLayout/SeeMore'; + +export default function CategoriesSection() { + const { t } = useLocale(); + + return ( +
    + + + + Screenshots + + + + Selfies + + + + Videos + + + + Live Photos + + + + Screen Recordings + + + + Spacial + + + + 3D Objects + + + + RAW + + {/* + + RAW + */} + +
    + ); +} diff --git a/interface/app/$libraryId/Layout/Sidebar/sections/Locations/index.tsx b/interface/app/$libraryId/Layout/Sidebar/sections/Locations/index.tsx index 703eddae09ad..b77366c1f038 100644 --- a/interface/app/$libraryId/Layout/Sidebar/sections/Locations/index.tsx +++ b/interface/app/$libraryId/Layout/Sidebar/sections/Locations/index.tsx @@ -1,8 +1,11 @@ +import { CaretDown } from '@phosphor-icons/react'; import { keepPreviousData } from '@tanstack/react-query'; import clsx from 'clsx'; +import { useState } from 'react'; import { Link, useMatch } from 'react-router-dom'; import { arraysEqual, + Device, Location as LocationType, useLibraryQuery, useOnlineLocations @@ -12,6 +15,7 @@ import { useExplorerSearchParams } from '~/app/$libraryId/Explorer/util'; import { AddLocationButton } from '~/app/$libraryId/settings/library/locations/AddLocationButton'; import { Icon, SubtleButton } from '~/components'; import { useLocale } from '~/hooks'; +import { hardwareModelToIcon } from '~/util/hardware'; import SidebarLink from '../../SidebarLayout/Link'; import Section from '../../SidebarLayout/Section'; @@ -25,8 +29,27 @@ export default function Locations() { const locations = locationsQuery.data; const onlineLocations = useOnlineLocations(); + const { data: devices } = useLibraryQuery(['devices.list'], { + placeholderData: keepPreviousData + }); + const { t } = useLocale(); + // Group locations by device + const locationsByDevice = locations?.reduce( + (acc, location) => { + const deviceId = location.device_id; + if (!deviceId) return acc; + + if (!acc[deviceId]) { + acc[deviceId] = []; + } + acc[deviceId].push(location); + return acc; + }, + {} as Record + ); + return (
    - {locations?.map((location) => ( - arraysEqual(location.pub_id, l))} + {devices?.map((device) => ( + ))} @@ -50,6 +74,55 @@ export default function Locations() { ); } +const DeviceLocations = ({ + device, + locations, + onlineLocations +}: { + device: Device; + locations: LocationType[]; + onlineLocations: number[][]; +}) => { + const [isExpanded, setIsExpanded] = useState(true); + + if (locations.length === 0) return null; + + return ( +
    + + {isExpanded && ( +
    + {locations.map((location) => ( + arraysEqual(location.pub_id, l))} + /> + ))} +
    + )} +
    + ); +}; + const Location = ({ location, online }: { location: LocationType; online: boolean }) => { const locationId = useMatch('/:libraryId/location/:locationId')?.params.locationId; const [{ path }] = useExplorerSearchParams(); diff --git a/interface/app/$libraryId/overview/index.tsx b/interface/app/$libraryId/overview/index.tsx index 2f4c6143d5d0..07e664781949 100644 --- a/interface/app/$libraryId/overview/index.tsx +++ b/interface/app/$libraryId/overview/index.tsx @@ -48,6 +48,7 @@ export const Component = () => { }, []); const { data: node } = useBridgeQuery(['nodeState']); const stats = useLibraryQuery(['library.statistics']); + console.log('stats', stats.data); const search = useSearchFromSearchParams({ defaultTarget: 'paths' }); @@ -57,9 +58,7 @@ export const Component = () => { - - {t('library_overview')} - + {t('library_overview')}
    } center={} @@ -79,9 +78,7 @@ export const Component = () => { @@ -159,7 +170,10 @@ export function FilterArg({ arg, onDelete }: { arg: SearchFilterArgs; onDelete?: {activeOptions.length > 1 ? `${activeOptions.length} ${t(`${filter.translationKey}`, { count: activeOptions.length })}` - : activeOptions[0]?.name} + : readableDate( + activeOptions[0]?.name ?? '', + activeOptions[0]?.value + ) || activeOptions[0]?.name} )} diff --git a/interface/app/$libraryId/search/Filters/components/FilterOptionList.tsx b/interface/app/$libraryId/search/Filters/components/FilterOptionList.tsx index 7750e19727fb..aff517a629d9 100644 --- a/interface/app/$libraryId/search/Filters/components/FilterOptionList.tsx +++ b/interface/app/$libraryId/search/Filters/components/FilterOptionList.tsx @@ -39,7 +39,7 @@ export const FilterOptionList = ({ select: value }); }} - key={option.value} + key={option.name} icon={option.icon} > {option.name} diff --git a/interface/app/$libraryId/search/Filters/factories/createDateRangeFilter.ts b/interface/app/$libraryId/search/Filters/factories/createDateRangeFilter.ts index 0d74f0356ba5..4cda6353d0ce 100644 --- a/interface/app/$libraryId/search/Filters/factories/createDateRangeFilter.ts +++ b/interface/app/$libraryId/search/Filters/factories/createDateRangeFilter.ts @@ -60,7 +60,7 @@ export function createDateRangeFilter( applyAdd: (data, option) => { if ('from' in data) { - data.from = option.value; + data.from = option.value.from || option.value; } else if ('to' in data) { data.to = option.value; } else { diff --git a/interface/app/$libraryId/search/Filters/store.ts b/interface/app/$libraryId/search/Filters/store.ts index d7281647fedc..caa1e2f8df32 100644 --- a/interface/app/$libraryId/search/Filters/store.ts +++ b/interface/app/$libraryId/search/Filters/store.ts @@ -28,8 +28,23 @@ const filterOptionStore = proxy({ }); // Generate a unique key for a filter option -export const getKey = (filter: FilterOptionWithType) => - `${filter.type}-${filter.name}-${filter.value}`; +export const getKey = (filter: FilterOptionWithType) => { + const valueToString = (val: any) => { + if (typeof val === 'string') return val; + if (typeof val === 'number') return val.toString(); + return JSON.stringify(val); + }; + + // If the filter value is a range, we need to send a different key with the following setup: + if (filter.value.from !== undefined) { + if (filter.type === 'Date Created') { + return `${filter.type}-custom-date-range-${filter.value.from}`; + } + return `${filter.type}-${filter.value.from}-${filter.value.from}`; + } + + return `${filter.type}-${filter.name}-${valueToString(filter.value)}`; +}; // Hook to register filter options into the local store export const useRegisterFilterOptions = ( diff --git a/interface/app/$libraryId/settings/Sidebar.tsx b/interface/app/$libraryId/settings/Sidebar.tsx index feea33031eef..54612fb1593e 100644 --- a/interface/app/$libraryId/settings/Sidebar.tsx +++ b/interface/app/$libraryId/settings/Sidebar.tsx @@ -65,10 +65,11 @@ export default () => { {t('general')} - + {/* Disabling for now until sync is ready. */} + {/* {t('account')} - + */} {t('libraries')} diff --git a/interface/components/Login.tsx b/interface/components/Login.tsx index 72823eacd645..e12d6ecce234 100644 --- a/interface/components/Login.tsx +++ b/interface/components/Login.tsx @@ -49,6 +49,7 @@ async function signInClicked( cloudBootstrap.mutate([tokens.accessToken, tokens.refreshToken]); saveEmailAddress.mutate(email); toast.success('Sign in successful'); + console.log('Reloading state'); reload(true); } } catch (err: any) { @@ -140,13 +141,7 @@ const LoginForm = ({ reload, cloudBootstrap, setContinueWithEmail }: LoginProps) return (
    { - await signInClicked( - data.email, - data.password, - reload, - cloudBootstrap, - saveEmailAddress - ); + await signInClicked(data.email, data.password, reload, cloudBootstrap, saveEmailAddress); })} className="w-full" form={form} @@ -170,9 +165,7 @@ const LoginForm = ({ reload, cloudBootstrap, setContinueWithEmail }: LoginProps) )} /> {form.formState.errors.email && ( -

    - {form.formState.errors.email.message} -

    +

    {form.formState.errors.email.message}

    )}
    @@ -196,17 +189,12 @@ const LoginForm = ({ reload, cloudBootstrap, setContinueWithEmail }: LoginProps) field.onChange(pastedText); }} /> - +
    )} /> {form.formState.errors.password && ( -

    - {form.formState.errors.password.message} -

    +

    {form.formState.errors.password.message}

    )}
    @@ -217,13 +205,7 @@ const LoginForm = ({ reload, cloudBootstrap, setContinueWithEmail }: LoginProps) variant="accent" size="md" onClick={form.handleSubmit(async (data) => { - await signInClicked( - data.email, - data.password, - reload, - cloudBootstrap, - saveEmailAddress - ); + await signInClicked(data.email, data.password, reload, cloudBootstrap, saveEmailAddress); })} disabled={form.formState.isSubmitting} > @@ -292,9 +274,7 @@ const ContinueWithEmail = ({ setContinueWithEmail, reload, cloudBootstrap }: Pro size="md" className="w-full" placeholder="johndoe@gmail.com" - error={Boolean( - ContinueWithEmailForm.formState.errors.email?.message - )} + error={Boolean(ContinueWithEmailForm.formState.errors.email?.message)} /> )} /> @@ -322,9 +302,7 @@ const ContinueWithEmail = ({ setContinueWithEmail, reload, cloudBootstrap }: Pro

    {t('login_link_sent')}

    {t('check_your_inbox')}{' '} - - {ContinueWithEmailForm.getValues().email} - + {ContinueWithEmailForm.getValues().email}

    diff --git a/interface/locales/en/common.json b/interface/locales/en/common.json index fcac6fd36af8..590d0844a218 100644 --- a/interface/locales/en/common.json +++ b/interface/locales/en/common.json @@ -695,6 +695,8 @@ "spacedrop_already_progress": "Spacedrop already in progress", "spacedrop_contacts_only": "Contacts Only", "spacedrop_description": "Share instantly with devices running Spacedrive on your network.", + "spacedrop_default_location": "Default location for Spacedrop", + "spacedrop_default_location_description": "Share instantly with devices running Spacedrive on your network.", "spacedrop_disabled": "Disabled", "spacedrop_everyone": "Everyone", "spacedrop_rejected": "Spacedrop rejected", diff --git a/interface/util/index.tsx b/interface/util/index.tsx index 4bb12e4b91a4..f6686c71374d 100644 --- a/interface/util/index.tsx +++ b/interface/util/index.tsx @@ -10,8 +10,8 @@ export type NonEmptyArray = [T, ...T[]]; export const isNonEmpty = (input: T[]): input is NonEmptyArray => input.length > 0; export const isNonEmptyObject = (input: object) => Object.keys(input).length > 0; -// export const AUTH_SERVER_URL = 'https://auth.spacedrive.com'; -export const AUTH_SERVER_URL = 'http://localhost:9420'; +export const AUTH_SERVER_URL = 'https://auth.spacedrive.com'; +// export const AUTH_SERVER_URL = 'http://localhost:9420'; export async function getTokens(): Promise<{ accessToken: string; refreshToken: string }> { const tokens = await nonLibraryClient.query(['keys.get']); diff --git a/package.json b/package.json index ea61bc8d9ef9..8c9da68bad61 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,6 @@ "pnpm": { "patchedDependencies": { "@remix-run/router@1.13.1": "patches/@remix-run__router@1.13.1.patch", - "@contentlayer/cli@0.3.4": "patches/@contentlayer__cli@0.3.4.patch", "tailwindcss-animate@1.0.7": "patches/tailwindcss-animate@1.0.7.patch", "@react-navigation/drawer@6.6.15": "patches/@react-navigation__drawer@6.6.15.patch" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8dad00fb613e..b05918477704 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,9 +13,6 @@ overrides: tailwindcss-animate: '=1.0.7' patchedDependencies: - '@contentlayer/cli@0.3.4': - hash: r22rdxqpl6d5mdpkhdt6tw4evu - path: patches/@contentlayer__cli@0.3.4.patch '@react-navigation/drawer@6.6.15': hash: sdhplsrp4vqvq5oj3pphja7dki path: patches/@react-navigation__drawer@6.6.15.patch @@ -68,7 +65,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.9 - version: 5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1) + version: 5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1) .github/actions/publish-artifacts: dependencies: @@ -178,10 +175,10 @@ importers: version: 5.6.2 vite: specifier: ^5.4.9 - version: 5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1) + version: 5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1) vite-tsconfig-paths: specifier: ^5.0.1 - version: 5.0.1(typescript@5.6.2)(vite@5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1)) + version: 5.0.1(typescript@5.6.2)(vite@5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1)) apps/landing: dependencies: @@ -224,12 +221,15 @@ importers: '@tsparticles/react': specifier: ^3.0.0 version: 3.0.0(@tsparticles/engine@3.3.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@vercel/edge-config': + specifier: ^1.4.0 + version: 1.4.0(@opentelemetry/api@1.9.0) clsx: specifier: ^2.0.0 version: 2.1.0 - contentlayer: - specifier: ^0.3.4 - version: 0.3.4(esbuild@0.21.5) + contentlayer2: + specifier: ^0.5.3 + version: 0.5.3(acorn@8.14.0)(esbuild@0.21.5) dayjs: specifier: ^1.11.10 version: 1.11.10 @@ -246,14 +246,14 @@ importers: specifier: ^7.3.2 version: 7.4.3(react@18.2.0) next: - specifier: 14.2.5 - version: 14.2.5(@babel/core@7.24.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.42.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.72.0) - next-contentlayer: - specifier: ^0.3.4 - version: 0.3.4(contentlayer@0.3.4(esbuild@0.21.5))(esbuild@0.21.5)(next@14.2.5(@babel/core@7.24.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.42.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.72.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: 14.2.12 + version: 14.2.12(@babel/core@7.24.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.42.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.72.0) + next-contentlayer2: + specifier: ^0.5.3 + version: 0.5.3(acorn@8.14.0)(contentlayer2@0.5.3(acorn@8.14.0)(esbuild@0.21.5))(esbuild@0.21.5)(next@14.2.12(@babel/core@7.24.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.42.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.72.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) next-plausible: specifier: ^3.11.3 - version: 3.12.0(next@14.2.5(@babel/core@7.24.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.42.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.72.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 3.12.0(next@14.2.12(@babel/core@7.24.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.42.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.72.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: specifier: 18.2.0 version: 18.2.0 @@ -275,33 +275,39 @@ importers: react-parallax-tilt: specifier: ^1.7.250 version: 1.7.250(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react-scroll-parallax: + specifier: ^3.4.5 + version: 3.4.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) reading-time: specifier: ^1.5.0 version: 1.5.0 rehype-autolink-headings: - specifier: ^6.1.1 - version: 6.1.1 + specifier: ^7.0.0 + version: 7.1.0 rehype-external-links: - specifier: ^2.1.0 - version: 2.1.0 + specifier: ^3.0.0 + version: 3.0.0 rehype-katex: - specifier: ^6.0.3 - version: 6.0.3 + specifier: ^7.0.0 + version: 7.0.1 rehype-prism-plus: - specifier: ^1.6.3 - version: 1.6.3 + specifier: ^2.0.0 + version: 2.0.0 rehype-slug: specifier: ^5.1.0 version: 5.1.0 + remark: + specifier: 15.0.1 + version: 15.0.1 remark-gfm: - specifier: ^3.0.1 - version: 3.0.1 + specifier: 4.0.0 + version: 4.0.0 remark-math: - specifier: ^5.1.1 - version: 5.1.1 + specifier: ^6.0.0 + version: 6.0.0 remark-mdx-images: - specifier: ^2.0.0 - version: 2.0.0 + specifier: ^3.0.0 + version: 3.0.0 tailwind-merge: specifier: ^1.14.0 version: 1.14.0 @@ -461,7 +467,7 @@ importers: version: 0.77.0(@babel/core@7.24.0) moti: specifier: ^0.29.0 - version: 0.29.0(react-dom@18.2.0(react@18.2.0))(react-native-reanimated@3.10.1(@babel/core@7.24.0)(react-native@0.74.5(@babel/core@7.24.0)(@babel/preset-env@7.25.4(@babel/core@7.24.0))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0))(react@18.2.0) + version: 0.29.0(react-dom@19.0.0(react@18.2.0))(react-native-reanimated@3.10.1(@babel/core@7.24.0)(react-native@0.74.5(@babel/core@7.24.0)(@babel/preset-env@7.25.4(@babel/core@7.24.0))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0))(react@18.2.0) phosphor-react-native: specifier: ^2.0.0 version: 2.0.0(react-native-svg@15.2.0(react-native@0.74.5(@babel/core@7.24.0)(@babel/preset-env@7.25.4(@babel/core@7.24.0))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0))(react-native@0.74.5(@babel/core@7.24.0)(@babel/preset-env@7.25.4(@babel/core@7.24.0))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) @@ -587,7 +593,7 @@ importers: version: 8.0.1(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.2) '@storybook/react-vite': specifier: ^8.0.1 - version: 8.0.1(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(rollup@4.24.0)(typescript@5.6.2)(vite@5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1)) + version: 8.0.1(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(rollup@4.24.0)(typescript@5.6.2)(vite@5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1)) '@storybook/testing-library': specifier: ^0.2.2 version: 0.2.2 @@ -636,7 +642,7 @@ importers: version: 5.6.2 vite: specifier: ^5.4.9 - version: 5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1) + version: 5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1) apps/web: dependencies: @@ -709,10 +715,10 @@ importers: version: 5.6.2 vite: specifier: ^5.4.9 - version: 5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1) + version: 5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1) vite-tsconfig-paths: specifier: ^5.0.1 - version: 5.0.1(typescript@5.6.2)(vite@5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1)) + version: 5.0.1(typescript@5.6.2)(vite@5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1)) interface: dependencies: @@ -1017,7 +1023,7 @@ importers: version: 8.8.0(eslint@8.57.1)(typescript@5.6.3) '@vitejs/plugin-react-swc': specifier: ^3.6.0 - version: 3.6.0(@swc/helpers@0.5.5)(vite@5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1)) + version: 3.6.0(@swc/helpers@0.5.15)(vite@5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1)) eslint: specifier: ^8.57.1 version: 8.57.1 @@ -1053,19 +1059,19 @@ importers: version: 3.2.0 vite-plugin-html: specifier: ^3.2.2 - version: 3.2.2(vite@5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1)) + version: 3.2.2(vite@5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1)) vite-plugin-i18next-loader: specifier: ^2.0.14 - version: 2.0.14(vite@5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1)) + version: 2.0.14(vite@5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1)) vite-plugin-inspect: specifier: ^0.8.7 - version: 0.8.7(rollup@4.24.0)(vite@5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1)) + version: 0.8.7(rollup@4.24.0)(vite@5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1)) vite-plugin-solid: specifier: ^2.10.2 - version: 2.10.2(@testing-library/jest-dom@6.4.2)(solid-js@1.8.15)(vite@5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1)) + version: 2.10.2(@testing-library/jest-dom@6.4.2)(solid-js@1.8.15)(vite@5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1)) vite-plugin-svgr: specifier: ^3.3.0 - version: 3.3.0(rollup@4.24.0)(typescript@5.6.3)(vite@5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1)) + version: 3.3.0(rollup@4.24.0)(typescript@5.6.3)(vite@5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1)) packages/ui: dependencies: @@ -1387,8 +1393,8 @@ packages: resolution: {integrity: sha512-OuDVn9z2LjyYbpu6e7crEwSipa62jX7/ObV/pmXQfnOG8cHwm363jYtg3FSX3GB1V7jsIKri1zgq7mfXkFk/qw==} engines: {node: '>=18.0.0'} - '@azure/core-auth@1.8.0': - resolution: {integrity: sha512-YvFMowkXzLbXNM11yZtVLhUCmuG0ex7JKOH366ipjmHBhL3vpDcPAeWF+jf0X+jVXwFqo3UhsWUq4kH0ZPdu/g==} + '@azure/core-auth@1.9.0': + resolution: {integrity: sha512-FPwHpZywuyasDSLMqJ6fhbOK3TqUdviZNF8OqRGA4W5Ewib2lEEZ+pBsYcBa88B2NGO/SEnYPGhyBqNlE8ilSw==} engines: {node: '>=18.0.0'} '@azure/core-http@3.0.4': @@ -1416,6 +1422,10 @@ packages: resolution: {integrity: sha512-UKTiEJPkWcESPYJz3X5uKRYyOcJD+4nYph+KpfdPRnQJVrZfk0KJgdnaAWKfhsBBtAf/D58Az4AvCJEmWgIBAg==} engines: {node: '>=18.0.0'} + '@azure/core-util@1.11.0': + resolution: {integrity: sha512-DxOSLua+NdpWoSqULhjDyAZTXFdP/LKkqtYuxxz1SCN289zk3OG8UOpnCQAz/tygyACBtWp/BoO72ptK7msY8g==} + engines: {node: '>=18.0.0'} + '@azure/core-util@1.2.0': resolution: {integrity: sha512-ffGIw+Qs8bNKNLxz5UPkz4/VBM/EZY07mPve1ZYFqYUdPwFqRj0RPk0U7LZMOfT7GCck9YjuT1Rfp1PApNl1ng==} engines: {node: '>=14.0.0'} @@ -1451,6 +1461,10 @@ packages: resolution: {integrity: sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==} engines: {node: '>=6.9.0'} + '@babel/code-frame@7.26.2': + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} + engines: {node: '>=6.9.0'} + '@babel/compat-data@7.23.5': resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} engines: {node: '>=6.9.0'} @@ -1459,6 +1473,10 @@ packages: resolution: {integrity: sha512-ZsysZyXY4Tlx+Q53XdnOFmqwfB9QDTHYxaZYajWRoBLuLEAwI2UIbtxOjWh/cFaa9IKUlcB+DDuoskLuKu56JA==} engines: {node: '>=6.9.0'} + '@babel/compat-data@7.26.5': + resolution: {integrity: sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==} + engines: {node: '>=6.9.0'} + '@babel/core@7.24.0': resolution: {integrity: sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==} engines: {node: '>=6.9.0'} @@ -1492,6 +1510,10 @@ packages: resolution: {integrity: sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==} engines: {node: '>=6.9.0'} + '@babel/generator@7.26.5': + resolution: {integrity: sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==} + engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.22.5': resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} @@ -1500,6 +1522,10 @@ packages: resolution: {integrity: sha512-4xwU8StnqnlIhhioZf1tqnVWeQ9pvH/ujS8hRfw/WOza+/a+1qv69BWNy+oY231maTCWgKWhfBU7kDpsds6zAA==} engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.25.9': + resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} + engines: {node: '>=6.9.0'} + '@babel/helper-builder-binary-assignment-operator-visitor@7.25.7': resolution: {integrity: sha512-12xfNeKNH7jubQNm7PAkzlLwEmCs1tfuX3UjIw6vP6QXi+leKh6+LyC/+Ed4EIQermwd58wsyh070yjDHFlNGg==} engines: {node: '>=6.9.0'} @@ -1512,6 +1538,10 @@ packages: resolution: {integrity: sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==} engines: {node: '>=6.9.0'} + '@babel/helper-compilation-targets@7.26.5': + resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==} + engines: {node: '>=6.9.0'} + '@babel/helper-create-class-features-plugin@7.24.0': resolution: {integrity: sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g==} engines: {node: '>=6.9.0'} @@ -1524,6 +1554,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-create-class-features-plugin@7.25.9': + resolution: {integrity: sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-create-regexp-features-plugin@7.22.15': resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} engines: {node: '>=6.9.0'} @@ -1536,6 +1572,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-create-regexp-features-plugin@7.26.3': + resolution: {integrity: sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-define-polyfill-provider@0.5.0': resolution: {integrity: sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==} peerDependencies: @@ -1551,6 +1593,11 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + '@babel/helper-define-polyfill-provider@0.6.3': + resolution: {integrity: sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + '@babel/helper-environment-visitor@7.22.20': resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} engines: {node: '>=6.9.0'} @@ -1571,6 +1618,10 @@ packages: resolution: {integrity: sha512-O31Ssjd5K6lPbTX9AAYpSKrZmLeagt9uwschJd+Ixo6QiRyfpvgtVQp8qrDR9UNFjZ8+DO34ZkdrN+BnPXemeA==} engines: {node: '>=6.9.0'} + '@babel/helper-member-expression-to-functions@7.25.9': + resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.18.6': resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} engines: {node: '>=6.9.0'} @@ -1583,6 +1634,10 @@ packages: resolution: {integrity: sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==} engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.25.9': + resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} + engines: {node: '>=6.9.0'} + '@babel/helper-module-transforms@7.23.3': resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} @@ -1595,6 +1650,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-module-transforms@7.26.0': + resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-optimise-call-expression@7.22.5': resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} @@ -1603,6 +1664,10 @@ packages: resolution: {integrity: sha512-VAwcwuYhv/AT+Vfr28c9y6SHzTan1ryqrydSTFGjU0uDJHw3uZ+PduI8plCLkRsDnqK2DMEDmwrOQRsK/Ykjng==} engines: {node: '>=6.9.0'} + '@babel/helper-optimise-call-expression@7.25.9': + resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-plugin-utils@7.24.0': resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} engines: {node: '>=6.9.0'} @@ -1611,6 +1676,10 @@ packages: resolution: {integrity: sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==} engines: {node: '>=6.9.0'} + '@babel/helper-plugin-utils@7.26.5': + resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==} + engines: {node: '>=6.9.0'} + '@babel/helper-remap-async-to-generator@7.22.20': resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} engines: {node: '>=6.9.0'} @@ -1623,6 +1692,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-remap-async-to-generator@7.25.9': + resolution: {integrity: sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-replace-supers@7.22.20': resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} engines: {node: '>=6.9.0'} @@ -1635,6 +1710,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-replace-supers@7.26.5': + resolution: {integrity: sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-simple-access@7.22.5': resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} @@ -1651,6 +1732,10 @@ packages: resolution: {integrity: sha512-pPbNbchZBkPMD50K0p3JGcFMNLVUCuU/ABybm/PGNj4JiHrpmNyqqCphBk4i19xXtNV0JhldQJJtbSW5aUvbyA==} engines: {node: '>=6.9.0'} + '@babel/helper-skip-transparent-expression-wrappers@7.25.9': + resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==} + engines: {node: '>=6.9.0'} + '@babel/helper-split-export-declaration@7.22.6': resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} @@ -1663,6 +1748,10 @@ packages: resolution: {integrity: sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.25.9': + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.22.20': resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} @@ -1671,6 +1760,10 @@ packages: resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.25.9': + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.23.5': resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} engines: {node: '>=6.9.0'} @@ -1679,6 +1772,10 @@ packages: resolution: {integrity: sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.25.9': + resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} + engines: {node: '>=6.9.0'} + '@babel/helper-wrap-function@7.22.20': resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} engines: {node: '>=6.9.0'} @@ -1687,6 +1784,10 @@ packages: resolution: {integrity: sha512-MA0roW3JF2bD1ptAaJnvcabsVlNQShUaThyJbCDD4bCp8NEgiFvpoqRI2YS22hHlc2thjO/fTg2ShLMC3jygAg==} engines: {node: '>=6.9.0'} + '@babel/helper-wrap-function@7.25.9': + resolution: {integrity: sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==} + engines: {node: '>=6.9.0'} + '@babel/helpers@7.24.0': resolution: {integrity: sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==} engines: {node: '>=6.9.0'} @@ -1713,6 +1814,11 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.26.5': + resolution: {integrity: sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.7': resolution: {integrity: sha512-UV9Lg53zyebzD1DwQoT9mzkEKa922LNUp5YkTJ6Uta0RbyXaQNUgcvSt7qIu1PpPzVb6rd10OVNTzkyBGeVmxQ==} engines: {node: '>=6.9.0'} @@ -1781,6 +1887,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-proposal-export-default-from@7.25.9': + resolution: {integrity: sha512-ykqgwNfSnNOB+C8fV5X4mG3AVmvu+WVxcaU9xHHtBb7PCrPeweMmPjGsn8eMaeJg6SJuoUuZENeeSWaarWqonQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-proposal-logical-assignment-operators@7.20.7': resolution: {integrity: sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==} engines: {node: '>=6.9.0'} @@ -1862,6 +1974,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-export-default-from@7.25.9': + resolution: {integrity: sha512-9MhJ/SMTsVqsd69GyQg89lYR4o9T+oDGv5F6IsigxxqFVOyR/IflDLYP8WDI1l8fkhNGGktqkvL5qwNCtGEpgQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-export-namespace-from@7.8.3': resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: @@ -1873,6 +1991,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-flow@7.26.0': + resolution: {integrity: sha512-B+O2DnPc0iG+YXFqOxv2WNuNU97ToWjOomUQ78DouOENWUaM5sVrmet9mcomUGQFwpJd//gvUagXBSdzO1fRKg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-import-assertions@7.24.1': resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==} engines: {node: '>=6.9.0'} @@ -1919,6 +2043,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-jsx@7.25.9': + resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-logical-assignment-operators@7.10.4': resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: @@ -1973,6 +2103,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-typescript@7.25.9': + resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-unicode-sets-regex@7.18.6': resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} @@ -1991,6 +2127,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-arrow-functions@7.25.9': + resolution: {integrity: sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-async-generator-functions@7.25.8': resolution: {integrity: sha512-9ypqkozyzpG+HxlH4o4gdctalFGIjjdufzo7I2XPda0iBnZ6a+FO0rIEQcdSPXp02CkvGsII1exJhmROPQd5oA==} engines: {node: '>=6.9.0'} @@ -2009,6 +2151,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-async-to-generator@7.25.9': + resolution: {integrity: sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-block-scoped-functions@7.23.3': resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} engines: {node: '>=6.9.0'} @@ -2033,6 +2181,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-block-scoping@7.25.9': + resolution: {integrity: sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-class-properties@7.25.7': resolution: {integrity: sha512-mhyfEW4gufjIqYFo9krXHJ3ElbFLIze5IDp+wQTxoPd+mwFb1NxatNAwmv8Q8Iuxv7Zc+q8EkiMQwc9IhyGf4g==} engines: {node: '>=6.9.0'} @@ -2057,6 +2211,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-classes@7.25.9': + resolution: {integrity: sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-computed-properties@7.23.3': resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} engines: {node: '>=6.9.0'} @@ -2069,6 +2229,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-computed-properties@7.25.9': + resolution: {integrity: sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-destructuring@7.23.3': resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} engines: {node: '>=6.9.0'} @@ -2081,6 +2247,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-destructuring@7.25.9': + resolution: {integrity: sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-dotall-regex@7.24.7': resolution: {integrity: sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==} engines: {node: '>=6.9.0'} @@ -2147,6 +2319,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-flow-strip-types@7.26.5': + resolution: {integrity: sha512-eGK26RsbIkYUns3Y8qKl362juDDYK+wEdPGHGrhzUl6CewZFo55VZ7hg+CyMFU4dd5QQakBN86nBMpRsFpRvbQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-for-of@7.23.6': resolution: {integrity: sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==} engines: {node: '>=6.9.0'} @@ -2171,6 +2349,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-function-name@7.25.9': + resolution: {integrity: sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-json-strings@7.24.7': resolution: {integrity: sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==} engines: {node: '>=6.9.0'} @@ -2189,6 +2373,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-literals@7.25.9': + resolution: {integrity: sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-logical-assignment-operators@7.24.7': resolution: {integrity: sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==} engines: {node: '>=6.9.0'} @@ -2225,6 +2415,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-modules-commonjs@7.26.3': + resolution: {integrity: sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-modules-systemjs@7.25.7': resolution: {integrity: sha512-t9jZIvBmOXJsiuyOwhrIGs8dVcD6jDyg2icw1VL4A/g+FnWyJKwUfSSU2nwJuMV2Zqui856El9u+ElB+j9fV1g==} engines: {node: '>=6.9.0'} @@ -2255,6 +2451,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/plugin-transform-named-capturing-groups-regex@7.25.9': + resolution: {integrity: sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/plugin-transform-new-target@7.25.7': resolution: {integrity: sha512-CfCS2jDsbcZaVYxRFo2qtavW8SpdzmBXC2LOI4oO0rP+JSRDxxF3inF4GcPsLgfb5FjkhXG5/yR/lxuRs2pySA==} engines: {node: '>=6.9.0'} @@ -2333,6 +2535,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-parameters@7.25.9': + resolution: {integrity: sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-private-methods@7.23.3': resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==} engines: {node: '>=6.9.0'} @@ -2345,12 +2553,24 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-private-methods@7.25.9': + resolution: {integrity: sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-private-property-in-object@7.25.8': resolution: {integrity: sha512-8Uh966svuB4V8RHHg0QJOB32QK287NBksJOByoKmHMp1TAobNniNalIkI2i5IPj5+S9NYCG4VIjbEuiSN8r+ow==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-private-property-in-object@7.25.9': + resolution: {integrity: sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-property-literals@7.23.3': resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} engines: {node: '>=6.9.0'} @@ -2381,6 +2601,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-display-name@7.25.9': + resolution: {integrity: sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-jsx-development@7.25.7': resolution: {integrity: sha512-5yd3lH1PWxzW6IZj+p+Y4OLQzz0/LzlOG8vGqonHfVR3euf1vyzyMUJk9Ac+m97BH46mFc/98t9PmYLyvgL3qg==} engines: {node: '>=6.9.0'} @@ -2393,12 +2619,24 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-jsx-self@7.25.9': + resolution: {integrity: sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-jsx-source@7.23.3': resolution: {integrity: sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-jsx-source@7.25.9': + resolution: {integrity: sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-jsx@7.23.4': resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} engines: {node: '>=6.9.0'} @@ -2411,6 +2649,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-jsx@7.25.9': + resolution: {integrity: sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-pure-annotations@7.25.7': resolution: {integrity: sha512-6YTHJ7yjjgYqGc8S+CbEXhLICODk0Tn92j+vNJo07HFk9t3bjFgAKxPLFhHwF2NjmQVSI1zBRfBWUeVBa2osfA==} engines: {node: '>=6.9.0'} @@ -2447,6 +2691,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-runtime@7.25.9': + resolution: {integrity: sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-shorthand-properties@7.23.3': resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} engines: {node: '>=6.9.0'} @@ -2459,6 +2709,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-shorthand-properties@7.25.9': + resolution: {integrity: sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-spread@7.23.3': resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} engines: {node: '>=6.9.0'} @@ -2471,6 +2727,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-spread@7.25.9': + resolution: {integrity: sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-sticky-regex@7.23.3': resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} engines: {node: '>=6.9.0'} @@ -2483,6 +2745,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-sticky-regex@7.25.9': + resolution: {integrity: sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-template-literals@7.23.3': resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} engines: {node: '>=6.9.0'} @@ -2513,6 +2781,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-typescript@7.26.5': + resolution: {integrity: sha512-GJhPO0y8SD5EYVCy2Zr+9dSZcEgaSmq5BLR0Oc25TOEhC+ba49vUAGZFjy8v79z9E1mdldq4x9d1xgh4L1d5dQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-unicode-escapes@7.25.7': resolution: {integrity: sha512-BN87D7KpbdiABA+t3HbVqHzKWUDN3dymLaTnPFAMyc8lV+KN3+YzNhVRNdinaCPA4AUqx7ubXbQ9shRjYBl3SQ==} engines: {node: '>=6.9.0'} @@ -2543,6 +2817,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-unicode-regex@7.25.9': + resolution: {integrity: sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-unicode-sets-regex@7.25.7': resolution: {integrity: sha512-YRW8o9vzImwmh4Q3Rffd09bH5/hvY0pxg+1H1i0f7APoUeg12G7+HhLj9ZFNIrYkgBXhIijPJ+IXypN0hLTIbw==} engines: {node: '>=6.9.0'} @@ -2615,6 +2895,10 @@ packages: resolution: {integrity: sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==} engines: {node: '>=6.9.0'} + '@babel/template@7.25.9': + resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} + engines: {node: '>=6.9.0'} + '@babel/traverse@7.24.0': resolution: {integrity: sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==} engines: {node: '>=6.9.0'} @@ -2623,6 +2907,10 @@ packages: resolution: {integrity: sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==} engines: {node: '>=6.9.0'} + '@babel/traverse@7.26.5': + resolution: {integrity: sha512-rkOSPOw+AXbgtwUga3U4u8RpoK9FEFWBNAlTpcnkLFjL5CT+oyHNuUUC/xx6XefEJ16r38r8Bc/lfp6rYuHeJQ==} + engines: {node: '>=6.9.0'} + '@babel/types@7.24.0': resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} engines: {node: '>=6.9.0'} @@ -2631,6 +2919,10 @@ packages: resolution: {integrity: sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==} engines: {node: '>=6.9.0'} + '@babel/types@7.26.5': + resolution: {integrity: sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==} + engines: {node: '>=6.9.0'} + '@base2/pretty-print-object@1.0.1': resolution: {integrity: sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA==} @@ -2641,16 +2933,16 @@ packages: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} - '@contentlayer/cli@0.3.4': - resolution: {integrity: sha512-vNDwgLuhYNu+m70NZ3XK9kexKNguuxPXg7Yvzj3B34cEilQjjzSrcTY/i+AIQm9V7uT5GGshx9ukzPf+SmoszQ==} + '@contentlayer2/cli@0.5.3': + resolution: {integrity: sha512-8xO+piFSNVq5Ad2P3D30nM0BzQh1qQ0Q4kIx2otlLhYe3tdeuf3TCB3nFZTgfOJESnZABxqy6XTcfpmeAfNd/Q==} - '@contentlayer/client@0.3.4': - resolution: {integrity: sha512-QSlLyc3y4PtdC5lFw0L4wTZUH8BQnv2nk37hNCsPAqGf+dRO7TLAzdc+2/mVIRgK+vSH+pSOzjLsQpFxxXRTZA==} + '@contentlayer2/client@0.5.3': + resolution: {integrity: sha512-ZlrPpNhK+jNF00f20G6MIlELiEnVjUPuyjXeRHNsq582DzqcdgE/Etqa5O5zJ9/w3fhvyj5N1h7fP0MLFoswPw==} - '@contentlayer/core@0.3.4': - resolution: {integrity: sha512-o68oBLwfYZ+2vtgfk1lgHxOl3LoxvRNiUfeQ8IWFWy/L4wnIkKIqLZX01zlRE5IzYM+ZMMN5V0cKQlO7DsyR9g==} + '@contentlayer2/core@0.5.3': + resolution: {integrity: sha512-qGDryuO+6Uw0U8JZ9cdrxzieEJkkwuTuT+soycnYFShuvqofb+wkpktnsaTn4wUXLd5ut/ngPrH/9w/IbOlF2w==} peerDependencies: - esbuild: 0.17.x || 0.18.x + esbuild: '>=0.17' markdown-wasm: 1.x peerDependenciesMeta: esbuild: @@ -2658,14 +2950,14 @@ packages: markdown-wasm: optional: true - '@contentlayer/source-files@0.3.4': - resolution: {integrity: sha512-4njyn0OFPu7WY4tAjMxiJgWOKeiHuBOGdQ36EYE03iij/pPPRbiWbL+cmLccYXUFEW58mDwpqROZZm6pnxjRDQ==} + '@contentlayer2/source-files@0.5.3': + resolution: {integrity: sha512-kESg2zAJKDQio5rCILpFPhsWklX5xmMdlJa9KSj5UdXMd7/gY+q0GiVqZ2PAmZi5+hG73pVihg9ieC2TEjLSIQ==} - '@contentlayer/source-remote-files@0.3.4': - resolution: {integrity: sha512-cyiv4sNUySZvR0uAKlM+kSAELzNd2h2QT1R2e41dRKbwOUVxeLfmGiLugr0aVac6Q3xYcD99dbHyR1xWPV+w9w==} + '@contentlayer2/source-remote-files@0.5.3': + resolution: {integrity: sha512-0dxoLfS7EbVR3Xap4MPSmzLvQCGrMwtXVIA4ZmRHLOGzG+vWpaY9BtnCACb/Om4tUQBsCA9oduBjNqRu4Sx+gQ==} - '@contentlayer/utils@0.3.4': - resolution: {integrity: sha512-ZWWOhbUWYQ2QHoLIlcUnEo7X4ZbwcyFPuzVQWWMkK43BxCveyQtZwBIzfyx54sqVzi0GUmKP8bHzsLQT0QxaLQ==} + '@contentlayer2/utils@0.5.3': + resolution: {integrity: sha512-2nTFhZ7xnOevoZQnGP6BSIkTCpNos1PkGJ894gMYSmRMaMkyv+9VE9adoa0sywIA1y01iLU8niqcxJiuCQ1OkQ==} peerDependencies: '@effect-ts/otel-node': '*' peerDependenciesMeta: @@ -2938,15 +3230,6 @@ packages: '@effect-ts/core@0.60.5': resolution: {integrity: sha512-qi1WrtJA90XLMnj2hnUszW9Sx4dXP03ZJtCc5DiUBIOhF4Vw7plfb65/bdBySPoC9s7zy995TdUX1XBSxUkl5w==} - '@effect-ts/otel-exporter-trace-otlp-grpc@0.15.1': - resolution: {integrity: sha512-47gAg0O2pW5Jlo86jfzjdkwL5a7Bzb+Kj5WTmdu4CxYRfWn9ytKjuuYIfsNDW8neuhdKzn+P5wCddgEh0glYyQ==} - peerDependencies: - '@effect-ts/core': ^0.60.2 - '@opentelemetry/api': ^1.4.0 - '@opentelemetry/core': ^1.13.0 - '@opentelemetry/exporter-trace-otlp-grpc': ^0.39.0 - '@opentelemetry/sdk-trace-base': ^1.13.0 - '@effect-ts/otel-sdk-trace-node@0.15.1': resolution: {integrity: sha512-a2sF0ylmn8xOJs8fNeT/spJ1gUcsksAJCALxo9WOfuTCMtTwMVtVhCKEPEeQoL7wFqU+JgPkVdP91+FJ/Rkeow==} peerDependencies: @@ -2998,8 +3281,8 @@ packages: resolution: {integrity: sha512-G6QUWIcC+KvSwXNsJyDTHvqUdNoAVJPPgkc3+Uk4WBKqZvoXhlvazOgm9aL0HwihJLQf0l+tOE2UFzXBqCqgDw==} engines: {node: '>=16'} - '@esbuild-plugins/node-resolve@0.1.4': - resolution: {integrity: sha512-haFQ0qhxEpqtWWY0kx1Y5oE3sMyO1PcoSiWEPrAw6tm/ZOOLXjSs6Q+v1v9eyuVF0nNt50YEvrcrvENmyoMv5g==} + '@esbuild-plugins/node-resolve@0.2.2': + resolution: {integrity: sha512-+t5FdX3ATQlb53UFDBRb4nqjYBz492bIrnVWvpQHpzZlu9BQL5HasMZhqc409ygUwOWCXZhrWr6NyZ6T6Y+cxw==} peerDependencies: esbuild: '*' @@ -3285,12 +3568,18 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@eslint-community/eslint-utils@4.4.1': + resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@eslint-community/regexpp@4.10.0': resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint-community/regexpp@4.11.1': - resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==} + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} '@eslint/eslintrc@2.1.4': @@ -3679,6 +3968,10 @@ packages: resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} + '@jridgewell/gen-mapping@0.3.8': + resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} + engines: {node: '>=6.0.0'} + '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} @@ -3706,16 +3999,34 @@ packages: resolution: {integrity: sha512-2X6bvghJ/JAoZO52lbgyAPFj8uCflhTo2g7nkFzEQdXd/D8rEeD4HtmTEpmtGCva260fcd66YNXBOYdnmHqSOg==} engines: {node: '>=12'} + '@jsonjoy.com/base64@1.1.2': + resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/json-pack@1.1.1': + resolution: {integrity: sha512-osjeBqMJ2lb/j/M8NCPjs1ylqWIcTRTycIhVB5pt6LgzgeRSb0YRZ7j9RfA8wIUrsr/medIuhVyonXRZWLyfdw==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/util@1.5.0': + resolution: {integrity: sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + '@juggle/resize-observer@3.4.0': resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==} - '@mdx-js/esbuild@2.3.0': - resolution: {integrity: sha512-r/vsqsM0E+U4Wr0DK+0EfmABE/eg+8ITW4DjvYdh3ve/tK2safaqHArNnaqbOk1DjYGrhxtoXoGaM3BY8fGBTA==} + '@mdx-js/esbuild@3.1.0': + resolution: {integrity: sha512-Jk42xUb1SEJxh6n2GBAtJjQISFIZccjz8XVEsHVhrlvZJAJziIxR9KyaFF6nTeTB/jCAFQGDgO7+oMRH/ApRsg==} peerDependencies: - esbuild: '>=0.11.0' + esbuild: '>=0.14.0' - '@mdx-js/mdx@2.3.0': - resolution: {integrity: sha512-jLuwRlz8DQfQNiUCJR50Y09CGPq3fLtmtUQfVrj79E0JWu3dvsVcxVIcfhR5h0iXu+/z++zDrYeiJqifRynJkA==} + '@mdx-js/mdx@3.1.0': + resolution: {integrity: sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==} '@mdx-js/react@3.0.1': resolution: {integrity: sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==} @@ -3753,62 +4064,62 @@ packages: '@next/bundle-analyzer@13.5.6': resolution: {integrity: sha512-4P5YVpR3N/B5+p0TQ/rPAr+9fsjkdfCVTGzJhKwE7XHqS+QME4gYxAYeGKkfkHEkP2A3GKXs8QSp0LjIvWLI3g==} - '@next/env@14.2.5': - resolution: {integrity: sha512-/zZGkrTOsraVfYjGP8uM0p6r0BDT6xWpkjdVbcz66PJVSpwXX3yNiRycxAuDfBKGWBrZBXRuK/YVlkNgxHGwmA==} + '@next/env@14.2.12': + resolution: {integrity: sha512-3fP29GIetdwVIfIRyLKM7KrvJaqepv+6pVodEbx0P5CaMLYBtx+7eEg8JYO5L9sveJO87z9eCReceZLi0hxO1Q==} '@next/eslint-plugin-next@14.1.3': resolution: {integrity: sha512-VCnZI2cy77Yaj3L7Uhs3+44ikMM1VD/fBMwvTBb3hIaTIuqa+DmG4dhUDq+MASu3yx97KhgsVJbsas0XuiKyww==} - '@next/swc-darwin-arm64@14.2.5': - resolution: {integrity: sha512-/9zVxJ+K9lrzSGli1///ujyRfon/ZneeZ+v4ptpiPoOU+GKZnm8Wj8ELWU1Pm7GHltYRBklmXMTUqM/DqQ99FQ==} + '@next/swc-darwin-arm64@14.2.12': + resolution: {integrity: sha512-crHJ9UoinXeFbHYNok6VZqjKnd8rTd7K3Z2zpyzF1ch7vVNKmhjv/V7EHxep3ILoN8JB9AdRn/EtVVyG9AkCXw==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@14.2.5': - resolution: {integrity: sha512-vXHOPCwfDe9qLDuq7U1OYM2wUY+KQ4Ex6ozwsKxp26BlJ6XXbHleOUldenM67JRyBfVjv371oneEvYd3H2gNSA==} + '@next/swc-darwin-x64@14.2.12': + resolution: {integrity: sha512-JbEaGbWq18BuNBO+lCtKfxl563Uw9oy2TodnN2ioX00u7V1uzrsSUcg3Ep9ce+P0Z9es+JmsvL2/rLphz+Frcw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@14.2.5': - resolution: {integrity: sha512-vlhB8wI+lj8q1ExFW8lbWutA4M2ZazQNvMWuEDqZcuJJc78iUnLdPPunBPX8rC4IgT6lIx/adB+Cwrl99MzNaA==} + '@next/swc-linux-arm64-gnu@14.2.12': + resolution: {integrity: sha512-qBy7OiXOqZrdp88QEl2H4fWalMGnSCrr1agT/AVDndlyw2YJQA89f3ttR/AkEIP9EkBXXeGl6cC72/EZT5r6rw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@14.2.5': - resolution: {integrity: sha512-NpDB9NUR2t0hXzJJwQSGu1IAOYybsfeB+LxpGsXrRIb7QOrYmidJz3shzY8cM6+rO4Aojuef0N/PEaX18pi9OA==} + '@next/swc-linux-arm64-musl@14.2.12': + resolution: {integrity: sha512-EfD9L7o9biaQxjwP1uWXnk3vYZi64NVcKUN83hpVkKocB7ogJfyH2r7o1pPnMtir6gHZiGCeHKagJ0yrNSLNHw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-x64-gnu@14.2.5': - resolution: {integrity: sha512-8XFikMSxWleYNryWIjiCX+gU201YS+erTUidKdyOVYi5qUQo/gRxv/3N1oZFCgqpesN6FPeqGM72Zve+nReVXQ==} + '@next/swc-linux-x64-gnu@14.2.12': + resolution: {integrity: sha512-iQ+n2pxklJew9IpE47hE/VgjmljlHqtcD5UhZVeHICTPbLyrgPehaKf2wLRNjYH75udroBNCgrSSVSVpAbNoYw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@14.2.5': - resolution: {integrity: sha512-6QLwi7RaYiQDcRDSU/os40r5o06b5ue7Jsk5JgdRBGGp8l37RZEh9JsLSM8QF0YDsgcosSeHjglgqi25+m04IQ==} + '@next/swc-linux-x64-musl@14.2.12': + resolution: {integrity: sha512-rFkUkNwcQ0ODn7cxvcVdpHlcOpYxMeyMfkJuzaT74xjAa5v4fxP4xDk5OoYmPi8QNLDs3UgZPMSBmpBuv9zKWA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-win32-arm64-msvc@14.2.5': - resolution: {integrity: sha512-1GpG2VhbspO+aYoMOQPQiqc/tG3LzmsdBH0LhnDS3JrtDx2QmzXe0B6mSZZiN3Bq7IOMXxv1nlsjzoS1+9mzZw==} + '@next/swc-win32-arm64-msvc@14.2.12': + resolution: {integrity: sha512-PQFYUvwtHs/u0K85SG4sAdDXYIPXpETf9mcEjWc0R4JmjgMKSDwIU/qfZdavtP6MPNiMjuKGXHCtyhR/M5zo8g==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-ia32-msvc@14.2.5': - resolution: {integrity: sha512-Igh9ZlxwvCDsu6438FXlQTHlRno4gFpJzqPjSIBZooD22tKeI4fE/YMRoHVJHmrQ2P5YL1DoZ0qaOKkbeFWeMg==} + '@next/swc-win32-ia32-msvc@14.2.12': + resolution: {integrity: sha512-FAj2hMlcbeCV546eU2tEv41dcJb4NeqFlSXU/xL/0ehXywHnNpaYajOUvn3P8wru5WyQe6cTZ8fvckj/2XN4Vw==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@next/swc-win32-x64-msvc@14.2.5': - resolution: {integrity: sha512-tEQ7oinq1/CjSG9uSTerca3v4AZ+dFa+4Yu6ihaG8Ud8ddqLQgFGcnwYls13H5X5CPDPZJdYxyeMui6muOLd4g==} + '@next/swc-win32-x64-msvc@14.2.12': + resolution: {integrity: sha512-yu8QvV53sBzoIVRHsxCHqeuS8jYq6Lrmdh0briivuh+Brsp6xjg80MAozUsBTAV9KNmY08KlX0KYTWz1lbPzEg==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -3899,8 +4210,8 @@ packages: resolution: {integrity: sha512-+nGS3ReCByF6m+nbNB59x7Aa3CNjCCGuBLFzfkiJP1O3uVKKuJbkP4uO4t46YqH26nlugmOhqjT7nx5D0VPtdA==} engines: {node: '>= 18'} - '@opentelemetry/api-logs@0.39.1': - resolution: {integrity: sha512-9BJ8lMcOzEN0lu+Qji801y707oFO4xT3db6cosPvl+k7ItUHKN5ofWqtSbM9gbt1H4JJ/4/2TVrqI9Rq7hNv6Q==} + '@opentelemetry/api-logs@0.51.1': + resolution: {integrity: sha512-E3skn949Pk1z2XtXu/lxf6QAZpawuTM/IUEXcAzpiUkTd73Hmvw26FiN3cJuTmkpM5hZzHwkomVdtrh/n/zzwA==} engines: {node: '>=14'} '@opentelemetry/api-logs@0.53.0': @@ -3921,26 +4232,26 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.9.0' - '@opentelemetry/core@1.13.0': - resolution: {integrity: sha512-2dBX3Sj99H96uwJKvc2w9NOiNgbvAO6mOFJFramNkKfS9O4Um+VWgpnlAazoYjT6kUJ1MP70KQ5ngD4ed+4NUw==} + '@opentelemetry/core@1.22.0': + resolution: {integrity: sha512-0VoAlT6x+Xzik1v9goJ3pZ2ppi6+xd3aUfg4brfrLkDBHRIVjMP0eBHrKrhB+NKcDyMAg8fAbGL3Npg/F6AwWA==} engines: {node: '>=14'} peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.5.0' + '@opentelemetry/api': '>=1.0.0 <1.9.0' - '@opentelemetry/core@1.22.0': - resolution: {integrity: sha512-0VoAlT6x+Xzik1v9goJ3pZ2ppi6+xd3aUfg4brfrLkDBHRIVjMP0eBHrKrhB+NKcDyMAg8fAbGL3Npg/F6AwWA==} + '@opentelemetry/core@1.24.1': + resolution: {integrity: sha512-wMSGfsdmibI88K9wB498zXY04yThPexo8jvwNNlm542HZB7XrrMRBbAyKJqG8qDRJwIBdBrPMi4V9ZPW/sqrcg==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.9.0' - '@opentelemetry/core@1.26.0': - resolution: {integrity: sha512-1iKxXXE8415Cdv0yjG3G6hQnB5eVEsJce3QaawX8SjDn0mAS0ZM8fAbZZJD4ajvhC15cePvosSCut404KrIIvQ==} + '@opentelemetry/core@1.30.0': + resolution: {integrity: sha512-Q/3u/K73KUjTCnFUP97ZY+pBjQ1kPEgjOfXj/bJl8zW7GbXdkw6cwuyZk6ZTXkVgCBsYRYUzx4fvYK1jxdb9MA==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/exporter-trace-otlp-grpc@0.39.1': - resolution: {integrity: sha512-l5RhLKx6U+yuLhMrtgavTDthX50E1mZM3/SSySC7OPZiArFHV/b/9x9jxAzrOgIQUDxyj4N0V9aLKSA2t7Qzxg==} + '@opentelemetry/exporter-trace-otlp-grpc@0.51.1': + resolution: {integrity: sha512-P9+Hkszih95ITvldGZ+kXvj9HpD1QfS+PwooyHK72GYA+Bgm+yUSAsDkUkDms8+s9HW6poxURv3LcjaMuBBpVQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 @@ -3951,23 +4262,23 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/otlp-exporter-base@0.39.1': - resolution: {integrity: sha512-Pv5X8fbi6jD/RJBePyn7MnCSuE6MbPB6dl+7YYBWJ5RcMGYMwvLXjd4h2jWsPV2TSUg38H/RoSP0aXvQ06Y7iw==} + '@opentelemetry/otlp-exporter-base@0.51.1': + resolution: {integrity: sha512-UYlnOYyDdzo1Gw559EHCzru0RwhvuXCwoH8jGo9J4gO1TE58GjnEmIjomMsKBCym3qWNJfIQXw+9SZCV0DdQNg==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 - '@opentelemetry/otlp-grpc-exporter-base@0.39.1': - resolution: {integrity: sha512-u3ErFRQqQFKjjIMuwLWxz/tLPYInfmiAmSy//fGSCzCh2ZdJgqQjMOAxBgqFtCF2xFL+OmMhyuC2ThMzceGRWA==} + '@opentelemetry/otlp-grpc-exporter-base@0.51.1': + resolution: {integrity: sha512-ZAS+4pq8o7dsugGTwV9s6JMKSxi+guIHdn0acOv0bqj26e9pWDFx5Ky+bI0aY46uR9Y0JyXqY+KAEYM/SO3DFA==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 - '@opentelemetry/otlp-transformer@0.39.1': - resolution: {integrity: sha512-0hgVnXXz5efI382B/24NxD4b6Zxlh7nxCdJkxkdmQMbn0yRiwoq/ZT+QG8eUL6JNzsBAV1WJlF5aJNsL8skHvw==} + '@opentelemetry/otlp-transformer@0.51.1': + resolution: {integrity: sha512-OppYOXwV9LQqqtYUCywqoOqX/JT9LQ5/FMuPZ//eTkvuHdUC4ZMwz2c6uSoT2R90GWvvGnF1iEqTGyTT3xAt2Q==} engines: {node: '>=14'} peerDependencies: - '@opentelemetry/api': '>=1.3.0 <1.5.0' + '@opentelemetry/api': '>=1.3.0 <1.9.0' '@opentelemetry/propagator-b3@1.22.0': resolution: {integrity: sha512-qBItJm9ygg/jCB5rmivyGz1qmKZPsL/sX715JqPMFgq++Idm0x+N9sLQvWFHFt2+ZINnCSojw7FVBgFW6izcXA==} @@ -3981,42 +4292,36 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.9.0' - '@opentelemetry/resources@1.13.0': - resolution: {integrity: sha512-euqjOkiN6xhjE//0vQYGvbStxoD/WWQRhDiO0OTLlnLBO9Yw2Gd/VoSx2H+svsebjzYk5OxLuREBmcdw6rbUNg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.5.0' - '@opentelemetry/resources@1.22.0': resolution: {integrity: sha512-+vNeIFPH2hfcNL0AJk/ykJXoUCtR1YaDUZM+p3wZNU4Hq98gzq+7b43xbkXjadD9VhWIUQqEwXyY64q6msPj6A==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.9.0' - '@opentelemetry/resources@1.26.0': - resolution: {integrity: sha512-CPNYchBE7MBecCSVy0HKpUISEeJOniWqcHaAHpmasZ3j9o6V3AyBzhRc90jdmemq0HOxDr6ylhUbDhBqqPpeNw==} + '@opentelemetry/resources@1.24.1': + resolution: {integrity: sha512-cyv0MwAaPF7O86x5hk3NNgenMObeejZFLJJDVuSeSMIsknlsj3oOZzRv3qSzlwYomXsICfBeFFlxwHQte5mGXQ==} engines: {node: '>=14'} peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' + '@opentelemetry/api': '>=1.0.0 <1.9.0' - '@opentelemetry/sdk-logs@0.39.1': - resolution: {integrity: sha512-/gmgKfZ1ZVFporKuwsewqIyvaUIGpv76JZ7lBpHQQPb37IMpaXO6pdqFI4ebHAWfNIm3akMyhmdtzivcgF3lgw==} + '@opentelemetry/resources@1.30.0': + resolution: {integrity: sha512-5mGMjL0Uld/99t7/pcd7CuVtJbkARckLVuiOX84nO8RtLtIz0/J6EOHM2TGvPZ6F4K+XjUq13gMx14w80SVCQg==} engines: {node: '>=14'} peerDependencies: - '@opentelemetry/api': '>=1.4.0 <1.5.0' - '@opentelemetry/api-logs': '>=0.38.0' + '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/sdk-metrics@1.13.0': - resolution: {integrity: sha512-MOjZX6AnSOqLliCcZUrb+DQKjAWXBiGeICGbHAGe5w0BB18PJIeIo995lO5JSaFfHpmUMgJButTPfJJD27W3Vg==} + '@opentelemetry/sdk-logs@0.51.1': + resolution: {integrity: sha512-ULQQtl82b673PpZc5/0EtH4V+BrwVOgKJZEB7tYZnGTG3I98tQVk89S9/JSixomDr++F4ih+LSJTCqIKBz+MQQ==} engines: {node: '>=14'} peerDependencies: - '@opentelemetry/api': '>=1.3.0 <1.5.0' + '@opentelemetry/api': '>=1.4.0 <1.9.0' + '@opentelemetry/api-logs': '>=0.39.1' - '@opentelemetry/sdk-trace-base@1.13.0': - resolution: {integrity: sha512-moTiQtc0uPR1hQLt6gLDJH9IIkeBhgRb71OKjNHZPE1VF45fHtD6nBDi5J/DkTHTwYP5X3kBJLa3xN7ub6J4eg==} + '@opentelemetry/sdk-metrics@1.24.1': + resolution: {integrity: sha512-FrAqCbbGao9iKI+Mgh+OsC9+U2YMoXnlDHe06yH7dvavCKzE3S892dGtX54+WhSFVxHR/TMRVJiK/CV93GR0TQ==} engines: {node: '>=14'} peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.5.0' + '@opentelemetry/api': '>=1.3.0 <1.9.0' '@opentelemetry/sdk-trace-base@1.22.0': resolution: {integrity: sha512-pfTuSIpCKONC6vkTpv6VmACxD+P1woZf4q0K46nSUvXFvOFqjBYKFaAMkKD3M1mlKUUh0Oajwj35qNjMl80m1Q==} @@ -4024,8 +4329,14 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.9.0' - '@opentelemetry/sdk-trace-base@1.26.0': - resolution: {integrity: sha512-olWQldtvbK4v22ymrKLbIcBi9L2SpMO84sCPY54IVsJhP9fRsxJT194C/AVaAuJzLE30EdhhM1VmvVYR7az+cw==} + '@opentelemetry/sdk-trace-base@1.24.1': + resolution: {integrity: sha512-zz+N423IcySgjihl2NfjBf0qw1RWe11XIAWVrTNOSSI6dtSPJiVom2zipFB2AEEtJWpv0Iz6DY6+TjnyTV5pWg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.9.0' + + '@opentelemetry/sdk-trace-base@1.30.0': + resolution: {integrity: sha512-RKQDaDIkV7PwizmHw+rE/FgfB2a6MBx+AEVVlAHXRG1YYxLiBpPX2KhmoB99R5vA4b72iJrjle68NDWnbrE9Dg==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' @@ -4036,16 +4347,16 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.9.0' - '@opentelemetry/semantic-conventions@1.13.0': - resolution: {integrity: sha512-LMGqfSZkaMQXqewO0o1wvWr/2fQdCh4a3Sqlxka/UsJCe0cfLulh6x2aqnKLnsrSGiCq5rSCwvINd152i0nCqw==} - engines: {node: '>=14'} - '@opentelemetry/semantic-conventions@1.22.0': resolution: {integrity: sha512-CAOgFOKLybd02uj/GhCdEeeBjOS0yeoDeo/CA7ASBSmenpZHAKGB3iDm/rv3BQLcabb/OprDEsSQ1y0P8A7Siw==} engines: {node: '>=14'} - '@opentelemetry/semantic-conventions@1.27.0': - resolution: {integrity: sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==} + '@opentelemetry/semantic-conventions@1.24.1': + resolution: {integrity: sha512-VkliWlS4/+GHLLW7J/rVBA00uXus1SWvwFvcUDxDwmFxYfg/2VI6ekwdXS28cjI8Qz2ky2BzG8OUHo+WeYIWqw==} + engines: {node: '>=14'} + + '@opentelemetry/semantic-conventions@1.28.0': + resolution: {integrity: sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==} engines: {node: '>=14'} '@phosphor-icons/core@2.0.8': @@ -5658,6 +5969,9 @@ packages: '@swc/counter@0.1.3': resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + '@swc/helpers@0.5.15': + resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} + '@swc/helpers@0.5.5': resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==} @@ -6119,18 +6433,12 @@ packages: '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - '@types/katex@0.14.0': - resolution: {integrity: sha512-+2FW2CcT0K3P+JMR8YG846bmDwplKUTsWgT2ENwdQ1UdVfRk3GQrh6Mi4sTopy30gI8Uau5CEqHTDZ6YvWIUPA==} - '@types/katex@0.16.7': resolution: {integrity: sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==} '@types/lodash@4.17.0': resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==} - '@types/mdast@3.0.15': - resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} - '@types/mdast@4.0.3': resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==} @@ -6161,6 +6469,9 @@ packages: '@types/node@20.11.29': resolution: {integrity: sha512-P99thMkD/1YkCvAtOd6/zGedKNA0p2fj4ZpjCzcNiSCBWgm3cNRTBfa/qjFnsKkkojxu4vVLtWpesnZ9+ap+gA==} + '@types/node@22.10.5': + resolution: {integrity: sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ==} + '@types/node@22.7.5': resolution: {integrity: sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==} @@ -6170,9 +6481,6 @@ packages: '@types/offscreencanvas@2019.7.3': resolution: {integrity: sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A==} - '@types/parse5@6.0.3': - resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} - '@types/pretty-hrtime@1.0.3': resolution: {integrity: sha512-nj39q0wAIdhwn7DGUyT9irmsKK1tV0bd5WFEhgpqNTMFZ8cE+jieuTphCW0tfdm47S2zVT5mr09B28b1chmQMA==} @@ -6384,6 +6692,18 @@ packages: peerDependencies: react: '>= 16.8.0' + '@vercel/edge-config-fs@0.1.0': + resolution: {integrity: sha512-NRIBwfcS0bUoUbRWlNGetqjvLSwgYH/BqKqDN7vK1g32p7dN96k0712COgaz6VFizAm9b0g6IG6hR6+hc0KCPg==} + + '@vercel/edge-config@1.4.0': + resolution: {integrity: sha512-69Wg5gw9DzwnyUmnjToSeLRm1nm8mCPgN0kflX8EHRHyqvzH80wPem5A8rI2LXPb2Y9tJNoqN3vXPcQhS2Wh5g==} + engines: {node: '>=14.6'} + peerDependencies: + '@opentelemetry/api': ^1.7.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + '@vercel/ncc@0.38.1': resolution: {integrity: sha512-IBBb+iI2NLu4VQn3Vwldyi2QwaXt5+hTyh58ggAMoCGE6DJmPvwL3KPBWcJl1m9LYPChBLE980Jw+CS4Wokqxw==} hasBin: true @@ -6419,50 +6739,50 @@ packages: '@vitest/utils@1.4.0': resolution: {integrity: sha512-mx3Yd1/6e2Vt/PUC98DcqTirtfxUyAZ32uK82r8rZzbtBeBo+nqgnjx/LvqQdWsrvNtm14VmurNgcf4nqY5gJg==} - '@webassemblyjs/ast@1.12.1': - resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} + '@webassemblyjs/ast@1.14.1': + resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} - '@webassemblyjs/floating-point-hex-parser@1.11.6': - resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} + '@webassemblyjs/floating-point-hex-parser@1.13.2': + resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} - '@webassemblyjs/helper-api-error@1.11.6': - resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} + '@webassemblyjs/helper-api-error@1.13.2': + resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} - '@webassemblyjs/helper-buffer@1.12.1': - resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} + '@webassemblyjs/helper-buffer@1.14.1': + resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} - '@webassemblyjs/helper-numbers@1.11.6': - resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} + '@webassemblyjs/helper-numbers@1.13.2': + resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} - '@webassemblyjs/helper-wasm-bytecode@1.11.6': - resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} + '@webassemblyjs/helper-wasm-bytecode@1.13.2': + resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} - '@webassemblyjs/helper-wasm-section@1.12.1': - resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} + '@webassemblyjs/helper-wasm-section@1.14.1': + resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} - '@webassemblyjs/ieee754@1.11.6': - resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} + '@webassemblyjs/ieee754@1.13.2': + resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} - '@webassemblyjs/leb128@1.11.6': - resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} + '@webassemblyjs/leb128@1.13.2': + resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} - '@webassemblyjs/utf8@1.11.6': - resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} + '@webassemblyjs/utf8@1.13.2': + resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} - '@webassemblyjs/wasm-edit@1.12.1': - resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} + '@webassemblyjs/wasm-edit@1.14.1': + resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} - '@webassemblyjs/wasm-gen@1.12.1': - resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} + '@webassemblyjs/wasm-gen@1.14.1': + resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} - '@webassemblyjs/wasm-opt@1.12.1': - resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} + '@webassemblyjs/wasm-opt@1.14.1': + resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} - '@webassemblyjs/wasm-parser@1.12.1': - resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} + '@webassemblyjs/wasm-parser@1.14.1': + resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} - '@webassemblyjs/wast-printer@1.12.1': - resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} + '@webassemblyjs/wast-printer@1.14.1': + resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} '@wojtekmaj/date-utils@1.5.1': resolution: {integrity: sha512-+i7+JmNiE/3c9FKxzWFi2IjRJ+KzZl1QPu6QNrsgaa2MuBgXvUy4gA1TVzf/JMdIIloB76xSKikTWuyYAIVLww==} @@ -6563,6 +6883,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} + engines: {node: '>=0.4.0'} + hasBin: true + address@1.2.2: resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} engines: {node: '>= 10.0.0'} @@ -6579,17 +6904,33 @@ packages: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} + ajv-formats@2.1.1: + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + ajv-keywords@3.5.2: resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} peerDependencies: ajv: ^6.9.1 + ajv-keywords@5.1.0: + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + peerDependencies: + ajv: ^8.8.2 + ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} ajv@8.12.0: resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + ajv@8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + algoliasearch@4.22.1: resolution: {integrity: sha512-jwydKFQJKIx9kIZ8Jm44SdpigFwRGPESaxZBaHSV0XWN2yBJAOT4mT7ppvlrpA4UGzz92pqFnVKr/kaZXrcreg==} @@ -6887,6 +7228,11 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + babel-plugin-polyfill-corejs2@0.4.12: + resolution: {integrity: sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + babel-plugin-polyfill-corejs3@0.10.6: resolution: {integrity: sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==} peerDependencies: @@ -6907,6 +7253,11 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + babel-plugin-polyfill-regenerator@0.6.3: + resolution: {integrity: sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + babel-plugin-react-compiler@0.0.0-experimental-5f79ba2-20240815: resolution: {integrity: sha512-9/pMj32tpmzWyjnPmRqQ25L9MJkffqVPEsoboHaSKypnaB/Xo8haWk54T5WhRf/WfE0kB36w2Nm/STkAHGXJWw==} @@ -6964,6 +7315,9 @@ packages: resolution: {integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==} engines: {node: '>=12.0.0'} + bezier-easing@2.1.0: + resolution: {integrity: sha512-gbIqZ/eslnUFC1tjEvtz0sgx+xTK20wDnYMIA27VA04R7w6xxXQPZDbibjA9DTWZRA2CXtwHykkVzlCaAJAZig==} + bezier-js@6.1.4: resolution: {integrity: sha512-PA0FW9ZpcHbojUCMu28z9Vg/fNkwTj5YhusSAjHHDfHDGLxJ6YUKrAN2vk1fP2MMOxVw4Oko16FMlRGVBGqLKg==} @@ -7088,7 +7442,12 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - bser@2.1.1: + browserslist@4.24.4: + resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + bser@2.1.1: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} buffer-alloc-unsafe@1.1.0: @@ -7203,8 +7562,8 @@ packages: caniuse-lite@1.0.30001599: resolution: {integrity: sha512-LRAQHZ4yT1+f9LemSMeqdMpMxZcc4RMWdj4tiFe3G8tNkWK+E58g+/tzotb5cU6TbcVJLr4fySiAW7XmxQvZQA==} - caniuse-lite@1.0.30001668: - resolution: {integrity: sha512-nWLrdxqCdblixUO+27JtGJJE/txpJlyUy5YN1u53wLZkP0emYCo5zgS6QYft7VUYR42LGgi/S5hdLZTrnyIddw==} + caniuse-lite@1.0.30001692: + resolution: {integrity: sha512-A95VKan0kdtrsnMubMKxEKUKImOPSuCpYgxSQBo036P5YYgVIcOYJEgt/txJWqObiRQeISNCfef9nvlQ0vbV7A==} canvas-color-tracker@1.2.1: resolution: {integrity: sha512-i5clg2pEdaWqHuEM/B74NZNLkHh5+OkXbA/T4iaBiaNDagkOCXkLNrhqUfdUugsRwuaNRU20e/OygzxWRor3yg==} @@ -7404,6 +7763,9 @@ packages: resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==} engines: {node: '>=0.10.0'} + collapse-white-space@2.1.0: + resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} + color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -7467,10 +7829,6 @@ packages: resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} engines: {node: ^12.20.0 || >=14} - comment-json@4.2.3: - resolution: {integrity: sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==} - engines: {node: '>= 6'} - comment-json@4.2.5: resolution: {integrity: sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw==} engines: {node: '>= 6'} @@ -7501,6 +7859,10 @@ packages: resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} engines: {node: '>= 0.8.0'} + compression@1.7.5: + resolution: {integrity: sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==} + engines: {node: '>= 0.8.0'} + computed-style@0.1.4: resolution: {integrity: sha512-WpAmaKbMNmS3OProfHIdJiNleNJdgUrJfbKArXua28QF7+0CoZjlLn0lp6vlc+dl5r2/X9GQiQRQQU4BzSa69w==} @@ -7540,9 +7902,9 @@ packages: resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} engines: {node: '>= 0.6'} - contentlayer@0.3.4: - resolution: {integrity: sha512-FYDdTUFaN4yqep0waswrhcXjmMJnPD5iXDTtxcUCGdklfuIrXM2xLx51xl748cHmGA6IsC+27YZFxU6Ym13QIA==} - engines: {node: '>=14.18'} + contentlayer2@0.5.3: + resolution: {integrity: sha512-0vHdTWsuTgY/dMKxhCc8wILoeaCK5ye42i1gRd1jOoKFXQ6q/eMnSp+gSE81V8wbBa2jv7cjP90xpiRfzaXTWw==} + engines: {node: '>=18'} hasBin: true continuation-local-storage@3.2.1: @@ -7823,10 +8185,6 @@ packages: resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} engines: {node: '>=0.10'} - data-uri-to-buffer@4.0.1: - resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} - engines: {node: '>= 12'} - data-urls@5.0.0: resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} engines: {node: '>=18'} @@ -7883,6 +8241,15 @@ packages: supports-color: optional: true + debug@4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decamelize@1.2.0: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} @@ -8045,10 +8412,6 @@ packages: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - diff@5.2.0: - resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} - engines: {node: '>=0.3.1'} - diffie-hellman@5.0.3: resolution: {integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==} @@ -8163,6 +8526,9 @@ packages: electron-to-chromium@1.5.38: resolution: {integrity: sha512-VbeVexmZ1IFh+5EfrYz1I0HTzHVIlJa112UEWhciPyeOcKJGeTv6N8WnG4wsQB81DGCaVEGhpSb6o6a8WYFXXg==} + electron-to-chromium@1.5.80: + resolution: {integrity: sha512-LTrKpW0AqIuHwmlVNV+cjFYTnXtM9K37OGhpe0ZI10ScPSxqVSryZHIY3WnCS5NSYbBODRTZyhRMS2h5FAEqAw==} + elliptic@6.5.5: resolution: {integrity: sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw==} @@ -8196,8 +8562,8 @@ packages: resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} engines: {node: '>=10.13.0'} - enhanced-resolve@5.17.1: - resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} + enhanced-resolve@5.18.0: + resolution: {integrity: sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==} engines: {node: '>=10.13.0'} enquirer@2.4.1: @@ -8289,6 +8655,9 @@ packages: es-module-lexer@1.5.4: resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + es-module-lexer@1.6.0: + resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==} + es-object-atoms@1.0.0: resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} engines: {node: '>= 0.4'} @@ -8304,6 +8673,12 @@ packages: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} + esast-util-from-estree@2.0.0: + resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==} + + esast-util-from-js@2.0.1: + resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==} + esbuild-plugin-alias@0.2.1: resolution: {integrity: sha512-jyfL/pwPqaFXyKnj8lP8iLk6Z0m099uXR45aSN8Av1XD4vhvQutxxPzgA2bTcAwQpa1zCXDcWOlhFgyP3GKqhQ==} @@ -8599,30 +8974,26 @@ packages: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} - estree-util-attach-comments@2.1.1: - resolution: {integrity: sha512-+5Ba/xGGS6mnwFbXIuQiDPTbuTxuMCooq3arVv7gPZtYpjp+VXH/NkHAP35OOefPhNG/UGqU3vt/LTABwcHX0w==} - - estree-util-build-jsx@2.2.2: - resolution: {integrity: sha512-m56vOXcOBuaF+Igpb9OPAy7f9w9OIkb5yhjsZuaPm7HoGi4oTOQi0h2+yZ+AtKklYFZ+rPC4n0wYCJCEU1ONqg==} + estree-util-attach-comments@3.0.0: + resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} - estree-util-is-identifier-name@1.1.0: - resolution: {integrity: sha512-OVJZ3fGGt9By77Ix9NhaRbzfbDV/2rx9EP7YIDJTmsZSEc5kYn2vWcNccYyahJL2uAQZK2a5Or2i0wtIKTPoRQ==} - - estree-util-is-identifier-name@2.1.0: - resolution: {integrity: sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ==} + estree-util-build-jsx@3.0.1: + resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} estree-util-is-identifier-name@3.0.0: resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} - estree-util-to-js@1.2.0: - resolution: {integrity: sha512-IzU74r1PK5IMMGZXUVZbmiu4A1uhiPgW5hm1GjcOfr4ZzHaMPpLNJjR7HjXiIOzi25nZDrgFTobHTkV5Q6ITjA==} + estree-util-scope@1.0.0: + resolution: {integrity: sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==} - estree-util-value-to-estree@1.3.0: - resolution: {integrity: sha512-Y+ughcF9jSUJvncXwqRageavjrNPAI+1M/L3BI3PyLp1nmgYTGUXU6t5z1Y7OWuThoDdhPME07bQU+d5LxdJqw==} - engines: {node: '>=12.0.0'} + estree-util-to-js@2.0.0: + resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} - estree-util-visit@1.2.1: - resolution: {integrity: sha512-xbgqcrkIVbIG+lI/gzbvd9SGTJL4zqJKBFttUl5pP27KhAjtMKbX/mQXJ7qgyXpMgVy/zvpm0xoQQaGL8OloOw==} + estree-util-value-to-estree@3.2.1: + resolution: {integrity: sha512-Vt2UOjyPbNQQgT5eJh+K5aATti0OjCIAGc9SgMdOFYbohuifsWclR74l0iZTJwePMgWYdX1hlVS+dedH9XV8kw==} + + estree-util-visit@2.0.0: + resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} @@ -8815,10 +9186,17 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + fast-uri@3.0.5: + resolution: {integrity: sha512-5JnBCWpFlMo0a3ciDy/JckMzzv1U9coZrIhedq+HXxxUfDTAiS0LA8OKVao4G9BxmCVck/jtA5r3KAtRWEyD8Q==} + fast-xml-parser@4.5.0: resolution: {integrity: sha512-/PlTQCI96+fZMAOLMZK4CWG1ItCbfZ/0jx7UIJFChPNrx7tcEgerUgWbeieCM9MfHInUDyK8DWYZ+YrywDJuTg==} hasBin: true + fast-xml-parser@4.5.1: + resolution: {integrity: sha512-y655CeyUQ+jj7KBbYMc4FG01V8ZQqjN+gDYGJ50RtfsUB8iG9AmwmwoAgeKLJdmueKKMrH1RJ7yXHTSoczdv5w==} + hasBin: true + fastest-levenshtein@1.0.16: resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} engines: {node: '>= 4.9.1'} @@ -8852,10 +9230,6 @@ packages: picomatch: optional: true - fetch-blob@3.2.0: - resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} - engines: {node: ^12.20 || >= 14.13} - fetch-retry@4.1.1: resolution: {integrity: sha512-e6eB7zN6UBSwGVwrbWVH+gdLnkW9WwHhmq2YDK1Sh30pzx1onRVGBvogTlUeWxwTa+L86NYdo4hFkh7O8ZjSnA==} @@ -9009,10 +9383,6 @@ packages: resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} engines: {node: '>=0.4.x'} - formdata-polyfill@4.0.10: - resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} - engines: {node: '>=12.20.0'} - forwarded@0.2.0: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} @@ -9092,9 +9462,6 @@ packages: resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - fs-monkey@1.0.5: - resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==} - fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -9189,6 +9556,9 @@ packages: get-tsconfig@4.7.3: resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} + get-tsconfig@4.8.1: + resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} + get-user-locale@2.3.2: resolution: {integrity: sha512-O2GWvQkhnbDoWFUJfaBlDIKUEdND8ATpBXD6KXcbhxlfktyD/d8w6mkzM/IlQEqGZAMz/PW6j6Hv53BiigKLUQ==} @@ -9378,17 +9748,17 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} - hast-util-from-dom@4.2.0: - resolution: {integrity: sha512-t1RJW/OpJbCAJQeKi3Qrj1cAOLA0+av/iPFori112+0X7R3wng+jxLA+kXec8K4szqPRGI8vPxbbpEYvvpwaeQ==} + hast-util-from-dom@5.0.1: + resolution: {integrity: sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q==} - hast-util-from-html-isomorphic@1.0.0: - resolution: {integrity: sha512-Yu480AKeOEN/+l5LA674a+7BmIvtDj24GvOt7MtQWuhzUwlaaRWdEPXAh3Qm5vhuthpAipFb2vTetKXWOjmTvw==} + hast-util-from-html-isomorphic@2.0.0: + resolution: {integrity: sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==} - hast-util-from-html@1.0.2: - resolution: {integrity: sha512-LhrTA2gfCbLOGJq2u/asp4kwuG0y6NhWTXiPKP+n0qNukKy7hc10whqqCFfyvIA1Q5U5d0sp9HhNim9gglEH4A==} + hast-util-from-html@2.0.3: + resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==} - hast-util-from-parse5@7.1.2: - resolution: {integrity: sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw==} + hast-util-from-parse5@8.0.2: + resolution: {integrity: sha512-SfMzfdAi/zAoZ1KkFEyyeXBn7u/ShQrfd675ZEE9M3qj+PMFX05xubzRyF76CCSJu8au9jgVxDV1+okFvgZU4A==} hast-util-has-property@2.0.1: resolution: {integrity: sha512-X2+RwZIMTMKpXUzlotatPzWj8bspCymtXH3cfG3iQKV+wPF53Vgaqxi/eLqGck0wKq1kS9nvoB1wchbCPEL8sg==} @@ -9399,41 +9769,32 @@ packages: hast-util-heading-rank@3.0.0: resolution: {integrity: sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==} - hast-util-is-element@2.1.3: - resolution: {integrity: sha512-O1bKah6mhgEq2WtVMk+Ta5K7pPMqsBBlmzysLdcwKVrqzZQ0CHqUPiIVspNhAG1rvxpvJjtGee17XfauZYKqVA==} - hast-util-is-element@3.0.0: resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} hast-util-parse-selector@3.1.1: resolution: {integrity: sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==} - hast-util-raw@7.2.3: - resolution: {integrity: sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg==} + hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} - hast-util-to-estree@2.3.3: - resolution: {integrity: sha512-ihhPIUPxN0v0w6M5+IiAZZrn0LH2uZomeWwhn7uP7avZC6TE7lIiEh2yBMPr5+zi1aUCXq6VoYRgs2Bw9xmycQ==} + hast-util-to-estree@3.1.1: + resolution: {integrity: sha512-IWtwwmPskfSmma9RpzCappDUitC8t5jhAynHhc1m2+5trOgsrp7txscUSavc5Ic8PATyAjfrCK1wgtxh2cICVQ==} - hast-util-to-html@8.0.4: - resolution: {integrity: sha512-4tpQTUOr9BMjtYyNlt0P50mH7xj0Ks2xpo8M943Vykljf99HW6EzulIoJP1N3eKOSScEHzyzi9dm7/cn0RfGwA==} + hast-util-to-html@9.0.4: + resolution: {integrity: sha512-wxQzXtdbhiwGAUKrnQJXlOPmHnEehzphwkK7aluUPQ+lEc1xefC8pblMgpp2w5ldBTEfveRIrADcrhGIWrlTDA==} hast-util-to-jsx-runtime@2.3.0: resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==} - hast-util-to-parse5@7.1.0: - resolution: {integrity: sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==} - hast-util-to-string@2.0.0: resolution: {integrity: sha512-02AQ3vLhuH3FisaMM+i/9sm4OXGSq1UhOOCpTLLQtHdL3tZt7qil69r8M8iDkZYyC0HCFylcYoP+8IO7ddta1A==} hast-util-to-string@3.0.0: resolution: {integrity: sha512-OGkAxX1Ua3cbcW6EJ5pT/tslVb90uViVkcJ4ZZIMW/R33DX/AkcJcRrPebPwJkHYwlDHXz4aIwvAAaAdtrACFA==} - hast-util-to-text@3.1.2: - resolution: {integrity: sha512-tcllLfp23dJJ+ju5wCCZHVpzsQQ43+moJbqVX3jNWPB7z/KFC4FyZD6R7y94cHL6MQ33YtMZL8Z0aIXXI4XFTw==} - - hast-util-whitespace@2.0.1: - resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==} + hast-util-to-text@4.0.2: + resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} hast-util-whitespace@3.0.0: resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} @@ -9441,6 +9802,9 @@ packages: hastscript@7.2.0: resolution: {integrity: sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==} + hastscript@9.0.0: + resolution: {integrity: sha512-jzaLBGavEDKHrc5EfFImKN7nZKKBdSLIdGvCwDZ9TfzbF2ffXiov8CKE445L2Z1Ek2t/m4SKQ2j6Ipv7NyUolw==} + he@1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true @@ -9517,8 +9881,8 @@ packages: html-url-attributes@3.0.0: resolution: {integrity: sha512-/sXbVCWayk6GDVg3ctOX6nxaVj7So40FcFAnWlWGNAB1LpYKcV5Cd10APjPjW80O7zYW2MsjBV4zZ7IZO5fVow==} - html-void-elements@2.0.1: - resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==} + html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} html-webpack-plugin@5.6.0: resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==} @@ -9578,6 +9942,10 @@ packages: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} + hyperdyperid@1.2.0: + resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} + engines: {node: '>=10.18'} + i18next-browser-languagedetector@7.2.0: resolution: {integrity: sha512-U00DbDtFIYD3wkWsr2aVGfXGAj2TgnELzOX9qv8bT0aJtvPV9CRO77h+vgmHFBMe7LAxdwvT/7VkCWGya6L3tA==} @@ -9632,8 +10000,8 @@ packages: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} - import-in-the-middle@1.11.2: - resolution: {integrity: sha512-gK6Rr6EykBcc6cVWRSBR5TWf8nn6hZMYSRYqCcHa0l0d1fPK7JSYo6+Mlmck76jIX9aL/IZ71c06U2VpFwl1zA==} + import-in-the-middle@1.12.0: + resolution: {integrity: sha512-yAgSE7GmtRcu4ZUSFX/4v69UGXwugFFSdIQJ14LHPOPPQrWv8Y7O9PHsw8Ovk7bKCLe4sjXMbZFqGFcLHpZ89w==} import-meta-resolve@4.1.0: resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} @@ -9653,9 +10021,9 @@ packages: indexof@0.0.1: resolution: {integrity: sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==} - inflection@2.0.1: - resolution: {integrity: sha512-wzkZHqpb4eGrOKBl34xy3umnYHx8Si5R1U4fwmdxLo5gdH6mEK8gclckTj/qWqy4Je0bsDYe/qazZYuO7xe3XQ==} - engines: {node: '>=14.0.0'} + inflection@3.0.2: + resolution: {integrity: sha512-+Bg3+kg+J6JUWn8J6bzFmOWkTQ6L/NHfDRSYU+EVvuKHDxUDHAXgqixHfVlzuBQaPOTac8hn43aPhMNk6rMe3g==} + engines: {node: '>=18.0.0'} inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} @@ -9787,6 +10155,10 @@ packages: resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} engines: {node: '>= 0.4'} + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + engines: {node: '>= 0.4'} + is-data-view@1.0.1: resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} engines: {node: '>= 0.4'} @@ -9920,10 +10292,6 @@ packages: resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} engines: {node: '>=8'} - is-plain-obj@3.0.0: - resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} - engines: {node: '>=10'} - is-plain-obj@4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} @@ -9939,9 +10307,6 @@ packages: is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - is-reference@3.0.2: - resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} - is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} @@ -10186,6 +10551,11 @@ packages: engines: {node: '>=6'} hasBin: true + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} @@ -10583,9 +10953,9 @@ packages: map-stream@0.1.0: resolution: {integrity: sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==} - markdown-extensions@1.1.1: - resolution: {integrity: sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==} - engines: {node: '>=0.10.0'} + markdown-extensions@2.0.0: + resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} + engines: {node: '>=16'} markdown-table@3.0.3: resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} @@ -10633,84 +11003,57 @@ packages: md5hex@1.0.0: resolution: {integrity: sha512-c2YOUbp33+6thdCUi34xIyOU/a7bvGKj/3DB1iaPMTuPHf/Q2d5s4sn1FaCOO43XkXggnb08y5W2PU8UNYNLKQ==} - mdast-util-definitions@5.1.2: - resolution: {integrity: sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==} - - mdast-util-find-and-replace@2.2.2: - resolution: {integrity: sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==} - - mdast-util-from-markdown@1.3.1: - resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==} + mdast-util-find-and-replace@3.0.2: + resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} mdast-util-from-markdown@2.0.0: resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==} - mdast-util-frontmatter@1.0.1: - resolution: {integrity: sha512-JjA2OjxRqAa8wEG8hloD0uTU0kdn8kbtOWpPP94NBkfAlbxn4S8gCGf/9DwFtEeGPXrDcNXdiDjVaRdUFqYokw==} + mdast-util-frontmatter@2.0.1: + resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==} - mdast-util-gfm-autolink-literal@1.0.3: - resolution: {integrity: sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==} + mdast-util-gfm-autolink-literal@2.0.1: + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} - mdast-util-gfm-footnote@1.0.2: - resolution: {integrity: sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==} + mdast-util-gfm-footnote@2.0.0: + resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} - mdast-util-gfm-strikethrough@1.0.3: - resolution: {integrity: sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==} + mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} - mdast-util-gfm-table@1.0.7: - resolution: {integrity: sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==} + mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} - mdast-util-gfm-task-list-item@1.0.2: - resolution: {integrity: sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==} + mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} - mdast-util-gfm@2.0.2: - resolution: {integrity: sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==} + mdast-util-gfm@3.0.0: + resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} - mdast-util-math@2.0.2: - resolution: {integrity: sha512-8gmkKVp9v6+Tgjtq6SYx9kGPpTf6FVYRa53/DLh479aldR9AyP48qeVOgNZ5X7QUK7nOy4yw7vg6mbiGcs9jWQ==} - - mdast-util-mdx-expression@1.3.2: - resolution: {integrity: sha512-xIPmR5ReJDu/DHH1OoIT1HkuybIfRGYRywC+gJtI7qHjCJp/M9jrmBEJW22O8lskDWm562BX2W8TiAwRTb0rKA==} + mdast-util-math@3.0.0: + resolution: {integrity: sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==} mdast-util-mdx-expression@2.0.0: resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==} - mdast-util-mdx-jsx@2.1.4: - resolution: {integrity: sha512-DtMn9CmVhVzZx3f+optVDF8yFgQVt7FghCRNdlIaS3X5Bnym3hZwPbg/XW86vdpKjlc1PVj26SpnLGeJBXD3JA==} - mdast-util-mdx-jsx@3.1.2: resolution: {integrity: sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==} - mdast-util-mdx@2.0.1: - resolution: {integrity: sha512-38w5y+r8nyKlGvNjSEqWrhG0w5PmnRA+wnBvm+ulYCct7nsGYhFVb0lljS9bQav4psDAS1eGkP2LMVcZBi/aqw==} - - mdast-util-mdxjs-esm@1.3.1: - resolution: {integrity: sha512-SXqglS0HrEvSdUEfoXFtcg7DRl7S2cwOXc7jkuusG472Mmjag34DUDeOJUZtl+BVnyeO1frIgVpHlNRWc2gk/w==} + mdast-util-mdx@3.0.0: + resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} mdast-util-mdxjs-esm@2.0.1: resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} - mdast-util-phrasing@3.0.1: - resolution: {integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==} - mdast-util-phrasing@4.1.0: resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} - mdast-util-to-hast@12.3.0: - resolution: {integrity: sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==} - mdast-util-to-hast@13.1.0: resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==} - mdast-util-to-markdown@1.5.0: - resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==} - mdast-util-to-markdown@2.1.0: resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} - mdast-util-to-string@3.2.0: - resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==} - mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} @@ -10723,9 +11066,9 @@ packages: mdn-data@2.0.30: resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} - mdx-bundler@9.2.1: - resolution: {integrity: sha512-hWEEip1KU9MCNqeH2rqwzAZ1pdqPPbfkx9OTJjADqGPQz4t9BO85fhI7AP9gVYrpmfArf9/xJZUN0yBErg/G/Q==} - engines: {node: '>=14', npm: '>=6'} + mdx-bundler@10.0.3: + resolution: {integrity: sha512-vRtVZ5t+nUP0QtoRVgjDFO10YDjRgKe/19ie0IR8FqE8SugNn5RP4sCWBPzKoEwoGbqfQOrgHy+PHCVyfaCDQQ==} + engines: {node: '>=18', npm: '>=6'} peerDependencies: esbuild: 0.* @@ -10745,8 +11088,8 @@ packages: resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==} engines: {node: '>=10'} - memfs@3.5.3: - resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} + memfs@4.17.0: + resolution: {integrity: sha512-4eirfZ7thblFmqFjywlTmuWVSvccHAJbn1r8qQLzmTO11qcqpohOjmY2mFce6x7x7WtskzRqApPD0hv+Oa74jg==} engines: {node: '>= 4.0.0'} memoize-one@5.2.1: @@ -10916,177 +11259,114 @@ packages: engines: {node: '>=18'} hasBin: true - micromark-core-commonmark@1.1.0: - resolution: {integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==} - micromark-core-commonmark@2.0.0: resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==} - micromark-extension-frontmatter@1.1.1: - resolution: {integrity: sha512-m2UH9a7n3W8VAH9JO9y01APpPKmNNNs71P0RbknEmYSaZU5Ghogv38BYO94AI5Xw6OYfxZRdHZZ2nYjs/Z+SZQ==} + micromark-extension-frontmatter@2.0.0: + resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} - micromark-extension-gfm-autolink-literal@1.0.5: - resolution: {integrity: sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg==} + micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} - micromark-extension-gfm-footnote@1.1.2: - resolution: {integrity: sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q==} + micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} - micromark-extension-gfm-strikethrough@1.0.7: - resolution: {integrity: sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw==} + micromark-extension-gfm-strikethrough@2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} - micromark-extension-gfm-table@1.0.7: - resolution: {integrity: sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw==} + micromark-extension-gfm-table@2.1.0: + resolution: {integrity: sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==} - micromark-extension-gfm-tagfilter@1.0.2: - resolution: {integrity: sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==} + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} - micromark-extension-gfm-task-list-item@1.0.5: - resolution: {integrity: sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ==} + micromark-extension-gfm-task-list-item@2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} - micromark-extension-gfm@2.0.3: - resolution: {integrity: sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ==} + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} - micromark-extension-math@2.1.2: - resolution: {integrity: sha512-es0CcOV89VNS9wFmyn+wyFTKweXGW4CEvdaAca6SWRWPyYCbBisnjaHLjWO4Nszuiud84jCpkHsqAJoa768Pvg==} + micromark-extension-math@3.1.0: + resolution: {integrity: sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==} - micromark-extension-mdx-expression@1.0.8: - resolution: {integrity: sha512-zZpeQtc5wfWKdzDsHRBY003H2Smg+PUi2REhqgIhdzAa5xonhP03FcXxqFSerFiNUr5AWmHpaNPQTBVOS4lrXw==} + micromark-extension-mdx-expression@3.0.0: + resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==} - micromark-extension-mdx-jsx@1.0.5: - resolution: {integrity: sha512-gPH+9ZdmDflbu19Xkb8+gheqEDqkSpdCEubQyxuz/Hn8DOXiXvrXeikOoBA71+e8Pfi0/UYmU3wW3H58kr7akA==} + micromark-extension-mdx-jsx@3.0.1: + resolution: {integrity: sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg==} - micromark-extension-mdx-md@1.0.1: - resolution: {integrity: sha512-7MSuj2S7xjOQXAjjkbjBsHkMtb+mDGVW6uI2dBL9snOBCbZmoNgDAeZ0nSn9j3T42UE/g2xVNMn18PJxZvkBEA==} + micromark-extension-mdx-md@2.0.0: + resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} - micromark-extension-mdxjs-esm@1.0.5: - resolution: {integrity: sha512-xNRBw4aoURcyz/S69B19WnZAkWJMxHMT5hE36GtDAyhoyn/8TuAeqjFJQlwk+MKQsUD7b3l7kFX+vlfVWgcX1w==} + micromark-extension-mdxjs-esm@3.0.0: + resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} - micromark-extension-mdxjs@1.0.1: - resolution: {integrity: sha512-7YA7hF6i5eKOfFUzZ+0z6avRG52GpWR8DL+kN47y3f2KhxbBZMhmxe7auOeaTBrW2DenbbZTf1ea9tA2hDpC2Q==} - - micromark-factory-destination@1.1.0: - resolution: {integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==} + micromark-extension-mdxjs@3.0.0: + resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} micromark-factory-destination@2.0.0: resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} - micromark-factory-label@1.1.0: - resolution: {integrity: sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==} - micromark-factory-label@2.0.0: resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} - micromark-factory-mdx-expression@1.0.9: - resolution: {integrity: sha512-jGIWzSmNfdnkJq05c7b0+Wv0Kfz3NJ3N4cBjnbO4zjXIlxJr+f8lk+5ZmwFvqdAbUy2q6B5rCY//g0QAAaXDWA==} - - micromark-factory-space@1.1.0: - resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} + micromark-factory-mdx-expression@2.0.2: + resolution: {integrity: sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw==} micromark-factory-space@2.0.0: resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} - micromark-factory-title@1.1.0: - resolution: {integrity: sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==} - micromark-factory-title@2.0.0: resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} - micromark-factory-whitespace@1.1.0: - resolution: {integrity: sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==} - micromark-factory-whitespace@2.0.0: resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} - micromark-util-character@1.2.0: - resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} - micromark-util-character@2.1.0: resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} - micromark-util-chunked@1.1.0: - resolution: {integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==} - micromark-util-chunked@2.0.0: resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} - micromark-util-classify-character@1.1.0: - resolution: {integrity: sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==} - micromark-util-classify-character@2.0.0: resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} - micromark-util-combine-extensions@1.1.0: - resolution: {integrity: sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==} - micromark-util-combine-extensions@2.0.0: resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} - micromark-util-decode-numeric-character-reference@1.1.0: - resolution: {integrity: sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==} - micromark-util-decode-numeric-character-reference@2.0.1: resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} - micromark-util-decode-string@1.1.0: - resolution: {integrity: sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==} - micromark-util-decode-string@2.0.0: resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} - micromark-util-encode@1.1.0: - resolution: {integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==} - micromark-util-encode@2.0.0: resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} - micromark-util-events-to-acorn@1.2.3: - resolution: {integrity: sha512-ij4X7Wuc4fED6UoLWkmo0xJQhsktfNh1J0m8g4PbIMPlx+ek/4YdW5mvbye8z/aZvAPUoxgXHrwVlXAPKMRp1w==} - - micromark-util-html-tag-name@1.2.0: - resolution: {integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==} + micromark-util-events-to-acorn@2.0.2: + resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==} micromark-util-html-tag-name@2.0.0: resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} - micromark-util-normalize-identifier@1.1.0: - resolution: {integrity: sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==} - micromark-util-normalize-identifier@2.0.0: resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} - micromark-util-resolve-all@1.1.0: - resolution: {integrity: sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==} - micromark-util-resolve-all@2.0.0: resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} - micromark-util-sanitize-uri@1.2.0: - resolution: {integrity: sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==} - micromark-util-sanitize-uri@2.0.0: resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} - micromark-util-subtokenize@1.1.0: - resolution: {integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==} - micromark-util-subtokenize@2.0.0: resolution: {integrity: sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==} - micromark-util-symbol@1.1.0: - resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} - micromark-util-symbol@2.0.0: resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} - micromark-util-types@1.1.0: - resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} - micromark-util-types@2.0.0: resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} - micromark@3.2.0: - resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==} - micromark@4.0.0: resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} @@ -11240,10 +11520,6 @@ packages: peerDependencies: react-native-reanimated: '*' - mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} - mrmime@1.0.1: resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} engines: {node: '>=10'} @@ -11277,6 +11553,11 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + nanoid@3.3.8: + resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + napi-build-utils@1.0.2: resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} @@ -11291,19 +11572,23 @@ packages: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} + negotiator@0.6.4: + resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} + engines: {node: '>= 0.6'} + neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} nested-error-stacks@2.0.1: resolution: {integrity: sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==} - next-contentlayer@0.3.4: - resolution: {integrity: sha512-UtUCwgAl159KwfhNaOwyiI7Lg6sdioyKMeh+E7jxx0CJ29JuXGxBEYmCI6+72NxFGIFZKx8lvttbbQhbnYWYSw==} + next-contentlayer2@0.5.3: + resolution: {integrity: sha512-xNuiAJxeQOABiWsjJ6hFv/Ovb9vRujBgamaEjvYXiVecrBtCIyCDF3WpdDx4krfAd9WJRW8TN6OLpyZsG2ApjA==} peerDependencies: - contentlayer: 0.3.4 - next: ^12 || ^13 - react: '*' - react-dom: '*' + contentlayer2: 0.5.3 + next: '>=12.0.0' + react: ^18 || ^19 || ^19.0.0-rc + react-dom: ^18 || ^19 || ^19.0.0-rc next-plausible@3.12.0: resolution: {integrity: sha512-SSkEqKQ6PgR8fx3sYfIAT69k2xuCUXO5ngkSS19CjxY97lAoZxsfZpYednxB4zo0mHYv87JzhPynrdBPlCBVHg==} @@ -11312,8 +11597,8 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - next@14.2.5: - resolution: {integrity: sha512-0f8aRfBVL+mpzfBjYfQuLWh2WyAwtJXCRfkPF4UJ5qd2YwrHczsrSzXU4tRMV0OAxR8ZJZWPFn6uhSC56UTsLA==} + next@14.2.12: + resolution: {integrity: sha512-cDOtUSIeoOvt1skKNihdExWMTybx3exnvbFbb9ecZDIxlvIbREQzt9A5Km3Zn3PfU+IFjyYGsHS+lN9VInAGKA==} engines: {node: '>=18.17.0'} hasBin: true peerDependencies: @@ -11353,10 +11638,6 @@ packages: resolution: {integrity: sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==} engines: {node: '>= 0.10.5'} - node-domexception@1.0.0: - resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} - engines: {node: '>=10.5.0'} - node-emoji@2.1.3: resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==} engines: {node: '>=18'} @@ -11373,10 +11654,6 @@ packages: encoding: optional: true - node-fetch@3.3.2: - resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - node-forge@1.3.1: resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} engines: {node: '>= 6.13.0'} @@ -11398,6 +11675,9 @@ packages: node-releases@2.0.18: resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + node-releases@2.0.19: + resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + node-stream-zip@1.15.0: resolution: {integrity: sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==} engines: {node: '>=0.12.0'} @@ -11652,6 +11932,10 @@ packages: pako@0.2.9: resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} + parallax-controller@1.7.1: + resolution: {integrity: sha512-facVMEBnUynzMN7hCSqyNpF6uyCpVIl4XAUyTR9D8q2JlhgyPY6bZtj/OkFk3+Cpka1TnYCppQb8BzDWHtSaZg==} + engines: {node: '>=12'} + param-case@3.0.4: resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} @@ -11787,9 +12071,6 @@ packages: performance-now@2.1.0: resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} - periscopic@3.1.0: - resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} - phosphor-react-native@2.0.0: resolution: {integrity: sha512-Q1WtmdFKq5w0rJAZMvYDzUBAHzL1s41Rc3cn3uTutQcLAo81Vjv/X2Im0bxET7is+70R4WDCPf+ZQEoOhaC5Vw==} peerDependencies: @@ -11806,6 +12087,9 @@ packages: picocolors@1.1.0: resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} @@ -12290,6 +12574,11 @@ packages: peerDependencies: react: ^18.2.0 + react-dom@19.0.0: + resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==} + peerDependencies: + react: ^19.0.0 + react-element-to-jsx-string@15.0.0: resolution: {integrity: sha512-UDg4lXB6BzlobN60P8fHWVPX3Kyw8ORrTeBtClmIlGdkOOE+GYQSFvmEU5iLLpwp/6v42DINwNcwOhOLfQ//FQ==} peerDependencies: @@ -12574,6 +12863,13 @@ packages: peerDependencies: react: '>=16.8' + react-scroll-parallax@3.4.5: + resolution: {integrity: sha512-4NLZQ8cZEUyxoA95DfrXWneOOUSFrFmpM0dZNzMErmuJ0LzY+CCw8Xw0hqB6xxHWxNknfs46AozyIPSWkZeucA==} + engines: {node: '>=10'} + peerDependencies: + react: ^16.8.0-0 || >=17.0.1 || ^18.0.0 + react-dom: ^16.8.0-0 || >=17.0.1 || ^18.0.0 + react-selecto@1.26.3: resolution: {integrity: sha512-Ubik7kWSnZyQEBNro+1k38hZaI1tJarE+5aD/qsqCOA1uUBSjgKVBy3EWRzGIbdmVex7DcxznFZLec/6KZNvwQ==} @@ -12688,6 +12984,18 @@ packages: resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} engines: {node: '>= 0.10'} + recma-build-jsx@1.0.0: + resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==} + + recma-jsx@1.0.0: + resolution: {integrity: sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==} + + recma-parse@1.0.0: + resolution: {integrity: sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==} + + recma-stringify@1.0.0: + resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==} + recyclerlistview@4.2.0: resolution: {integrity: sha512-uuBCi0c+ggqHKwrzPX4Z/mJOzsBbjZEAwGGmlwpD/sD7raXixdAbdJ6BTcAmuWG50Cg4ru9p12M94Njwhr/27A==} peerDependencies: @@ -12744,6 +13052,10 @@ packages: resolution: {integrity: sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw==} engines: {node: '>=4'} + regexpu-core@6.2.0: + resolution: {integrity: sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==} + engines: {node: '>=4'} + registry-js@1.16.0: resolution: {integrity: sha512-hcMnfKhmCPTA++70qEGwRqctLBdBg+xvG3ZfAPt0ymjdTUFKtVTolelpIDK2qs8DVIurylnfM6BM9uWpVbJr+g==} @@ -12754,27 +13066,31 @@ packages: resolution: {integrity: sha512-1DHODs4B8p/mQHU9kr+jv8+wIC9mtG4eBHxWxIq5mhjE3D5oORhCc6deRKzTjs9DcfRFmj9BHSDguZklqCGFWQ==} hasBin: true + regjsparser@0.12.0: + resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==} + hasBin: true + regjsparser@0.9.1: resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} hasBin: true - rehype-autolink-headings@6.1.1: - resolution: {integrity: sha512-NMYzZIsHM3sA14nC5rAFuUPIOfg+DFmf9EY1YMhaNlB7+3kK/ZlE6kqPfuxr1tsJ1XWkTrMtMoyHosU70d35mA==} - - rehype-external-links@2.1.0: - resolution: {integrity: sha512-2YMJZVM1hxZnwl9IPkbN5Pjn78kXkAX7lq9VEtlaGA29qIls25vZN+ucNIJdbQUe+9NNFck17BiOhGmsD6oLIg==} + rehype-autolink-headings@7.1.0: + resolution: {integrity: sha512-rItO/pSdvnvsP4QRB1pmPiNHUskikqtPojZKJPPPAVx9Hj8i8TwMBhofrrAYRhYOOBZH9tgmG5lPqDLuIWPWmw==} rehype-external-links@3.0.0: resolution: {integrity: sha512-yp+e5N9V3C6bwBeAC4n796kc86M4gJCdlVhiMTxIrJG5UHDMh+PJANf9heqORJbt1nrCbDwIlAZKjANIaVBbvw==} - rehype-katex@6.0.3: - resolution: {integrity: sha512-ByZlRwRUcWegNbF70CVRm2h/7xy7jQ3R9LaY4VVSvjnoVWwWVhNL60DiZsBpC5tSzYQOCvDbzncIpIjPZWodZA==} + rehype-katex@7.0.1: + resolution: {integrity: sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA==} + + rehype-parse@9.0.1: + resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==} - rehype-parse@8.0.5: - resolution: {integrity: sha512-Ds3RglaY/+clEX2U2mHflt7NlMA72KspZ0JLUJgBBLpRddBcEw3H8uYZQliQriku22NZpYMfjDdSgHcjxue24A==} + rehype-prism-plus@2.0.0: + resolution: {integrity: sha512-FeM/9V2N7EvDZVdR2dqhAzlw5YI49m9Tgn7ZrYJeYHIahM6gcXpH0K1y2gNnKanZCydOMluJvX2cB9z3lhY8XQ==} - rehype-prism-plus@1.6.3: - resolution: {integrity: sha512-F6tn376zimnvy+xW0bSnryul+rvVL7NhDIkavc9kAuzDx5zIZW04A6jdXPkcFBhojcqZB8b6pHt6CLqiUx+Tbw==} + rehype-recma@1.0.0: + resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==} rehype-slug@5.1.0: resolution: {integrity: sha512-Gf91dJoXneiorNEnn+Phx97CO7oRMrpi+6r155tTxzGuLtm+QrI4cTwCa9e1rtePdL4i9tSO58PeSS6HWfgsiw==} @@ -12782,46 +13098,44 @@ packages: rehype-slug@6.0.0: resolution: {integrity: sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==} - rehype-stringify@9.0.4: - resolution: {integrity: sha512-Uk5xu1YKdqobe5XpSskwPvo1XeHUUucWEQSl8hTrXt5selvca1e8K1EZ37E6YoZ4BT8BCqCdVfQW7OfHfthtVQ==} + rehype-stringify@10.0.1: + resolution: {integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==} relateurl@0.2.7: resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} engines: {node: '>= 0.10'} - remark-frontmatter@4.0.1: - resolution: {integrity: sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA==} + remark-frontmatter@5.0.0: + resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==} - remark-gfm@3.0.1: - resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==} + remark-gfm@4.0.0: + resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} - remark-math@5.1.1: - resolution: {integrity: sha512-cE5T2R/xLVtfFI4cCePtiRn+e6jKMtFDR3P8V3qpv8wpKjwvHoBA4eJzvX+nVrnlNy0911bdGmuspCSwetfYHw==} + remark-math@6.0.0: + resolution: {integrity: sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==} - remark-mdx-frontmatter@1.1.1: - resolution: {integrity: sha512-7teX9DW4tI2WZkXS4DBxneYSY7NHiXl4AKdWDO9LXVweULlCT8OPWsOjLEnMIXViN1j+QcY8mfbq3k0EK6x3uA==} - engines: {node: '>=12.2.0'} + remark-mdx-frontmatter@4.0.0: + resolution: {integrity: sha512-PZzAiDGOEfv1Ua7exQ8S5kKxkD8CDaSb4nM+1Mprs6u8dyvQifakh+kCj6NovfGXW+bTvrhjaR3srzjS2qJHKg==} - remark-mdx-images@2.0.0: - resolution: {integrity: sha512-Eh9sutDjzBPRBMnD7C9tn8DdqCaVNFo3rrqEryqPBJzMZ33i/MMO68ucINsOP3lNGSsCA2N2X+Zws1pHphWSpg==} - engines: {node: '>=14.0.0'} + remark-mdx-images@3.0.0: + resolution: {integrity: sha512-EKpqw11XUprx/kFQPEkH3GdPEqI63Wcq5GT120N2hGlKCSwOM09NtL1i3G9HQ4TBIR2aF471HF5YStME5ukbJw==} deprecated: Use rehype-mdx-import-media instead - remark-mdx@2.3.0: - resolution: {integrity: sha512-g53hMkpM0I98MU266IzDFMrTD980gNF3BJnkyFcmN+dD873mQeD5rdMO3Y2X+x8umQfbSE0PcoEDl7ledSA+2g==} - - remark-parse@10.0.2: - resolution: {integrity: sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==} + remark-mdx@3.1.0: + resolution: {integrity: sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==} remark-parse@11.0.0: resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} - remark-rehype@10.1.0: - resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==} - remark-rehype@11.1.0: resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==} + remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + + remark@15.0.1: + resolution: {integrity: sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==} + remix-params-helper@0.4.10: resolution: {integrity: sha512-1LZ1FjxCtPekg4a1R50aKA0uB2+668Wd2a0ld7LDrQ0bJ2TzijnCVr822cs8epziS6MG2bG8ZHMPDAR2t4PK+Q==} peerDependencies: @@ -12890,6 +13204,11 @@ packages: resolve@1.1.7: resolution: {integrity: sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==} + resolve@1.22.10: + resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} + engines: {node: '>= 0.4'} + hasBin: true + resolve@1.22.8: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true @@ -12993,10 +13312,6 @@ packages: rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} - sade@1.8.1: - resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} - engines: {node: '>=6'} - safe-array-concat@1.1.2: resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} engines: {node: '>=0.4'} @@ -13038,10 +13353,17 @@ packages: scheduler@0.24.0-canary-efb381bbf-20230505: resolution: {integrity: sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA==} + scheduler@0.25.0: + resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} + schema-utils@3.3.0: resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} engines: {node: '>= 10.13.0'} + schema-utils@4.3.0: + resolution: {integrity: sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==} + engines: {node: '>= 10.13.0'} + search-insights@2.13.0: resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==} @@ -13159,6 +13481,10 @@ packages: shell-quote@1.8.1: resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + shell-quote@1.8.2: + resolution: {integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==} + engines: {node: '>= 0.4'} + shelljs@0.8.5: resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} engines: {node: '>=4'} @@ -13517,9 +13843,6 @@ packages: style-to-object@0.3.0: resolution: {integrity: sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==} - style-to-object@0.4.4: - resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} - style-to-object@1.0.5: resolution: {integrity: sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ==} @@ -13691,8 +14014,8 @@ packages: resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==} engines: {node: '>=8'} - terser-webpack-plugin@5.3.10: - resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} + terser-webpack-plugin@5.3.11: + resolution: {integrity: sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==} engines: {node: '>= 10.13.0'} peerDependencies: '@swc/core': '*' @@ -13730,6 +14053,12 @@ packages: thenify@3.3.1: resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + thingies@1.21.0: + resolution: {integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==} + engines: {node: '>=10.18'} + peerDependencies: + tslib: ^2 + three-mesh-bvh@0.7.3: resolution: {integrity: sha512-3W6KjzmupjfE89GuHPT31kxKWZ4YGZPEZJNysJpiOZfQRsBQQgmK7v/VJPpjG6syhAvTnY+5Fr77EvIkTLpGSw==} peerDependencies: @@ -13835,6 +14164,12 @@ packages: resolution: {integrity: sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==} engines: {node: '>= 0.4'} + tree-dump@1.0.2: + resolution: {integrity: sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} @@ -13878,8 +14213,8 @@ packages: ts-object-utils@0.0.5: resolution: {integrity: sha512-iV0GvHqOmilbIKJsfyfJY9/dNHCs969z3so90dQWsO1eMMozvTpnB1MEaUbb3FYtZTGjv5sIy/xmslEz0Rg2TA==} - ts-pattern@4.3.0: - resolution: {integrity: sha512-pefrkcd4lmIVR0LA49Imjf9DYLK8vtWhqBPA3Ya1ir8xCW0O2yjL9dsCVvI7pCodLC5q7smNpEtDR2yVulQxOg==} + ts-pattern@5.6.0: + resolution: {integrity: sha512-SL8u60X5+LoEy9tmQHWCdPc2hhb2pKI6I1tU5Jue3v8+iRqZdcT3mWPwKKJy1fMfky6uha82c8ByHAE8PMhKHw==} ts-poet@4.15.0: resolution: {integrity: sha512-sLLR8yQBvHzi9d4R1F4pd+AzQxBfzOSSjfxiJxQhkUoH5bL7RsAC6wgvtVUQdGqiCsyS9rT6/8X2FI7ipdir5g==} @@ -13913,6 +14248,9 @@ packages: tslib@2.7.0: resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + tsparticles@3.3.0: resolution: {integrity: sha512-Dvd5nIvc7OcbmBZZcZo225Bsiu3k+FZJXoBZDmla4QTDwJvt7GSthrenvnpElBiL8VE+JS2N3t7sGJW2TQGt5A==} @@ -14027,10 +14365,6 @@ packages: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} - type-fest@3.13.1: - resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} - engines: {node: '>=14.16'} - type-fest@4.13.0: resolution: {integrity: sha512-nKO1N9IFeTec3jnNe/3nZlX+RzwZsvT3c4akWC3IlhYGQbRSPFMBe87vmoaymS3hW2l/rs+4ptDDTxzcbqAcmA==} engines: {node: '>=16'} @@ -14105,6 +14439,9 @@ packages: undici-types@6.19.8: resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + undici-types@6.20.0: + resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} + undici@5.28.3: resolution: {integrity: sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==} engines: {node: '>=14.0'} @@ -14129,6 +14466,10 @@ packages: resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} engines: {node: '>=4'} + unicode-match-property-value-ecmascript@2.2.0: + resolution: {integrity: sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==} + engines: {node: '>=4'} + unicode-property-aliases-ecmascript@2.1.0: resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} engines: {node: '>=4'} @@ -14155,14 +14496,11 @@ packages: resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} engines: {node: '>=8'} - unist-util-filter@4.0.1: - resolution: {integrity: sha512-RynicUM/vbOSTSiUK+BnaK9XMfmQUh6gyi7L6taNgc7FIf84GukXVV3ucGzEN/PhUUkdP5hb1MmXc+3cvPUm5Q==} + unist-util-filter@5.0.1: + resolution: {integrity: sha512-pHx7D4Zt6+TsfwylH9+lYhBhzyhEnCXs/lbq/Hstxno5z4gVdyc2WEW0asfjGKPyG4pEKrnBv5hdkO6+aRnQJw==} - unist-util-find-after@4.0.1: - resolution: {integrity: sha512-QO/PuPMm2ERxC6vFXEPtmAutOopy5PknD+Oq64gGwxKtk4xwo9Z97t9Av1obPmGU0IyTa6EKYUfTrK2QJS3Ozw==} - - unist-util-generated@2.0.1: - resolution: {integrity: sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==} + unist-util-find-after@5.0.0: + resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} unist-util-is@5.2.1: resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} @@ -14170,18 +14508,12 @@ packages: unist-util-is@6.0.0: resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} - unist-util-position-from-estree@1.1.2: - resolution: {integrity: sha512-poZa0eXpS+/XpoQwGwl79UUdea4ol2ZuCYguVaJS4qzIOMDzbqz8a3erUCOmubSZkaOuGamb3tX790iwOIROww==} - - unist-util-position@4.0.4: - resolution: {integrity: sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==} + unist-util-position-from-estree@2.0.0: + resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} unist-util-position@5.0.0: resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} - unist-util-remove-position@4.0.2: - resolution: {integrity: sha512-TkBb0HABNmxzAcfLf4qsIbFbaPDvMO6wa3b3j4VcEzFVaw1LBKwnW4/sRJ/atSLSzoIg41JWEdnE7N6DIhGDGQ==} - unist-util-remove-position@5.0.0: resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} @@ -14252,6 +14584,12 @@ packages: peerDependencies: browserslist: '>= 4.21.0' + update-browserslist-db@1.1.2: + resolution: {integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + update-input-width@1.4.2: resolution: {integrity: sha512-/p0XLhrQQQ4bMWD7bL9duYObwYCO1qGr8R19xcMmoMSmXuQ7/1//veUnCObQ7/iW6E2pGS6rFkS4TfH4ur7e/g==} @@ -14389,11 +14727,6 @@ packages: resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} hasBin: true - uvu@0.5.6: - resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==} - engines: {node: '>=8'} - hasBin: true - valid-url@1.0.9: resolution: {integrity: sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==} @@ -14426,8 +14759,8 @@ packages: resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} engines: {'0': node >=0.6.0} - vfile-location@4.1.0: - resolution: {integrity: sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==} + vfile-location@5.0.3: + resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} vfile-message@3.1.4: resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==} @@ -14554,10 +14887,6 @@ packages: warning@4.0.3: resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==} - watchpack@2.4.1: - resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} - engines: {node: '>=10.13.0'} - watchpack@2.4.2: resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} engines: {node: '>=10.13.0'} @@ -14568,10 +14897,6 @@ packages: web-namespaces@2.0.1: resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} - web-streams-polyfill@3.3.3: - resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} - engines: {node: '>= 8'} - webgl-constants@1.1.1: resolution: {integrity: sha512-LkBXKjU5r9vAW7Gcu3T5u+5cvSvh5WwINdr0C+9jpzVB41cjQAP5ePArDtk/WHYdVj0GefCgM73BA7FlIiNtdg==} @@ -14713,6 +15038,17 @@ packages: utf-8-validate: optional: true + ws@6.2.3: + resolution: {integrity: sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + ws@7.5.10: resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} engines: {node: '>=8.3.0'} @@ -14841,8 +15177,8 @@ packages: engines: {node: '>= 14'} hasBin: true - yaml@2.6.0: - resolution: {integrity: sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==} + yaml@2.7.0: + resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==} engines: {node: '>= 14'} hasBin: true @@ -15078,23 +15414,23 @@ snapshots: '@azure/abort-controller@2.1.0': dependencies: - tslib: 2.7.0 + tslib: 2.8.1 '@azure/abort-controller@2.1.2': dependencies: - tslib: 2.7.0 + tslib: 2.8.1 '@azure/core-auth@1.7.0': dependencies: '@azure/abort-controller': 2.1.0 '@azure/core-util': 1.8.0 - tslib: 2.7.0 + tslib: 2.8.1 - '@azure/core-auth@1.8.0': + '@azure/core-auth@1.9.0': dependencies: '@azure/abort-controller': 2.1.2 - '@azure/core-util': 1.8.0 - tslib: 2.7.0 + '@azure/core-util': 1.11.0 + tslib: 2.8.1 '@azure/core-http@3.0.4(encoding@0.1.13)': dependencies: @@ -15129,14 +15465,14 @@ snapshots: '@azure/core-rest-pipeline@1.10.1': dependencies: '@azure/abort-controller': 1.1.0 - '@azure/core-auth': 1.8.0 + '@azure/core-auth': 1.9.0 '@azure/core-tracing': 1.2.0 - '@azure/core-util': 1.8.0 + '@azure/core-util': 1.11.0 '@azure/logger': 1.1.4 form-data: 4.0.1 http-proxy-agent: 5.0.0 https-proxy-agent: 5.0.1 - tslib: 2.7.0 + tslib: 2.8.1 uuid: 8.3.2 transitivePeerDependencies: - supports-color @@ -15148,17 +15484,22 @@ snapshots: '@azure/core-tracing@1.2.0': dependencies: - tslib: 2.7.0 + tslib: 2.8.1 + + '@azure/core-util@1.11.0': + dependencies: + '@azure/abort-controller': 2.1.2 + tslib: 2.8.1 '@azure/core-util@1.2.0': dependencies: '@azure/abort-controller': 1.1.0 - tslib: 2.7.0 + tslib: 2.8.1 '@azure/core-util@1.8.0': dependencies: '@azure/abort-controller': 2.1.0 - tslib: 2.7.0 + tslib: 2.8.1 '@azure/logger@1.1.0': dependencies: @@ -15166,16 +15507,16 @@ snapshots: '@azure/logger@1.1.4': dependencies: - tslib: 2.7.0 + tslib: 2.8.1 '@azure/opentelemetry-instrumentation-azure-sdk@1.0.0-beta.7': dependencies: '@azure/core-tracing': 1.2.0 '@azure/logger': 1.1.4 '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) - tslib: 2.7.0 + tslib: 2.8.1 transitivePeerDependencies: - supports-color @@ -15206,10 +15547,18 @@ snapshots: '@babel/highlight': 7.25.7 picocolors: 1.1.0 + '@babel/code-frame@7.26.2': + dependencies: + '@babel/helper-validator-identifier': 7.25.9 + js-tokens: 4.0.0 + picocolors: 1.1.1 + '@babel/compat-data@7.23.5': {} '@babel/compat-data@7.25.8': {} + '@babel/compat-data@7.26.5': {} + '@babel/core@7.24.0': dependencies: '@ampproject/remapping': 2.3.0 @@ -15286,6 +15635,14 @@ snapshots: '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.0.2 + '@babel/generator@7.26.5': + dependencies: + '@babel/parser': 7.26.5 + '@babel/types': 7.26.5 + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.1.0 + '@babel/helper-annotate-as-pure@7.22.5': dependencies: '@babel/types': 7.25.8 @@ -15294,6 +15651,10 @@ snapshots: dependencies: '@babel/types': 7.25.8 + '@babel/helper-annotate-as-pure@7.25.9': + dependencies: + '@babel/types': 7.26.5 + '@babel/helper-builder-binary-assignment-operator-visitor@7.25.7': dependencies: '@babel/traverse': 7.25.7 @@ -15317,6 +15678,14 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 + '@babel/helper-compilation-targets@7.26.5': + dependencies: + '@babel/compat-data': 7.26.5 + '@babel/helper-validator-option': 7.25.9 + browserslist: 4.24.4 + lru-cache: 5.1.1 + semver: 6.3.1 + '@babel/helper-create-class-features-plugin@7.24.0(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -15373,6 +15742,19 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-member-expression-to-functions': 7.25.9 + '@babel/helper-optimise-call-expression': 7.25.9 + '@babel/helper-replace-supers': 7.26.5(@babel/core@7.24.0) + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/traverse': 7.26.5 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -15387,6 +15769,13 @@ snapshots: regexpu-core: 6.1.1 semver: 6.3.1 + '@babel/helper-create-regexp-features-plugin@7.26.3(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-annotate-as-pure': 7.25.9 + regexpu-core: 6.2.0 + semver: 6.3.1 + '@babel/helper-define-polyfill-provider@0.5.0(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -15414,9 +15803,20 @@ snapshots: '@babel/core': 7.24.0 '@babel/helper-compilation-targets': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0 lodash.debounce: 4.0.8 - resolve: 1.22.8 + resolve: 1.22.10 + transitivePeerDependencies: + - supports-color + + '@babel/helper-define-polyfill-provider@0.6.3(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-plugin-utils': 7.26.5 + debug: 4.4.0 + lodash.debounce: 4.0.8 + resolve: 1.22.10 transitivePeerDependencies: - supports-color @@ -15442,6 +15842,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-member-expression-to-functions@7.25.9': + dependencies: + '@babel/traverse': 7.26.5 + '@babel/types': 7.26.5 + transitivePeerDependencies: + - supports-color + '@babel/helper-module-imports@7.18.6': dependencies: '@babel/types': 7.25.8 @@ -15457,6 +15864,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-imports@7.25.9': + dependencies: + '@babel/traverse': 7.26.5 + '@babel/types': 7.26.5 + transitivePeerDependencies: + - supports-color + '@babel/helper-module-transforms@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -15486,6 +15900,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-transforms@7.26.0(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.26.5 + transitivePeerDependencies: + - supports-color + '@babel/helper-optimise-call-expression@7.22.5': dependencies: '@babel/types': 7.25.8 @@ -15494,10 +15917,16 @@ snapshots: dependencies: '@babel/types': 7.25.8 + '@babel/helper-optimise-call-expression@7.25.9': + dependencies: + '@babel/types': 7.26.5 + '@babel/helper-plugin-utils@7.24.0': {} '@babel/helper-plugin-utils@7.25.7': {} + '@babel/helper-plugin-utils@7.26.5': {} + '@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -15514,6 +15943,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-wrap-function': 7.25.9 + '@babel/traverse': 7.26.5 + transitivePeerDependencies: + - supports-color + '@babel/helper-replace-supers@7.22.20(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -15546,6 +15984,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-replace-supers@7.26.5(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-member-expression-to-functions': 7.25.9 + '@babel/helper-optimise-call-expression': 7.25.9 + '@babel/traverse': 7.26.5 + transitivePeerDependencies: + - supports-color + '@babel/helper-simple-access@7.22.5': dependencies: '@babel/types': 7.24.0 @@ -15568,6 +16015,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-skip-transparent-expression-wrappers@7.25.9': + dependencies: + '@babel/traverse': 7.26.5 + '@babel/types': 7.26.5 + transitivePeerDependencies: + - supports-color + '@babel/helper-split-export-declaration@7.22.6': dependencies: '@babel/types': 7.24.0 @@ -15576,14 +16030,20 @@ snapshots: '@babel/helper-string-parser@7.25.7': {} + '@babel/helper-string-parser@7.25.9': {} + '@babel/helper-validator-identifier@7.22.20': {} '@babel/helper-validator-identifier@7.25.7': {} + '@babel/helper-validator-identifier@7.25.9': {} + '@babel/helper-validator-option@7.23.5': {} '@babel/helper-validator-option@7.25.7': {} + '@babel/helper-validator-option@7.25.9': {} + '@babel/helper-wrap-function@7.22.20': dependencies: '@babel/helper-function-name': 7.23.0 @@ -15598,6 +16058,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-wrap-function@7.25.9': + dependencies: + '@babel/template': 7.25.9 + '@babel/traverse': 7.26.5 + '@babel/types': 7.26.5 + transitivePeerDependencies: + - supports-color + '@babel/helpers@7.24.0': dependencies: '@babel/template': 7.24.0 @@ -15622,7 +16090,7 @@ snapshots: '@babel/helper-validator-identifier': 7.25.7 chalk: 2.4.2 js-tokens: 4.0.0 - picocolors: 1.1.0 + picocolors: 1.1.1 '@babel/parser@7.24.0': dependencies: @@ -15632,6 +16100,10 @@ snapshots: dependencies: '@babel/types': 7.25.8 + '@babel/parser@7.26.5': + dependencies: + '@babel/types': 7.26.5 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.7(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -15721,6 +16193,11 @@ snapshots: '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-export-default-from': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-proposal-export-default-from@7.25.9(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-proposal-logical-assignment-operators@7.20.7(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -15808,10 +16285,15 @@ snapshots: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.0)': + '@babel/plugin-syntax-export-default-from@7.25.9(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-flow@7.23.3(@babel/core@7.24.0)': dependencies: @@ -15823,6 +16305,11 @@ snapshots: '@babel/core': 7.25.8 '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-syntax-flow@7.26.0(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.25.8)': dependencies: '@babel/core': 7.25.8 @@ -15868,6 +16355,11 @@ snapshots: '@babel/core': 7.25.8 '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -15933,6 +16425,11 @@ snapshots: '@babel/core': 7.25.8 '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -15949,6 +16446,11 @@ snapshots: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-transform-async-generator-functions@7.25.8(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -15976,6 +16478,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-async-to-generator@7.25.9(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.24.0) + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -15996,6 +16507,11 @@ snapshots: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-transform-class-properties@7.25.7(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -16037,6 +16553,18 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-classes@7.25.9(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-replace-supers': 7.26.5(@babel/core@7.24.0) + '@babel/traverse': 7.26.5 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -16049,6 +16577,12 @@ snapshots: '@babel/helper-plugin-utils': 7.25.7 '@babel/template': 7.25.7 + '@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/template': 7.25.9 + '@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -16059,6 +16593,11 @@ snapshots: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -16132,6 +16671,12 @@ snapshots: '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.25.8) + '@babel/plugin-transform-flow-strip-types@7.26.5(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-syntax-flow': 7.26.0(@babel/core@7.24.0) + '@babel/plugin-transform-for-of@7.23.6(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -16164,6 +16709,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-function-name@7.25.9(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/traverse': 7.26.5 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-json-strings@7.24.7(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -16180,6 +16734,11 @@ snapshots: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-transform-literals@7.25.9(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -16229,6 +16788,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-modules-commonjs@7.26.3(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.26.5 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-modules-systemjs@7.25.7(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -16265,6 +16832,12 @@ snapshots: '@babel/helper-create-regexp-features-plugin': 7.25.7(@babel/core@7.24.0) '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-transform-named-capturing-groups-regex@7.25.9(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-transform-new-target@7.25.7(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -16349,6 +16922,11 @@ snapshots: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-transform-parameters@7.25.9(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -16365,6 +16943,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.26.5 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-private-property-in-object@7.25.8(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -16374,6 +16960,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.26.5 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -16399,6 +16994,11 @@ snapshots: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-transform-react-display-name@7.25.9(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-transform-react-jsx-development@7.25.7(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -16411,11 +17011,21 @@ snapshots: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -16436,6 +17046,17 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.24.0) + '@babel/types': 7.26.5 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-react-pure-annotations@7.25.7(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -16476,6 +17097,18 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-runtime@7.25.9(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 + babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.24.0) + babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.24.0) + babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.24.0) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -16486,6 +17119,11 @@ snapshots: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-transform-spread@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -16502,6 +17140,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-spread@7.25.9(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -16512,6 +17158,11 @@ snapshots: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -16559,6 +17210,17 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-typescript@7.26.5(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.24.0) + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-unicode-escapes@7.25.7(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -16588,6 +17250,12 @@ snapshots: '@babel/helper-create-regexp-features-plugin': 7.25.7(@babel/core@7.24.0) '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-transform-unicode-sets-regex@7.25.7(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -16875,6 +17543,12 @@ snapshots: '@babel/parser': 7.25.8 '@babel/types': 7.25.8 + '@babel/template@7.25.9': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/parser': 7.26.5 + '@babel/types': 7.26.5 + '@babel/traverse@7.24.0': dependencies: '@babel/code-frame': 7.23.5 @@ -16902,6 +17576,18 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/traverse@7.26.5': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.5 + '@babel/parser': 7.26.5 + '@babel/template': 7.25.9 + '@babel/types': 7.26.5 + debug: 4.4.0 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + '@babel/types@7.24.0': dependencies: '@babel/helper-string-parser': 7.23.4 @@ -16914,6 +17600,11 @@ snapshots: '@babel/helper-validator-identifier': 7.25.7 to-fast-properties: 2.0.0 + '@babel/types@7.26.5': + dependencies: + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@base2/pretty-print-object@1.0.1': {} '@cfcs/core@0.0.6': @@ -16923,98 +17614,102 @@ snapshots: '@colors/colors@1.5.0': optional: true - '@contentlayer/cli@0.3.4(patch_hash=r22rdxqpl6d5mdpkhdt6tw4evu)(esbuild@0.21.5)': + '@contentlayer2/cli@0.5.3(acorn@8.14.0)(esbuild@0.21.5)': dependencies: - '@contentlayer/core': 0.3.4(esbuild@0.21.5) - '@contentlayer/utils': 0.3.4 + '@contentlayer2/core': 0.5.3(acorn@8.14.0)(esbuild@0.21.5) + '@contentlayer2/utils': 0.5.3 clipanion: 3.2.1(typanion@3.14.0) typanion: 3.14.0 transitivePeerDependencies: - '@effect-ts/otel-node' + - acorn - esbuild - markdown-wasm - supports-color - '@contentlayer/client@0.3.4(esbuild@0.21.5)': + '@contentlayer2/client@0.5.3(acorn@8.14.0)(esbuild@0.21.5)': dependencies: - '@contentlayer/core': 0.3.4(esbuild@0.21.5) + '@contentlayer2/core': 0.5.3(acorn@8.14.0)(esbuild@0.21.5) transitivePeerDependencies: - '@effect-ts/otel-node' + - acorn - esbuild - markdown-wasm - supports-color - '@contentlayer/core@0.3.4(esbuild@0.21.5)': + '@contentlayer2/core@0.5.3(acorn@8.14.0)(esbuild@0.21.5)': dependencies: - '@contentlayer/utils': 0.3.4 + '@contentlayer2/utils': 0.5.3 camel-case: 4.1.2 - comment-json: 4.2.3 + comment-json: 4.2.5 gray-matter: 4.0.3 - mdx-bundler: 9.2.1(esbuild@0.21.5) - rehype-stringify: 9.0.4 - remark-frontmatter: 4.0.1 - remark-parse: 10.0.2 - remark-rehype: 10.1.0 + mdx-bundler: 10.0.3(acorn@8.14.0)(esbuild@0.21.5) + rehype-stringify: 10.0.1 + remark-frontmatter: 5.0.0 + remark-parse: 11.0.0 + remark-rehype: 11.1.0 source-map-support: 0.5.21 - type-fest: 3.13.1 - unified: 10.1.2 + type-fest: 4.26.1 + unified: 11.0.4 optionalDependencies: esbuild: 0.21.5 transitivePeerDependencies: - '@effect-ts/otel-node' + - acorn - supports-color - '@contentlayer/source-files@0.3.4(esbuild@0.21.5)': + '@contentlayer2/source-files@0.5.3(acorn@8.14.0)(esbuild@0.21.5)': dependencies: - '@contentlayer/core': 0.3.4(esbuild@0.21.5) - '@contentlayer/utils': 0.3.4 + '@contentlayer2/core': 0.5.3(acorn@8.14.0)(esbuild@0.21.5) + '@contentlayer2/utils': 0.5.3 chokidar: 3.6.0 fast-glob: 3.3.2 gray-matter: 4.0.3 imagescript: 1.2.18 - micromatch: 4.0.5 - ts-pattern: 4.3.0 - unified: 10.1.2 - yaml: 2.4.1 + micromatch: 4.0.8 + ts-pattern: 5.6.0 + unified: 11.0.4 + yaml: 2.7.0 zod: 3.23.8 transitivePeerDependencies: - '@effect-ts/otel-node' + - acorn - esbuild - markdown-wasm - supports-color - '@contentlayer/source-remote-files@0.3.4(esbuild@0.21.5)': + '@contentlayer2/source-remote-files@0.5.3(acorn@8.14.0)(esbuild@0.21.5)': dependencies: - '@contentlayer/core': 0.3.4(esbuild@0.21.5) - '@contentlayer/source-files': 0.3.4(esbuild@0.21.5) - '@contentlayer/utils': 0.3.4 + '@contentlayer2/core': 0.5.3(acorn@8.14.0)(esbuild@0.21.5) + '@contentlayer2/source-files': 0.5.3(acorn@8.14.0)(esbuild@0.21.5) + '@contentlayer2/utils': 0.5.3 transitivePeerDependencies: - '@effect-ts/otel-node' + - acorn - esbuild - markdown-wasm - supports-color - '@contentlayer/utils@0.3.4': + '@contentlayer2/utils@0.5.3': dependencies: '@effect-ts/core': 0.60.5 - '@effect-ts/otel': 0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.8.0)(@opentelemetry/core@1.22.0(@opentelemetry/api@1.8.0))(@opentelemetry/sdk-trace-base@1.22.0(@opentelemetry/api@1.8.0)) - '@effect-ts/otel-exporter-trace-otlp-grpc': 0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.8.0)(@opentelemetry/core@1.22.0(@opentelemetry/api@1.8.0))(@opentelemetry/exporter-trace-otlp-grpc@0.39.1(@opentelemetry/api@1.8.0))(@opentelemetry/sdk-trace-base@1.22.0(@opentelemetry/api@1.8.0)) - '@effect-ts/otel-sdk-trace-node': 0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.8.0)(@opentelemetry/core@1.22.0(@opentelemetry/api@1.8.0))(@opentelemetry/sdk-trace-base@1.22.0(@opentelemetry/api@1.8.0))(@opentelemetry/sdk-trace-node@1.22.0(@opentelemetry/api@1.8.0)) + '@effect-ts/otel': 0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.30.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.0(@opentelemetry/api@1.9.0)) + '@effect-ts/otel-sdk-trace-node': 0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.30.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-node@1.22.0(@opentelemetry/api@1.9.0)) '@js-temporal/polyfill': 0.4.4 - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.22.0(@opentelemetry/api@1.8.0) - '@opentelemetry/exporter-trace-otlp-grpc': 0.39.1(@opentelemetry/api@1.8.0) - '@opentelemetry/resources': 1.22.0(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-trace-base': 1.22.0(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-trace-node': 1.22.0(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.22.0 + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-trace-otlp-grpc': 0.51.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.30.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.30.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-node': 1.22.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.28.0 chokidar: 3.6.0 hash-wasm: 4.11.0 - inflection: 2.0.1 - memfs: 3.5.3 + inflection: 3.0.2 + memfs: 4.17.0 oo-ascii-tree: 1.95.0 - ts-pattern: 4.3.0 - type-fest: 3.13.1 + ts-pattern: 5.6.0 + type-fest: 4.26.1 '@crabnebula/tauri-plugin-drag@2.0.0': dependencies: @@ -17287,30 +17982,21 @@ snapshots: dependencies: '@effect-ts/system': 0.57.5 - '@effect-ts/otel-exporter-trace-otlp-grpc@0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.8.0)(@opentelemetry/core@1.22.0(@opentelemetry/api@1.8.0))(@opentelemetry/exporter-trace-otlp-grpc@0.39.1(@opentelemetry/api@1.8.0))(@opentelemetry/sdk-trace-base@1.22.0(@opentelemetry/api@1.8.0))': - dependencies: - '@effect-ts/core': 0.60.5 - '@effect-ts/otel': 0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.8.0)(@opentelemetry/core@1.22.0(@opentelemetry/api@1.8.0))(@opentelemetry/sdk-trace-base@1.22.0(@opentelemetry/api@1.8.0)) - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.22.0(@opentelemetry/api@1.8.0) - '@opentelemetry/exporter-trace-otlp-grpc': 0.39.1(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-trace-base': 1.22.0(@opentelemetry/api@1.8.0) - - '@effect-ts/otel-sdk-trace-node@0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.8.0)(@opentelemetry/core@1.22.0(@opentelemetry/api@1.8.0))(@opentelemetry/sdk-trace-base@1.22.0(@opentelemetry/api@1.8.0))(@opentelemetry/sdk-trace-node@1.22.0(@opentelemetry/api@1.8.0))': + '@effect-ts/otel-sdk-trace-node@0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.30.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-node@1.22.0(@opentelemetry/api@1.9.0))': dependencies: '@effect-ts/core': 0.60.5 - '@effect-ts/otel': 0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.8.0)(@opentelemetry/core@1.22.0(@opentelemetry/api@1.8.0))(@opentelemetry/sdk-trace-base@1.22.0(@opentelemetry/api@1.8.0)) - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.22.0(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-trace-base': 1.22.0(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-trace-node': 1.22.0(@opentelemetry/api@1.8.0) + '@effect-ts/otel': 0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.30.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.0(@opentelemetry/api@1.9.0)) + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.30.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-node': 1.22.0(@opentelemetry/api@1.9.0) - '@effect-ts/otel@0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.8.0)(@opentelemetry/core@1.22.0(@opentelemetry/api@1.8.0))(@opentelemetry/sdk-trace-base@1.22.0(@opentelemetry/api@1.8.0))': + '@effect-ts/otel@0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.30.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.0(@opentelemetry/api@1.9.0))': dependencies: '@effect-ts/core': 0.60.5 - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.22.0(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-trace-base': 1.22.0(@opentelemetry/api@1.8.0) + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.30.0(@opentelemetry/api@1.9.0) '@effect-ts/system@0.57.5': {} @@ -17349,13 +18035,13 @@ snapshots: esquery: 1.6.0 jsdoc-type-pratt-parser: 4.1.0 - '@esbuild-plugins/node-resolve@0.1.4(esbuild@0.21.5)': + '@esbuild-plugins/node-resolve@0.2.2(esbuild@0.21.5)': dependencies: '@types/resolve': 1.20.6 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0 esbuild: 0.21.5 escape-string-regexp: 4.0.0 - resolve: 1.22.8 + resolve: 1.22.10 transitivePeerDependencies: - supports-color @@ -17502,9 +18188,14 @@ snapshots: eslint: 8.57.1 eslint-visitor-keys: 3.4.3 + '@eslint-community/eslint-utils@4.4.1(eslint@8.57.1)': + dependencies: + eslint: 8.57.1 + eslint-visitor-keys: 3.4.3 + '@eslint-community/regexpp@4.10.0': {} - '@eslint-community/regexpp@4.11.1': {} + '@eslint-community/regexpp@4.12.1': {} '@eslint/eslintrc@2.1.4': dependencies: @@ -17782,7 +18473,7 @@ snapshots: find-up: 5.0.0 find-yarn-workspace-root: 2.0.0 js-yaml: 3.14.1 - micromatch: 4.0.5 + micromatch: 4.0.8 npm-package-arg: 7.0.0 ora: 3.4.0 split: 1.0.1 @@ -18117,13 +18808,13 @@ snapshots: '@types/yargs': 17.0.32 chalk: 4.1.2 - '@joshwooding/vite-plugin-react-docgen-typescript@0.3.0(typescript@5.6.2)(vite@5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.3.0(typescript@5.6.2)(vite@5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1))': dependencies: glob: 7.2.3 glob-promise: 4.2.2(glob@7.2.3) magic-string: 0.27.0 react-docgen-typescript: 2.2.2(typescript@5.6.2) - vite: 5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1) + vite: 5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1) optionalDependencies: typescript: 5.6.2 @@ -18133,6 +18824,12 @@ snapshots: '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/gen-mapping@0.3.8': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/set-array@1.2.1': {} @@ -18156,39 +18853,66 @@ snapshots: '@js-temporal/polyfill@0.4.4': dependencies: jsbi: 4.3.0 - tslib: 2.7.0 + tslib: 2.8.1 + + '@jsonjoy.com/base64@1.1.2(tslib@2.8.1)': + dependencies: + tslib: 2.8.1 + + '@jsonjoy.com/json-pack@1.1.1(tslib@2.8.1)': + dependencies: + '@jsonjoy.com/base64': 1.1.2(tslib@2.8.1) + '@jsonjoy.com/util': 1.5.0(tslib@2.8.1) + hyperdyperid: 1.2.0 + thingies: 1.21.0(tslib@2.8.1) + tslib: 2.8.1 + + '@jsonjoy.com/util@1.5.0(tslib@2.8.1)': + dependencies: + tslib: 2.8.1 '@juggle/resize-observer@3.4.0': {} - '@mdx-js/esbuild@2.3.0(esbuild@0.21.5)': + '@mdx-js/esbuild@3.1.0(acorn@8.14.0)(esbuild@0.21.5)': dependencies: - '@mdx-js/mdx': 2.3.0 + '@mdx-js/mdx': 3.1.0(acorn@8.14.0) + '@types/unist': 3.0.2 esbuild: 0.21.5 - node-fetch: 3.3.2 - vfile: 5.3.7 + source-map: 0.7.4 + vfile: 6.0.1 + vfile-message: 4.0.2 transitivePeerDependencies: + - acorn - supports-color - '@mdx-js/mdx@2.3.0': + '@mdx-js/mdx@3.1.0(acorn@8.14.0)': dependencies: + '@types/estree': 1.0.6 '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 '@types/mdx': 2.0.11 - estree-util-build-jsx: 2.2.2 - estree-util-is-identifier-name: 2.1.0 - estree-util-to-js: 1.2.0 + collapse-white-space: 2.1.0 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + estree-util-scope: 1.0.0 estree-walker: 3.0.3 - hast-util-to-estree: 2.3.3 - markdown-extensions: 1.1.1 - periscopic: 3.1.0 - remark-mdx: 2.3.0 - remark-parse: 10.0.2 - remark-rehype: 10.1.0 - unified: 10.1.2 - unist-util-position-from-estree: 1.1.2 - unist-util-stringify-position: 3.0.3 - unist-util-visit: 4.1.2 - vfile: 5.3.7 + hast-util-to-jsx-runtime: 2.3.0 + markdown-extensions: 2.0.0 + recma-build-jsx: 1.0.0 + recma-jsx: 1.0.0(acorn@8.14.0) + recma-stringify: 1.0.0 + rehype-recma: 1.0.0 + remark-mdx: 3.1.0 + remark-parse: 11.0.0 + remark-rehype: 11.1.0 + source-map: 0.7.4 + unified: 11.0.4 + unist-util-position-from-estree: 2.0.0 + unist-util-stringify-position: 4.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.1 transitivePeerDependencies: + - acorn - supports-color '@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.2.0)': @@ -18206,7 +18930,7 @@ snapshots: '@motionone/easing': 10.17.0 '@motionone/types': 10.17.0 '@motionone/utils': 10.17.0 - tslib: 2.7.0 + tslib: 2.8.1 '@motionone/dom@10.12.0': dependencies: @@ -18220,13 +18944,13 @@ snapshots: '@motionone/easing@10.17.0': dependencies: '@motionone/utils': 10.17.0 - tslib: 2.7.0 + tslib: 2.8.1 '@motionone/generators@10.17.0': dependencies: '@motionone/types': 10.17.0 '@motionone/utils': 10.17.0 - tslib: 2.7.0 + tslib: 2.8.1 '@motionone/types@10.17.0': {} @@ -18234,7 +18958,7 @@ snapshots: dependencies: '@motionone/types': 10.17.0 hey-listen: 1.0.8 - tslib: 2.7.0 + tslib: 2.8.1 '@ndelangen/get-tarball@3.0.9': dependencies: @@ -18249,37 +18973,37 @@ snapshots: - bufferutil - utf-8-validate - '@next/env@14.2.5': {} + '@next/env@14.2.12': {} '@next/eslint-plugin-next@14.1.3': dependencies: glob: 10.3.10 - '@next/swc-darwin-arm64@14.2.5': + '@next/swc-darwin-arm64@14.2.12': optional: true - '@next/swc-darwin-x64@14.2.5': + '@next/swc-darwin-x64@14.2.12': optional: true - '@next/swc-linux-arm64-gnu@14.2.5': + '@next/swc-linux-arm64-gnu@14.2.12': optional: true - '@next/swc-linux-arm64-musl@14.2.5': + '@next/swc-linux-arm64-musl@14.2.12': optional: true - '@next/swc-linux-x64-gnu@14.2.5': + '@next/swc-linux-x64-gnu@14.2.12': optional: true - '@next/swc-linux-x64-musl@14.2.5': + '@next/swc-linux-x64-musl@14.2.12': optional: true - '@next/swc-win32-arm64-msvc@14.2.5': + '@next/swc-win32-arm64-msvc@14.2.12': optional: true - '@next/swc-win32-ia32-msvc@14.2.5': + '@next/swc-win32-ia32-msvc@14.2.12': optional: true - '@next/swc-win32-x64-msvc@14.2.5': + '@next/swc-win32-x64-msvc@14.2.12': optional: true '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': @@ -18408,9 +19132,9 @@ snapshots: '@octokit/webhooks-types': 7.3.2 aggregate-error: 3.1.0 - '@opentelemetry/api-logs@0.39.1': + '@opentelemetry/api-logs@0.51.1': dependencies: - '@opentelemetry/api': 1.8.0 + '@opentelemetry/api': 1.9.0 '@opentelemetry/api-logs@0.53.0': dependencies: @@ -18420,148 +19144,148 @@ snapshots: '@opentelemetry/api@1.9.0': {} - '@opentelemetry/context-async-hooks@1.22.0(@opentelemetry/api@1.8.0)': + '@opentelemetry/context-async-hooks@1.22.0(@opentelemetry/api@1.9.0)': dependencies: - '@opentelemetry/api': 1.8.0 + '@opentelemetry/api': 1.9.0 - '@opentelemetry/core@1.13.0(@opentelemetry/api@1.8.0)': + '@opentelemetry/core@1.22.0(@opentelemetry/api@1.9.0)': dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/semantic-conventions': 1.13.0 + '@opentelemetry/api': 1.9.0 + '@opentelemetry/semantic-conventions': 1.22.0 - '@opentelemetry/core@1.22.0(@opentelemetry/api@1.8.0)': + '@opentelemetry/core@1.24.1(@opentelemetry/api@1.9.0)': dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/semantic-conventions': 1.22.0 + '@opentelemetry/api': 1.9.0 + '@opentelemetry/semantic-conventions': 1.24.1 - '@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/core@1.30.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/semantic-conventions': 1.27.0 + '@opentelemetry/semantic-conventions': 1.28.0 - '@opentelemetry/exporter-trace-otlp-grpc@0.39.1(@opentelemetry/api@1.8.0)': + '@opentelemetry/exporter-trace-otlp-grpc@0.51.1(@opentelemetry/api@1.9.0)': dependencies: '@grpc/grpc-js': 1.10.3 - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.13.0(@opentelemetry/api@1.8.0) - '@opentelemetry/otlp-grpc-exporter-base': 0.39.1(@opentelemetry/api@1.8.0) - '@opentelemetry/otlp-transformer': 0.39.1(@opentelemetry/api@1.8.0) - '@opentelemetry/resources': 1.13.0(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-trace-base': 1.13.0(@opentelemetry/api@1.8.0) + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-grpc-exporter-base': 0.51.1(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.51.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.24.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.24.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation@0.53.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/api-logs': 0.53.0 '@types/shimmer': 1.2.0 - import-in-the-middle: 1.11.2 + import-in-the-middle: 1.12.0 require-in-the-middle: 7.4.0 semver: 7.6.3 shimmer: 1.2.1 transitivePeerDependencies: - supports-color - '@opentelemetry/otlp-exporter-base@0.39.1(@opentelemetry/api@1.8.0)': + '@opentelemetry/otlp-exporter-base@0.51.1(@opentelemetry/api@1.9.0)': dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.13.0(@opentelemetry/api@1.8.0) + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-grpc-exporter-base@0.39.1(@opentelemetry/api@1.8.0)': + '@opentelemetry/otlp-grpc-exporter-base@0.51.1(@opentelemetry/api@1.9.0)': dependencies: '@grpc/grpc-js': 1.10.3 - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.13.0(@opentelemetry/api@1.8.0) - '@opentelemetry/otlp-exporter-base': 0.39.1(@opentelemetry/api@1.8.0) + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.51.1(@opentelemetry/api@1.9.0) protobufjs: 7.2.6 - '@opentelemetry/otlp-transformer@0.39.1(@opentelemetry/api@1.8.0)': + '@opentelemetry/otlp-transformer@0.51.1(@opentelemetry/api@1.9.0)': dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/api-logs': 0.39.1 - '@opentelemetry/core': 1.13.0(@opentelemetry/api@1.8.0) - '@opentelemetry/resources': 1.13.0(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-logs': 0.39.1(@opentelemetry/api-logs@0.39.1)(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-metrics': 1.13.0(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-trace-base': 1.13.0(@opentelemetry/api@1.8.0) + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.51.1 + '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.24.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-logs': 0.51.1(@opentelemetry/api-logs@0.51.1)(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 1.24.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.24.1(@opentelemetry/api@1.9.0) - '@opentelemetry/propagator-b3@1.22.0(@opentelemetry/api@1.8.0)': + '@opentelemetry/propagator-b3@1.22.0(@opentelemetry/api@1.9.0)': dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.22.0(@opentelemetry/api@1.8.0) + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.22.0(@opentelemetry/api@1.9.0) - '@opentelemetry/propagator-jaeger@1.22.0(@opentelemetry/api@1.8.0)': + '@opentelemetry/propagator-jaeger@1.22.0(@opentelemetry/api@1.9.0)': dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.22.0(@opentelemetry/api@1.8.0) + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.22.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources@1.13.0(@opentelemetry/api@1.8.0)': + '@opentelemetry/resources@1.22.0(@opentelemetry/api@1.9.0)': dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.13.0(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.13.0 + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.22.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.22.0 - '@opentelemetry/resources@1.22.0(@opentelemetry/api@1.8.0)': + '@opentelemetry/resources@1.24.1(@opentelemetry/api@1.9.0)': dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.22.0(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.22.0 + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.24.1 - '@opentelemetry/resources@1.26.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/resources@1.30.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.27.0 + '@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.28.0 - '@opentelemetry/sdk-logs@0.39.1(@opentelemetry/api-logs@0.39.1)(@opentelemetry/api@1.8.0)': + '@opentelemetry/sdk-logs@0.51.1(@opentelemetry/api-logs@0.51.1)(@opentelemetry/api@1.9.0)': dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/api-logs': 0.39.1 - '@opentelemetry/core': 1.13.0(@opentelemetry/api@1.8.0) - '@opentelemetry/resources': 1.13.0(@opentelemetry/api@1.8.0) + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.51.1 + '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.24.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics@1.13.0(@opentelemetry/api@1.8.0)': + '@opentelemetry/sdk-metrics@1.24.1(@opentelemetry/api@1.9.0)': dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.13.0(@opentelemetry/api@1.8.0) - '@opentelemetry/resources': 1.13.0(@opentelemetry/api@1.8.0) + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.24.1(@opentelemetry/api@1.9.0) lodash.merge: 4.6.2 - '@opentelemetry/sdk-trace-base@1.13.0(@opentelemetry/api@1.8.0)': + '@opentelemetry/sdk-trace-base@1.22.0(@opentelemetry/api@1.9.0)': dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.13.0(@opentelemetry/api@1.8.0) - '@opentelemetry/resources': 1.13.0(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.13.0 + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.22.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.22.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.22.0 - '@opentelemetry/sdk-trace-base@1.22.0(@opentelemetry/api@1.8.0)': + '@opentelemetry/sdk-trace-base@1.24.1(@opentelemetry/api@1.9.0)': dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/core': 1.22.0(@opentelemetry/api@1.8.0) - '@opentelemetry/resources': 1.22.0(@opentelemetry/api@1.8.0) - '@opentelemetry/semantic-conventions': 1.22.0 + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.24.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.24.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.24.1 - '@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/sdk-trace-base@1.30.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.26.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.27.0 + '@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.30.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.28.0 - '@opentelemetry/sdk-trace-node@1.22.0(@opentelemetry/api@1.8.0)': + '@opentelemetry/sdk-trace-node@1.22.0(@opentelemetry/api@1.9.0)': dependencies: - '@opentelemetry/api': 1.8.0 - '@opentelemetry/context-async-hooks': 1.22.0(@opentelemetry/api@1.8.0) - '@opentelemetry/core': 1.22.0(@opentelemetry/api@1.8.0) - '@opentelemetry/propagator-b3': 1.22.0(@opentelemetry/api@1.8.0) - '@opentelemetry/propagator-jaeger': 1.22.0(@opentelemetry/api@1.8.0) - '@opentelemetry/sdk-trace-base': 1.22.0(@opentelemetry/api@1.8.0) + '@opentelemetry/api': 1.9.0 + '@opentelemetry/context-async-hooks': 1.22.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.22.0(@opentelemetry/api@1.9.0) + '@opentelemetry/propagator-b3': 1.22.0(@opentelemetry/api@1.9.0) + '@opentelemetry/propagator-jaeger': 1.22.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.22.0(@opentelemetry/api@1.9.0) semver: 7.6.3 - '@opentelemetry/semantic-conventions@1.13.0': {} - '@opentelemetry/semantic-conventions@1.22.0': {} - '@opentelemetry/semantic-conventions@1.27.0': {} + '@opentelemetry/semantic-conventions@1.24.1': {} + + '@opentelemetry/semantic-conventions@1.28.0': {} '@phosphor-icons/core@2.0.8': {} @@ -19302,7 +20026,7 @@ snapshots: semver: 7.6.3 strip-ansi: 5.2.0 wcwidth: 1.0.1 - yaml: 2.6.0 + yaml: 2.7.0 transitivePeerDependencies: - encoding @@ -19324,7 +20048,7 @@ snapshots: semver: 7.6.3 strip-ansi: 5.2.0 wcwidth: 1.0.1 - yaml: 2.6.0 + yaml: 2.7.0 transitivePeerDependencies: - encoding @@ -19351,7 +20075,7 @@ snapshots: '@react-native-community/cli-tools': 12.3.6(encoding@0.1.13) chalk: 4.1.2 execa: 5.1.1 - fast-xml-parser: 4.5.0 + fast-xml-parser: 4.5.1 glob: 7.2.3 logkitty: 0.7.1 transitivePeerDependencies: @@ -19384,7 +20108,7 @@ snapshots: '@react-native-community/cli-tools': 12.3.6(encoding@0.1.13) chalk: 4.1.2 execa: 5.1.1 - fast-xml-parser: 4.5.0 + fast-xml-parser: 4.5.1 glob: 7.2.3 ora: 5.4.1 transitivePeerDependencies: @@ -19402,7 +20126,7 @@ snapshots: dependencies: '@react-native-community/cli-debugger-ui': 12.3.6 '@react-native-community/cli-tools': 12.3.6(encoding@0.1.13) - compression: 1.7.4 + compression: 1.7.5 connect: 3.7.0 errorhandler: 1.5.1 nocache: 3.0.4 @@ -19442,7 +20166,7 @@ snapshots: open: 6.4.0 ora: 5.4.1 semver: 7.6.3 - shell-quote: 1.8.1 + shell-quote: 1.8.2 sudo-prompt: 9.2.1 transitivePeerDependencies: - encoding @@ -19614,11 +20338,60 @@ snapshots: - supports-color '@react-native/babel-preset@0.73.21(@babel/core@7.24.0)(@babel/preset-env@7.25.4(@babel/core@7.24.0))': + dependencies: + '@babel/core': 7.24.0 + '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.24.0) + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.0) + '@babel/plugin-proposal-export-default-from': 7.25.9(@babel/core@7.24.0) + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.24.0) + '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.24.0) + '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.24.0) + '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.24.0) + '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.24.0) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-export-default-from': 7.25.9(@babel/core@7.24.0) + '@babel/plugin-syntax-flow': 7.26.0(@babel/core@7.24.0) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.24.0) + '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.24.0) + '@babel/plugin-transform-block-scoping': 7.25.9(@babel/core@7.24.0) + '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.24.0) + '@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.24.0) + '@babel/plugin-transform-destructuring': 7.25.9(@babel/core@7.24.0) + '@babel/plugin-transform-flow-strip-types': 7.26.5(@babel/core@7.24.0) + '@babel/plugin-transform-function-name': 7.25.9(@babel/core@7.24.0) + '@babel/plugin-transform-literals': 7.25.9(@babel/core@7.24.0) + '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.24.0) + '@babel/plugin-transform-named-capturing-groups-regex': 7.25.9(@babel/core@7.24.0) + '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.24.0) + '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.24.0) + '@babel/plugin-transform-private-property-in-object': 7.25.9(@babel/core@7.24.0) + '@babel/plugin-transform-react-display-name': 7.25.9(@babel/core@7.24.0) + '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.24.0) + '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.24.0) + '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.24.0) + '@babel/plugin-transform-runtime': 7.25.9(@babel/core@7.24.0) + '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.24.0) + '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.24.0) + '@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.24.0) + '@babel/plugin-transform-typescript': 7.26.5(@babel/core@7.24.0) + '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.24.0) + '@babel/template': 7.25.9 + '@react-native/babel-plugin-codegen': 0.73.4(@babel/preset-env@7.25.4(@babel/core@7.24.0)) + babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.24.0) + react-refresh: 0.14.2 + transitivePeerDependencies: + - '@babel/preset-env' + - supports-color + + '@react-native/babel-preset@0.74.87(@babel/core@7.24.0)(@babel/preset-env@7.25.4(@babel/core@7.24.0))': dependencies: '@babel/core': 7.24.0 '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.24.0) '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.0) '@babel/plugin-proposal-export-default-from': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-proposal-logical-assignment-operators': 7.20.7(@babel/core@7.24.0) '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.24.0) '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.24.0) '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.24.0) @@ -19630,56 +20403,7 @@ snapshots: '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.0) '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.0) '@babel/plugin-transform-arrow-functions': 7.25.7(@babel/core@7.24.0) - '@babel/plugin-transform-async-to-generator': 7.25.7(@babel/core@7.24.0) - '@babel/plugin-transform-block-scoping': 7.25.7(@babel/core@7.24.0) - '@babel/plugin-transform-classes': 7.25.7(@babel/core@7.24.0) - '@babel/plugin-transform-computed-properties': 7.25.7(@babel/core@7.24.0) - '@babel/plugin-transform-destructuring': 7.25.7(@babel/core@7.24.0) - '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-function-name': 7.25.7(@babel/core@7.24.0) - '@babel/plugin-transform-literals': 7.25.7(@babel/core@7.24.0) - '@babel/plugin-transform-modules-commonjs': 7.25.7(@babel/core@7.24.0) - '@babel/plugin-transform-named-capturing-groups-regex': 7.25.7(@babel/core@7.24.0) - '@babel/plugin-transform-parameters': 7.25.7(@babel/core@7.24.0) - '@babel/plugin-transform-private-methods': 7.25.7(@babel/core@7.24.0) - '@babel/plugin-transform-private-property-in-object': 7.25.8(@babel/core@7.24.0) - '@babel/plugin-transform-react-display-name': 7.25.7(@babel/core@7.24.0) - '@babel/plugin-transform-react-jsx': 7.25.7(@babel/core@7.24.0) - '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-transform-runtime': 7.24.0(@babel/core@7.24.0) - '@babel/plugin-transform-shorthand-properties': 7.25.7(@babel/core@7.24.0) - '@babel/plugin-transform-spread': 7.25.7(@babel/core@7.24.0) - '@babel/plugin-transform-sticky-regex': 7.25.7(@babel/core@7.24.0) - '@babel/plugin-transform-typescript': 7.25.7(@babel/core@7.24.0) - '@babel/plugin-transform-unicode-regex': 7.25.7(@babel/core@7.24.0) - '@babel/template': 7.25.7 - '@react-native/babel-plugin-codegen': 0.73.4(@babel/preset-env@7.25.4(@babel/core@7.24.0)) - babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.24.0) - react-refresh: 0.14.2 - transitivePeerDependencies: - - '@babel/preset-env' - - supports-color - - '@react-native/babel-preset@0.74.87(@babel/core@7.24.0)(@babel/preset-env@7.25.4(@babel/core@7.24.0))': - dependencies: - '@babel/core': 7.24.0 - '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.24.0) - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.0) - '@babel/plugin-proposal-export-default-from': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-proposal-logical-assignment-operators': 7.20.7(@babel/core@7.24.0) - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.24.0) - '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.24.0) - '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.24.0) - '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.24.0) - '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.24.0) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-export-default-from': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.24.0) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.0) - '@babel/plugin-transform-arrow-functions': 7.25.7(@babel/core@7.24.0) - '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.24.0) '@babel/plugin-transform-block-scoping': 7.25.7(@babel/core@7.24.0) '@babel/plugin-transform-classes': 7.23.8(@babel/core@7.24.0) '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.24.0) @@ -19712,7 +20436,7 @@ snapshots: '@react-native/codegen@0.73.3(@babel/preset-env@7.25.4(@babel/core@7.24.0))': dependencies: - '@babel/parser': 7.25.8 + '@babel/parser': 7.26.5 '@babel/preset-env': 7.25.4(@babel/core@7.24.0) flow-parser: 0.206.0 glob: 7.2.3 @@ -19797,7 +20521,7 @@ snapshots: open: 7.4.2 serve-static: 1.16.2 temp-dir: 2.0.0 - ws: 6.2.2 + ws: 6.2.3 transitivePeerDependencies: - bufferutil - encoding @@ -20598,7 +21322,7 @@ snapshots: - encoding - supports-color - '@storybook/builder-vite@8.0.1(encoding@0.1.13)(typescript@5.6.2)(vite@5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1))': + '@storybook/builder-vite@8.0.1(encoding@0.1.13)(typescript@5.6.2)(vite@5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1))': dependencies: '@storybook/channels': 8.0.1 '@storybook/client-logger': 8.0.1 @@ -20617,7 +21341,7 @@ snapshots: fs-extra: 11.2.0 magic-string: 0.30.8 ts-dedent: 2.2.0 - vite: 5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1) + vite: 5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1) optionalDependencies: typescript: 5.6.2 transitivePeerDependencies: @@ -20816,7 +21540,7 @@ snapshots: ts-dedent: 2.2.0 util: 0.12.5 util-deprecate: 1.0.2 - watchpack: 2.4.1 + watchpack: 2.4.2 ws: 8.18.0 transitivePeerDependencies: - bufferutil @@ -20931,11 +21655,11 @@ snapshots: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@storybook/react-vite@8.0.1(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(rollup@4.24.0)(typescript@5.6.2)(vite@5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1))': + '@storybook/react-vite@8.0.1(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(rollup@4.24.0)(typescript@5.6.2)(vite@5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.6.2)(vite@5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1)) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.6.2)(vite@5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1)) '@rollup/pluginutils': 5.1.0(rollup@4.24.0) - '@storybook/builder-vite': 8.0.1(encoding@0.1.13)(typescript@5.6.2)(vite@5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1)) + '@storybook/builder-vite': 8.0.1(encoding@0.1.13)(typescript@5.6.2)(vite@5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1)) '@storybook/node-logger': 8.0.1 '@storybook/react': 8.0.1(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.6.2) find-up: 5.0.0 @@ -20945,7 +21669,7 @@ snapshots: react-dom: 18.2.0(react@18.2.0) resolve: 1.22.8 tsconfig-paths: 4.2.0 - vite: 5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1) + vite: 5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1) transitivePeerDependencies: - '@preact/preset-vite' - encoding @@ -21212,7 +21936,7 @@ snapshots: '@swc/core-win32-x64-msvc@1.4.8': optional: true - '@swc/core@1.4.8(@swc/helpers@0.5.5)': + '@swc/core@1.4.8(@swc/helpers@0.5.15)': dependencies: '@swc/counter': 0.1.3 '@swc/types': 0.1.6 @@ -21227,14 +21951,19 @@ snapshots: '@swc/core-win32-arm64-msvc': 1.4.8 '@swc/core-win32-ia32-msvc': 1.4.8 '@swc/core-win32-x64-msvc': 1.4.8 - '@swc/helpers': 0.5.5 + '@swc/helpers': 0.5.15 '@swc/counter@0.1.3': {} + '@swc/helpers@0.5.15': + dependencies: + tslib: 2.8.1 + optional: true + '@swc/helpers@0.5.5': dependencies: '@swc/counter': 0.1.3 - tslib: 2.6.2 + tslib: 2.8.1 '@swc/types@0.1.6': dependencies: @@ -21752,16 +22481,10 @@ snapshots: '@types/json5@0.0.29': {} - '@types/katex@0.14.0': {} - '@types/katex@0.16.7': {} '@types/lodash@4.17.0': {} - '@types/mdast@3.0.15': - dependencies: - '@types/unist': 2.0.10 - '@types/mdast@4.0.3': dependencies: '@types/unist': 3.0.2 @@ -21791,6 +22514,10 @@ snapshots: dependencies: undici-types: 5.26.5 + '@types/node@22.10.5': + dependencies: + undici-types: 6.20.0 + '@types/node@22.7.5': dependencies: undici-types: 6.19.8 @@ -21799,8 +22526,6 @@ snapshots: '@types/offscreencanvas@2019.7.3': {} - '@types/parse5@6.0.3': {} - '@types/pretty-hrtime@1.0.3': {} '@types/prismjs@1.26.3': {} @@ -22129,6 +22854,14 @@ snapshots: '@use-gesture/core': 10.3.0 react: 18.2.0 + '@vercel/edge-config-fs@0.1.0': {} + + '@vercel/edge-config@1.4.0(@opentelemetry/api@1.9.0)': + dependencies: + '@vercel/edge-config-fs': 0.1.0 + optionalDependencies: + '@opentelemetry/api': 1.9.0 + '@vercel/ncc@0.38.1': {} '@virtual-grid/core@2.0.1': {} @@ -22147,10 +22880,10 @@ snapshots: '@virtual-grid/shared@2.0.1': {} - '@vitejs/plugin-react-swc@3.6.0(@swc/helpers@0.5.5)(vite@5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1))': + '@vitejs/plugin-react-swc@3.6.0(@swc/helpers@0.5.15)(vite@5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1))': dependencies: - '@swc/core': 1.4.8(@swc/helpers@0.5.5) - vite: 5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1) + '@swc/core': 1.4.8(@swc/helpers@0.5.15) + vite: 5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1) transitivePeerDependencies: - '@swc/helpers' @@ -22182,80 +22915,80 @@ snapshots: loupe: 2.3.7 pretty-format: 29.7.0 - '@webassemblyjs/ast@1.12.1': + '@webassemblyjs/ast@1.14.1': dependencies: - '@webassemblyjs/helper-numbers': 1.11.6 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/helper-numbers': 1.13.2 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/floating-point-hex-parser@1.11.6': {} + '@webassemblyjs/floating-point-hex-parser@1.13.2': {} - '@webassemblyjs/helper-api-error@1.11.6': {} + '@webassemblyjs/helper-api-error@1.13.2': {} - '@webassemblyjs/helper-buffer@1.12.1': {} + '@webassemblyjs/helper-buffer@1.14.1': {} - '@webassemblyjs/helper-numbers@1.11.6': + '@webassemblyjs/helper-numbers@1.13.2': dependencies: - '@webassemblyjs/floating-point-hex-parser': 1.11.6 - '@webassemblyjs/helper-api-error': 1.11.6 + '@webassemblyjs/floating-point-hex-parser': 1.13.2 + '@webassemblyjs/helper-api-error': 1.13.2 '@xtuc/long': 4.2.2 - '@webassemblyjs/helper-wasm-bytecode@1.11.6': {} + '@webassemblyjs/helper-wasm-bytecode@1.13.2': {} - '@webassemblyjs/helper-wasm-section@1.12.1': + '@webassemblyjs/helper-wasm-section@1.14.1': dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-buffer': 1.12.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/wasm-gen': 1.14.1 - '@webassemblyjs/ieee754@1.11.6': + '@webassemblyjs/ieee754@1.13.2': dependencies: '@xtuc/ieee754': 1.2.0 - '@webassemblyjs/leb128@1.11.6': + '@webassemblyjs/leb128@1.13.2': dependencies: '@xtuc/long': 4.2.2 - '@webassemblyjs/utf8@1.11.6': {} + '@webassemblyjs/utf8@1.13.2': {} - '@webassemblyjs/wasm-edit@1.12.1': + '@webassemblyjs/wasm-edit@1.14.1': dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-buffer': 1.12.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/helper-wasm-section': 1.12.1 - '@webassemblyjs/wasm-gen': 1.12.1 - '@webassemblyjs/wasm-opt': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 - '@webassemblyjs/wast-printer': 1.12.1 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/helper-wasm-section': 1.14.1 + '@webassemblyjs/wasm-gen': 1.14.1 + '@webassemblyjs/wasm-opt': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + '@webassemblyjs/wast-printer': 1.14.1 - '@webassemblyjs/wasm-gen@1.12.1': + '@webassemblyjs/wasm-gen@1.14.1': dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/ieee754': 1.11.6 - '@webassemblyjs/leb128': 1.11.6 - '@webassemblyjs/utf8': 1.11.6 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/ieee754': 1.13.2 + '@webassemblyjs/leb128': 1.13.2 + '@webassemblyjs/utf8': 1.13.2 - '@webassemblyjs/wasm-opt@1.12.1': + '@webassemblyjs/wasm-opt@1.14.1': dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-buffer': 1.12.1 - '@webassemblyjs/wasm-gen': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/wasm-gen': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 - '@webassemblyjs/wasm-parser@1.12.1': + '@webassemblyjs/wasm-parser@1.14.1': dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-api-error': 1.11.6 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/ieee754': 1.11.6 - '@webassemblyjs/leb128': 1.11.6 - '@webassemblyjs/utf8': 1.11.6 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-api-error': 1.13.2 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/ieee754': 1.13.2 + '@webassemblyjs/leb128': 1.13.2 + '@webassemblyjs/utf8': 1.13.2 - '@webassemblyjs/wast-printer@1.12.1': + '@webassemblyjs/wast-printer@1.14.1': dependencies: - '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/ast': 1.14.1 '@xtuc/long': 4.2.2 '@wojtekmaj/date-utils@1.5.1': {} @@ -22271,7 +23004,7 @@ snapshots: '@yarnpkg/esbuild-plugin-pnp@3.0.0-rc.15(esbuild@0.20.2)': dependencies: esbuild: 0.20.2 - tslib: 2.7.0 + tslib: 2.8.1 '@yarnpkg/fslib@2.10.3': dependencies: @@ -22308,13 +23041,13 @@ snapshots: accessor-fn@1.5.0: {} - acorn-import-assertions@1.9.0(acorn@8.12.1): + acorn-import-assertions@1.9.0(acorn@8.14.0): dependencies: - acorn: 8.12.1 + acorn: 8.14.0 - acorn-import-attributes@1.9.5(acorn@8.12.1): + acorn-import-attributes@1.9.5(acorn@8.14.0): dependencies: - acorn: 8.12.1 + acorn: 8.14.0 acorn-jsx@5.3.2(acorn@7.4.1): dependencies: @@ -22328,6 +23061,10 @@ snapshots: dependencies: acorn: 8.12.1 + acorn-jsx@5.3.2(acorn@8.14.0): + dependencies: + acorn: 8.14.0 + acorn-walk@7.2.0: {} acorn-walk@8.3.2: {} @@ -22338,6 +23075,8 @@ snapshots: acorn@8.12.1: {} + acorn@8.14.0: {} + address@1.2.2: {} agent-base@6.0.2: @@ -22357,10 +23096,19 @@ snapshots: clean-stack: 2.2.0 indent-string: 4.0.0 + ajv-formats@2.1.1(ajv@8.17.1): + optionalDependencies: + ajv: 8.17.1 + ajv-keywords@3.5.2(ajv@6.12.6): dependencies: ajv: 6.12.6 + ajv-keywords@5.1.0(ajv@8.17.1): + dependencies: + ajv: 8.17.1 + fast-deep-equal: 3.1.3 + ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -22375,6 +23123,13 @@ snapshots: require-from-string: 2.0.2 uri-js: 4.4.1 + ajv@8.17.1: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.0.5 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + algoliasearch@4.22.1: dependencies: '@algolia/cache-browser-local-storage': 4.22.1 @@ -22448,15 +23203,15 @@ snapshots: applicationinsights@2.7.3: dependencies: - '@azure/core-auth': 1.8.0 + '@azure/core-auth': 1.9.0 '@azure/core-rest-pipeline': 1.10.1 '@azure/core-util': 1.2.0 '@azure/opentelemetry-instrumentation-azure-sdk': 1.0.0-beta.7 '@microsoft/applicationinsights-web-snippet': 1.2.1 '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 1.26.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.27.0 + '@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.30.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.28.0 cls-hooked: 4.2.2 continuation-local-storage: 3.2.1 diagnostic-channel: 1.1.1 @@ -22632,11 +23387,11 @@ snapshots: ast-types@0.15.2: dependencies: - tslib: 2.7.0 + tslib: 2.8.1 ast-types@0.16.1: dependencies: - tslib: 2.7.0 + tslib: 2.8.1 ast-types@0.7.8: {} @@ -22738,6 +23493,15 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-polyfill-corejs2@0.4.12(@babel/core@7.24.0): + dependencies: + '@babel/compat-data': 7.26.5 + '@babel/core': 7.24.0 + '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.24.0) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.24.0): dependencies: '@babel/core': 7.24.0 @@ -22768,6 +23532,13 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-polyfill-regenerator@0.6.3(@babel/core@7.24.0): + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.24.0) + transitivePeerDependencies: + - supports-color + babel-plugin-react-compiler@0.0.0-experimental-5f79ba2-20240815: dependencies: '@babel/generator': 7.2.0 @@ -22873,6 +23644,8 @@ snapshots: dependencies: open: 8.4.2 + bezier-easing@2.1.0: {} + bezier-js@6.1.4: {} bidi-js@1.0.3: @@ -23041,11 +23814,18 @@ snapshots: browserslist@4.24.0: dependencies: - caniuse-lite: 1.0.30001668 + caniuse-lite: 1.0.30001692 electron-to-chromium: 1.5.38 node-releases: 2.0.18 update-browserslist-db: 1.1.1(browserslist@4.24.0) + browserslist@4.24.4: + dependencies: + caniuse-lite: 1.0.30001692 + electron-to-chromium: 1.5.80 + node-releases: 2.0.19 + update-browserslist-db: 1.1.2(browserslist@4.24.4) + bser@2.1.1: dependencies: node-int64: 0.4.0 @@ -23155,7 +23935,7 @@ snapshots: caniuse-lite@1.0.30001599: {} - caniuse-lite@1.0.30001668: {} + caniuse-lite@1.0.30001692: {} canvas-color-tracker@1.2.1: dependencies: @@ -23248,7 +24028,7 @@ snapshots: chromium-edge-launcher@1.0.0: dependencies: - '@types/node': 22.7.5 + '@types/node': 22.10.5 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2 @@ -23373,6 +24153,8 @@ snapshots: code-point-at@1.1.0: {} + collapse-white-space@2.1.0: {} + color-convert@1.9.3: dependencies: color-name: 1.1.3 @@ -23421,14 +24203,6 @@ snapshots: commander@9.5.0: {} - comment-json@4.2.3: - dependencies: - array-timsort: 1.0.3 - core-util-is: 1.0.3 - esprima: 4.0.1 - has-own-prop: 2.0.0 - repeat-string: 1.6.1 - comment-json@4.2.5: dependencies: array-timsort: 1.0.3 @@ -23469,6 +24243,18 @@ snapshots: transitivePeerDependencies: - supports-color + compression@1.7.5: + dependencies: + bytes: 3.1.2 + compressible: 2.0.18 + debug: 2.6.9 + negotiator: 0.6.4 + on-headers: 1.0.2 + safe-buffer: 5.2.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + computed-style@0.1.4: {} concat-map@0.0.1: {} @@ -23505,16 +24291,17 @@ snapshots: content-type@1.0.5: {} - contentlayer@0.3.4(esbuild@0.21.5): + contentlayer2@0.5.3(acorn@8.14.0)(esbuild@0.21.5): dependencies: - '@contentlayer/cli': 0.3.4(patch_hash=r22rdxqpl6d5mdpkhdt6tw4evu)(esbuild@0.21.5) - '@contentlayer/client': 0.3.4(esbuild@0.21.5) - '@contentlayer/core': 0.3.4(esbuild@0.21.5) - '@contentlayer/source-files': 0.3.4(esbuild@0.21.5) - '@contentlayer/source-remote-files': 0.3.4(esbuild@0.21.5) - '@contentlayer/utils': 0.3.4 + '@contentlayer2/cli': 0.5.3(acorn@8.14.0)(esbuild@0.21.5) + '@contentlayer2/client': 0.5.3(acorn@8.14.0)(esbuild@0.21.5) + '@contentlayer2/core': 0.5.3(acorn@8.14.0)(esbuild@0.21.5) + '@contentlayer2/source-files': 0.5.3(acorn@8.14.0)(esbuild@0.21.5) + '@contentlayer2/source-remote-files': 0.5.3(acorn@8.14.0)(esbuild@0.21.5) + '@contentlayer2/utils': 0.5.3 transitivePeerDependencies: - '@effect-ts/otel-node' + - acorn - esbuild - markdown-wasm - supports-color @@ -23659,7 +24446,7 @@ snapshots: dependencies: '@cspell/cspell-types': 8.15.2 comment-json: 4.2.5 - yaml: 2.6.0 + yaml: 2.7.0 cspell-dictionary@8.15.2: dependencies: @@ -23940,8 +24727,6 @@ snapshots: dependencies: assert-plus: 1.0.0 - data-uri-to-buffer@4.0.1: {} - data-urls@5.0.0: dependencies: whatwg-mimetype: 4.0.0 @@ -23991,6 +24776,10 @@ snapshots: optionalDependencies: supports-color: 8.1.1 + debug@4.4.0: + dependencies: + ms: 2.1.3 + decamelize@1.2.0: {} decimal.js@10.4.3: {} @@ -24156,8 +24945,6 @@ snapshots: diff-sequences@29.6.3: {} - diff@5.2.0: {} - diffie-hellman@5.0.3: dependencies: bn.js: 4.12.0 @@ -24227,7 +25014,7 @@ snapshots: dot-case@3.0.4: dependencies: no-case: 3.0.4 - tslib: 2.7.0 + tslib: 2.8.1 dot-object@2.1.4: dependencies: @@ -24278,6 +25065,8 @@ snapshots: electron-to-chromium@1.5.38: {} + electron-to-chromium@1.5.80: {} + elliptic@6.5.5: dependencies: bn.js: 4.12.0 @@ -24316,7 +25105,7 @@ snapshots: graceful-fs: 4.2.11 tapable: 2.2.1 - enhanced-resolve@5.17.1: + enhanced-resolve@5.18.0: dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 @@ -24497,6 +25286,8 @@ snapshots: es-module-lexer@1.5.4: {} + es-module-lexer@1.6.0: {} + es-object-atoms@1.0.0: dependencies: es-errors: 1.3.0 @@ -24517,6 +25308,20 @@ snapshots: is-date-object: 1.0.5 is-symbol: 1.0.4 + esast-util-from-estree@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + devlop: 1.1.0 + estree-util-visit: 2.0.0 + unist-util-position-from-estree: 2.0.0 + + esast-util-from-js@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + acorn: 8.14.0 + esast-util-from-estree: 2.0.0 + vfile-message: 4.0.2 + esbuild-plugin-alias@0.2.1: {} esbuild-register@3.5.0(esbuild@0.20.2): @@ -24710,8 +25515,8 @@ snapshots: eslint-plugin-es-x@7.8.0(eslint@8.57.1): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1) - '@eslint-community/regexpp': 4.11.1 + '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) + '@eslint-community/regexpp': 4.12.1 eslint: 8.57.1 eslint-compat-utils: 0.5.1(eslint@8.57.1) @@ -24808,17 +25613,17 @@ snapshots: eslint-plugin-n@16.6.2(eslint@8.57.1): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1) + '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) builtins: 5.1.0 eslint: 8.57.1 eslint-plugin-es-x: 7.8.0(eslint@8.57.1) - get-tsconfig: 4.7.3 + get-tsconfig: 4.8.1 globals: 13.24.0 ignore: 5.3.2 is-builtin-module: 3.2.1 - is-core-module: 2.15.1 + is-core-module: 2.16.1 minimatch: 3.1.2 - resolve: 1.22.8 + resolve: 1.22.10 semver: 7.6.3 eslint-plugin-prettier@5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.3.3): @@ -24991,36 +25796,38 @@ snapshots: estraverse@5.3.0: {} - estree-util-attach-comments@2.1.1: + estree-util-attach-comments@3.0.0: dependencies: '@types/estree': 1.0.6 - estree-util-build-jsx@2.2.2: + estree-util-build-jsx@3.0.1: dependencies: '@types/estree-jsx': 1.0.5 - estree-util-is-identifier-name: 2.1.0 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 estree-walker: 3.0.3 - estree-util-is-identifier-name@1.1.0: {} - - estree-util-is-identifier-name@2.1.0: {} - estree-util-is-identifier-name@3.0.0: {} - estree-util-to-js@1.2.0: + estree-util-scope@1.0.0: + dependencies: + '@types/estree': 1.0.6 + devlop: 1.1.0 + + estree-util-to-js@2.0.0: dependencies: '@types/estree-jsx': 1.0.5 astring: 1.8.6 source-map: 0.7.4 - estree-util-value-to-estree@1.3.0: + estree-util-value-to-estree@3.2.1: dependencies: - is-plain-obj: 3.0.0 + '@types/estree': 1.0.6 - estree-util-visit@1.2.1: + estree-util-visit@2.0.0: dependencies: '@types/estree-jsx': 1.0.5 - '@types/unist': 2.0.10 + '@types/unist': 3.0.2 estree-walker@2.0.2: {} @@ -25303,10 +26110,16 @@ snapshots: fast-levenshtein@2.0.6: {} + fast-uri@3.0.5: {} + fast-xml-parser@4.5.0: dependencies: strnum: 1.0.5 + fast-xml-parser@4.5.1: + dependencies: + strnum: 1.0.5 + fastest-levenshtein@1.0.16: {} fastq@1.17.1: @@ -25349,11 +26162,6 @@ snapshots: optionalDependencies: picomatch: 4.0.2 - fetch-blob@3.2.0: - dependencies: - node-domexception: 1.0.0 - web-streams-polyfill: 3.3.3 - fetch-retry@4.1.1: {} fetch-retry@5.0.6: {} @@ -25449,7 +26257,7 @@ snapshots: find-yarn-workspace-root@2.0.0: dependencies: - micromatch: 4.0.5 + micromatch: 4.0.8 flat-cache@3.2.0: dependencies: @@ -25540,10 +26348,6 @@ snapshots: format@0.2.2: {} - formdata-polyfill@4.0.10: - dependencies: - fetch-blob: 3.2.0 - forwarded@0.2.0: {} fraction.js@4.3.7: {} @@ -25556,14 +26360,14 @@ snapshots: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - framer-motion@6.5.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + framer-motion@6.5.1(react-dom@19.0.0(react@18.2.0))(react@18.2.0): dependencies: '@motionone/dom': 10.12.0 framesync: 6.0.1 hey-listen: 1.0.8 popmotion: 11.0.3 react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react-dom: 19.0.0(react@18.2.0) style-value-types: 5.0.0 tslib: 2.7.0 optionalDependencies: @@ -25631,8 +26435,6 @@ snapshots: dependencies: minipass: 7.0.4 - fs-monkey@1.0.5: {} - fs.realpath@1.0.0: {} fsevents@2.3.2: @@ -25723,6 +26525,10 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 + get-tsconfig@4.8.1: + dependencies: + resolve-pkg-maps: 1.0.0 + get-user-locale@2.3.2: dependencies: mem: 8.1.1 @@ -25944,34 +26750,37 @@ snapshots: dependencies: function-bind: 1.1.2 - hast-util-from-dom@4.2.0: + hast-util-from-dom@5.0.1: dependencies: - hastscript: 7.2.0 + '@types/hast': 3.0.4 + hastscript: 9.0.0 web-namespaces: 2.0.1 - hast-util-from-html-isomorphic@1.0.0: + hast-util-from-html-isomorphic@2.0.0: dependencies: - '@types/hast': 2.3.10 - hast-util-from-dom: 4.2.0 - hast-util-from-html: 1.0.2 - unist-util-remove-position: 4.0.2 + '@types/hast': 3.0.4 + hast-util-from-dom: 5.0.1 + hast-util-from-html: 2.0.3 + unist-util-remove-position: 5.0.0 - hast-util-from-html@1.0.2: + hast-util-from-html@2.0.3: dependencies: - '@types/hast': 2.3.10 - hast-util-from-parse5: 7.1.2 + '@types/hast': 3.0.4 + devlop: 1.1.0 + hast-util-from-parse5: 8.0.2 parse5: 7.1.2 - vfile: 5.3.7 - vfile-message: 3.1.4 + vfile: 6.0.1 + vfile-message: 4.0.2 - hast-util-from-parse5@7.1.2: + hast-util-from-parse5@8.0.2: dependencies: - '@types/hast': 2.3.10 - '@types/unist': 2.0.10 - hastscript: 7.2.0 + '@types/hast': 3.0.4 + '@types/unist': 3.0.2 + devlop: 1.1.0 + hastscript: 9.0.0 property-information: 6.4.1 - vfile: 5.3.7 - vfile-location: 4.1.0 + vfile: 6.0.1 + vfile-location: 5.0.3 web-namespaces: 2.0.1 hast-util-has-property@2.0.1: {} @@ -25984,11 +26793,6 @@ snapshots: dependencies: '@types/hast': 3.0.4 - hast-util-is-element@2.1.3: - dependencies: - '@types/hast': 2.3.10 - '@types/unist': 2.0.10 - hast-util-is-element@3.0.0: dependencies: '@types/hast': 3.0.4 @@ -25997,49 +26801,40 @@ snapshots: dependencies: '@types/hast': 2.3.10 - hast-util-raw@7.2.3: + hast-util-parse-selector@4.0.0: dependencies: - '@types/hast': 2.3.10 - '@types/parse5': 6.0.3 - hast-util-from-parse5: 7.1.2 - hast-util-to-parse5: 7.1.0 - html-void-elements: 2.0.1 - parse5: 6.0.1 - unist-util-position: 4.0.4 - unist-util-visit: 4.1.2 - vfile: 5.3.7 - web-namespaces: 2.0.1 - zwitch: 2.0.4 + '@types/hast': 3.0.4 - hast-util-to-estree@2.3.3: + hast-util-to-estree@3.1.1: dependencies: '@types/estree': 1.0.6 '@types/estree-jsx': 1.0.5 - '@types/hast': 2.3.10 - '@types/unist': 2.0.10 + '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 - estree-util-attach-comments: 2.1.1 - estree-util-is-identifier-name: 2.1.0 - hast-util-whitespace: 2.0.1 - mdast-util-mdx-expression: 1.3.2 - mdast-util-mdxjs-esm: 1.3.1 + devlop: 1.1.0 + estree-util-attach-comments: 3.0.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.0 + mdast-util-mdx-jsx: 3.1.2 + mdast-util-mdxjs-esm: 2.0.1 property-information: 6.4.1 space-separated-tokens: 2.0.2 - style-to-object: 0.4.4 - unist-util-position: 4.0.4 + style-to-object: 1.0.5 + unist-util-position: 5.0.0 zwitch: 2.0.4 transitivePeerDependencies: - supports-color - hast-util-to-html@8.0.4: + hast-util-to-html@9.0.4: dependencies: - '@types/hast': 2.3.10 - '@types/unist': 2.0.10 + '@types/hast': 3.0.4 + '@types/unist': 3.0.2 ccount: 2.0.1 comma-separated-tokens: 2.0.3 - hast-util-raw: 7.2.3 - hast-util-whitespace: 2.0.1 - html-void-elements: 2.0.1 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.1.0 property-information: 6.4.1 space-separated-tokens: 2.0.2 stringify-entities: 4.0.3 @@ -26065,15 +26860,6 @@ snapshots: transitivePeerDependencies: - supports-color - hast-util-to-parse5@7.1.0: - dependencies: - '@types/hast': 2.3.10 - comma-separated-tokens: 2.0.3 - property-information: 6.4.1 - space-separated-tokens: 2.0.2 - web-namespaces: 2.0.1 - zwitch: 2.0.4 - hast-util-to-string@2.0.0: dependencies: '@types/hast': 2.3.10 @@ -26082,14 +26868,12 @@ snapshots: dependencies: '@types/hast': 3.0.4 - hast-util-to-text@3.1.2: + hast-util-to-text@4.0.2: dependencies: - '@types/hast': 2.3.10 - '@types/unist': 2.0.10 - hast-util-is-element: 2.1.3 - unist-util-find-after: 4.0.1 - - hast-util-whitespace@2.0.1: {} + '@types/hast': 3.0.4 + '@types/unist': 3.0.2 + hast-util-is-element: 3.0.0 + unist-util-find-after: 5.0.0 hast-util-whitespace@3.0.0: dependencies: @@ -26103,6 +26887,14 @@ snapshots: property-information: 6.4.1 space-separated-tokens: 2.0.2 + hastscript@9.0.0: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 4.0.0 + property-information: 6.4.1 + space-separated-tokens: 2.0.2 + he@1.2.0: {} hermes-estree@0.14.0: {} @@ -26179,7 +26971,7 @@ snapshots: html-url-attributes@3.0.0: {} - html-void-elements@2.0.1: {} + html-void-elements@3.0.0: {} html-webpack-plugin@5.6.0(webpack@5.90.3): dependencies: @@ -26217,7 +27009,7 @@ snapshots: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0 transitivePeerDependencies: - supports-color @@ -26254,6 +27046,8 @@ snapshots: human-signals@5.0.0: {} + hyperdyperid@1.2.0: {} + i18next-browser-languagedetector@7.2.0: dependencies: '@babel/runtime': 7.24.0 @@ -26300,10 +27094,10 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 - import-in-the-middle@1.11.2: + import-in-the-middle@1.12.0: dependencies: - acorn: 8.12.1 - acorn-import-attributes: 1.9.5(acorn@8.12.1) + acorn: 8.14.0 + acorn-import-attributes: 1.9.5(acorn@8.14.0) cjs-module-lexer: 1.4.1 module-details-from-path: 1.0.3 @@ -26317,7 +27111,7 @@ snapshots: indexof@0.0.1: {} - inflection@2.0.1: {} + inflection@3.0.2: {} inflight@1.0.6: dependencies: @@ -26432,6 +27226,10 @@ snapshots: dependencies: hasown: 2.0.2 + is-core-module@2.16.1: + dependencies: + hasown: 2.0.2 + is-data-view@1.0.1: dependencies: is-typed-array: 1.1.13 @@ -26528,8 +27326,6 @@ snapshots: is-plain-obj@2.1.0: {} - is-plain-obj@3.0.0: {} - is-plain-obj@4.1.0: {} is-plain-object@2.0.4: @@ -26540,10 +27336,6 @@ snapshots: is-potential-custom-element-name@1.0.1: {} - is-reference@3.0.2: - dependencies: - '@types/estree': 1.0.6 - is-regex@1.1.4: dependencies: call-bind: 1.0.7 @@ -26706,7 +27498,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.7.5 + '@types/node': 22.10.5 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -26801,7 +27593,7 @@ snapshots: chalk: 4.1.2 flow-parser: 0.231.0 graceful-fs: 4.2.11 - micromatch: 4.0.5 + micromatch: 4.0.8 neo-async: 2.6.2 node-dir: 0.1.17 recast: 0.23.6 @@ -26848,6 +27640,8 @@ snapshots: jsesc@3.0.2: {} + jsesc@3.1.0: {} + json-buffer@3.0.1: {} json-parse-better-errors@1.0.2: {} @@ -27179,7 +27973,7 @@ snapshots: lower-case@2.0.2: dependencies: - tslib: 2.7.0 + tslib: 2.8.1 lru-cache@10.2.0: {} @@ -27255,7 +28049,7 @@ snapshots: map-stream@0.1.0: {} - markdown-extensions@1.1.1: {} + markdown-extensions@2.0.0: {} markdown-table@3.0.3: {} @@ -27305,35 +28099,12 @@ snapshots: md5hex@1.0.0: {} - mdast-util-definitions@5.1.2: - dependencies: - '@types/mdast': 3.0.15 - '@types/unist': 2.0.10 - unist-util-visit: 4.1.2 - - mdast-util-find-and-replace@2.2.2: + mdast-util-find-and-replace@3.0.2: dependencies: - '@types/mdast': 3.0.15 + '@types/mdast': 4.0.3 escape-string-regexp: 5.0.0 - unist-util-is: 5.2.1 - unist-util-visit-parents: 5.1.3 - - mdast-util-from-markdown@1.3.1: - dependencies: - '@types/mdast': 3.0.15 - '@types/unist': 2.0.10 - decode-named-character-reference: 1.0.2 - mdast-util-to-string: 3.2.0 - micromark: 3.2.0 - micromark-util-decode-numeric-character-reference: 1.1.0 - micromark-util-decode-string: 1.1.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - unist-util-stringify-position: 3.0.3 - uvu: 0.5.6 - transitivePeerDependencies: - - supports-color + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 mdast-util-from-markdown@2.0.0: dependencies: @@ -27352,97 +28123,94 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-frontmatter@1.0.1: + mdast-util-frontmatter@2.0.1: dependencies: - '@types/mdast': 3.0.15 - mdast-util-to-markdown: 1.5.0 - micromark-extension-frontmatter: 1.1.1 + '@types/mdast': 4.0.3 + devlop: 1.1.0 + escape-string-regexp: 5.0.0 + mdast-util-from-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.0 + micromark-extension-frontmatter: 2.0.0 + transitivePeerDependencies: + - supports-color - mdast-util-gfm-autolink-literal@1.0.3: + mdast-util-gfm-autolink-literal@2.0.1: dependencies: - '@types/mdast': 3.0.15 + '@types/mdast': 4.0.3 ccount: 2.0.1 - mdast-util-find-and-replace: 2.2.2 - micromark-util-character: 1.2.0 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.2 + micromark-util-character: 2.1.0 - mdast-util-gfm-footnote@1.0.2: + mdast-util-gfm-footnote@2.0.0: dependencies: - '@types/mdast': 3.0.15 - mdast-util-to-markdown: 1.5.0 - micromark-util-normalize-identifier: 1.1.0 + '@types/mdast': 4.0.3 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.0 + micromark-util-normalize-identifier: 2.0.0 + transitivePeerDependencies: + - supports-color - mdast-util-gfm-strikethrough@1.0.3: + mdast-util-gfm-strikethrough@2.0.0: dependencies: - '@types/mdast': 3.0.15 - mdast-util-to-markdown: 1.5.0 + '@types/mdast': 4.0.3 + mdast-util-from-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color - mdast-util-gfm-table@1.0.7: + mdast-util-gfm-table@2.0.0: dependencies: - '@types/mdast': 3.0.15 + '@types/mdast': 4.0.3 + devlop: 1.1.0 markdown-table: 3.0.3 - mdast-util-from-markdown: 1.3.1 - mdast-util-to-markdown: 1.5.0 + mdast-util-from-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color - mdast-util-gfm-task-list-item@1.0.2: + mdast-util-gfm-task-list-item@2.0.0: dependencies: - '@types/mdast': 3.0.15 - mdast-util-to-markdown: 1.5.0 - - mdast-util-gfm@2.0.2: - dependencies: - mdast-util-from-markdown: 1.3.1 - mdast-util-gfm-autolink-literal: 1.0.3 - mdast-util-gfm-footnote: 1.0.2 - mdast-util-gfm-strikethrough: 1.0.3 - mdast-util-gfm-table: 1.0.7 - mdast-util-gfm-task-list-item: 1.0.2 - mdast-util-to-markdown: 1.5.0 + '@types/mdast': 4.0.3 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color - mdast-util-math@2.0.2: + mdast-util-gfm@3.0.0: dependencies: - '@types/mdast': 3.0.15 - longest-streak: 3.1.0 - mdast-util-to-markdown: 1.5.0 - - mdast-util-mdx-expression@1.3.2: - dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 2.3.10 - '@types/mdast': 3.0.15 - mdast-util-from-markdown: 1.3.1 - mdast-util-to-markdown: 1.5.0 + mdast-util-from-markdown: 2.0.0 + mdast-util-gfm-autolink-literal: 2.0.1 + mdast-util-gfm-footnote: 2.0.0 + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-gfm-table: 2.0.0 + mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color - mdast-util-mdx-expression@2.0.0: + mdast-util-math@3.0.0: dependencies: - '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 '@types/mdast': 4.0.3 devlop: 1.1.0 + longest-streak: 3.1.0 mdast-util-from-markdown: 2.0.0 mdast-util-to-markdown: 2.1.0 + unist-util-remove-position: 5.0.0 transitivePeerDependencies: - supports-color - mdast-util-mdx-jsx@2.1.4: + mdast-util-mdx-expression@2.0.0: dependencies: '@types/estree-jsx': 1.0.5 - '@types/hast': 2.3.10 - '@types/mdast': 3.0.15 - '@types/unist': 2.0.10 - ccount: 2.0.1 - mdast-util-from-markdown: 1.3.1 - mdast-util-to-markdown: 1.5.0 - parse-entities: 4.0.1 - stringify-entities: 4.0.3 - unist-util-remove-position: 4.0.2 - unist-util-stringify-position: 3.0.3 - vfile-message: 3.1.4 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.3 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color @@ -27464,23 +28232,13 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-mdx@2.0.1: - dependencies: - mdast-util-from-markdown: 1.3.1 - mdast-util-mdx-expression: 1.3.2 - mdast-util-mdx-jsx: 2.1.4 - mdast-util-mdxjs-esm: 1.3.1 - mdast-util-to-markdown: 1.5.0 - transitivePeerDependencies: - - supports-color - - mdast-util-mdxjs-esm@1.3.1: + mdast-util-mdx@3.0.0: dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 2.3.10 - '@types/mdast': 3.0.15 - mdast-util-from-markdown: 1.3.1 - mdast-util-to-markdown: 1.5.0 + mdast-util-from-markdown: 2.0.0 + mdast-util-mdx-expression: 2.0.0 + mdast-util-mdx-jsx: 3.1.2 + mdast-util-mdxjs-esm: 2.0.1 + mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color @@ -27495,27 +28253,11 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-phrasing@3.0.1: - dependencies: - '@types/mdast': 3.0.15 - unist-util-is: 5.2.1 - mdast-util-phrasing@4.1.0: dependencies: '@types/mdast': 4.0.3 unist-util-is: 6.0.0 - mdast-util-to-hast@12.3.0: - dependencies: - '@types/hast': 2.3.10 - '@types/mdast': 3.0.15 - mdast-util-definitions: 5.1.2 - micromark-util-sanitize-uri: 1.2.0 - trim-lines: 3.0.1 - unist-util-generated: 2.0.1 - unist-util-position: 4.0.4 - unist-util-visit: 4.1.2 - mdast-util-to-hast@13.1.0: dependencies: '@types/hast': 3.0.4 @@ -27528,17 +28270,6 @@ snapshots: unist-util-visit: 5.0.0 vfile: 6.0.1 - mdast-util-to-markdown@1.5.0: - dependencies: - '@types/mdast': 3.0.15 - '@types/unist': 2.0.10 - longest-streak: 3.1.0 - mdast-util-phrasing: 3.0.1 - mdast-util-to-string: 3.2.0 - micromark-util-decode-string: 1.1.0 - unist-util-visit: 4.1.2 - zwitch: 2.0.4 - mdast-util-to-markdown@2.1.0: dependencies: '@types/mdast': 4.0.3 @@ -27550,10 +28281,6 @@ snapshots: unist-util-visit: 5.0.0 zwitch: 2.0.4 - mdast-util-to-string@3.2.0: - dependencies: - '@types/mdast': 3.0.15 - mdast-util-to-string@4.0.0: dependencies: '@types/mdast': 4.0.3 @@ -27564,19 +28291,20 @@ snapshots: mdn-data@2.0.30: {} - mdx-bundler@9.2.1(esbuild@0.21.5): + mdx-bundler@10.0.3(acorn@8.14.0)(esbuild@0.21.5): dependencies: - '@babel/runtime': 7.24.0 - '@esbuild-plugins/node-resolve': 0.1.4(esbuild@0.21.5) + '@babel/runtime': 7.25.7 + '@esbuild-plugins/node-resolve': 0.2.2(esbuild@0.21.5) '@fal-works/esbuild-plugin-global-externals': 2.1.2 - '@mdx-js/esbuild': 2.3.0(esbuild@0.21.5) + '@mdx-js/esbuild': 3.1.0(acorn@8.14.0)(esbuild@0.21.5) esbuild: 0.21.5 gray-matter: 4.0.3 - remark-frontmatter: 4.0.1 - remark-mdx-frontmatter: 1.1.1 - uuid: 8.3.2 - vfile: 5.3.7 + remark-frontmatter: 5.0.0 + remark-mdx-frontmatter: 4.0.0 + uuid: 9.0.1 + vfile: 6.0.1 transitivePeerDependencies: + - acorn - supports-color media-typer@0.3.0: {} @@ -27598,9 +28326,12 @@ snapshots: map-age-cleaner: 0.1.3 mimic-fn: 3.1.0 - memfs@3.5.3: + memfs@4.17.0: dependencies: - fs-monkey: 1.0.5 + '@jsonjoy.com/json-pack': 1.1.1(tslib@2.8.1) + '@jsonjoy.com/util': 1.5.0(tslib@2.8.1) + tree-dump: 1.0.2(tslib@2.8.1) + tslib: 2.8.1 memoize-one@5.2.1: {} @@ -28031,25 +28762,6 @@ snapshots: - supports-color - utf-8-validate - micromark-core-commonmark@1.1.0: - dependencies: - decode-named-character-reference: 1.0.2 - micromark-factory-destination: 1.1.0 - micromark-factory-label: 1.1.0 - micromark-factory-space: 1.1.0 - micromark-factory-title: 1.1.0 - micromark-factory-whitespace: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-chunked: 1.1.0 - micromark-util-classify-character: 1.1.0 - micromark-util-html-tag-name: 1.2.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-resolve-all: 1.1.0 - micromark-util-subtokenize: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - micromark-core-commonmark@2.0.0: dependencies: decode-named-character-reference: 1.0.2 @@ -28069,137 +28781,132 @@ snapshots: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - micromark-extension-frontmatter@1.1.1: + micromark-extension-frontmatter@2.0.0: dependencies: fault: 2.0.1 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 - micromark-extension-gfm-autolink-literal@1.0.5: + micromark-extension-gfm-autolink-literal@2.1.0: dependencies: - micromark-util-character: 1.2.0 - micromark-util-sanitize-uri: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 + micromark-util-character: 2.1.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 - micromark-extension-gfm-footnote@1.1.2: + micromark-extension-gfm-footnote@2.1.0: dependencies: - micromark-core-commonmark: 1.1.0 - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-sanitize-uri: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 - micromark-extension-gfm-strikethrough@1.0.7: + micromark-extension-gfm-strikethrough@2.1.0: dependencies: - micromark-util-chunked: 1.1.0 - micromark-util-classify-character: 1.1.0 - micromark-util-resolve-all: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 + devlop: 1.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-classify-character: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 - micromark-extension-gfm-table@1.0.7: + micromark-extension-gfm-table@2.1.0: dependencies: - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 - micromark-extension-gfm-tagfilter@1.0.2: + micromark-extension-gfm-tagfilter@2.0.0: dependencies: - micromark-util-types: 1.1.0 + micromark-util-types: 2.0.0 - micromark-extension-gfm-task-list-item@1.0.5: + micromark-extension-gfm-task-list-item@2.1.0: dependencies: - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 - micromark-extension-gfm@2.0.3: + micromark-extension-gfm@3.0.0: dependencies: - micromark-extension-gfm-autolink-literal: 1.0.5 - micromark-extension-gfm-footnote: 1.1.2 - micromark-extension-gfm-strikethrough: 1.0.7 - micromark-extension-gfm-table: 1.0.7 - micromark-extension-gfm-tagfilter: 1.0.2 - micromark-extension-gfm-task-list-item: 1.0.5 - micromark-util-combine-extensions: 1.1.0 - micromark-util-types: 1.1.0 + micromark-extension-gfm-autolink-literal: 2.1.0 + micromark-extension-gfm-footnote: 2.1.0 + micromark-extension-gfm-strikethrough: 2.1.0 + micromark-extension-gfm-table: 2.1.0 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.1.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-types: 2.0.0 - micromark-extension-math@2.1.2: + micromark-extension-math@3.1.0: dependencies: '@types/katex': 0.16.7 + devlop: 1.1.0 katex: 0.16.9 - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 - micromark-extension-mdx-expression@1.0.8: + micromark-extension-mdx-expression@3.0.0: dependencies: '@types/estree': 1.0.6 - micromark-factory-mdx-expression: 1.0.9 - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-events-to-acorn: 1.2.3 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 + devlop: 1.1.0 + micromark-factory-mdx-expression: 2.0.2 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 - micromark-extension-mdx-jsx@1.0.5: + micromark-extension-mdx-jsx@3.0.1: dependencies: '@types/acorn': 4.0.6 '@types/estree': 1.0.6 - estree-util-is-identifier-name: 2.1.0 - micromark-factory-mdx-expression: 1.0.9 - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - vfile-message: 3.1.4 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + micromark-factory-mdx-expression: 2.0.2 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + vfile-message: 4.0.2 - micromark-extension-mdx-md@1.0.1: + micromark-extension-mdx-md@2.0.0: dependencies: - micromark-util-types: 1.1.0 + micromark-util-types: 2.0.0 - micromark-extension-mdxjs-esm@1.0.5: + micromark-extension-mdxjs-esm@3.0.0: dependencies: '@types/estree': 1.0.6 - micromark-core-commonmark: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-events-to-acorn: 1.2.3 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - unist-util-position-from-estree: 1.1.2 - uvu: 0.5.6 - vfile-message: 3.1.4 - - micromark-extension-mdxjs@1.0.1: - dependencies: - acorn: 8.11.3 - acorn-jsx: 5.3.2(acorn@8.11.3) - micromark-extension-mdx-expression: 1.0.8 - micromark-extension-mdx-jsx: 1.0.5 - micromark-extension-mdx-md: 1.0.1 - micromark-extension-mdxjs-esm: 1.0.5 - micromark-util-combine-extensions: 1.1.0 - micromark-util-types: 1.1.0 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.2 - micromark-factory-destination@1.1.0: + micromark-extension-mdxjs@3.0.0: dependencies: - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) + micromark-extension-mdx-expression: 3.0.0 + micromark-extension-mdx-jsx: 3.0.1 + micromark-extension-mdx-md: 2.0.0 + micromark-extension-mdxjs-esm: 3.0.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-types: 2.0.0 micromark-factory-destination@2.0.0: dependencies: @@ -28207,13 +28914,6 @@ snapshots: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - micromark-factory-label@1.1.0: - dependencies: - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - micromark-factory-label@2.0.0: dependencies: devlop: 1.1.0 @@ -28221,34 +28921,23 @@ snapshots: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - micromark-factory-mdx-expression@1.0.9: + micromark-factory-mdx-expression@2.0.2: dependencies: '@types/estree': 1.0.6 - micromark-util-character: 1.2.0 - micromark-util-events-to-acorn: 1.2.3 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - unist-util-position-from-estree: 1.1.2 - uvu: 0.5.6 - vfile-message: 3.1.4 - - micromark-factory-space@1.1.0: - dependencies: - micromark-util-character: 1.2.0 - micromark-util-types: 1.1.0 + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.2 micromark-factory-space@2.0.0: dependencies: micromark-util-character: 2.1.0 micromark-util-types: 2.0.0 - micromark-factory-title@1.1.0: - dependencies: - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - micromark-factory-title@2.0.0: dependencies: micromark-factory-space: 2.0.0 @@ -28256,13 +28945,6 @@ snapshots: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - micromark-factory-whitespace@1.1.0: - dependencies: - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - micromark-factory-whitespace@2.0.0: dependencies: micromark-factory-space: 2.0.0 @@ -28270,61 +28952,30 @@ snapshots: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - micromark-util-character@1.2.0: - dependencies: - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - micromark-util-character@2.1.0: dependencies: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - micromark-util-chunked@1.1.0: - dependencies: - micromark-util-symbol: 1.1.0 - micromark-util-chunked@2.0.0: dependencies: micromark-util-symbol: 2.0.0 - micromark-util-classify-character@1.1.0: - dependencies: - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - micromark-util-classify-character@2.0.0: dependencies: micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - micromark-util-combine-extensions@1.1.0: - dependencies: - micromark-util-chunked: 1.1.0 - micromark-util-types: 1.1.0 - micromark-util-combine-extensions@2.0.0: dependencies: micromark-util-chunked: 2.0.0 - micromark-util-types: 2.0.0 - - micromark-util-decode-numeric-character-reference@1.1.0: - dependencies: - micromark-util-symbol: 1.1.0 + micromark-util-types: 2.0.0 micromark-util-decode-numeric-character-reference@2.0.1: dependencies: micromark-util-symbol: 2.0.0 - micromark-util-decode-string@1.1.0: - dependencies: - decode-named-character-reference: 1.0.2 - micromark-util-character: 1.2.0 - micromark-util-decode-numeric-character-reference: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-decode-string@2.0.0: dependencies: decode-named-character-reference: 1.0.2 @@ -28332,60 +28983,35 @@ snapshots: micromark-util-decode-numeric-character-reference: 2.0.1 micromark-util-symbol: 2.0.0 - micromark-util-encode@1.1.0: {} - micromark-util-encode@2.0.0: {} - micromark-util-events-to-acorn@1.2.3: + micromark-util-events-to-acorn@2.0.2: dependencies: '@types/acorn': 4.0.6 '@types/estree': 1.0.6 - '@types/unist': 2.0.10 - estree-util-visit: 1.2.1 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - vfile-message: 3.1.4 - - micromark-util-html-tag-name@1.2.0: {} + '@types/unist': 3.0.2 + devlop: 1.1.0 + estree-util-visit: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + vfile-message: 4.0.2 micromark-util-html-tag-name@2.0.0: {} - micromark-util-normalize-identifier@1.1.0: - dependencies: - micromark-util-symbol: 1.1.0 - micromark-util-normalize-identifier@2.0.0: dependencies: micromark-util-symbol: 2.0.0 - micromark-util-resolve-all@1.1.0: - dependencies: - micromark-util-types: 1.1.0 - micromark-util-resolve-all@2.0.0: dependencies: micromark-util-types: 2.0.0 - micromark-util-sanitize-uri@1.2.0: - dependencies: - micromark-util-character: 1.2.0 - micromark-util-encode: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-sanitize-uri@2.0.0: dependencies: micromark-util-character: 2.1.0 micromark-util-encode: 2.0.0 micromark-util-symbol: 2.0.0 - micromark-util-subtokenize@1.1.0: - dependencies: - micromark-util-chunked: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - micromark-util-subtokenize@2.0.0: dependencies: devlop: 1.1.0 @@ -28393,36 +29019,10 @@ snapshots: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - micromark-util-symbol@1.1.0: {} - micromark-util-symbol@2.0.0: {} - micromark-util-types@1.1.0: {} - micromark-util-types@2.0.0: {} - micromark@3.2.0: - dependencies: - '@types/debug': 4.1.12 - debug: 4.3.7(supports-color@8.1.1) - decode-named-character-reference: 1.0.2 - micromark-core-commonmark: 1.1.0 - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-chunked: 1.1.0 - micromark-util-combine-extensions: 1.1.0 - micromark-util-decode-numeric-character-reference: 1.1.0 - micromark-util-encode: 1.1.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-resolve-all: 1.1.0 - micromark-util-sanitize-uri: 1.2.0 - micromark-util-subtokenize: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - transitivePeerDependencies: - - supports-color - micromark@4.0.0: dependencies: '@types/debug': 4.1.12 @@ -28572,16 +29172,14 @@ snapshots: module-details-from-path@1.0.3: {} - moti@0.29.0(react-dom@18.2.0(react@18.2.0))(react-native-reanimated@3.10.1(@babel/core@7.24.0)(react-native@0.74.5(@babel/core@7.24.0)(@babel/preset-env@7.25.4(@babel/core@7.24.0))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0))(react@18.2.0): + moti@0.29.0(react-dom@19.0.0(react@18.2.0))(react-native-reanimated@3.10.1(@babel/core@7.24.0)(react-native@0.74.5(@babel/core@7.24.0)(@babel/preset-env@7.25.4(@babel/core@7.24.0))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0))(react@18.2.0): dependencies: - framer-motion: 6.5.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + framer-motion: 6.5.1(react-dom@19.0.0(react@18.2.0))(react@18.2.0) react-native-reanimated: 3.10.1(@babel/core@7.24.0)(react-native@0.74.5(@babel/core@7.24.0)(@babel/preset-env@7.25.4(@babel/core@7.24.0))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) transitivePeerDependencies: - react - react-dom - mri@1.2.0: {} - mrmime@1.0.1: {} mrmime@2.0.0: {} @@ -28609,6 +29207,8 @@ snapshots: nanoid@3.3.7: {} + nanoid@3.3.8: {} + napi-build-utils@1.0.2: {} natural-compare@1.4.0: {} @@ -28618,52 +29218,55 @@ snapshots: negotiator@0.6.3: {} + negotiator@0.6.4: {} + neo-async@2.6.2: {} nested-error-stacks@2.0.1: {} - next-contentlayer@0.3.4(contentlayer@0.3.4(esbuild@0.21.5))(esbuild@0.21.5)(next@14.2.5(@babel/core@7.24.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.42.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.72.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + next-contentlayer2@0.5.3(acorn@8.14.0)(contentlayer2@0.5.3(acorn@8.14.0)(esbuild@0.21.5))(esbuild@0.21.5)(next@14.2.12(@babel/core@7.24.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.42.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.72.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@contentlayer/core': 0.3.4(esbuild@0.21.5) - '@contentlayer/utils': 0.3.4 - contentlayer: 0.3.4(esbuild@0.21.5) - next: 14.2.5(@babel/core@7.24.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.42.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.72.0) + '@contentlayer2/core': 0.5.3(acorn@8.14.0)(esbuild@0.21.5) + '@contentlayer2/utils': 0.5.3 + contentlayer2: 0.5.3(acorn@8.14.0)(esbuild@0.21.5) + next: 14.2.12(@babel/core@7.24.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.42.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.72.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - '@effect-ts/otel-node' + - acorn - esbuild - markdown-wasm - supports-color - next-plausible@3.12.0(next@14.2.5(@babel/core@7.24.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.42.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.72.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + next-plausible@3.12.0(next@14.2.12(@babel/core@7.24.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.42.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.72.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - next: 14.2.5(@babel/core@7.24.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.42.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.72.0) + next: 14.2.12(@babel/core@7.24.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.42.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.72.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - next@14.2.5(@babel/core@7.24.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.42.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.72.0): + next@14.2.12(@babel/core@7.24.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.42.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.72.0): dependencies: - '@next/env': 14.2.5 + '@next/env': 14.2.12 '@swc/helpers': 0.5.5 busboy: 1.6.0 - caniuse-lite: 1.0.30001599 + caniuse-lite: 1.0.30001692 graceful-fs: 4.2.11 postcss: 8.4.31 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) styled-jsx: 5.1.1(@babel/core@7.24.0)(react@18.2.0) optionalDependencies: - '@next/swc-darwin-arm64': 14.2.5 - '@next/swc-darwin-x64': 14.2.5 - '@next/swc-linux-arm64-gnu': 14.2.5 - '@next/swc-linux-arm64-musl': 14.2.5 - '@next/swc-linux-x64-gnu': 14.2.5 - '@next/swc-linux-x64-musl': 14.2.5 - '@next/swc-win32-arm64-msvc': 14.2.5 - '@next/swc-win32-ia32-msvc': 14.2.5 - '@next/swc-win32-x64-msvc': 14.2.5 - '@opentelemetry/api': 1.8.0 + '@next/swc-darwin-arm64': 14.2.12 + '@next/swc-darwin-x64': 14.2.12 + '@next/swc-linux-arm64-gnu': 14.2.12 + '@next/swc-linux-arm64-musl': 14.2.12 + '@next/swc-linux-x64-gnu': 14.2.12 + '@next/swc-linux-x64-musl': 14.2.12 + '@next/swc-win32-arm64-msvc': 14.2.12 + '@next/swc-win32-ia32-msvc': 14.2.12 + '@next/swc-win32-x64-msvc': 14.2.12 + '@opentelemetry/api': 1.9.0 '@playwright/test': 1.42.1 sass: 1.72.0 transitivePeerDependencies: @@ -28675,7 +29278,7 @@ snapshots: no-case@3.0.4: dependencies: lower-case: 2.0.2 - tslib: 2.7.0 + tslib: 2.8.1 nocache@3.0.4: {} @@ -28691,8 +29294,6 @@ snapshots: dependencies: minimatch: 3.1.2 - node-domexception@1.0.0: {} - node-emoji@2.1.3: dependencies: '@sindresorhus/is': 4.6.0 @@ -28708,12 +29309,6 @@ snapshots: optionalDependencies: encoding: 0.1.13 - node-fetch@3.3.2: - dependencies: - data-uri-to-buffer: 4.0.1 - fetch-blob: 3.2.0 - formdata-polyfill: 4.0.10 - node-forge@1.3.1: {} node-gyp@10.2.0: @@ -28742,6 +29337,8 @@ snapshots: node-releases@2.0.18: {} + node-releases@2.0.19: {} + node-stream-zip@1.15.0: {} noop-logger@0.1.1: {} @@ -28753,7 +29350,7 @@ snapshots: normalize-package-data@2.5.0: dependencies: hosted-git-info: 2.8.9 - resolve: 1.22.8 + resolve: 1.22.10 semver: 5.7.2 validate-npm-package-license: 3.0.4 @@ -29015,6 +29612,10 @@ snapshots: pako@0.2.9: {} + parallax-controller@1.7.1: + dependencies: + bezier-easing: 2.1.0 + param-case@3.0.4: dependencies: dot-case: 3.0.4 @@ -29088,7 +29689,7 @@ snapshots: pascal-case@3.1.2: dependencies: no-case: 3.0.4 - tslib: 2.7.0 + tslib: 2.8.1 password-prompt@1.1.3: dependencies: @@ -29156,12 +29757,6 @@ snapshots: performance-now@2.1.0: {} - periscopic@3.1.0: - dependencies: - '@types/estree': 1.0.6 - estree-walker: 3.0.3 - is-reference: 3.0.2 - phosphor-react-native@2.0.0(react-native-svg@15.2.0(react-native@0.74.5(@babel/core@7.24.0)(@babel/preset-env@7.25.4(@babel/core@7.24.0))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0))(react-native@0.74.5(@babel/core@7.24.0)(@babel/preset-env@7.25.4(@babel/core@7.24.0))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0): dependencies: '@phosphor-icons/core': 2.0.8 @@ -29176,6 +29771,8 @@ snapshots: picocolors@1.1.0: {} + picocolors@1.1.1: {} + picomatch@2.3.1: {} picomatch@3.0.1: {} @@ -29307,9 +29904,9 @@ snapshots: postcss@8.4.31: dependencies: - nanoid: 3.3.7 - picocolors: 1.0.1 - source-map-js: 1.2.0 + nanoid: 3.3.8 + picocolors: 1.1.1 + source-map-js: 1.2.1 postcss@8.4.36: dependencies: @@ -29456,7 +30053,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 22.7.5 + '@types/node': 22.10.5 long: 5.2.3 proxy-addr@2.0.7: @@ -29646,7 +30243,7 @@ snapshots: react-devtools-core@4.28.5: dependencies: - shell-quote: 1.8.1 + shell-quote: 1.8.2 ws: 7.5.10 transitivePeerDependencies: - bufferutil @@ -29685,6 +30282,11 @@ snapshots: react: 18.2.0 scheduler: 0.23.0 + react-dom@19.0.0(react@18.2.0): + dependencies: + react: 18.2.0 + scheduler: 0.25.0 + react-element-to-jsx-string@15.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@base2/pretty-print-object': 1.0.1 @@ -29945,7 +30547,7 @@ snapshots: source-map-support: 0.5.21 stacktrace-parser: 0.1.10 whatwg-fetch: 3.6.20 - ws: 6.2.2 + ws: 6.2.3 yargs: 17.7.2 transitivePeerDependencies: - '@babel/core' @@ -30108,6 +30710,12 @@ snapshots: '@remix-run/router': 1.13.1(patch_hash=rgixflaa47ddt4t677o2d275p4) react: 18.2.0 + react-scroll-parallax@3.4.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + dependencies: + parallax-controller: 1.7.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-selecto@1.26.3: dependencies: selecto: 1.26.3 @@ -30246,7 +30854,7 @@ snapshots: ast-types: 0.15.2 esprima: 4.0.1 source-map: 0.6.1 - tslib: 2.7.0 + tslib: 2.8.1 recast@0.23.6: dependencies: @@ -30254,11 +30862,41 @@ snapshots: esprima: 4.0.1 source-map: 0.6.1 tiny-invariant: 1.3.3 - tslib: 2.7.0 + tslib: 2.8.1 rechoir@0.6.2: dependencies: - resolve: 1.22.8 + resolve: 1.22.10 + + recma-build-jsx@1.0.0: + dependencies: + '@types/estree': 1.0.6 + estree-util-build-jsx: 3.0.1 + vfile: 6.0.1 + + recma-jsx@1.0.0(acorn@8.14.0): + dependencies: + acorn-jsx: 5.3.2(acorn@8.14.0) + estree-util-to-js: 2.0.0 + recma-parse: 1.0.0 + recma-stringify: 1.0.0 + unified: 11.0.4 + transitivePeerDependencies: + - acorn + + recma-parse@1.0.0: + dependencies: + '@types/estree': 1.0.6 + esast-util-from-js: 2.0.1 + unified: 11.0.4 + vfile: 6.0.1 + + recma-stringify@1.0.0: + dependencies: + '@types/estree': 1.0.6 + estree-util-to-js: 2.0.0 + unified: 11.0.4 + vfile: 6.0.1 recyclerlistview@4.2.0(react-native@0.74.5(@babel/core@7.24.0)(@babel/preset-env@7.25.4(@babel/core@7.24.0))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0): dependencies: @@ -30337,6 +30975,15 @@ snapshots: unicode-match-property-ecmascript: 2.0.0 unicode-match-property-value-ecmascript: 2.1.0 + regexpu-core@6.2.0: + dependencies: + regenerate: 1.4.2 + regenerate-unicode-properties: 10.2.0 + regjsgen: 0.8.0 + regjsparser: 0.12.0 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.2.0 + registry-js@1.16.0: dependencies: node-addon-api: 3.2.1 @@ -30348,29 +30995,22 @@ snapshots: dependencies: jsesc: 3.0.2 - regjsparser@0.9.1: + regjsparser@0.12.0: dependencies: - jsesc: 0.5.0 + jsesc: 3.0.2 - rehype-autolink-headings@6.1.1: + regjsparser@0.9.1: dependencies: - '@types/hast': 2.3.10 - extend: 3.0.2 - hast-util-has-property: 2.0.1 - hast-util-heading-rank: 2.1.1 - hast-util-is-element: 2.1.3 - unified: 10.1.2 - unist-util-visit: 4.1.2 + jsesc: 0.5.0 - rehype-external-links@2.1.0: + rehype-autolink-headings@7.1.0: dependencies: - '@types/hast': 2.3.10 - extend: 3.0.2 - hast-util-is-element: 2.1.3 - is-absolute-url: 4.0.1 - space-separated-tokens: 2.0.2 - unified: 10.1.2 - unist-util-visit: 4.1.2 + '@types/hast': 3.0.4 + '@ungap/structured-clone': 1.2.0 + hast-util-heading-rank: 3.0.0 + hast-util-is-element: 3.0.0 + unified: 11.0.4 + unist-util-visit: 5.0.0 rehype-external-links@3.0.0: dependencies: @@ -30381,30 +31021,38 @@ snapshots: space-separated-tokens: 2.0.2 unist-util-visit: 5.0.0 - rehype-katex@6.0.3: + rehype-katex@7.0.1: dependencies: - '@types/hast': 2.3.10 - '@types/katex': 0.14.0 - hast-util-from-html-isomorphic: 1.0.0 - hast-util-to-text: 3.1.2 + '@types/hast': 3.0.4 + '@types/katex': 0.16.7 + hast-util-from-html-isomorphic: 2.0.0 + hast-util-to-text: 4.0.2 katex: 0.16.9 - unist-util-visit: 4.1.2 + unist-util-visit-parents: 6.0.1 + vfile: 6.0.1 - rehype-parse@8.0.5: + rehype-parse@9.0.1: dependencies: - '@types/hast': 2.3.10 - hast-util-from-parse5: 7.1.2 - parse5: 6.0.1 - unified: 10.1.2 + '@types/hast': 3.0.4 + hast-util-from-html: 2.0.3 + unified: 11.0.4 - rehype-prism-plus@1.6.3: + rehype-prism-plus@2.0.0: dependencies: - hast-util-to-string: 2.0.0 + hast-util-to-string: 3.0.0 parse-numeric-range: 1.3.0 refractor: 4.8.1 - rehype-parse: 8.0.5 - unist-util-filter: 4.0.1 - unist-util-visit: 4.1.2 + rehype-parse: 9.0.1 + unist-util-filter: 5.0.1 + unist-util-visit: 5.0.0 + + rehype-recma@1.0.0: + dependencies: + '@types/estree': 1.0.6 + '@types/hast': 3.0.4 + hast-util-to-estree: 3.1.1 + transitivePeerDependencies: + - supports-color rehype-slug@5.1.0: dependencies: @@ -30424,62 +31072,62 @@ snapshots: hast-util-to-string: 3.0.0 unist-util-visit: 5.0.0 - rehype-stringify@9.0.4: + rehype-stringify@10.0.1: dependencies: - '@types/hast': 2.3.10 - hast-util-to-html: 8.0.4 - unified: 10.1.2 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.4 + unified: 11.0.4 relateurl@0.2.7: {} - remark-frontmatter@4.0.1: + remark-frontmatter@5.0.0: dependencies: - '@types/mdast': 3.0.15 - mdast-util-frontmatter: 1.0.1 - micromark-extension-frontmatter: 1.1.1 - unified: 10.1.2 + '@types/mdast': 4.0.3 + mdast-util-frontmatter: 2.0.1 + micromark-extension-frontmatter: 2.0.0 + unified: 11.0.4 + transitivePeerDependencies: + - supports-color - remark-gfm@3.0.1: + remark-gfm@4.0.0: dependencies: - '@types/mdast': 3.0.15 - mdast-util-gfm: 2.0.2 - micromark-extension-gfm: 2.0.3 - unified: 10.1.2 + '@types/mdast': 4.0.3 + mdast-util-gfm: 3.0.0 + micromark-extension-gfm: 3.0.0 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.4 transitivePeerDependencies: - supports-color - remark-math@5.1.1: + remark-math@6.0.0: dependencies: - '@types/mdast': 3.0.15 - mdast-util-math: 2.0.2 - micromark-extension-math: 2.1.2 - unified: 10.1.2 + '@types/mdast': 4.0.3 + mdast-util-math: 3.0.0 + micromark-extension-math: 3.1.0 + unified: 11.0.4 + transitivePeerDependencies: + - supports-color - remark-mdx-frontmatter@1.1.1: + remark-mdx-frontmatter@4.0.0: dependencies: - estree-util-is-identifier-name: 1.1.0 - estree-util-value-to-estree: 1.3.0 - js-yaml: 4.1.0 + '@types/mdast': 4.0.3 + estree-util-is-identifier-name: 3.0.0 + estree-util-value-to-estree: 3.2.1 toml: 3.0.0 + unified: 11.0.4 + yaml: 2.7.0 - remark-mdx-images@2.0.0: - dependencies: - '@types/mdast': 3.0.15 - unified: 10.1.2 - unist-util-visit: 4.1.2 - - remark-mdx@2.3.0: + remark-mdx-images@3.0.0: dependencies: - mdast-util-mdx: 2.0.1 - micromark-extension-mdxjs: 1.0.1 - transitivePeerDependencies: - - supports-color + '@types/mdast': 4.0.3 + unified: 11.0.4 + unist-util-visit: 5.0.0 - remark-parse@10.0.2: + remark-mdx@3.1.0: dependencies: - '@types/mdast': 3.0.15 - mdast-util-from-markdown: 1.3.1 - unified: 10.1.2 + mdast-util-mdx: 3.0.0 + micromark-extension-mdxjs: 3.0.0 transitivePeerDependencies: - supports-color @@ -30492,13 +31140,6 @@ snapshots: transitivePeerDependencies: - supports-color - remark-rehype@10.1.0: - dependencies: - '@types/hast': 2.3.10 - '@types/mdast': 3.0.15 - mdast-util-to-hast: 12.3.0 - unified: 10.1.2 - remark-rehype@11.1.0: dependencies: '@types/hast': 3.0.4 @@ -30507,6 +31148,21 @@ snapshots: unified: 11.0.4 vfile: 6.0.1 + remark-stringify@11.0.0: + dependencies: + '@types/mdast': 4.0.3 + mdast-util-to-markdown: 2.1.0 + unified: 11.0.4 + + remark@15.0.1: + dependencies: + '@types/mdast': 4.0.3 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.4 + transitivePeerDependencies: + - supports-color + remix-params-helper@0.4.10(zod@3.23.8): dependencies: zod: 3.23.8 @@ -30533,9 +31189,9 @@ snapshots: require-in-the-middle@7.4.0: dependencies: - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0 module-details-from-path: 1.0.3 - resolve: 1.22.8 + resolve: 1.22.10 transitivePeerDependencies: - supports-color @@ -30565,6 +31221,12 @@ snapshots: resolve@1.1.7: {} + resolve@1.22.10: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + resolve@1.22.8: dependencies: is-core-module: 2.15.1 @@ -30687,10 +31349,6 @@ snapshots: dependencies: tslib: 2.7.0 - sade@1.8.1: - dependencies: - mri: 1.2.0 - safe-array-concat@1.1.2: dependencies: call-bind: 1.0.7 @@ -30737,12 +31395,21 @@ snapshots: dependencies: loose-envify: 1.4.0 + scheduler@0.25.0: {} + schema-utils@3.3.0: dependencies: '@types/json-schema': 7.0.15 ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) + schema-utils@4.3.0: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 8.17.1 + ajv-formats: 2.1.1(ajv@8.17.1) + ajv-keywords: 5.1.0(ajv@8.17.1) + search-insights@2.13.0: {} section-matter@1.0.0: @@ -30917,6 +31584,8 @@ snapshots: shell-quote@1.8.1: {} + shell-quote@1.8.2: {} + shelljs@0.8.5: dependencies: glob: 7.2.3 @@ -31304,10 +31973,6 @@ snapshots: dependencies: inline-style-parser: 0.1.1 - style-to-object@0.4.4: - dependencies: - inline-style-parser: 0.1.1 - style-to-object@1.0.5: dependencies: inline-style-parser: 0.2.2 @@ -31551,22 +32216,22 @@ snapshots: ansi-escapes: 4.3.2 supports-hyperlinks: 2.3.0 - terser-webpack-plugin@5.3.10(esbuild@0.20.2)(webpack@5.90.3(esbuild@0.20.2)): + terser-webpack-plugin@5.3.11(esbuild@0.20.2)(webpack@5.90.3(esbuild@0.20.2)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 - schema-utils: 3.3.0 + schema-utils: 4.3.0 serialize-javascript: 6.0.2 terser: 5.34.1 webpack: 5.90.3(esbuild@0.20.2) optionalDependencies: esbuild: 0.20.2 - terser-webpack-plugin@5.3.10(webpack@5.90.3): + terser-webpack-plugin@5.3.11(webpack@5.90.3): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 - schema-utils: 3.3.0 + schema-utils: 4.3.0 serialize-javascript: 6.0.2 terser: 5.34.1 webpack: 5.90.3 @@ -31600,6 +32265,10 @@ snapshots: dependencies: any-promise: 1.3.0 + thingies@1.21.0(tslib@2.8.1): + dependencies: + tslib: 2.8.1 + three-mesh-bvh@0.7.3(three@0.161.0): dependencies: three: 0.161.0 @@ -31689,6 +32358,10 @@ snapshots: traverse@0.6.8: {} + tree-dump@1.0.2(tslib@2.8.1): + dependencies: + tslib: 2.8.1 + trim-lines@3.0.1: {} trim-right@1.0.1: {} @@ -31725,7 +32398,7 @@ snapshots: ts-object-utils@0.0.5: {} - ts-pattern@4.3.0: {} + ts-pattern@5.6.0: {} ts-poet@4.15.0: dependencies: @@ -31757,6 +32430,8 @@ snapshots: tslib@2.7.0: {} + tslib@2.8.1: {} + tsparticles@3.3.0: dependencies: '@tsparticles/engine': 3.3.0 @@ -31860,8 +32535,6 @@ snapshots: type-fest@2.19.0: {} - type-fest@3.13.1: {} - type-fest@4.13.0: {} type-fest@4.26.1: {} @@ -31933,6 +32606,8 @@ snapshots: undici-types@6.19.8: {} + undici-types@6.20.0: {} + undici@5.28.3: dependencies: '@fastify/busboy': 2.1.1 @@ -31950,6 +32625,8 @@ snapshots: unicode-match-property-value-ecmascript@2.1.0: {} + unicode-match-property-value-ecmascript@2.2.0: {} + unicode-property-aliases-ecmascript@2.1.0: {} unified@10.1.2: @@ -31988,18 +32665,16 @@ snapshots: dependencies: crypto-random-string: 2.0.0 - unist-util-filter@4.0.1: + unist-util-filter@5.0.1: dependencies: - '@types/unist': 2.0.10 - unist-util-is: 5.2.1 - unist-util-visit-parents: 5.1.3 + '@types/unist': 3.0.2 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 - unist-util-find-after@4.0.1: + unist-util-find-after@5.0.0: dependencies: - '@types/unist': 2.0.10 - unist-util-is: 5.2.1 - - unist-util-generated@2.0.1: {} + '@types/unist': 3.0.2 + unist-util-is: 6.0.0 unist-util-is@5.2.1: dependencies: @@ -32009,23 +32684,14 @@ snapshots: dependencies: '@types/unist': 3.0.2 - unist-util-position-from-estree@1.1.2: + unist-util-position-from-estree@2.0.0: dependencies: - '@types/unist': 2.0.10 - - unist-util-position@4.0.4: - dependencies: - '@types/unist': 2.0.10 + '@types/unist': 3.0.2 unist-util-position@5.0.0: dependencies: '@types/unist': 3.0.2 - unist-util-remove-position@4.0.2: - dependencies: - '@types/unist': 2.0.10 - unist-util-visit: 4.1.2 - unist-util-remove-position@5.0.0: dependencies: '@types/unist': 3.0.2 @@ -32104,7 +32770,13 @@ snapshots: dependencies: browserslist: 4.24.0 escalade: 3.2.0 - picocolors: 1.1.0 + picocolors: 1.1.1 + + update-browserslist-db@1.1.2(browserslist@4.24.4): + dependencies: + browserslist: 4.24.4 + escalade: 3.2.0 + picocolors: 1.1.1 update-input-width@1.4.2: {} @@ -32218,13 +32890,6 @@ snapshots: uuid@9.0.1: {} - uvu@0.5.6: - dependencies: - dequal: 2.0.3 - diff: 5.2.0 - kleur: 4.1.5 - sade: 1.8.1 - valid-url@1.0.9: {} validate-html-nesting@1.2.2: {} @@ -32260,10 +32925,10 @@ snapshots: core-util-is: 1.0.2 extsprintf: 1.3.0 - vfile-location@4.1.0: + vfile-location@5.0.3: dependencies: - '@types/unist': 2.0.10 - vfile: 5.3.7 + '@types/unist': 3.0.2 + vfile: 6.0.1 vfile-message@3.1.4: dependencies: @@ -32288,7 +32953,7 @@ snapshots: unist-util-stringify-position: 4.0.0 vfile-message: 4.0.2 - vite-plugin-html@3.2.2(vite@5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1)): + vite-plugin-html@3.2.2(vite@5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1)): dependencies: '@rollup/pluginutils': 4.2.1 colorette: 2.0.20 @@ -32302,9 +32967,9 @@ snapshots: html-minifier-terser: 6.1.0 node-html-parser: 5.4.2 pathe: 0.2.0 - vite: 5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1) + vite: 5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1) - vite-plugin-i18next-loader@2.0.14(vite@5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1)): + vite-plugin-i18next-loader@2.0.14(vite@5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1)): dependencies: dot-prop: 9.0.0 glob-all: 3.3.1 @@ -32312,9 +32977,9 @@ snapshots: marked: 13.0.3 marked-terminal: 7.1.0(marked@13.0.3) ts-deepmerge: 7.0.0 - vite: 5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1) + vite: 5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1) - vite-plugin-inspect@0.8.7(rollup@4.24.0)(vite@5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1)): + vite-plugin-inspect@0.8.7(rollup@4.24.0)(vite@5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1)): dependencies: '@antfu/utils': 0.7.10 '@rollup/pluginutils': 5.1.0(rollup@4.24.0) @@ -32325,12 +32990,12 @@ snapshots: perfect-debounce: 1.0.0 picocolors: 1.1.0 sirv: 2.0.4 - vite: 5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1) + vite: 5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1) transitivePeerDependencies: - rollup - supports-color - vite-plugin-solid@2.10.2(@testing-library/jest-dom@6.4.2)(solid-js@1.8.15)(vite@5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1)): + vite-plugin-solid@2.10.2(@testing-library/jest-dom@6.4.2)(solid-js@1.8.15)(vite@5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1)): dependencies: '@babel/core': 7.24.0 '@types/babel__core': 7.20.5 @@ -32338,8 +33003,8 @@ snapshots: merge-anything: 5.1.7 solid-js: 1.8.15 solid-refresh: 0.6.3(solid-js@1.8.15) - vite: 5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1) - vitefu: 0.2.5(vite@5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1)) + vite: 5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1) + vitefu: 0.2.5(vite@5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1)) optionalDependencies: '@testing-library/jest-dom': 6.4.2 transitivePeerDependencies: @@ -32359,24 +33024,24 @@ snapshots: - supports-color - typescript - vite-plugin-svgr@3.3.0(rollup@4.24.0)(typescript@5.6.3)(vite@5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1)): + vite-plugin-svgr@3.3.0(rollup@4.24.0)(typescript@5.6.3)(vite@5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1)): dependencies: '@rollup/pluginutils': 5.1.0(rollup@4.24.0) '@svgr/core': 8.1.0(typescript@5.6.3) '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.6.3)) - vite: 5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1) + vite: 5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1) transitivePeerDependencies: - rollup - supports-color - typescript - vite-tsconfig-paths@5.0.1(typescript@5.6.2)(vite@5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1)): + vite-tsconfig-paths@5.0.1(typescript@5.6.2)(vite@5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1)): dependencies: debug: 4.3.7(supports-color@8.1.1) globrex: 0.1.2 tsconfck: 3.0.3(typescript@5.6.2) optionalDependencies: - vite: 5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1) + vite: 5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1) transitivePeerDependencies: - supports-color - typescript @@ -32392,20 +33057,20 @@ snapshots: sass: 1.72.0 terser: 5.34.1 - vite@5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1): + vite@5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1): dependencies: esbuild: 0.21.5 postcss: 8.4.47 rollup: 4.24.0 optionalDependencies: - '@types/node': 22.7.5 + '@types/node': 22.10.5 fsevents: 2.3.3 sass: 1.72.0 terser: 5.34.1 - vitefu@0.2.5(vite@5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1)): + vitefu@0.2.5(vite@5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1)): optionalDependencies: - vite: 5.4.9(@types/node@22.7.5)(sass@1.72.0)(terser@5.34.1) + vite: 5.4.9(@types/node@22.10.5)(sass@1.72.0)(terser@5.34.1) vlq@1.0.1: {} @@ -32439,11 +33104,6 @@ snapshots: dependencies: loose-envify: 1.4.0 - watchpack@2.4.1: - dependencies: - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - watchpack@2.4.2: dependencies: glob-to-regexp: 0.4.1 @@ -32455,8 +33115,6 @@ snapshots: web-namespaces@2.0.1: {} - web-streams-polyfill@3.3.3: {} - webgl-constants@1.1.1: {} webgl-sdf-generator@1.1.1: {} @@ -32492,15 +33150,15 @@ snapshots: dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.6 - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/wasm-edit': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 - acorn: 8.12.1 - acorn-import-assertions: 1.9.0(acorn@8.12.1) - browserslist: 4.24.0 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/wasm-edit': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + acorn: 8.14.0 + acorn-import-assertions: 1.9.0(acorn@8.14.0) + browserslist: 4.24.4 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.17.1 - es-module-lexer: 1.5.4 + enhanced-resolve: 5.18.0 + es-module-lexer: 1.6.0 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 @@ -32511,7 +33169,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(webpack@5.90.3) + terser-webpack-plugin: 5.3.11(webpack@5.90.3) watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -32524,15 +33182,15 @@ snapshots: dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.6 - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/wasm-edit': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 - acorn: 8.12.1 - acorn-import-assertions: 1.9.0(acorn@8.12.1) - browserslist: 4.24.0 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/wasm-edit': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + acorn: 8.14.0 + acorn-import-assertions: 1.9.0(acorn@8.14.0) + browserslist: 4.24.4 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.17.1 - es-module-lexer: 1.5.4 + enhanced-resolve: 5.18.0 + es-module-lexer: 1.6.0 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 @@ -32543,7 +33201,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(esbuild@0.20.2)(webpack@5.90.3(esbuild@0.20.2)) + terser-webpack-plugin: 5.3.11(esbuild@0.20.2)(webpack@5.90.3(esbuild@0.20.2)) watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -32671,6 +33329,10 @@ snapshots: dependencies: async-limiter: 1.0.1 + ws@6.2.3: + dependencies: + async-limiter: 1.0.1 + ws@7.5.10: {} ws@7.5.9: {} @@ -32745,7 +33407,7 @@ snapshots: yaml@2.4.1: {} - yaml@2.6.0: {} + yaml@2.7.0: {} yargs-parser@18.1.3: dependencies: