From 7be7440628a5521b33a31ac7e0eb56c54212fdfd Mon Sep 17 00:00:00 2001 From: Piotr Monwid-Olechnowicz Date: Wed, 29 Jan 2025 19:13:02 +0100 Subject: [PATCH 01/22] Stop overflowing the upsell block on top of the footer --- .../docs/src/app/case-studies/(posts)/layout.tsx | 2 +- .../src/app/case-studies/case-studies-styles.css | 14 +------------- 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/packages/web/docs/src/app/case-studies/(posts)/layout.tsx b/packages/web/docs/src/app/case-studies/(posts)/layout.tsx index 15f3d75b30..1779e551b7 100644 --- a/packages/web/docs/src/app/case-studies/(posts)/layout.tsx +++ b/packages/web/docs/src/app/case-studies/(posts)/layout.tsx @@ -17,7 +17,7 @@ export default function CaseStudiesLayout({ children }: { children: React.ReactN
{children} - +
diff --git a/packages/web/docs/src/app/case-studies/case-studies-styles.css b/packages/web/docs/src/app/case-studies/case-studies-styles.css index 5507265728..bac0df2b07 100644 --- a/packages/web/docs/src/app/case-studies/case-studies-styles.css +++ b/packages/web/docs/src/app/case-studies/case-studies-styles.css @@ -3,28 +3,16 @@ --article-max-width: 640px; & > .main-content { - box-sizing: content-box; width: var(--nextra-content-width); - max-width: 100%; /* hide leftmost column to left-align the case study */ & > div:first-of-type > :first-child { @apply hidden; } - & > div { - @apply ml-0 pl-6 md:pl-12; - } - & > div > article { box-sizing: content-box; - max-width: 100%; - width: var(--article-max-width); - padding: 0; - } - - & nav.nextra-toc { - @apply hidden; + max-width: var(--article-max-width); } } From 1dbc5a6cf6d85c63b7ff9bf85621dc03cbf660e2 Mon Sep 17 00:00:00 2001 From: Piotr Monwid-Olechnowicz Date: Wed, 29 Jan 2025 19:22:48 +0100 Subject: [PATCH 02/22] Rebase on top of `main` --- .../src/app/gateway/gateway-feature-tabs.tsx | 53 +++ packages/web/docs/src/app/gateway/page.tsx | 50 +++ packages/web/docs/src/app/layout.tsx | 1 + packages/web/docs/src/app/page.tsx | 4 +- .../web/docs/src/components/feature-tabs.tsx | 361 +++++++----------- .../components/landing-page-feature-tabs.tsx | 151 ++++++++ 6 files changed, 391 insertions(+), 229 deletions(-) create mode 100644 packages/web/docs/src/app/gateway/gateway-feature-tabs.tsx create mode 100644 packages/web/docs/src/app/gateway/page.tsx create mode 100644 packages/web/docs/src/components/landing-page-feature-tabs.tsx diff --git a/packages/web/docs/src/app/gateway/gateway-feature-tabs.tsx b/packages/web/docs/src/app/gateway/gateway-feature-tabs.tsx new file mode 100644 index 0000000000..43484a97b3 --- /dev/null +++ b/packages/web/docs/src/app/gateway/gateway-feature-tabs.tsx @@ -0,0 +1,53 @@ +import { FeatureTab, FeatureTabs, Highlight } from '#components/feature-tabs'; + +// TODO: the long values here will be bad for mobiles +type Tab = 'Observability & Performance Monitoring' | 'Security & Access Control'; + +const monitoringDocsLink = 'https://the-guild.dev/graphql/hive/docs/gateway/monitoring-tracing'; +const securityDocsLink = 'https://the-guild.dev/graphql/hive/docs/gateway/security'; + +const highlights: Record = { + 'Observability & Performance Monitoring': [ + { + title: 'Open Telemetry & Prometheus Integration', + description: + 'Equip your teams with comprehensive tools for monitoring API health, performance, and usage patterns, crucial for maintaining operational excellence.', + }, + { + title: 'Response Caching', + description: + 'Enhances response times and reduces load on backend services by intelligently caching frequent requests.', + }, + { + title: 'Rate Limiting', + description: + 'Protects your API from overload and abuse, ensuring consistent and reliable service performance.', + }, + { + title: 'Schema Explorer', + description: + 'Navigate and analyze the connections within your GraphQL schema using Schema Explorer.', + }, + ], + 'Security & Access Control': [], +}; + +export function GatewayFeatureTabs() { + return , ]} />; +} + +function PerformanceIcon() { + return ( + + + + ); +} + +function SecurityIcon() { + return ( + + + + ); +} diff --git a/packages/web/docs/src/app/gateway/page.tsx b/packages/web/docs/src/app/gateway/page.tsx new file mode 100644 index 0000000000..dee4b8c8fa --- /dev/null +++ b/packages/web/docs/src/app/gateway/page.tsx @@ -0,0 +1,50 @@ +import { Metadata } from 'next'; +import { CallToAction, ExploreMainProductCards, Hero, HiveGatewayIcon } from '@theguild/components'; +import { LandingPageContainer } from '../../components/landing-page-container'; +import { metadata as rootMetadata } from '../layout'; + +export const metadata: Metadata = { + title: 'Hive Gateway', + // TODO: + // description: + // 'Fully Open-Source schema registry, analytics and gateway for GraphQL federation and other GraphQL APIs', + alternates: { + // to remove leading slash + canonical: '.', + }, + openGraph: { + ...rootMetadata.openGraph, + // to remove leading slash + url: '.', + }, +}; + +export default function HiveGatewayPage() { + return ( + + } + heading="Hive Gateway" + text="Unify and accelerate your data graph across diverse services with Hive Gateway, which seamlessly integrates with Apollo Federation." + checkmarks={['Fully open source', 'No vendor lock-in', 'Can be self-hosted!']} + className="mx-4 md:mx-6" + > + + Get Started + + + GitHub + + {/* TODO: decoration */} + + + {/* observability and performance monitoring */} + {/* orchestrate your way */} + {/* Federation-Compatible Gateway Benchmarks */} + {/* Let's get advanced */} + {/* Cloud-Native Nature */} + + {/* big get your API game right section */} + + ); +} diff --git a/packages/web/docs/src/app/layout.tsx b/packages/web/docs/src/app/layout.tsx index 11c04809b2..1f49d03a34 100644 --- a/packages/web/docs/src/app/layout.tsx +++ b/packages/web/docs/src/app/layout.tsx @@ -67,6 +67,7 @@ export default async function HiveDocsLayout({ children }: { children: ReactNode '/oss-friends', '/ecosystem', '/partners', + '/gateway', ]; return ( diff --git a/packages/web/docs/src/app/page.tsx b/packages/web/docs/src/app/page.tsx index 5a560cc35e..a2c23d8469 100644 --- a/packages/web/docs/src/app/page.tsx +++ b/packages/web/docs/src/app/page.tsx @@ -16,11 +16,11 @@ import { CheckIcon } from '../components/check-icon'; import { CommunitySection } from '../components/community-section'; import { CompanyTestimonialsSection } from '../components/company-testimonials'; import { EcosystemManagementSection } from '../components/ecosystem-management'; -import { FeatureTabs } from '../components/feature-tabs'; import { FrequentlyAskedQuestions } from '../components/frequently-asked-questions'; import { Hero, HeroFeatures, HeroLinks } from '../components/hero'; import { InfoCard } from '../components/info-card'; import { LandingPageContainer } from '../components/landing-page-container'; +import { LandingPageFeatureTabs } from '../components/landing-page-feature-tabs'; import { StatsItem, StatsList } from '../components/stats'; import { TeamSection } from '../components/team-section'; import { TrustedBySection } from '../components/trusted-by-section'; @@ -82,7 +82,7 @@ export default function IndexPage(): ReactElement { - + diff --git a/packages/web/docs/src/components/feature-tabs.tsx b/packages/web/docs/src/components/feature-tabs.tsx index 90a6eb3867..62de38857a 100644 --- a/packages/web/docs/src/components/feature-tabs.tsx +++ b/packages/web/docs/src/components/feature-tabs.tsx @@ -1,104 +1,38 @@ 'use client'; -import { useState } from 'react'; +import { createContext, useContext, useState } from 'react'; import Image, { StaticImageData } from 'next/image'; import NextLink from 'next/link'; import { ChevronDownIcon } from '@radix-ui/react-icons'; import * as Tabs from '@radix-ui/react-tabs'; import { CallToAction, cn, Heading } from '@theguild/components'; import { ArrowIcon } from './arrow-icon'; -import auditImage from '../../public/features/gateway/audit.png'; -import observabilityClientsImage from '../../public/features/observability/clients.webp'; -import observabilityOperationsImage from '../../public/features/observability/operations.webp'; -import observabilityOverallImage from '../../public/features/observability/overall.webp'; -import registryExplorerImage from '../../public/features/registry/explorer.webp'; -import registrySchemaChecksImage from '../../public/features/registry/schema-checks.webp'; -import registryVersionControlSystemImage from '../../public/features/registry/version-control-system.webp'; -const tabs = ['Schema Registry', 'GraphQL Observability', 'GraphQL Gateway']; -type Tab = (typeof tabs)[number]; - -const highlights: Record = { - 'Schema Registry': [ - { - title: 'Version Control System', - description: - 'Track schema modifications across multiple environments from development to production.', - image: registryVersionControlSystemImage, - }, - { - title: 'Schema Checks', - description: - 'Identify and breaking changes before they reach production. Evolve your API with confidence.', - image: registrySchemaChecksImage, - }, - { - title: 'Composition Error Prevention', - description: 'Avoid runtime errors by validating compatibility of all your subgraphs.', - image: registrySchemaChecksImage, // TODO: Replace with correct image - }, - { - title: 'Schema Explorer', - description: 'Navigate through your GraphQL schema and check ownership and usage of types.', - image: registryExplorerImage, - }, - ], - 'GraphQL Observability': [ - { - title: 'GraphQL consumers', - description: 'Track GraphQL requests to see how API is utilized and by what applications.', - image: observabilityClientsImage, - }, - { - title: 'Overall performance', - description: 'Observe and analyze performance of your GraphQL API.', - image: observabilityOverallImage, - }, - { - title: 'Query performance', - description: 'Identify slow GraphQL operations to pinpoint performance bottlenecks.', - image: observabilityOperationsImage, - }, - ], - 'GraphQL Gateway': [ - { - title: 'Federation v1 and v2', - description: - 'Best in class support for Apollo Federation. Scores 100% in the Federation audit.', - link: '/federation-gateway-audit', - image: auditImage, - }, - { - title: 'Real-time features', - description: 'Contribute data from subgraphs to a GraphQL subscription seamlessly.', - link: '/docs/gateway/subscriptions', - image: auditImage, - // TODO: show entities and Subscription type (code) - }, - { - title: 'Security and Compliance', - description: - 'Access control with role-based access control (RBAC), JSON Web Tokens (JWT) and Persisted Operations.', - link: '/docs/gateway/authorization-authentication', - image: auditImage, - // TODO: show directives and auth roles - }, - { - title: 'OTEL & Prometheus', - description: - 'Out-of-the-box support for OpenTelemetry and Prometheus metrics to fit your observability stack.', - link: '/docs/gateway/monitoring-tracing', - image: auditImage, - // TODO: image - }, - ], +export type Highlight = { + title: string; + description: string; + image?: StaticImageData; + link?: string; }; -const allHighlights = Object.values(highlights).flat(); +export interface FeatureTabsProps { + className?: string; + highlights: Record; + icons: React.ReactNode[]; + children: React.ReactNode; +} + +export function FeatureTabs({ + className, + highlights, + icons, + children, +}: FeatureTabsProps) { + console.log({ highlights }); + const tabs = Object.keys(highlights) as T[]; + const [currentTab, setCurrentTab] = useState(tabs[0]); -export function FeatureTabs({ className }: { className?: string }) { - const [currentTab, setCurrentTab] = useState('Schema Registry'); - const icons = [, , ]; + const allHighlights = Object.values(highlights).flat(); const smallScreenTabHandlers = useSmallScreenTabsHandlers(); const [activeHighlight, setActiveHighlight] = useState(allHighlights[0].title); @@ -111,145 +45,54 @@ export function FeatureTabs({ className }: { className?: string }) { className, )} > - { - setCurrentTab(tab); - setActiveHighlight(highlights[tab][0].title); - smallScreenTabHandlers.onValueChange(); - }} - value={currentTab} - > - - {tabs.map((tab, i) => { - return ( - - {icons[i]} - {tab} - - - ); - })} - -
- <> - - - - - - - - - - -
- {allHighlights.map((highlight, i) => ( -
- -
- ))} -
-
-
+ + { + const tab = value as T; + setCurrentTab(tab); + setActiveHighlight(highlights[tab][0].title); + smallScreenTabHandlers.onValueChange(); + }} + value={currentTab} + > + + {tabs.map((tab, i) => { + return ( + + {icons[i]} + {tab} + + + ); + })} + +
{children}
+
+
); } -function SchemaRegistryIcon() { - return ( - - - - ); -} - -function GraphQLObservabilityIcon() { - return ( - - - - ); -} - -function GatewayIcon() { - return ( - - - - ); -} - -function Feature(props: { +interface FeatureProps { title: string; description: string; highlights: Highlight[]; documentationLink?: string; - noImage?: boolean; setActiveHighlight: (highlight: string) => void; -}) { - const { title, description, documentationLink, highlights } = props; +} +function Feature({ + title, + description, + documentationLink, + highlights, + setActiveHighlight, +}: FeatureProps) { return (
@@ -266,7 +109,7 @@ function Feature(props: { href={highlight.link} key={i} title={'Learn more about ' + highlight.title} - onPointerOver={() => props.setActiveHighlight(highlight.title)} + onPointerOver={() => setActiveHighlight(highlight.title)} className="hover:bg-beige-100 -m-2 block rounded-lg p-2 md:-m-4 md:rounded-xl md:p-4" >
{highlight.title}
@@ -278,7 +121,7 @@ function Feature(props: { return (
props.setActiveHighlight(highlight.title)} + onPointerOver={() => setActiveHighlight(highlight.title)} className="hover:bg-beige-100 -m-2 rounded-lg p-2 md:-m-4 md:rounded-xl md:p-4" >
{highlight.title}
@@ -291,7 +134,7 @@ function Feature(props: { Learn more - {/* descriptive text for screen readers and SEO audits */} about {props.title} + {/* descriptive text for screen readers and SEO audits */} about {title} @@ -379,9 +222,73 @@ function useSmallScreenTabsHandlers() { }; } -type Highlight = { - title: string; - description: string; - image: StaticImageData; - link?: string; -}; +export interface FeatureTabProps extends Omit {} + +export function FeatureTab({ title, highlights, description, documentationLink }: FeatureTabProps) { + const { setActiveHighlight } = useFeatureTabsContext(); + + return ( + + + + ); +} + +interface FeatureTabsContextType { + activeHighlight: string; + setActiveHighlight: (highlight: string) => void; + highlights: Record; +} + +const FeatureTabsContext = createContext(undefined); + +export function useFeatureTabsContext() { + const value = useContext(FeatureTabsContext); + if (!value) { + throw new Error('useFeatureTabsContext must be used within a FeatureTabs'); + } + return value; +} + +export function ActiveHighlightImage() { + const { highlights, activeHighlight } = useFeatureTabsContext(); + const allHighlights = Object.values(highlights).flat(); + + return ( +
+ {allHighlights.map( + (highlight, i) => + highlight.image && ( +
+ +
+ ), + )} +
+ ); +} diff --git a/packages/web/docs/src/components/landing-page-feature-tabs.tsx b/packages/web/docs/src/components/landing-page-feature-tabs.tsx new file mode 100644 index 0000000000..d1fdb6538a --- /dev/null +++ b/packages/web/docs/src/components/landing-page-feature-tabs.tsx @@ -0,0 +1,151 @@ +import { ActiveHighlightImage, FeatureTab, FeatureTabs, Highlight } from './feature-tabs'; +import auditImage from '../../public/features/gateway/audit.png'; +import observabilityClientsImage from '../../public/features/observability/clients.webp'; +import observabilityOperationsImage from '../../public/features/observability/operations.webp'; +import observabilityOverallImage from '../../public/features/observability/overall.webp'; +import registryExplorerImage from '../../public/features/registry/explorer.webp'; +import registrySchemaChecksImage from '../../public/features/registry/schema-checks.webp'; +import registryVersionControlSystemImage from '../../public/features/registry/version-control-system.webp'; + +const tabs = ['Schema Registry', 'GraphQL Observability', 'GraphQL Gateway']; +type Tab = (typeof tabs)[number]; + +export const highlights: Record = { + 'Schema Registry': [ + { + title: 'Version Control System', + description: + 'Track schema modifications across multiple environments from development to production.', + image: registryVersionControlSystemImage, + }, + { + title: 'Schema Checks', + description: + 'Identify and breaking changes before they reach production. Evolve your API with confidence.', + image: registrySchemaChecksImage, + }, + { + title: 'Composition Error Prevention', + description: 'Avoid runtime errors by validating compatibility of all your subgraphs.', + image: registrySchemaChecksImage, // TODO: Replace with correct image + }, + { + title: 'Schema Explorer', + description: 'Navigate through your GraphQL schema and check ownership and usage of types.', + image: registryExplorerImage, + }, + ], + 'GraphQL Observability': [ + { + title: 'GraphQL consumers', + description: 'Track GraphQL requests to see how API is utilized and by what applications.', + image: observabilityClientsImage, + }, + { + title: 'Overall performance', + description: 'Observe and analyze performance of your GraphQL API.', + image: observabilityOverallImage, + }, + { + title: 'Query performance', + description: 'Identify slow GraphQL operations to pinpoint performance bottlenecks.', + image: observabilityOperationsImage, + }, + ], + 'GraphQL Gateway': [ + { + title: 'Federation v1 and v2', + description: + 'Best in class support for Apollo Federation. Scores 100% in the Federation audit.', + link: '/federation-gateway-audit', + image: auditImage, + }, + { + title: 'Real-time features', + description: 'Contribute data from subgraphs to a GraphQL subscription seamlessly.', + link: '/docs/gateway/subscriptions', + image: auditImage, + // TODO: show entities and Subscription type (code) + }, + { + title: 'Security and Compliance', + description: + 'Access control with role-based access control (RBAC), JSON Web Tokens (JWT) and Persisted Operations.', + link: '/docs/gateway/authorization-authentication', + image: auditImage, + // TODO: show directives and auth roles + }, + { + title: 'OTEL & Prometheus', + description: + 'Out-of-the-box support for OpenTelemetry and Prometheus metrics to fit your observability stack.', + link: '/docs/gateway/monitoring-tracing', + image: auditImage, + // TODO: image + }, + ], +}; + +export interface LandingPageFeatureTabsProps { + className?: string; +} + +export function LandingPageFeatureTabs({ className }: LandingPageFeatureTabsProps) { + console.log({ highlights }); + const icons = [, , ]; + return ( + + + + + + + ); +} + +function SchemaRegistryIcon() { + return ( + + + + ); +} + +function GraphQLObservabilityIcon() { + return ( + + + + ); +} + +function GatewayIcon() { + return ( + + + + ); +} From cca29a0d08bc1650862853eef5e06867e7c89115 Mon Sep 17 00:00:00 2001 From: Piotr Monwid-Olechnowicz Date: Wed, 29 Jan 2025 20:09:06 +0100 Subject: [PATCH 03/22] Draft Gateway landing page --- .../src/app/gateway/gateway-feature-tabs.tsx | 18 ++- .../src/app/gateway/gateway-marquee-rows.tsx | 63 +++++++++ .../src/app/gateway/orchestrate-your-way.tsx | 132 ++++++++++++++++++ packages/web/docs/src/app/gateway/page.tsx | 1 + .../web/docs/src/components/info-card.tsx | 3 +- packages/web/docs/src/components/stud.tsx | 13 -- 6 files changed, 214 insertions(+), 16 deletions(-) create mode 100644 packages/web/docs/src/app/gateway/gateway-marquee-rows.tsx create mode 100644 packages/web/docs/src/app/gateway/orchestrate-your-way.tsx delete mode 100644 packages/web/docs/src/components/stud.tsx diff --git a/packages/web/docs/src/app/gateway/gateway-feature-tabs.tsx b/packages/web/docs/src/app/gateway/gateway-feature-tabs.tsx index 43484a97b3..9d4128b052 100644 --- a/packages/web/docs/src/app/gateway/gateway-feature-tabs.tsx +++ b/packages/web/docs/src/app/gateway/gateway-feature-tabs.tsx @@ -33,7 +33,22 @@ const highlights: Record = { }; export function GatewayFeatureTabs() { - return , ]} />; + return ( + , ]}> + + + + ); } function PerformanceIcon() { @@ -51,3 +66,4 @@ function SecurityIcon() { ); } + diff --git a/packages/web/docs/src/app/gateway/gateway-marquee-rows.tsx b/packages/web/docs/src/app/gateway/gateway-marquee-rows.tsx new file mode 100644 index 0000000000..d666334536 --- /dev/null +++ b/packages/web/docs/src/app/gateway/gateway-marquee-rows.tsx @@ -0,0 +1,63 @@ +import { MarqueeRows } from '@theguild/components'; + +const terms = new Map([ + [ + ['authenticated', 'requiresScopes', 'policy'], + 'https://the-guild.dev/graphql/hive/docs/gateway/authorization-authentication#granular-protection-using-auth-directives-authenticated-requiresscopes-and-policy', + ], + [['Monitoring', 'Tracing'], 'https://the-guild.dev/graphql/hive/docs/gateway/monitoring-tracing'], + [ + ['@stream', '@defer', 'Incremental Delivery'], + 'https://the-guild.dev/graphql/hive/docs/gateway/defer-stream', + ], + [['Persisted Documents'], 'https://the-guild.dev/graphql/hive/docs/gateway/persisted-documents'], + [ + ['Response Caching'], + 'https://the-guild.dev/graphql/hive/docs/gateway/other-features/performance/response-caching', + ], + [ + ['Content-Encoding'], + 'https://the-guild.dev/graphql/hive/docs/gateway/other-features/performance/compression', + ], + [ + ['parserAndValidationCache'], + 'https://the-guild.dev/graphql/hive/docs/gateway/other-features/performance/parsing-and-validation-caching', + ], + [ + ['executionCancellation'], + 'https://the-guild.dev/graphql/hive/docs/gateway/other-features/performance/execution-cancellation', + ], + [ + ['Upstream Cancellation'], + 'https://the-guild.dev/graphql/hive/docs/gateway/other-features/performance/upstream-cancellation', + ], + [ + ['HTTP Caching'], + 'https://the-guild.dev/graphql/hive/docs/gateway/other-features/performance/http-caching', + ], + [ + ['useRequestDeduplication'], + 'https://the-guild.dev/graphql/hive/docs/gateway/other-features/performance/deduplicate-request', + ], + [ + ['APQ', 'Automatic Persisted Queries'], + 'https://the-guild.dev/graphql/hive/docs/gateway/other-features/performance/automatic-persisted-queries', + ], + [['Persisted Documents'], 'https://the-guild.dev/graphql/hive/docs/gateway/persisted-documents'], + [ + ['Supergraph', 'Proxy Source'], + 'https://the-guild.dev/graphql/hive/docs/gateway/supergraph-proxy-source', + ], + [ + ['Authorization', 'Authentication'], + 'https://the-guild.dev/graphql/hive/docs/gateway/authorization-authentication', + ], + [ + ['Header Propagation'], + 'https://the-guild.dev/graphql/hive/docs/gateway/other-features/header-propagation', + ], +]); + +export function GatewayMarqueeRows() { + return
; +} diff --git a/packages/web/docs/src/app/gateway/orchestrate-your-way.tsx b/packages/web/docs/src/app/gateway/orchestrate-your-way.tsx new file mode 100644 index 0000000000..16eaaf1fe4 --- /dev/null +++ b/packages/web/docs/src/app/gateway/orchestrate-your-way.tsx @@ -0,0 +1,132 @@ +import { ReactNode } from 'react'; +import { cn, Heading, InfoCard } from '@theguild/components'; + +export function OrchestrateYourWay({ className, ...rest }: React.HTMLAttributes) { + return ( +
+
+ + Orchestrate your way! + +

+ The open nature of Hive Gateway ensures that it fits into your existing GraphQL + infrastructure. +

+
+
    + } + className="flex-1 px-0 sm:px-8 sm:py-0 md:px-8 md:py-0" + > + Ensures full compatibility and seamless operation within Apollo Federation setups, + simplifying integration with existing GraphQL services. + + } + className="border-beige-400 flex-1 basis-full px-0 sm:basis-0 sm:border-l sm:px-8 sm:py-0 md:px-8 md:py-0" + > + Extensive customization options, allowing enterprises to tailor the gateway to fit + specific architectural needs and workflows. + +
+
    + } text="Apollo Federation V1" /> + } text="Apollo Federation V2" /> + } text="Schema Stitching" /> + } text="Monolith/Single Schema" /> +
+
+ ); +} + +function CodeIcon() { + return ( + + + + ); +} + +function EditIcon() { + return ( + + + + ); +} + +function LinkCard({ href, text, logo }: { href: string; text: ReactNode; logo: ReactNode }) { + return ( +
  • + {logo} + + {/* todo: green dot */} + + {text} + +
  • + ); +} + +function ApolloLogo() { + return ( + + + + + ); +} + +function StitchingLogo() { + return ( + + + + + ); +} + +function MonolithLogo() { + return ( + + + + + ); +} diff --git a/packages/web/docs/src/app/gateway/page.tsx b/packages/web/docs/src/app/gateway/page.tsx index dee4b8c8fa..465ff4f33f 100644 --- a/packages/web/docs/src/app/gateway/page.tsx +++ b/packages/web/docs/src/app/gateway/page.tsx @@ -2,6 +2,7 @@ import { Metadata } from 'next'; import { CallToAction, ExploreMainProductCards, Hero, HiveGatewayIcon } from '@theguild/components'; import { LandingPageContainer } from '../../components/landing-page-container'; import { metadata as rootMetadata } from '../layout'; +import { GatewayFeatureTabs } from './gateway-feature-tabs'; export const metadata: Metadata = { title: 'Hive Gateway', diff --git a/packages/web/docs/src/components/info-card.tsx b/packages/web/docs/src/components/info-card.tsx index f29dfe82ed..114b6328a9 100644 --- a/packages/web/docs/src/components/info-card.tsx +++ b/packages/web/docs/src/components/info-card.tsx @@ -1,6 +1,5 @@ import { ReactNode } from 'react'; -import { cn } from '@theguild/components'; -import { Stud } from './stud'; +import { cn, Stud } from '@theguild/components'; export interface InfoCardProps extends React.HTMLAttributes { icon: ReactNode; diff --git a/packages/web/docs/src/components/stud.tsx b/packages/web/docs/src/components/stud.tsx deleted file mode 100644 index f656ec6f2d..0000000000 --- a/packages/web/docs/src/components/stud.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { cn } from '@theguild/components'; - -export function Stud(props: React.HTMLAttributes) { - return ( -
    - ); -} From 4783ace8ad57ca994b93faa5fc15e9eb4d2ab23a Mon Sep 17 00:00:00 2001 From: Piotr Monwid-Olechnowicz Date: Mon, 3 Feb 2025 16:50:08 +0100 Subject: [PATCH 04/22] Add Gateway hero decoration --- packages/web/docs/src/app/gateway/page.tsx | 59 +++++++++++++++++++--- 1 file changed, 51 insertions(+), 8 deletions(-) diff --git a/packages/web/docs/src/app/gateway/page.tsx b/packages/web/docs/src/app/gateway/page.tsx index 465ff4f33f..0d91b47ae5 100644 --- a/packages/web/docs/src/app/gateway/page.tsx +++ b/packages/web/docs/src/app/gateway/page.tsx @@ -1,14 +1,20 @@ import { Metadata } from 'next'; -import { CallToAction, ExploreMainProductCards, Hero, HiveGatewayIcon } from '@theguild/components'; +import { + CallToAction, + DecorationIsolation, + ExploreMainProductCards, + Hero, + HeroLogo, + HiveGatewayIcon, +} from '@theguild/components'; import { LandingPageContainer } from '../../components/landing-page-container'; import { metadata as rootMetadata } from '../layout'; import { GatewayFeatureTabs } from './gateway-feature-tabs'; export const metadata: Metadata = { title: 'Hive Gateway', - // TODO: - // description: - // 'Fully Open-Source schema registry, analytics and gateway for GraphQL federation and other GraphQL APIs', + description: + 'Unify and accelerate your data graph with Hive Gateway, which seamlessly integrates with Apollo Federation.', alternates: { // to remove leading slash canonical: '.', @@ -24,19 +30,23 @@ export default function HiveGatewayPage() { return ( } + top={ + + + + } heading="Hive Gateway" text="Unify and accelerate your data graph across diverse services with Hive Gateway, which seamlessly integrates with Apollo Federation." checkmarks={['Fully open source', 'No vendor lock-in', 'Can be self-hosted!']} className="mx-4 md:mx-6" > - + Get Started - + GitHub - {/* TODO: decoration */} + {/* observability and performance monitoring */} @@ -49,3 +59,36 @@ export default function HiveGatewayPage() { ); } + +function GatewayHeroDecoration() { + return ( + + + + + + + + + + + + + + + + + ); +} From 7e378f4fb9cdf1d8cd3d27432dcdd3946486fab9 Mon Sep 17 00:00:00 2001 From: Piotr Monwid-Olechnowicz Date: Mon, 3 Feb 2025 18:01:26 +0100 Subject: [PATCH 05/22] Make the marquee rows and tabs look okayish --- packages/web/docs/package.json | 2 +- .../src/app/gateway/gateway-feature-tabs.tsx | 49 +++++-- .../src/app/gateway/gateway-marquee-rows.tsx | 127 +++++++++++------- packages/web/docs/src/app/gateway/page.tsx | 5 +- .../web/docs/src/components/feature-tabs.tsx | 29 ++-- .../components/landing-page-feature-tabs.tsx | 1 - pnpm-lock.yaml | 30 ++--- 7 files changed, 159 insertions(+), 84 deletions(-) diff --git a/packages/web/docs/package.json b/packages/web/docs/package.json index 457a6ef8a2..8236d66b65 100644 --- a/packages/web/docs/package.json +++ b/packages/web/docs/package.json @@ -16,7 +16,7 @@ "@radix-ui/react-icons": "1.3.2", "@radix-ui/react-tabs": "1.1.2", "@radix-ui/react-tooltip": "1.1.6", - "@theguild/components": "9.2.0", + "@theguild/components": "9.3.1-alpha-20250203132247-81689b6a845e70e06ba48d7ad3c2588bea379e9d", "date-fns": "4.1.0", "next": "15.1.0", "react": "19.0.0", diff --git a/packages/web/docs/src/app/gateway/gateway-feature-tabs.tsx b/packages/web/docs/src/app/gateway/gateway-feature-tabs.tsx index 9d4128b052..864a388c1c 100644 --- a/packages/web/docs/src/app/gateway/gateway-feature-tabs.tsx +++ b/packages/web/docs/src/app/gateway/gateway-feature-tabs.tsx @@ -1,11 +1,10 @@ import { FeatureTab, FeatureTabs, Highlight } from '#components/feature-tabs'; +import { cn } from '@theguild/components'; +import { GatewayMarqueeRows } from './gateway-marquee-rows'; // TODO: the long values here will be bad for mobiles type Tab = 'Observability & Performance Monitoring' | 'Security & Access Control'; -const monitoringDocsLink = 'https://the-guild.dev/graphql/hive/docs/gateway/monitoring-tracing'; -const securityDocsLink = 'https://the-guild.dev/graphql/hive/docs/gateway/security'; - const highlights: Record = { 'Observability & Performance Monitoring': [ { @@ -29,24 +28,57 @@ const highlights: Record = { 'Navigate and analyze the connections within your GraphQL schema using Schema Explorer.', }, ], - 'Security & Access Control': [], + 'Security & Access Control': [ + { + title: 'JWT Authentication & Authorization', + description: + 'Provides secure user identification and role-based access control, crucial for protecting sensitive data and operations.', + }, + { + title: 'Persisted Operations', + description: + 'Allows only pre-registered GraphQL operations to be executed, safeguarding against arbitrary and potentially harmful requests.', + }, + { + title: 'Fine-grained Access Control', + description: + 'Prevents unauthorized access with powerful, centralized policies at the gateway level, reducing the risk of security breaches.', + }, + { + title: 'CORS and CSRF Prevention', + description: + 'Shields against common web security vulnerabilities, securing your applications from unauthorized inter-domain interactions.', + }, + ], }; -export function GatewayFeatureTabs() { +export function GatewayFeatureTabs(props: { className?: string }) { return ( - , ]}> + , ]} + className={cn( + 'border-blue-200 [--tab-bg-dark:theme(colors.blue.300)] [--tab-bg:theme(colors.blue.200)]', + props.className, + )} + > + {/* todo: these marquee rows should probably be draggable, and connected to one "timeline" */} + ); } @@ -66,4 +98,3 @@ function SecurityIcon() { ); } - diff --git a/packages/web/docs/src/app/gateway/gateway-marquee-rows.tsx b/packages/web/docs/src/app/gateway/gateway-marquee-rows.tsx index d666334536..2bff58b9d0 100644 --- a/packages/web/docs/src/app/gateway/gateway-marquee-rows.tsx +++ b/packages/web/docs/src/app/gateway/gateway-marquee-rows.tsx @@ -1,63 +1,96 @@ -import { MarqueeRows } from '@theguild/components'; +import { Anchor, cn, MarqueeRows } from '@theguild/components'; +// todo: a test that checks if none of the links here are 404 const terms = new Map([ [ ['authenticated', 'requiresScopes', 'policy'], - 'https://the-guild.dev/graphql/hive/docs/gateway/authorization-authentication#granular-protection-using-auth-directives-authenticated-requiresscopes-and-policy', - ], - [['Monitoring', 'Tracing'], 'https://the-guild.dev/graphql/hive/docs/gateway/monitoring-tracing'], - [ - ['@stream', '@defer', 'Incremental Delivery'], - 'https://the-guild.dev/graphql/hive/docs/gateway/defer-stream', - ], - [['Persisted Documents'], 'https://the-guild.dev/graphql/hive/docs/gateway/persisted-documents'], - [ - ['Response Caching'], - 'https://the-guild.dev/graphql/hive/docs/gateway/other-features/performance/response-caching', - ], - [ - ['Content-Encoding'], - 'https://the-guild.dev/graphql/hive/docs/gateway/other-features/performance/compression', + '/docs/gateway/authorization-authentication#granular-protection-using-auth-directives-authenticated-requiresscopes-and-policy', ], + [['Usage Reporting'], 'https://the-guild.dev/graphql/hive/docs/gateway/usage-reporting'], + [['Monitoring', 'Tracing'], '/docs/gateway/monitoring-tracing'], + [['@stream', '@defer', 'Incremental Delivery'], '/docs/gateway/defer-stream'], + [['Persisted Documents'], '/docs/gateway/persisted-documents'], + [['Response Caching'], '/docs/gateway/other-features/performance/response-caching'], + [['Content-Encoding'], '/docs/gateway/other-features/performance/compression'], [ ['parserAndValidationCache'], - 'https://the-guild.dev/graphql/hive/docs/gateway/other-features/performance/parsing-and-validation-caching', - ], - [ - ['executionCancellation'], - 'https://the-guild.dev/graphql/hive/docs/gateway/other-features/performance/execution-cancellation', - ], - [ - ['Upstream Cancellation'], - 'https://the-guild.dev/graphql/hive/docs/gateway/other-features/performance/upstream-cancellation', - ], - [ - ['HTTP Caching'], - 'https://the-guild.dev/graphql/hive/docs/gateway/other-features/performance/http-caching', - ], - [ - ['useRequestDeduplication'], - 'https://the-guild.dev/graphql/hive/docs/gateway/other-features/performance/deduplicate-request', + '/docs/gateway/other-features/performance/parsing-and-validation-caching', ], + [['executionCancellation'], '/docs/gateway/other-features/performance/execution-cancellation'], + [['Upstream Cancellation'], '/docs/gateway/other-features/performance/upstream-cancellation'], + [['documentCache', 'errorCache', 'validationCache'], '/docs/gateway/other-features/performance'], + [['HTTP Caching'], '/docs/gateway/other-features/performance/http-caching'], + [['useRequestDeduplication'], '/docs/gateway/other-features/performance/deduplicate-request'], [ ['APQ', 'Automatic Persisted Queries'], - 'https://the-guild.dev/graphql/hive/docs/gateway/other-features/performance/automatic-persisted-queries', - ], - [['Persisted Documents'], 'https://the-guild.dev/graphql/hive/docs/gateway/persisted-documents'], - [ - ['Supergraph', 'Proxy Source'], - 'https://the-guild.dev/graphql/hive/docs/gateway/supergraph-proxy-source', + '/docs/gateway/other-features/performance/automatic-persisted-queries', ], + [['Persisted Documents'], '/docs/gat eway/persisted-documents'], [ - ['Authorization', 'Authentication'], - 'https://the-guild.dev/graphql/hive/docs/gateway/authorization-authentication', - ], - [ - ['Header Propagation'], - 'https://the-guild.dev/graphql/hive/docs/gateway/other-features/header-propagation', + ['batching', 'Request Batching'], + 'https://the-guild.dev/graphql/hive/docs/gateway/other-features/performance/request-batching', ], + [['Supergraph', 'Proxy'], '/docs/gateway/supergraph-proxy-source'], + [['Authorization', 'Authentication'], '/docs/gateway/authorization-authentication'], + [['Header Propagation'], '/docs/gateway/other-features/header-propagation'], + [['Subscriptions'], '/docs/gateway/subscriptions'], + [['useMock', 'Mocking'], '/docs/gateway/other-features/testing/mocking'], + [['Snapshots'], '/docs/gateway/other-features/testing/snapshot'], + [['CSRF Prevention'], '/docs/gateway/other-features/security/csrf-prevention'], + [['Rate Limiting'], '/docs/gateway/other-features/security/rate-limiting'], + [['Cost Limit'], '/docs/gateway/other-features/security/cost-limit'], + [['Security'], '/docs/gateway/other-features/security'], + [['maskedErrors'], '/docs/gateway/other-features/security/error-masking'], ]); -export function GatewayMarqueeRows() { - return
    ; +export function GatewayMarqueeRows({ + className, + ...rest +}: { + className?: string; + style?: React.CSSProperties; +}) { + return ( + + {inPlaceShuffle( + Array.from(terms.entries()).flatMap(([labels, href], j) => + labels.map((label, i) => ( + + {label} + + )), + ), + )} + + ); +} + +/** + * @see https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle + */ +function inPlaceShuffle(xs: T[]): T[] { + for (let i = xs.length - 1; i >= 1; i--) { + const j = Math.floor(Math.random() * (i + 1)); + const temp = xs[i]; + xs[i] = xs[j]; + xs[j] = temp; + } + + return xs; } diff --git a/packages/web/docs/src/app/gateway/page.tsx b/packages/web/docs/src/app/gateway/page.tsx index 0d91b47ae5..8b657c149f 100644 --- a/packages/web/docs/src/app/gateway/page.tsx +++ b/packages/web/docs/src/app/gateway/page.tsx @@ -38,7 +38,8 @@ export default function HiveGatewayPage() { heading="Hive Gateway" text="Unify and accelerate your data graph across diverse services with Hive Gateway, which seamlessly integrates with Apollo Federation." checkmarks={['Fully open source', 'No vendor lock-in', 'Can be self-hosted!']} - className="mx-4 md:mx-6" + // todo: when the feature cards section get rewritten to the new design, remove these bottom paddings + className="mx-4 sm:!pb-28 md:mx-6 lg:!pb-[168px]" > Get Started @@ -48,7 +49,7 @@ export default function HiveGatewayPage() { - + {/* observability and performance monitoring */} {/* orchestrate your way */} {/* Federation-Compatible Gateway Benchmarks */} diff --git a/packages/web/docs/src/components/feature-tabs.tsx b/packages/web/docs/src/components/feature-tabs.tsx index 62de38857a..d285b49be3 100644 --- a/packages/web/docs/src/components/feature-tabs.tsx +++ b/packages/web/docs/src/components/feature-tabs.tsx @@ -28,7 +28,6 @@ export function FeatureTabs({ icons, children, }: FeatureTabsProps) { - console.log({ highlights }); const tabs = Object.keys(highlights) as T[]; const [currentTab, setCurrentTab] = useState(tabs[0]); @@ -40,8 +39,8 @@ export function FeatureTabs({ return (
    @@ -56,13 +55,13 @@ export function FeatureTabs({ }} value={currentTab} > - + {tabs.map((tab, i) => { return ( {icons[i]} {tab} @@ -82,7 +81,12 @@ interface FeatureProps { title: string; description: string; highlights: Highlight[]; - documentationLink?: string; + documentationLink?: + | string + | { + text: string; + href: string; + }; setActiveHighlight: (highlight: string) => void; } @@ -93,8 +97,15 @@ function Feature({ highlights, setActiveHighlight, }: FeatureProps) { + if (typeof documentationLink === 'string') { + documentationLink = { + text: 'Learn more', + href: documentationLink, + }; + } + return ( -
    +
    {title} @@ -131,8 +142,8 @@ function Feature({ })} {documentationLink && ( - - Learn more + + {documentationLink.text} {/* descriptive text for screen readers and SEO audits */} about {title} diff --git a/packages/web/docs/src/components/landing-page-feature-tabs.tsx b/packages/web/docs/src/components/landing-page-feature-tabs.tsx index d1fdb6538a..fd30d9224f 100644 --- a/packages/web/docs/src/components/landing-page-feature-tabs.tsx +++ b/packages/web/docs/src/components/landing-page-feature-tabs.tsx @@ -91,7 +91,6 @@ export interface LandingPageFeatureTabsProps { } export function LandingPageFeatureTabs({ className }: LandingPageFeatureTabsProps) { - console.log({ highlights }); const icons = [, , ]; return ( diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1e6e80c152..41bcccff9d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2052,8 +2052,8 @@ importers: specifier: 1.1.6 version: 1.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@theguild/components': - specifier: 9.2.0 - version: 9.2.0(@theguild/tailwind-config@0.6.2(postcss-import@16.1.0(postcss@8.4.49))(postcss-lightningcss@1.0.1(postcss@8.4.49))(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.6(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.7.3))))(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(immer@10.1.1)(next@15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)(use-sync-external-store@1.2.0(react@19.0.0)) + specifier: 9.3.1-alpha-20250203132247-81689b6a845e70e06ba48d7ad3c2588bea379e9d + version: 9.3.1-alpha-20250203132247-81689b6a845e70e06ba48d7ad3c2588bea379e9d(@theguild/tailwind-config@0.6.2(postcss-import@16.1.0(postcss@8.4.49))(postcss-lightningcss@1.0.1(postcss@8.4.49))(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.6(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.7.3))))(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(immer@10.1.1)(next@15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)(use-sync-external-store@1.2.0(react@19.0.0)) date-fns: specifier: 4.1.0 version: 4.1.0 @@ -7790,8 +7790,8 @@ packages: resolution: {integrity: sha512-kUiFyUQDiVdpeeL/qwOZAdDZrYFTwqppwNZDxOXcPSKeqGCZe8ajbbN64OAS7VlGMnXWxEEHcjhyFzB9gtHn5w==} hasBin: true - '@theguild/components@9.2.0': - resolution: {integrity: sha512-YOk4VpKiRwosjZMfXf4Y+jOGajlrNL8ZWhwVxWrhcWWOk7IZNfP94K5JbMNN9opENQ1y/nRoD0kUg7wjl6yW2g==} + '@theguild/components@9.3.1-alpha-20250203132247-81689b6a845e70e06ba48d7ad3c2588bea379e9d': + resolution: {integrity: sha512-P20hqshq6AHpgOSMJpwHwEwtWLNflLfeEh4/bWEuCCDqrFhpGxquyGsiYfnJMN5BLHmdrlcXqTbHScEytMPpbA==} peerDependencies: '@theguild/tailwind-config': ^0.6.2 next: ^13 || ^14 || ^15.0.0 @@ -12868,16 +12868,16 @@ packages: sass: optional: true - nextra-theme-docs@4.0.4: - resolution: {integrity: sha512-AI6B+0ezFgMPQ8/KNg7IlCX2NHY0VP1ceAUt/CUUDEP2rsR9StaPI+YCe0NZJkq0F9seLcWOKa5yGvYwK7/+jg==} + nextra-theme-docs@4.0.5: + resolution: {integrity: sha512-aF4HRjbVZvd+VWTssaieXFyJ7xVnGiKlJZ+WfxCG95izoHuYdY3dwibQTc32ERMXWAg//h/t7en5QggF3hKVaA==} peerDependencies: next: '>=14' - nextra: 4.0.4 + nextra: 4.0.5 react: '>=18' react-dom: '>=18' - nextra@4.0.4: - resolution: {integrity: sha512-UqfBlbc+Is7dNjMnpv0Hd7tXn7yX2wiISNPzp+zhqSO7vUsLtFFeib7G8AdXYR8l1MrJZpw7MBrGXa4u9kacNg==} + nextra@4.0.5: + resolution: {integrity: sha512-wv1rzzQJtREGZDjdR7G41z3d7NewHvpmgNmPwEABIlEfgsmyEdMSZbrkn5jna8/2SUBsSio/lcBIGemkvuBtSA==} engines: {node: '>=18'} peerDependencies: next: '>=14' @@ -24163,7 +24163,7 @@ snapshots: typescript: 4.9.5 yargs: 16.2.0 - '@theguild/components@9.2.0(@theguild/tailwind-config@0.6.2(postcss-import@16.1.0(postcss@8.4.49))(postcss-lightningcss@1.0.1(postcss@8.4.49))(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.6(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.7.3))))(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(immer@10.1.1)(next@15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)(use-sync-external-store@1.2.0(react@19.0.0))': + '@theguild/components@9.3.1-alpha-20250203132247-81689b6a845e70e06ba48d7ad3c2588bea379e9d(@theguild/tailwind-config@0.6.2(postcss-import@16.1.0(postcss@8.4.49))(postcss-lightningcss@1.0.1(postcss@8.4.49))(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.6(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.7.3))))(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(immer@10.1.1)(next@15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)(use-sync-external-store@1.2.0(react@19.0.0))': dependencies: '@giscus/react': 3.1.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@next/bundle-analyzer': 15.1.5 @@ -24174,8 +24174,8 @@ snapshots: clsx: 2.1.1 fuzzy: 0.1.3 next: 15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - nextra: 4.0.4(next@15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3) - nextra-theme-docs: 4.0.4(@types/react@18.3.18)(immer@10.1.1)(next@15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(nextra@4.0.4(next@15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.2.0(react@19.0.0)) + nextra: 4.0.5(next@15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3) + nextra-theme-docs: 4.0.5(@types/react@18.3.18)(immer@10.1.1)(next@15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(nextra@4.0.5(next@15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.2.0(react@19.0.0)) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) react-paginate: 8.2.0(react@19.0.0) @@ -30597,13 +30597,13 @@ snapshots: - '@babel/core' - babel-plugin-macros - nextra-theme-docs@4.0.4(@types/react@18.3.18)(immer@10.1.1)(next@15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(nextra@4.0.4(next@15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.2.0(react@19.0.0)): + nextra-theme-docs@4.0.5(@types/react@18.3.18)(immer@10.1.1)(next@15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(nextra@4.0.5(next@15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.2.0(react@19.0.0)): dependencies: '@headlessui/react': 2.2.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) clsx: 2.1.1 next: 15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) next-themes: 0.4.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - nextra: 4.0.4(next@15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3) + nextra: 4.0.5(next@15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3) react: 19.0.0 react-compiler-runtime: 0.0.0-experimental-22c6e49-20241219(react@19.0.0) react-dom: 19.0.0(react@19.0.0) @@ -30616,7 +30616,7 @@ snapshots: - immer - use-sync-external-store - nextra@4.0.4(next@15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3): + nextra@4.0.5(next@15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3): dependencies: '@formatjs/intl-localematcher': 0.5.5 '@headlessui/react': 2.2.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) From 17b6ebf123d161557f3facc6e9e6d4391693d4d0 Mon Sep 17 00:00:00 2001 From: Piotr Monwid-Olechnowicz Date: Mon, 3 Feb 2025 18:08:23 +0100 Subject: [PATCH 06/22] Remove a comment --- packages/web/docs/src/app/gateway/page.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/web/docs/src/app/gateway/page.tsx b/packages/web/docs/src/app/gateway/page.tsx index 8b657c149f..a9fc598af8 100644 --- a/packages/web/docs/src/app/gateway/page.tsx +++ b/packages/web/docs/src/app/gateway/page.tsx @@ -50,7 +50,6 @@ export default function HiveGatewayPage() { - {/* observability and performance monitoring */} {/* orchestrate your way */} {/* Federation-Compatible Gateway Benchmarks */} {/* Let's get advanced */} From a443379360ac7a91534324b5e95a238ab30db738 Mon Sep 17 00:00:00 2001 From: Piotr Monwid-Olechnowicz Date: Mon, 3 Feb 2025 18:16:25 +0100 Subject: [PATCH 07/22] Reset changes to case-studies, because I forgot to rebase and these are outdated --- .../docs/src/app/case-studies/(posts)/layout.tsx | 2 +- .../src/app/case-studies/case-studies-styles.css | 14 +++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/packages/web/docs/src/app/case-studies/(posts)/layout.tsx b/packages/web/docs/src/app/case-studies/(posts)/layout.tsx index 1779e551b7..15f3d75b30 100644 --- a/packages/web/docs/src/app/case-studies/(posts)/layout.tsx +++ b/packages/web/docs/src/app/case-studies/(posts)/layout.tsx @@ -17,7 +17,7 @@ export default function CaseStudiesLayout({ children }: { children: React.ReactN
    {children} - +
    diff --git a/packages/web/docs/src/app/case-studies/case-studies-styles.css b/packages/web/docs/src/app/case-studies/case-studies-styles.css index bac0df2b07..5507265728 100644 --- a/packages/web/docs/src/app/case-studies/case-studies-styles.css +++ b/packages/web/docs/src/app/case-studies/case-studies-styles.css @@ -3,16 +3,28 @@ --article-max-width: 640px; & > .main-content { + box-sizing: content-box; width: var(--nextra-content-width); + max-width: 100%; /* hide leftmost column to left-align the case study */ & > div:first-of-type > :first-child { @apply hidden; } + & > div { + @apply ml-0 pl-6 md:pl-12; + } + & > div > article { box-sizing: content-box; - max-width: var(--article-max-width); + max-width: 100%; + width: var(--article-max-width); + padding: 0; + } + + & nav.nextra-toc { + @apply hidden; } } From 5e4d557fa585f5ae659942f7f5c709075745bb13 Mon Sep 17 00:00:00 2001 From: Piotr Monwid-Olechnowicz Date: Mon, 3 Feb 2025 18:22:07 +0100 Subject: [PATCH 08/22] Remove old descriptions --- packages/web/docs/src/app/gateway/gateway-feature-tabs.tsx | 2 -- packages/web/docs/src/components/feature-tabs.tsx | 4 ++-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/web/docs/src/app/gateway/gateway-feature-tabs.tsx b/packages/web/docs/src/app/gateway/gateway-feature-tabs.tsx index 864a388c1c..2a9fd3ee6f 100644 --- a/packages/web/docs/src/app/gateway/gateway-feature-tabs.tsx +++ b/packages/web/docs/src/app/gateway/gateway-feature-tabs.tsx @@ -65,7 +65,6 @@ export function GatewayFeatureTabs(props: { className?: string }) { {/* todo: these marquee rows should probably be draggable, and connected to one "timeline" */} diff --git a/packages/web/docs/src/components/feature-tabs.tsx b/packages/web/docs/src/components/feature-tabs.tsx index d285b49be3..d670358d38 100644 --- a/packages/web/docs/src/components/feature-tabs.tsx +++ b/packages/web/docs/src/components/feature-tabs.tsx @@ -79,7 +79,7 @@ export function FeatureTabs({ interface FeatureProps { title: string; - description: string; + description?: string; highlights: Highlight[]; documentationLink?: | string @@ -110,7 +110,7 @@ function Feature({ {title} -

    {description}

    + {description &&

    {description}

    }
    {highlights.map((highlight, i) => { From 95ecc590e4bae09bbcda2f0c017089828b117a96 Mon Sep 17 00:00:00 2001 From: Piotr Monwid-Olechnowicz Date: Mon, 3 Feb 2025 18:28:42 +0100 Subject: [PATCH 09/22] Update packages/web/docs/src/app/gateway/gateway-marquee-rows.tsx Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- packages/web/docs/src/app/gateway/gateway-marquee-rows.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web/docs/src/app/gateway/gateway-marquee-rows.tsx b/packages/web/docs/src/app/gateway/gateway-marquee-rows.tsx index 2bff58b9d0..9885e355c3 100644 --- a/packages/web/docs/src/app/gateway/gateway-marquee-rows.tsx +++ b/packages/web/docs/src/app/gateway/gateway-marquee-rows.tsx @@ -25,7 +25,7 @@ const terms = new Map([ ['APQ', 'Automatic Persisted Queries'], '/docs/gateway/other-features/performance/automatic-persisted-queries', ], - [['Persisted Documents'], '/docs/gat eway/persisted-documents'], + [['Persisted Documents'], '/docs/gateway/persisted-documents'], [ ['batching', 'Request Batching'], 'https://the-guild.dev/graphql/hive/docs/gateway/other-features/performance/request-batching', From 26814a93866642dde3043c9af274c9a19bb22cdc Mon Sep 17 00:00:00 2001 From: Piotr Monwid-Olechnowicz Date: Mon, 3 Feb 2025 18:37:38 +0100 Subject: [PATCH 10/22] Hide Marquee on smaller screens --- .../web/docs/src/app/gateway/gateway-feature-tabs.tsx | 2 +- .../web/docs/src/app/gateway/gateway-marquee-rows.tsx | 10 ++-------- packages/web/docs/src/components/feature-tabs.tsx | 2 +- 3 files changed, 4 insertions(+), 10 deletions(-) diff --git a/packages/web/docs/src/app/gateway/gateway-feature-tabs.tsx b/packages/web/docs/src/app/gateway/gateway-feature-tabs.tsx index 2a9fd3ee6f..4eec531c00 100644 --- a/packages/web/docs/src/app/gateway/gateway-feature-tabs.tsx +++ b/packages/web/docs/src/app/gateway/gateway-feature-tabs.tsx @@ -76,7 +76,7 @@ export function GatewayFeatureTabs(props: { className?: string }) { highlights={highlights['Security & Access Control']} /> {/* todo: these marquee rows should probably be draggable, and connected to one "timeline" */} - + ); } diff --git a/packages/web/docs/src/app/gateway/gateway-marquee-rows.tsx b/packages/web/docs/src/app/gateway/gateway-marquee-rows.tsx index 9885e355c3..7d21986876 100644 --- a/packages/web/docs/src/app/gateway/gateway-marquee-rows.tsx +++ b/packages/web/docs/src/app/gateway/gateway-marquee-rows.tsx @@ -54,14 +54,8 @@ export function GatewayMarqueeRows({ {inPlaceShuffle( diff --git a/packages/web/docs/src/components/feature-tabs.tsx b/packages/web/docs/src/components/feature-tabs.tsx index d670358d38..f4a738e999 100644 --- a/packages/web/docs/src/components/feature-tabs.tsx +++ b/packages/web/docs/src/components/feature-tabs.tsx @@ -105,7 +105,7 @@ function Feature({ } return ( -
    +
    {title} From 79dec6400ca7f048f9188b1b2e098fe5bd98f1ff Mon Sep 17 00:00:00 2001 From: Piotr Monwid-Olechnowicz Date: Mon, 3 Feb 2025 18:45:40 +0100 Subject: [PATCH 11/22] Clean up Orchestrate section --- .../src/app/gateway/orchestrate-your-way.tsx | 132 ------------------ 1 file changed, 132 deletions(-) delete mode 100644 packages/web/docs/src/app/gateway/orchestrate-your-way.tsx diff --git a/packages/web/docs/src/app/gateway/orchestrate-your-way.tsx b/packages/web/docs/src/app/gateway/orchestrate-your-way.tsx deleted file mode 100644 index 16eaaf1fe4..0000000000 --- a/packages/web/docs/src/app/gateway/orchestrate-your-way.tsx +++ /dev/null @@ -1,132 +0,0 @@ -import { ReactNode } from 'react'; -import { cn, Heading, InfoCard } from '@theguild/components'; - -export function OrchestrateYourWay({ className, ...rest }: React.HTMLAttributes) { - return ( -
    -
    - - Orchestrate your way! - -

    - The open nature of Hive Gateway ensures that it fits into your existing GraphQL - infrastructure. -

    -
    -
      - } - className="flex-1 px-0 sm:px-8 sm:py-0 md:px-8 md:py-0" - > - Ensures full compatibility and seamless operation within Apollo Federation setups, - simplifying integration with existing GraphQL services. - - } - className="border-beige-400 flex-1 basis-full px-0 sm:basis-0 sm:border-l sm:px-8 sm:py-0 md:px-8 md:py-0" - > - Extensive customization options, allowing enterprises to tailor the gateway to fit - specific architectural needs and workflows. - -
    -
      - } text="Apollo Federation V1" /> - } text="Apollo Federation V2" /> - } text="Schema Stitching" /> - } text="Monolith/Single Schema" /> -
    -
    - ); -} - -function CodeIcon() { - return ( - - - - ); -} - -function EditIcon() { - return ( - - - - ); -} - -function LinkCard({ href, text, logo }: { href: string; text: ReactNode; logo: ReactNode }) { - return ( -
  • - {logo} - - {/* todo: green dot */} - - {text} - -
  • - ); -} - -function ApolloLogo() { - return ( - - - - - ); -} - -function StitchingLogo() { - return ( - - - - - ); -} - -function MonolithLogo() { - return ( - - - - - ); -} From 4e8c34ef3063e604b3ad08aac2f900359430566c Mon Sep 17 00:00:00 2001 From: Piotr Monwid-Olechnowicz Date: Mon, 3 Feb 2025 18:51:56 +0100 Subject: [PATCH 12/22] Remvoe a comment --- packages/web/docs/src/components/landing-page-feature-tabs.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web/docs/src/components/landing-page-feature-tabs.tsx b/packages/web/docs/src/components/landing-page-feature-tabs.tsx index fd30d9224f..1204c1cc5d 100644 --- a/packages/web/docs/src/components/landing-page-feature-tabs.tsx +++ b/packages/web/docs/src/components/landing-page-feature-tabs.tsx @@ -27,7 +27,7 @@ export const highlights: Record = { { title: 'Composition Error Prevention', description: 'Avoid runtime errors by validating compatibility of all your subgraphs.', - image: registrySchemaChecksImage, // TODO: Replace with correct image + image: registrySchemaChecksImage, }, { title: 'Schema Explorer', From c2449601e77cf86f5a3f96bacfd41e8c88322f2e Mon Sep 17 00:00:00 2001 From: Piotr Monwid-Olechnowicz Date: Tue, 4 Feb 2025 19:51:56 +0100 Subject: [PATCH 13/22] Make the padding on GatewayMarqueeRows items smaller --- packages/web/docs/src/app/gateway/gateway-marquee-rows.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web/docs/src/app/gateway/gateway-marquee-rows.tsx b/packages/web/docs/src/app/gateway/gateway-marquee-rows.tsx index 7d21986876..5a0446f0b5 100644 --- a/packages/web/docs/src/app/gateway/gateway-marquee-rows.tsx +++ b/packages/web/docs/src/app/gateway/gateway-marquee-rows.tsx @@ -63,7 +63,7 @@ export function GatewayMarqueeRows({ labels.map((label, i) => ( {label} From 1fad2831fe9aa982ebb6bb5761a39c16e37aa676 Mon Sep 17 00:00:00 2001 From: Piotr Monwid-Olechnowicz Date: Wed, 5 Feb 2025 15:41:10 +0100 Subject: [PATCH 14/22] Use stable version of Components --- package.json | 2 +- packages/web/docs/package.json | 2 +- pnpm-lock.yaml | 497 +++++++++++++++------------------ 3 files changed, 225 insertions(+), 276 deletions(-) diff --git a/package.json b/package.json index aec78fcd25..af7377c126 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ }, "license": "MIT", "private": true, - "packageManager": "pnpm@9.15.5", + "packageManager": "pnpm@10.0.0", "engines": { "node": ">=22", "pnpm": ">=9.15.5" diff --git a/packages/web/docs/package.json b/packages/web/docs/package.json index f8680df5a5..d696dd8a75 100644 --- a/packages/web/docs/package.json +++ b/packages/web/docs/package.json @@ -16,7 +16,7 @@ "@radix-ui/react-icons": "1.3.2", "@radix-ui/react-tabs": "1.1.2", "@radix-ui/react-tooltip": "1.1.6", - "@theguild/components": "9.3.1-alpha-20250203132247-81689b6a845e70e06ba48d7ad3c2588bea379e9d", + "@theguild/components": "9.3.2", "date-fns": "4.1.0", "next": "15.1.6", "react": "19.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4a5542039a..aadcbb0563 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,49 +16,49 @@ overrides: patchedDependencies: '@apollo/federation@0.38.1': - hash: rjgakkkphrejw6qrtph4ar24zq + hash: cb592719b35ac58f48c97dd557e19223b45b2c5544bec4f6f2e741c58b7f1de9 path: patches/@apollo__federation@0.38.1.patch '@fastify/vite': - hash: wz23vdqq6qtsz64wb433afnvou + hash: f5ce073a4db250ed3db1d9c19e2a253418454ee379530bdee25869570d7b500b path: patches/@fastify__vite.patch '@graphiql/react': - hash: scbly4qchgvjjjrsxpgbcil634 + hash: 1018befc9149cbc43bc2bf8982d52090a580e68df34b46674234f4e58eb6d0a0 path: patches/@graphiql__react.patch '@graphql-eslint/eslint-plugin@3.20.1': - hash: n437g5o7zq7pnxdxldn52uql2q + hash: 695fba67df25ba9d46472c8398c94c6a2ccf75d902321d8f95150f68e940313e path: patches/@graphql-eslint__eslint-plugin@3.20.1.patch '@oclif/core@3.26.6': - hash: rmd5oidpiuzwrwylcphsrfavay + hash: 7432c7b46bd5e3276faff9af4fc733575417c17a0ec31df3c7a229f766e3cffc path: patches/@oclif__core@3.26.6.patch '@oclif/core@4.0.6': - hash: y5acwfkubqiafo3iitlwsynmki + hash: d1dc04fa0009203663f00e051630035b556b6bd06913c6ab45aeee47ccdedd46 path: patches/@oclif__core@4.0.6.patch '@theguild/editor@1.2.5': - hash: pz2nlsfawfhpo6sw62ecmp2yum + hash: a401455daa519af0fe686b4f970a02582f9e406c520aad19273a8eeef8f4adf7 path: patches/@theguild__editor@1.2.5.patch countup.js: - hash: nfqgtlg7dcp6sipx7lntl54mvi + hash: 664547d4d5412a2891bfdfb34790bb773535102f8e26075dfafbd831d79f4410 path: patches/countup.js.patch eslint@8.57.1: - hash: fjbpfrtrjd6idngyeqxnwopfva + hash: 08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0 path: patches/eslint@8.57.1.patch got@14.4.5: - hash: b6pwqmrs3qqykctltsasvrfwti + hash: f7660444905ddadee251ff98241119fb54f5fec1e673a428192da361d5636299 path: patches/got@14.4.5.patch graphiql: - hash: slfrsoypyaawb5yvbcg5g5f3u4 + hash: 87dedd0023d07eef741569477f4a97265c634e9c37040d4b435268abbd435b6d path: patches/graphiql.patch mjml-core@4.14.0: - hash: zxxsxbqejjmcwuzpigutzzq6wa + hash: 52f1e476e154edea0222aa95e55676888525198d882becc3b362511b77fd7e7f path: patches/mjml-core@4.14.0.patch oclif: - hash: kmdoz5rhsd4tek3w4wmt7vygge + hash: 0aac7abfb9211ffbd102f85b840f7fc41d8f64bcb6e71e197f2ad539e58ba9a6 path: patches/oclif.patch p-cancelable@4.0.1: - hash: qvfog2dtlpkk5j2akszkzrck5a + hash: 195ae63d47810ca4c987421948f15869356e598dccde9e8c9a4ff4efd3e88322 path: patches/p-cancelable@4.0.1.patch slonik@30.4.4: - hash: jxrvl4xmdvyktjijg7yfdkb34i + hash: 408d2a91c53799f60fa2e59860bc29067d20318cbf5844306888d0098b88d299 path: patches/slonik@30.4.4.patch importers: @@ -103,7 +103,7 @@ importers: version: 3.0.0(graphql@16.9.0) '@graphql-eslint/eslint-plugin': specifier: 3.20.1 - version: 3.20.1(patch_hash=n437g5o7zq7pnxdxldn52uql2q)(@babel/core@7.22.9)(@types/node@22.10.5)(encoding@0.1.13)(graphql@16.9.0) + version: 3.20.1(patch_hash=695fba67df25ba9d46472c8398c94c6a2ccf75d902321d8f95150f68e940313e)(@babel/core@7.22.9)(@types/node@22.10.5)(encoding@0.1.13)(graphql@16.9.0) '@graphql-inspector/cli': specifier: 4.0.3 version: 4.0.3(@types/node@22.10.5)(encoding@0.1.13)(graphql@16.9.0) @@ -124,7 +124,7 @@ importers: version: 1.10.6(@swc/helpers@0.5.15) '@theguild/eslint-config': specifier: 0.12.1 - version: 0.12.1(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.7.3) + version: 0.12.1(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3) '@theguild/prettier-config': specifier: 2.0.7 version: 2.0.7(prettier@3.4.2) @@ -142,10 +142,10 @@ importers: version: 16.4.7 eslint: specifier: 8.57.1 - version: 8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva) + version: 8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0) eslint-plugin-cypress: specifier: 4.1.0 - version: 4.1.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) + version: 4.1.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)) eslint-plugin-hive: specifier: file:rules version: link:rules @@ -344,7 +344,7 @@ importers: version: 5.4.2 slonik: specifier: 30.4.4 - version: 30.4.4(patch_hash=jxrvl4xmdvyktjijg7yfdkb34i) + version: 30.4.4(patch_hash=408d2a91c53799f60fa2e59860bc29067d20318cbf5844306888d0098b88d299) strip-ansi: specifier: 7.1.0 version: 7.1.0 @@ -424,7 +424,7 @@ importers: version: 3.2.0(graphql@16.9.0) '@oclif/core': specifier: ^3.26.6 - version: 3.26.6(patch_hash=rmd5oidpiuzwrwylcphsrfavay) + version: 3.26.6(patch_hash=7432c7b46bd5e3276faff9af4fc733575417c17a0ec31df3c7a229f766e3cffc) '@oclif/plugin-help': specifier: 6.0.22 version: 6.0.22 @@ -458,7 +458,7 @@ importers: version: 3.1.4 oclif: specifier: 4.13.6 - version: 4.13.6(patch_hash=kmdoz5rhsd4tek3w4wmt7vygge) + version: 4.13.6(patch_hash=0aac7abfb9211ffbd102f85b840f7fc41d8f64bcb6e71e197f2ad539e58ba9a6) rimraf: specifier: 4.4.1 version: 4.4.1 @@ -489,7 +489,7 @@ importers: devDependencies: '@apollo/federation': specifier: 0.38.1 - version: 0.38.1(patch_hash=rjgakkkphrejw6qrtph4ar24zq)(encoding@0.1.13)(graphql@16.9.0) + version: 0.38.1(patch_hash=cb592719b35ac58f48c97dd557e19223b45b2c5544bec4f6f2e741c58b7f1de9)(encoding@0.1.13)(graphql@16.9.0) '@apollo/subgraph': specifier: 2.9.3 version: 2.9.3(graphql@16.9.0) @@ -626,7 +626,7 @@ importers: version: 16.4.7 got: specifier: 14.4.5 - version: 14.4.5(patch_hash=b6pwqmrs3qqykctltsasvrfwti) + version: 14.4.5(patch_hash=f7660444905ddadee251ff98241119fb54f5fec1e673a428192da361d5636299) graphql: specifier: 16.9.0 version: 16.9.0 @@ -638,7 +638,7 @@ importers: version: 11.10.2(pg-query-stream@4.7.0(pg@8.13.1)) slonik: specifier: 30.4.4 - version: 30.4.4(patch_hash=jxrvl4xmdvyktjijg7yfdkb34i) + version: 30.4.4(patch_hash=408d2a91c53799f60fa2e59860bc29067d20318cbf5844306888d0098b88d299) ts-node: specifier: 10.9.2 version: 10.9.2(@swc/core@1.10.6(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.7.3) @@ -771,7 +771,7 @@ importers: version: 2.1.0 got: specifier: 14.4.5 - version: 14.4.5(patch_hash=b6pwqmrs3qqykctltsasvrfwti) + version: 14.4.5(patch_hash=f7660444905ddadee251ff98241119fb54f5fec1e673a428192da361d5636299) graphql: specifier: 16.9.0 version: 16.9.0 @@ -816,7 +816,7 @@ importers: version: 5.0.0-beta.2 slonik: specifier: 30.4.4 - version: 30.4.4(patch_hash=jxrvl4xmdvyktjijg7yfdkb34i) + version: 30.4.4(patch_hash=408d2a91c53799f60fa2e59860bc29067d20318cbf5844306888d0098b88d299) supertokens-node: specifier: 16.7.5 version: 16.7.5(encoding@0.1.13) @@ -1012,7 +1012,7 @@ importers: devDependencies: '@graphql-eslint/eslint-plugin': specifier: 3.20.1 - version: 3.20.1(patch_hash=n437g5o7zq7pnxdxldn52uql2q)(@babel/core@7.26.0)(@types/node@22.10.5)(encoding@0.1.13)(graphql@16.9.0) + version: 3.20.1(patch_hash=695fba67df25ba9d46472c8398c94c6a2ccf75d902321d8f95150f68e940313e)(@babel/core@7.26.0)(@types/node@22.10.5)(encoding@0.1.13)(graphql@16.9.0) '@hive/service-common': specifier: workspace:* version: link:../service-common @@ -1036,7 +1036,7 @@ importers: version: 16.4.7 eslint: specifier: 8.57.1 - version: 8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva) + version: 8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0) fastify: specifier: 4.29.0 version: 4.29.0 @@ -1081,7 +1081,7 @@ importers: version: 16.4.7 got: specifier: 14.4.5 - version: 14.4.5(patch_hash=b6pwqmrs3qqykctltsasvrfwti) + version: 14.4.5(patch_hash=f7660444905ddadee251ff98241119fb54f5fec1e673a428192da361d5636299) pino-pretty: specifier: 11.3.0 version: 11.3.0 @@ -1099,7 +1099,7 @@ importers: devDependencies: '@apollo/federation': specifier: 0.38.1 - version: 0.38.1(patch_hash=rjgakkkphrejw6qrtph4ar24zq)(encoding@0.1.13)(graphql@16.9.0) + version: 0.38.1(patch_hash=cb592719b35ac58f48c97dd557e19223b45b2c5544bec4f6f2e741c58b7f1de9)(encoding@0.1.13)(graphql@16.9.0) '@graphql-hive/external-composition': specifier: workspace:* version: link:../../libraries/external-composition/dist @@ -1138,7 +1138,7 @@ importers: version: 4.29.0 got: specifier: 14.4.5 - version: 14.4.5(patch_hash=b6pwqmrs3qqykctltsasvrfwti) + version: 14.4.5(patch_hash=f7660444905ddadee251ff98241119fb54f5fec1e673a428192da361d5636299) graphql: specifier: 16.9.0 version: 16.9.0 @@ -1246,7 +1246,7 @@ importers: version: 4.29.0 got: specifier: 14.4.5 - version: 14.4.5(patch_hash=b6pwqmrs3qqykctltsasvrfwti) + version: 14.4.5(patch_hash=f7660444905ddadee251ff98241119fb54f5fec1e673a428192da361d5636299) graphql: specifier: 16.9.0 version: 16.9.0 @@ -1346,7 +1346,7 @@ importers: version: 15.1.3 slonik: specifier: 30.4.4 - version: 30.4.4(patch_hash=jxrvl4xmdvyktjijg7yfdkb34i) + version: 30.4.4(patch_hash=408d2a91c53799f60fa2e59860bc29067d20318cbf5844306888d0098b88d299) zod: specifier: 3.24.1 version: 3.24.1 @@ -1382,19 +1382,19 @@ importers: version: 2.1.0 got: specifier: 14.4.5 - version: 14.4.5(patch_hash=b6pwqmrs3qqykctltsasvrfwti) + version: 14.4.5(patch_hash=f7660444905ddadee251ff98241119fb54f5fec1e673a428192da361d5636299) pg-promise: specifier: 11.10.2 version: 11.10.2(pg-query-stream@4.7.0(pg@8.13.1)) slonik: specifier: 30.4.4 - version: 30.4.4(patch_hash=jxrvl4xmdvyktjijg7yfdkb34i) + version: 30.4.4(patch_hash=408d2a91c53799f60fa2e59860bc29067d20318cbf5844306888d0098b88d299) slonik-interceptor-query-logging: specifier: 46.4.0 - version: 46.4.0(slonik@30.4.4(patch_hash=jxrvl4xmdvyktjijg7yfdkb34i)) + version: 46.4.0(slonik@30.4.4(patch_hash=408d2a91c53799f60fa2e59860bc29067d20318cbf5844306888d0098b88d299)) slonik-utilities: specifier: 1.9.4 - version: 1.9.4(slonik@30.4.4(patch_hash=jxrvl4xmdvyktjijg7yfdkb34i)) + version: 1.9.4(slonik@30.4.4(patch_hash=408d2a91c53799f60fa2e59860bc29067d20318cbf5844306888d0098b88d299)) tslib: specifier: 2.8.1 version: 2.8.1 @@ -1430,7 +1430,7 @@ importers: version: 16.4.7 got: specifier: 14.4.5 - version: 14.4.5(patch_hash=b6pwqmrs3qqykctltsasvrfwti) + version: 14.4.5(patch_hash=f7660444905ddadee251ff98241119fb54f5fec1e673a428192da361d5636299) pino-pretty: specifier: 11.3.0 version: 11.3.0 @@ -1526,7 +1526,7 @@ importers: version: 16.4.7 got: specifier: 14.4.5 - version: 14.4.5(patch_hash=b6pwqmrs3qqykctltsasvrfwti) + version: 14.4.5(patch_hash=f7660444905ddadee251ff98241119fb54f5fec1e673a428192da361d5636299) graphql: specifier: 16.9.0 version: 16.9.0 @@ -1568,7 +1568,7 @@ importers: version: 16.4.7 got: specifier: 14.4.5 - version: 14.4.5(patch_hash=b6pwqmrs3qqykctltsasvrfwti) + version: 14.4.5(patch_hash=f7660444905ddadee251ff98241119fb54f5fec1e673a428192da361d5636299) pino-pretty: specifier: 11.3.0 version: 11.3.0 @@ -1607,7 +1607,7 @@ importers: version: 16.4.7 got: specifier: 14.4.5 - version: 14.4.5(patch_hash=b6pwqmrs3qqykctltsasvrfwti) + version: 14.4.5(patch_hash=f7660444905ddadee251ff98241119fb54f5fec1e673a428192da361d5636299) graphql: specifier: 16.9.0 version: 16.9.0 @@ -1649,7 +1649,7 @@ importers: version: 16.4.7 got: specifier: 14.4.5 - version: 14.4.5(patch_hash=b6pwqmrs3qqykctltsasvrfwti) + version: 14.4.5(patch_hash=f7660444905ddadee251ff98241119fb54f5fec1e673a428192da361d5636299) ioredis: specifier: 5.4.2 version: 5.4.2 @@ -1679,13 +1679,13 @@ importers: version: 7.0.4 '@fastify/vite': specifier: 6.0.7 - version: 6.0.7(patch_hash=wz23vdqq6qtsz64wb433afnvou)(@types/node@22.10.5)(less@4.2.0)(lightningcss@1.28.2)(terser@5.37.0) + version: 6.0.7(patch_hash=f5ce073a4db250ed3db1d9c19e2a253418454ee379530bdee25869570d7b500b)(@types/node@22.10.5)(less@4.2.0)(lightningcss@1.28.2)(terser@5.37.0) '@graphiql/plugin-explorer': specifier: 4.0.0-alpha.2 - version: 4.0.0-alpha.2(@graphiql/react@1.0.0-alpha.4(patch_hash=scbly4qchgvjjjrsxpgbcil634)(@codemirror/language@6.10.2)(@types/node@22.10.5)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(graphql-ws@5.16.1(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 4.0.0-alpha.2(@graphiql/react@1.0.0-alpha.4(patch_hash=1018befc9149cbc43bc2bf8982d52090a580e68df34b46674234f4e58eb6d0a0)(@codemirror/language@6.10.2)(@types/node@22.10.5)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(graphql-ws@5.16.1(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@graphiql/react': specifier: 1.0.0-alpha.4 - version: 1.0.0-alpha.4(patch_hash=scbly4qchgvjjjrsxpgbcil634)(@codemirror/language@6.10.2)(@types/node@22.10.5)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(graphql-ws@5.16.1(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.0.0-alpha.4(patch_hash=1018befc9149cbc43bc2bf8982d52090a580e68df34b46674234f4e58eb6d0a0)(@codemirror/language@6.10.2)(@types/node@22.10.5)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(graphql-ws@5.16.1(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@graphiql/toolkit': specifier: 0.9.1 version: 0.9.1(@types/node@22.10.5)(graphql-ws@5.16.1(graphql@16.9.0))(graphql@16.9.0) @@ -1826,7 +1826,7 @@ importers: version: 1.34.9(@tanstack/react-router@1.34.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(csstype@3.1.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@theguild/editor': specifier: 1.2.5 - version: 1.2.5(patch_hash=pz2nlsfawfhpo6sw62ecmp2yum)(@monaco-editor/react@4.6.0(monaco-editor@0.52.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/node@22.10.5)(encoding@0.1.13)(graphql@16.9.0)(monaco-editor@0.52.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.2.5(patch_hash=a401455daa519af0fe686b4f970a02582f9e406c520aad19273a8eeef8f4adf7)(@monaco-editor/react@4.6.0(monaco-editor@0.52.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/node@22.10.5)(encoding@0.1.13)(graphql@16.9.0)(monaco-editor@0.52.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@trpc/client': specifier: 10.45.2 version: 10.45.2(@trpc/server@10.45.2) @@ -1910,7 +1910,7 @@ importers: version: 11.16.1(@emotion/is-prop-valid@1.2.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) graphiql: specifier: 4.0.0-alpha.5 - version: 4.0.0-alpha.5(patch_hash=slfrsoypyaawb5yvbcg5g5f3u4)(@codemirror/language@6.10.2)(@types/node@22.10.5)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(graphql-ws@5.16.1(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 4.0.0-alpha.5(patch_hash=87dedd0023d07eef741569477f4a97265c634e9c37040d4b435268abbd435b6d)(@codemirror/language@6.10.2)(@types/node@22.10.5)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(graphql-ws@5.16.1(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) graphql: specifier: 16.9.0 version: 16.9.0 @@ -2053,16 +2053,8 @@ importers: specifier: 1.1.6 version: 1.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@theguild/components': -<<<<<<< HEAD - specifier: 9.3.1-alpha-20250203132247-81689b6a845e70e06ba48d7ad3c2588bea379e9d - version: 9.3.1-alpha-20250203132247-81689b6a845e70e06ba48d7ad3c2588bea379e9d(@theguild/tailwind-config@0.6.2(postcss-import@16.1.0(postcss@8.4.49))(postcss-lightningcss@1.0.1(postcss@8.4.49))(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.6(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.7.3))))(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(immer@10.1.1)(next@15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)(use-sync-external-store@1.2.0(react@19.0.0)) -||||||| ff33aeed3 - specifier: 9.2.0 - version: 9.2.0(@theguild/tailwind-config@0.6.2(postcss-import@16.1.0(postcss@8.4.49))(postcss-lightningcss@1.0.1(postcss@8.4.49))(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.6(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.7.3))))(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(immer@10.1.1)(next@15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)(use-sync-external-store@1.2.0(react@19.0.0)) -======= - specifier: 9.2.0 - version: 9.2.0(@theguild/tailwind-config@0.6.2(postcss-import@16.1.0(postcss@8.4.49))(postcss-lightningcss@1.0.1(postcss@8.4.49))(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.6(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.7.3))))(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(immer@10.1.1)(next@15.1.6(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)(use-sync-external-store@1.2.0(react@19.0.0)) ->>>>>>> @{-1} + specifier: 9.3.2 + version: 9.3.2(@theguild/tailwind-config@0.6.2(postcss-import@16.1.0(postcss@8.4.49))(postcss-lightningcss@1.0.1(postcss@8.4.49))(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.6(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.7.3))))(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(immer@10.1.1)(next@15.1.6(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)(use-sync-external-store@1.2.0(react@19.0.0)) date-fns: specifier: 4.1.0 version: 4.1.0 @@ -3916,6 +3908,7 @@ packages: '@fastify/vite@6.0.7': resolution: {integrity: sha512-+dRo9KUkvmbqdmBskG02SwigWl06Mwkw8SBDK1zTNH6vd4DyXbRvI7RmJEmBkLouSU81KTzy1+OzwHSffqSD6w==} + bundledDependencies: [] '@floating-ui/core@1.2.6': resolution: {integrity: sha512-EvYTiXet5XqweYGClEmpu3BoxmsQ4hkj3QaYA6qEnigCWffTP3vNRwBReTdrwDwo7OoJ3wM8Uoe9Uk4n+d4hfg==} @@ -7798,8 +7791,8 @@ packages: resolution: {integrity: sha512-kUiFyUQDiVdpeeL/qwOZAdDZrYFTwqppwNZDxOXcPSKeqGCZe8ajbbN64OAS7VlGMnXWxEEHcjhyFzB9gtHn5w==} hasBin: true - '@theguild/components@9.3.1-alpha-20250203132247-81689b6a845e70e06ba48d7ad3c2588bea379e9d': - resolution: {integrity: sha512-P20hqshq6AHpgOSMJpwHwEwtWLNflLfeEh4/bWEuCCDqrFhpGxquyGsiYfnJMN5BLHmdrlcXqTbHScEytMPpbA==} + '@theguild/components@9.3.2': + resolution: {integrity: sha512-FBqcR3QDh5dhtlek+7Q5qWtqsZGXGXk5FnYhXt5w9CY2PGFHPymFyxPyEh5zY22loa8sicv1EjF8BVf734jeJQ==} peerDependencies: '@theguild/tailwind-config': ^0.6.2 next: ^13 || ^14 || ^15.0.0 @@ -12769,9 +12762,6 @@ packages: engines: {node: '>=10'} hasBin: true - mlly@1.7.3: - resolution: {integrity: sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A==} - mlly@1.7.4: resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} @@ -16226,7 +16216,7 @@ snapshots: js-levenshtein: 1.1.6 uuid: 9.0.1 - '@apollo/federation@0.38.1(patch_hash=rjgakkkphrejw6qrtph4ar24zq)(encoding@0.1.13)(graphql@16.9.0)': + '@apollo/federation@0.38.1(patch_hash=cb592719b35ac58f48c97dd557e19223b45b2c5544bec4f6f2e741c58b7f1de9)(encoding@0.1.13)(graphql@16.9.0)': dependencies: '@apollo/subgraph': 0.6.1(graphql@16.9.0) apollo-server-types: 3.7.0(encoding@0.1.13)(graphql@16.9.0) @@ -16539,8 +16529,8 @@ snapshots: dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sso-oidc': 3.596.0 - '@aws-sdk/client-sts': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0) + '@aws-sdk/client-sso-oidc': 3.596.0(@aws-sdk/client-sts@3.596.0) + '@aws-sdk/client-sts': 3.596.0 '@aws-sdk/core': 3.592.0 '@aws-sdk/credential-provider-node': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0)(@aws-sdk/client-sts@3.596.0) '@aws-sdk/middleware-host-header': 3.577.0 @@ -16647,11 +16637,11 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sso-oidc@3.596.0': + '@aws-sdk/client-sso-oidc@3.596.0(@aws-sdk/client-sts@3.596.0)': dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sts': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0) + '@aws-sdk/client-sts': 3.596.0 '@aws-sdk/core': 3.592.0 '@aws-sdk/credential-provider-node': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0)(@aws-sdk/client-sts@3.596.0) '@aws-sdk/middleware-host-header': 3.577.0 @@ -16690,6 +16680,7 @@ snapshots: '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 transitivePeerDependencies: + - '@aws-sdk/client-sts' - aws-crt '@aws-sdk/client-sso-oidc@3.723.0(@aws-sdk/client-sts@3.723.0)': @@ -16823,11 +16814,11 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sts@3.596.0(@aws-sdk/client-sso-oidc@3.596.0)': + '@aws-sdk/client-sts@3.596.0': dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sso-oidc': 3.596.0 + '@aws-sdk/client-sso-oidc': 3.596.0(@aws-sdk/client-sts@3.596.0) '@aws-sdk/core': 3.592.0 '@aws-sdk/credential-provider-node': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0)(@aws-sdk/client-sts@3.596.0) '@aws-sdk/middleware-host-header': 3.577.0 @@ -16866,7 +16857,6 @@ snapshots: '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 transitivePeerDependencies: - - '@aws-sdk/client-sso-oidc' - aws-crt '@aws-sdk/client-sts@3.723.0': @@ -16980,7 +16970,7 @@ snapshots: '@aws-sdk/credential-provider-ini@3.596.0(@aws-sdk/client-sso-oidc@3.596.0)(@aws-sdk/client-sts@3.596.0)': dependencies: - '@aws-sdk/client-sts': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0) + '@aws-sdk/client-sts': 3.596.0 '@aws-sdk/credential-provider-env': 3.587.0 '@aws-sdk/credential-provider-http': 3.596.0 '@aws-sdk/credential-provider-process': 3.587.0 @@ -17099,7 +17089,7 @@ snapshots: '@aws-sdk/credential-provider-web-identity@3.587.0(@aws-sdk/client-sts@3.596.0)': dependencies: - '@aws-sdk/client-sts': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0) + '@aws-sdk/client-sts': 3.596.0 '@aws-sdk/types': 3.577.0 '@smithy/property-provider': 3.1.11 '@smithy/types': 3.7.2 @@ -17274,7 +17264,7 @@ snapshots: '@aws-sdk/token-providers@3.587.0(@aws-sdk/client-sso-oidc@3.596.0)': dependencies: - '@aws-sdk/client-sso-oidc': 3.596.0 + '@aws-sdk/client-sso-oidc': 3.596.0(@aws-sdk/client-sts@3.596.0) '@aws-sdk/types': 3.577.0 '@smithy/property-provider': 3.1.11 '@smithy/shared-ini-file-loader': 3.1.12 @@ -18514,9 +18504,9 @@ snapshots: graphql: 16.9.0 optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))': + '@eslint-community/eslint-utils@4.4.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))': dependencies: - eslint: 8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva) + eslint: 8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.11.0': {} @@ -18630,7 +18620,7 @@ snapshots: fastq: 1.17.1 glob: 10.3.12 - '@fastify/vite@6.0.7(patch_hash=wz23vdqq6qtsz64wb433afnvou)(@types/node@22.10.5)(less@4.2.0)(lightningcss@1.28.2)(terser@5.37.0)': + '@fastify/vite@6.0.7(patch_hash=f5ce073a4db250ed3db1d9c19e2a253418454ee379530bdee25869570d7b500b)(@types/node@22.10.5)(less@4.2.0)(lightningcss@1.28.2)(terser@5.37.0)': dependencies: '@fastify/middie': 8.3.1 '@fastify/static': 6.12.0 @@ -18700,15 +18690,15 @@ snapshots: graphql: 16.9.0 typescript: 5.7.3 - '@graphiql/plugin-explorer@4.0.0-alpha.2(@graphiql/react@1.0.0-alpha.4(patch_hash=scbly4qchgvjjjrsxpgbcil634)(@codemirror/language@6.10.2)(@types/node@22.10.5)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(graphql-ws@5.16.1(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@graphiql/plugin-explorer@4.0.0-alpha.2(@graphiql/react@1.0.0-alpha.4(patch_hash=1018befc9149cbc43bc2bf8982d52090a580e68df34b46674234f4e58eb6d0a0)(@codemirror/language@6.10.2)(@types/node@22.10.5)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(graphql-ws@5.16.1(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@graphiql/react': 1.0.0-alpha.4(patch_hash=scbly4qchgvjjjrsxpgbcil634)(@codemirror/language@6.10.2)(@types/node@22.10.5)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(graphql-ws@5.16.1(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@graphiql/react': 1.0.0-alpha.4(patch_hash=1018befc9149cbc43bc2bf8982d52090a580e68df34b46674234f4e58eb6d0a0)(@codemirror/language@6.10.2)(@types/node@22.10.5)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(graphql-ws@5.16.1(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) graphiql-explorer: 0.9.0(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) graphql: 16.9.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@graphiql/react@1.0.0-alpha.4(patch_hash=scbly4qchgvjjjrsxpgbcil634)(@codemirror/language@6.10.2)(@types/node@22.10.5)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(graphql-ws@5.16.1(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@graphiql/react@1.0.0-alpha.4(patch_hash=1018befc9149cbc43bc2bf8982d52090a580e68df34b46674234f4e58eb6d0a0)(@codemirror/language@6.10.2)(@types/node@22.10.5)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(graphql-ws@5.16.1(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@graphiql/toolkit': 0.10.0(@types/node@22.10.5)(graphql-ws@5.16.1(graphql@16.9.0))(graphql@16.9.0) '@headlessui/react': 1.7.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -18955,7 +18945,7 @@ snapshots: - encoding - supports-color - '@graphql-eslint/eslint-plugin@3.20.1(patch_hash=n437g5o7zq7pnxdxldn52uql2q)(@babel/core@7.22.9)(@types/node@22.10.5)(encoding@0.1.13)(graphql@16.9.0)': + '@graphql-eslint/eslint-plugin@3.20.1(patch_hash=695fba67df25ba9d46472c8398c94c6a2ccf75d902321d8f95150f68e940313e)(@babel/core@7.22.9)(@types/node@22.10.5)(encoding@0.1.13)(graphql@16.9.0)': dependencies: '@babel/code-frame': 7.26.2 '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.22.9)(graphql@16.9.0) @@ -18978,7 +18968,7 @@ snapshots: - supports-color - utf-8-validate - '@graphql-eslint/eslint-plugin@3.20.1(patch_hash=n437g5o7zq7pnxdxldn52uql2q)(@babel/core@7.26.0)(@types/node@22.10.5)(encoding@0.1.13)(graphql@16.9.0)': + '@graphql-eslint/eslint-plugin@3.20.1(patch_hash=695fba67df25ba9d46472c8398c94c6a2ccf75d902321d8f95150f68e940313e)(@babel/core@7.26.0)(@types/node@22.10.5)(encoding@0.1.13)(graphql@16.9.0)': dependencies: '@babel/code-frame': 7.26.2 '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.26.0)(graphql@16.9.0) @@ -19975,7 +19965,7 @@ snapshots: debug: 4.4.0(supports-color@8.1.1) kolorist: 1.8.0 local-pkg: 0.5.0 - mlly: 1.7.3 + mlly: 1.7.4 transitivePeerDependencies: - supports-color @@ -20494,7 +20484,7 @@ snapshots: promise-all-reject-late: 1.0.1 promise-call-limit: 3.0.1 read-package-json-fast: 3.0.2 - semver: 7.6.2 + semver: 7.6.3 ssri: 10.0.5 treeverse: 3.0.0 walk-up-path: 3.0.1 @@ -20587,7 +20577,7 @@ snapshots: - bluebird - supports-color - '@oclif/core@3.26.6(patch_hash=rmd5oidpiuzwrwylcphsrfavay)': + '@oclif/core@3.26.6(patch_hash=7432c7b46bd5e3276faff9af4fc733575417c17a0ec31df3c7a229f766e3cffc)': dependencies: '@types/cli-progress': 3.11.5 ansi-escapes: 4.3.2 @@ -20618,7 +20608,7 @@ snapshots: wordwrap: 1.0.0 wrap-ansi: 7.0.0 - '@oclif/core@4.0.6(patch_hash=y5acwfkubqiafo3iitlwsynmki)': + '@oclif/core@4.0.6(patch_hash=d1dc04fa0009203663f00e051630035b556b6bd06913c6ab45aeee47ccdedd46)': dependencies: ansi-escapes: 4.3.2 ansis: 3.2.0 @@ -20640,23 +20630,23 @@ snapshots: '@oclif/plugin-help@6.0.22': dependencies: - '@oclif/core': 3.26.6(patch_hash=rmd5oidpiuzwrwylcphsrfavay) + '@oclif/core': 3.26.6(patch_hash=7432c7b46bd5e3276faff9af4fc733575417c17a0ec31df3c7a229f766e3cffc) '@oclif/plugin-help@6.2.2': dependencies: - '@oclif/core': 4.0.6(patch_hash=y5acwfkubqiafo3iitlwsynmki) + '@oclif/core': 4.0.6(patch_hash=d1dc04fa0009203663f00e051630035b556b6bd06913c6ab45aeee47ccdedd46) '@oclif/plugin-not-found@3.2.4': dependencies: '@inquirer/confirm': 3.1.9 - '@oclif/core': 4.0.6(patch_hash=y5acwfkubqiafo3iitlwsynmki) + '@oclif/core': 4.0.6(patch_hash=d1dc04fa0009203663f00e051630035b556b6bd06913c6ab45aeee47ccdedd46) ansis: 3.2.0 fast-levenshtein: 3.0.0 '@oclif/plugin-update@4.2.13': dependencies: '@inquirer/select': 2.3.5 - '@oclif/core': 3.26.6(patch_hash=rmd5oidpiuzwrwylcphsrfavay) + '@oclif/core': 3.26.6(patch_hash=7432c7b46bd5e3276faff9af4fc733575417c17a0ec31df3c7a229f766e3cffc) chalk: 5.3.0 debug: 4.3.7(supports-color@8.1.1) filesize: 6.4.0 @@ -20668,7 +20658,7 @@ snapshots: '@oclif/plugin-warn-if-update-available@3.0.19': dependencies: - '@oclif/core': 3.26.6(patch_hash=rmd5oidpiuzwrwylcphsrfavay) + '@oclif/core': 3.26.6(patch_hash=7432c7b46bd5e3276faff9af4fc733575417c17a0ec31df3c7a229f766e3cffc) chalk: 5.3.0 debug: 4.4.0(supports-color@8.1.1) http-call: 5.3.0 @@ -21377,7 +21367,7 @@ snapshots: '@types/shimmer': 1.2.0 import-in-the-middle: 1.8.1 require-in-the-middle: 7.3.0 - semver: 7.6.2 + semver: 7.6.3 shimmer: 1.2.1 transitivePeerDependencies: - supports-color @@ -24206,13 +24196,7 @@ snapshots: typescript: 4.9.5 yargs: 16.2.0 -<<<<<<< HEAD - '@theguild/components@9.3.1-alpha-20250203132247-81689b6a845e70e06ba48d7ad3c2588bea379e9d(@theguild/tailwind-config@0.6.2(postcss-import@16.1.0(postcss@8.4.49))(postcss-lightningcss@1.0.1(postcss@8.4.49))(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.6(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.7.3))))(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(immer@10.1.1)(next@15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)(use-sync-external-store@1.2.0(react@19.0.0))': -||||||| ff33aeed3 - '@theguild/components@9.2.0(@theguild/tailwind-config@0.6.2(postcss-import@16.1.0(postcss@8.4.49))(postcss-lightningcss@1.0.1(postcss@8.4.49))(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.6(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.7.3))))(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(immer@10.1.1)(next@15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)(use-sync-external-store@1.2.0(react@19.0.0))': -======= - '@theguild/components@9.2.0(@theguild/tailwind-config@0.6.2(postcss-import@16.1.0(postcss@8.4.49))(postcss-lightningcss@1.0.1(postcss@8.4.49))(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.6(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.7.3))))(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(immer@10.1.1)(next@15.1.6(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)(use-sync-external-store@1.2.0(react@19.0.0))': ->>>>>>> @{-1} + '@theguild/components@9.3.2(@theguild/tailwind-config@0.6.2(postcss-import@16.1.0(postcss@8.4.49))(postcss-lightningcss@1.0.1(postcss@8.4.49))(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.6(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.7.3))))(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(immer@10.1.1)(next@15.1.6(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)(use-sync-external-store@1.2.0(react@19.0.0))': dependencies: '@giscus/react': 3.1.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@next/bundle-analyzer': 15.1.5 @@ -24222,19 +24206,9 @@ snapshots: '@theguild/tailwind-config': 0.6.2(postcss-import@16.1.0(postcss@8.4.49))(postcss-lightningcss@1.0.1(postcss@8.4.49))(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.6(@swc/helpers@0.5.15))(@types/node@22.10.5)(typescript@5.7.3))) clsx: 2.1.1 fuzzy: 0.1.3 -<<<<<<< HEAD - next: 15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - nextra: 4.0.5(next@15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3) - nextra-theme-docs: 4.0.5(@types/react@18.3.18)(immer@10.1.1)(next@15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(nextra@4.0.5(next@15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.2.0(react@19.0.0)) -||||||| ff33aeed3 - next: 15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - nextra: 4.0.4(next@15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3) - nextra-theme-docs: 4.0.4(@types/react@18.3.18)(immer@10.1.1)(next@15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(nextra@4.0.4(next@15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.2.0(react@19.0.0)) -======= next: 15.1.6(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - nextra: 4.0.4(next@15.1.6(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3) - nextra-theme-docs: 4.0.4(@types/react@18.3.18)(immer@10.1.1)(next@15.1.6(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(nextra@4.0.4(next@15.1.6(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.2.0(react@19.0.0)) ->>>>>>> @{-1} + nextra: 4.0.5(next@15.1.6(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3) + nextra-theme-docs: 4.0.5(@types/react@18.3.18)(immer@10.1.1)(next@15.1.6(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(nextra@4.0.5(next@15.1.6(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.2.0(react@19.0.0)) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) react-paginate: 8.2.0(react@19.0.0) @@ -24252,7 +24226,7 @@ snapshots: - use-sync-external-store - utf-8-validate - '@theguild/editor@1.2.5(patch_hash=pz2nlsfawfhpo6sw62ecmp2yum)(@monaco-editor/react@4.6.0(monaco-editor@0.52.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/node@22.10.5)(encoding@0.1.13)(graphql@16.9.0)(monaco-editor@0.52.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@theguild/editor@1.2.5(patch_hash=a401455daa519af0fe686b4f970a02582f9e406c520aad19273a8eeef8f4adf7)(@monaco-editor/react@4.6.0(monaco-editor@0.52.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/node@22.10.5)(encoding@0.1.13)(graphql@16.9.0)(monaco-editor@0.52.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@monaco-editor/react': 4.6.0(monaco-editor@0.52.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) graphql-language-service: 3.2.5(@types/node@22.10.5)(encoding@0.1.13)(graphql@16.9.0) @@ -24267,25 +24241,25 @@ snapshots: - graphql - utf-8-validate - '@theguild/eslint-config@0.12.1(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.7.3)': + '@theguild/eslint-config@0.12.1(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3)': dependencies: '@rushstack/eslint-patch': 1.10.4 - '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.7.3))(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.7.3) - '@typescript-eslint/parser': 7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.7.3) - eslint: 8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva) - eslint-config-prettier: 9.1.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.7.3))(eslint-plugin-import@2.29.1)(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.7.3))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) - eslint-plugin-jsonc: 2.11.1(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) - eslint-plugin-jsx-a11y: 6.8.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) - eslint-plugin-mdx: 3.0.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) - eslint-plugin-n: 17.0.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) - eslint-plugin-promise: 7.1.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) - eslint-plugin-react: 7.33.2(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) - eslint-plugin-react-hooks: 4.6.2(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) - eslint-plugin-sonarjs: 1.0.3(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) - eslint-plugin-unicorn: 55.0.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) - eslint-plugin-yml: 1.11.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) + '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3))(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3) + '@typescript-eslint/parser': 7.18.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3) + eslint: 8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0) + eslint-config-prettier: 9.1.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3))(eslint-plugin-import@2.29.1)(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)) + eslint-plugin-jsonc: 2.11.1(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)) + eslint-plugin-jsx-a11y: 6.8.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)) + eslint-plugin-mdx: 3.0.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)) + eslint-plugin-n: 17.0.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)) + eslint-plugin-promise: 7.1.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)) + eslint-plugin-react: 7.33.2(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)) + eslint-plugin-react-hooks: 4.6.2(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)) + eslint-plugin-sonarjs: 1.0.3(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)) + eslint-plugin-unicorn: 55.0.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)) + eslint-plugin-yml: 1.11.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)) typescript: 5.7.3 transitivePeerDependencies: - eslint-import-resolver-node @@ -24728,15 +24702,15 @@ snapshots: '@types/node': 22.10.5 optional: true - '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.7.3))(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.7.3)': + '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3))(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3)': dependencies: '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.7.3) + '@typescript-eslint/parser': 7.18.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3) '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.7.3) - '@typescript-eslint/utils': 7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.7.3) + '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3) + '@typescript-eslint/utils': 7.18.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3) '@typescript-eslint/visitor-keys': 7.18.0 - eslint: 8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva) + eslint: 8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -24746,14 +24720,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.7.3)': + '@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3)': dependencies: '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.3) '@typescript-eslint/visitor-keys': 7.18.0 debug: 4.4.0(supports-color@8.1.1) - eslint: 8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva) + eslint: 8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0) optionalDependencies: typescript: 5.7.3 transitivePeerDependencies: @@ -24764,12 +24738,12 @@ snapshots: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - '@typescript-eslint/type-utils@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.7.3)': + '@typescript-eslint/type-utils@7.18.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3)': dependencies: '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.3) - '@typescript-eslint/utils': 7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.7.3) + '@typescript-eslint/utils': 7.18.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3) debug: 4.4.0(supports-color@8.1.1) - eslint: 8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva) + eslint: 8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0) ts-api-utils: 1.3.0(typescript@5.7.3) optionalDependencies: typescript: 5.7.3 @@ -24793,13 +24767,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.7.3)': + '@typescript-eslint/utils@7.18.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)) '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.3) - eslint: 8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva) + eslint: 8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0) transitivePeerDependencies: - supports-color - typescript @@ -26025,7 +25999,7 @@ snapshots: optionalDependencies: typescript: 5.7.3 - countup.js@2.8.0(patch_hash=nfqgtlg7dcp6sipx7lntl54mvi): {} + countup.js@2.8.0(patch_hash=664547d4d5412a2891bfdfb34790bb773535102f8e26075dfafbd831d79f4410): {} cpu-features@0.0.9: dependencies: @@ -26515,7 +26489,7 @@ snapshots: docker-modem@5.0.5: dependencies: - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0(supports-color@8.1.1) readable-stream: 3.6.0 split-ca: 1.0.1 ssh2: 1.15.0 @@ -26921,13 +26895,13 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-compat-utils@0.1.2(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)): + eslint-compat-utils@0.1.2(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)): dependencies: - eslint: 8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva) + eslint: 8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0) - eslint-config-prettier@9.1.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)): + eslint-config-prettier@9.1.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)): dependencies: - eslint: 8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva) + eslint: 8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0) eslint-import-resolver-node@0.3.9: dependencies: @@ -26937,13 +26911,13 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.7.3))(eslint-plugin-import@2.29.1)(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)): + eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3))(eslint-plugin-import@2.29.1)(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)): dependencies: debug: 4.4.0(supports-color@8.1.1) enhanced-resolve: 5.17.1 - eslint: 8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva) - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.7.3))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) + eslint: 8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)) fast-glob: 3.3.2 get-tsconfig: 4.7.5 is-core-module: 2.13.1 @@ -26954,11 +26928,11 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-mdx@3.0.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)): + eslint-mdx@3.0.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)): dependencies: acorn: 8.14.0 acorn-jsx: 5.3.2(acorn@8.14.0) - eslint: 8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva) + eslint: 8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0) espree: 9.6.1 estree-util-visit: 2.0.0 remark-mdx: 3.0.0 @@ -26974,30 +26948,30 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.8.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)): + eslint-module-utils@2.8.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)): dependencies: debug: 3.2.7(supports-color@8.1.1) optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.7.3) - eslint: 8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva) + '@typescript-eslint/parser': 7.18.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3) + eslint: 8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.7.3))(eslint-plugin-import@2.29.1)(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3))(eslint-plugin-import@2.29.1)(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)) transitivePeerDependencies: - supports-color - eslint-plugin-cypress@4.1.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)): + eslint-plugin-cypress@4.1.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)): dependencies: - eslint: 8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva) + eslint: 8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0) globals: 15.11.0 - eslint-plugin-es-x@7.5.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)): + eslint-plugin-es-x@7.5.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)) '@eslint-community/regexpp': 4.11.0 - eslint: 8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva) - eslint-compat-utils: 0.1.2(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) + eslint: 8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0) + eslint-compat-utils: 0.1.2(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)) - eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.7.3))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)): + eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)): dependencies: array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 @@ -27005,9 +26979,9 @@ snapshots: array.prototype.flatmap: 1.3.2 debug: 3.2.7(supports-color@8.1.1) doctrine: 2.1.0 - eslint: 8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva) + eslint: 8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -27018,22 +26992,22 @@ snapshots: semver: 6.3.1 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva))(typescript@5.7.3) + '@typescript-eslint/parser': 7.18.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jsonc@2.11.1(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)): + eslint-plugin-jsonc@2.11.1(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) - eslint: 8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva) - eslint-compat-utils: 0.1.2(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)) + eslint: 8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0) + eslint-compat-utils: 0.1.2(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)) graphemer: 1.4.0 jsonc-eslint-parser: 2.1.0 natural-compare: 1.4.0 - eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)): + eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)): dependencies: '@babel/runtime': 7.24.7 aria-query: 5.3.0 @@ -27045,7 +27019,7 @@ snapshots: damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 es-iterator-helpers: 1.0.15 - eslint: 8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva) + eslint: 8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0) hasown: 2.0.0 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -27053,18 +27027,18 @@ snapshots: object.entries: 1.1.7 object.fromentries: 2.0.7 - eslint-plugin-markdown@3.0.1(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)): + eslint-plugin-markdown@3.0.1(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)): dependencies: - eslint: 8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva) + eslint: 8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0) mdast-util-from-markdown: 0.8.5 transitivePeerDependencies: - supports-color - eslint-plugin-mdx@3.0.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)): + eslint-plugin-mdx@3.0.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)): dependencies: - eslint: 8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva) - eslint-mdx: 3.0.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) - eslint-plugin-markdown: 3.0.1(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) + eslint: 8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0) + eslint-mdx: 3.0.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)) + eslint-plugin-markdown: 3.0.1(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)) remark-mdx: 3.0.0 remark-parse: 11.0.0 remark-stringify: 11.0.0 @@ -27074,12 +27048,12 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-n@17.0.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)): + eslint-plugin-n@17.0.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)) enhanced-resolve: 5.17.1 - eslint: 8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva) - eslint-plugin-es-x: 7.5.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) + eslint: 8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0) + eslint-plugin-es-x: 7.5.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)) get-tsconfig: 4.7.5 globals: 14.0.0 ignore: 5.3.2 @@ -27087,22 +27061,22 @@ snapshots: minimatch: 9.0.5 semver: 7.6.3 - eslint-plugin-promise@7.1.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)): + eslint-plugin-promise@7.1.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)): dependencies: - eslint: 8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva) + eslint: 8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0) - eslint-plugin-react-hooks@4.6.2(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)): + eslint-plugin-react-hooks@4.6.2(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)): dependencies: - eslint: 8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva) + eslint: 8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0) - eslint-plugin-react@7.33.2(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)): + eslint-plugin-react@7.33.2(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)): dependencies: array-includes: 3.1.7 array.prototype.flatmap: 1.3.2 array.prototype.tosorted: 1.1.1 doctrine: 2.1.0 es-iterator-helpers: 1.0.15 - eslint: 8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva) + eslint: 8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0) estraverse: 5.3.0 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 @@ -27115,18 +27089,18 @@ snapshots: semver: 6.3.1 string.prototype.matchall: 4.0.8 - eslint-plugin-sonarjs@1.0.3(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)): + eslint-plugin-sonarjs@1.0.3(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)): dependencies: - eslint: 8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva) + eslint: 8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0) - eslint-plugin-unicorn@55.0.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)): + eslint-plugin-unicorn@55.0.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)): dependencies: '@babel/helper-validator-identifier': 7.25.9 - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)) ci-info: 4.0.0 clean-regexp: 1.0.0 core-js-compat: 3.37.1 - eslint: 8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva) + eslint: 8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0) esquery: 1.5.0 globals: 15.11.0 indent-string: 4.0.0 @@ -27139,11 +27113,11 @@ snapshots: semver: 7.6.3 strip-indent: 3.0.0 - eslint-plugin-yml@1.11.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)): + eslint-plugin-yml@1.11.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)): dependencies: debug: 4.4.0(supports-color@8.1.1) - eslint: 8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva) - eslint-compat-utils: 0.1.2(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) + eslint: 8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0) + eslint-compat-utils: 0.1.2(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)) lodash: 4.17.21 natural-compare: 1.4.0 yaml-eslint-parser: 1.2.2 @@ -27157,9 +27131,9 @@ snapshots: eslint-visitor-keys@3.4.3: {} - eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva): + eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1(patch_hash=fjbpfrtrjd6idngyeqxnwopfva)) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)) '@eslint-community/regexpp': 4.11.0 '@eslint/eslintrc': 2.1.4 '@eslint/js': 8.57.1 @@ -27977,7 +27951,7 @@ snapshots: p-cancelable: 3.0.0 responselike: 3.0.0 - got@14.4.5(patch_hash=b6pwqmrs3qqykctltsasvrfwti): + got@14.4.5(patch_hash=f7660444905ddadee251ff98241119fb54f5fec1e673a428192da361d5636299): dependencies: '@sindresorhus/is': 7.0.1 '@szmarczak/http-timer': 5.0.1 @@ -27987,7 +27961,7 @@ snapshots: form-data-encoder: 4.0.2 http2-wrapper: 2.2.1 lowercase-keys: 3.0.0 - p-cancelable: 4.0.1(patch_hash=qvfog2dtlpkk5j2akszkzrck5a) + p-cancelable: 4.0.1(patch_hash=195ae63d47810ca4c987421948f15869356e598dccde9e8c9a4ff4efd3e88322) responselike: 3.0.0 type-fest: 4.26.1 @@ -28001,9 +27975,9 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - graphiql@4.0.0-alpha.5(patch_hash=slfrsoypyaawb5yvbcg5g5f3u4)(@codemirror/language@6.10.2)(@types/node@22.10.5)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(graphql-ws@5.16.1(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + graphiql@4.0.0-alpha.5(patch_hash=87dedd0023d07eef741569477f4a97265c634e9c37040d4b435268abbd435b6d)(@codemirror/language@6.10.2)(@types/node@22.10.5)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(graphql-ws@5.16.1(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@graphiql/react': 1.0.0-alpha.4(patch_hash=scbly4qchgvjjjrsxpgbcil634)(@codemirror/language@6.10.2)(@types/node@22.10.5)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(graphql-ws@5.16.1(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@graphiql/react': 1.0.0-alpha.4(patch_hash=1018befc9149cbc43bc2bf8982d52090a580e68df34b46674234f4e58eb6d0a0)(@codemirror/language@6.10.2)(@types/node@22.10.5)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(graphql-ws@5.16.1(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) graphql: 16.9.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -29358,7 +29332,7 @@ snapshots: local-pkg@0.5.0: dependencies: - mlly: 1.7.3 + mlly: 1.7.4 pkg-types: 1.3.0 localforage@1.10.0: @@ -30248,7 +30222,7 @@ snapshots: dependencies: '@babel/runtime': 7.24.7 lodash: 4.17.21 - mjml-core: 4.14.0(patch_hash=zxxsxbqejjmcwuzpigutzzq6wa)(encoding@0.1.13) + mjml-core: 4.14.0(patch_hash=52f1e476e154edea0222aa95e55676888525198d882becc3b362511b77fd7e7f)(encoding@0.1.13) transitivePeerDependencies: - encoding @@ -30256,7 +30230,7 @@ snapshots: dependencies: '@babel/runtime': 7.24.7 lodash: 4.17.21 - mjml-core: 4.14.0(patch_hash=zxxsxbqejjmcwuzpigutzzq6wa)(encoding@0.1.13) + mjml-core: 4.14.0(patch_hash=52f1e476e154edea0222aa95e55676888525198d882becc3b362511b77fd7e7f)(encoding@0.1.13) transitivePeerDependencies: - encoding @@ -30264,7 +30238,7 @@ snapshots: dependencies: '@babel/runtime': 7.24.7 lodash: 4.17.21 - mjml-core: 4.14.0(patch_hash=zxxsxbqejjmcwuzpigutzzq6wa)(encoding@0.1.13) + mjml-core: 4.14.0(patch_hash=52f1e476e154edea0222aa95e55676888525198d882becc3b362511b77fd7e7f)(encoding@0.1.13) transitivePeerDependencies: - encoding @@ -30272,7 +30246,7 @@ snapshots: dependencies: '@babel/runtime': 7.24.7 lodash: 4.17.21 - mjml-core: 4.14.0(patch_hash=zxxsxbqejjmcwuzpigutzzq6wa)(encoding@0.1.13) + mjml-core: 4.14.0(patch_hash=52f1e476e154edea0222aa95e55676888525198d882becc3b362511b77fd7e7f)(encoding@0.1.13) transitivePeerDependencies: - encoding @@ -30283,7 +30257,7 @@ snapshots: glob: 7.2.3 js-beautify: 1.14.6 lodash: 4.17.21 - mjml-core: 4.14.0(patch_hash=zxxsxbqejjmcwuzpigutzzq6wa)(encoding@0.1.13) + mjml-core: 4.14.0(patch_hash=52f1e476e154edea0222aa95e55676888525198d882becc3b362511b77fd7e7f)(encoding@0.1.13) mjml-migrate: 4.14.0(encoding@0.1.13) mjml-parser-xml: 4.14.0 mjml-validator: 4.13.0 @@ -30295,11 +30269,11 @@ snapshots: dependencies: '@babel/runtime': 7.24.7 lodash: 4.17.21 - mjml-core: 4.14.0(patch_hash=zxxsxbqejjmcwuzpigutzzq6wa)(encoding@0.1.13) + mjml-core: 4.14.0(patch_hash=52f1e476e154edea0222aa95e55676888525198d882becc3b362511b77fd7e7f)(encoding@0.1.13) transitivePeerDependencies: - encoding - mjml-core@4.14.0(patch_hash=zxxsxbqejjmcwuzpigutzzq6wa)(encoding@0.1.13): + mjml-core@4.14.0(patch_hash=52f1e476e154edea0222aa95e55676888525198d882becc3b362511b77fd7e7f)(encoding@0.1.13): dependencies: '@babel/runtime': 7.24.7 cheerio: 1.0.0-rc.10 @@ -30317,7 +30291,7 @@ snapshots: dependencies: '@babel/runtime': 7.24.7 lodash: 4.17.21 - mjml-core: 4.14.0(patch_hash=zxxsxbqejjmcwuzpigutzzq6wa)(encoding@0.1.13) + mjml-core: 4.14.0(patch_hash=52f1e476e154edea0222aa95e55676888525198d882becc3b362511b77fd7e7f)(encoding@0.1.13) transitivePeerDependencies: - encoding @@ -30325,7 +30299,7 @@ snapshots: dependencies: '@babel/runtime': 7.24.7 lodash: 4.17.21 - mjml-core: 4.14.0(patch_hash=zxxsxbqejjmcwuzpigutzzq6wa)(encoding@0.1.13) + mjml-core: 4.14.0(patch_hash=52f1e476e154edea0222aa95e55676888525198d882becc3b362511b77fd7e7f)(encoding@0.1.13) transitivePeerDependencies: - encoding @@ -30333,7 +30307,7 @@ snapshots: dependencies: '@babel/runtime': 7.24.7 lodash: 4.17.21 - mjml-core: 4.14.0(patch_hash=zxxsxbqejjmcwuzpigutzzq6wa)(encoding@0.1.13) + mjml-core: 4.14.0(patch_hash=52f1e476e154edea0222aa95e55676888525198d882becc3b362511b77fd7e7f)(encoding@0.1.13) transitivePeerDependencies: - encoding @@ -30341,7 +30315,7 @@ snapshots: dependencies: '@babel/runtime': 7.24.7 lodash: 4.17.21 - mjml-core: 4.14.0(patch_hash=zxxsxbqejjmcwuzpigutzzq6wa)(encoding@0.1.13) + mjml-core: 4.14.0(patch_hash=52f1e476e154edea0222aa95e55676888525198d882becc3b362511b77fd7e7f)(encoding@0.1.13) transitivePeerDependencies: - encoding @@ -30349,7 +30323,7 @@ snapshots: dependencies: '@babel/runtime': 7.24.7 lodash: 4.17.21 - mjml-core: 4.14.0(patch_hash=zxxsxbqejjmcwuzpigutzzq6wa)(encoding@0.1.13) + mjml-core: 4.14.0(patch_hash=52f1e476e154edea0222aa95e55676888525198d882becc3b362511b77fd7e7f)(encoding@0.1.13) transitivePeerDependencies: - encoding @@ -30357,7 +30331,7 @@ snapshots: dependencies: '@babel/runtime': 7.24.7 lodash: 4.17.21 - mjml-core: 4.14.0(patch_hash=zxxsxbqejjmcwuzpigutzzq6wa)(encoding@0.1.13) + mjml-core: 4.14.0(patch_hash=52f1e476e154edea0222aa95e55676888525198d882becc3b362511b77fd7e7f)(encoding@0.1.13) transitivePeerDependencies: - encoding @@ -30365,7 +30339,7 @@ snapshots: dependencies: '@babel/runtime': 7.24.7 lodash: 4.17.21 - mjml-core: 4.14.0(patch_hash=zxxsxbqejjmcwuzpigutzzq6wa)(encoding@0.1.13) + mjml-core: 4.14.0(patch_hash=52f1e476e154edea0222aa95e55676888525198d882becc3b362511b77fd7e7f)(encoding@0.1.13) transitivePeerDependencies: - encoding @@ -30373,7 +30347,7 @@ snapshots: dependencies: '@babel/runtime': 7.24.7 lodash: 4.17.21 - mjml-core: 4.14.0(patch_hash=zxxsxbqejjmcwuzpigutzzq6wa)(encoding@0.1.13) + mjml-core: 4.14.0(patch_hash=52f1e476e154edea0222aa95e55676888525198d882becc3b362511b77fd7e7f)(encoding@0.1.13) transitivePeerDependencies: - encoding @@ -30381,7 +30355,7 @@ snapshots: dependencies: '@babel/runtime': 7.24.7 lodash: 4.17.21 - mjml-core: 4.14.0(patch_hash=zxxsxbqejjmcwuzpigutzzq6wa)(encoding@0.1.13) + mjml-core: 4.14.0(patch_hash=52f1e476e154edea0222aa95e55676888525198d882becc3b362511b77fd7e7f)(encoding@0.1.13) transitivePeerDependencies: - encoding @@ -30389,7 +30363,7 @@ snapshots: dependencies: '@babel/runtime': 7.24.7 lodash: 4.17.21 - mjml-core: 4.14.0(patch_hash=zxxsxbqejjmcwuzpigutzzq6wa)(encoding@0.1.13) + mjml-core: 4.14.0(patch_hash=52f1e476e154edea0222aa95e55676888525198d882becc3b362511b77fd7e7f)(encoding@0.1.13) transitivePeerDependencies: - encoding @@ -30397,7 +30371,7 @@ snapshots: dependencies: '@babel/runtime': 7.24.7 lodash: 4.17.21 - mjml-core: 4.14.0(patch_hash=zxxsxbqejjmcwuzpigutzzq6wa)(encoding@0.1.13) + mjml-core: 4.14.0(patch_hash=52f1e476e154edea0222aa95e55676888525198d882becc3b362511b77fd7e7f)(encoding@0.1.13) transitivePeerDependencies: - encoding @@ -30405,7 +30379,7 @@ snapshots: dependencies: '@babel/runtime': 7.24.7 lodash: 4.17.21 - mjml-core: 4.14.0(patch_hash=zxxsxbqejjmcwuzpigutzzq6wa)(encoding@0.1.13) + mjml-core: 4.14.0(patch_hash=52f1e476e154edea0222aa95e55676888525198d882becc3b362511b77fd7e7f)(encoding@0.1.13) transitivePeerDependencies: - encoding @@ -30414,7 +30388,7 @@ snapshots: '@babel/runtime': 7.24.7 js-beautify: 1.14.6 lodash: 4.17.21 - mjml-core: 4.14.0(patch_hash=zxxsxbqejjmcwuzpigutzzq6wa)(encoding@0.1.13) + mjml-core: 4.14.0(patch_hash=52f1e476e154edea0222aa95e55676888525198d882becc3b362511b77fd7e7f)(encoding@0.1.13) mjml-parser-xml: 4.14.0 yargs: 16.2.0 transitivePeerDependencies: @@ -30424,7 +30398,7 @@ snapshots: dependencies: '@babel/runtime': 7.24.7 lodash: 4.17.21 - mjml-core: 4.14.0(patch_hash=zxxsxbqejjmcwuzpigutzzq6wa)(encoding@0.1.13) + mjml-core: 4.14.0(patch_hash=52f1e476e154edea0222aa95e55676888525198d882becc3b362511b77fd7e7f)(encoding@0.1.13) transitivePeerDependencies: - encoding @@ -30470,7 +30444,7 @@ snapshots: dependencies: '@babel/runtime': 7.24.7 lodash: 4.17.21 - mjml-core: 4.14.0(patch_hash=zxxsxbqejjmcwuzpigutzzq6wa)(encoding@0.1.13) + mjml-core: 4.14.0(patch_hash=52f1e476e154edea0222aa95e55676888525198d882becc3b362511b77fd7e7f)(encoding@0.1.13) transitivePeerDependencies: - encoding @@ -30478,7 +30452,7 @@ snapshots: dependencies: '@babel/runtime': 7.24.7 lodash: 4.17.21 - mjml-core: 4.14.0(patch_hash=zxxsxbqejjmcwuzpigutzzq6wa)(encoding@0.1.13) + mjml-core: 4.14.0(patch_hash=52f1e476e154edea0222aa95e55676888525198d882becc3b362511b77fd7e7f)(encoding@0.1.13) transitivePeerDependencies: - encoding @@ -30486,7 +30460,7 @@ snapshots: dependencies: '@babel/runtime': 7.24.7 lodash: 4.17.21 - mjml-core: 4.14.0(patch_hash=zxxsxbqejjmcwuzpigutzzq6wa)(encoding@0.1.13) + mjml-core: 4.14.0(patch_hash=52f1e476e154edea0222aa95e55676888525198d882becc3b362511b77fd7e7f)(encoding@0.1.13) transitivePeerDependencies: - encoding @@ -30494,7 +30468,7 @@ snapshots: dependencies: '@babel/runtime': 7.24.7 lodash: 4.17.21 - mjml-core: 4.14.0(patch_hash=zxxsxbqejjmcwuzpigutzzq6wa)(encoding@0.1.13) + mjml-core: 4.14.0(patch_hash=52f1e476e154edea0222aa95e55676888525198d882becc3b362511b77fd7e7f)(encoding@0.1.13) transitivePeerDependencies: - encoding @@ -30502,7 +30476,7 @@ snapshots: dependencies: '@babel/runtime': 7.24.7 lodash: 4.17.21 - mjml-core: 4.14.0(patch_hash=zxxsxbqejjmcwuzpigutzzq6wa)(encoding@0.1.13) + mjml-core: 4.14.0(patch_hash=52f1e476e154edea0222aa95e55676888525198d882becc3b362511b77fd7e7f)(encoding@0.1.13) transitivePeerDependencies: - encoding @@ -30510,7 +30484,7 @@ snapshots: dependencies: '@babel/runtime': 7.24.7 lodash: 4.17.21 - mjml-core: 4.14.0(patch_hash=zxxsxbqejjmcwuzpigutzzq6wa)(encoding@0.1.13) + mjml-core: 4.14.0(patch_hash=52f1e476e154edea0222aa95e55676888525198d882becc3b362511b77fd7e7f)(encoding@0.1.13) transitivePeerDependencies: - encoding @@ -30522,7 +30496,7 @@ snapshots: dependencies: '@babel/runtime': 7.24.7 lodash: 4.17.21 - mjml-core: 4.14.0(patch_hash=zxxsxbqejjmcwuzpigutzzq6wa)(encoding@0.1.13) + mjml-core: 4.14.0(patch_hash=52f1e476e154edea0222aa95e55676888525198d882becc3b362511b77fd7e7f)(encoding@0.1.13) mjml-section: 4.14.0(encoding@0.1.13) transitivePeerDependencies: - encoding @@ -30531,7 +30505,7 @@ snapshots: dependencies: '@babel/runtime': 7.24.7 mjml-cli: 4.14.0(encoding@0.1.13) - mjml-core: 4.14.0(patch_hash=zxxsxbqejjmcwuzpigutzzq6wa)(encoding@0.1.13) + mjml-core: 4.14.0(patch_hash=52f1e476e154edea0222aa95e55676888525198d882becc3b362511b77fd7e7f)(encoding@0.1.13) mjml-migrate: 4.14.0(encoding@0.1.13) mjml-preset-core: 4.14.0(encoding@0.1.13) mjml-validator: 4.13.0 @@ -30544,13 +30518,6 @@ snapshots: mkdirp@3.0.1: {} - mlly@1.7.3: - dependencies: - acorn: 8.14.0 - pathe: 1.1.2 - pkg-types: 1.3.0 - ufo: 1.5.4 - mlly@1.7.4: dependencies: acorn: 8.14.0 @@ -30687,25 +30654,13 @@ snapshots: - '@babel/core' - babel-plugin-macros -<<<<<<< HEAD - nextra-theme-docs@4.0.5(@types/react@18.3.18)(immer@10.1.1)(next@15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(nextra@4.0.5(next@15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.2.0(react@19.0.0)): -||||||| ff33aeed3 - nextra-theme-docs@4.0.4(@types/react@18.3.18)(immer@10.1.1)(next@15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(nextra@4.0.4(next@15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.2.0(react@19.0.0)): -======= - nextra-theme-docs@4.0.4(@types/react@18.3.18)(immer@10.1.1)(next@15.1.6(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(nextra@4.0.4(next@15.1.6(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.2.0(react@19.0.0)): ->>>>>>> @{-1} + nextra-theme-docs@4.0.5(@types/react@18.3.18)(immer@10.1.1)(next@15.1.6(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(nextra@4.0.5(next@15.1.6(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.2.0(react@19.0.0)): dependencies: '@headlessui/react': 2.2.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) clsx: 2.1.1 next: 15.1.6(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) next-themes: 0.4.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0) -<<<<<<< HEAD - nextra: 4.0.5(next@15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3) -||||||| ff33aeed3 - nextra: 4.0.4(next@15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3) -======= - nextra: 4.0.4(next@15.1.6(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3) ->>>>>>> @{-1} + nextra: 4.0.5(next@15.1.6(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3) react: 19.0.0 react-compiler-runtime: 0.0.0-experimental-22c6e49-20241219(react@19.0.0) react-dom: 19.0.0(react@19.0.0) @@ -30718,13 +30673,7 @@ snapshots: - immer - use-sync-external-store -<<<<<<< HEAD - nextra@4.0.5(next@15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3): -||||||| ff33aeed3 - nextra@4.0.4(next@15.1.0(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3): -======= - nextra@4.0.4(next@15.1.6(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3): ->>>>>>> @{-1} + nextra@4.0.5(next@15.1.6(@babel/core@7.22.9)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3): dependencies: '@formatjs/intl-localematcher': 0.5.5 '@headlessui/react': 2.2.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -30857,7 +30806,7 @@ snapshots: dependencies: hosted-git-info: 7.0.1 is-core-module: 2.16.1 - semver: 7.6.2 + semver: 7.6.3 validate-npm-package-license: 3.0.4 normalize-path@2.1.1: @@ -30993,14 +30942,14 @@ snapshots: obuf@1.1.2: {} - oclif@4.13.6(patch_hash=kmdoz5rhsd4tek3w4wmt7vygge): + oclif@4.13.6(patch_hash=0aac7abfb9211ffbd102f85b840f7fc41d8f64bcb6e71e197f2ad539e58ba9a6): dependencies: '@aws-sdk/client-cloudfront': 3.596.0 '@aws-sdk/client-s3': 3.723.0 '@inquirer/confirm': 3.1.9 '@inquirer/input': 2.1.9 '@inquirer/select': 2.3.5 - '@oclif/core': 4.0.6(patch_hash=y5acwfkubqiafo3iitlwsynmki) + '@oclif/core': 4.0.6(patch_hash=d1dc04fa0009203663f00e051630035b556b6bd06913c6ab45aeee47ccdedd46) '@oclif/plugin-help': 6.2.2 '@oclif/plugin-not-found': 3.2.4 '@oclif/plugin-warn-if-update-available': 3.0.19 @@ -31099,7 +31048,7 @@ snapshots: p-cancelable@3.0.0: {} - p-cancelable@4.0.1(patch_hash=qvfog2dtlpkk5j2akszkzrck5a): {} + p-cancelable@4.0.1(patch_hash=195ae63d47810ca4c987421948f15869356e598dccde9e8c9a4ff4efd3e88322): {} p-defer@3.0.0: {} @@ -31509,7 +31458,7 @@ snapshots: pkg-types@1.3.0: dependencies: confbox: 0.1.8 - mlly: 1.7.3 + mlly: 1.7.4 pathe: 1.1.2 pluralize@8.0.0: {} @@ -31851,7 +31800,7 @@ snapshots: react-countup@6.5.3(react@19.0.0): dependencies: - countup.js: 2.8.0(patch_hash=nfqgtlg7dcp6sipx7lntl54mvi) + countup.js: 2.8.0(patch_hash=664547d4d5412a2891bfdfb34790bb773535102f8e26075dfafbd831d79f4410) react: 19.0.0 react-day-picker@8.10.1(date-fns@4.1.0)(react@18.3.1): @@ -32728,14 +32677,14 @@ snapshots: slick@1.12.2: {} - slonik-interceptor-query-logging@46.4.0(slonik@30.4.4(patch_hash=jxrvl4xmdvyktjijg7yfdkb34i)): + slonik-interceptor-query-logging@46.4.0(slonik@30.4.4(patch_hash=408d2a91c53799f60fa2e59860bc29067d20318cbf5844306888d0098b88d299)): dependencies: crack-json: 1.3.0 pretty-ms: 7.0.1 serialize-error: 8.1.0 - slonik: 30.4.4(patch_hash=jxrvl4xmdvyktjijg7yfdkb34i) + slonik: 30.4.4(patch_hash=408d2a91c53799f60fa2e59860bc29067d20318cbf5844306888d0098b88d299) - slonik-utilities@1.9.4(slonik@30.4.4(patch_hash=jxrvl4xmdvyktjijg7yfdkb34i)): + slonik-utilities@1.9.4(slonik@30.4.4(patch_hash=408d2a91c53799f60fa2e59860bc29067d20318cbf5844306888d0098b88d299)): dependencies: core-js: 3.25.5 delay: 4.4.1 @@ -32743,9 +32692,9 @@ snapshots: lodash: 4.17.21 roarr: 7.14.3 serialize-error: 5.0.0 - slonik: 30.4.4(patch_hash=jxrvl4xmdvyktjijg7yfdkb34i) + slonik: 30.4.4(patch_hash=408d2a91c53799f60fa2e59860bc29067d20318cbf5844306888d0098b88d299) - slonik@30.4.4(patch_hash=jxrvl4xmdvyktjijg7yfdkb34i): + slonik@30.4.4(patch_hash=408d2a91c53799f60fa2e59860bc29067d20318cbf5844306888d0098b88d299): dependencies: concat-stream: 2.0.0 es6-error: 4.1.1 @@ -32814,7 +32763,7 @@ snapshots: git-hooks-list: 3.1.0 globby: 13.1.3 is-plain-obj: 4.1.0 - semver: 7.6.2 + semver: 7.6.3 sort-object-keys: 1.1.3 source-map-js@1.2.1: {} From 6497b9fdaef1e3017e5db5b9c31bbb2bbe34a9de Mon Sep 17 00:00:00 2001 From: Piotr Monwid-Olechnowicz Date: Wed, 5 Feb 2025 17:33:35 +0100 Subject: [PATCH 15/22] Hive /gateway landing: Orchestrate section (#6462) --- .../src/app/gateway/orchestrate-your-way.tsx | 152 ++++++++++++++++++ packages/web/docs/src/app/gateway/page.tsx | 5 +- 2 files changed, 155 insertions(+), 2 deletions(-) create mode 100644 packages/web/docs/src/app/gateway/orchestrate-your-way.tsx diff --git a/packages/web/docs/src/app/gateway/orchestrate-your-way.tsx b/packages/web/docs/src/app/gateway/orchestrate-your-way.tsx new file mode 100644 index 0000000000..a9b7ddc889 --- /dev/null +++ b/packages/web/docs/src/app/gateway/orchestrate-your-way.tsx @@ -0,0 +1,152 @@ +import { ReactNode } from 'react'; +import { Anchor, cn, Heading, InfoCard } from '@theguild/components'; + +export function OrchestrateYourWay({ className, ...rest }: React.HTMLAttributes) { + return ( +
    +
    + + Orchestrate your way! + +

    + The open nature of Hive Gateway ensures that it fits into your existing GraphQL + infrastructure. +

    +
    +
      + } + className="flex-1 bg-transparent px-0 sm:px-8 sm:py-0 md:px-8 md:py-0" + > + Ensures full compatibility and seamless operation within Apollo Federation setups, + simplifying integration with existing GraphQL services. + + } + className="flex-1 basis-full border-blue-300 bg-transparent px-0 max-sm:border-t sm:basis-0 sm:border-l sm:px-8 sm:py-0 md:py-0 md:pl-8 md:pr-0" + > + Extensive customization options, allowing enterprises to tailor the gateway to fit + specific architectural needs and workflows. + +
    +
    +
      + } text="Apollo Federation V1" /> + } text="Apollo Federation V2" /> + } + text="Schema Stitching" + /> + } + text="Monolith/Single Schema" + /> +
    +
    +
    + ); +} + +function CodeIcon() { + return ( + + + + ); +} + +function EditIcon() { + return ( + + + + ); +} + +function LinkCard({ href, text, logo }: { href: string; text: ReactNode; logo: ReactNode }) { + return ( +
  • + + {logo} + + + {text} + + +
  • + ); +} + +function ApolloLogo() { + return ( + + + + + ); +} + +function StitchingLogo() { + return ( + + + + + ); +} + +function MonolithLogo() { + return ( + + + + + ); +} diff --git a/packages/web/docs/src/app/gateway/page.tsx b/packages/web/docs/src/app/gateway/page.tsx index a9fc598af8..39ca4e9ff4 100644 --- a/packages/web/docs/src/app/gateway/page.tsx +++ b/packages/web/docs/src/app/gateway/page.tsx @@ -10,6 +10,7 @@ import { import { LandingPageContainer } from '../../components/landing-page-container'; import { metadata as rootMetadata } from '../layout'; import { GatewayFeatureTabs } from './gateway-feature-tabs'; +import { OrchestrateYourWay } from './orchestrate-your-way'; export const metadata: Metadata = { title: 'Hive Gateway', @@ -49,8 +50,8 @@ export default function HiveGatewayPage() { - - {/* orchestrate your way */} + + {/* Federation-Compatible Gateway Benchmarks */} {/* Let's get advanced */} {/* Cloud-Native Nature */} From b4e79cd82efd2ef3b60d8ae8ae6748a6fd5306c6 Mon Sep 17 00:00:00 2001 From: Piotr Monwid-Olechnowicz Date: Thu, 6 Feb 2025 13:36:20 +0100 Subject: [PATCH 16/22] Link to /gateway page from Hero --- packages/web/docs/src/app/page.tsx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/web/docs/src/app/page.tsx b/packages/web/docs/src/app/page.tsx index a2c23d8469..64cacd5b2e 100644 --- a/packages/web/docs/src/app/page.tsx +++ b/packages/web/docs/src/app/page.tsx @@ -49,7 +49,15 @@ export default function IndexPage(): ReactElement { Open-Source GraphQL Federation Platform

    - Fully open-source schema registry, analytics, metrics and gateway for{' '} + Fully open-source schema registry, analytics, metrics and{' '} + + gateway + {' '} + for{' '} Date: Thu, 6 Feb 2025 13:37:38 +0100 Subject: [PATCH 17/22] Link to /gateway from Ecosystem Management section --- .../docs/src/components/ecosystem-management/index.tsx | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/packages/web/docs/src/components/ecosystem-management/index.tsx b/packages/web/docs/src/components/ecosystem-management/index.tsx index a5c019d274..6e9f37bce3 100644 --- a/packages/web/docs/src/components/ecosystem-management/index.tsx +++ b/packages/web/docs/src/components/ecosystem-management/index.tsx @@ -45,10 +45,7 @@ export function EcosystemManagementSection({ className }: { className?: string } <>

    Powerful and flexible{' '} - + GraphQL Gateway (Router)
    @@ -64,10 +61,7 @@ export function EcosystemManagementSection({ className }: { className?: string } GraphQL federation ,{' '} - + Hive Gateway ,{' '} From 9a12f6be4cadcae57cc9f9ab6439ec9258712526 Mon Sep 17 00:00:00 2001 From: Piotr Monwid-Olechnowicz Date: Thu, 6 Feb 2025 13:40:56 +0100 Subject: [PATCH 18/22] Fix HiveGateway icon in Ecosystem Illustration --- .../components/ecosystem-management/ecosystem-illustration.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web/docs/src/components/ecosystem-management/ecosystem-illustration.tsx b/packages/web/docs/src/components/ecosystem-management/ecosystem-illustration.tsx index 781d8d76a8..4442870b16 100644 --- a/packages/web/docs/src/components/ecosystem-management/ecosystem-illustration.tsx +++ b/packages/web/docs/src/components/ecosystem-management/ecosystem-illustration.tsx @@ -118,7 +118,7 @@ export function EcosystemIllustration(props: { className?: string }) { highlightedEdge={highlightedEdge} onHighlight={onHighlightNode} > - + Date: Thu, 6 Feb 2025 14:14:39 +0100 Subject: [PATCH 19/22] Hive /gateway landing FAQ (#6474) --- .../src/app/gateway/gateway-landing-faq.mdx | 47 +++++++++++++++++++ packages/web/docs/src/app/gateway/page.tsx | 8 ++++ 2 files changed, 55 insertions(+) create mode 100644 packages/web/docs/src/app/gateway/gateway-landing-faq.mdx diff --git a/packages/web/docs/src/app/gateway/gateway-landing-faq.mdx b/packages/web/docs/src/app/gateway/gateway-landing-faq.mdx new file mode 100644 index 0000000000..8fb5acfdb1 --- /dev/null +++ b/packages/web/docs/src/app/gateway/gateway-landing-faq.mdx @@ -0,0 +1,47 @@ +## Frequently Asked Questions + +- What do I need to do migrating from another Federation gateway? + + Hive Gateway is a drop-in replacement for gateways alike! Start the gateway using your existing + `supergraph.graphql` and you're off. + [Read more.](https://the-guild.dev/graphql/hive/docs/gateway/supergraph-proxy-source#supergraph) + +- Can I run Hive Gateway on the edge? + + Yes! Hive Gateway is implemented with JavaScript in mind and can be run natively in serverless + runtimes like Cloudflare Workers, AWS Lambda, Google Cloud Platform and Azure Functions. + [Read more.](https://the-guild.dev/graphql/hive/docs/gateway/deployment/serverless) + +- Does Hive Gateway support subscriptions? + + Of course! Hive Gateway fully supports federated subscriptions and behaves just like Federation + GraphQL subscriptions in Apollo Router. + [Read more.](https://the-guild.dev/graphql/hive/docs/gateway/subscriptions) + +- How does Hive Gateway integrate with tracing tools? + + Hive Gateway has extensive monitoring and tracing capabilities allowing you deep insights into its + inner workings. Use OpenTelemetry, Prometheus, StatsD and Sentry with simple to use plugins. + [Read more.](https://the-guild.dev/graphql/hive/docs/gateway/monitoring-tracing) + +- Is customising the supergraph possible? + + Changing the supergraph and adjusting it to your needs, either to accomodate extra fields or allow + for gradual migration from non-federated systems, is easily achievable using + [GraphQL Mesh](https://the-guild.dev/graphql/mesh). It is a first-class citizen in Hive Gateway + and its outputs are directly usable. + +- Can I optimize Hive Gateway's performance for large-scale applications? + + The gateway is designed from ground up with performance in mind, capable of handling even the + largest of application loads. Using techniques like request caching and deduplication, query + batching, HTTP compression and more - you're able to tune Hive Gateway exactly to your needs. + [Read more.](https://the-guild.dev/graphql/hive/docs/gateway/other-features/performance) + +- Are all Hive Gateway features open source? + + Yes, Hive Gateway, and all of its features, are fully open-source and free to use. Including all + the enterprise-grade features offered by other vendors, without licensing restrictions; features + like: subscriptions, persisted queries, JWT authentication, query batching, rate limiting and high + security, observability and tracing, advanced caching, deployments everywhere, and much more. + [Read more.](https://the-guild.dev/graphql/hive/docs/gateway) diff --git a/packages/web/docs/src/app/gateway/page.tsx b/packages/web/docs/src/app/gateway/page.tsx index 39ca4e9ff4..d82d5a5dcc 100644 --- a/packages/web/docs/src/app/gateway/page.tsx +++ b/packages/web/docs/src/app/gateway/page.tsx @@ -3,6 +3,7 @@ import { CallToAction, DecorationIsolation, ExploreMainProductCards, + FrequentlyAskedQuestions, Hero, HeroLogo, HiveGatewayIcon, @@ -10,6 +11,7 @@ import { import { LandingPageContainer } from '../../components/landing-page-container'; import { metadata as rootMetadata } from '../layout'; import { GatewayFeatureTabs } from './gateway-feature-tabs'; +import GatewayLandingFAQ from './gateway-landing-faq.mdx'; import { OrchestrateYourWay } from './orchestrate-your-way'; export const metadata: Metadata = { @@ -56,6 +58,12 @@ export default function HiveGatewayPage() { {/* Let's get advanced */} {/* Cloud-Native Nature */} + + + {/* big get your API game right section */} ); From b0e259b93582087f208db80ff739ad53d36b339f Mon Sep 17 00:00:00 2001 From: Piotr Monwid-Olechnowicz Date: Thu, 6 Feb 2025 14:38:01 +0100 Subject: [PATCH 20/22] Fix typos --- packages/web/docs/src/app/gateway/gateway-landing-faq.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/web/docs/src/app/gateway/gateway-landing-faq.mdx b/packages/web/docs/src/app/gateway/gateway-landing-faq.mdx index 8fb5acfdb1..f7ab56f4f4 100644 --- a/packages/web/docs/src/app/gateway/gateway-landing-faq.mdx +++ b/packages/web/docs/src/app/gateway/gateway-landing-faq.mdx @@ -26,8 +26,8 @@ - Is customising the supergraph possible? - Changing the supergraph and adjusting it to your needs, either to accomodate extra fields or allow - for gradual migration from non-federated systems, is easily achievable using + Changing the supergraph and adjusting it to your needs, either to accommodate extra fields or + allow for gradual migration from non-federated systems, is easily achievable using [GraphQL Mesh](https://the-guild.dev/graphql/mesh). It is a first-class citizen in Hive Gateway and its outputs are directly usable. @@ -42,6 +42,6 @@ Yes, Hive Gateway, and all of its features, are fully open-source and free to use. Including all the enterprise-grade features offered by other vendors, without licensing restrictions; features - like: subscriptions, persisted queries, JWT authentication, query batching, rate limiting and high + like: subscriptions, persisted queries, JWT authentication, query batching, rate-limiting and high security, observability and tracing, advanced caching, deployments everywhere, and much more. [Read more.](https://the-guild.dev/graphql/hive/docs/gateway) From ba180059e71e7086f23867d0e8d4340c9130c3af Mon Sep 17 00:00:00 2001 From: Piotr Monwid-Olechnowicz Date: Thu, 6 Feb 2025 15:07:06 +0100 Subject: [PATCH 21/22] Fix spacing --- .../src/app/gateway/orchestrate-your-way.tsx | 99 +++++++++---------- packages/web/docs/src/app/gateway/page.tsx | 2 +- 2 files changed, 50 insertions(+), 51 deletions(-) diff --git a/packages/web/docs/src/app/gateway/orchestrate-your-way.tsx b/packages/web/docs/src/app/gateway/orchestrate-your-way.tsx index a9b7ddc889..2adc5b9a53 100644 --- a/packages/web/docs/src/app/gateway/orchestrate-your-way.tsx +++ b/packages/web/docs/src/app/gateway/orchestrate-your-way.tsx @@ -3,57 +3,56 @@ import { Anchor, cn, Heading, InfoCard } from '@theguild/components'; export function OrchestrateYourWay({ className, ...rest }: React.HTMLAttributes) { return ( -
    -
    - - Orchestrate your way! - -

    - The open nature of Hive Gateway ensures that it fits into your existing GraphQL - infrastructure. -

    -
    -
      - } - className="flex-1 bg-transparent px-0 sm:px-8 sm:py-0 md:px-8 md:py-0" - > - Ensures full compatibility and seamless operation within Apollo Federation setups, - simplifying integration with existing GraphQL services. - - } - className="flex-1 basis-full border-blue-300 bg-transparent px-0 max-sm:border-t sm:basis-0 sm:border-l sm:px-8 sm:py-0 md:py-0 md:pl-8 md:pr-0" - > - Extensive customization options, allowing enterprises to tailor the gateway to fit - specific architectural needs and workflows. - -
    -
    -
      - } text="Apollo Federation V1" /> - } text="Apollo Federation V2" /> - } - text="Schema Stitching" - /> - } - text="Monolith/Single Schema" - /> +
      +
      +
      + + Orchestrate your way! + +

      + The open nature of Hive Gateway ensures that it fits into your existing GraphQL + infrastructure. +

      +
      +
        + } + className="flex-1 bg-transparent !pl-0 max-lg:!pr-0 md:pt-0 lg:pb-0" + > + Ensures full compatibility and seamless operation within Apollo Federation setups, + simplifying integration with existing GraphQL services. + + } + className="flex-1 basis-full border-blue-300 bg-transparent !pr-0 max-lg:border-t max-lg:!pl-0 md:pb-0 lg:basis-0 lg:border-l lg:pt-0" + > + Extensive customization options, allowing enterprises to tailor the gateway to fit + specific architectural needs and workflows. +
      +
      +
        + } text="Apollo Federation V1" /> + } text="Apollo Federation V2" /> + } + text="Schema Stitching" + /> + } + text="Monolith/Single Schema" + /> +
      +
      ); diff --git a/packages/web/docs/src/app/gateway/page.tsx b/packages/web/docs/src/app/gateway/page.tsx index d82d5a5dcc..6b3bcac77a 100644 --- a/packages/web/docs/src/app/gateway/page.tsx +++ b/packages/web/docs/src/app/gateway/page.tsx @@ -53,7 +53,7 @@ export default function HiveGatewayPage() { - + {/* Federation-Compatible Gateway Benchmarks */} {/* Let's get advanced */} {/* Cloud-Native Nature */} From 31dc204ebd21ff1d185c6b0561065f04be5a6594 Mon Sep 17 00:00:00 2001 From: Piotr Monwid-Olechnowicz Date: Thu, 6 Feb 2025 15:12:23 +0100 Subject: [PATCH 22/22] Remove unused import --- packages/web/docs/src/app/gateway/orchestrate-your-way.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web/docs/src/app/gateway/orchestrate-your-way.tsx b/packages/web/docs/src/app/gateway/orchestrate-your-way.tsx index 2adc5b9a53..5a572a5ade 100644 --- a/packages/web/docs/src/app/gateway/orchestrate-your-way.tsx +++ b/packages/web/docs/src/app/gateway/orchestrate-your-way.tsx @@ -1,5 +1,5 @@ import { ReactNode } from 'react'; -import { Anchor, cn, Heading, InfoCard } from '@theguild/components'; +import { Anchor, Heading, InfoCard } from '@theguild/components'; export function OrchestrateYourWay({ className, ...rest }: React.HTMLAttributes) { return (