From 072b6b13f1dd093983195a1902b60bd2cd2980ad Mon Sep 17 00:00:00 2001 From: Marc Mintel Date: Sun, 22 Feb 2026 20:50:51 +0100 Subject: [PATCH] feat(cms): migrate from Directus to Payload v3 and remove contentlayer --- .gitea/workflows/deploy.yml | 36 +- .../(payload)/admin/[[...segments]]/page.tsx | 25 + apps/web/app/(payload)/admin/importMap.js | 75 + apps/web/app/(payload)/api/[...slug]/route.ts | 16 + apps/web/app/(payload)/layout.tsx | 20 + apps/web/app/blog/[slug]/opengraph-image.tsx | 11 +- apps/web/app/blog/[slug]/page.tsx | 5 +- apps/web/app/blog/page.tsx | 219 +- apps/web/app/sitemap.ts | 89 +- apps/web/app/tags/[tag]/page.tsx | 4 +- apps/web/contentlayer.config.ts | 29 - apps/web/next.config.mjs | 5 +- apps/web/package.json | 18 +- apps/web/payload-types.ts | 436 ++ apps/web/payload.config.ts | 36 + apps/web/scripts/migrate-posts.ts | 72 + apps/web/scripts/setup-directus.ts | 72 - apps/web/src/components/MDXContent.tsx | 18 +- apps/web/src/components/blog/BlogClient.tsx | 210 + apps/web/src/lib/posts.ts | 30 + apps/web/src/payload/collections/Media.ts | 47 + apps/web/src/payload/collections/Posts.ts | 74 + apps/web/src/payload/collections/Users.ts | 13 + apps/web/src/utils/imgproxy.ts | 34 +- apps/web/tsconfig.json | 14 +- docker-compose.dev.yml | 41 +- docker-compose.yml | 55 +- package.json | 5 +- pnpm-lock.yaml | 4536 +++++++++++------ scripts/sync-directus.sh | 116 - 30 files changed, 4299 insertions(+), 2062 deletions(-) create mode 100644 apps/web/app/(payload)/admin/[[...segments]]/page.tsx create mode 100644 apps/web/app/(payload)/admin/importMap.js create mode 100644 apps/web/app/(payload)/api/[...slug]/route.ts create mode 100644 apps/web/app/(payload)/layout.tsx delete mode 100644 apps/web/contentlayer.config.ts create mode 100644 apps/web/payload-types.ts create mode 100644 apps/web/payload.config.ts create mode 100644 apps/web/scripts/migrate-posts.ts delete mode 100644 apps/web/scripts/setup-directus.ts create mode 100644 apps/web/src/components/blog/BlogClient.tsx create mode 100644 apps/web/src/lib/posts.ts create mode 100644 apps/web/src/payload/collections/Media.ts create mode 100644 apps/web/src/payload/collections/Posts.ts create mode 100644 apps/web/src/payload/collections/Users.ts delete mode 100755 scripts/sync-directus.sh diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 29339ed..8f5fabf 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -210,15 +210,12 @@ jobs: DIRECTUS_URL: ${{ needs.prepare.outputs.directus_url }} DIRECTUS_HOST: cms.${{ needs.prepare.outputs.traefik_host }} - # Secrets mapping (Directus) - DIRECTUS_KEY: ${{ (needs.prepare.outputs.target == 'testing' && secrets.TESTING_DIRECTUS_KEY) || (needs.prepare.outputs.target == 'staging' && secrets.STAGING_DIRECTUS_KEY) || secrets.DIRECTUS_KEY || vars.DIRECTUS_KEY }} - DIRECTUS_SECRET: ${{ (needs.prepare.outputs.target == 'testing' && secrets.TESTING_DIRECTUS_SECRET) || (needs.prepare.outputs.target == 'staging' && secrets.STAGING_DIRECTUS_SECRET) || secrets.DIRECTUS_SECRET || vars.DIRECTUS_SECRET }} - DIRECTUS_ADMIN_EMAIL: ${{ (needs.prepare.outputs.target == 'testing' && secrets.TESTING_DIRECTUS_ADMIN_EMAIL) || (needs.prepare.outputs.target == 'staging' && secrets.STAGING_DIRECTUS_ADMIN_EMAIL) || secrets.DIRECTUS_ADMIN_EMAIL || vars.DIRECTUS_ADMIN_EMAIL || 'admin@mintel.me' }} - DIRECTUS_ADMIN_PASSWORD: ${{ (needs.prepare.outputs.target == 'testing' && secrets.TESTING_DIRECTUS_ADMIN_PASSWORD) || (needs.prepare.outputs.target == 'staging' && secrets.STAGING_DIRECTUS_ADMIN_PASSWORD) || secrets.DIRECTUS_ADMIN_PASSWORD || vars.DIRECTUS_ADMIN_PASSWORD }} - DIRECTUS_DB_NAME: ${{ secrets.DIRECTUS_DB_NAME || vars.DIRECTUS_DB_NAME || 'directus' }} - DIRECTUS_DB_USER: ${{ secrets.DIRECTUS_DB_USER || vars.DIRECTUS_DB_USER || 'directus' }} - DIRECTUS_DB_PASSWORD: ${{ (needs.prepare.outputs.target == 'testing' && secrets.TESTING_DIRECTUS_DB_PASSWORD) || (needs.prepare.outputs.target == 'staging' && secrets.STAGING_DIRECTUS_DB_PASSWORD) || secrets.DIRECTUS_DB_PASSWORD || vars.DIRECTUS_DB_PASSWORD || 'directus' }} - DIRECTUS_API_TOKEN: ${{ (needs.prepare.outputs.target == 'testing' && secrets.TESTING_DIRECTUS_API_TOKEN) || (needs.prepare.outputs.target == 'staging' && secrets.STAGING_DIRECTUS_API_TOKEN) || secrets.DIRECTUS_API_TOKEN || vars.DIRECTUS_API_TOKEN }} + # Database configuration + postgres_DB_NAME: ${{ secrets.DIRECTUS_DB_NAME || vars.DIRECTUS_DB_NAME || 'directus' }} + postgres_DB_USER: ${{ secrets.DIRECTUS_DB_USER || vars.DIRECTUS_DB_USER || 'directus' }} + postgres_DB_PASSWORD: ${{ (needs.prepare.outputs.target == 'testing' && secrets.TESTING_DIRECTUS_DB_PASSWORD) || (needs.prepare.outputs.target == 'staging' && secrets.STAGING_DIRECTUS_DB_PASSWORD) || secrets.DIRECTUS_DB_PASSWORD || vars.DIRECTUS_DB_PASSWORD || 'directus' }} + DATABASE_URI: postgres://${{ env.postgres_DB_USER }}:${{ env.postgres_DB_PASSWORD }}@postgres-db:5432/${{ env.postgres_DB_NAME }} + PAYLOAD_SECRET: ${{ secrets.PAYLOAD_SECRET || vars.PAYLOAD_SECRET || 'secret' }} # Secrets mapping (Mail) MAIL_HOST: ${{ secrets.SMTP_HOST || vars.SMTP_HOST }} @@ -275,18 +272,12 @@ jobs: PROJECT_COLOR=$PROJECT_COLOR LOG_LEVEL=$LOG_LEVEL - # Directus - DIRECTUS_URL=$DIRECTUS_URL - DIRECTUS_HOST=$DIRECTUS_HOST - DIRECTUS_KEY=$DIRECTUS_KEY - DIRECTUS_SECRET=$DIRECTUS_SECRET - DIRECTUS_ADMIN_EMAIL=$DIRECTUS_ADMIN_EMAIL - DIRECTUS_ADMIN_PASSWORD=$DIRECTUS_ADMIN_PASSWORD - DIRECTUS_DB_NAME=$DIRECTUS_DB_NAME - DIRECTUS_DB_USER=$DIRECTUS_DB_USER - DIRECTUS_DB_PASSWORD=$DIRECTUS_DB_PASSWORD - DIRECTUS_API_TOKEN=$DIRECTUS_API_TOKEN - INTERNAL_DIRECTUS_URL=http://directus:8055 + # Payload DB + postgres_DB_NAME=$postgres_DB_NAME + postgres_DB_USER=$postgres_DB_USER + postgres_DB_PASSWORD=$postgres_DB_PASSWORD + DATABASE_URI=$DATABASE_URI + PAYLOAD_SECRET=$PAYLOAD_SECRET # Mail MAIL_HOST=$MAIL_HOST @@ -337,8 +328,7 @@ jobs: ssh root@alpha.mintel.me "cd $SITE_DIR && docker compose -p '${{ needs.prepare.outputs.project_name }}' --env-file '$ENV_FILE' pull" ssh root@alpha.mintel.me "cd $SITE_DIR && docker compose -p '${{ needs.prepare.outputs.project_name }}' --env-file '$ENV_FILE' up -d --remove-orphans" - # Apply Directus Schema Snapshot if available - ssh root@alpha.mintel.me "cd $SITE_DIR && if docker compose -p '${{ needs.prepare.outputs.project_name }}' --env-file '$ENV_FILE' exec -T directus ls /directus/schema/snapshot.yaml >/dev/null 2>&1; then echo '→ Applying Directus Schema Snapshot...' && docker compose -p '${{ needs.prepare.outputs.project_name }}' --env-file '$ENV_FILE' exec -T directus npx directus schema apply /directus/schema/snapshot.yaml --yes; fi" + ssh root@alpha.mintel.me "docker system prune -f --filter 'until=24h'" diff --git a/apps/web/app/(payload)/admin/[[...segments]]/page.tsx b/apps/web/app/(payload)/admin/[[...segments]]/page.tsx new file mode 100644 index 0000000..0a74400 --- /dev/null +++ b/apps/web/app/(payload)/admin/[[...segments]]/page.tsx @@ -0,0 +1,25 @@ +import type { Metadata } from "next"; + +import configPromise from "@payload-config"; +import { RootPage, generatePageMetadata } from "@payloadcms/next/views"; +import { importMap } from "../importMap"; + +type Args = { + params: Promise<{ + segments: string[]; + }>; + searchParams: Promise<{ + [key: string]: string | string[]; + }>; +}; + +export const generateMetadata = async ({ + params, + searchParams, +}: Args): Promise => + generatePageMetadata({ config: configPromise, params, searchParams }); + +const Page = async ({ params, searchParams }: Args) => + RootPage({ config: configPromise, importMap, params, searchParams }); + +export default Page; diff --git a/apps/web/app/(payload)/admin/importMap.js b/apps/web/app/(payload)/admin/importMap.js new file mode 100644 index 0000000..fe3840c --- /dev/null +++ b/apps/web/app/(payload)/admin/importMap.js @@ -0,0 +1,75 @@ +import { RscEntryLexicalCell as RscEntryLexicalCell_44fe37237e0ebf4470c9990d8cb7b07e } from "@payloadcms/richtext-lexical/rsc"; +import { RscEntryLexicalField as RscEntryLexicalField_44fe37237e0ebf4470c9990d8cb7b07e } from "@payloadcms/richtext-lexical/rsc"; +import { LexicalDiffComponent as LexicalDiffComponent_44fe37237e0ebf4470c9990d8cb7b07e } from "@payloadcms/richtext-lexical/rsc"; +import { InlineToolbarFeatureClient as InlineToolbarFeatureClient_e70f5e05f09f93e00b997edb1ef0c864 } from "@payloadcms/richtext-lexical/client"; +import { HorizontalRuleFeatureClient as HorizontalRuleFeatureClient_e70f5e05f09f93e00b997edb1ef0c864 } from "@payloadcms/richtext-lexical/client"; +import { UploadFeatureClient as UploadFeatureClient_e70f5e05f09f93e00b997edb1ef0c864 } from "@payloadcms/richtext-lexical/client"; +import { BlockquoteFeatureClient as BlockquoteFeatureClient_e70f5e05f09f93e00b997edb1ef0c864 } from "@payloadcms/richtext-lexical/client"; +import { RelationshipFeatureClient as RelationshipFeatureClient_e70f5e05f09f93e00b997edb1ef0c864 } from "@payloadcms/richtext-lexical/client"; +import { LinkFeatureClient as LinkFeatureClient_e70f5e05f09f93e00b997edb1ef0c864 } from "@payloadcms/richtext-lexical/client"; +import { ChecklistFeatureClient as ChecklistFeatureClient_e70f5e05f09f93e00b997edb1ef0c864 } from "@payloadcms/richtext-lexical/client"; +import { OrderedListFeatureClient as OrderedListFeatureClient_e70f5e05f09f93e00b997edb1ef0c864 } from "@payloadcms/richtext-lexical/client"; +import { UnorderedListFeatureClient as UnorderedListFeatureClient_e70f5e05f09f93e00b997edb1ef0c864 } from "@payloadcms/richtext-lexical/client"; +import { IndentFeatureClient as IndentFeatureClient_e70f5e05f09f93e00b997edb1ef0c864 } from "@payloadcms/richtext-lexical/client"; +import { AlignFeatureClient as AlignFeatureClient_e70f5e05f09f93e00b997edb1ef0c864 } from "@payloadcms/richtext-lexical/client"; +import { HeadingFeatureClient as HeadingFeatureClient_e70f5e05f09f93e00b997edb1ef0c864 } from "@payloadcms/richtext-lexical/client"; +import { ParagraphFeatureClient as ParagraphFeatureClient_e70f5e05f09f93e00b997edb1ef0c864 } from "@payloadcms/richtext-lexical/client"; +import { InlineCodeFeatureClient as InlineCodeFeatureClient_e70f5e05f09f93e00b997edb1ef0c864 } from "@payloadcms/richtext-lexical/client"; +import { SuperscriptFeatureClient as SuperscriptFeatureClient_e70f5e05f09f93e00b997edb1ef0c864 } from "@payloadcms/richtext-lexical/client"; +import { SubscriptFeatureClient as SubscriptFeatureClient_e70f5e05f09f93e00b997edb1ef0c864 } from "@payloadcms/richtext-lexical/client"; +import { StrikethroughFeatureClient as StrikethroughFeatureClient_e70f5e05f09f93e00b997edb1ef0c864 } from "@payloadcms/richtext-lexical/client"; +import { UnderlineFeatureClient as UnderlineFeatureClient_e70f5e05f09f93e00b997edb1ef0c864 } from "@payloadcms/richtext-lexical/client"; +import { BoldFeatureClient as BoldFeatureClient_e70f5e05f09f93e00b997edb1ef0c864 } from "@payloadcms/richtext-lexical/client"; +import { ItalicFeatureClient as ItalicFeatureClient_e70f5e05f09f93e00b997edb1ef0c864 } from "@payloadcms/richtext-lexical/client"; +import { CollectionCards as CollectionCards_f9c02e79a4aed9a3924487c0cd4cafb1 } from "@payloadcms/next/rsc"; + +export const importMap = { + "@payloadcms/richtext-lexical/rsc#RscEntryLexicalCell": + RscEntryLexicalCell_44fe37237e0ebf4470c9990d8cb7b07e, + "@payloadcms/richtext-lexical/rsc#RscEntryLexicalField": + RscEntryLexicalField_44fe37237e0ebf4470c9990d8cb7b07e, + "@payloadcms/richtext-lexical/rsc#LexicalDiffComponent": + LexicalDiffComponent_44fe37237e0ebf4470c9990d8cb7b07e, + "@payloadcms/richtext-lexical/client#InlineToolbarFeatureClient": + InlineToolbarFeatureClient_e70f5e05f09f93e00b997edb1ef0c864, + "@payloadcms/richtext-lexical/client#HorizontalRuleFeatureClient": + HorizontalRuleFeatureClient_e70f5e05f09f93e00b997edb1ef0c864, + "@payloadcms/richtext-lexical/client#UploadFeatureClient": + UploadFeatureClient_e70f5e05f09f93e00b997edb1ef0c864, + "@payloadcms/richtext-lexical/client#BlockquoteFeatureClient": + BlockquoteFeatureClient_e70f5e05f09f93e00b997edb1ef0c864, + "@payloadcms/richtext-lexical/client#RelationshipFeatureClient": + RelationshipFeatureClient_e70f5e05f09f93e00b997edb1ef0c864, + "@payloadcms/richtext-lexical/client#LinkFeatureClient": + LinkFeatureClient_e70f5e05f09f93e00b997edb1ef0c864, + "@payloadcms/richtext-lexical/client#ChecklistFeatureClient": + ChecklistFeatureClient_e70f5e05f09f93e00b997edb1ef0c864, + "@payloadcms/richtext-lexical/client#OrderedListFeatureClient": + OrderedListFeatureClient_e70f5e05f09f93e00b997edb1ef0c864, + "@payloadcms/richtext-lexical/client#UnorderedListFeatureClient": + UnorderedListFeatureClient_e70f5e05f09f93e00b997edb1ef0c864, + "@payloadcms/richtext-lexical/client#IndentFeatureClient": + IndentFeatureClient_e70f5e05f09f93e00b997edb1ef0c864, + "@payloadcms/richtext-lexical/client#AlignFeatureClient": + AlignFeatureClient_e70f5e05f09f93e00b997edb1ef0c864, + "@payloadcms/richtext-lexical/client#HeadingFeatureClient": + HeadingFeatureClient_e70f5e05f09f93e00b997edb1ef0c864, + "@payloadcms/richtext-lexical/client#ParagraphFeatureClient": + ParagraphFeatureClient_e70f5e05f09f93e00b997edb1ef0c864, + "@payloadcms/richtext-lexical/client#InlineCodeFeatureClient": + InlineCodeFeatureClient_e70f5e05f09f93e00b997edb1ef0c864, + "@payloadcms/richtext-lexical/client#SuperscriptFeatureClient": + SuperscriptFeatureClient_e70f5e05f09f93e00b997edb1ef0c864, + "@payloadcms/richtext-lexical/client#SubscriptFeatureClient": + SubscriptFeatureClient_e70f5e05f09f93e00b997edb1ef0c864, + "@payloadcms/richtext-lexical/client#StrikethroughFeatureClient": + StrikethroughFeatureClient_e70f5e05f09f93e00b997edb1ef0c864, + "@payloadcms/richtext-lexical/client#UnderlineFeatureClient": + UnderlineFeatureClient_e70f5e05f09f93e00b997edb1ef0c864, + "@payloadcms/richtext-lexical/client#BoldFeatureClient": + BoldFeatureClient_e70f5e05f09f93e00b997edb1ef0c864, + "@payloadcms/richtext-lexical/client#ItalicFeatureClient": + ItalicFeatureClient_e70f5e05f09f93e00b997edb1ef0c864, + "@payloadcms/next/rsc#CollectionCards": + CollectionCards_f9c02e79a4aed9a3924487c0cd4cafb1, +}; diff --git a/apps/web/app/(payload)/api/[...slug]/route.ts b/apps/web/app/(payload)/api/[...slug]/route.ts new file mode 100644 index 0000000..06c5bad --- /dev/null +++ b/apps/web/app/(payload)/api/[...slug]/route.ts @@ -0,0 +1,16 @@ +import config from "@payload-config"; +import { + REST_DELETE, + REST_GET, + REST_OPTIONS, + REST_PATCH, + REST_POST, + REST_PUT, +} from "@payloadcms/next/routes"; + +export const GET = REST_GET(config); +export const POST = REST_POST(config); +export const DELETE = REST_DELETE(config); +export const OPTIONS = REST_OPTIONS(config); +export const PATCH = REST_PATCH(config); +export const PUT = REST_PUT(config); diff --git a/apps/web/app/(payload)/layout.tsx b/apps/web/app/(payload)/layout.tsx new file mode 100644 index 0000000..5c37eb4 --- /dev/null +++ b/apps/web/app/(payload)/layout.tsx @@ -0,0 +1,20 @@ +import configPromise from "@payload-config"; +import "@payloadcms/next/css"; +import { RootLayout } from "@payloadcms/next/layouts"; +import React from "react"; + +// @ts-expect-error - Export exists in JS but TS types are missing in this version +import { handleServerFunctions } from "@payloadcms/next/utilities"; +import { importMap } from "./admin/importMap"; + +export default function Layout({ children }: { children: React.ReactNode }) { + return ( + + {children} + + ); +} diff --git a/apps/web/app/blog/[slug]/opengraph-image.tsx b/apps/web/app/blog/[slug]/opengraph-image.tsx index 7a6b5a6..4b5ac2e 100644 --- a/apps/web/app/blog/[slug]/opengraph-image.tsx +++ b/apps/web/app/blog/[slug]/opengraph-image.tsx @@ -1,5 +1,5 @@ import { ImageResponse } from "next/og"; -import { allPosts } from "contentlayer/generated"; +import { getAllPosts } from "../../../src/lib/posts"; import { blogThumbnails } from "../../../src/components/blog/blogThumbnails"; import { BlogOGImageTemplate } from "../../../src/components/BlogOGImageTemplate"; import { getOgFonts, OG_IMAGE_SIZE } from "../../../src/lib/og-helper"; @@ -16,6 +16,7 @@ export default async function Image({ params: Promise<{ slug: string }>; }) { const { slug } = await params; + const allPosts = await getAllPosts(); const post = allPosts.find((p) => p.slug === slug); let backgroundImageSrc: string | undefined = undefined; @@ -27,11 +28,15 @@ export default async function Image({ const fileBuffer = await fs.readFile(filePath); const ext = path.extname(post.thumbnail).substring(1).toLowerCase(); - const mimeType = ext === "jpg" || ext === "jpeg" ? "image/jpeg" : "image/png"; + const mimeType = + ext === "jpg" || ext === "jpeg" ? "image/jpeg" : "image/png"; backgroundImageSrc = `data:${mimeType};base64,${fileBuffer.toString("base64")}`; } catch (err) { - console.warn(`[OG Image Generator] Could not read thumbnail file for ${slug} to use as background:`, err); + console.warn( + `[OG Image Generator] Could not read thumbnail file for ${slug} to use as background:`, + err, + ); // Fall through to standard plain background } } diff --git a/apps/web/app/blog/[slug]/page.tsx b/apps/web/app/blog/[slug]/page.tsx index 13fc2d3..deeeef7 100644 --- a/apps/web/app/blog/[slug]/page.tsx +++ b/apps/web/app/blog/[slug]/page.tsx @@ -1,7 +1,7 @@ import * as React from "react"; import type { Metadata } from "next"; import { notFound } from "next/navigation"; -import { allPosts } from "contentlayer/generated"; +import { getAllPosts } from "../../../src/lib/posts"; import { BlogPostHeader } from "../../../src/components/blog/BlogPostHeader"; import { Section } from "../../../src/components/Section"; import { Reveal } from "../../../src/components/Reveal"; @@ -11,6 +11,7 @@ import { BlogPostStickyBar } from "../../../src/components/blog/BlogPostStickyBa import { MDXContent } from "../../../src/components/MDXContent"; export async function generateStaticParams() { + const allPosts = await getAllPosts(); return allPosts.map((post) => ({ slug: post.slug, })); @@ -22,6 +23,7 @@ export async function generateMetadata({ params: Promise<{ slug: string }>; }): Promise { const { slug } = await params; + const allPosts = await getAllPosts(); const post = allPosts.find((p) => p.slug === slug); if (!post) return {}; @@ -48,6 +50,7 @@ export default async function BlogPostPage({ params: Promise<{ slug: string }>; }) { const { slug } = await params; + const allPosts = await getAllPosts(); const post = allPosts.find((p) => p.slug === slug); if (!post) { diff --git a/apps/web/app/blog/page.tsx b/apps/web/app/blog/page.tsx index 3d6a3c6..854b859 100644 --- a/apps/web/app/blog/page.tsx +++ b/apps/web/app/blog/page.tsx @@ -1,211 +1,14 @@ -"use client"; +import { getAllPosts } from "../../src/lib/posts"; +import { BlogClient } from "../../src/components/blog/BlogClient"; +import type { Metadata } from "next"; -import * as React from "react"; -import { useState, useEffect } from "react"; -import { MediumCard } from "../../src/components/MediumCard"; -import { BlogCommandBar } from "../../src/components/blog/BlogCommandBar"; -import { allPosts as contentPosts } from "contentlayer/generated"; -import { SectionHeader } from "../../src/components/SectionHeader"; -import { Reveal } from "../../src/components/Reveal"; -import { Section } from "../../src/components/Section"; -import { AbstractCircuit, GradientMesh } from "../../src/components/Effects"; -import { useAnalytics } from "../../src/components/analytics/useAnalytics"; +export const metadata: Metadata = { + title: "Blog | Mintel.me", + description: + "Gedanken über Engineering, Design und die Architektur der Zukunft.", +}; -import { motion, AnimatePresence } from "framer-motion"; - -export default function BlogPage() { - const [searchQuery, setSearchQuery] = useState(""); - const [activeTags, setActiveTags] = useState([]); - const { trackEvent } = useAnalytics(); - - // Memoize allPosts - const allPosts = React.useMemo( - () => - [...contentPosts].sort( - (a, b) => new Date(b.date).getTime() - new Date(a.date).getTime(), - ), - [], - ); - - const [filteredPosts, setFilteredPosts] = useState(allPosts); - - // Memoize allTags - const allTags = React.useMemo( - () => Array.from(new Set(allPosts.flatMap((post) => post.tags || []))), - [allPosts], - ); - - const [visibleCount, setVisibleCount] = useState(8); - - const handleTagToggle = (tag: string) => { - setActiveTags((prev) => - prev.includes(tag) ? prev.filter((t) => t !== tag) : [...prev, tag], - ); - setVisibleCount(8); // Reset pagination on filter change - }; - - useEffect(() => { - const query = searchQuery.toLowerCase().trim(); - - let filtered = allPosts; - - if (query) { - filtered = filtered.filter((post) => { - const title = post.title.toLowerCase(); - const description = post.description.toLowerCase(); - const pTagString = (post.tags || []).join(" ").toLowerCase(); - return ( - title.includes(query) || - description.includes(query) || - pTagString.includes(query) - ); - }); - } - - if (activeTags.length > 0) { - filtered = filtered.filter((post) => - post.tags?.some((tag) => activeTags.includes(tag)), - ); - } - - setFilteredPosts(filtered); - }, [searchQuery, activeTags, allPosts]); - - const loadMore = () => { - setVisibleCount((prev) => prev + 6); - }; - - const hasMore = visibleCount < filteredPosts.length; - const postsToShow = filteredPosts.slice(0, visibleCount); - - return ( -
- - - {/* Header Section */} -
- -
-
- -
-
- Knowledge Base -
-
- - -
-

- Alle Artikel. -

-

- Gedanken über Engineering, Design und die Architektur der - Zukunft. -

-
-
-
-
-
- - {/* Sticky Filter Bar */} -
-
- - - -
-
- -
-
- {/* Posts List (Vertical & Minimal) */} -
- - {postsToShow.length === 0 ? ( - -

- Keine Beiträge gefunden. -

- -
- ) : ( - - - {postsToShow.map((post, i) => ( - - - - ))} - - - )} -
- - {/* Pagination */} - {hasMore && ( -
- - - -
- )} -
-
-
-
- ); +export default async function BlogPage() { + const posts = await getAllPosts(); + return ; } diff --git a/apps/web/app/sitemap.ts b/apps/web/app/sitemap.ts index b42d8f5..e2f0be3 100644 --- a/apps/web/app/sitemap.ts +++ b/apps/web/app/sitemap.ts @@ -1,56 +1,57 @@ -import { MetadataRoute } from 'next'; -import { allPosts } from 'contentlayer/generated'; -import { technologies } from './technologies/[slug]/data'; +import { MetadataRoute } from "next"; +import { getAllPosts } from "../src/lib/posts"; +import { technologies } from "./technologies/[slug]/data"; /** * Sitemap Generator - * + * * Standard Next.js 15 App Router sitemap generation. * This file dynamically generates /sitemap.xml */ -export default function sitemap(): MetadataRoute.Sitemap { - const baseUrl = process.env.NEXT_PUBLIC_BASE_URL || 'https://mintel.me'; +export default async function sitemap(): Promise { + const allPosts = await getAllPosts(); + const baseUrl = process.env.NEXT_PUBLIC_BASE_URL || "https://mintel.me"; - // 1. Core Pages - const routes = [ - '', - '/about', - '/blog', - '/case-studies', - '/case-studies/klz-cables', - '/contact', - '/websites', - ].map((route) => ({ - url: `${baseUrl}${route}`, - lastModified: new Date(), - changeFrequency: 'monthly' as const, - priority: route === '' ? 1.0 : 0.8, - })); + // 1. Core Pages + const routes = [ + "", + "/about", + "/blog", + "/case-studies", + "/case-studies/klz-cables", + "/contact", + "/websites", + ].map((route) => ({ + url: `${baseUrl}${route}`, + lastModified: new Date(), + changeFrequency: "monthly" as const, + priority: route === "" ? 1.0 : 0.8, + })); - // 2. Dynamic Blog Posts - const blogRoutes = allPosts.map((post) => ({ - url: `${baseUrl}/blog/${post.slug}`, - lastModified: new Date(post.date), - changeFrequency: 'monthly' as const, - priority: 0.7, - })); + // 2. Dynamic Blog Posts + const blogRoutes = allPosts.map((post) => ({ + url: `${baseUrl}/blog/${post.slug}`, + lastModified: new Date(post.date), + changeFrequency: "monthly" as const, + priority: 0.7, + })); - // 3. Technology Detail Pages - const techRoutes = Object.keys(technologies).map((slug) => ({ - url: `${baseUrl}/technologies/${slug}`, - lastModified: new Date(), - changeFrequency: 'monthly' as const, - priority: 0.6, - })); + // 3. Technology Detail Pages + const techRoutes = Object.keys(technologies).map((slug) => ({ + url: `${baseUrl}/technologies/${slug}`, + lastModified: new Date(), + changeFrequency: "monthly" as const, + priority: 0.6, + })); - // 4. Tag Pages - const allTags = [...new Set(allPosts.flatMap((post) => post.tags))]; - const tagRoutes = allTags.map((tag) => ({ - url: `${baseUrl}/tags/${tag}`, - lastModified: new Date(), - changeFrequency: 'weekly' as const, - priority: 0.3, - })); + // 4. Tag Pages + const allTags = [...new Set(allPosts.flatMap((post) => post.tags))]; + const tagRoutes = allTags.map((tag) => ({ + url: `${baseUrl}/tags/${tag}`, + lastModified: new Date(), + changeFrequency: "weekly" as const, + priority: 0.3, + })); - return [...routes, ...blogRoutes, ...techRoutes, ...tagRoutes]; + return [...routes, ...blogRoutes, ...techRoutes, ...tagRoutes]; } diff --git a/apps/web/app/tags/[tag]/page.tsx b/apps/web/app/tags/[tag]/page.tsx index adc066e..934f50b 100644 --- a/apps/web/app/tags/[tag]/page.tsx +++ b/apps/web/app/tags/[tag]/page.tsx @@ -1,9 +1,10 @@ import Link from "next/link"; -import { allPosts } from "contentlayer/generated"; +import { getAllPosts } from "../../../src/lib/posts"; import { MediumCard } from "../../../src/components/MediumCard"; import { Reveal } from "../../../src/components/Reveal"; export async function generateStaticParams() { + const allPosts = await getAllPosts(); const allTags = Array.from( new Set(allPosts.flatMap((post) => post.tags || [])), ); @@ -18,6 +19,7 @@ export default async function TagPage({ params: Promise<{ tag: string }>; }) { const { tag } = await params; + const allPosts = await getAllPosts(); const posts = allPosts.filter((post) => post.tags?.includes(tag)); return ( diff --git a/apps/web/contentlayer.config.ts b/apps/web/contentlayer.config.ts deleted file mode 100644 index 0071624..0000000 --- a/apps/web/contentlayer.config.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { defineDocumentType, makeSource } from 'contentlayer2/source-files' - -export const Post = defineDocumentType(() => ({ - name: 'Post', - filePathPattern: `blog/**/*.mdx`, - contentType: 'mdx', - fields: { - title: { type: 'string', required: true }, - date: { type: 'string', required: true }, - description: { type: 'string', required: true }, - tags: { type: 'list', of: { type: 'string' }, required: true }, - thumbnail: { type: 'string', required: false }, - }, - computedFields: { - slug: { - type: 'string', - resolve: (doc) => doc._raw.sourceFileName.replace(/\.mdx$/, ''), - }, - url: { - type: 'string', - resolve: (post) => `/blog/${post._raw.sourceFileName.replace(/\.mdx$/, '')}`, - }, - }, -})) - -export default makeSource({ - contentDirPath: 'content', - documentTypes: [Post], -}) diff --git a/apps/web/next.config.mjs b/apps/web/next.config.mjs index c0ae313..ecdde76 100644 --- a/apps/web/next.config.mjs +++ b/apps/web/next.config.mjs @@ -1,5 +1,5 @@ -import { withContentlayer } from 'next-contentlayer2'; import withMintelConfig from "@mintel/next-config"; +import { withPayload } from '@payloadcms/next/withPayload'; import createMDX from '@next/mdx'; @@ -32,5 +32,4 @@ const nextConfig = { const withMDX = createMDX({ // Add markdown plugins here, as desired }); - -export default withContentlayer(withMintelConfig(withMDX(nextConfig))); +export default withPayload(withMintelConfig(withMDX(nextConfig))); diff --git a/apps/web/package.json b/apps/web/package.json index 702d8dd..011317b 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -19,17 +19,9 @@ "video:render:button": "remotion render video/index.ts ButtonShowcase out/button-showcase.mp4 --concurrency=1 --codec=h264 --crf=16 --pixel-format=yuv420p --overwrite", "video:render:all": "npm run video:render:contact && npm run video:render:button", "pagespeed:test": "npx tsx ./scripts/pagespeed-sitemap.ts", - "cms:bootstrap": "DIRECTUS_URL=http://localhost:8055 npx tsx --env-file=.env scripts/setup-directus.ts", - "cms:push:staging": "../../scripts/sync-directus.sh push staging", - "cms:pull:staging": "../../scripts/sync-directus.sh pull staging", - "cms:push:testing": "../../scripts/sync-directus.sh push testing", - "cms:pull:testing": "../../scripts/sync-directus.sh pull testing", - "cms:push:prod": "../../scripts/sync-directus.sh push production", - "cms:pull:prod": "../../scripts/sync-directus.sh pull production", "typecheck": "tsc --noEmit" }, "dependencies": { - "@directus/sdk": "21.0.0", "@emotion/is-prop-valid": "^1.4.0", "@mdx-js/loader": "^3.1.1", "@mdx-js/react": "^3.1.1", @@ -44,6 +36,9 @@ "@opentelemetry/context-async-hooks": "^2.1.0", "@opentelemetry/core": "^2.1.0", "@opentelemetry/sdk-trace-base": "^2.1.0", + "@payloadcms/db-postgres": "^3.77.0", + "@payloadcms/next": "^3.77.0", + "@payloadcms/richtext-lexical": "^3.77.0", "@react-pdf/renderer": "^4.3.2", "@remotion/bundler": "^4.0.414", "@remotion/cli": "^4.0.414", @@ -60,18 +55,18 @@ "axios": "^1.13.4", "canvas-confetti": "^1.9.4", "clsx": "^2.1.1", - "contentlayer2": "^0.5.8", "crawlee": "^3.15.3", "esbuild": "^0.27.3", "framer-motion": "^12.29.2", + "graphql": "^16.12.0", "html-to-image": "^1.11.13", "ioredis": "^5.9.1", "lucide-react": "^0.468.0", "mermaid": "^11.12.2", "next": "^16.1.6", - "next-contentlayer2": "^0.5.8", "next-mdx-remote": "^6.0.0", "nodemailer": "^8.0.1", + "payload": "^3.77.0", "playwright": "^1.58.1", "prismjs": "^1.30.0", "puppeteer": "^24.36.1", @@ -82,6 +77,7 @@ "react-tweet": "^3.3.0", "recharts": "^3.7.0", "remotion": "^4.0.414", + "sharp": "^0.34.5", "shiki": "^1.24.2", "tailwind-merge": "^3.4.0", "tailwindcss": "^3.4.0", @@ -117,4 +113,4 @@ "typescript": "5.9.3", "typescript-eslint": "^8.54.0" } -} \ No newline at end of file +} diff --git a/apps/web/payload-types.ts b/apps/web/payload-types.ts new file mode 100644 index 0000000..a2f9dcf --- /dev/null +++ b/apps/web/payload-types.ts @@ -0,0 +1,436 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * This file was automatically generated by Payload. + * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config, + * and re-run `payload generate:types` to regenerate this file. + */ + +/** + * Supported timezones in IANA format. + * + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "supportedTimezones". + */ +export type SupportedTimezones = + | "Pacific/Midway" + | "Pacific/Niue" + | "Pacific/Honolulu" + | "Pacific/Rarotonga" + | "America/Anchorage" + | "Pacific/Gambier" + | "America/Los_Angeles" + | "America/Tijuana" + | "America/Denver" + | "America/Phoenix" + | "America/Chicago" + | "America/Guatemala" + | "America/New_York" + | "America/Bogota" + | "America/Caracas" + | "America/Santiago" + | "America/Buenos_Aires" + | "America/Sao_Paulo" + | "Atlantic/South_Georgia" + | "Atlantic/Azores" + | "Atlantic/Cape_Verde" + | "Europe/London" + | "Europe/Berlin" + | "Africa/Lagos" + | "Europe/Athens" + | "Africa/Cairo" + | "Europe/Moscow" + | "Asia/Riyadh" + | "Asia/Dubai" + | "Asia/Baku" + | "Asia/Karachi" + | "Asia/Tashkent" + | "Asia/Calcutta" + | "Asia/Dhaka" + | "Asia/Almaty" + | "Asia/Jakarta" + | "Asia/Bangkok" + | "Asia/Shanghai" + | "Asia/Singapore" + | "Asia/Tokyo" + | "Asia/Seoul" + | "Australia/Brisbane" + | "Australia/Sydney" + | "Pacific/Guam" + | "Pacific/Noumea" + | "Pacific/Auckland" + | "Pacific/Fiji"; + +export interface Config { + auth: { + users: UserAuthOperations; + }; + blocks: {}; + collections: { + users: User; + media: Media; + posts: Post; + "payload-kv": PayloadKv; + "payload-locked-documents": PayloadLockedDocument; + "payload-preferences": PayloadPreference; + "payload-migrations": PayloadMigration; + }; + collectionsJoins: {}; + collectionsSelect: { + users: UsersSelect | UsersSelect; + media: MediaSelect | MediaSelect; + posts: PostsSelect | PostsSelect; + "payload-kv": PayloadKvSelect | PayloadKvSelect; + "payload-locked-documents": + | PayloadLockedDocumentsSelect + | PayloadLockedDocumentsSelect; + "payload-preferences": + | PayloadPreferencesSelect + | PayloadPreferencesSelect; + "payload-migrations": + | PayloadMigrationsSelect + | PayloadMigrationsSelect; + }; + db: { + defaultIDType: number; + }; + fallbackLocale: null; + globals: {}; + globalsSelect: {}; + locale: null; + user: User; + jobs: { + tasks: unknown; + workflows: unknown; + }; +} +export interface UserAuthOperations { + forgotPassword: { + email: string; + password: string; + }; + login: { + email: string; + password: string; + }; + registerFirstUser: { + email: string; + password: string; + }; + unlock: { + email: string; + password: string; + }; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "users". + */ +export interface User { + id: number; + updatedAt: string; + createdAt: string; + email: string; + resetPasswordToken?: string | null; + resetPasswordExpiration?: string | null; + salt?: string | null; + hash?: string | null; + loginAttempts?: number | null; + lockUntil?: string | null; + sessions?: + | { + id: string; + createdAt?: string | null; + expiresAt: string; + }[] + | null; + password?: string | null; + collection: "users"; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "media". + */ +export interface Media { + id: number; + alt: string; + updatedAt: string; + createdAt: string; + url?: string | null; + thumbnailURL?: string | null; + filename?: string | null; + mimeType?: string | null; + filesize?: number | null; + width?: number | null; + height?: number | null; + focalX?: number | null; + focalY?: number | null; + sizes?: { + thumbnail?: { + url?: string | null; + width?: number | null; + height?: number | null; + mimeType?: string | null; + filesize?: number | null; + filename?: string | null; + }; + card?: { + url?: string | null; + width?: number | null; + height?: number | null; + mimeType?: string | null; + filesize?: number | null; + filename?: string | null; + }; + tablet?: { + url?: string | null; + width?: number | null; + height?: number | null; + mimeType?: string | null; + filesize?: number | null; + filename?: string | null; + }; + }; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "posts". + */ +export interface Post { + id: number; + title: string; + slug: string; + description: string; + date: string; + tags: { + tag?: string | null; + id?: string | null; + }[]; + thumbnail?: string | null; + content: string; + updatedAt: string; + createdAt: string; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "payload-kv". + */ +export interface PayloadKv { + id: number; + key: string; + data: + | { + [k: string]: unknown; + } + | unknown[] + | string + | number + | boolean + | null; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "payload-locked-documents". + */ +export interface PayloadLockedDocument { + id: number; + document?: + | ({ + relationTo: "users"; + value: number | User; + } | null) + | ({ + relationTo: "media"; + value: number | Media; + } | null) + | ({ + relationTo: "posts"; + value: number | Post; + } | null); + globalSlug?: string | null; + user: { + relationTo: "users"; + value: number | User; + }; + updatedAt: string; + createdAt: string; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "payload-preferences". + */ +export interface PayloadPreference { + id: number; + user: { + relationTo: "users"; + value: number | User; + }; + key?: string | null; + value?: + | { + [k: string]: unknown; + } + | unknown[] + | string + | number + | boolean + | null; + updatedAt: string; + createdAt: string; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "payload-migrations". + */ +export interface PayloadMigration { + id: number; + name?: string | null; + batch?: number | null; + updatedAt: string; + createdAt: string; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "users_select". + */ +export interface UsersSelect { + updatedAt?: T; + createdAt?: T; + email?: T; + resetPasswordToken?: T; + resetPasswordExpiration?: T; + salt?: T; + hash?: T; + loginAttempts?: T; + lockUntil?: T; + sessions?: + | T + | { + id?: T; + createdAt?: T; + expiresAt?: T; + }; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "media_select". + */ +export interface MediaSelect { + alt?: T; + updatedAt?: T; + createdAt?: T; + url?: T; + thumbnailURL?: T; + filename?: T; + mimeType?: T; + filesize?: T; + width?: T; + height?: T; + focalX?: T; + focalY?: T; + sizes?: + | T + | { + thumbnail?: + | T + | { + url?: T; + width?: T; + height?: T; + mimeType?: T; + filesize?: T; + filename?: T; + }; + card?: + | T + | { + url?: T; + width?: T; + height?: T; + mimeType?: T; + filesize?: T; + filename?: T; + }; + tablet?: + | T + | { + url?: T; + width?: T; + height?: T; + mimeType?: T; + filesize?: T; + filename?: T; + }; + }; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "posts_select". + */ +export interface PostsSelect { + title?: T; + slug?: T; + description?: T; + date?: T; + tags?: + | T + | { + tag?: T; + id?: T; + }; + thumbnail?: T; + content?: T; + updatedAt?: T; + createdAt?: T; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "payload-kv_select". + */ +export interface PayloadKvSelect { + key?: T; + data?: T; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "payload-locked-documents_select". + */ +export interface PayloadLockedDocumentsSelect { + document?: T; + globalSlug?: T; + user?: T; + updatedAt?: T; + createdAt?: T; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "payload-preferences_select". + */ +export interface PayloadPreferencesSelect { + user?: T; + key?: T; + value?: T; + updatedAt?: T; + createdAt?: T; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "payload-migrations_select". + */ +export interface PayloadMigrationsSelect { + name?: T; + batch?: T; + updatedAt?: T; + createdAt?: T; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "auth". + */ +export interface Auth { + [k: string]: unknown; +} + +declare module "payload" { + export interface GeneratedTypes extends Config {} +} diff --git a/apps/web/payload.config.ts b/apps/web/payload.config.ts new file mode 100644 index 0000000..ea1e01b --- /dev/null +++ b/apps/web/payload.config.ts @@ -0,0 +1,36 @@ +import { buildConfig } from "payload"; +import { postgresAdapter } from "@payloadcms/db-postgres"; +import { lexicalEditor } from "@payloadcms/richtext-lexical"; +import path from "path"; +import { fileURLToPath } from "url"; +import sharp from "sharp"; + +import { Users } from "./src/payload/collections/Users"; +import { Media } from "./src/payload/collections/Media"; +import { Posts } from "./src/payload/collections/Posts"; + +const filename = fileURLToPath(import.meta.url); +const dirname = path.dirname(filename); + +export default buildConfig({ + admin: { + user: Users.slug, + importMap: { + baseDir: path.resolve(dirname), + }, + }, + collections: [Users, Media, Posts], + editor: lexicalEditor(), + secret: process.env.PAYLOAD_SECRET || "fallback-secret-for-dev", + typescript: { + outputFile: path.resolve(dirname, "payload-types.ts"), + }, + db: postgresAdapter({ + pool: { + connectionString: + process.env.DATABASE_URI || process.env.POSTGRES_URI || "", + }, + }), + sharp, + plugins: [], +}); diff --git a/apps/web/scripts/migrate-posts.ts b/apps/web/scripts/migrate-posts.ts new file mode 100644 index 0000000..e357843 --- /dev/null +++ b/apps/web/scripts/migrate-posts.ts @@ -0,0 +1,72 @@ +import { getPayload } from "payload"; +import configPromise from "../payload.config"; +import fs from "fs"; +import path from "path"; + +function parseMatter(content: string) { + const match = content.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/); + if (!match) return { data: {}, content }; + const data: Record = {}; + match[1].split("\n").forEach((line) => { + const [key, ...rest] = line.split(":"); + if (key && rest.length) { + const field = key.trim(); + let val = rest.join(":").trim(); + if (val.startsWith("[")) { + // basic array parsing + data[field] = val + .slice(1, -1) + .split(",") + .map((s) => s.trim().replace(/^["']|["']$/g, "")); + } else { + data[field] = val.replace(/^["']|["']$/g, ""); + } + } + }); + return { data, content: match[2].trim() }; +} + +async function run() { + const payload = await getPayload({ config: configPromise }); + const contentDir = path.join(process.cwd(), "content", "blog"); + const files = fs.readdirSync(contentDir).filter((f) => f.endsWith(".mdx")); + + for (const file of files) { + const filePath = path.join(contentDir, file); + const content = fs.readFileSync(filePath, "utf-8"); + const { data, content: body } = parseMatter(content); + + const slug = file.replace(/\.mdx$/, ""); + console.log(`Migrating ${slug}...`); + + const existing = await payload.find({ + collection: "posts", + where: { slug: { equals: slug } }, + }); + + if (existing.docs.length === 0) { + await payload.create({ + collection: "posts", + data: { + title: data.title || slug, + slug, + description: data.description || "", + date: data.date + ? new Date(data.date).toISOString() + : new Date().toISOString(), + tags: (data.tags || []).map((t: string) => ({ tag: t })), + thumbnail: data.thumbnail || "", + content: body, + }, + }); + console.log(`✔ Inserted ${slug}`); + } else { + console.log(`⚠ Skipped ${slug} (already exists)`); + } + } + + console.log("Migration complete."); + process.exit(0); +} + +run().catch(console.error); diff --git a/apps/web/scripts/setup-directus.ts b/apps/web/scripts/setup-directus.ts deleted file mode 100644 index e9e074a..0000000 --- a/apps/web/scripts/setup-directus.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { - createMintelDirectusClient, - ensureDirectusAuthenticated, -} from "@mintel/next-utils"; -import { updateSettings } from "@directus/sdk"; - -const client = createMintelDirectusClient(); - -async function setupBranding() { - const prjName = process.env.PROJECT_NAME || "Mintel.me"; - const prjColor = process.env.PROJECT_COLOR || "#ff00ff"; - - console.log(`🎨 Refining Directus Branding for ${prjName}...`); - await ensureDirectusAuthenticated(client); - - const cssInjection = ` - -
-

Mintel Infrastructure Engine

-

${prjName.toUpperCase()} SYNC.

-
- `; - - try { - await client.request( - updateSettings({ - project_name: prjName, - project_color: prjColor, - public_note: cssInjection, - module_bar_background: "#00081a", - theme_light_overrides: { - primary: prjColor, - borderRadius: "12px", - navigationBackground: "#000c24", - navigationForeground: "#ffffff", - moduleBarBackground: "#00081a", - }, - } as any), - ); - console.log("✨ Branding applied!"); - } catch (error) { - console.error("❌ Error during bootstrap:", error); - } -} - -setupBranding() - .then(() => { - process.exit(0); - }) - .catch((err) => { - console.error("🚨 Fatal bootstrap error:", err); - process.exit(1); - }); diff --git a/apps/web/src/components/MDXContent.tsx b/apps/web/src/components/MDXContent.tsx index 449b4f2..58f2030 100644 --- a/apps/web/src/components/MDXContent.tsx +++ b/apps/web/src/components/MDXContent.tsx @@ -1,22 +1,10 @@ -"use client"; - -import { useMDXComponent } from "next-contentlayer2/hooks"; +import { MDXRemote } from "next-mdx-remote/rsc"; import { mdxComponents } from "../content-engine/registry"; interface MDXContentProps { - code: string; + code: string; } export function MDXContent({ code }: MDXContentProps) { - // FIX: Contentlayer/MDX often appends hoisted functions *after* the `return MDXContent` statement, - // which causes Firefox to vomit hundreds of "unreachable code after return statement" warnings. - // We rewrite the generated IIFE string to move the return to the very end. - let patchedCode = code; - if (patchedCode.includes("return function MDXContent(")) { - patchedCode = patchedCode.replace("return function MDXContent(", "const MDXContent = function MDXContent("); - patchedCode += "\nreturn MDXContent;"; - } - - const Component = useMDXComponent(patchedCode); - return ; + return ; } diff --git a/apps/web/src/components/blog/BlogClient.tsx b/apps/web/src/components/blog/BlogClient.tsx new file mode 100644 index 0000000..6cb8cbe --- /dev/null +++ b/apps/web/src/components/blog/BlogClient.tsx @@ -0,0 +1,210 @@ +"use client"; + +import * as React from "react"; +import { useState, useEffect } from "react"; +import { MediumCard } from "../MediumCard"; +import { BlogCommandBar } from "./BlogCommandBar"; +import { Reveal } from "../Reveal"; +import { Section } from "../Section"; +import { AbstractCircuit, GradientMesh } from "../Effects"; +import { useAnalytics } from "../analytics/useAnalytics"; + +import { motion, AnimatePresence } from "framer-motion"; + +interface PostType { + title: string; + description: string; + date: string; + tags: string[]; + slug: string; + thumbnail: string; + body: { code: string }; +} + +export function BlogClient({ allPosts }: { allPosts: PostType[] }) { + const [searchQuery, setSearchQuery] = useState(""); + const [activeTags, setActiveTags] = useState([]); + const { trackEvent } = useAnalytics(); + + const [filteredPosts, setFilteredPosts] = useState(allPosts); + + // Memoize allTags + const allTags = React.useMemo( + () => Array.from(new Set(allPosts.flatMap((post) => post.tags || []))), + [allPosts], + ); + + const [visibleCount, setVisibleCount] = useState(8); + + const handleTagToggle = (tag: string) => { + setActiveTags((prev) => + prev.includes(tag) ? prev.filter((t) => t !== tag) : [...prev, tag], + ); + setVisibleCount(8); // Reset pagination on filter change + }; + + useEffect(() => { + const query = searchQuery.toLowerCase().trim(); + + let filtered = allPosts; + + if (query) { + filtered = filtered.filter((post) => { + const title = post.title.toLowerCase(); + const description = post.description.toLowerCase(); + const pTagString = (post.tags || []).join(" ").toLowerCase(); + return ( + title.includes(query) || + description.includes(query) || + pTagString.includes(query) + ); + }); + } + + if (activeTags.length > 0) { + filtered = filtered.filter((post) => + post.tags?.some((tag) => activeTags.includes(tag)), + ); + } + + setFilteredPosts(filtered); + }, [searchQuery, activeTags, allPosts]); + + const loadMore = () => { + setVisibleCount((prev) => prev + 6); + }; + + const hasMore = visibleCount < filteredPosts.length; + const postsToShow = filteredPosts.slice(0, visibleCount); + + return ( +
+ + + {/* Header Section */} +
+ +
+
+ +
+
+ Knowledge Base +
+
+ + +
+

+ Alle Artikel. +

+

+ Gedanken über Engineering, Design und die Architektur der + Zukunft. +

+
+
+
+
+
+ + {/* Sticky Filter Bar */} +
+
+ + + +
+
+ +
+
+ {/* Posts List (Vertical & Minimal) */} +
+ + {postsToShow.length === 0 ? ( + +

+ Keine Beiträge gefunden. +

+ +
+ ) : ( + + + {postsToShow.map((post, i) => ( + + + + ))} + + + )} +
+ + {/* Pagination */} + {hasMore && ( +
+ + + +
+ )} +
+
+
+
+ ); +} diff --git a/apps/web/src/lib/posts.ts b/apps/web/src/lib/posts.ts new file mode 100644 index 0000000..61b7e1f --- /dev/null +++ b/apps/web/src/lib/posts.ts @@ -0,0 +1,30 @@ +import { getPayload } from "payload"; +import configPromise from "@payload-config"; + +export async function getAllPosts() { + if (!process.env.DATABASE_URI && !process.env.POSTGRES_URI) { + console.warn( + "⚠️ Bypassing Payload fetch during Next.js build: DATABASE_URI is missing.", + ); + return []; + } + + const payload = await getPayload({ config: configPromise }); + const { docs } = await payload.find({ + collection: "posts", + limit: 1000, + sort: "-date", + }); + + return docs.map((doc) => ({ + title: doc.title as string, + description: doc.description as string, + date: doc.date as string, + tags: (doc.tags || []).map((t) => + typeof t === "object" && t !== null ? t.tag : t, + ) as string[], + slug: doc.slug as string, + thumbnail: doc.thumbnail as string, + body: { code: doc.content as string }, + })); +} diff --git a/apps/web/src/payload/collections/Media.ts b/apps/web/src/payload/collections/Media.ts new file mode 100644 index 0000000..25a9db6 --- /dev/null +++ b/apps/web/src/payload/collections/Media.ts @@ -0,0 +1,47 @@ +import type { CollectionConfig } from "payload"; +import path from "path"; +import { fileURLToPath } from "url"; + +const filename = fileURLToPath(import.meta.url); +const dirname = path.dirname(filename); + +export const Media: CollectionConfig = { + slug: "media", + admin: { + useAsTitle: "alt", + }, + access: { + read: () => true, // Publicly readable + }, + upload: { + staticDir: path.resolve(dirname, "../../../../public/media"), + adminThumbnail: "thumbnail", + imageSizes: [ + { + name: "thumbnail", + width: 400, + height: 300, + position: "centre", + }, + { + name: "card", + width: 768, + height: 1024, + position: "centre", + }, + { + name: "tablet", + width: 1024, + height: undefined, + position: "centre", + }, + ], + }, + fields: [ + { + name: "alt", + type: "text", + required: true, + }, + ], +}; diff --git a/apps/web/src/payload/collections/Posts.ts b/apps/web/src/payload/collections/Posts.ts new file mode 100644 index 0000000..06d3b52 --- /dev/null +++ b/apps/web/src/payload/collections/Posts.ts @@ -0,0 +1,74 @@ +import type { CollectionConfig } from "payload"; + +export const Posts: CollectionConfig = { + slug: "posts", + admin: { + useAsTitle: "title", + }, + access: { + read: () => true, // Publicly readable API + }, + fields: [ + { + name: "title", + type: "text", + required: true, + }, + { + name: "slug", + type: "text", + required: true, + unique: true, + admin: { + position: "sidebar", + }, + hooks: { + beforeValidate: [ + ({ value, data }) => { + if (value) return value; + if (data?.title) { + return data.title + .toLowerCase() + .replace(/ /g, "-") + .replace(/[^\w-]+/g, ""); + } + return value; + }, + ], + }, + }, + { + name: "description", + type: "text", + required: true, + }, + { + name: "date", + type: "date", + required: true, + }, + { + name: "tags", + type: "array", + required: true, + fields: [ + { + name: "tag", + type: "text", + }, + ], + }, + { + name: "thumbnail", + type: "text", // Keeping as text for now to match current MDX strings like "/blog/green-it.png" + }, + { + name: "content", + type: "code", + admin: { + language: "markdown", + }, + required: true, + }, + ], +}; diff --git a/apps/web/src/payload/collections/Users.ts b/apps/web/src/payload/collections/Users.ts new file mode 100644 index 0000000..c1ba5fa --- /dev/null +++ b/apps/web/src/payload/collections/Users.ts @@ -0,0 +1,13 @@ +import type { CollectionConfig } from "payload"; + +export const Users: CollectionConfig = { + slug: "users", + admin: { + useAsTitle: "email", + }, + auth: true, + fields: [ + // Email added by default due to auth + // Add more fields as needed + ], +}; diff --git a/apps/web/src/utils/imgproxy.ts b/apps/web/src/utils/imgproxy.ts index 69f1f07..9c9be95 100644 --- a/apps/web/src/utils/imgproxy.ts +++ b/apps/web/src/utils/imgproxy.ts @@ -69,29 +69,23 @@ export function getImgproxyUrl( "http://directus:8055", ); } - } - const { - width = 0, - height = 0, - resizing_type = "fit", - gravity = "sm", // Default to smart gravity - enlarge = false, - extension = "", - } = options; + const { width = 0, height = 0, enlarge = false, extension = "" } = options; - // Processing options - // Format: /rs::::/g: - const processingOptions = [ - `rs:${resizing_type}:${width}:${height}:${enlarge ? 1 : 0}`, - `g:${gravity}`, - ].join("/"); + let quality = 80; + if (extension) quality = 90; - // Using /unsafe/ for now as we don't handle signatures yet - // Format: /unsafe// - const suffix = extension ? `@${extension}` : ""; - const encodedSrc = encodeBase64(absoluteSrc + suffix); + // Re-map imgproxy URL to our new parameter structure + // e.g. /process?url=...&w=...&h=...&q=...&format=... + const queryParams = new URLSearchParams({ + url: absoluteSrc, + }); - return `${baseUrl}/unsafe/${processingOptions}/${encodedSrc}`; + if (width > 0) queryParams.set("w", width.toString()); + if (height > 0) queryParams.set("h", height.toString()); + if (extension) queryParams.set("format", extension.replace(".", "")); + if (quality) queryParams.set("q", quality.toString()); + + return `${baseUrl}/process?${queryParams.toString()}`; } diff --git a/apps/web/tsconfig.json b/apps/web/tsconfig.json index 7a172a6..fd778dc 100644 --- a/apps/web/tsconfig.json +++ b/apps/web/tsconfig.json @@ -3,12 +3,8 @@ "compilerOptions": { "baseUrl": ".", "paths": { - "@/*": [ - "./*" - ], - "contentlayer/generated": [ - "./.contentlayer/generated" - ] + "@/*": ["./*"], + "@payload-config": ["./payload.config.ts"] } }, "include": [ @@ -18,7 +14,5 @@ ".next/types/**/*.ts", ".contentlayer/generated" ], - "exclude": [ - "node_modules" - ] -} \ No newline at end of file + "exclude": ["node_modules"] +} diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 3d1a35b..1154c6a 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -34,35 +34,7 @@ services: - "caddy=http://gatekeeper.${TRAEFIK_HOST:-mintel.localhost}" - "caddy.reverse_proxy={{upstreams 3000}}" - directus: - image: registry.infra.mintel.me/mintel/directus:latest - restart: always - networks: - - default - - infra - env_file: - - .env - environment: - KEY: ${DIRECTUS_KEY} - SECRET: ${DIRECTUS_SECRET} - DB_CLIENT: "pg" - DB_HOST: "directus-db" - DB_PORT: "5432" - DB_DATABASE: ${DIRECTUS_DB_NAME:-directus} - DB_USER: ${DIRECTUS_DB_USER:-directus} - DB_PASSWORD: ${DIRECTUS_DB_PASSWORD:-directus} - PUBLIC_URL: ${DIRECTUS_URL:-https://cms.mintel.me} - volumes: - - ./directus/uploads:/directus/uploads - - ./directus/extensions:/directus/extensions - - ./directus/migrations:/directus/migrations - labels: - - "traefik.http.services.${PROJECT_NAME:-mintel-me}-directus.loadbalancer.server.port=8055" - - "traefik.docker.network=infra" - - "caddy=http://${DIRECTUS_HOST:-cms.mintel.localhost}" - - "caddy.reverse_proxy={{upstreams 8055}}" - - directus-db: + postgres-db: image: postgres:15-alpine restart: always networks: @@ -70,9 +42,11 @@ services: env_file: - .env environment: - POSTGRES_DB: ${DIRECTUS_DB_NAME:-directus} - POSTGRES_USER: ${DIRECTUS_DB_USER:-directus} - POSTGRES_PASSWORD: ${DIRECTUS_DB_PASSWORD:-directus} + POSTGRES_DB: ${postgres_DB_NAME:-directus} + POSTGRES_USER: ${postgres_DB_USER:-directus} + POSTGRES_PASSWORD: ${postgres_DB_PASSWORD:-directus} + ports: + - "5432:5432" volumes: - directus-db-data:/var/lib/postgresql/data @@ -84,10 +58,9 @@ services: - infra extra_hosts: - "mintel.localhost:host-gateway" - - "cms.mintel.localhost:host-gateway" - "host.docker.internal:host-gateway" environment: - IMGPROXY_URL_MAPPING: "http://mintel.localhost/:http://app:3000/,http://cms.mintel.localhost/:http://directus:8055/" + IMGPROXY_URL_MAPPING: "http://mintel.localhost/:http://app:3000/" IMGPROXY_USE_ETAG: "true" IMGPROXY_MAX_SRC_RESOLUTION: 20 IMGPROXY_ALLOWED_NETWORKS: "10.0.0.0/8,172.16.0.0/12,192.168.0.0/16" diff --git a/docker-compose.yml b/docker-compose.yml index b83c845..2209003 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -55,7 +55,7 @@ services: - "traefik.http.middlewares.mintel-me-forward.headers.customrequestheaders.X-Forwarded-Ssl=on" mintel-me-gatekeeper: - profiles: [ "gatekeeper" ] + profiles: ["gatekeeper"] image: registry.infra.mintel.me/mintel/gatekeeper:v1.7.12 container_name: ${PROJECT_NAME:-mintel-me}-gatekeeper restart: always @@ -79,52 +79,7 @@ services: - "caddy=gatekeeper.${TRAEFIK_HOST:-mintel.localhost}" - "caddy.reverse_proxy={{upstreams 3000}}" - mintel-me-cms: - image: registry.infra.mintel.me/mintel/directus:latest - restart: always - networks: - - default - - infra - env_file: - - ${ENV_FILE:-.env} - environment: - KEY: ${DIRECTUS_KEY} - SECRET: ${DIRECTUS_SECRET} - DB_CLIENT: "pg" - DB_HOST: "mintel-me-db" - DB_PORT: "5432" - DB_DATABASE: ${DIRECTUS_DB_NAME:-directus} - DB_USER: ${DIRECTUS_DB_USER:-directus} - DB_PASSWORD: ${DIRECTUS_DB_PASSWORD:-directus} - PUBLIC_URL: ${DIRECTUS_URL:-https://cms.mintel.me} - SENTRY_DSN: ${SENTRY_DSN} - SENTRY_ENVIRONMENT: ${TARGET:-development} - LOGGER_LEVEL: ${LOG_LEVEL:-info} - volumes: - - ./directus/uploads:/directus/uploads - - ./directus/extensions:/directus/extensions - - ./directus/schema:/directus/schema - - ./directus/migrations:/directus/migrations - healthcheck: - test: [ "CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:8055/server/ping" ] - interval: 30s - timeout: 5s - retries: 3 - start_period: 30s - labels: - - "traefik.enable=true" - - 'traefik.http.routers.mintel-me-cms.rule=${TRAEFIK_DIRECTUS_RULE:-Host("${DIRECTUS_HOST:-cms.mintel.localhost}")}' - - "traefik.http.routers.mintel-me-cms.entrypoints=${TRAEFIK_ENTRYPOINT:-web}" - - "traefik.http.routers.mintel-me-cms.tls.certresolver=${TRAEFIK_CERT_RESOLVER:-}" - - "traefik.http.routers.mintel-me-cms.tls=${TRAEFIK_TLS:-false}" - - "traefik.http.routers.mintel-me-cms.service=mintel-me-cms-svc" - - "traefik.http.routers.mintel-me-cms.middlewares=mintel-me-forward" - - "traefik.http.services.mintel-me-cms-svc.loadbalancer.server.port=8055" - - "traefik.docker.network=infra" - - "caddy=${DIRECTUS_HOST:-cms.mintel.localhost}" - - "caddy.reverse_proxy={{upstreams 8055}}" - - mintel-me-db: + postgres-db: image: postgres:15-alpine restart: always networks: @@ -132,9 +87,9 @@ services: env_file: - ${ENV_FILE:-.env} environment: - POSTGRES_DB: ${DIRECTUS_DB_NAME:-directus} - POSTGRES_USER: ${DIRECTUS_DB_USER:-directus} - POSTGRES_PASSWORD: ${DIRECTUS_DB_PASSWORD:-directus} + POSTGRES_DB: ${postgres_DB_NAME:-directus} + POSTGRES_USER: ${postgres_DB_USER:-directus} + POSTGRES_PASSWORD: ${postgres_DB_PASSWORD:-directus} volumes: - directus-db-data:/var/lib/postgresql/data diff --git a/package.json b/package.json index b4861e0..4bb13db 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "type": "module", "packageManager": "pnpm@10.18.3", "scripts": { - "dev": "docker network create infra 2>/dev/null || true && echo \"\n🚀 Development Environment Starting...\n\n📱 App: http://mintel.localhost\n🗄️ CMS: http://cms.mintel.localhost/admin\n🖼️ Imgproxy: http://img.mintel.localhost\n🚦 Caddy Proxy: http://localhost:80\n\" && lsof -ti:3000 | xargs kill -9 2>/dev/null || true && rm -rf apps/web/.next apps/web/.contentlayer/.cache 2>/dev/null || true && docker rm -f mintel-me-gatekeeper 2>/dev/null || true && COMPOSE_PROJECT_NAME=mintel-me docker-compose -f docker-compose.dev.yml down --remove-orphans && COMPOSE_PROJECT_NAME=mintel-me docker-compose -f docker-compose.dev.yml up -d app directus directus-db gatekeeper imgproxy && pnpm -r dev", + "dev": "docker network create infra 2>/dev/null || true && echo \"\\n🚀 Development Environment Starting...\\n\\n📱 App: http://mintel.localhost\\n🖼️ Imgproxy: http://img.mintel.localhost\\n🚦 Caddy Proxy: http://localhost:80\\n\" && lsof -ti:3000 | xargs kill -9 2>/dev/null || true && rm -rf apps/web/.next apps/web/.contentlayer/.cache 2>/dev/null || true && docker rm -f mintel-me-gatekeeper 2>/dev/null || true && COMPOSE_PROJECT_NAME=mintel-me docker-compose -f docker-compose.dev.yml down --remove-orphans && COMPOSE_PROJECT_NAME=mintel-me docker-compose -f docker-compose.dev.yml up -d app postgres-db gatekeeper imgproxy && DATABASE_URI=\"postgres://directus:directus@localhost:5432/directus\" PAYLOAD_SECRET=\"dev-secret\" pnpm -r dev", "dev:clean": "pnpm dev:stop && rm -rf apps/web/.next apps/web/.contentlayer apps/web/node_modules && pnpm install && pnpm dev", "dev:stop": "lsof -ti:3000,3001,3002 | xargs kill -9 2>/dev/null || true && COMPOSE_PROJECT_NAME=mintel-me docker-compose -f docker-compose.dev.yml down", "dev:local": "pnpm -r dev", @@ -48,9 +48,8 @@ } }, "dependencies": { - "@directus/sdk": "21.0.0", "@eslint/compat": "^2.0.2", "@mintel/acquisition": "link:../at-mintel/packages/acquisition-library", "tsx": "^4.21.0" } -} \ No newline at end of file +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 92556f7..5c10205 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,9 +12,6 @@ overrides: importers: .: dependencies: - "@directus/sdk": - specifier: 21.0.0 - version: 21.0.0 "@eslint/compat": specifier: ^2.0.2 version: 2.0.2(eslint@10.0.0(jiti@1.21.7)) @@ -36,16 +33,16 @@ importers: version: 1.7.8 "@mintel/eslint-config": specifier: ^1.7.3 - version: 1.7.8(@typescript-eslint/parser@8.54.0(eslint@10.0.0(jiti@1.21.7))(typescript@5.9.3))(eslint@10.0.0(jiti@1.21.7))(typescript@5.9.3) + version: 1.7.8(eslint@10.0.0(jiti@1.21.7))(typescript@5.9.3) "@mintel/husky-config": specifier: ^1.7.3 version: 1.7.8 "@mintel/next-config": specifier: ^1.7.3 - version: 1.7.8(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(@swc/helpers@0.5.18)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)(webpack@5.96.1) + version: 1.7.8(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(@swc/helpers@0.5.18)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4)(typescript@5.9.3)(webpack@5.96.1) "@mintel/next-utils": specifier: ^1.7.15 - version: 1.7.15(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@swc/helpers@0.5.18)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + version: 1.7.15(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@swc/helpers@0.5.18)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4)(typescript@5.9.3) "@mintel/tsconfig": specifier: ^1.7.3 version: 1.7.8 @@ -94,9 +91,6 @@ importers: apps/web: dependencies: - "@directus/sdk": - specifier: 21.0.0 - version: 21.0.0 "@emotion/is-prop-valid": specifier: ^1.4.0 version: 1.4.0 @@ -126,7 +120,7 @@ importers: version: 16.1.6(@mdx-js/loader@3.1.1(webpack@5.96.1(esbuild@0.27.3)))(@mdx-js/react@3.1.1(@types/react@19.2.13)(react@19.2.4)) "@next/third-parties": specifier: ^16.1.6 - version: 16.1.6(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + version: 16.1.6(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(react@19.2.4) "@opentelemetry/api": specifier: ^1.9.0 version: 1.9.0 @@ -139,6 +133,15 @@ importers: "@opentelemetry/sdk-trace-base": specifier: ^2.1.0 version: 2.5.0(@opentelemetry/api@1.9.0) + "@payloadcms/db-postgres": + specifier: ^3.77.0 + version: 3.77.0(@opentelemetry/api@1.9.0)(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3)) + "@payloadcms/next": + specifier: ^3.77.0 + version: 3.77.0(@types/react@19.2.13)(graphql@16.12.0)(monaco-editor@0.55.1)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + "@payloadcms/richtext-lexical": + specifier: ^3.77.0 + version: 3.77.0(@faceless-ui/modal@3.0.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@faceless-ui/scroll-info@2.0.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@payloadcms/next@3.77.0(@types/react@19.2.13)(graphql@16.12.0)(monaco-editor@0.55.1)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(@types/react@19.2.13)(monaco-editor@0.55.1)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)(yjs@13.6.29) "@react-pdf/renderer": specifier: ^4.3.2 version: 4.3.2(react@19.2.4) @@ -162,7 +165,7 @@ importers: version: 10.38.0 "@sentry/nextjs": specifier: 10.38.0 - version: 10.38.0(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)(webpack@5.96.1(esbuild@0.27.3)) + version: 10.38.0(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(react@19.2.4)(webpack@5.96.1(esbuild@0.27.3)) "@types/canvas-confetti": specifier: ^1.9.0 version: 1.9.0 @@ -187,9 +190,6 @@ importers: clsx: specifier: ^2.1.1 version: 2.1.1 - contentlayer2: - specifier: ^0.5.8 - version: 0.5.8(esbuild@0.27.3)(tslib@2.8.1) crawlee: specifier: ^3.15.3 version: 3.16.0(@types/node@25.2.0)(playwright@1.58.2)(puppeteer@24.37.0(typescript@5.9.3)) @@ -199,6 +199,9 @@ importers: framer-motion: specifier: ^12.29.2 version: 12.31.2(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + graphql: + specifier: ^16.12.0 + version: 16.12.0 html-to-image: specifier: ^1.11.13 version: 1.11.13 @@ -213,16 +216,16 @@ importers: version: 11.12.2 next: specifier: ^16.1.6 - version: 16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - next-contentlayer2: - specifier: ^0.5.8 - version: 0.5.8(contentlayer2@0.5.8(esbuild@0.27.3)(tslib@2.8.1))(esbuild@0.27.3)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tslib@2.8.1) + version: 16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4) next-mdx-remote: specifier: ^6.0.0 version: 6.0.0(@types/react@19.2.13)(react@19.2.4) nodemailer: specifier: ^8.0.1 version: 8.0.1 + payload: + specifier: ^3.77.0 + version: 3.77.0(graphql@16.12.0)(typescript@5.9.3) playwright: specifier: ^1.58.1 version: 1.58.2 @@ -253,6 +256,9 @@ importers: remotion: specifier: ^4.0.414 version: 4.0.418(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + sharp: + specifier: ^0.34.5 + version: 0.34.5 shiki: specifier: ^1.24.2 version: 1.29.2 @@ -295,10 +301,10 @@ importers: version: 1.7.8 "@mintel/next-config": specifier: ^1.7.3 - version: 1.7.8(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(@swc/helpers@0.5.18)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)(webpack@5.96.1(esbuild@0.27.3)) + version: 1.7.8(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(@swc/helpers@0.5.18)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4)(typescript@5.9.3)(webpack@5.96.1(esbuild@0.27.3)) "@mintel/next-utils": specifier: ^1.7.15 - version: 1.7.15(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@swc/helpers@0.5.18)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + version: 1.7.15(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@swc/helpers@0.5.18)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4)(typescript@5.9.3) "@mintel/tsconfig": specifier: ^1.7.3 version: 1.7.8 @@ -365,6 +371,13 @@ packages: integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==, } + "@apidevtools/json-schema-ref-parser@11.9.3": + resolution: + { + integrity: sha512-60vepv88RwcJtSHrD6MjIL6Ta3SOYbgfnkHb+ppAVK+o9mXprRtulx7VlRl3lN3bbvysAfCS7WMVfhUYemB0IQ==, + } + engines: { node: ">= 16" } + "@apify/consts@2.51.0": resolution: { @@ -613,55 +626,6 @@ packages: } engines: { node: ">=v18" } - "@contentlayer2/cli@0.5.8": - resolution: - { - integrity: sha512-sPXTe24tXPpru6hE45riBj7xjVIDuTfjQXbwitwcNkm0yd0kNJaDPBA2C4U5mRFgg1a/aftlIKeVavlkBnuZQA==, - } - - "@contentlayer2/client@0.5.8": - resolution: - { - integrity: sha512-mc6uGuHI5ygO6s5KHhoFfiUN7BUUHrPUsxjU+EnGHjMo3+rcYnHd+G6cDDcf0fB21cX7NbJ57V9UlAMu5JKM0w==, - } - - "@contentlayer2/core@0.5.8": - resolution: - { - integrity: sha512-0DDlANRIceEiMhLRQ1S4nWPu2p/c6U7V469QqhtGbWcC2/kp2RAnbjhykf6cBUaXq7eeCxcQkBdg+Ns6Hn3KyQ==, - } - peerDependencies: - esbuild: ">=0.17" - markdown-wasm: 1.x - peerDependenciesMeta: - esbuild: - optional: true - markdown-wasm: - optional: true - - "@contentlayer2/source-files@0.5.8": - resolution: - { - integrity: sha512-yoKjA7D8OeMV7KcRwq2ygnyAMw8x4BLx9du8EkA1nBg0uSAjOpNIBVvNjrSuRLnm1/WdH97BwKCQF0Qf1yz5kQ==, - } - - "@contentlayer2/source-remote-files@0.5.8": - resolution: - { - integrity: sha512-sjk7QIB5NHeIM6J4/U7z7/ZUN+JENkN142tUHyQUagltlwYQ4Y9KMaa4RHmwYAfEwfTgQ6w0snPpQfINZY+MPw==, - } - - "@contentlayer2/utils@0.5.8": - resolution: - { - integrity: sha512-KCC4qp5oCASW2jtUn8o4PLaaF/w0r9675gKnBCpbcpalZzFpZrqeH25VrHOTTMZZp7EeKqoKpiz2/WWq8i66MA==, - } - peerDependencies: - "@effect-ts/otel-node": "*" - peerDependenciesMeta: - "@effect-ts/otel-node": - optional: true - "@crawlee/basic@3.16.0": resolution: { @@ -1138,6 +1102,12 @@ packages: peerDependencies: postcss: ^8.4 + "@date-fns/tz@1.2.0": + resolution: + { + integrity: sha512-LBrd7MiJZ9McsOgxqWX7AaxrDjcFVjWH/tIKJd7pnR7McaslGYOP1QmmiBXdJH/H/yLCT+rcQ7FaPBUxRGUtrg==, + } + "@directus/sdk@21.0.0": resolution: { @@ -1145,39 +1115,53 @@ packages: } engines: { node: ">=22" } - "@effect-ts/core@0.60.5": + "@dnd-kit/accessibility@3.1.1": resolution: { - integrity: sha512-qi1WrtJA90XLMnj2hnUszW9Sx4dXP03ZJtCc5DiUBIOhF4Vw7plfb65/bdBySPoC9s7zy995TdUX1XBSxUkl5w==, - } - - "@effect-ts/otel-sdk-trace-node@0.15.1": - resolution: - { - integrity: sha512-a2sF0ylmn8xOJs8fNeT/spJ1gUcsksAJCALxo9WOfuTCMtTwMVtVhCKEPEeQoL7wFqU+JgPkVdP91+FJ/Rkeow==, + integrity: sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==, } peerDependencies: - "@effect-ts/core": ^0.60.2 - "@opentelemetry/api": ^1.4.0 - "@opentelemetry/core": ^1.13.0 - "@opentelemetry/sdk-trace-base": ^1.13.0 - "@opentelemetry/sdk-trace-node": ^1.13.0 + react: ">=16.8.0" - "@effect-ts/otel@0.15.1": + "@dnd-kit/core@6.3.1": resolution: { - integrity: sha512-AmZJHl7t0+Peh7Yb2+hqn6r9+rd9/UfeA4AMV9h0YGTdOyouyFfD3wzWlxnAUzAQ4Lrod4kC7Noruret4EpqpA==, + integrity: sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==, } peerDependencies: - "@effect-ts/core": ^0.60.2 - "@opentelemetry/api": ^1.4.0 - "@opentelemetry/core": ^1.13.0 - "@opentelemetry/sdk-trace-base": ^1.13.0 + react: ">=16.8.0" + react-dom: ">=16.8.0" - "@effect-ts/system@0.57.5": + "@dnd-kit/modifiers@9.0.0": resolution: { - integrity: sha512-/crHGujo0xnuHIYNc1VgP0HGJGFSoSqq88JFXe6FmFyXPpWt8Xu39LyLg7rchsxfXFeEdA9CrIZvLV5eswXV5g==, + integrity: sha512-ybiLc66qRGuZoC20wdSSG6pDXFikui/dCNGthxv4Ndy8ylErY0N3KVxY2bgo7AWwIbxDmXDg3ylAFmnrjcbVvw==, + } + peerDependencies: + "@dnd-kit/core": ^6.3.0 + react: ">=16.8.0" + + "@dnd-kit/sortable@10.0.0": + resolution: + { + integrity: sha512-+xqhmIIzvAYMGfBYYnbKuNicfSsk4RksY2XdmJhT+HAC01nix6fHCztU68jooFiMUB01Ky3F0FyOvhG/BZrWkg==, + } + peerDependencies: + "@dnd-kit/core": ^6.3.0 + react: ">=16.8.0" + + "@dnd-kit/utilities@3.2.2": + resolution: + { + integrity: sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg==, + } + peerDependencies: + react: ">=16.8.0" + + "@drizzle-team/brocli@0.10.2": + resolution: + { + integrity: sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w==, } "@emnapi/core@1.8.1": @@ -1198,6 +1182,24 @@ packages: integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==, } + "@emotion/babel-plugin@11.13.5": + resolution: + { + integrity: sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==, + } + + "@emotion/cache@11.14.0": + resolution: + { + integrity: sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==, + } + + "@emotion/hash@0.9.2": + resolution: + { + integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==, + } + "@emotion/is-prop-valid@1.4.0": resolution: { @@ -1210,13 +1212,69 @@ packages: integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==, } - "@esbuild-plugins/node-resolve@0.2.2": + "@emotion/react@11.14.0": resolution: { - integrity: sha512-+t5FdX3ATQlb53UFDBRb4nqjYBz492bIrnVWvpQHpzZlu9BQL5HasMZhqc409ygUwOWCXZhrWr6NyZ6T6Y+cxw==, + integrity: sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==, } peerDependencies: - esbuild: "*" + "@types/react": "*" + react: ">=16.8.0" + peerDependenciesMeta: + "@types/react": + optional: true + + "@emotion/serialize@1.3.3": + resolution: + { + integrity: sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==, + } + + "@emotion/sheet@1.4.0": + resolution: + { + integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==, + } + + "@emotion/unitless@0.10.0": + resolution: + { + integrity: sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==, + } + + "@emotion/use-insertion-effect-with-fallbacks@1.2.0": + resolution: + { + integrity: sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==, + } + peerDependencies: + react: ">=16.8.0" + + "@emotion/utils@1.4.2": + resolution: + { + integrity: sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==, + } + + "@emotion/weak-memoize@0.4.0": + resolution: + { + integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==, + } + + "@esbuild-kit/core-utils@3.3.2": + resolution: + { + integrity: sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==, + } + deprecated: "Merged into tsx: https://tsx.is" + + "@esbuild-kit/esm-loader@2.6.5": + resolution: + { + integrity: sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA==, + } + deprecated: "Merged into tsx: https://tsx.is" "@esbuild/aix-ppc64@0.25.0": resolution: @@ -1227,6 +1285,15 @@ packages: cpu: [ppc64] os: [aix] + "@esbuild/aix-ppc64@0.25.12": + resolution: + { + integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==, + } + engines: { node: ">=18" } + cpu: [ppc64] + os: [aix] + "@esbuild/aix-ppc64@0.27.3": resolution: { @@ -1236,6 +1303,15 @@ packages: cpu: [ppc64] os: [aix] + "@esbuild/android-arm64@0.18.20": + resolution: + { + integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==, + } + engines: { node: ">=12" } + cpu: [arm64] + os: [android] + "@esbuild/android-arm64@0.25.0": resolution: { @@ -1245,6 +1321,15 @@ packages: cpu: [arm64] os: [android] + "@esbuild/android-arm64@0.25.12": + resolution: + { + integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==, + } + engines: { node: ">=18" } + cpu: [arm64] + os: [android] + "@esbuild/android-arm64@0.27.3": resolution: { @@ -1254,6 +1339,15 @@ packages: cpu: [arm64] os: [android] + "@esbuild/android-arm@0.18.20": + resolution: + { + integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==, + } + engines: { node: ">=12" } + cpu: [arm] + os: [android] + "@esbuild/android-arm@0.25.0": resolution: { @@ -1263,6 +1357,15 @@ packages: cpu: [arm] os: [android] + "@esbuild/android-arm@0.25.12": + resolution: + { + integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==, + } + engines: { node: ">=18" } + cpu: [arm] + os: [android] + "@esbuild/android-arm@0.27.3": resolution: { @@ -1272,6 +1375,15 @@ packages: cpu: [arm] os: [android] + "@esbuild/android-x64@0.18.20": + resolution: + { + integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [android] + "@esbuild/android-x64@0.25.0": resolution: { @@ -1281,6 +1393,15 @@ packages: cpu: [x64] os: [android] + "@esbuild/android-x64@0.25.12": + resolution: + { + integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==, + } + engines: { node: ">=18" } + cpu: [x64] + os: [android] + "@esbuild/android-x64@0.27.3": resolution: { @@ -1290,6 +1411,15 @@ packages: cpu: [x64] os: [android] + "@esbuild/darwin-arm64@0.18.20": + resolution: + { + integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==, + } + engines: { node: ">=12" } + cpu: [arm64] + os: [darwin] + "@esbuild/darwin-arm64@0.25.0": resolution: { @@ -1299,6 +1429,15 @@ packages: cpu: [arm64] os: [darwin] + "@esbuild/darwin-arm64@0.25.12": + resolution: + { + integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==, + } + engines: { node: ">=18" } + cpu: [arm64] + os: [darwin] + "@esbuild/darwin-arm64@0.27.3": resolution: { @@ -1308,6 +1447,15 @@ packages: cpu: [arm64] os: [darwin] + "@esbuild/darwin-x64@0.18.20": + resolution: + { + integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [darwin] + "@esbuild/darwin-x64@0.25.0": resolution: { @@ -1317,6 +1465,15 @@ packages: cpu: [x64] os: [darwin] + "@esbuild/darwin-x64@0.25.12": + resolution: + { + integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==, + } + engines: { node: ">=18" } + cpu: [x64] + os: [darwin] + "@esbuild/darwin-x64@0.27.3": resolution: { @@ -1326,6 +1483,15 @@ packages: cpu: [x64] os: [darwin] + "@esbuild/freebsd-arm64@0.18.20": + resolution: + { + integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==, + } + engines: { node: ">=12" } + cpu: [arm64] + os: [freebsd] + "@esbuild/freebsd-arm64@0.25.0": resolution: { @@ -1335,6 +1501,15 @@ packages: cpu: [arm64] os: [freebsd] + "@esbuild/freebsd-arm64@0.25.12": + resolution: + { + integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==, + } + engines: { node: ">=18" } + cpu: [arm64] + os: [freebsd] + "@esbuild/freebsd-arm64@0.27.3": resolution: { @@ -1344,6 +1519,15 @@ packages: cpu: [arm64] os: [freebsd] + "@esbuild/freebsd-x64@0.18.20": + resolution: + { + integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [freebsd] + "@esbuild/freebsd-x64@0.25.0": resolution: { @@ -1353,6 +1537,15 @@ packages: cpu: [x64] os: [freebsd] + "@esbuild/freebsd-x64@0.25.12": + resolution: + { + integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==, + } + engines: { node: ">=18" } + cpu: [x64] + os: [freebsd] + "@esbuild/freebsd-x64@0.27.3": resolution: { @@ -1362,6 +1555,15 @@ packages: cpu: [x64] os: [freebsd] + "@esbuild/linux-arm64@0.18.20": + resolution: + { + integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==, + } + engines: { node: ">=12" } + cpu: [arm64] + os: [linux] + "@esbuild/linux-arm64@0.25.0": resolution: { @@ -1371,6 +1573,15 @@ packages: cpu: [arm64] os: [linux] + "@esbuild/linux-arm64@0.25.12": + resolution: + { + integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==, + } + engines: { node: ">=18" } + cpu: [arm64] + os: [linux] + "@esbuild/linux-arm64@0.27.3": resolution: { @@ -1380,6 +1591,15 @@ packages: cpu: [arm64] os: [linux] + "@esbuild/linux-arm@0.18.20": + resolution: + { + integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==, + } + engines: { node: ">=12" } + cpu: [arm] + os: [linux] + "@esbuild/linux-arm@0.25.0": resolution: { @@ -1389,6 +1609,15 @@ packages: cpu: [arm] os: [linux] + "@esbuild/linux-arm@0.25.12": + resolution: + { + integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==, + } + engines: { node: ">=18" } + cpu: [arm] + os: [linux] + "@esbuild/linux-arm@0.27.3": resolution: { @@ -1398,6 +1627,15 @@ packages: cpu: [arm] os: [linux] + "@esbuild/linux-ia32@0.18.20": + resolution: + { + integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==, + } + engines: { node: ">=12" } + cpu: [ia32] + os: [linux] + "@esbuild/linux-ia32@0.25.0": resolution: { @@ -1407,6 +1645,15 @@ packages: cpu: [ia32] os: [linux] + "@esbuild/linux-ia32@0.25.12": + resolution: + { + integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==, + } + engines: { node: ">=18" } + cpu: [ia32] + os: [linux] + "@esbuild/linux-ia32@0.27.3": resolution: { @@ -1416,6 +1663,15 @@ packages: cpu: [ia32] os: [linux] + "@esbuild/linux-loong64@0.18.20": + resolution: + { + integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==, + } + engines: { node: ">=12" } + cpu: [loong64] + os: [linux] + "@esbuild/linux-loong64@0.25.0": resolution: { @@ -1425,6 +1681,15 @@ packages: cpu: [loong64] os: [linux] + "@esbuild/linux-loong64@0.25.12": + resolution: + { + integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==, + } + engines: { node: ">=18" } + cpu: [loong64] + os: [linux] + "@esbuild/linux-loong64@0.27.3": resolution: { @@ -1434,6 +1699,15 @@ packages: cpu: [loong64] os: [linux] + "@esbuild/linux-mips64el@0.18.20": + resolution: + { + integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==, + } + engines: { node: ">=12" } + cpu: [mips64el] + os: [linux] + "@esbuild/linux-mips64el@0.25.0": resolution: { @@ -1443,6 +1717,15 @@ packages: cpu: [mips64el] os: [linux] + "@esbuild/linux-mips64el@0.25.12": + resolution: + { + integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==, + } + engines: { node: ">=18" } + cpu: [mips64el] + os: [linux] + "@esbuild/linux-mips64el@0.27.3": resolution: { @@ -1452,6 +1735,15 @@ packages: cpu: [mips64el] os: [linux] + "@esbuild/linux-ppc64@0.18.20": + resolution: + { + integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==, + } + engines: { node: ">=12" } + cpu: [ppc64] + os: [linux] + "@esbuild/linux-ppc64@0.25.0": resolution: { @@ -1461,6 +1753,15 @@ packages: cpu: [ppc64] os: [linux] + "@esbuild/linux-ppc64@0.25.12": + resolution: + { + integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==, + } + engines: { node: ">=18" } + cpu: [ppc64] + os: [linux] + "@esbuild/linux-ppc64@0.27.3": resolution: { @@ -1470,6 +1771,15 @@ packages: cpu: [ppc64] os: [linux] + "@esbuild/linux-riscv64@0.18.20": + resolution: + { + integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==, + } + engines: { node: ">=12" } + cpu: [riscv64] + os: [linux] + "@esbuild/linux-riscv64@0.25.0": resolution: { @@ -1479,6 +1789,15 @@ packages: cpu: [riscv64] os: [linux] + "@esbuild/linux-riscv64@0.25.12": + resolution: + { + integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==, + } + engines: { node: ">=18" } + cpu: [riscv64] + os: [linux] + "@esbuild/linux-riscv64@0.27.3": resolution: { @@ -1488,6 +1807,15 @@ packages: cpu: [riscv64] os: [linux] + "@esbuild/linux-s390x@0.18.20": + resolution: + { + integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==, + } + engines: { node: ">=12" } + cpu: [s390x] + os: [linux] + "@esbuild/linux-s390x@0.25.0": resolution: { @@ -1497,6 +1825,15 @@ packages: cpu: [s390x] os: [linux] + "@esbuild/linux-s390x@0.25.12": + resolution: + { + integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==, + } + engines: { node: ">=18" } + cpu: [s390x] + os: [linux] + "@esbuild/linux-s390x@0.27.3": resolution: { @@ -1506,6 +1843,15 @@ packages: cpu: [s390x] os: [linux] + "@esbuild/linux-x64@0.18.20": + resolution: + { + integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [linux] + "@esbuild/linux-x64@0.25.0": resolution: { @@ -1515,6 +1861,15 @@ packages: cpu: [x64] os: [linux] + "@esbuild/linux-x64@0.25.12": + resolution: + { + integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==, + } + engines: { node: ">=18" } + cpu: [x64] + os: [linux] + "@esbuild/linux-x64@0.27.3": resolution: { @@ -1533,6 +1888,15 @@ packages: cpu: [arm64] os: [netbsd] + "@esbuild/netbsd-arm64@0.25.12": + resolution: + { + integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==, + } + engines: { node: ">=18" } + cpu: [arm64] + os: [netbsd] + "@esbuild/netbsd-arm64@0.27.3": resolution: { @@ -1542,6 +1906,15 @@ packages: cpu: [arm64] os: [netbsd] + "@esbuild/netbsd-x64@0.18.20": + resolution: + { + integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [netbsd] + "@esbuild/netbsd-x64@0.25.0": resolution: { @@ -1551,6 +1924,15 @@ packages: cpu: [x64] os: [netbsd] + "@esbuild/netbsd-x64@0.25.12": + resolution: + { + integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==, + } + engines: { node: ">=18" } + cpu: [x64] + os: [netbsd] + "@esbuild/netbsd-x64@0.27.3": resolution: { @@ -1569,6 +1951,15 @@ packages: cpu: [arm64] os: [openbsd] + "@esbuild/openbsd-arm64@0.25.12": + resolution: + { + integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==, + } + engines: { node: ">=18" } + cpu: [arm64] + os: [openbsd] + "@esbuild/openbsd-arm64@0.27.3": resolution: { @@ -1578,6 +1969,15 @@ packages: cpu: [arm64] os: [openbsd] + "@esbuild/openbsd-x64@0.18.20": + resolution: + { + integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [openbsd] + "@esbuild/openbsd-x64@0.25.0": resolution: { @@ -1587,6 +1987,15 @@ packages: cpu: [x64] os: [openbsd] + "@esbuild/openbsd-x64@0.25.12": + resolution: + { + integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==, + } + engines: { node: ">=18" } + cpu: [x64] + os: [openbsd] + "@esbuild/openbsd-x64@0.27.3": resolution: { @@ -1596,6 +2005,15 @@ packages: cpu: [x64] os: [openbsd] + "@esbuild/openharmony-arm64@0.25.12": + resolution: + { + integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==, + } + engines: { node: ">=18" } + cpu: [arm64] + os: [openharmony] + "@esbuild/openharmony-arm64@0.27.3": resolution: { @@ -1605,6 +2023,15 @@ packages: cpu: [arm64] os: [openharmony] + "@esbuild/sunos-x64@0.18.20": + resolution: + { + integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [sunos] + "@esbuild/sunos-x64@0.25.0": resolution: { @@ -1614,6 +2041,15 @@ packages: cpu: [x64] os: [sunos] + "@esbuild/sunos-x64@0.25.12": + resolution: + { + integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==, + } + engines: { node: ">=18" } + cpu: [x64] + os: [sunos] + "@esbuild/sunos-x64@0.27.3": resolution: { @@ -1623,6 +2059,15 @@ packages: cpu: [x64] os: [sunos] + "@esbuild/win32-arm64@0.18.20": + resolution: + { + integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==, + } + engines: { node: ">=12" } + cpu: [arm64] + os: [win32] + "@esbuild/win32-arm64@0.25.0": resolution: { @@ -1632,6 +2077,15 @@ packages: cpu: [arm64] os: [win32] + "@esbuild/win32-arm64@0.25.12": + resolution: + { + integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==, + } + engines: { node: ">=18" } + cpu: [arm64] + os: [win32] + "@esbuild/win32-arm64@0.27.3": resolution: { @@ -1641,6 +2095,15 @@ packages: cpu: [arm64] os: [win32] + "@esbuild/win32-ia32@0.18.20": + resolution: + { + integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==, + } + engines: { node: ">=12" } + cpu: [ia32] + os: [win32] + "@esbuild/win32-ia32@0.25.0": resolution: { @@ -1650,6 +2113,15 @@ packages: cpu: [ia32] os: [win32] + "@esbuild/win32-ia32@0.25.12": + resolution: + { + integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==, + } + engines: { node: ">=18" } + cpu: [ia32] + os: [win32] + "@esbuild/win32-ia32@0.27.3": resolution: { @@ -1659,6 +2131,15 @@ packages: cpu: [ia32] os: [win32] + "@esbuild/win32-x64@0.18.20": + resolution: + { + integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [win32] + "@esbuild/win32-x64@0.25.0": resolution: { @@ -1668,6 +2149,15 @@ packages: cpu: [x64] os: [win32] + "@esbuild/win32-x64@0.25.12": + resolution: + { + integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==, + } + engines: { node: ">=18" } + cpu: [x64] + os: [win32] + "@esbuild/win32-x64@0.27.3": resolution: { @@ -1766,10 +2256,67 @@ packages: } engines: { node: ^20.19.0 || ^22.13.0 || >=24 } - "@fal-works/esbuild-plugin-global-externals@2.1.2": + "@faceless-ui/modal@3.0.0": resolution: { - integrity: sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ==, + integrity: sha512-o3oEFsot99EQ8RJc1kL3s/nNMHX+y+WMXVzSSmca9L0l2MR6ez2QM1z1yIelJX93jqkLXQ9tW+R9tmsYa+O4Qg==, + } + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + "@faceless-ui/scroll-info@2.0.0": + resolution: + { + integrity: sha512-BkyJ9OQ4bzpKjE3UhI8BhcG36ZgfB4run8TmlaR4oMFUbl59dfyarNfjveyimrxIso9RhFEja/AJ5nQmbcR9hw==, + } + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + "@faceless-ui/window-info@3.0.1": + resolution: + { + integrity: sha512-uPjdJYE/j7hqVNelE9CRUNOeXuXDdPxR4DMe+oz3xwyZi2Y4CxsfpfdPTqqwmNAZa1P33O+ZiCyIkBEeNed0kw==, + } + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + "@floating-ui/core@1.7.4": + resolution: + { + integrity: sha512-C3HlIdsBxszvm5McXlB8PeOEWfBhcGBTZGkGlWc2U0KFY5IwG5OQEuQ8rq52DZmcHDlPLd+YFBK+cZcytwIFWg==, + } + + "@floating-ui/dom@1.7.5": + resolution: + { + integrity: sha512-N0bD2kIPInNHUHehXhMke1rBGs1dwqvC9O9KYMyyjK7iXt7GAhnro7UlcuYcGdS/yYOlq0MAVgrow8IbWJwyqg==, + } + + "@floating-ui/react-dom@2.1.7": + resolution: + { + integrity: sha512-0tLRojf/1Go2JgEVm+3Frg9A3IW8bJgKgdO0BN5RkF//ufuz2joZM63Npau2ff3J6lUVYgDSNzNkR+aH3IVfjg==, + } + peerDependencies: + react: ">=16.8.0" + react-dom: ">=16.8.0" + + "@floating-ui/react@0.27.18": + resolution: + { + integrity: sha512-xJWJxvmy3a05j643gQt+pRbht5XnTlGpsEsAPnMi5F5YTOEEJymA90uZKBD8OvIv5XvZ1qi4GcccSlqT3Bq44Q==, + } + peerDependencies: + react: ">=17.0.0" + react-dom: ">=17.0.0" + + "@floating-ui/utils@0.2.10": + resolution: + { + integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==, } "@formatjs/ecma402-abstract@2.3.6": @@ -1838,21 +2385,6 @@ packages: integrity: sha512-xwEuwQFdtSq1UKtQnyTZWC+eHdv7Uygoa+H2k/9uzBVQjDyp9r20LNDNKedWXll7FssT3GRHvqsdJGYSUWqYFA==, } - "@grpc/grpc-js@1.14.3": - resolution: - { - integrity: sha512-Iq8QQQ/7X3Sac15oB6p0FmUg/klxQvXLeileoqrTRGJYLV+/9tubbr9ipz0GKHjmXVsgFPo/+W+2cA8eNcR+XA==, - } - engines: { node: ">=12.10.0" } - - "@grpc/proto-loader@0.8.0": - resolution: - { - integrity: sha512-rc1hOQtjIWGxcxpb9aHAfLpIctjEnsDehj0DAiVfBlmT84uvR0uUtN2hEi/ecvWVjXUGf5qPF4qEgiLOx1YIMQ==, - } - engines: { node: ">=6" } - hasBin: true - "@humanfs/core@0.19.1": resolution: { @@ -2188,205 +2720,158 @@ packages: integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==, } - "@js-sdsl/ordered-map@4.4.2": + "@jsdevtools/ono@7.1.3": resolution: { - integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==, + integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==, } - "@js-temporal/polyfill@0.4.4": - 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/base64@17.67.0": - resolution: - { - integrity: sha512-5SEsJGsm15aP8TQGkDfJvz9axgPwAEm98S5DxOuYe8e1EbfajcDmgeXXzccEjh+mLnjqEKrkBdjHWS5vFNwDdw==, - } - engines: { node: ">=10.0" } - peerDependencies: - tslib: "2" - - "@jsonjoy.com/buffers@1.2.1": - resolution: - { - integrity: sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==, - } - engines: { node: ">=10.0" } - peerDependencies: - tslib: "2" - - "@jsonjoy.com/buffers@17.67.0": - resolution: - { - integrity: sha512-tfExRpYxBvi32vPs9ZHaTjSP4fHAfzSmcahOfNxtvGHcyJel+aibkPlGeBB+7AoC6hL7lXIE++8okecBxx7lcw==, - } - engines: { node: ">=10.0" } - peerDependencies: - tslib: "2" - - "@jsonjoy.com/codegen@1.0.0": - resolution: - { - integrity: sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==, - } - engines: { node: ">=10.0" } - peerDependencies: - tslib: "2" - - "@jsonjoy.com/codegen@17.67.0": - resolution: - { - integrity: sha512-idnkUplROpdBOV0HMcwhsCUS5TRUi9poagdGs70A6S4ux9+/aPuKbh8+UYRTLYQHtXvAdNfQWXDqZEx5k4Dj2Q==, - } - engines: { node: ">=10.0" } - peerDependencies: - tslib: "2" - - "@jsonjoy.com/fs-core@4.56.10": - resolution: - { - integrity: sha512-PyAEA/3cnHhsGcdY+AmIU+ZPqTuZkDhCXQ2wkXypdLitSpd6d5Ivxhnq4wa2ETRWFVJGabYynBWxIijOswSmOw==, - } - engines: { node: ">=10.0" } - peerDependencies: - tslib: "2" - - "@jsonjoy.com/fs-fsa@4.56.10": - resolution: - { - integrity: sha512-/FVK63ysNzTPOnCCcPoPHt77TOmachdMS422txM4KhxddLdbW1fIbFMYH0AM0ow/YchCyS5gqEjKLNyv71j/5Q==, - } - engines: { node: ">=10.0" } - peerDependencies: - tslib: "2" - - "@jsonjoy.com/fs-node-builtins@4.56.10": - resolution: - { - integrity: sha512-uUnKz8R0YJyKq5jXpZtkGV9U0pJDt8hmYcLRrPjROheIfjMXsz82kXMgAA/qNg0wrZ1Kv+hrg7azqEZx6XZCVw==, - } - engines: { node: ">=10.0" } - peerDependencies: - tslib: "2" - - "@jsonjoy.com/fs-node-to-fsa@4.56.10": - resolution: - { - integrity: sha512-oH+O6Y4lhn9NyG6aEoFwIBNKZeYy66toP5LJcDOMBgL99BKQMUf/zWJspdRhMdn/3hbzQsZ8EHHsuekbFLGUWw==, - } - engines: { node: ">=10.0" } - peerDependencies: - tslib: "2" - - "@jsonjoy.com/fs-node-utils@4.56.10": - resolution: - { - integrity: sha512-8EuPBgVI2aDPwFdaNQeNpHsyqPi3rr+85tMNG/lHvQLiVjzoZsvxA//Xd8aB567LUhy4QS03ptT+unkD/DIsNg==, - } - engines: { node: ">=10.0" } - peerDependencies: - tslib: "2" - - "@jsonjoy.com/fs-node@4.56.10": - resolution: - { - integrity: sha512-7R4Gv3tkUdW3dXfXiOkqxkElxKNVdd8BDOWC0/dbERd0pXpPY+s2s1Mino+aTvkGrFPiY+mmVxA7zhskm4Ue4Q==, - } - engines: { node: ">=10.0" } - peerDependencies: - tslib: "2" - - "@jsonjoy.com/fs-print@4.56.10": - resolution: - { - integrity: sha512-JW4fp5mAYepzFsSGrQ48ep8FXxpg4niFWHdF78wDrFGof7F3tKDJln72QFDEn/27M1yHd4v7sKHHVPh78aWcEw==, - } - engines: { node: ">=10.0" } - peerDependencies: - tslib: "2" - - "@jsonjoy.com/fs-snapshot@4.56.10": - resolution: - { - integrity: sha512-DkR6l5fj7+qj0+fVKm/OOXMGfDFCGXLfyHkORH3DF8hxkpDgIHbhf/DwncBMs2igu/ST7OEkexn1gIqoU6Y+9g==, - } - engines: { node: ">=10.0" } - peerDependencies: - tslib: "2" - - "@jsonjoy.com/json-pack@1.21.0": - resolution: - { - integrity: sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg==, - } - engines: { node: ">=10.0" } - peerDependencies: - tslib: "2" - - "@jsonjoy.com/json-pack@17.67.0": - resolution: - { - integrity: sha512-t0ejURcGaZsn1ClbJ/3kFqSOjlryd92eQY465IYrezsXmPcfHPE/av4twRSxf6WE+TkZgLY+71vCZbiIiFKA/w==, - } - engines: { node: ">=10.0" } - peerDependencies: - tslib: "2" - - "@jsonjoy.com/json-pointer@1.0.2": - resolution: - { - integrity: sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==, - } - engines: { node: ">=10.0" } - peerDependencies: - tslib: "2" - - "@jsonjoy.com/json-pointer@17.67.0": - resolution: - { - integrity: sha512-+iqOFInH+QZGmSuaybBUNdh7yvNrXvqR+h3wjXm0N/3JK1EyyFAeGJvqnmQL61d1ARLlk/wJdFKSL+LHJ1eaUA==, - } - engines: { node: ">=10.0" } - peerDependencies: - tslib: "2" - - "@jsonjoy.com/util@1.9.0": - resolution: - { - integrity: sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==, - } - engines: { node: ">=10.0" } - peerDependencies: - tslib: "2" - - "@jsonjoy.com/util@17.67.0": - resolution: - { - integrity: sha512-6+8xBaz1rLSohlGh68D1pdw3AwDi9xydm8QNlAFkvnavCJYSze+pxoW2VKP8p308jtlMRLs5NTHfPlZLd4w7ew==, - } - engines: { node: ">=10.0" } - peerDependencies: - tslib: "2" - "@keyv/serialize@1.1.1": resolution: { integrity: sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==, } + "@lexical/clipboard@0.35.0": + resolution: + { + integrity: sha512-ko7xSIIiayvDiqjNDX6fgH9RlcM6r9vrrvJYTcfGVBor5httx16lhIi0QJZ4+RNPvGtTjyFv4bwRmsixRRwImg==, + } + + "@lexical/code@0.35.0": + resolution: + { + integrity: sha512-ox4DZwETQ9IA7+DS6PN8RJNwSAF7RMjL7YTVODIqFZ5tUFIf+5xoCHbz7Fll0Bvixlp12hVH90xnLwTLRGpkKw==, + } + + "@lexical/devtools-core@0.35.0": + resolution: + { + integrity: sha512-C2wwtsMCR6ZTfO0TqpSM17RLJWyfHmifAfCTjFtOJu15p3M6NO/nHYK5Mt7YMQteuS89mOjB4ng8iwoLEZ6QpQ==, + } + peerDependencies: + react: ">=17.x" + react-dom: ">=17.x" + + "@lexical/dragon@0.35.0": + resolution: + { + integrity: sha512-SL6mT5pcqrt6hEbJ16vWxip5+r3uvMd0bQV5UUxuk+cxIeuP86iTgRh0HFR7SM2dRTYovL6/tM/O+8QLAUGTIg==, + } + + "@lexical/hashtag@0.35.0": + resolution: + { + integrity: sha512-LYJWzXuO2ZjKsvQwrLkNZiS2TsjwYkKjlDgtugzejquTBQ/o/nfSn/MmVx6EkYLOYizaJemmZbz3IBh+u732FA==, + } + + "@lexical/headless@0.35.0": + resolution: + { + integrity: sha512-UPmCqOsdGGC7/8Fkae2ADkTQfxTZOKxNEVKuqPfCkFs4Bag3s4z3V61jE+wYzqyU8eJh4DqZYSHoPzZCj8P9jg==, + } + + "@lexical/history@0.35.0": + resolution: + { + integrity: sha512-onjDRLLxGbCfHexSxxrQaDaieIHyV28zCDrbxR5dxTfW8F8PxjuNyuaG0z6o468AXYECmclxkP+P4aT6poHEpQ==, + } + + "@lexical/html@0.35.0": + resolution: + { + integrity: sha512-rXGFE5S5rKsg3tVnr1s4iEgOfCApNXGpIFI3T2jGEShaCZ5HLaBY9NVBXnE9Nb49e9bkDkpZ8FZd1qokCbQXbw==, + } + + "@lexical/link@0.35.0": + resolution: + { + integrity: sha512-+0Wx6cBwO8TfdMzpkYFacsmgFh8X1rkiYbq3xoLvk3qV8upYxaMzK1s8Q1cpKmWyI0aZrU6z7fiK4vUqB7+69w==, + } + + "@lexical/list@0.35.0": + resolution: + { + integrity: sha512-owsmc8iwgExBX8sFe8fKTiwJVhYULt9hD1RZ/HwfaiEtRZZkINijqReOBnW2mJfRxBzhFSWc4NG3ISB+fHYzqw==, + } + + "@lexical/mark@0.35.0": + resolution: + { + integrity: sha512-W0hwMTAVeexvpk9/+J6n1G/sNkpI/Meq1yeDazahFLLAwXLHtvhIAq2P/klgFknDy1hr8X7rcsQuN/bqKcKHYg==, + } + + "@lexical/markdown@0.35.0": + resolution: + { + integrity: sha512-BlNyXZAt4gWidMw0SRWrhBETY1BpPglFBZI7yzfqukFqgXRh7HUQA28OYeI/nsx9pgNob8TiUduUwShqqvOdEA==, + } + + "@lexical/offset@0.35.0": + resolution: + { + integrity: sha512-DRE4Df6qYf2XiV6foh6KpGNmGAv2ANqt3oVXpyS6W8hTx3+cUuAA1APhCZmLNuU107um4zmHym7taCu6uXW5Yg==, + } + + "@lexical/overflow@0.35.0": + resolution: + { + integrity: sha512-B25YvnJQTGlZcrNv7b0PJBLWq3tl8sql497OHfYYLem7EOMPKKDGJScJAKM/91D4H/mMAsx5gnA/XgKobriuTg==, + } + + "@lexical/plain-text@0.35.0": + resolution: + { + integrity: sha512-lwBCUNMJf7Gujp2syVWMpKRahfbTv5Wq+H3HK1Q1gKH1P2IytPRxssCHvexw9iGwprSyghkKBlbF3fGpEdIJvQ==, + } + + "@lexical/react@0.35.0": + resolution: + { + integrity: sha512-uYAZSqumH8tRymMef+A0f2hQvMwplKK9DXamcefnk3vSNDHHqRWQXpiUo6kD+rKWuQmMbVa5RW4xRQebXEW+1A==, + } + peerDependencies: + react: ">=17.x" + react-dom: ">=17.x" + + "@lexical/rich-text@0.35.0": + resolution: + { + integrity: sha512-qEHu8g7vOEzz9GUz1VIUxZBndZRJPh9iJUFI+qTDHj+tQqnd5LCs+G9yz6jgNfiuWWpezTp0i1Vz/udNEuDPKQ==, + } + + "@lexical/selection@0.35.0": + resolution: + { + integrity: sha512-mMtDE7Q0nycXdFTTH/+ta6EBrBwxBB4Tg8QwsGntzQ1Cq//d838dpXpFjJOqHEeVHUqXpiuj+cBG8+bvz/rPRw==, + } + + "@lexical/table@0.35.0": + resolution: + { + integrity: sha512-9jlTlkVideBKwsEnEkqkdg7A3mije1SvmfiqoYnkl1kKJCLA5iH90ywx327PU0p+bdnURAytWUeZPXaEuEl2OA==, + } + + "@lexical/text@0.35.0": + resolution: + { + integrity: sha512-uaMh46BkysV8hK8wQwp5g/ByZW+2hPDt8ahAErxtf8NuzQem1FHG/f5RTchmFqqUDVHO3qLNTv4AehEGmXv8MA==, + } + + "@lexical/utils@0.35.0": + resolution: + { + integrity: sha512-2H393EYDnFznYCDFOW3MHiRzwEO5M/UBhtUjvTT+9kc+qhX4U3zc8ixQalo5UmZ5B2nh7L/inXdTFzvSRXtsRA==, + } + + "@lexical/yjs@0.35.0": + resolution: + { + integrity: sha512-3DSP7QpmTGYU9bN/yljP0PIao4tNIQtsR4ycauWNSawxs/GQCZtSmAPcLRnCm6qpqsDDjUtKjO/1Ej8FRp0m0w==, + } + peerDependencies: + yjs: ">=13.5.22" + "@lhci/cli@0.15.1": resolution: { @@ -2400,14 +2885,6 @@ packages: integrity: sha512-WclJnUQJeOMY271JSuaOjCv/aA0pgvuHZS29NFNdIeI14id8eiFsjith85EGKYhljgoQhJ2SiW4PsVfFiakNNw==, } - "@mdx-js/esbuild@3.1.1": - resolution: - { - integrity: sha512-NS35VhTdvKNj5/B1JSD5W3kN1R0WDHgk+zCWq+tSChQw5L2Bgeiz7yyZPFrc5LWuPVOxE1xMbJr82bO9VVzmfQ==, - } - peerDependencies: - esbuild: ">=0.14.0" - "@mdx-js/loader@3.1.1": resolution: { @@ -2498,12 +2975,34 @@ packages: integrity: sha512-TYOPGk6/79nK4kYPoxRB8d35s0acQUsR97Dr5IaayMBLwVgHD5qUADsxh6eXGOabEDjgDzfgtsir90V/JbOYUg==, } + "@monaco-editor/loader@1.7.0": + resolution: + { + integrity: sha512-gIwR1HrJrrx+vfyOhYmCZ0/JcWqG5kbfG7+d3f/C1LXk2EvzAbHSg3MQ5lO2sMlo9izoAZ04shohfKLVT6crVA==, + } + + "@monaco-editor/react@4.7.0": + resolution: + { + integrity: sha512-cyzXQCtO47ydzxpQtCGSQGOC8Gk3ZUeBXFAxD+CWXYFo5OqZyZUonFl0DwUlTyAfRHntBfw2p3w4s9R6oe1eCA==, + } + peerDependencies: + monaco-editor: ">= 0.25.0 < 1" + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + "@napi-rs/wasm-runtime@0.2.12": resolution: { integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==, } + "@next/env@15.5.12": + resolution: + { + integrity: sha512-pUvdJN1on574wQHjaBfNGDt9Mz5utDSZFsIIQkMzPgNS8ZvT4H2mwOrOIClwsQOb6EGx5M76/CZr6G8i6pSpLg==, + } + "@next/env@16.1.6": resolution: { @@ -2653,13 +3152,6 @@ packages: } engines: { node: ">=8.0.0" } - "@opentelemetry/api-logs@0.57.2": - resolution: - { - integrity: sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==, - } - engines: { node: ">=14" } - "@opentelemetry/api@1.9.0": resolution: { @@ -2667,15 +3159,6 @@ packages: } engines: { node: ">=8.0.0" } - "@opentelemetry/context-async-hooks@1.30.1": - resolution: - { - integrity: sha512-s5vvxXPVdjqS3kTLKMeBMvop9hbWkwzBpu+mUO2M7sZtlkyDJGwFe33wRKnbaYDo8ExRVBIIdwIGrqpxHuKttA==, - } - engines: { node: ">=14" } - peerDependencies: - "@opentelemetry/api": ">=1.0.0 <1.10.0" - "@opentelemetry/context-async-hooks@2.5.0": resolution: { @@ -2685,15 +3168,6 @@ packages: peerDependencies: "@opentelemetry/api": ">=1.0.0 <1.10.0" - "@opentelemetry/core@1.30.1": - resolution: - { - integrity: sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==, - } - engines: { node: ">=14" } - peerDependencies: - "@opentelemetry/api": ">=1.0.0 <1.10.0" - "@opentelemetry/core@2.5.0": resolution: { @@ -2703,15 +3177,6 @@ packages: peerDependencies: "@opentelemetry/api": ">=1.0.0 <1.10.0" - "@opentelemetry/exporter-trace-otlp-grpc@0.57.2": - resolution: - { - integrity: sha512-gHU1vA3JnHbNxEXg5iysqCWxN9j83d7/epTYBZflqQnTyCC4N7yZXn/dMM+bEmyhQPGjhCkNZLx4vZuChH1PYw==, - } - engines: { node: ">=14" } - peerDependencies: - "@opentelemetry/api": ^1.3.0 - "@opentelemetry/instrumentation-amqplib@0.58.0": resolution: { @@ -2928,51 +3393,6 @@ packages: peerDependencies: "@opentelemetry/api": ^1.3.0 - "@opentelemetry/otlp-exporter-base@0.57.2": - resolution: - { - integrity: sha512-XdxEzL23Urhidyebg5E6jZoaiW5ygP/mRjxLHixogbqwDy2Faduzb5N0o/Oi+XTIJu+iyxXdVORjXax+Qgfxag==, - } - engines: { node: ">=14" } - peerDependencies: - "@opentelemetry/api": ^1.3.0 - - "@opentelemetry/otlp-grpc-exporter-base@0.57.2": - resolution: - { - integrity: sha512-USn173KTWy0saqqRB5yU9xUZ2xdgb1Rdu5IosJnm9aV4hMTuFFRTUsQxbgc24QxpCHeoKzzCSnS/JzdV0oM2iQ==, - } - engines: { node: ">=14" } - peerDependencies: - "@opentelemetry/api": ^1.3.0 - - "@opentelemetry/otlp-transformer@0.57.2": - resolution: - { - integrity: sha512-48IIRj49gbQVK52jYsw70+Jv+JbahT8BqT2Th7C4H7RCM9d0gZ5sgNPoMpWldmfjvIsSgiGJtjfk9MeZvjhoig==, - } - engines: { node: ">=14" } - peerDependencies: - "@opentelemetry/api": ^1.3.0 - - "@opentelemetry/propagator-b3@1.30.1": - resolution: - { - integrity: sha512-oATwWWDIJzybAZ4pO76ATN5N6FFbOA1otibAVlS8v90B4S1wClnhRUk7K+2CHAwN1JKYuj4jh/lpCEG5BAqFuQ==, - } - engines: { node: ">=14" } - peerDependencies: - "@opentelemetry/api": ">=1.0.0 <1.10.0" - - "@opentelemetry/propagator-jaeger@1.30.1": - resolution: - { - integrity: sha512-Pj/BfnYEKIOImirH76M4hDaBSx6HyZ2CXUqk+Kj02m6BB80c/yo4BdWkn/1gDFfU+YPY+bPR2U0DKBfdxCKwmg==, - } - engines: { node: ">=14" } - peerDependencies: - "@opentelemetry/api": ">=1.0.0 <1.10.0" - "@opentelemetry/redis-common@0.38.2": resolution: { @@ -2980,15 +3400,6 @@ packages: } engines: { node: ^18.19.0 || >=20.6.0 } - "@opentelemetry/resources@1.30.1": - resolution: - { - integrity: sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA==, - } - engines: { node: ">=14" } - peerDependencies: - "@opentelemetry/api": ">=1.0.0 <1.10.0" - "@opentelemetry/resources@2.5.0": resolution: { @@ -2998,33 +3409,6 @@ packages: peerDependencies: "@opentelemetry/api": ">=1.3.0 <1.10.0" - "@opentelemetry/sdk-logs@0.57.2": - resolution: - { - integrity: sha512-TXFHJ5c+BKggWbdEQ/inpgIzEmS2BGQowLE9UhsMd7YYlUfBQJ4uax0VF/B5NYigdM/75OoJGhAV3upEhK+3gg==, - } - engines: { node: ">=14" } - peerDependencies: - "@opentelemetry/api": ">=1.4.0 <1.10.0" - - "@opentelemetry/sdk-metrics@1.30.1": - resolution: - { - integrity: sha512-q9zcZ0Okl8jRgmy7eNW3Ku1XSgg3sDLa5evHZpCwjspw7E8Is4K/haRPDJrBcX3YSn/Y7gUvFnByNYEKQNbNog==, - } - engines: { node: ">=14" } - peerDependencies: - "@opentelemetry/api": ">=1.3.0 <1.10.0" - - "@opentelemetry/sdk-trace-base@1.30.1": - resolution: - { - integrity: sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg==, - } - engines: { node: ">=14" } - peerDependencies: - "@opentelemetry/api": ">=1.0.0 <1.10.0" - "@opentelemetry/sdk-trace-base@2.5.0": resolution: { @@ -3034,22 +3418,6 @@ packages: peerDependencies: "@opentelemetry/api": ">=1.3.0 <1.10.0" - "@opentelemetry/sdk-trace-node@1.30.1": - resolution: - { - integrity: sha512-cBjYOINt1JxXdpw1e5MlHmFRc5fgj4GW/86vsKFxJCJ8AL4PdVtYH41gWwl4qd4uQjqEL1oJVrXkSy5cnduAnQ==, - } - engines: { node: ">=14" } - peerDependencies: - "@opentelemetry/api": ">=1.0.0 <1.10.0" - - "@opentelemetry/semantic-conventions@1.28.0": - resolution: - { - integrity: sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==, - } - engines: { node: ">=14" } - "@opentelemetry/semantic-conventions@1.39.0": resolution: { @@ -3196,6 +3564,81 @@ packages: integrity: sha512-PUl/vlfo08Oj804VI5nDPeSk9vyslnBlVzDDwFt8SUVxY8+KdGMkra/vrXjEEHe8gb7+RqVTfOIlGw0nyrEelA==, } + "@payloadcms/db-postgres@3.77.0": + resolution: + { + integrity: sha512-/UO5fWMrIZZ5FSlQsDu39I8GYMPcEFUUqQ7qdixJj1iqJPlikNW9vETJy5WNhBHEDYriGYO6KogFjOqbTHuizw==, + } + peerDependencies: + payload: 3.77.0 + + "@payloadcms/drizzle@3.77.0": + resolution: + { + integrity: sha512-GhcTK7Hp6alDUukCI4C10xX646+9A+24iSnoefIFIWo7F8cApax5ITuUqcYtNTbP2q9Kpu8uFTJ7uddSlEnw3w==, + } + peerDependencies: + payload: 3.77.0 + + "@payloadcms/graphql@3.77.0": + resolution: + { + integrity: sha512-OcJxsf16u38mvgWLawGrGoN4pFlu34vE6gANYAL1TYapiHgO7NerVwMrg3GQHlriSlaI/K9naLbhXdLp8R/nYw==, + } + hasBin: true + peerDependencies: + graphql: ^16.8.1 + payload: 3.77.0 + + "@payloadcms/next@3.77.0": + resolution: + { + integrity: sha512-6MvRjNdjMTJYoulNXT2XJJbFvzMKT7m1NV7c+l8rMqRc8HeIdi2zSGXuNdFAOFp03cgG5q9U+lrrgh4tll/pjA==, + } + engines: { node: ^18.20.2 || >=20.9.0 } + peerDependencies: + graphql: ^16.8.1 + next: ">=15.2.9 <15.3.0 || >=15.3.9 <15.4.0 || >=15.4.11 <15.5.0 || >=16.2.0-canary.10 <17.0.0" + payload: 3.77.0 + + "@payloadcms/richtext-lexical@3.77.0": + resolution: + { + integrity: sha512-hDTAHMRvuEzI1csL4tCw4HK2r7ybYsoQH9enhPXFehfL2uOHIYManqwuBPLxmCpIM7/ia/cF8RXUODvHF+pAgA==, + } + engines: { node: ^18.20.2 || >=20.9.0 } + peerDependencies: + "@faceless-ui/modal": 3.0.0 + "@faceless-ui/scroll-info": 2.0.0 + "@payloadcms/next": 3.77.0 + payload: 3.77.0 + react: ^19.0.1 || ^19.1.2 || ^19.2.1 + react-dom: ^19.0.1 || ^19.1.2 || ^19.2.1 + + "@payloadcms/translations@3.77.0": + resolution: + { + integrity: sha512-vDlliIsB7JJqBKuL/YKnzSPfrgfkROudVohJQcP5wBCJBIAtcPqBAKmGlGf4nfUwexN7brixmg2uV2L1B0DKrQ==, + } + + "@payloadcms/ui@3.77.0": + resolution: + { + integrity: sha512-CCgsehZEyLgS9Njb1NT78ERIW2lC0VEtITaFIa7MBtzGBQ0Uzmk0T7ycE8qbdqz280gNJsPTIocQ9rc237Yy1w==, + } + engines: { node: ^18.20.2 || >=20.9.0 } + peerDependencies: + next: ">=15.2.9 <15.3.0 || >=15.3.9 <15.4.0 || >=15.4.11 <15.5.0 || >=16.2.0-canary.10 <17.0.0" + payload: 3.77.0 + react: ^19.0.1 || ^19.1.2 || ^19.2.1 + react-dom: ^19.0.1 || ^19.1.2 || ^19.2.1 + + "@pinojs/redact@0.4.0": + resolution: + { + integrity: sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==, + } + "@pkgjs/parseargs@0.11.0": resolution: { @@ -3211,66 +3654,6 @@ packages: peerDependencies: "@opentelemetry/api": ^1.8 - "@protobufjs/aspromise@1.1.2": - resolution: - { - integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==, - } - - "@protobufjs/base64@1.1.2": - resolution: - { - integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==, - } - - "@protobufjs/codegen@2.0.4": - resolution: - { - integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==, - } - - "@protobufjs/eventemitter@1.1.0": - resolution: - { - integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==, - } - - "@protobufjs/fetch@1.1.0": - resolution: - { - integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==, - } - - "@protobufjs/float@1.0.2": - resolution: - { - integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==, - } - - "@protobufjs/inquire@1.1.0": - resolution: - { - integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==, - } - - "@protobufjs/path@1.1.2": - resolution: - { - integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==, - } - - "@protobufjs/pool@1.1.0": - resolution: - { - integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==, - } - - "@protobufjs/utf8@1.1.0": - resolution: - { - integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==, - } - "@puppeteer/browsers@2.12.0": resolution: { @@ -4502,6 +4885,18 @@ packages: integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==, } + "@types/acorn@4.0.6": + resolution: + { + integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==, + } + + "@types/busboy@1.5.4": + resolution: + { + integrity: sha512-kG7WrUuAKK0NoyxfQHsVE6j1m01s6kMma64E+OZenQABMQyTJop1DumUWcLwAQ2JzpefU7PDYoRDKl8uZosFjw==, + } + "@types/canvas-confetti@1.9.0": resolution: { @@ -4796,6 +5191,12 @@ packages: integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==, } + "@types/lodash@4.17.23": + resolution: + { + integrity: sha512-RDvF6wTulMPjrNdCoYRC8gNR880JNGT8uB+REUpC2Ns4pRqQJhGz90wh7rgdXDPpCczF3VGktDuFGVnz8zP7HA==, + } + "@types/mdast@4.0.4": resolution: { @@ -4832,12 +5233,24 @@ packages: integrity: sha512-tP+9WggTFN22Zxh0XFyst7239H0qwiRCogsk7v9aQS79sYAJY+WEbTHbNYcxUMaalHKmsNpxmoTe35hBEMMd6g==, } + "@types/parse-json@4.0.2": + resolution: + { + integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==, + } + "@types/pg-pool@2.0.7": resolution: { integrity: sha512-U4CwmGVQcbEuqpyju8/ptOKg6gEC+Tqsvj2xS9o1g71bUh8twxnC6ZL5rZKCsGN0iyH0CwgUyc9VR5owNQF9Ng==, } + "@types/pg@8.10.2": + resolution: + { + integrity: sha512-MKFs9P6nJ+LAeHLU3V0cODEOgyThJ3OAnmOlsZsxux6sfQs3HRXR5bBn7xG5DjckEFhTAxsXi7k7cd0pCMxpJw==, + } + "@types/pg@8.15.6": resolution: { @@ -4864,18 +5277,20 @@ packages: peerDependencies: "@types/react": ^19.2.0 + "@types/react-transition-group@4.4.12": + resolution: + { + integrity: sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==, + } + peerDependencies: + "@types/react": "*" + "@types/react@19.2.13": resolution: { integrity: sha512-KkiJeU6VbYbUOp5ITMIc7kBfqlYkKA5KhEHVrGMmUUMt7NeaZg65ojdPk+FtNrBAOXNVM5QM72jnADjM+XVRAQ==, } - "@types/resolve@1.20.6": - resolution: - { - integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==, - } - "@types/sax@1.2.7": resolution: { @@ -4918,6 +5333,12 @@ packages: integrity: sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==, } + "@types/uuid@10.0.0": + resolution: + { + integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==, + } + "@types/yauzl@2.10.3": resolution: { @@ -5328,6 +5749,14 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + acorn@8.12.1: + resolution: + { + integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==, + } + engines: { node: ">=0.4.0" } + hasBin: true + acorn@8.15.0: resolution: { @@ -5551,12 +5980,6 @@ packages: } engines: { node: ">= 0.4" } - array-timsort@1.0.3: - resolution: - { - integrity: sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==, - } - array.prototype.findlast@1.2.5: resolution: { @@ -5639,6 +6062,13 @@ packages: integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, } + atomic-sleep@1.0.0: + resolution: + { + integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==, + } + engines: { node: ">=8.0.0" } + autoprefixer@10.4.20: resolution: { @@ -5697,6 +6127,13 @@ packages: react-native-b4a: optional: true + babel-plugin-macros@3.1.0: + resolution: + { + integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==, + } + engines: { node: ">=10", npm: ">=6" } + bail@2.0.2: resolution: { @@ -5824,6 +6261,12 @@ packages: } engines: { node: ">= 0.8", npm: 1.2.8000 || >= 1.4.16 } + body-scroll-lock@4.0.0-beta.0: + resolution: + { + integrity: sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ==, + } + boolbase@1.0.0: resolution: { @@ -5869,6 +6312,12 @@ packages: engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } hasBin: true + bson-objectid@2.0.4: + resolution: + { + integrity: sha512-vgnKAUzcDoa+AeyYwXCoHyF2q6u/8H46dxu5JN+4/TZeq/Dlinn0K6GvxsCLb3LHUJl0m/TLiEK31kUwtgocMQ==, + } + buffer-crc32@0.2.13: resolution: { @@ -5887,6 +6336,13 @@ packages: integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==, } + busboy@1.6.0: + resolution: + { + integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==, + } + engines: { node: ">=10.16.0" } + byte-counter@0.1.0: resolution: { @@ -5950,12 +6406,6 @@ packages: } engines: { node: ">=12.20" } - camel-case@4.1.2: - resolution: - { - integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==, - } - camelcase-css@2.0.1: resolution: { @@ -6058,6 +6508,12 @@ packages: integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==, } + charenc@0.0.2: + resolution: + { + integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==, + } + cheerio-select@2.1.0: resolution: { @@ -6128,6 +6584,13 @@ packages: peerDependencies: devtools-protocol: "*" + ci-info@4.4.0: + resolution: + { + integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==, + } + engines: { node: ">=8" } + cjs-module-lexer@2.2.0: resolution: { @@ -6201,14 +6664,6 @@ packages: integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==, } - clipanion@3.2.1: - resolution: - { - integrity: sha512-dYFdjLb7y1ajfxQopN05mylEpK9ZX0sO1/RfMXdfmwjlIsPkbh4p7A682x++zFPLDCo1x3p82dtljHf5cW2LKA==, - } - peerDependencies: - typanion: "*" - cliui@6.0.0: resolution: { @@ -6347,13 +6802,6 @@ packages: } engines: { node: ">= 12" } - comment-json@4.5.1: - resolution: - { - integrity: sha512-taEtr3ozUmOB7it68Jll7s0Pwm+aoiHyXKrEC8SEodL4rNpdfDLqa7PfBlrgFoCNNdR8ImL+muti5IGvktJAAg==, - } - engines: { node: ">= 6" } - commondir@1.0.1: resolution: { @@ -6407,6 +6855,12 @@ packages: } engines: { node: ">=8" } + console-table-printer@2.12.1: + resolution: + { + integrity: sha512-wKGOQRRvdnd89pCeH96e2Fn4wkbenSP6LMHfjfyNLMbGuHEFbMqQNuxXqd0oXG9caIOQ1FTvc5Uijp9/4jujnQ==, + } + content-disposition@0.5.4: resolution: { @@ -6421,14 +6875,6 @@ packages: } engines: { node: ">= 0.6" } - contentlayer2@0.5.8: - resolution: - { - integrity: sha512-GlyhZdJALMyTRuxquE2AQ47kELupZKz4BIEpZeN/NiNV+3MmE61LW1bF7gpCZ+cIrKkSaDNTKbeLvEtsefslqA==, - } - engines: { node: ">=18" } - hasBin: true - conventional-changelog-conventionalcommits@9.1.0: resolution: { @@ -6444,6 +6890,12 @@ packages: engines: { node: ">=18" } hasBin: true + convert-source-map@1.9.0: + resolution: + { + integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==, + } + convert-source-map@2.0.0: resolution: { @@ -6463,12 +6915,6 @@ packages: } engines: { node: ">= 0.6" } - core-util-is@1.0.3: - resolution: - { - integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==, - } - cose-base@1.0.3: resolution: { @@ -6481,6 +6927,13 @@ packages: integrity: sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==, } + cosmiconfig@7.1.0: + resolution: + { + integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==, + } + engines: { node: ">=10" } + cosmiconfig@8.3.6: resolution: { @@ -6524,6 +6977,13 @@ packages: puppeteer: optional: true + croner@9.1.0: + resolution: + { + integrity: sha512-p9nwwR4qyT5W996vBZhdvBCnMhicY5ytZkR4D1Xj0wuTDEiMnjwR57Q3RXYY/s0EpX6Ay3vgIcfaR+ewGHsi+g==, + } + engines: { node: ">=18.0" } + cross-spawn@7.0.6: resolution: { @@ -6531,6 +6991,12 @@ packages: } engines: { node: ">= 8" } + crypt@0.0.2: + resolution: + { + integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==, + } + crypto-js@4.2.0: resolution: { @@ -6651,6 +7117,12 @@ packages: engines: { node: ">=4" } hasBin: true + cssfilter@0.0.10: + resolution: + { + integrity: sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==, + } + cssom@0.5.0: resolution: { @@ -6664,6 +7136,12 @@ packages: } engines: { node: ">=18" } + csstype@3.1.3: + resolution: + { + integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==, + } + csstype@3.2.3: resolution: { @@ -6990,6 +7468,30 @@ packages: } engines: { node: ">= 0.4" } + dataloader@2.2.3: + resolution: + { + integrity: sha512-y2krtASINtPFS1rSDjacrFgn1dcUuoREVabwlOGOe4SdxenREqwjwjElAdwvbGM7kgZz9a3KVicWR7vcz8rnzA==, + } + + date-fns@3.6.0: + resolution: + { + integrity: sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==, + } + + date-fns@4.1.0: + resolution: + { + integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==, + } + + dateformat@4.6.3: + resolution: + { + integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==, + } + dayjs@1.11.19: resolution: { @@ -7206,6 +7708,12 @@ packages: } engines: { node: ">=0.10.0" } + dom-helpers@5.2.1: + resolution: + { + integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==, + } + dom-serializer@2.0.0: resolution: { @@ -7225,6 +7733,12 @@ packages: } engines: { node: ">= 4" } + dompurify@3.2.7: + resolution: + { + integrity: sha512-WhL/YuveyGXJaerVlMYGWhvQswa7myDG17P7Vu65EWC05o8vfeNbvNf4d/BOvH99+ZW+LlQsc1GDKMa1vNK6dw==, + } + dompurify@3.3.1: resolution: { @@ -7272,6 +7786,108 @@ packages: } engines: { node: ">=10" } + drizzle-kit@0.31.7: + resolution: + { + integrity: sha512-hOzRGSdyKIU4FcTSFYGKdXEjFsncVwHZ43gY3WU5Bz9j5Iadp6Rh6hxLSQ1IWXpKLBKt/d5y1cpSPcV+FcoQ1A==, + } + hasBin: true + + drizzle-orm@0.44.7: + resolution: + { + integrity: sha512-quIpnYznjU9lHshEOAYLoZ9s3jweleHlZIAWR/jX9gAWNg/JhQ1wj0KGRf7/Zm+obRrYd9GjPVJg790QY9N5AQ==, + } + peerDependencies: + "@aws-sdk/client-rds-data": ">=3" + "@cloudflare/workers-types": ">=4" + "@electric-sql/pglite": ">=0.2.0" + "@libsql/client": ">=0.10.0" + "@libsql/client-wasm": ">=0.10.0" + "@neondatabase/serverless": ">=0.10.0" + "@op-engineering/op-sqlite": ">=2" + "@opentelemetry/api": ^1.4.1 + "@planetscale/database": ">=1.13" + "@prisma/client": "*" + "@tidbcloud/serverless": "*" + "@types/better-sqlite3": "*" + "@types/pg": "*" + "@types/sql.js": "*" + "@upstash/redis": ">=1.34.7" + "@vercel/postgres": ">=0.8.0" + "@xata.io/client": "*" + better-sqlite3: ">=7" + bun-types: "*" + expo-sqlite: ">=14.0.0" + gel: ">=2" + knex: "*" + kysely: "*" + mysql2: ">=2" + pg: ">=8" + postgres: ">=3" + prisma: "*" + sql.js: ">=1" + sqlite3: ">=5" + peerDependenciesMeta: + "@aws-sdk/client-rds-data": + optional: true + "@cloudflare/workers-types": + optional: true + "@electric-sql/pglite": + optional: true + "@libsql/client": + optional: true + "@libsql/client-wasm": + optional: true + "@neondatabase/serverless": + optional: true + "@op-engineering/op-sqlite": + optional: true + "@opentelemetry/api": + optional: true + "@planetscale/database": + optional: true + "@prisma/client": + optional: true + "@tidbcloud/serverless": + optional: true + "@types/better-sqlite3": + optional: true + "@types/pg": + optional: true + "@types/sql.js": + optional: true + "@upstash/redis": + optional: true + "@vercel/postgres": + optional: true + "@xata.io/client": + optional: true + better-sqlite3: + optional: true + bun-types: + optional: true + expo-sqlite: + optional: true + gel: + optional: true + knex: + optional: true + kysely: + optional: true + mysql2: + optional: true + pg: + optional: true + postgres: + optional: true + prisma: + optional: true + sql.js: + optional: true + sqlite3: + optional: true + dunder-proto@1.0.1: resolution: { @@ -7495,6 +8111,22 @@ packages: integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==, } + esbuild-register@3.6.0: + resolution: + { + integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==, + } + peerDependencies: + esbuild: ">=0.12 <1" + + esbuild@0.18.20: + resolution: + { + integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==, + } + engines: { node: ">=12" } + hasBin: true + esbuild@0.25.0: resolution: { @@ -7503,6 +8135,14 @@ packages: engines: { node: ">=18" } hasBin: true + esbuild@0.25.12: + resolution: + { + integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==, + } + engines: { node: ">=18" } + hasBin: true + esbuild@0.27.3: resolution: { @@ -7538,13 +8178,6 @@ packages: } engines: { node: ">=10" } - escape-string-regexp@5.0.0: - resolution: - { - integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==, - } - engines: { node: ">=12" } - escodegen@2.1.0: resolution: { @@ -7779,12 +8412,6 @@ packages: integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==, } - estree-util-value-to-estree@3.5.0: - resolution: - { - integrity: sha512-aMV56R27Gv3QmfmF1MY12GWkGzzeAezAX+UplqHVASfjc9wNzI/X6hC0S9oxq61WT4aQesLGslWP9tKk6ghRZQ==, - } - estree-util-visit@2.0.0: resolution: { @@ -7856,13 +8483,6 @@ packages: } engines: { node: ">= 0.10.0" } - extend-shallow@2.0.1: - resolution: - { - integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==, - } - engines: { node: ">=0.10.0" } - extend@3.0.2: resolution: { @@ -7884,6 +8504,12 @@ packages: engines: { node: ">= 10.17.0" } hasBin: true + fast-copy@3.0.2: + resolution: + { + integrity: sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==, + } + fast-deep-equal@2.0.1: resolution: { @@ -7928,6 +8554,12 @@ packages: integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, } + fast-safe-stringify@2.1.1: + resolution: + { + integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==, + } + fast-uri@3.1.0: resolution: { @@ -7940,12 +8572,6 @@ packages: integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==, } - fault@2.0.1: - resolution: - { - integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==, - } - fd-slicer@1.1.0: resolution: { @@ -8005,6 +8631,13 @@ packages: } engines: { node: ">=16.0.0" } + file-type@19.3.0: + resolution: + { + integrity: sha512-mROwiKLZf/Kwa/2Rol+OOZQn1eyTkPB3ZTwC0ExY6OLFCbgxHYZvBm7xI77NvfZFMKBsmuXfmLJnD4eEftEhrA==, + } + engines: { node: ">=18" } + file-type@20.5.0: resolution: { @@ -8026,6 +8659,12 @@ packages: } engines: { node: ">= 0.8" } + find-root@1.1.0: + resolution: + { + integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==, + } + find-up@4.1.0: resolution: { @@ -8075,6 +8714,12 @@ packages: integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==, } + focus-trap@7.5.4: + resolution: + { + integrity: sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==, + } + follow-redirects@1.15.11: resolution: { @@ -8121,13 +8766,6 @@ packages: } engines: { node: ">= 6" } - format@0.2.2: - resolution: - { - integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==, - } - engines: { node: ">=0.4.x" } - forwarded-parse@2.1.2: resolution: { @@ -8319,6 +8957,12 @@ packages: integrity: sha512-EoY1N2xCn44xU6750Sx7OjOIT59FkmstNc3X6y5xpz7D5cBtZRe/3pSlTkDJgqsOk3WwZPkWfonhhUJfttQo3w==, } + get-tsconfig@4.8.1: + resolution: + { + integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==, + } + get-uri@6.0.5: resolution: { @@ -8340,15 +8984,6 @@ packages: } engines: { node: ">=10.13.0" } - glob-to-regex.js@1.2.0: - resolution: - { - integrity: sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ==, - } - engines: { node: ">=10.0" } - peerDependencies: - tslib: "2" - glob-to-regexp@0.4.1: resolution: { @@ -8418,12 +9053,36 @@ packages: integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==, } - gray-matter@4.0.3: + graphql-http@1.22.4: resolution: { - integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==, + integrity: sha512-OC3ucK988teMf+Ak/O+ZJ0N2ukcgrEurypp8ePyJFWq83VzwRAmHxxr+XxrMpxO/FIwI4a7m/Fzv3tWGJv0wPA==, } - engines: { node: ">=6.0" } + engines: { node: ">=12" } + peerDependencies: + graphql: ">=0.11 <=16" + + graphql-playground-html@1.6.30: + resolution: + { + integrity: sha512-tpCujhsJMva4aqE8ULnF7/l3xw4sNRZcSHu+R00VV+W0mfp+Q20Plvcrp+5UXD+2yS6oyCXncA+zoQJQqhGCEw==, + } + + graphql-scalars@1.22.2: + resolution: + { + integrity: sha512-my9FB4GtghqXqi/lWSVAOPiTzTnnEzdOXCsAC2bb5V7EFNQjVjwy3cSSbUvgYOtDuDibd+ZsCDhz+4eykYOlhQ==, + } + engines: { node: ">=10" } + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + + graphql@16.12.0: + resolution: + { + integrity: sha512-DKKrynuQRne0PNpEbzuEdHlYOMksHSUI8Zc9Unei5gTsMNA2/vMpoMz/yKba50pejK56qj98qM0SjYxAKi13gQ==, + } + engines: { node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0 } hachure-fill@0.5.2: resolution: @@ -8486,12 +9145,6 @@ packages: } engines: { node: ">= 0.4" } - hash-wasm@4.12.0: - resolution: - { - integrity: sha512-+/2B2rYLb48I/evdOIhP+K/DD2ca2fgBjp6O+GBEnCDk2e4rpeXIK8GvIyRPjTezgmWn9gmKwkQjjx6BtqDHVQ==, - } - hasown@2.0.2: resolution: { @@ -8530,6 +9183,12 @@ packages: } engines: { node: ">=16.0.0" } + help-me@5.0.0: + resolution: + { + integrity: sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==, + } + hermes-estree@0.25.1: resolution: { @@ -8549,6 +9208,12 @@ packages: } engines: { node: ">=6" } + hoist-non-react-statics@3.3.2: + resolution: + { + integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==, + } + hsl-to-hex@1.0.0: resolution: { @@ -8638,6 +9303,13 @@ packages: } engines: { node: ">= 14" } + http-status@2.1.0: + resolution: + { + integrity: sha512-O5kPr7AW7wYd/BBiOezTwnVAnmSNFY+J7hlZD2X5IOxVBetjcHAiTXhzj0gMrnojQlwy+UT1/Y3H3vJ3UlmvLA==, + } + engines: { node: ">= 0.4.0" } + http2-wrapper@2.2.1: resolution: { @@ -8674,13 +9346,6 @@ packages: engines: { node: ">=18" } hasBin: true - hyperdyperid@1.2.0: - resolution: - { - integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==, - } - engines: { node: ">=10.18" } - hyphen@1.14.1: resolution: { @@ -8743,19 +9408,20 @@ packages: } engines: { node: ">= 4" } + image-size@2.0.2: + resolution: + { + integrity: sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w==, + } + engines: { node: ">=16.x" } + hasBin: true + image-ssim@0.2.0: resolution: { integrity: sha512-W7+sO6/yhxy83L0G7xR8YAc5Z5QFtYEXXRV6EaE8tuYBZJnA3gVgp3q7X7muhLZVodeb9UfvjSbwt9VJwjIYAg==, } - imagescript@1.3.1: - resolution: - { - integrity: sha512-ue/zxSyEzj7je8Nlt2vjY9GEa2BbScFSRZJq7OTVDZFp0r57fyuxrlsF8qWgxTP+kP8WklTw4by/ZEYVX5S13w==, - } - engines: { node: ">=14.0.0" } - immediate@3.0.6: resolution: { @@ -8774,6 +9440,12 @@ packages: integrity: sha512-XREFCPo6ksxVzP4E0ekD5aMdf8WMwmdNaz6vuvxgI40UaEiu6q3p8X52aU6GdyvLY3XXX/8R7JOTXStz/nBbRw==, } + immutable@4.3.7: + resolution: + { + integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==, + } + import-fresh@3.3.1: resolution: { @@ -8802,13 +9474,6 @@ packages: } engines: { node: ">=0.8.19" } - inflection@3.0.2: - resolution: - { - integrity: sha512-+Bg3+kg+J6JUWn8J6bzFmOWkTQ6L/NHfDRSYU+EVvuKHDxUDHAXgqixHfVlzuBQaPOTac8hn43aPhMNk6rMe3g==, - } - engines: { node: ">=18.0.0" } - inflight@1.0.6: resolution: { @@ -8902,6 +9567,13 @@ packages: } engines: { node: ">= 0.10" } + ipaddr.js@2.2.0: + resolution: + { + integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==, + } + engines: { node: ">= 10" } + is-alphabetical@2.0.1: resolution: { @@ -8967,6 +9639,12 @@ packages: } engines: { node: ">= 0.4" } + is-buffer@1.1.6: + resolution: + { + integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==, + } + is-bun-module@2.0.0: resolution: { @@ -9015,13 +9693,6 @@ packages: engines: { node: ">=8" } hasBin: true - is-extendable@0.1.1: - resolution: - { - integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==, - } - engines: { node: ">=0.10.0" } - is-extglob@2.1.1: resolution: { @@ -9259,6 +9930,12 @@ packages: integrity: sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==, } + isomorphic.js@0.2.5: + resolution: + { + integrity: sha512-PIeMbHqMt4DnUP3MA/Flc0HElYjMXArsw1qwJZcm9sqR8mq3l8NYizFMty0pWwE/tzIGH3EKK5+jes5mAr85yw==, + } + iterator.prototype@1.1.5: resolution: { @@ -9292,6 +9969,19 @@ packages: } hasBin: true + jose@5.9.6: + resolution: + { + integrity: sha512-AMlnetc9+CV9asI19zHmrgS/WYsWUwCn2R7RzlbJWD7F9eWYUTGyBmU9o6PxngtLGOiDGPRu+Uc4fhKzbpteZQ==, + } + + joycon@3.1.1: + resolution: + { + integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==, + } + engines: { node: ">=10" } + jpeg-js@0.4.4: resolution: { @@ -9331,12 +10021,6 @@ packages: } hasBin: true - jsbi@4.3.2: - resolution: - { - integrity: sha512-9fqMSQbhJykSeii05nxKl4m6Eqn2P6rOlYiS+C5Dr/HPIU/7yZxu5qzbs40tgaFORiw2Amd0mirjxatXYMkIew==, - } - jsdom@26.1.0: resolution: { @@ -9369,6 +10053,14 @@ packages: integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, } + json-schema-to-typescript@15.0.3: + resolution: + { + integrity: sha512-iOKdzTUWEVM4nlxpFudFsWyUiu/Jakkga4OZPEt7CGoSEsAsUgdOZqR6pcgx2STBek9Gm4hcarJpXSzIvZ/hKA==, + } + engines: { node: ">=16.0.0" } + hasBin: true + json-schema-traverse@0.4.1: resolution: { @@ -9408,6 +10100,13 @@ packages: integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==, } + jsox@1.2.121: + resolution: + { + integrity: sha512-9Ag50tKhpTwS6r5wh3MJSAvpSof0UBr39Pto8OnzFT32Z/pAbxAsKHzyvsyMEHVslELvHyO/4/jaQELHk8wDcw==, + } + hasBin: true + jsx-ast-utils@3.3.5: resolution: { @@ -9440,13 +10139,6 @@ packages: integrity: sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==, } - kind-of@6.0.3: - resolution: - { - integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==, - } - engines: { node: ">=0.10.0" } - kleur@3.0.3: resolution: { @@ -9505,6 +10197,20 @@ packages: } engines: { node: ">= 0.8.0" } + lexical@0.35.0: + resolution: + { + integrity: sha512-3VuV8xXhh5xJA6tzvfDvE0YBCMkIZUmxtRilJQDDdCgJCc+eut6qAv2qbN+pbqvarqcQqPN1UF+8YvsjmyOZpw==, + } + + lib0@0.2.117: + resolution: + { + integrity: sha512-DeXj9X5xDCjgKLU/7RR+/HQEVzuuEUiwldwOGsHK/sfAfELGWEyTcf0x+uOvCvK3O2zPmZePXWL85vtia6GyZw==, + } + engines: { node: ">=16" } + hasBin: true + lie@3.1.1: resolution: { @@ -9642,12 +10348,6 @@ packages: integrity: sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==, } - lodash.camelcase@4.3.0: - resolution: - { - integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==, - } - lodash.defaults@4.2.0: resolution: { @@ -9699,12 +10399,6 @@ packages: } engines: { node: ">=18" } - long@5.3.2: - resolution: - { - integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==, - } - longest-streak@3.1.0: resolution: { @@ -9730,12 +10424,6 @@ packages: integrity: sha512-+gfBXl6sxXMPe8tKQm7qzLnUy5DUPJPKIyRHwtpCpyUEYjHYRJC/5gjUvdkuO2c3JllrPtHXH5UJJK8LRYl5yQ==, } - lower-case@2.0.2: - resolution: - { - integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==, - } - lowercase-keys@3.0.0: resolution: { @@ -9810,6 +10498,14 @@ packages: } engines: { node: ">=16" } + marked@14.0.0: + resolution: + { + integrity: sha512-uIj4+faQ+MgHgwUW1l2PsPglZLOLOT1uErt06dAPtx2kjteLAkbsd/0FiYg/MGS+i7ZKLb7w2WClxHkzOOuryQ==, + } + engines: { node: ">= 18" } + hasBin: true + marked@16.4.2: resolution: { @@ -9847,24 +10543,30 @@ packages: peerDependencies: react: ^18.0 || ^19.0 + md5@2.3.0: + resolution: + { + integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==, + } + mdast-util-from-markdown@2.0.2: resolution: { integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==, } - mdast-util-frontmatter@2.0.1: - resolution: - { - integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==, - } - mdast-util-mdx-expression@2.0.1: resolution: { integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==, } + mdast-util-mdx-jsx@3.1.3: + resolution: + { + integrity: sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==, + } + mdast-util-mdx-jsx@3.2.0: resolution: { @@ -9907,15 +10609,6 @@ packages: integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==, } - mdx-bundler@10.1.1: - resolution: - { - integrity: sha512-87FtxC7miUPznwqEaAlJARinHJ6Qin9kDuG2E2BCCNEOszr62kHpqivI/IF/CmwObVSpvApVFFxN1ftM/Gykvw==, - } - engines: { node: ">=18", npm: ">=6" } - peerDependencies: - esbuild: 0.* - media-engine@1.0.3: resolution: { @@ -9942,13 +10635,11 @@ packages: } engines: { node: ">= 4.0.0" } - memfs@4.56.10: + memoize-one@6.0.0: resolution: { - integrity: sha512-eLvzyrwqLHnLYalJP7YZ3wBe79MXktMdfQbvMrVD80K+NhrIukCVBvgP30zTJYEEDh9hZ/ep9z0KOdD7FSHo7w==, + integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==, } - peerDependencies: - tslib: "2" meow@13.2.0: resolution: @@ -10001,18 +10692,18 @@ packages: integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==, } - micromark-extension-frontmatter@2.0.0: - resolution: - { - integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==, - } - micromark-extension-mdx-expression@3.0.1: resolution: { integrity: sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==, } + micromark-extension-mdx-jsx@3.0.1: + resolution: + { + integrity: sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg==, + } + micromark-extension-mdx-jsx@3.0.2: resolution: { @@ -10320,6 +11011,12 @@ packages: integrity: sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==, } + monaco-editor@0.55.1: + resolution: + { + integrity: sha512-jz4x+TJNFHwHtwuV9vA9rMujcZRb0CEilTEwG2rRSpe/A7Jdkuj8xPKttCgOh+v/lkHy7HsZ64oj+q3xoAFl9A==, + } + motion-dom@12.31.2: resolution: { @@ -10432,17 +11129,6 @@ packages: } engines: { node: ">= 0.4.0" } - next-contentlayer2@0.5.8: - resolution: - { - integrity: sha512-3Xh8quPCFmg/QGa4qTnOwSsT3oNYCtmm+Ii0UlbOHxX59gHYVX9M5mTzkdUKiKC1aJfiGIPPGQXhKNfc6qvWZg==, - } - peerDependencies: - contentlayer2: 0.5.8 - next: ">=12.0.0" - react: ^18 || ^19 || ^19.0.0-rc - react-dom: ^18 || ^19 || ^19.0.0-rc - next-intl-swc-plugin-extractor@4.8.2: resolution: { @@ -10495,12 +11181,6 @@ packages: sass: optional: true - no-case@3.0.4: - resolution: - { - integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==, - } - node-addon-api@7.1.1: resolution: { @@ -10606,6 +11286,12 @@ packages: } engines: { node: ">= 0.4" } + object-to-formdata@4.5.1: + resolution: + { + integrity: sha512-QiM9D0NiU5jV6J6tjE1g7b4Z2tcUnKs1OPUi4iMb2zH+7jwlcUrASghgkFk9GtzqNNq8rTQJtT8AzjBAvLoNMw==, + } + object.assign@4.1.7: resolution: { @@ -10641,6 +11327,19 @@ packages: } engines: { node: ">= 0.4" } + obuf@1.1.2: + resolution: + { + integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==, + } + + on-exit-leak-free@2.1.2: + resolution: + { + integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==, + } + engines: { node: ">=14.0.0" } + on-finished@2.4.1: resolution: { @@ -10688,13 +11387,6 @@ packages: integrity: sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g==, } - oo-ascii-tree@1.126.0: - resolution: - { - integrity: sha512-EebBYPzBN8H/j+6sMB5IxAvulsffQuMaPn4ZQeiDKYy1uqTT5t50inNN/tn61wwCs7IZ2jUb1sCEkyh2iwkHlA==, - } - engines: { node: ">= 14.17.0" } - open@7.4.2: resolution: { @@ -10921,12 +11613,6 @@ packages: } engines: { node: ">= 0.8" } - pascal-case@3.1.2: - resolution: - { - integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==, - } - path-data-parser@0.1.0: resolution: { @@ -10973,6 +11659,12 @@ packages: integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==, } + path-to-regexp@6.3.0: + resolution: + { + integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==, + } + path-type@4.0.0: resolution: { @@ -10992,18 +11684,47 @@ packages: integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==, } + payload@3.77.0: + resolution: + { + integrity: sha512-hIdQ1sWpu0KPb9Okd9HahZxaddhLdFBo476AR5KX/6H9o4NRlQ5a2HZN+pgXO51M9aPbIBkArk8Ph/LvI4U3LQ==, + } + engines: { node: ^18.20.2 || >=20.9.0 } + hasBin: true + peerDependencies: + graphql: ^16.8.1 + peberminta@0.9.0: resolution: { integrity: sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==, } + peek-readable@5.4.2: + resolution: + { + integrity: sha512-peBp3qZyuS6cNIJ2akRNG1uo1WJ1d0wTxg/fxMdZ0BqCVhx242bSFHM9eNqflfJVS9SsgkzgT/1UgnsurBOTMg==, + } + engines: { node: ">=14.16" } + pend@1.2.0: resolution: { integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==, } + pg-cloudflare@1.3.0: + resolution: + { + integrity: sha512-6lswVVSztmHiRtD6I8hw4qP/nDm1EJbKMRhf3HCYaqud7frGysPv7FYJ5noZQdhQtN2xJnimfMtvQq21pdbzyQ==, + } + + pg-connection-string@2.11.0: + resolution: + { + integrity: sha512-kecgoJwhOpxYU21rZjULrmrBJ698U2RxXofKVzOn5UDj61BPj/qMb7diYUR1nLScCDbrztQFl1TaQZT0t1EtzQ==, + } + pg-int8@1.0.1: resolution: { @@ -11011,6 +11732,21 @@ packages: } engines: { node: ">=4.0.0" } + pg-numeric@1.0.2: + resolution: + { + integrity: sha512-BM/Thnrw5jm2kKLE5uJkXqqExRUY/toLHda65XgFTBTFYZyopbKjBe29Ii3RbkvlsMoFwD+tHeGaCjjv0gHlyw==, + } + engines: { node: ">=4" } + + pg-pool@3.11.0: + resolution: + { + integrity: sha512-MJYfvHwtGp870aeusDh+hg9apvOe2zmpZJpyt+BMtzUWlVqbhFmMK6bOBXLBUPd7iRtIF9fZplDc7KrPN3PN7w==, + } + peerDependencies: + pg: ">=8.0" + pg-protocol@1.11.0: resolution: { @@ -11024,6 +11760,31 @@ packages: } engines: { node: ">=4" } + pg-types@4.1.0: + resolution: + { + integrity: sha512-o2XFanIMy/3+mThw69O8d4n1E5zsLhdO+OPqswezu7Z5ekP4hYDqlDjlmOpYMbzY2Br0ufCwJLdDIXeNVwcWFg==, + } + engines: { node: ">=10" } + + pg@8.16.3: + resolution: + { + integrity: sha512-enxc1h0jA/aq5oSDMvqyW3q89ra6XIIDZgCX9vkMrnz5DFTw/Ny3Li2lFQ+pt3L6MCgm/5o2o8HW9hiJji+xvw==, + } + engines: { node: ">= 16.0.0" } + peerDependencies: + pg-native: ">=3.0.1" + peerDependenciesMeta: + pg-native: + optional: true + + pgpass@1.0.5: + resolution: + { + integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==, + } + picocolors@1.1.1: resolution: { @@ -11059,6 +11820,32 @@ packages: } engines: { node: ">=0.10.0" } + pino-abstract-transport@2.0.0: + resolution: + { + integrity: sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==, + } + + pino-pretty@13.1.2: + resolution: + { + integrity: sha512-3cN0tCakkT4f3zo9RXDIhy6GTvtYD6bK4CRBLN9j3E/ePqN1tugAXD5rGVfoChW6s0hiek+eyYlLNqc/BG7vBQ==, + } + hasBin: true + + pino-std-serializers@7.1.0: + resolution: + { + integrity: sha512-BndPH67/JxGExRgiX1dX0w1FvZck5Wa4aal9198SrRhZjH3GxKQUKIBnYJTdj2HDN3UQAS06HlfcSbQj2OHmaw==, + } + + pino@9.14.0: + resolution: + { + integrity: sha512-8OEwKp5juEvb/MjpIc4hjqfgCNysrS94RIOMXYvpYCdm/jglrKEiAYmiumbmGhCvs+IcInsphYDFwqrjr7398w==, + } + hasBin: true + pirates@4.0.7: resolution: { @@ -11095,6 +11882,13 @@ packages: engines: { node: ">=18" } hasBin: true + pluralize@8.0.0: + resolution: + { + integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==, + } + engines: { node: ">=4" } + pngjs@5.0.0: resolution: { @@ -11530,6 +12324,13 @@ packages: } engines: { node: ">=4" } + postgres-array@3.0.4: + resolution: + { + integrity: sha512-nAUSGfSDGOaOAEGwqsRY27GPOea7CNipJPOA7lPbdEpx5Kg3qzdP0AaWC5MlhTWV9s4hFX39nomVZ+C4tnGOJQ==, + } + engines: { node: ">=12" } + postgres-bytea@1.0.1: resolution: { @@ -11537,6 +12338,13 @@ packages: } engines: { node: ">=0.10.0" } + postgres-bytea@3.0.0: + resolution: + { + integrity: sha512-CNd4jim9RFPkObHSjVHlVrxoVQXz7quwNFpz7RY1okNNme49+sVyiTvTRobiLV548Hx/hb1BG+iE7h9493WzFw==, + } + engines: { node: ">= 6" } + postgres-date@1.0.7: resolution: { @@ -11544,6 +12352,13 @@ packages: } engines: { node: ">=0.10.0" } + postgres-date@2.1.0: + resolution: + { + integrity: sha512-K7Juri8gtgXVcDfZttFKVmhglp7epKb1K4pgrkLxehjqkrgPhfG6OO8LHLkfaqkbpjNRnra018XwAr1yQFWGcA==, + } + engines: { node: ">=12" } + postgres-interval@1.2.0: resolution: { @@ -11551,6 +12366,19 @@ packages: } engines: { node: ">=0.10.0" } + postgres-interval@3.0.0: + resolution: + { + integrity: sha512-BSNDnbyZCXSxgA+1f5UU2GmwhoI0aU5yMxRGO8CdFEcY2BQF9xm/7MqKnYoM1nJDk8nONNWDk9WeSmePFhQdlw==, + } + engines: { node: ">=12" } + + postgres-range@1.1.4: + resolution: + { + integrity: sha512-i/hbxIE9803Alj/6ytL7UHQxRvZkI9O4Sy+J3HGc4F4oo/2eQAjTSNJ0bfxyse3bH0nuVesCk+3IRLaMtG3H6w==, + } + prelude-ls@1.2.1: resolution: { @@ -11588,6 +12416,12 @@ packages: } engines: { node: ">=6" } + process-warning@5.0.0: + resolution: + { + integrity: sha512-a39t9ApHNx2L4+HBnQKqxxHNs1r7KF+Intd8Q/g1bUh6q0WIp9voPXJ/x0j+ZL45KF1pJd9+q2jLIRMfvEshkA==, + } + progress@2.0.3: resolution: { @@ -11620,13 +12454,6 @@ packages: integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==, } - protobufjs@7.5.4: - resolution: - { - integrity: sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==, - } - engines: { node: ">=12.0.0" } - proxy-addr@2.0.7: resolution: { @@ -11690,6 +12517,13 @@ packages: engines: { node: ">=10.13.0" } hasBin: true + qs-esm@7.0.2: + resolution: + { + integrity: sha512-D8NAthKSD7SGn748v+GLaaO6k08Mvpoqroa35PqIQC4gtUa8/Pb/k+r0m0NnGBVbHDP1gKZ2nVywqfMisRhV5A==, + } + engines: { node: ">=18" } + qs@6.14.1: resolution: { @@ -11709,6 +12543,12 @@ packages: integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==, } + quick-format-unescaped@4.0.4: + resolution: + { + integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==, + } + quick-lru@5.1.1: resolution: { @@ -11743,6 +12583,15 @@ packages: } engines: { node: ">= 0.8" } + react-datepicker@7.6.0: + resolution: + { + integrity: sha512-9cQH6Z/qa4LrGhzdc3XoHbhrxNcMi9MKjZmYgF/1MNNaJwvdSjv3Xd+jjvrEEbKEf71ZgCA3n7fQbdwd70qCRw==, + } + peerDependencies: + react: ^16.9.0 || ^17 || ^18 || ^19 || ^19.0.0-rc + react-dom: ^16.9.0 || ^17 || ^18 || ^19 || ^19.0.0-rc + react-dom@19.2.4: resolution: { @@ -11751,6 +12600,23 @@ packages: peerDependencies: react: ^19.2.4 + react-error-boundary@3.1.4: + resolution: + { + integrity: sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA==, + } + engines: { node: ">=10", npm: ">=6" } + peerDependencies: + react: ">=16.13.1" + + react-error-boundary@4.1.2: + resolution: + { + integrity: sha512-GQDxZ5Jd+Aq/qUxbCm1UtzmL/s++V7zKgE8yMktJiCQXCCFZnMZh9ng+6/Ne6PjNSXH0L9CjeOEREfRnq6Duag==, + } + peerDependencies: + react: ">=16.13.1" + react-html-props@2.1.1: resolution: { @@ -11760,6 +12626,14 @@ packages: react: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0 || ^22.0.0 react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0 || ^22.0.0 + react-image-crop@10.1.8: + resolution: + { + integrity: sha512-4rb8XtXNx7ZaOZarKKnckgz4xLMvds/YrU6mpJfGhGAsy2Mg4mIw1x+DCCGngVGq2soTBVVOxx2s/C6mTX9+pA==, + } + peerDependencies: + react: ">=16.13.1" + react-is@16.13.1: resolution: { @@ -11794,6 +12668,15 @@ packages: } engines: { node: ">=0.10.0" } + react-select@5.9.0: + resolution: + { + integrity: sha512-nwRKGanVHGjdccsnzhFte/PULziueZxGD8LL2WojON78Mvnq7LdAMEtu2frrwld1fr3geixg3iiMBIc/LLAZpw==, + } + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-social-media-embed@2.5.18: resolution: { @@ -11812,6 +12695,15 @@ packages: react: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0 || ^22.0.0 react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0 || ^22.0.0 + react-transition-group@4.4.5: + resolution: + { + integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==, + } + peerDependencies: + react: ">=16.6.0" + react-dom: ">=16.6.0" + react-tweet@3.3.0: resolution: { @@ -11867,6 +12759,13 @@ packages: } engines: { node: ">=8.10.0" } + real-require@0.2.0: + resolution: + { + integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==, + } + engines: { node: ">= 12.13.0" } + recast@0.23.11: resolution: { @@ -11977,24 +12876,6 @@ packages: integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==, } - rehype-stringify@10.0.1: - resolution: - { - integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==, - } - - remark-frontmatter@5.0.0: - resolution: - { - integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==, - } - - remark-mdx-frontmatter@4.0.0: - resolution: - { - integrity: sha512-PZzAiDGOEfv1Ua7exQ8S5kKxkD8CDaSb4nM+1Mprs6u8dyvQifakh+kCj6NovfGXW+bTvrhjaR3srzjS2qJHKg==, - } - remark-mdx@3.1.1: resolution: { @@ -12272,6 +13153,13 @@ packages: } engines: { node: ">= 0.4" } + safe-stable-stringify@2.5.0: + resolution: + { + integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==, + } + engines: { node: ">=10" } + safer-buffer@2.1.2: resolution: { @@ -12284,6 +13172,14 @@ packages: integrity: sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==, } + sass@1.77.4: + resolution: + { + integrity: sha512-vcF3Ckow6g939GMA4PeU7b2K/9FALXk2KF9J87txdHzXbUF9XRQRwSxcAs/fGaTnJeBFd7UoV22j3lzMLdM0Pw==, + } + engines: { node: ">=14.0.0" } + hasBin: true + satori@0.16.0: resolution: { @@ -12305,6 +13201,12 @@ packages: } engines: { node: ">=v12.22.7" } + scheduler@0.25.0: + resolution: + { + integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==, + } + scheduler@0.25.0-rc-603e6108-20241029: resolution: { @@ -12337,12 +13239,11 @@ packages: integrity: sha512-qGVDoreyYiP1pkQnbnFAUIS5AjenNwwQBdl7zeos9etl+hYKWahjRTfzAZZYBv5xNHx7vNKCmaLDQZ6Fr2AEXg==, } - section-matter@1.0.0: + secure-json-parse@4.1.0: resolution: { - integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==, + integrity: sha512-l4KnYfEyqYJxDwlNVyRfO2E4NTHfMKAWdUuA8J0yve2Dz/E/PdBepY03RvyJpssIpRFwJoCD55wA+mEDs6ByWA==, } - engines: { node: ">=4" } selderee@0.11.0: resolution: @@ -12514,6 +13415,12 @@ packages: integrity: sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==, } + simple-wcswidth@1.1.2: + resolution: + { + integrity: sha512-j7piyCjAeTDSjzTSQ7DokZtMNwNlEAyxqSZeCS+CXH7fJ4jx3FuJ/mTW3mE+6JLs4VJBbcll0Kjn+KXI5t21Iw==, + } + sister@3.0.2: resolution: { @@ -12554,6 +13461,21 @@ packages: } engines: { node: ">= 10.0.0", npm: ">= 3.0.0" } + sonic-boom@4.2.1: + resolution: + { + integrity: sha512-w6AxtubXa2wTXAUsZMMWERrsIRAdrK0Sc+FUytWvYAhBJLyuI4llrMIC1DtlNSdI99EI86KZum2MMq3EAZlF9Q==, + } + + sonner@1.7.4: + resolution: + { + integrity: sha512-DIS8z4PfJRbIyfVFDVnK9rO3eYDtse4Omcm6bt0oEr5/jtLgysmjuBl1frJ9E/EQZrFmKx2A8m/s5s9CRXIzhw==, + } + peerDependencies: + react: ^18.0.0 || ^19.0.0 || ^19.0.0-rc + react-dom: ^18.0.0 || ^19.0.0 || ^19.0.0-rc + source-map-js@1.2.1: resolution: { @@ -12567,6 +13489,13 @@ packages: integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==, } + source-map@0.5.7: + resolution: + { + integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==, + } + engines: { node: ">=0.10.0" } + source-map@0.6.1: resolution: { @@ -12602,6 +13531,13 @@ packages: } engines: { node: ">=8.0" } + split2@4.2.0: + resolution: + { + integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==, + } + engines: { node: ">= 10.x" } + split@0.3.3: resolution: { @@ -12640,6 +13576,12 @@ packages: integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==, } + state-local@1.0.7: + resolution: + { + integrity: sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==, + } + statuses@2.0.2: resolution: { @@ -12672,6 +13614,13 @@ packages: integrity: sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==, } + streamsearch@1.1.0: + resolution: + { + integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==, + } + engines: { node: ">=10.0.0" } + streamx@2.23.0: resolution: { @@ -12821,13 +13770,6 @@ packages: } engines: { node: ">=12" } - strip-bom-string@1.0.0: - resolution: - { - integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==, - } - engines: { node: ">=0.10.0" } - strip-bom@3.0.0: resolution: { @@ -12849,6 +13791,13 @@ packages: } engines: { node: ">=8" } + strip-json-comments@5.0.3: + resolution: + { + integrity: sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==, + } + engines: { node: ">=14.16" } + strtok3@10.3.4: resolution: { @@ -12856,6 +13805,13 @@ packages: } engines: { node: ">=18" } + strtok3@8.1.0: + resolution: + { + integrity: sha512-ExzDvHYPj6F6QkSNe/JxSlBxTh3OrI6wrAIz53ulxo1c4hBJ1bT9C/JrAthEKHWG9riVH3Xzg7B03Oxty6S2Lw==, + } + engines: { node: ">=16" } + style-loader@4.0.0: resolution: { @@ -12893,6 +13849,12 @@ packages: babel-plugin-macros: optional: true + stylis@4.2.0: + resolution: + { + integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==, + } + stylis@4.3.6: resolution: { @@ -12962,6 +13924,12 @@ packages: integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==, } + tabbable@6.4.0: + resolution: + { + integrity: sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==, + } + tailwind-merge@3.4.0: resolution: { @@ -13049,15 +14017,6 @@ packages: integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==, } - thingies@2.5.0: - resolution: - { - integrity: sha512-s+2Bwztg6PhWUD7XMfeYm5qliDdSiZm7M7n8KjTkIsm3l/2lgVRc2/Gx/v+ZX8lT4FMA+i8aQvhcWylldc+ZNw==, - } - engines: { node: ">=10.18" } - peerDependencies: - tslib: ^2 - third-party-capital@1.0.20: resolution: { @@ -13076,6 +14035,12 @@ packages: integrity: sha512-nBDSJw5B7Sl1YfsATG2XkW5qgUPODbJhXw++BKygi9w6O/NKS98/uY/nR/DxDq2axEjL6halHW1v+jhm/j1DBQ==, } + thread-stream@3.1.0: + resolution: + { + integrity: sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==, + } + through@2.3.8: resolution: { @@ -13160,6 +14125,12 @@ packages: } engines: { node: ">=6" } + to-no-case@1.0.2: + resolution: + { + integrity: sha512-Z3g735FxuZY8rodxV4gH7LxClE4H0hTIyHNIHdk+vpQxjLm0cwnKXq/OFVZ76SOQmto7txVcwSCwkU5kqp+FKg==, + } + to-regex-range@5.0.1: resolution: { @@ -13167,6 +14138,18 @@ packages: } engines: { node: ">=8.0" } + to-snake-case@1.0.0: + resolution: + { + integrity: sha512-joRpzBAk1Bhi2eGEYBjukEWHOe/IvclOkiJl3DtA91jV6NwQ3MwXA4FHYeqk8BNp/D8bmi9tcNbRu/SozP0jbQ==, + } + + to-space-case@1.0.0: + resolution: + { + integrity: sha512-rLdvwXZ39VOn1IxGL3V6ZstoTbwLRckQmn/U8ZDLuWwIXNpuZDhQ3AiRUlhTbOXFVE9C+dR51wM0CBDhk31VcA==, + } + toidentifier@1.0.1: resolution: { @@ -13181,12 +14164,6 @@ packages: } engines: { node: ">=14.16" } - toml@3.0.0: - resolution: - { - integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==, - } - tough-cookie@5.1.2: resolution: { @@ -13220,15 +14197,6 @@ packages: } engines: { node: ">=18" } - tree-dump@1.1.0: - resolution: - { - integrity: sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA==, - } - engines: { node: ">=10.0" } - peerDependencies: - tslib: "2" - tree-kill@1.2.2: resolution: { @@ -13270,18 +14238,23 @@ packages: } engines: { node: ">=6.10" } + ts-essentials@10.0.3: + resolution: + { + integrity: sha512-/FrVAZ76JLTWxJOERk04fm8hYENDo0PWSP3YLQKxevLwWtxemGcl5JJEzN4iqfDlRve0ckyfFaOBu4xbNH/wZw==, + } + peerDependencies: + typescript: ">=4.5.0" + peerDependenciesMeta: + typescript: + optional: true + ts-interface-checker@0.1.13: resolution: { integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==, } - ts-pattern@5.9.0: - resolution: - { - integrity: sha512-6s5V71mX8qBUmlgbrfL33xDUwO0fq48rxAu2LBE11WBeGdpCPOsXksQbZJHvHwhrd3QjUusd3mAOM5Gg0mFBLg==, - } - tsconfig-paths@3.15.0: resolution: { @@ -13308,12 +14281,6 @@ packages: engines: { node: ">=18.0.0" } hasBin: true - typanion@3.14.0: - resolution: - { - integrity: sha512-ZW/lVMRabETuYCd9O9ZvMhAh8GslSqaUjxmK/JLPCh6l73CvLBiuXswj/+7LdnWOgYsQ130FqLzFz5aGT4I3Ug==, - } - type-check@0.4.0: resolution: { @@ -13446,6 +14413,13 @@ packages: integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==, } + undici@7.18.2: + resolution: + { + integrity: sha512-y+8YjDFzWdQlSE9N5nzKMT3g4a5UBX1HKowfdXh0uvAnTaqqwqB92Jt4UXBAeKekDs5IaDKyJFR4X1gYVCgXcw==, + } + engines: { node: ">=20.18.1" } + undici@7.20.0: resolution: { @@ -13561,6 +14535,15 @@ packages: integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, } + use-context-selector@2.0.0: + resolution: + { + integrity: sha512-owfuSmUNd3eNp3J9CdDl0kMgfidV+MkDvHPpvthN5ThqM+ibMccNE0k+Iq7TWC6JPFvGZqanqiGCuQx6DyV24g==, + } + peerDependencies: + react: ">=18.0.0" + scheduler: ">=0.19.0" + use-intl@4.8.2: resolution: { @@ -13569,6 +14552,18 @@ packages: peerDependencies: react: ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 || ^19.0.0 + use-isomorphic-layout-effect@1.2.1: + resolution: + { + integrity: sha512-tpZZ+EX0gaghDAiFR37hj5MgY6ZN55kLiPkJsKxBMZ6GZdOSPJXiOzPM984oPYZ5AnehYx5WQp1+ME8I/P/pRA==, + } + peerDependencies: + "@types/react": "*" + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + use-sync-external-store@1.6.0: resolution: { @@ -13596,6 +14591,13 @@ packages: } engines: { node: ">= 0.4.0" } + uuid@10.0.0: + resolution: + { + integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==, + } + hasBin: true + uuid@11.1.0: resolution: { @@ -13610,6 +14612,13 @@ packages: } hasBin: true + uuid@9.0.0: + resolution: + { + integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==, + } + hasBin: true + uuid@9.0.1: resolution: { @@ -13981,6 +14990,14 @@ packages: integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==, } + xss@1.0.15: + resolution: + { + integrity: sha512-FVdlVVC67WOIPvfOwhoMETV72f6GbW7aOabBC3WxN/oUdoEMDyLz4OgRv5/gck2ZeNqEQu+Tb0kloovXOfpYVg==, + } + engines: { node: ">= 0.10.0" } + hasBin: true + xtend@4.0.2: resolution: { @@ -14013,6 +15030,13 @@ packages: integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, } + yaml@1.10.2: + resolution: + { + integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==, + } + engines: { node: ">= 6" } + yaml@2.8.2: resolution: { @@ -14067,6 +15091,13 @@ packages: integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==, } + yjs@13.6.29: + resolution: + { + integrity: sha512-kHqDPdltoXH+X4w1lVmMtddE3Oeqq48nM40FD5ojTd8xYhQpzIDcfE2keMSU5bAgRPJBe225WTUdyUgj1DtbiQ==, + } + engines: { node: ">=16.0.0", npm: ">=8.0.0" } + yocto-queue@0.1.0: resolution: { @@ -14128,6 +15159,12 @@ snapshots: package-manager-detector: 1.6.0 tinyexec: 1.0.2 + "@apidevtools/json-schema-ref-parser@11.9.3": + dependencies: + "@jsdevtools/ono": 7.1.3 + "@types/json-schema": 7.0.15 + js-yaml: 4.1.1 + "@apify/consts@2.51.0": {} "@apify/datastructures@2.0.3": {} @@ -14307,105 +15344,6 @@ snapshots: conventional-commits-parser: 6.2.1 picocolors: 1.1.1 - "@contentlayer2/cli@0.5.8(esbuild@0.27.3)(tslib@2.8.1)": - dependencies: - "@contentlayer2/core": 0.5.8(esbuild@0.27.3)(tslib@2.8.1) - "@contentlayer2/utils": 0.5.8(tslib@2.8.1) - clipanion: 3.2.1(typanion@3.14.0) - typanion: 3.14.0 - transitivePeerDependencies: - - "@effect-ts/otel-node" - - esbuild - - markdown-wasm - - supports-color - - tslib - - "@contentlayer2/client@0.5.8(esbuild@0.27.3)(tslib@2.8.1)": - dependencies: - "@contentlayer2/core": 0.5.8(esbuild@0.27.3)(tslib@2.8.1) - transitivePeerDependencies: - - "@effect-ts/otel-node" - - esbuild - - markdown-wasm - - supports-color - - tslib - - "@contentlayer2/core@0.5.8(esbuild@0.27.3)(tslib@2.8.1)": - dependencies: - "@contentlayer2/utils": 0.5.8(tslib@2.8.1) - camel-case: 4.1.2 - comment-json: 4.5.1 - gray-matter: 4.0.3 - mdx-bundler: 10.1.1(esbuild@0.27.3) - rehype-stringify: 10.0.1 - remark-frontmatter: 5.0.0 - remark-parse: 11.0.0 - remark-rehype: 11.1.2 - source-map-support: 0.5.21 - type-fest: 4.41.0 - unified: 11.0.5 - optionalDependencies: - esbuild: 0.27.3 - transitivePeerDependencies: - - "@effect-ts/otel-node" - - supports-color - - tslib - - "@contentlayer2/source-files@0.5.8(esbuild@0.27.3)(tslib@2.8.1)": - dependencies: - "@contentlayer2/core": 0.5.8(esbuild@0.27.3)(tslib@2.8.1) - "@contentlayer2/utils": 0.5.8(tslib@2.8.1) - chokidar: 3.6.0 - fast-glob: 3.3.3 - gray-matter: 4.0.3 - imagescript: 1.3.1 - micromatch: 4.0.8 - ts-pattern: 5.9.0 - unified: 11.0.5 - yaml: 2.8.2 - zod: 3.25.76 - transitivePeerDependencies: - - "@effect-ts/otel-node" - - esbuild - - markdown-wasm - - supports-color - - tslib - - "@contentlayer2/source-remote-files@0.5.8(esbuild@0.27.3)(tslib@2.8.1)": - dependencies: - "@contentlayer2/core": 0.5.8(esbuild@0.27.3)(tslib@2.8.1) - "@contentlayer2/source-files": 0.5.8(esbuild@0.27.3)(tslib@2.8.1) - "@contentlayer2/utils": 0.5.8(tslib@2.8.1) - transitivePeerDependencies: - - "@effect-ts/otel-node" - - esbuild - - markdown-wasm - - supports-color - - tslib - - "@contentlayer2/utils@0.5.8(tslib@2.8.1)": - dependencies: - "@effect-ts/core": 0.60.5 - "@effect-ts/otel": 0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@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.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-node@1.30.1(@opentelemetry/api@1.9.0)) - "@js-temporal/polyfill": 0.4.4 - "@opentelemetry/api": 1.9.0 - "@opentelemetry/core": 1.30.1(@opentelemetry/api@1.9.0) - "@opentelemetry/exporter-trace-otlp-grpc": 0.57.2(@opentelemetry/api@1.9.0) - "@opentelemetry/resources": 1.30.1(@opentelemetry/api@1.9.0) - "@opentelemetry/sdk-trace-base": 1.30.1(@opentelemetry/api@1.9.0) - "@opentelemetry/sdk-trace-node": 1.30.1(@opentelemetry/api@1.9.0) - "@opentelemetry/semantic-conventions": 1.39.0 - chokidar: 3.6.0 - hash-wasm: 4.12.0 - inflection: 3.0.2 - memfs: 4.56.10(tslib@2.8.1) - oo-ascii-tree: 1.126.0 - ts-pattern: 5.9.0 - type-fest: 4.41.0 - transitivePeerDependencies: - - tslib - "@crawlee/basic@3.16.0": dependencies: "@apify/log": 2.5.32 @@ -14852,29 +15790,43 @@ snapshots: dependencies: postcss: 8.4.47 + "@date-fns/tz@1.2.0": {} + "@directus/sdk@21.0.0": {} - "@effect-ts/core@0.60.5": + "@dnd-kit/accessibility@3.1.1(react@19.2.4)": dependencies: - "@effect-ts/system": 0.57.5 + react: 19.2.4 + tslib: 2.8.1 - "@effect-ts/otel-sdk-trace-node@0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-node@1.30.1(@opentelemetry/api@1.9.0))": + "@dnd-kit/core@6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)": dependencies: - "@effect-ts/core": 0.60.5 - "@effect-ts/otel": 0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0)) - "@opentelemetry/api": 1.9.0 - "@opentelemetry/core": 1.30.1(@opentelemetry/api@1.9.0) - "@opentelemetry/sdk-trace-base": 1.30.1(@opentelemetry/api@1.9.0) - "@opentelemetry/sdk-trace-node": 1.30.1(@opentelemetry/api@1.9.0) + "@dnd-kit/accessibility": 3.1.1(react@19.2.4) + "@dnd-kit/utilities": 3.2.2(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + tslib: 2.8.1 - "@effect-ts/otel@0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))": + "@dnd-kit/modifiers@9.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)": dependencies: - "@effect-ts/core": 0.60.5 - "@opentelemetry/api": 1.9.0 - "@opentelemetry/core": 1.30.1(@opentelemetry/api@1.9.0) - "@opentelemetry/sdk-trace-base": 1.30.1(@opentelemetry/api@1.9.0) + "@dnd-kit/core": 6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + "@dnd-kit/utilities": 3.2.2(react@19.2.4) + react: 19.2.4 + tslib: 2.8.1 - "@effect-ts/system@0.57.5": {} + "@dnd-kit/sortable@10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)": + dependencies: + "@dnd-kit/core": 6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + "@dnd-kit/utilities": 3.2.2(react@19.2.4) + react: 19.2.4 + tslib: 2.8.1 + + "@dnd-kit/utilities@3.2.2(react@19.2.4)": + dependencies: + react: 19.2.4 + tslib: 2.8.1 + + "@drizzle-team/brocli@0.10.2": {} "@emnapi/core@1.8.1": dependencies: @@ -14892,172 +15844,378 @@ snapshots: tslib: 2.8.1 optional: true + "@emotion/babel-plugin@11.13.5": + dependencies: + "@babel/helper-module-imports": 7.28.6 + "@babel/runtime": 7.28.6 + "@emotion/hash": 0.9.2 + "@emotion/memoize": 0.9.0 + "@emotion/serialize": 1.3.3 + babel-plugin-macros: 3.1.0 + convert-source-map: 1.9.0 + escape-string-regexp: 4.0.0 + find-root: 1.1.0 + source-map: 0.5.7 + stylis: 4.2.0 + transitivePeerDependencies: + - supports-color + + "@emotion/cache@11.14.0": + dependencies: + "@emotion/memoize": 0.9.0 + "@emotion/sheet": 1.4.0 + "@emotion/utils": 1.4.2 + "@emotion/weak-memoize": 0.4.0 + stylis: 4.2.0 + + "@emotion/hash@0.9.2": {} + "@emotion/is-prop-valid@1.4.0": dependencies: "@emotion/memoize": 0.9.0 "@emotion/memoize@0.9.0": {} - "@esbuild-plugins/node-resolve@0.2.2(esbuild@0.27.3)": + "@emotion/react@11.14.0(@types/react@19.2.13)(react@19.2.4)": dependencies: - "@types/resolve": 1.20.6 - debug: 4.4.3 - esbuild: 0.27.3 - escape-string-regexp: 4.0.0 - resolve: 1.22.11 + "@babel/runtime": 7.28.6 + "@emotion/babel-plugin": 11.13.5 + "@emotion/cache": 11.14.0 + "@emotion/serialize": 1.3.3 + "@emotion/use-insertion-effect-with-fallbacks": 1.2.0(react@19.2.4) + "@emotion/utils": 1.4.2 + "@emotion/weak-memoize": 0.4.0 + hoist-non-react-statics: 3.3.2 + react: 19.2.4 + optionalDependencies: + "@types/react": 19.2.13 transitivePeerDependencies: - supports-color + "@emotion/serialize@1.3.3": + dependencies: + "@emotion/hash": 0.9.2 + "@emotion/memoize": 0.9.0 + "@emotion/unitless": 0.10.0 + "@emotion/utils": 1.4.2 + csstype: 3.2.3 + + "@emotion/sheet@1.4.0": {} + + "@emotion/unitless@0.10.0": {} + + "@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.2.4)": + dependencies: + react: 19.2.4 + + "@emotion/utils@1.4.2": {} + + "@emotion/weak-memoize@0.4.0": {} + + "@esbuild-kit/core-utils@3.3.2": + dependencies: + esbuild: 0.18.20 + source-map-support: 0.5.21 + + "@esbuild-kit/esm-loader@2.6.5": + dependencies: + "@esbuild-kit/core-utils": 3.3.2 + get-tsconfig: 4.13.1 + "@esbuild/aix-ppc64@0.25.0": optional: true + "@esbuild/aix-ppc64@0.25.12": + optional: true + "@esbuild/aix-ppc64@0.27.3": optional: true + "@esbuild/android-arm64@0.18.20": + optional: true + "@esbuild/android-arm64@0.25.0": optional: true + "@esbuild/android-arm64@0.25.12": + optional: true + "@esbuild/android-arm64@0.27.3": optional: true + "@esbuild/android-arm@0.18.20": + optional: true + "@esbuild/android-arm@0.25.0": optional: true + "@esbuild/android-arm@0.25.12": + optional: true + "@esbuild/android-arm@0.27.3": optional: true + "@esbuild/android-x64@0.18.20": + optional: true + "@esbuild/android-x64@0.25.0": optional: true + "@esbuild/android-x64@0.25.12": + optional: true + "@esbuild/android-x64@0.27.3": optional: true + "@esbuild/darwin-arm64@0.18.20": + optional: true + "@esbuild/darwin-arm64@0.25.0": optional: true + "@esbuild/darwin-arm64@0.25.12": + optional: true + "@esbuild/darwin-arm64@0.27.3": optional: true + "@esbuild/darwin-x64@0.18.20": + optional: true + "@esbuild/darwin-x64@0.25.0": optional: true + "@esbuild/darwin-x64@0.25.12": + optional: true + "@esbuild/darwin-x64@0.27.3": optional: true + "@esbuild/freebsd-arm64@0.18.20": + optional: true + "@esbuild/freebsd-arm64@0.25.0": optional: true + "@esbuild/freebsd-arm64@0.25.12": + optional: true + "@esbuild/freebsd-arm64@0.27.3": optional: true + "@esbuild/freebsd-x64@0.18.20": + optional: true + "@esbuild/freebsd-x64@0.25.0": optional: true + "@esbuild/freebsd-x64@0.25.12": + optional: true + "@esbuild/freebsd-x64@0.27.3": optional: true + "@esbuild/linux-arm64@0.18.20": + optional: true + "@esbuild/linux-arm64@0.25.0": optional: true + "@esbuild/linux-arm64@0.25.12": + optional: true + "@esbuild/linux-arm64@0.27.3": optional: true + "@esbuild/linux-arm@0.18.20": + optional: true + "@esbuild/linux-arm@0.25.0": optional: true + "@esbuild/linux-arm@0.25.12": + optional: true + "@esbuild/linux-arm@0.27.3": optional: true + "@esbuild/linux-ia32@0.18.20": + optional: true + "@esbuild/linux-ia32@0.25.0": optional: true + "@esbuild/linux-ia32@0.25.12": + optional: true + "@esbuild/linux-ia32@0.27.3": optional: true + "@esbuild/linux-loong64@0.18.20": + optional: true + "@esbuild/linux-loong64@0.25.0": optional: true + "@esbuild/linux-loong64@0.25.12": + optional: true + "@esbuild/linux-loong64@0.27.3": optional: true + "@esbuild/linux-mips64el@0.18.20": + optional: true + "@esbuild/linux-mips64el@0.25.0": optional: true + "@esbuild/linux-mips64el@0.25.12": + optional: true + "@esbuild/linux-mips64el@0.27.3": optional: true + "@esbuild/linux-ppc64@0.18.20": + optional: true + "@esbuild/linux-ppc64@0.25.0": optional: true + "@esbuild/linux-ppc64@0.25.12": + optional: true + "@esbuild/linux-ppc64@0.27.3": optional: true + "@esbuild/linux-riscv64@0.18.20": + optional: true + "@esbuild/linux-riscv64@0.25.0": optional: true + "@esbuild/linux-riscv64@0.25.12": + optional: true + "@esbuild/linux-riscv64@0.27.3": optional: true + "@esbuild/linux-s390x@0.18.20": + optional: true + "@esbuild/linux-s390x@0.25.0": optional: true + "@esbuild/linux-s390x@0.25.12": + optional: true + "@esbuild/linux-s390x@0.27.3": optional: true + "@esbuild/linux-x64@0.18.20": + optional: true + "@esbuild/linux-x64@0.25.0": optional: true + "@esbuild/linux-x64@0.25.12": + optional: true + "@esbuild/linux-x64@0.27.3": optional: true "@esbuild/netbsd-arm64@0.25.0": optional: true + "@esbuild/netbsd-arm64@0.25.12": + optional: true + "@esbuild/netbsd-arm64@0.27.3": optional: true + "@esbuild/netbsd-x64@0.18.20": + optional: true + "@esbuild/netbsd-x64@0.25.0": optional: true + "@esbuild/netbsd-x64@0.25.12": + optional: true + "@esbuild/netbsd-x64@0.27.3": optional: true "@esbuild/openbsd-arm64@0.25.0": optional: true + "@esbuild/openbsd-arm64@0.25.12": + optional: true + "@esbuild/openbsd-arm64@0.27.3": optional: true + "@esbuild/openbsd-x64@0.18.20": + optional: true + "@esbuild/openbsd-x64@0.25.0": optional: true + "@esbuild/openbsd-x64@0.25.12": + optional: true + "@esbuild/openbsd-x64@0.27.3": optional: true + "@esbuild/openharmony-arm64@0.25.12": + optional: true + "@esbuild/openharmony-arm64@0.27.3": optional: true + "@esbuild/sunos-x64@0.18.20": + optional: true + "@esbuild/sunos-x64@0.25.0": optional: true + "@esbuild/sunos-x64@0.25.12": + optional: true + "@esbuild/sunos-x64@0.27.3": optional: true + "@esbuild/win32-arm64@0.18.20": + optional: true + "@esbuild/win32-arm64@0.25.0": optional: true + "@esbuild/win32-arm64@0.25.12": + optional: true + "@esbuild/win32-arm64@0.27.3": optional: true + "@esbuild/win32-ia32@0.18.20": + optional: true + "@esbuild/win32-ia32@0.25.0": optional: true + "@esbuild/win32-ia32@0.25.12": + optional: true + "@esbuild/win32-ia32@0.27.3": optional: true + "@esbuild/win32-x64@0.18.20": + optional: true + "@esbuild/win32-x64@0.25.0": optional: true + "@esbuild/win32-x64@0.25.12": + optional: true + "@esbuild/win32-x64@0.27.3": optional: true @@ -15117,7 +16275,48 @@ snapshots: "@eslint/core": 1.1.0 levn: 0.4.1 - "@fal-works/esbuild-plugin-global-externals@2.1.2": {} + "@faceless-ui/modal@3.0.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)": + dependencies: + body-scroll-lock: 4.0.0-beta.0 + focus-trap: 7.5.4 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + react-transition-group: 4.4.5(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + + "@faceless-ui/scroll-info@2.0.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)": + dependencies: + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + "@faceless-ui/window-info@3.0.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)": + dependencies: + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + "@floating-ui/core@1.7.4": + dependencies: + "@floating-ui/utils": 0.2.10 + + "@floating-ui/dom@1.7.5": + dependencies: + "@floating-ui/core": 1.7.4 + "@floating-ui/utils": 0.2.10 + + "@floating-ui/react-dom@2.1.7(react-dom@19.2.4(react@19.2.4))(react@19.2.4)": + dependencies: + "@floating-ui/dom": 1.7.5 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + "@floating-ui/react@0.27.18(react-dom@19.2.4(react@19.2.4))(react@19.2.4)": + dependencies: + "@floating-ui/react-dom": 2.1.7(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + "@floating-ui/utils": 0.2.10 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + tabbable: 6.4.0 + + "@floating-ui/utils@0.2.10": {} "@formatjs/ecma402-abstract@2.3.6": dependencies: @@ -15176,18 +16375,6 @@ snapshots: "@formatjs/fast-memoize": 3.1.0 tslib: 2.8.1 - "@grpc/grpc-js@1.14.3": - dependencies: - "@grpc/proto-loader": 0.8.0 - "@js-sdsl/ordered-map": 4.4.2 - - "@grpc/proto-loader@0.8.0": - dependencies: - lodash.camelcase: 4.3.0 - long: 5.3.2 - protobufjs: 7.5.4 - yargs: 17.7.2 - "@humanfs/core@0.19.1": {} "@humanfs/node@0.16.7": @@ -15207,8 +16394,7 @@ snapshots: "@iconify/types": 2.0.0 mlly: 1.8.0 - "@img/colour@1.0.0": - optional: true + "@img/colour@1.0.0": {} "@img/sharp-darwin-arm64@0.34.5": optionalDependencies: @@ -15354,142 +16540,160 @@ snapshots: "@jridgewell/resolve-uri": 3.1.2 "@jridgewell/sourcemap-codec": 1.5.5 - "@js-sdsl/ordered-map@4.4.2": {} - - "@js-temporal/polyfill@0.4.4": - dependencies: - jsbi: 4.3.2 - tslib: 2.8.1 - - "@jsonjoy.com/base64@1.1.2(tslib@2.8.1)": - dependencies: - tslib: 2.8.1 - - "@jsonjoy.com/base64@17.67.0(tslib@2.8.1)": - dependencies: - tslib: 2.8.1 - - "@jsonjoy.com/buffers@1.2.1(tslib@2.8.1)": - dependencies: - tslib: 2.8.1 - - "@jsonjoy.com/buffers@17.67.0(tslib@2.8.1)": - dependencies: - tslib: 2.8.1 - - "@jsonjoy.com/codegen@1.0.0(tslib@2.8.1)": - dependencies: - tslib: 2.8.1 - - "@jsonjoy.com/codegen@17.67.0(tslib@2.8.1)": - dependencies: - tslib: 2.8.1 - - "@jsonjoy.com/fs-core@4.56.10(tslib@2.8.1)": - dependencies: - "@jsonjoy.com/fs-node-builtins": 4.56.10(tslib@2.8.1) - "@jsonjoy.com/fs-node-utils": 4.56.10(tslib@2.8.1) - thingies: 2.5.0(tslib@2.8.1) - tslib: 2.8.1 - - "@jsonjoy.com/fs-fsa@4.56.10(tslib@2.8.1)": - dependencies: - "@jsonjoy.com/fs-core": 4.56.10(tslib@2.8.1) - "@jsonjoy.com/fs-node-builtins": 4.56.10(tslib@2.8.1) - "@jsonjoy.com/fs-node-utils": 4.56.10(tslib@2.8.1) - thingies: 2.5.0(tslib@2.8.1) - tslib: 2.8.1 - - "@jsonjoy.com/fs-node-builtins@4.56.10(tslib@2.8.1)": - dependencies: - tslib: 2.8.1 - - "@jsonjoy.com/fs-node-to-fsa@4.56.10(tslib@2.8.1)": - dependencies: - "@jsonjoy.com/fs-fsa": 4.56.10(tslib@2.8.1) - "@jsonjoy.com/fs-node-builtins": 4.56.10(tslib@2.8.1) - "@jsonjoy.com/fs-node-utils": 4.56.10(tslib@2.8.1) - tslib: 2.8.1 - - "@jsonjoy.com/fs-node-utils@4.56.10(tslib@2.8.1)": - dependencies: - "@jsonjoy.com/fs-node-builtins": 4.56.10(tslib@2.8.1) - tslib: 2.8.1 - - "@jsonjoy.com/fs-node@4.56.10(tslib@2.8.1)": - dependencies: - "@jsonjoy.com/fs-core": 4.56.10(tslib@2.8.1) - "@jsonjoy.com/fs-node-builtins": 4.56.10(tslib@2.8.1) - "@jsonjoy.com/fs-node-utils": 4.56.10(tslib@2.8.1) - "@jsonjoy.com/fs-print": 4.56.10(tslib@2.8.1) - "@jsonjoy.com/fs-snapshot": 4.56.10(tslib@2.8.1) - glob-to-regex.js: 1.2.0(tslib@2.8.1) - thingies: 2.5.0(tslib@2.8.1) - tslib: 2.8.1 - - "@jsonjoy.com/fs-print@4.56.10(tslib@2.8.1)": - dependencies: - "@jsonjoy.com/fs-node-utils": 4.56.10(tslib@2.8.1) - tree-dump: 1.1.0(tslib@2.8.1) - tslib: 2.8.1 - - "@jsonjoy.com/fs-snapshot@4.56.10(tslib@2.8.1)": - dependencies: - "@jsonjoy.com/buffers": 17.67.0(tslib@2.8.1) - "@jsonjoy.com/fs-node-utils": 4.56.10(tslib@2.8.1) - "@jsonjoy.com/json-pack": 17.67.0(tslib@2.8.1) - "@jsonjoy.com/util": 17.67.0(tslib@2.8.1) - tslib: 2.8.1 - - "@jsonjoy.com/json-pack@1.21.0(tslib@2.8.1)": - dependencies: - "@jsonjoy.com/base64": 1.1.2(tslib@2.8.1) - "@jsonjoy.com/buffers": 1.2.1(tslib@2.8.1) - "@jsonjoy.com/codegen": 1.0.0(tslib@2.8.1) - "@jsonjoy.com/json-pointer": 1.0.2(tslib@2.8.1) - "@jsonjoy.com/util": 1.9.0(tslib@2.8.1) - hyperdyperid: 1.2.0 - thingies: 2.5.0(tslib@2.8.1) - tree-dump: 1.1.0(tslib@2.8.1) - tslib: 2.8.1 - - "@jsonjoy.com/json-pack@17.67.0(tslib@2.8.1)": - dependencies: - "@jsonjoy.com/base64": 17.67.0(tslib@2.8.1) - "@jsonjoy.com/buffers": 17.67.0(tslib@2.8.1) - "@jsonjoy.com/codegen": 17.67.0(tslib@2.8.1) - "@jsonjoy.com/json-pointer": 17.67.0(tslib@2.8.1) - "@jsonjoy.com/util": 17.67.0(tslib@2.8.1) - hyperdyperid: 1.2.0 - thingies: 2.5.0(tslib@2.8.1) - tree-dump: 1.1.0(tslib@2.8.1) - tslib: 2.8.1 - - "@jsonjoy.com/json-pointer@1.0.2(tslib@2.8.1)": - dependencies: - "@jsonjoy.com/codegen": 1.0.0(tslib@2.8.1) - "@jsonjoy.com/util": 1.9.0(tslib@2.8.1) - tslib: 2.8.1 - - "@jsonjoy.com/json-pointer@17.67.0(tslib@2.8.1)": - dependencies: - "@jsonjoy.com/util": 17.67.0(tslib@2.8.1) - tslib: 2.8.1 - - "@jsonjoy.com/util@1.9.0(tslib@2.8.1)": - dependencies: - "@jsonjoy.com/buffers": 1.2.1(tslib@2.8.1) - "@jsonjoy.com/codegen": 1.0.0(tslib@2.8.1) - tslib: 2.8.1 - - "@jsonjoy.com/util@17.67.0(tslib@2.8.1)": - dependencies: - "@jsonjoy.com/buffers": 17.67.0(tslib@2.8.1) - "@jsonjoy.com/codegen": 17.67.0(tslib@2.8.1) - tslib: 2.8.1 + "@jsdevtools/ono@7.1.3": {} "@keyv/serialize@1.1.1": {} + "@lexical/clipboard@0.35.0": + dependencies: + "@lexical/html": 0.35.0 + "@lexical/list": 0.35.0 + "@lexical/selection": 0.35.0 + "@lexical/utils": 0.35.0 + lexical: 0.35.0 + + "@lexical/code@0.35.0": + dependencies: + "@lexical/utils": 0.35.0 + lexical: 0.35.0 + prismjs: 1.30.0 + + "@lexical/devtools-core@0.35.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)": + dependencies: + "@lexical/html": 0.35.0 + "@lexical/link": 0.35.0 + "@lexical/mark": 0.35.0 + "@lexical/table": 0.35.0 + "@lexical/utils": 0.35.0 + lexical: 0.35.0 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + "@lexical/dragon@0.35.0": + dependencies: + lexical: 0.35.0 + + "@lexical/hashtag@0.35.0": + dependencies: + "@lexical/utils": 0.35.0 + lexical: 0.35.0 + + "@lexical/headless@0.35.0": + dependencies: + lexical: 0.35.0 + + "@lexical/history@0.35.0": + dependencies: + "@lexical/utils": 0.35.0 + lexical: 0.35.0 + + "@lexical/html@0.35.0": + dependencies: + "@lexical/selection": 0.35.0 + "@lexical/utils": 0.35.0 + lexical: 0.35.0 + + "@lexical/link@0.35.0": + dependencies: + "@lexical/utils": 0.35.0 + lexical: 0.35.0 + + "@lexical/list@0.35.0": + dependencies: + "@lexical/selection": 0.35.0 + "@lexical/utils": 0.35.0 + lexical: 0.35.0 + + "@lexical/mark@0.35.0": + dependencies: + "@lexical/utils": 0.35.0 + lexical: 0.35.0 + + "@lexical/markdown@0.35.0": + dependencies: + "@lexical/code": 0.35.0 + "@lexical/link": 0.35.0 + "@lexical/list": 0.35.0 + "@lexical/rich-text": 0.35.0 + "@lexical/text": 0.35.0 + "@lexical/utils": 0.35.0 + lexical: 0.35.0 + + "@lexical/offset@0.35.0": + dependencies: + lexical: 0.35.0 + + "@lexical/overflow@0.35.0": + dependencies: + lexical: 0.35.0 + + "@lexical/plain-text@0.35.0": + dependencies: + "@lexical/clipboard": 0.35.0 + "@lexical/selection": 0.35.0 + "@lexical/utils": 0.35.0 + lexical: 0.35.0 + + "@lexical/react@0.35.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(yjs@13.6.29)": + dependencies: + "@floating-ui/react": 0.27.18(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + "@lexical/devtools-core": 0.35.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + "@lexical/dragon": 0.35.0 + "@lexical/hashtag": 0.35.0 + "@lexical/history": 0.35.0 + "@lexical/link": 0.35.0 + "@lexical/list": 0.35.0 + "@lexical/mark": 0.35.0 + "@lexical/markdown": 0.35.0 + "@lexical/overflow": 0.35.0 + "@lexical/plain-text": 0.35.0 + "@lexical/rich-text": 0.35.0 + "@lexical/table": 0.35.0 + "@lexical/text": 0.35.0 + "@lexical/utils": 0.35.0 + "@lexical/yjs": 0.35.0(yjs@13.6.29) + lexical: 0.35.0 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + react-error-boundary: 3.1.4(react@19.2.4) + transitivePeerDependencies: + - yjs + + "@lexical/rich-text@0.35.0": + dependencies: + "@lexical/clipboard": 0.35.0 + "@lexical/selection": 0.35.0 + "@lexical/utils": 0.35.0 + lexical: 0.35.0 + + "@lexical/selection@0.35.0": + dependencies: + lexical: 0.35.0 + + "@lexical/table@0.35.0": + dependencies: + "@lexical/clipboard": 0.35.0 + "@lexical/utils": 0.35.0 + lexical: 0.35.0 + + "@lexical/text@0.35.0": + dependencies: + lexical: 0.35.0 + + "@lexical/utils@0.35.0": + dependencies: + "@lexical/list": 0.35.0 + "@lexical/selection": 0.35.0 + "@lexical/table": 0.35.0 + lexical: 0.35.0 + + "@lexical/yjs@0.35.0(yjs@13.6.29)": + dependencies: + "@lexical/offset": 0.35.0 + "@lexical/selection": 0.35.0 + lexical: 0.35.0 + yjs: 13.6.29 + "@lhci/cli@0.15.1": dependencies: "@lhci/utils": 0.15.1 @@ -15532,17 +16736,6 @@ snapshots: - supports-color - utf-8-validate - "@mdx-js/esbuild@3.1.1(esbuild@0.27.3)": - dependencies: - "@mdx-js/mdx": 3.1.1 - "@types/unist": 3.0.3 - esbuild: 0.27.3 - source-map: 0.7.3 - vfile: 6.0.3 - vfile-message: 4.0.3 - transitivePeerDependencies: - - supports-color - "@mdx-js/loader@3.1.1(webpack@5.96.1(esbuild@0.27.3))": dependencies: "@mdx-js/mdx": 3.1.1 @@ -15632,6 +16825,23 @@ snapshots: - supports-color - typescript + "@mintel/eslint-config@1.7.8(eslint@10.0.0(jiti@1.21.7))(typescript@5.9.3)": + dependencies: + "@eslint/eslintrc": 3.3.3 + "@eslint/js": 9.39.2 + "@next/eslint-plugin-next": 16.1.6 + eslint-config-next: 16.1.6(eslint@10.0.0(jiti@1.21.7))(typescript@5.9.3) + eslint-plugin-react: 7.37.5(eslint@10.0.0(jiti@1.21.7)) + eslint-plugin-react-hooks: 7.0.1(eslint@10.0.0(jiti@1.21.7)) + typescript-eslint: 8.54.0(eslint@10.0.0(jiti@1.21.7))(typescript@5.9.3) + transitivePeerDependencies: + - "@typescript-eslint/parser" + - eslint + - eslint-import-resolver-webpack + - eslint-plugin-import-x + - supports-color + - typescript + "@mintel/husky-config@1.7.8": dependencies: "@commitlint/config-conventional": 20.4.1 @@ -15642,11 +16852,11 @@ snapshots: react: 19.2.4 react-dom: 19.2.4(react@19.2.4) - "@mintel/next-config@1.7.8(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(@swc/helpers@0.5.18)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)(webpack@5.96.1(esbuild@0.27.3))": + "@mintel/next-config@1.7.8(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(@swc/helpers@0.5.18)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4)(typescript@5.9.3)(webpack@5.96.1(esbuild@0.27.3))": dependencies: - "@sentry/nextjs": 10.38.0(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)(webpack@5.96.1(esbuild@0.27.3)) - next: 16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - next-intl: 4.8.2(@swc/helpers@0.5.18)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + "@sentry/nextjs": 10.38.0(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(react@19.2.4)(webpack@5.96.1(esbuild@0.27.3)) + next: 16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4) + next-intl: 4.8.2(@swc/helpers@0.5.18)(next@16.1.6(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(react@19.2.4)(typescript@5.9.3) transitivePeerDependencies: - "@babel/core" - "@opentelemetry/api" @@ -15665,11 +16875,11 @@ snapshots: - typescript - webpack - "@mintel/next-config@1.7.8(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(@swc/helpers@0.5.18)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)(webpack@5.96.1)": + "@mintel/next-config@1.7.8(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(@swc/helpers@0.5.18)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4)(typescript@5.9.3)(webpack@5.96.1)": dependencies: - "@sentry/nextjs": 10.38.0(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)(webpack@5.96.1) - next: 16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - next-intl: 4.8.2(@swc/helpers@0.5.18)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + "@sentry/nextjs": 10.38.0(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(next@16.1.6(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(react@19.2.4)(webpack@5.96.1) + next: 16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4) + next-intl: 4.8.2(@swc/helpers@0.5.18)(next@16.1.6(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(react@19.2.4)(typescript@5.9.3) transitivePeerDependencies: - "@babel/core" - "@opentelemetry/api" @@ -15688,11 +16898,11 @@ snapshots: - typescript - webpack - "@mintel/next-utils@1.7.15(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@swc/helpers@0.5.18)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)": + "@mintel/next-utils@1.7.15(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@swc/helpers@0.5.18)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4)(typescript@5.9.3)": dependencies: "@directus/sdk": 21.0.0 - next: 16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - next-intl: 4.8.2(@swc/helpers@0.5.18)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + next: 16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4) + next-intl: 4.8.2(@swc/helpers@0.5.18)(next@16.1.6(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(react@19.2.4)(typescript@5.9.3) zod: 3.22.3 transitivePeerDependencies: - "@babel/core" @@ -15721,6 +16931,17 @@ snapshots: "@mintel/tsconfig@1.7.8": {} + "@monaco-editor/loader@1.7.0": + dependencies: + state-local: 1.0.7 + + "@monaco-editor/react@4.7.0(monaco-editor@0.55.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)": + dependencies: + "@monaco-editor/loader": 1.7.0 + monaco-editor: 0.55.1 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + "@napi-rs/wasm-runtime@0.2.12": dependencies: "@emnapi/core": 1.8.1 @@ -15728,6 +16949,8 @@ snapshots: "@tybys/wasm-util": 0.10.1 optional: true + "@next/env@15.5.12": {} + "@next/env@16.1.6": {} "@next/eslint-plugin-next@16.1.6": @@ -15765,9 +16988,9 @@ snapshots: "@next/swc-win32-x64-msvc@16.1.6": optional: true - "@next/third-parties@16.1.6(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)": + "@next/third-parties@16.1.6(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(react@19.2.4)": dependencies: - next: 16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + next: 16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4) react: 19.2.4 third-party-capital: 1.0.20 @@ -15793,41 +17016,17 @@ snapshots: dependencies: "@opentelemetry/api": 1.9.0 - "@opentelemetry/api-logs@0.57.2": - dependencies: - "@opentelemetry/api": 1.9.0 - "@opentelemetry/api@1.9.0": {} - "@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0)": - dependencies: - "@opentelemetry/api": 1.9.0 - "@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0)": dependencies: "@opentelemetry/api": 1.9.0 - "@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0)": - dependencies: - "@opentelemetry/api": 1.9.0 - "@opentelemetry/semantic-conventions": 1.28.0 - "@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0)": dependencies: "@opentelemetry/api": 1.9.0 "@opentelemetry/semantic-conventions": 1.39.0 - "@opentelemetry/exporter-trace-otlp-grpc@0.57.2(@opentelemetry/api@1.9.0)": - dependencies: - "@grpc/grpc-js": 1.14.3 - "@opentelemetry/api": 1.9.0 - "@opentelemetry/core": 1.30.1(@opentelemetry/api@1.9.0) - "@opentelemetry/otlp-exporter-base": 0.57.2(@opentelemetry/api@1.9.0) - "@opentelemetry/otlp-grpc-exporter-base": 0.57.2(@opentelemetry/api@1.9.0) - "@opentelemetry/otlp-transformer": 0.57.2(@opentelemetry/api@1.9.0) - "@opentelemetry/resources": 1.30.1(@opentelemetry/api@1.9.0) - "@opentelemetry/sdk-trace-base": 1.30.1(@opentelemetry/api@1.9.0) - "@opentelemetry/instrumentation-amqplib@0.58.0(@opentelemetry/api@1.9.0)": dependencies: "@opentelemetry/api": 1.9.0 @@ -16037,75 +17236,14 @@ snapshots: transitivePeerDependencies: - supports-color - "@opentelemetry/otlp-exporter-base@0.57.2(@opentelemetry/api@1.9.0)": - dependencies: - "@opentelemetry/api": 1.9.0 - "@opentelemetry/core": 1.30.1(@opentelemetry/api@1.9.0) - "@opentelemetry/otlp-transformer": 0.57.2(@opentelemetry/api@1.9.0) - - "@opentelemetry/otlp-grpc-exporter-base@0.57.2(@opentelemetry/api@1.9.0)": - dependencies: - "@grpc/grpc-js": 1.14.3 - "@opentelemetry/api": 1.9.0 - "@opentelemetry/core": 1.30.1(@opentelemetry/api@1.9.0) - "@opentelemetry/otlp-exporter-base": 0.57.2(@opentelemetry/api@1.9.0) - "@opentelemetry/otlp-transformer": 0.57.2(@opentelemetry/api@1.9.0) - - "@opentelemetry/otlp-transformer@0.57.2(@opentelemetry/api@1.9.0)": - dependencies: - "@opentelemetry/api": 1.9.0 - "@opentelemetry/api-logs": 0.57.2 - "@opentelemetry/core": 1.30.1(@opentelemetry/api@1.9.0) - "@opentelemetry/resources": 1.30.1(@opentelemetry/api@1.9.0) - "@opentelemetry/sdk-logs": 0.57.2(@opentelemetry/api@1.9.0) - "@opentelemetry/sdk-metrics": 1.30.1(@opentelemetry/api@1.9.0) - "@opentelemetry/sdk-trace-base": 1.30.1(@opentelemetry/api@1.9.0) - protobufjs: 7.5.4 - - "@opentelemetry/propagator-b3@1.30.1(@opentelemetry/api@1.9.0)": - dependencies: - "@opentelemetry/api": 1.9.0 - "@opentelemetry/core": 1.30.1(@opentelemetry/api@1.9.0) - - "@opentelemetry/propagator-jaeger@1.30.1(@opentelemetry/api@1.9.0)": - dependencies: - "@opentelemetry/api": 1.9.0 - "@opentelemetry/core": 1.30.1(@opentelemetry/api@1.9.0) - "@opentelemetry/redis-common@0.38.2": {} - "@opentelemetry/resources@1.30.1(@opentelemetry/api@1.9.0)": - dependencies: - "@opentelemetry/api": 1.9.0 - "@opentelemetry/core": 1.30.1(@opentelemetry/api@1.9.0) - "@opentelemetry/semantic-conventions": 1.28.0 - "@opentelemetry/resources@2.5.0(@opentelemetry/api@1.9.0)": dependencies: "@opentelemetry/api": 1.9.0 "@opentelemetry/core": 2.5.0(@opentelemetry/api@1.9.0) "@opentelemetry/semantic-conventions": 1.39.0 - "@opentelemetry/sdk-logs@0.57.2(@opentelemetry/api@1.9.0)": - dependencies: - "@opentelemetry/api": 1.9.0 - "@opentelemetry/api-logs": 0.57.2 - "@opentelemetry/core": 1.30.1(@opentelemetry/api@1.9.0) - "@opentelemetry/resources": 1.30.1(@opentelemetry/api@1.9.0) - - "@opentelemetry/sdk-metrics@1.30.1(@opentelemetry/api@1.9.0)": - dependencies: - "@opentelemetry/api": 1.9.0 - "@opentelemetry/core": 1.30.1(@opentelemetry/api@1.9.0) - "@opentelemetry/resources": 1.30.1(@opentelemetry/api@1.9.0) - - "@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0)": - dependencies: - "@opentelemetry/api": 1.9.0 - "@opentelemetry/core": 1.30.1(@opentelemetry/api@1.9.0) - "@opentelemetry/resources": 1.30.1(@opentelemetry/api@1.9.0) - "@opentelemetry/semantic-conventions": 1.28.0 - "@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0)": dependencies: "@opentelemetry/api": 1.9.0 @@ -16113,18 +17251,6 @@ snapshots: "@opentelemetry/resources": 2.5.0(@opentelemetry/api@1.9.0) "@opentelemetry/semantic-conventions": 1.39.0 - "@opentelemetry/sdk-trace-node@1.30.1(@opentelemetry/api@1.9.0)": - dependencies: - "@opentelemetry/api": 1.9.0 - "@opentelemetry/context-async-hooks": 1.30.1(@opentelemetry/api@1.9.0) - "@opentelemetry/core": 1.30.1(@opentelemetry/api@1.9.0) - "@opentelemetry/propagator-b3": 1.30.1(@opentelemetry/api@1.9.0) - "@opentelemetry/propagator-jaeger": 1.30.1(@opentelemetry/api@1.9.0) - "@opentelemetry/sdk-trace-base": 1.30.1(@opentelemetry/api@1.9.0) - semver: 7.7.3 - - "@opentelemetry/semantic-conventions@1.28.0": {} - "@opentelemetry/semantic-conventions@1.39.0": {} "@opentelemetry/sql-common@0.41.2(@opentelemetry/api@1.9.0)": @@ -16197,6 +17323,214 @@ snapshots: legacy-javascript: 0.0.1 third-party-web: 0.29.0 + "@payloadcms/db-postgres@3.77.0(@opentelemetry/api@1.9.0)(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))": + dependencies: + "@payloadcms/drizzle": 3.77.0(@opentelemetry/api@1.9.0)(@types/pg@8.10.2)(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(pg@8.16.3) + "@types/pg": 8.10.2 + console-table-printer: 2.12.1 + drizzle-kit: 0.31.7 + drizzle-orm: 0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.10.2)(pg@8.16.3) + payload: 3.77.0(graphql@16.12.0)(typescript@5.9.3) + pg: 8.16.3 + prompts: 2.4.2 + to-snake-case: 1.0.0 + uuid: 10.0.0 + transitivePeerDependencies: + - "@aws-sdk/client-rds-data" + - "@cloudflare/workers-types" + - "@electric-sql/pglite" + - "@libsql/client" + - "@libsql/client-wasm" + - "@neondatabase/serverless" + - "@op-engineering/op-sqlite" + - "@opentelemetry/api" + - "@planetscale/database" + - "@prisma/client" + - "@tidbcloud/serverless" + - "@types/better-sqlite3" + - "@types/sql.js" + - "@upstash/redis" + - "@vercel/postgres" + - "@xata.io/client" + - better-sqlite3 + - bun-types + - expo-sqlite + - gel + - knex + - kysely + - mysql2 + - pg-native + - postgres + - prisma + - sql.js + - sqlite3 + - supports-color + + "@payloadcms/drizzle@3.77.0(@opentelemetry/api@1.9.0)(@types/pg@8.10.2)(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(pg@8.16.3)": + dependencies: + console-table-printer: 2.12.1 + dequal: 2.0.3 + drizzle-orm: 0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.10.2)(pg@8.16.3) + payload: 3.77.0(graphql@16.12.0)(typescript@5.9.3) + prompts: 2.4.2 + to-snake-case: 1.0.0 + uuid: 9.0.0 + transitivePeerDependencies: + - "@aws-sdk/client-rds-data" + - "@cloudflare/workers-types" + - "@electric-sql/pglite" + - "@libsql/client" + - "@libsql/client-wasm" + - "@neondatabase/serverless" + - "@op-engineering/op-sqlite" + - "@opentelemetry/api" + - "@planetscale/database" + - "@prisma/client" + - "@tidbcloud/serverless" + - "@types/better-sqlite3" + - "@types/pg" + - "@types/sql.js" + - "@upstash/redis" + - "@vercel/postgres" + - "@xata.io/client" + - better-sqlite3 + - bun-types + - expo-sqlite + - gel + - knex + - kysely + - mysql2 + - pg + - postgres + - prisma + - sql.js + - sqlite3 + + "@payloadcms/graphql@3.77.0(graphql@16.12.0)(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(typescript@5.9.3)": + dependencies: + graphql: 16.12.0 + graphql-scalars: 1.22.2(graphql@16.12.0) + payload: 3.77.0(graphql@16.12.0)(typescript@5.9.3) + pluralize: 8.0.0 + ts-essentials: 10.0.3(typescript@5.9.3) + tsx: 4.21.0 + transitivePeerDependencies: + - typescript + + "@payloadcms/next@3.77.0(@types/react@19.2.13)(graphql@16.12.0)(monaco-editor@0.55.1)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)": + dependencies: + "@dnd-kit/core": 6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + "@dnd-kit/modifiers": 9.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + "@dnd-kit/sortable": 10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + "@payloadcms/graphql": 3.77.0(graphql@16.12.0)(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(typescript@5.9.3) + "@payloadcms/translations": 3.77.0 + "@payloadcms/ui": 3.77.0(@types/react@19.2.13)(monaco-editor@0.55.1)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + busboy: 1.6.0 + dequal: 2.0.3 + file-type: 19.3.0 + graphql: 16.12.0 + graphql-http: 1.22.4(graphql@16.12.0) + graphql-playground-html: 1.6.30 + http-status: 2.1.0 + next: 16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4) + path-to-regexp: 6.3.0 + payload: 3.77.0(graphql@16.12.0)(typescript@5.9.3) + qs-esm: 7.0.2 + sass: 1.77.4 + uuid: 10.0.0 + transitivePeerDependencies: + - "@types/react" + - monaco-editor + - react + - react-dom + - supports-color + - typescript + + "@payloadcms/richtext-lexical@3.77.0(@faceless-ui/modal@3.0.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@faceless-ui/scroll-info@2.0.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@payloadcms/next@3.77.0(@types/react@19.2.13)(graphql@16.12.0)(monaco-editor@0.55.1)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(@types/react@19.2.13)(monaco-editor@0.55.1)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)(yjs@13.6.29)": + dependencies: + "@faceless-ui/modal": 3.0.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + "@faceless-ui/scroll-info": 2.0.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + "@lexical/clipboard": 0.35.0 + "@lexical/headless": 0.35.0 + "@lexical/html": 0.35.0 + "@lexical/link": 0.35.0 + "@lexical/list": 0.35.0 + "@lexical/mark": 0.35.0 + "@lexical/react": 0.35.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(yjs@13.6.29) + "@lexical/rich-text": 0.35.0 + "@lexical/selection": 0.35.0 + "@lexical/table": 0.35.0 + "@lexical/utils": 0.35.0 + "@payloadcms/next": 3.77.0(@types/react@19.2.13)(graphql@16.12.0)(monaco-editor@0.55.1)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + "@payloadcms/translations": 3.77.0 + "@payloadcms/ui": 3.77.0(@types/react@19.2.13)(monaco-editor@0.55.1)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + "@types/uuid": 10.0.0 + acorn: 8.12.1 + bson-objectid: 2.0.4 + csstype: 3.1.3 + dequal: 2.0.3 + escape-html: 1.0.3 + jsox: 1.2.121 + lexical: 0.35.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-mdx-jsx: 3.1.3 + micromark-extension-mdx-jsx: 3.0.1 + payload: 3.77.0(graphql@16.12.0)(typescript@5.9.3) + qs-esm: 7.0.2 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + react-error-boundary: 4.1.2(react@19.2.4) + ts-essentials: 10.0.3(typescript@5.9.3) + uuid: 10.0.0 + transitivePeerDependencies: + - "@types/react" + - monaco-editor + - next + - supports-color + - typescript + - yjs + + "@payloadcms/translations@3.77.0": + dependencies: + date-fns: 4.1.0 + + "@payloadcms/ui@3.77.0(@types/react@19.2.13)(monaco-editor@0.55.1)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)": + dependencies: + "@date-fns/tz": 1.2.0 + "@dnd-kit/core": 6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + "@dnd-kit/sortable": 10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + "@dnd-kit/utilities": 3.2.2(react@19.2.4) + "@faceless-ui/modal": 3.0.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + "@faceless-ui/scroll-info": 2.0.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + "@faceless-ui/window-info": 3.0.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + "@monaco-editor/react": 4.7.0(monaco-editor@0.55.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + "@payloadcms/translations": 3.77.0 + bson-objectid: 2.0.4 + date-fns: 4.1.0 + dequal: 2.0.3 + md5: 2.3.0 + next: 16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4) + object-to-formdata: 4.5.1 + payload: 3.77.0(graphql@16.12.0)(typescript@5.9.3) + qs-esm: 7.0.2 + react: 19.2.4 + react-datepicker: 7.6.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react-dom: 19.2.4(react@19.2.4) + react-image-crop: 10.1.8(react@19.2.4) + react-select: 5.9.0(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + scheduler: 0.25.0 + sonner: 1.7.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + ts-essentials: 10.0.3(typescript@5.9.3) + use-context-selector: 2.0.0(react@19.2.4)(scheduler@0.25.0) + uuid: 10.0.0 + transitivePeerDependencies: + - "@types/react" + - monaco-editor + - supports-color + - typescript + + "@pinojs/redact@0.4.0": {} + "@pkgjs/parseargs@0.11.0": optional: true @@ -16207,29 +17541,6 @@ snapshots: transitivePeerDependencies: - supports-color - "@protobufjs/aspromise@1.1.2": {} - - "@protobufjs/base64@1.1.2": {} - - "@protobufjs/codegen@2.0.4": {} - - "@protobufjs/eventemitter@1.1.0": {} - - "@protobufjs/fetch@1.1.0": - dependencies: - "@protobufjs/aspromise": 1.1.2 - "@protobufjs/inquire": 1.1.0 - - "@protobufjs/float@1.0.2": {} - - "@protobufjs/inquire@1.1.0": {} - - "@protobufjs/path@1.1.2": {} - - "@protobufjs/pool@1.1.0": {} - - "@protobufjs/utf8@1.1.0": {} - "@puppeteer/browsers@2.12.0": dependencies: debug: 4.4.3 @@ -16895,7 +18206,7 @@ snapshots: "@sentry/utils": 7.120.4 localforage: 1.10.0 - "@sentry/nextjs@10.38.0(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)(webpack@5.96.1(esbuild@0.27.3))": + "@sentry/nextjs@10.38.0(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(react@19.2.4)(webpack@5.96.1(esbuild@0.27.3))": dependencies: "@opentelemetry/api": 1.9.0 "@opentelemetry/semantic-conventions": 1.39.0 @@ -16908,7 +18219,7 @@ snapshots: "@sentry/react": 10.38.0(react@19.2.4) "@sentry/vercel-edge": 10.38.0 "@sentry/webpack-plugin": 4.9.0(webpack@5.96.1(esbuild@0.27.3)) - next: 16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + next: 16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4) rollup: 4.57.1 stacktrace-parser: 0.1.11 transitivePeerDependencies: @@ -16920,7 +18231,7 @@ snapshots: - supports-color - webpack - "@sentry/nextjs@10.38.0(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)(webpack@5.96.1)": + "@sentry/nextjs@10.38.0(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(next@16.1.6(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(react@19.2.4)(webpack@5.96.1)": dependencies: "@opentelemetry/api": 1.9.0 "@opentelemetry/semantic-conventions": 1.39.0 @@ -16933,7 +18244,7 @@ snapshots: "@sentry/react": 10.38.0(react@19.2.4) "@sentry/vercel-edge": 10.38.0 "@sentry/webpack-plugin": 4.9.0(webpack@5.96.1) - next: 16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + next: 16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4) rollup: 4.57.1 stacktrace-parser: 0.1.11 transitivePeerDependencies: @@ -17189,6 +18500,14 @@ snapshots: tslib: 2.8.1 optional: true + "@types/acorn@4.0.6": + dependencies: + "@types/estree": 1.0.8 + + "@types/busboy@1.5.4": + dependencies: + "@types/node": 25.2.0 + "@types/canvas-confetti@1.9.0": {} "@types/connect@3.4.38": @@ -17364,6 +18683,8 @@ snapshots: "@types/json5@0.0.29": {} + "@types/lodash@4.17.23": {} + "@types/mdast@4.0.4": dependencies: "@types/unist": 3.0.3 @@ -17384,10 +18705,18 @@ snapshots: dependencies: "@types/node": 25.2.0 + "@types/parse-json@4.0.2": {} + "@types/pg-pool@2.0.7": dependencies: "@types/pg": 8.15.6 + "@types/pg@8.10.2": + dependencies: + "@types/node": 25.2.0 + pg-protocol: 1.11.0 + pg-types: 4.1.0 + "@types/pg@8.15.6": dependencies: "@types/node": 25.2.0 @@ -17404,12 +18733,14 @@ snapshots: dependencies: "@types/react": 19.2.13 + "@types/react-transition-group@4.4.12(@types/react@19.2.13)": + dependencies: + "@types/react": 19.2.13 + "@types/react@19.2.13": dependencies: csstype: 3.2.3 - "@types/resolve@1.20.6": {} - "@types/sax@1.2.7": dependencies: "@types/node": 25.2.0 @@ -17429,6 +18760,8 @@ snapshots: "@types/use-sync-external-store@0.0.6": {} + "@types/uuid@10.0.0": {} + "@types/yauzl@2.10.3": dependencies: "@types/node": 25.2.0 @@ -17702,6 +19035,8 @@ snapshots: dependencies: acorn: 8.15.0 + acorn@8.12.1: {} + acorn@8.15.0: {} adm-zip@0.5.16: {} @@ -17812,8 +19147,6 @@ snapshots: is-string: 1.1.1 math-intrinsics: 1.1.0 - array-timsort@1.0.3: {} - array.prototype.findlast@1.2.5: dependencies: call-bind: 1.0.8 @@ -17881,6 +19214,8 @@ snapshots: asynckit@0.4.0: {} + atomic-sleep@1.0.0: {} + autoprefixer@10.4.20(postcss@8.4.47): dependencies: browserslist: 4.28.1 @@ -17927,6 +19262,12 @@ snapshots: b4a@1.7.3: {} + babel-plugin-macros@3.1.0: + dependencies: + "@babel/runtime": 7.28.6 + cosmiconfig: 7.1.0 + resolve: 1.22.11 + bail@2.0.2: {} balanced-match@1.0.2: {} @@ -18007,6 +19348,8 @@ snapshots: transitivePeerDependencies: - supports-color + body-scroll-lock@4.0.0-beta.0: {} + boolbase@1.0.0: {} brace-expansion@1.1.12: @@ -18038,6 +19381,8 @@ snapshots: node-releases: 2.0.27 update-browserslist-db: 1.2.3(browserslist@4.28.1) + bson-objectid@2.0.4: {} + buffer-crc32@0.2.13: {} buffer-from@1.1.2: {} @@ -18047,6 +19392,10 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 + busboy@1.6.0: + dependencies: + streamsearch: 1.1.0 + byte-counter@0.1.0: {} bytes@3.1.2: {} @@ -18084,11 +19433,6 @@ snapshots: callsites@4.2.0: {} - camel-case@4.1.2: - dependencies: - pascal-case: 3.1.2 - tslib: 2.8.1 - camelcase-css@2.0.1: {} camelcase@5.3.1: {} @@ -18134,6 +19478,8 @@ snapshots: chardet@2.1.1: {} + charenc@0.0.2: {} + cheerio-select@2.1.0: dependencies: boolbase: 1.0.0 @@ -18230,6 +19576,8 @@ snapshots: - typescript - utf-8-validate + ci-info@4.4.0: {} + cjs-module-lexer@2.2.0: {} classnames@2.5.1: {} @@ -18261,10 +19609,6 @@ snapshots: client-only@0.0.1: {} - clipanion@3.2.1(typanion@3.14.0): - dependencies: - typanion: 3.14.0 - cliui@6.0.0: dependencies: string-width: 4.2.3 @@ -18324,12 +19668,6 @@ snapshots: commander@8.3.0: {} - comment-json@4.5.1: - dependencies: - array-timsort: 1.0.3 - core-util-is: 1.0.3 - esprima: 4.0.1 - commondir@1.0.1: {} compare-func@2.0.0: @@ -18375,27 +19713,16 @@ snapshots: write-file-atomic: 3.0.3 xdg-basedir: 4.0.0 + console-table-printer@2.12.1: + dependencies: + simple-wcswidth: 1.1.2 + content-disposition@0.5.4: dependencies: safe-buffer: 5.2.1 content-type@1.0.5: {} - contentlayer2@0.5.8(esbuild@0.27.3)(tslib@2.8.1): - dependencies: - "@contentlayer2/cli": 0.5.8(esbuild@0.27.3)(tslib@2.8.1) - "@contentlayer2/client": 0.5.8(esbuild@0.27.3)(tslib@2.8.1) - "@contentlayer2/core": 0.5.8(esbuild@0.27.3)(tslib@2.8.1) - "@contentlayer2/source-files": 0.5.8(esbuild@0.27.3)(tslib@2.8.1) - "@contentlayer2/source-remote-files": 0.5.8(esbuild@0.27.3)(tslib@2.8.1) - "@contentlayer2/utils": 0.5.8(tslib@2.8.1) - transitivePeerDependencies: - - "@effect-ts/otel-node" - - esbuild - - markdown-wasm - - supports-color - - tslib - conventional-changelog-conventionalcommits@9.1.0: dependencies: compare-func: 2.0.0 @@ -18404,14 +19731,14 @@ snapshots: dependencies: meow: 13.2.0 + convert-source-map@1.9.0: {} + convert-source-map@2.0.0: {} cookie-signature@1.0.7: {} cookie@0.7.2: {} - core-util-is@1.0.3: {} - cose-base@1.0.3: dependencies: layout-base: 1.0.2 @@ -18420,6 +19747,14 @@ snapshots: dependencies: layout-base: 2.0.1 + cosmiconfig@7.1.0: + dependencies: + "@types/parse-json": 4.0.2 + import-fresh: 3.3.1 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + cosmiconfig@8.3.6(typescript@5.9.3): dependencies: import-fresh: 3.3.1 @@ -18464,12 +19799,16 @@ snapshots: - supports-color - utf-8-validate + croner@9.1.0: {} + cross-spawn@7.0.6: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 + crypt@0.0.2: {} + crypto-js@4.2.0: {} crypto-random-string@2.0.0: {} @@ -18536,6 +19875,8 @@ snapshots: cssesc@3.0.0: {} + cssfilter@0.0.10: {} + cssom@0.5.0: {} cssstyle@4.6.0: @@ -18543,6 +19884,8 @@ snapshots: "@asamuzakjp/css-color": 3.2.0 rrweb-cssom: 0.8.0 + csstype@3.1.3: {} + csstype@3.2.3: {} csv-stringify@6.6.0: {} @@ -18758,6 +20101,14 @@ snapshots: es-errors: 1.3.0 is-data-view: 1.0.2 + dataloader@2.2.3: {} + + date-fns@3.6.0: {} + + date-fns@4.1.0: {} + + dateformat@4.6.3: {} + dayjs@1.11.19: {} debug@2.6.9: @@ -18850,6 +20201,11 @@ snapshots: dependencies: esutils: 2.0.3 + dom-helpers@5.2.1: + dependencies: + "@babel/runtime": 7.28.6 + csstype: 3.2.3 + dom-serializer@2.0.0: dependencies: domelementtype: 2.3.0 @@ -18862,6 +20218,10 @@ snapshots: dependencies: domelementtype: 2.3.0 + dompurify@3.2.7: + optionalDependencies: + "@types/trusted-types": 2.0.7 + dompurify@3.3.1: optionalDependencies: "@types/trusted-types": 2.0.7 @@ -18888,6 +20248,21 @@ snapshots: dotenv@9.0.2: {} + drizzle-kit@0.31.7: + dependencies: + "@drizzle-team/brocli": 0.10.2 + "@esbuild-kit/esm-loader": 2.6.5 + esbuild: 0.25.12 + esbuild-register: 3.6.0(esbuild@0.25.12) + transitivePeerDependencies: + - supports-color + + drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.10.2)(pg@8.16.3): + optionalDependencies: + "@opentelemetry/api": 1.9.0 + "@types/pg": 8.10.2 + pg: 8.16.3 + dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 @@ -19068,6 +20443,38 @@ snapshots: esast-util-from-estree: 2.0.0 vfile-message: 4.0.3 + esbuild-register@3.6.0(esbuild@0.25.12): + dependencies: + debug: 4.4.3 + esbuild: 0.25.12 + transitivePeerDependencies: + - supports-color + + esbuild@0.18.20: + optionalDependencies: + "@esbuild/android-arm": 0.18.20 + "@esbuild/android-arm64": 0.18.20 + "@esbuild/android-x64": 0.18.20 + "@esbuild/darwin-arm64": 0.18.20 + "@esbuild/darwin-x64": 0.18.20 + "@esbuild/freebsd-arm64": 0.18.20 + "@esbuild/freebsd-x64": 0.18.20 + "@esbuild/linux-arm": 0.18.20 + "@esbuild/linux-arm64": 0.18.20 + "@esbuild/linux-ia32": 0.18.20 + "@esbuild/linux-loong64": 0.18.20 + "@esbuild/linux-mips64el": 0.18.20 + "@esbuild/linux-ppc64": 0.18.20 + "@esbuild/linux-riscv64": 0.18.20 + "@esbuild/linux-s390x": 0.18.20 + "@esbuild/linux-x64": 0.18.20 + "@esbuild/netbsd-x64": 0.18.20 + "@esbuild/openbsd-x64": 0.18.20 + "@esbuild/sunos-x64": 0.18.20 + "@esbuild/win32-arm64": 0.18.20 + "@esbuild/win32-ia32": 0.18.20 + "@esbuild/win32-x64": 0.18.20 + esbuild@0.25.0: optionalDependencies: "@esbuild/aix-ppc64": 0.25.0 @@ -19096,6 +20503,35 @@ snapshots: "@esbuild/win32-ia32": 0.25.0 "@esbuild/win32-x64": 0.25.0 + esbuild@0.25.12: + optionalDependencies: + "@esbuild/aix-ppc64": 0.25.12 + "@esbuild/android-arm": 0.25.12 + "@esbuild/android-arm64": 0.25.12 + "@esbuild/android-x64": 0.25.12 + "@esbuild/darwin-arm64": 0.25.12 + "@esbuild/darwin-x64": 0.25.12 + "@esbuild/freebsd-arm64": 0.25.12 + "@esbuild/freebsd-x64": 0.25.12 + "@esbuild/linux-arm": 0.25.12 + "@esbuild/linux-arm64": 0.25.12 + "@esbuild/linux-ia32": 0.25.12 + "@esbuild/linux-loong64": 0.25.12 + "@esbuild/linux-mips64el": 0.25.12 + "@esbuild/linux-ppc64": 0.25.12 + "@esbuild/linux-riscv64": 0.25.12 + "@esbuild/linux-s390x": 0.25.12 + "@esbuild/linux-x64": 0.25.12 + "@esbuild/netbsd-arm64": 0.25.12 + "@esbuild/netbsd-x64": 0.25.12 + "@esbuild/openbsd-arm64": 0.25.12 + "@esbuild/openbsd-x64": 0.25.12 + "@esbuild/openharmony-arm64": 0.25.12 + "@esbuild/sunos-x64": 0.25.12 + "@esbuild/win32-arm64": 0.25.12 + "@esbuild/win32-ia32": 0.25.12 + "@esbuild/win32-x64": 0.25.12 + esbuild@0.27.3: optionalDependencies: "@esbuild/aix-ppc64": 0.27.3 @@ -19133,8 +20569,6 @@ snapshots: escape-string-regexp@4.0.0: {} - escape-string-regexp@5.0.0: {} - escodegen@2.1.0: dependencies: esprima: 4.0.1 @@ -19163,6 +20597,26 @@ snapshots: - eslint-plugin-import-x - supports-color + eslint-config-next@16.1.6(eslint@10.0.0(jiti@1.21.7))(typescript@5.9.3): + dependencies: + "@next/eslint-plugin-next": 16.1.6 + eslint: 10.0.0(jiti@1.21.7) + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@10.0.0(jiti@1.21.7)) + eslint-plugin-import: 2.32.0(eslint-import-resolver-typescript@3.10.1)(eslint@10.0.0(jiti@1.21.7)) + eslint-plugin-jsx-a11y: 6.10.2(eslint@10.0.0(jiti@1.21.7)) + eslint-plugin-react: 7.37.5(eslint@10.0.0(jiti@1.21.7)) + eslint-plugin-react-hooks: 7.0.1(eslint@10.0.0(jiti@1.21.7)) + globals: 16.4.0 + typescript-eslint: 8.54.0(eslint@10.0.0(jiti@1.21.7))(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - "@typescript-eslint/parser" + - eslint-import-resolver-webpack + - eslint-plugin-import-x + - supports-color + eslint-import-resolver-node@0.3.9: dependencies: debug: 3.2.7 @@ -19226,6 +20680,33 @@ snapshots: - eslint-import-resolver-webpack - supports-color + eslint-plugin-import@2.32.0(eslint-import-resolver-typescript@3.10.1)(eslint@10.0.0(jiti@1.21.7)): + dependencies: + "@rtsao/scc": 1.1.0 + array-includes: 3.1.9 + array.prototype.findlastindex: 1.2.6 + array.prototype.flat: 1.3.3 + array.prototype.flatmap: 1.3.3 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 10.0.0(jiti@1.21.7) + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.54.0(eslint@10.0.0(jiti@1.21.7))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@10.0.0(jiti@1.21.7)) + hasown: 2.0.2 + is-core-module: 2.16.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.1 + semver: 6.3.1 + string.prototype.trimend: 1.0.9 + tsconfig-paths: 3.15.0 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + eslint-plugin-jsx-a11y@6.10.2(eslint@10.0.0(jiti@1.21.7)): dependencies: aria-query: 5.3.2 @@ -19383,10 +20864,6 @@ snapshots: astring: 1.9.0 source-map: 0.7.3 - estree-util-value-to-estree@3.5.0: - dependencies: - "@types/estree": 1.0.8 - estree-util-visit@2.0.0: dependencies: "@types/estree-jsx": 1.0.5 @@ -19470,10 +20947,6 @@ snapshots: transitivePeerDependencies: - supports-color - extend-shallow@2.0.1: - dependencies: - is-extendable: 0.1.1 - extend@3.0.2: {} external-editor@3.1.0: @@ -19492,6 +20965,8 @@ snapshots: transitivePeerDependencies: - supports-color + fast-copy@3.0.2: {} + fast-deep-equal@2.0.1: {} fast-deep-equal@3.1.3: {} @@ -19518,16 +20993,14 @@ snapshots: fast-levenshtein@2.0.6: {} + fast-safe-stringify@2.1.1: {} + fast-uri@3.1.0: {} fastq@1.20.1: dependencies: reusify: 1.1.0 - fault@2.0.1: - dependencies: - format: 0.2.2 - fd-slicer@1.1.0: dependencies: pend: 1.2.0 @@ -19556,6 +21029,12 @@ snapshots: dependencies: flat-cache: 4.0.1 + file-type@19.3.0: + dependencies: + strtok3: 8.1.0 + token-types: 6.1.2 + uint8array-extras: 1.5.0 + file-type@20.5.0: dependencies: "@tokenizer/inflate": 0.2.7 @@ -19581,6 +21060,8 @@ snapshots: transitivePeerDependencies: - supports-color + find-root@1.1.0: {} + find-up@4.1.0: dependencies: locate-path: 5.0.0 @@ -19612,6 +21093,10 @@ snapshots: flatted@3.3.3: {} + focus-trap@7.5.4: + dependencies: + tabbable: 6.4.0 + follow-redirects@1.15.11: {} fontkit@2.0.4: @@ -19645,8 +21130,6 @@ snapshots: hasown: 2.0.2 mime-types: 2.1.35 - format@0.2.2: {} - forwarded-parse@2.1.2: {} forwarded@0.2.0: {} @@ -19750,6 +21233,10 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 + get-tsconfig@4.8.1: + dependencies: + resolve-pkg-maps: 1.0.0 + get-uri@6.0.5: dependencies: basic-ftp: 5.1.0 @@ -19766,10 +21253,6 @@ snapshots: dependencies: is-glob: 4.0.3 - glob-to-regex.js@1.2.0(tslib@2.8.1): - dependencies: - tslib: 2.8.1 - glob-to-regexp@0.4.1: {} glob@10.5.0: @@ -19828,12 +21311,20 @@ snapshots: graceful-fs@4.2.11: {} - gray-matter@4.0.3: + graphql-http@1.22.4(graphql@16.12.0): dependencies: - js-yaml: 3.14.2 - kind-of: 6.0.3 - section-matter: 1.0.0 - strip-bom-string: 1.0.0 + graphql: 16.12.0 + + graphql-playground-html@1.6.30: + dependencies: + xss: 1.0.15 + + graphql-scalars@1.22.2(graphql@16.12.0): + dependencies: + graphql: 16.12.0 + tslib: 2.8.1 + + graphql@16.12.0: {} hachure-fill@0.5.2: {} @@ -19861,8 +21352,6 @@ snapshots: dependencies: has-symbols: 1.1.0 - hash-wasm@4.12.0: {} - hasown@2.0.2: dependencies: function-bind: 1.1.2 @@ -19933,6 +21422,8 @@ snapshots: ow: 0.28.2 tslib: 2.8.1 + help-me@5.0.0: {} + hermes-estree@0.25.1: {} hermes-parser@0.25.1: @@ -19941,6 +21432,10 @@ snapshots: hex-rgb@4.3.0: {} + hoist-non-react-statics@3.3.2: + dependencies: + react-is: 16.13.1 + hsl-to-hex@1.0.0: dependencies: hsl-to-rgb-for-reals: 1.1.1 @@ -20005,6 +21500,8 @@ snapshots: transitivePeerDependencies: - supports-color + http-status@2.1.0: {} + http2-wrapper@2.2.1: dependencies: quick-lru: 5.1.1 @@ -20028,8 +21525,6 @@ snapshots: husky@9.1.7: {} - hyperdyperid@1.2.0: {} - hyphen@1.14.1: {} iconv-lite@0.4.24: @@ -20058,9 +21553,9 @@ snapshots: ignore@7.0.5: {} - image-ssim@0.2.0: {} + image-size@2.0.2: {} - imagescript@1.3.1: {} + image-ssim@0.2.0: {} immediate@3.0.6: {} @@ -20068,6 +21563,8 @@ snapshots: immer@11.1.4: {} + immutable@4.3.7: {} + import-fresh@3.3.1: dependencies: parent-module: 1.0.1 @@ -20087,8 +21584,6 @@ snapshots: imurmurhash@0.1.4: {} - inflection@3.0.2: {} - inflight@1.0.6: dependencies: once: 1.4.0 @@ -20193,6 +21688,8 @@ snapshots: ipaddr.js@1.9.1: {} + ipaddr.js@2.2.0: {} + is-alphabetical@2.0.1: {} is-alphanumerical@2.0.1: @@ -20233,6 +21730,8 @@ snapshots: call-bound: 1.0.4 has-tostringtag: 1.0.2 + is-buffer@1.1.6: {} + is-bun-module@2.0.0: dependencies: semver: 7.7.3 @@ -20258,8 +21757,6 @@ snapshots: is-docker@2.2.1: {} - is-extendable@0.1.1: {} - is-extglob@2.1.1: {} is-finalizationregistry@1.1.1: @@ -20375,6 +21872,8 @@ snapshots: transitivePeerDependencies: - encoding + isomorphic.js@0.2.5: {} + iterator.prototype@1.1.5: dependencies: define-data-property: 1.1.4 @@ -20402,6 +21901,10 @@ snapshots: jiti@1.21.7: {} + jose@5.9.6: {} + + joycon@3.1.1: {} + jpeg-js@0.4.4: {} jquery@3.7.1: {} @@ -20419,8 +21922,6 @@ snapshots: dependencies: argparse: 2.0.1 - jsbi@4.3.2: {} - jsdom@26.1.0: dependencies: cssstyle: 4.6.0 @@ -20454,6 +21955,18 @@ snapshots: json-parse-even-better-errors@2.3.1: {} + json-schema-to-typescript@15.0.3: + dependencies: + "@apidevtools/json-schema-ref-parser": 11.9.3 + "@types/json-schema": 7.0.15 + "@types/lodash": 4.17.23 + is-glob: 4.0.3 + js-yaml: 4.1.1 + lodash: 4.17.23 + minimist: 1.2.8 + prettier: 3.8.1 + tinyglobby: 0.2.15 + json-schema-traverse@0.4.1: {} json-schema-traverse@1.0.0: {} @@ -20472,6 +21985,8 @@ snapshots: optionalDependencies: graceful-fs: 4.2.11 + jsox@1.2.121: {} + jsx-ast-utils@3.3.5: dependencies: array-includes: 3.1.9 @@ -20493,8 +22008,6 @@ snapshots: khroma@2.1.0: {} - kind-of@6.0.3: {} - kleur@3.0.3: {} langium@3.3.1: @@ -20524,6 +22037,12 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 + lexical@0.35.0: {} + + lib0@0.2.117: + dependencies: + isomorphic.js: 0.2.5 + lie@3.1.1: dependencies: immediate: 3.0.6 @@ -20646,8 +22165,6 @@ snapshots: lodash-es@4.17.23: {} - lodash.camelcase@4.3.0: {} - lodash.defaults@4.2.0: {} lodash.isarguments@3.1.0: {} @@ -20673,8 +22190,6 @@ snapshots: strip-ansi: 7.1.2 wrap-ansi: 9.0.2 - long@5.3.2: {} - longest-streak@3.1.0: {} lookup-closest-locale@6.2.0: {} @@ -20685,10 +22200,6 @@ snapshots: lottie-web@5.13.0: {} - lower-case@2.0.2: - dependencies: - tslib: 2.8.1 - lowercase-keys@3.0.0: {} lru-cache@10.4.3: {} @@ -20723,6 +22234,8 @@ snapshots: markdown-extensions@2.0.0: {} + marked@14.0.0: {} + marked@16.4.2: {} marked@7.0.4: {} @@ -20736,6 +22249,12 @@ snapshots: marked: 7.0.4 react: 19.2.4 + md5@2.3.0: + dependencies: + charenc: 0.0.2 + crypt: 0.0.2 + is-buffer: 1.1.6 + mdast-util-from-markdown@2.0.2: dependencies: "@types/mdast": 4.0.4 @@ -20753,17 +22272,6 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-frontmatter@2.0.1: - dependencies: - "@types/mdast": 4.0.4 - devlop: 1.1.0 - escape-string-regexp: 5.0.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - micromark-extension-frontmatter: 2.0.0 - transitivePeerDependencies: - - supports-color - mdast-util-mdx-expression@2.0.1: dependencies: "@types/estree-jsx": 1.0.5 @@ -20775,6 +22283,23 @@ snapshots: transitivePeerDependencies: - supports-color + mdast-util-mdx-jsx@3.1.3: + dependencies: + "@types/estree-jsx": 1.0.5 + "@types/hast": 3.0.4 + "@types/mdast": 4.0.4 + "@types/unist": 3.0.3 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + parse-entities: 4.0.2 + stringify-entities: 4.0.4 + unist-util-stringify-position: 4.0.0 + vfile-message: 4.0.3 + transitivePeerDependencies: + - supports-color + mdast-util-mdx-jsx@3.2.0: dependencies: "@types/estree-jsx": 1.0.5 @@ -20846,21 +22371,6 @@ snapshots: dependencies: "@types/mdast": 4.0.4 - mdx-bundler@10.1.1(esbuild@0.27.3): - dependencies: - "@babel/runtime": 7.28.6 - "@esbuild-plugins/node-resolve": 0.2.2(esbuild@0.27.3) - "@fal-works/esbuild-plugin-global-externals": 2.1.2 - "@mdx-js/esbuild": 3.1.1(esbuild@0.27.3) - esbuild: 0.27.3 - gray-matter: 4.0.3 - remark-frontmatter: 5.0.0 - remark-mdx-frontmatter: 4.0.0 - uuid: 9.0.1 - vfile: 6.0.3 - transitivePeerDependencies: - - supports-color - media-engine@1.0.3: {} media-typer@0.3.0: {} @@ -20874,22 +22384,7 @@ snapshots: dependencies: fs-monkey: 1.0.3 - memfs@4.56.10(tslib@2.8.1): - dependencies: - "@jsonjoy.com/fs-core": 4.56.10(tslib@2.8.1) - "@jsonjoy.com/fs-fsa": 4.56.10(tslib@2.8.1) - "@jsonjoy.com/fs-node": 4.56.10(tslib@2.8.1) - "@jsonjoy.com/fs-node-builtins": 4.56.10(tslib@2.8.1) - "@jsonjoy.com/fs-node-to-fsa": 4.56.10(tslib@2.8.1) - "@jsonjoy.com/fs-node-utils": 4.56.10(tslib@2.8.1) - "@jsonjoy.com/fs-print": 4.56.10(tslib@2.8.1) - "@jsonjoy.com/fs-snapshot": 4.56.10(tslib@2.8.1) - "@jsonjoy.com/json-pack": 1.21.0(tslib@2.8.1) - "@jsonjoy.com/util": 1.9.0(tslib@2.8.1) - glob-to-regex.js: 1.2.0(tslib@2.8.1) - thingies: 2.5.0(tslib@2.8.1) - tree-dump: 1.1.0(tslib@2.8.1) - tslib: 2.8.1 + memoize-one@6.0.0: {} meow@13.2.0: {} @@ -20945,13 +22440,6 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - micromark-extension-frontmatter@2.0.0: - dependencies: - fault: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - micromark-extension-mdx-expression@3.0.1: dependencies: "@types/estree": 1.0.8 @@ -20963,6 +22451,20 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 + micromark-extension-mdx-jsx@3.0.1: + dependencies: + "@types/acorn": 4.0.6 + "@types/estree": 1.0.8 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + micromark-factory-mdx-expression: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + vfile-message: 4.0.3 + micromark-extension-mdx-jsx@3.0.2: dependencies: "@types/estree": 1.0.8 @@ -21216,6 +22718,11 @@ snapshots: module-details-from-path@1.0.4: {} + monaco-editor@0.55.1: + dependencies: + dompurify: 3.2.7 + marked: 14.0.0 + motion-dom@12.31.2: dependencies: motion-utils: 12.29.2 @@ -21256,31 +22763,16 @@ snapshots: netmask@2.0.2: {} - next-contentlayer2@0.5.8(contentlayer2@0.5.8(esbuild@0.27.3)(tslib@2.8.1))(esbuild@0.27.3)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tslib@2.8.1): - dependencies: - "@contentlayer2/core": 0.5.8(esbuild@0.27.3)(tslib@2.8.1) - "@contentlayer2/utils": 0.5.8(tslib@2.8.1) - contentlayer2: 0.5.8(esbuild@0.27.3)(tslib@2.8.1) - next: 16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - transitivePeerDependencies: - - "@effect-ts/otel-node" - - esbuild - - markdown-wasm - - supports-color - - tslib - next-intl-swc-plugin-extractor@4.8.2: {} - next-intl@4.8.2(@swc/helpers@0.5.18)(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)(typescript@5.9.3): + next-intl@4.8.2(@swc/helpers@0.5.18)(next@16.1.6(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(react@19.2.4)(typescript@5.9.3): dependencies: "@formatjs/intl-localematcher": 0.5.10 "@parcel/watcher": 2.5.6 "@swc/core": 1.15.11(@swc/helpers@0.5.18) icu-minify: 4.8.2 negotiator: 1.0.0 - next: 16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + next: 16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4) next-intl-swc-plugin-extractor: 4.8.2 po-parser: 2.1.1 react: 19.2.4 @@ -21304,7 +22796,7 @@ snapshots: - "@types/react" - supports-color - next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4): dependencies: "@next/env": 16.1.6 "@swc/helpers": 0.5.15 @@ -21324,16 +22816,12 @@ snapshots: "@next/swc-win32-arm64-msvc": 16.1.6 "@next/swc-win32-x64-msvc": 16.1.6 "@opentelemetry/api": 1.9.0 + sass: 1.77.4 sharp: 0.34.5 transitivePeerDependencies: - "@babel/core" - babel-plugin-macros - no-case@3.0.4: - dependencies: - lower-case: 2.0.2 - tslib: 2.8.1 - node-addon-api@7.1.1: {} node-fetch@2.7.0: @@ -21372,6 +22860,8 @@ snapshots: object-keys@1.1.1: {} + object-to-formdata@4.5.1: {} + object.assign@4.1.7: dependencies: call-bind: 1.0.8 @@ -21408,6 +22898,10 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.1.1 + obuf@1.1.2: {} + + on-exit-leak-free@2.1.2: {} + on-finished@2.4.1: dependencies: ee-first: 1.1.1 @@ -21436,8 +22930,6 @@ snapshots: regex: 5.1.1 regex-recursion: 5.1.1 - oo-ascii-tree@1.126.0: {} - open@7.4.2: dependencies: is-docker: 2.2.1 @@ -21599,11 +23091,6 @@ snapshots: parseurl@1.3.3: {} - pascal-case@3.1.2: - dependencies: - no-case: 3.0.4 - tslib: 2.8.1 - path-data-parser@0.1.0: {} path-exists@4.0.0: {} @@ -21621,6 +23108,8 @@ snapshots: path-to-regexp@0.1.12: {} + path-to-regexp@6.3.0: {} + path-type@4.0.0: {} pathe@2.0.3: {} @@ -21629,12 +23118,64 @@ snapshots: dependencies: through: 2.3.8 + payload@3.77.0(graphql@16.12.0)(typescript@5.9.3): + dependencies: + "@next/env": 15.5.12 + "@payloadcms/translations": 3.77.0 + "@types/busboy": 1.5.4 + ajv: 8.17.1 + bson-objectid: 2.0.4 + busboy: 1.6.0 + ci-info: 4.4.0 + console-table-printer: 2.12.1 + croner: 9.1.0 + dataloader: 2.2.3 + deepmerge: 4.3.1 + file-type: 19.3.0 + get-tsconfig: 4.8.1 + graphql: 16.12.0 + http-status: 2.1.0 + image-size: 2.0.2 + ipaddr.js: 2.2.0 + jose: 5.9.6 + json-schema-to-typescript: 15.0.3 + minimist: 1.2.8 + path-to-regexp: 6.3.0 + pino: 9.14.0 + pino-pretty: 13.1.2 + pluralize: 8.0.0 + qs-esm: 7.0.2 + range-parser: 1.2.1 + sanitize-filename: 1.6.3 + ts-essentials: 10.0.3(typescript@5.9.3) + tsx: 4.21.0 + undici: 7.18.2 + uuid: 10.0.0 + ws: 8.19.0 + transitivePeerDependencies: + - bufferutil + - typescript + - utf-8-validate + peberminta@0.9.0: {} + peek-readable@5.4.2: {} + pend@1.2.0: {} + pg-cloudflare@1.3.0: + optional: true + + pg-connection-string@2.11.0: {} + pg-int8@1.0.1: {} + pg-numeric@1.0.2: {} + + pg-pool@3.11.0(pg@8.16.3): + dependencies: + pg: 8.16.3 + pg-protocol@1.11.0: {} pg-types@2.2.0: @@ -21645,6 +23186,30 @@ snapshots: postgres-date: 1.0.7 postgres-interval: 1.2.0 + pg-types@4.1.0: + dependencies: + pg-int8: 1.0.1 + pg-numeric: 1.0.2 + postgres-array: 3.0.4 + postgres-bytea: 3.0.0 + postgres-date: 2.1.0 + postgres-interval: 3.0.0 + postgres-range: 1.1.4 + + pg@8.16.3: + dependencies: + pg-connection-string: 2.11.0 + pg-pool: 3.11.0(pg@8.16.3) + pg-protocol: 1.11.0 + pg-types: 2.2.0 + pgpass: 1.0.5 + optionalDependencies: + pg-cloudflare: 1.3.0 + + pgpass@1.0.5: + dependencies: + split2: 4.2.0 + picocolors@1.1.1: {} picomatch@2.3.1: {} @@ -21655,6 +23220,42 @@ snapshots: pify@2.3.0: {} + pino-abstract-transport@2.0.0: + dependencies: + split2: 4.2.0 + + pino-pretty@13.1.2: + dependencies: + colorette: 2.0.20 + dateformat: 4.6.3 + fast-copy: 3.0.2 + fast-safe-stringify: 2.1.1 + help-me: 5.0.0 + joycon: 3.1.1 + minimist: 1.2.8 + on-exit-leak-free: 2.1.2 + pino-abstract-transport: 2.0.0 + pump: 3.0.3 + secure-json-parse: 4.1.0 + sonic-boom: 4.2.1 + strip-json-comments: 5.0.3 + + pino-std-serializers@7.1.0: {} + + pino@9.14.0: + dependencies: + "@pinojs/redact": 0.4.0 + atomic-sleep: 1.0.0 + on-exit-leak-free: 2.1.2 + pino-abstract-transport: 2.0.0 + pino-std-serializers: 7.1.0 + process-warning: 5.0.0 + quick-format-unescaped: 4.0.4 + real-require: 0.2.0 + safe-stable-stringify: 2.5.0 + sonic-boom: 4.2.1 + thread-stream: 3.1.0 + pirates@4.0.7: {} pkg-dir@4.2.0: @@ -21675,6 +23276,8 @@ snapshots: optionalDependencies: fsevents: 2.3.2 + pluralize@8.0.0: {} + pngjs@5.0.0: {} po-parser@2.1.1: {} @@ -21990,14 +23593,26 @@ snapshots: postgres-array@2.0.0: {} + postgres-array@3.0.4: {} + postgres-bytea@1.0.1: {} + postgres-bytea@3.0.0: + dependencies: + obuf: 1.1.2 + postgres-date@1.0.7: {} + postgres-date@2.1.0: {} + postgres-interval@1.2.0: dependencies: xtend: 4.0.2 + postgres-interval@3.0.0: {} + + postgres-range@1.1.4: {} + prelude-ls@1.2.1: {} prettier@3.4.2: {} @@ -22008,6 +23623,8 @@ snapshots: prismjs@1.30.0: {} + process-warning@5.0.0: {} + progress@2.0.3: {} prompts@2.4.2: @@ -22029,21 +23646,6 @@ snapshots: property-information@7.1.0: {} - protobufjs@7.5.4: - dependencies: - "@protobufjs/aspromise": 1.1.2 - "@protobufjs/base64": 1.1.2 - "@protobufjs/codegen": 2.0.4 - "@protobufjs/eventemitter": 1.1.0 - "@protobufjs/fetch": 1.1.0 - "@protobufjs/float": 1.0.2 - "@protobufjs/inquire": 1.1.0 - "@protobufjs/path": 1.1.2 - "@protobufjs/pool": 1.1.0 - "@protobufjs/utf8": 1.1.0 - "@types/node": 25.2.0 - long: 5.3.2 - proxy-addr@2.0.7: dependencies: forwarded: 0.2.0 @@ -22119,6 +23721,8 @@ snapshots: pngjs: 5.0.0 yargs: 15.4.1 + qs-esm@7.0.2: {} + qs@6.14.1: dependencies: side-channel: 1.1.0 @@ -22129,6 +23733,8 @@ snapshots: dependencies: inherits: 2.0.4 + quick-format-unescaped@4.0.4: {} + quick-lru@5.1.1: {} quick-lru@7.3.0: {} @@ -22146,16 +23752,38 @@ snapshots: iconv-lite: 0.4.24 unpipe: 1.0.0 + react-datepicker@7.6.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + dependencies: + "@floating-ui/react": 0.27.18(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + clsx: 2.1.1 + date-fns: 3.6.0 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + react-dom@19.2.4(react@19.2.4): dependencies: react: 19.2.4 scheduler: 0.27.0 + react-error-boundary@3.1.4(react@19.2.4): + dependencies: + "@babel/runtime": 7.28.6 + react: 19.2.4 + + react-error-boundary@4.1.2(react@19.2.4): + dependencies: + "@babel/runtime": 7.28.6 + react: 19.2.4 + react-html-props@2.1.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: react: 19.2.4 react-dom: 19.2.4(react@19.2.4) + react-image-crop@10.1.8(react@19.2.4): + dependencies: + react: 19.2.4 + react-is@16.13.1: {} react-promise-suspense@0.3.4: @@ -22173,6 +23801,23 @@ snapshots: react-refresh@0.9.0: {} + react-select@5.9.0(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + dependencies: + "@babel/runtime": 7.28.6 + "@emotion/cache": 11.14.0 + "@emotion/react": 11.14.0(@types/react@19.2.13)(react@19.2.4) + "@floating-ui/dom": 1.7.5 + "@types/react-transition-group": 4.4.12(@types/react@19.2.13) + memoize-one: 6.0.0 + prop-types: 15.8.1 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + react-transition-group: 4.4.5(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + use-isomorphic-layout-effect: 1.2.1(@types/react@19.2.13)(react@19.2.4) + transitivePeerDependencies: + - "@types/react" + - supports-color + react-social-media-embed@2.5.18(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: "@types/youtube-player": 5.5.11 @@ -22191,6 +23836,15 @@ snapshots: react: 19.2.4 react-dom: 19.2.4(react@19.2.4) + react-transition-group@4.4.5(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + dependencies: + "@babel/runtime": 7.28.6 + dom-helpers: 5.2.1 + loose-envify: 1.4.0 + prop-types: 15.8.1 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + react-tweet@3.3.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: "@swc/helpers": 0.5.18 @@ -22230,6 +23884,8 @@ snapshots: dependencies: picomatch: 2.3.1 + real-require@0.2.0: {} + recast@0.23.11: dependencies: ast-types: 0.16.1 @@ -22338,30 +23994,6 @@ snapshots: transitivePeerDependencies: - supports-color - rehype-stringify@10.0.1: - dependencies: - "@types/hast": 3.0.4 - hast-util-to-html: 9.0.5 - unified: 11.0.5 - - remark-frontmatter@5.0.0: - dependencies: - "@types/mdast": 4.0.4 - mdast-util-frontmatter: 2.0.1 - micromark-extension-frontmatter: 2.0.0 - unified: 11.0.5 - transitivePeerDependencies: - - supports-color - - remark-mdx-frontmatter@4.0.0: - dependencies: - "@types/mdast": 4.0.4 - estree-util-is-identifier-name: 3.0.0 - estree-util-value-to-estree: 3.5.0 - toml: 3.0.0 - unified: 11.0.5 - yaml: 2.8.2 - remark-mdx@3.1.1: dependencies: mdast-util-mdx: 3.0.0 @@ -22548,12 +24180,20 @@ snapshots: es-errors: 1.3.0 is-regex: 1.2.1 + safe-stable-stringify@2.5.0: {} + safer-buffer@2.1.2: {} sanitize-filename@1.6.3: dependencies: truncate-utf8-bytes: 1.0.2 + sass@1.77.4: + dependencies: + chokidar: 3.6.0 + immutable: 4.3.7 + source-map-js: 1.2.1 + satori@0.16.0: dependencies: "@shuding/opentype.js": 1.4.0-beta.0 @@ -22574,6 +24214,8 @@ snapshots: dependencies: xmlchars: 2.2.0 + scheduler@0.25.0: {} + scheduler@0.25.0-rc-603e6108-20241029: {} scheduler@0.27.0: {} @@ -22593,10 +24235,7 @@ snapshots: scriptjs@2.5.9: {} - section-matter@1.0.0: - dependencies: - extend-shallow: 2.0.1 - kind-of: 6.0.3 + secure-json-parse@4.1.0: {} selderee@0.11.0: dependencies: @@ -22699,7 +24338,6 @@ snapshots: "@img/sharp-win32-arm64": 0.34.5 "@img/sharp-win32-ia32": 0.34.5 "@img/sharp-win32-x64": 0.34.5 - optional: true shebang-command@2.0.0: dependencies: @@ -22756,6 +24394,8 @@ snapshots: dependencies: is-arrayish: 0.3.4 + simple-wcswidth@1.1.2: {} + sister@3.0.2: {} sisteransi@1.0.5: {} @@ -22780,6 +24420,15 @@ snapshots: ip-address: 10.1.0 smart-buffer: 4.2.0 + sonic-boom@4.2.1: + dependencies: + atomic-sleep: 1.0.0 + + sonner@1.7.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + dependencies: + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + source-map-js@1.2.1: {} source-map-support@0.5.21: @@ -22787,6 +24436,8 @@ snapshots: buffer-from: 1.1.2 source-map: 0.6.1 + source-map@0.5.7: {} + source-map@0.6.1: {} source-map@0.7.3: {} @@ -22803,6 +24454,8 @@ snapshots: image-ssim: 0.2.0 jpeg-js: 0.4.4 + split2@4.2.0: {} + split@0.3.3: dependencies: through: 2.3.8 @@ -22819,6 +24472,8 @@ snapshots: standard-as-callback@2.1.0: {} + state-local@1.0.7: {} + statuses@2.0.2: {} stop-iteration-iterator@1.1.0: @@ -22836,6 +24491,8 @@ snapshots: dependencies: stream-chain: 2.2.5 + streamsearch@1.1.0: {} + streamx@2.23.0: dependencies: events-universal: 1.0.1 @@ -22958,18 +24615,23 @@ snapshots: dependencies: ansi-regex: 6.2.2 - strip-bom-string@1.0.0: {} - strip-bom@3.0.0: {} strip-final-newline@2.0.0: {} strip-json-comments@3.1.1: {} + strip-json-comments@5.0.3: {} + strtok3@10.3.4: dependencies: "@tokenizer/token": 0.3.0 + strtok3@8.1.0: + dependencies: + "@tokenizer/token": 0.3.0 + peek-readable: 5.4.2 + style-loader@4.0.0(webpack@5.96.1(esbuild@0.27.3)): dependencies: webpack: 5.96.1(esbuild@0.27.3) @@ -22989,6 +24651,8 @@ snapshots: optionalDependencies: "@babel/core": 7.29.0 + stylis@4.2.0: {} + stylis@4.3.6: {} sucrase@3.35.1: @@ -23027,6 +24691,8 @@ snapshots: symbol-tree@3.2.4: {} + tabbable@6.4.0: {} + tailwind-merge@3.4.0: {} tailwindcss@3.4.13: @@ -23159,16 +24825,16 @@ snapshots: dependencies: any-promise: 1.3.0 - thingies@2.5.0(tslib@2.8.1): - dependencies: - tslib: 2.8.1 - third-party-capital@1.0.20: {} third-party-web@0.26.7: {} third-party-web@0.29.0: {} + thread-stream@3.1.0: + dependencies: + real-require: 0.2.0 + through@2.3.8: {} tiny-inflate@1.0.3: {} @@ -23208,10 +24874,20 @@ snapshots: dependencies: rimraf: 2.7.1 + to-no-case@1.0.2: {} + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 + to-snake-case@1.0.0: + dependencies: + to-space-case: 1.0.0 + + to-space-case@1.0.0: + dependencies: + to-no-case: 1.0.2 + toidentifier@1.0.1: {} token-types@6.1.2: @@ -23220,8 +24896,6 @@ snapshots: "@tokenizer/token": 0.3.0 ieee754: 1.2.1 - toml@3.0.0: {} - tough-cookie@5.1.2: dependencies: tldts: 6.1.86 @@ -23240,10 +24914,6 @@ snapshots: dependencies: punycode: 2.3.1 - tree-dump@1.1.0(tslib@2.8.1): - dependencies: - tslib: 2.8.1 - tree-kill@1.2.2: {} trim-lines@3.0.1: {} @@ -23260,9 +24930,11 @@ snapshots: ts-dedent@2.2.0: {} - ts-interface-checker@0.1.13: {} + ts-essentials@10.0.3(typescript@5.9.3): + optionalDependencies: + typescript: 5.9.3 - ts-pattern@5.9.0: {} + ts-interface-checker@0.1.13: {} tsconfig-paths@3.15.0: dependencies: @@ -23282,8 +24954,6 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - typanion@3.14.0: {} - type-check@0.4.0: dependencies: prelude-ls: 1.2.1 @@ -23368,6 +25038,8 @@ snapshots: undici-types@7.16.0: {} + undici@7.18.2: {} + undici@7.20.0: {} unicode-properties@1.4.1: @@ -23472,6 +25144,11 @@ snapshots: dependencies: punycode: 2.3.1 + use-context-selector@2.0.0(react@19.2.4)(scheduler@0.25.0): + dependencies: + react: 19.2.4 + scheduler: 0.25.0 + use-intl@4.8.2(react@19.2.4): dependencies: "@formatjs/fast-memoize": 3.1.0 @@ -23480,6 +25157,12 @@ snapshots: intl-messageformat: 11.1.2 react: 19.2.4 + use-isomorphic-layout-effect@1.2.1(@types/react@19.2.13)(react@19.2.4): + dependencies: + react: 19.2.4 + optionalDependencies: + "@types/react": 19.2.13 + use-sync-external-store@1.6.0(react@19.2.4): dependencies: react: 19.2.4 @@ -23490,10 +25173,14 @@ snapshots: utils-merge@1.0.1: {} + uuid@10.0.0: {} + uuid@11.1.0: {} uuid@8.3.2: {} + uuid@9.0.0: {} + uuid@9.0.1: {} vali-date@1.0.0: {} @@ -23816,6 +25503,11 @@ snapshots: xmlchars@2.2.0: {} + xss@1.0.15: + dependencies: + commander: 2.20.3 + cssfilter: 0.0.10 + xtend@4.0.2: {} y18n@4.0.3: {} @@ -23826,6 +25518,8 @@ snapshots: yallist@4.0.0: {} + yaml@1.10.2: {} + yaml@2.8.2: {} yargonaut@1.1.4: @@ -23875,6 +25569,10 @@ snapshots: buffer-crc32: 0.2.13 fd-slicer: 1.1.0 + yjs@13.6.29: + dependencies: + lib0: 0.2.117 + yocto-queue@0.1.0: {} yoctocolors-cjs@2.1.3: {} diff --git a/scripts/sync-directus.sh b/scripts/sync-directus.sh deleted file mode 100755 index 98cd0e0..0000000 --- a/scripts/sync-directus.sh +++ /dev/null @@ -1,116 +0,0 @@ -#!/bin/bash - -# Configuration -REMOTE_HOST="${SSH_HOST:-root@alpha.mintel.me}" -ACTION=$1 -ENV=$2 - -# Help -if [ -z "$ACTION" ] || [ -z "$ENV" ]; then - echo "Usage: ./scripts/sync-directus.sh [push|pull] [testing|staging|production]" - echo "" - echo "Commands:" - echo " push Sync LOCAL data -> REMOTE" - echo " pull Sync REMOTE data -> LOCAL" - echo "" - echo "Environments:" - echo " testing, staging, production" - exit 1 -fi - -# Project Configuration -PRJ_ID="mintel-me" -REMOTE_DIR="/home/deploy/sites/mintel.me" - -case $ENV in - testing) PROJECT_NAME="${PRJ_ID}-testing"; ENV_FILE=".env.testing" ;; - staging) PROJECT_NAME="${PRJ_ID}-staging"; ENV_FILE=".env.staging" ;; - production) PROJECT_NAME="${PRJ_ID}-prod"; ENV_FILE=".env.prod" ;; - *) echo "❌ Invalid environment: $ENV"; exit 1 ;; -esac - -# DB Details -DB_USER="directus" -DB_NAME="directus" - -echo "🔍 Detecting local database..." -# Check root or apps/web for docker-compose context -if [ -f "docker-compose.yml" ]; then - COMPOSE_CMD="docker compose" -elif [ -f "../../docker-compose.yml" ]; then - COMPOSE_CMD="docker compose -f ../../docker-compose.yml" -else - echo "❌ docker-compose.yml not found." - exit 1 -fi - -LOCAL_DB_CONTAINER=$($COMPOSE_CMD ps -q directus-db) -if [ -z "$LOCAL_DB_CONTAINER" ]; then - echo "❌ Local directus-db container not found. Is it running?" - exit 1 -fi - -if [ "$ACTION" == "push" ]; then - echo "🚀 Pushing LOCAL -> $ENV ($PROJECT_NAME)..." - - echo "📦 Dumping local database..." - docker exec "$LOCAL_DB_CONTAINER" pg_dump -U "$DB_USER" --clean --if-exists --no-owner --no-privileges "$DB_NAME" > dump.sql - - echo "📤 Uploading dump to remote server..." - scp dump.sql "$REMOTE_HOST:$REMOTE_DIR/dump.sql" - - echo "🔄 Restoring dump on $ENV..." - REMOTE_DB_CONTAINER=$(ssh "$REMOTE_HOST" "cd $REMOTE_DIR && docker compose -p $PROJECT_NAME ps -q directus-db") - - if [ -z "$REMOTE_DB_CONTAINER" ]; then - echo "❌ Remote $ENV-db container not found!" - exit 1 - fi - - echo "🧹 Wiping remote database schema..." - ssh "$REMOTE_HOST" "docker exec $REMOTE_DB_CONTAINER psql -U $DB_USER $DB_NAME -c 'DROP SCHEMA public CASCADE; CREATE SCHEMA public;'" - - echo "⚡ Restoring database..." - ssh "$REMOTE_HOST" "docker exec -i $REMOTE_DB_CONTAINER psql -U $DB_USER $DB_NAME < $REMOTE_DIR/dump.sql" - - echo "📁 Syncing uploads (Local -> $ENV)..." - rsync -avz --progress ./directus/uploads/ "$REMOTE_HOST:$REMOTE_DIR/directus/uploads/" - - rm dump.sql - ssh "$REMOTE_HOST" "rm $REMOTE_DIR/dump.sql" - - echo "🔄 Restarting remote Directus..." - ssh "$REMOTE_HOST" "cd $REMOTE_DIR && docker compose -p $PROJECT_NAME restart directus" - - echo "✨ Push to $ENV complete!" - -elif [ "$ACTION" == "pull" ]; then - echo "📥 Pulling $ENV Data -> LOCAL..." - - echo "📦 Dumping remote database ($ENV)..." - REMOTE_DB_CONTAINER=$(ssh "$REMOTE_HOST" "cd $REMOTE_DIR && docker compose -p $PROJECT_NAME ps -q directus-db") - - if [ -z "$REMOTE_DB_CONTAINER" ]; then - echo "❌ Remote $ENV-db container not found!" - exit 1 - fi - - ssh "$REMOTE_HOST" "docker exec $REMOTE_DB_CONTAINER pg_dump -U $DB_USER --clean --if-exists --no-owner --no-privileges $DB_NAME > $REMOTE_DIR/dump.sql" - - echo "📥 Downloading dump..." - scp "$REMOTE_HOST:$REMOTE_DIR/dump.sql" dump.sql - - echo "🧹 Wiping local database schema..." - docker exec "$LOCAL_DB_CONTAINER" psql -U "$DB_USER" "$DB_NAME" -c 'DROP SCHEMA public CASCADE; CREATE SCHEMA public;' - - echo "⚡ Restoring database locally..." - docker exec -i "$LOCAL_DB_CONTAINER" psql -U "$DB_USER" "$DB_NAME" < dump.sql - - echo "📁 Syncing uploads ($ENV -> Local)..." - rsync -avz --progress "$REMOTE_HOST:$REMOTE_DIR/directus/uploads/" ./directus/uploads/ - - rm dump.sql - ssh "$REMOTE_HOST" "rm $REMOTE_DIR/dump.sql" - - echo "✨ Pull to Local complete!" -fi