diff --git a/packages/ui/app/package.json b/packages/ui/app/package.json index 18e9c9627c..629b1aa857 100644 --- a/packages/ui/app/package.json +++ b/packages/ui/app/package.json @@ -114,7 +114,6 @@ "react-error-boundary": "^4.0.10", "react-feather": "^2.0.10", "react-instantsearch": "^7.7.0", - "react-intersection-observer": "^9.4.3", "react-medium-image-zoom": "^5.1.10", "react-virtuoso": "^4.7.7", "rehype-katex": "^7.0.0", diff --git a/packages/ui/app/src/api-page/ApiSectionMarkdownPage.tsx b/packages/ui/app/src/api-page/ApiSectionMarkdownPage.tsx index 2fd196027e..76080924d2 100644 --- a/packages/ui/app/src/api-page/ApiSectionMarkdownPage.tsx +++ b/packages/ui/app/src/api-page/ApiSectionMarkdownPage.tsx @@ -1,10 +1,32 @@ import clsx from "clsx"; -import { ReactElement, memo } from "react"; +import { ReactElement, memo, useRef } from "react"; import { useShouldLazyRender } from "../hooks/useShouldLazyRender"; import { MdxContent } from "../mdx/MdxContent"; import { ResolvedPageMetadata } from "../resolver/types"; import { useApiPageCenterElement } from "./useApiPageCenterElement"; +interface ApiSectionMarkdownPageProps { + page: ResolvedPageMetadata; + hideBottomSeparator: boolean; +} + +const ApiSectionMarkdownContent = ({ page, hideBottomSeparator }: ApiSectionMarkdownPageProps) => { + const ref = useRef(null); + useApiPageCenterElement(ref, page.slug); + + return ( +
+ +
+ ); +}; + export const ApiSectionMarkdownPage = memo( ({ page, @@ -13,28 +35,14 @@ export const ApiSectionMarkdownPage = memo( page: ResolvedPageMetadata; hideBottomSeparator: boolean; }): ReactElement | null => { - const slug = page.slug; - - const ref = useApiPageCenterElement({ slug }); - // TODO: this is a temporary fix to only SSG the content that is requested by the requested route. // - webcrawlers will accurately determine the canonical URL (right now every page "returns" the same full-length content) // - this allows us to render the static page before hydrating, preventing layout-shift caused by the navigation context. - if (useShouldLazyRender(slug)) { + if (useShouldLazyRender(page.slug)) { return null; } - return ( -
- -
- ); + return ; }, ); diff --git a/packages/ui/app/src/api-page/artifacts/ApiArtifacts.tsx b/packages/ui/app/src/api-page/artifacts/ApiArtifacts.tsx index 8ff5907f78..6f273b82f9 100644 --- a/packages/ui/app/src/api-page/artifacts/ApiArtifacts.tsx +++ b/packages/ui/app/src/api-page/artifacts/ApiArtifacts.tsx @@ -1,4 +1,5 @@ import { DocsV1Read, FernNavigation } from "@fern-api/fdr-sdk"; +import { useRef } from "react"; import { API_ARTIFACTS_TITLE } from "../../config"; import { ResolvedWithApiDefinition } from "../../resolver/types"; import { ApiPageMargins } from "../page-margins/ApiPageMargins"; @@ -21,7 +22,8 @@ export declare namespace ApiArtifacts { export const ApiArtifacts: React.FC = ({ apiDefinition, apiArtifacts }) => { const slug = FernNavigation.utils.slugjoin(apiDefinition?.slug ?? "", "client-libraries"); - const ref = useApiPageCenterElement({ slug }); + const ref = useRef(null); + useApiPageCenterElement(ref, slug); return ( diff --git a/packages/ui/app/src/api-page/endpoints/Endpoint.tsx b/packages/ui/app/src/api-page/endpoints/Endpoint.tsx index 4631a35ac8..289392bfb2 100644 --- a/packages/ui/app/src/api-page/endpoints/Endpoint.tsx +++ b/packages/ui/app/src/api-page/endpoints/Endpoint.tsx @@ -3,7 +3,6 @@ import { memo, useEffect } from "react"; import { FERN_STREAM_ATOM, useResolvedPath } from "../../atoms"; import { useShouldLazyRender } from "../../hooks/useShouldLazyRender"; import { ResolvedEndpointDefinition, ResolvedTypeDefinition } from "../../resolver/types"; -import { useApiPageCenterElement } from "../useApiPageCenterElement"; import { EndpointContent } from "./EndpointContent"; export declare namespace Endpoint { @@ -40,8 +39,6 @@ const UnmemoizedEndpoint: React.FC = ({ } }, [endpoint.slug, endpoint.stream, resolvedPath.slug, setStream]); - const ref = useApiPageCenterElement({ slug: endpointSlug }); - // TODO: this is a temporary fix to only SSG the content that is requested by the requested route. // - webcrawlers will accurately determine the canonical URL (right now every page "returns" the same full-length content) // - this allows us to render the static page before hydrating, preventing layout-shift caused by the navigation context. @@ -55,7 +52,6 @@ const UnmemoizedEndpoint: React.FC = ({ showErrors={showErrors} endpoint={endpoint} breadcrumbs={breadcrumbs} - ref={ref} hideBottomSeparator={isLastInApi} types={types} /> diff --git a/packages/ui/app/src/api-page/endpoints/EndpointContent.tsx b/packages/ui/app/src/api-page/endpoints/EndpointContent.tsx index f4857c0fc7..a4b0cb527d 100644 --- a/packages/ui/app/src/api-page/endpoints/EndpointContent.tsx +++ b/packages/ui/app/src/api-page/endpoints/EndpointContent.tsx @@ -1,10 +1,10 @@ import cn from "clsx"; +import { useInView } from "framer-motion"; import { atom, useAtom, useAtomValue } from "jotai"; import { selectAtom } from "jotai/utils"; import { isEqual } from "lodash-es"; import dynamic from "next/dynamic"; -import { forwardRef, memo, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from "react"; -import { useInView } from "react-intersection-observer"; +import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react"; import { useCallbackOne } from "use-memo-one"; import { ANCHOR_ATOM, @@ -28,6 +28,7 @@ import { import { ApiPageDescription } from "../ApiPageDescription"; import { JsonPropertyPath } from "../examples/JsonPropertyPath"; import { CodeExample, generateCodeExamples } from "../examples/code-example"; +import { useApiPageCenterElement } from "../useApiPageCenterElement"; import { EndpointAvailabilityTag } from "./EndpointAvailabilityTag"; import { EndpointContentLeft, convertNameToAnchorPart } from "./EndpointContentLeft"; import { EndpointStreamingEnabledToggle } from "./EndpointStreamingEnabledToggle"; @@ -78,22 +79,18 @@ function maybeGetErrorStatusCodeOrNameFromAnchor(anchor: string | undefined): nu const paddingAtom = atom((get) => (get(MOBILE_SIDEBAR_ENABLED_ATOM) ? 0 : 26)); -const UnmemoizedEndpointContent = forwardRef((props, ref) => { +export const EndpointContent = memo((props) => { const { api, showErrors, endpoint: endpointProp, breadcrumbs, hideBottomSeparator = false, types } = props; const [isStream, setIsStream] = useAtom(FERN_STREAM_ATOM); const endpoint = isStream && endpointProp.stream != null ? endpointProp.stream : endpointProp; - const containerRef = useRef(null); + const ref = useRef(null); + useApiPageCenterElement(ref, endpoint.slug); - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - useImperativeHandle(ref, () => containerRef.current!); - - const [isInViewport, setIsInViewport] = useState(() => store.get(CURRENT_NODE_ID_ATOM) === endpoint.nodeId); - const { ref: viewportRef } = useInView({ - onChange: setIsInViewport, - rootMargin: "100%", - }); - useImperativeHandle(viewportRef, () => containerRef.current ?? undefined); + const isInViewport = + useInView(ref, { + margin: "100%", + }) || store.get(CURRENT_NODE_ID_ATOM) === endpoint.nodeId; const [hoveredRequestPropertyPath, setHoveredRequestPropertyPath] = useState(); const [hoveredResponsePropertyPath, setHoveredResponsePropertyPath] = useState(); @@ -258,7 +255,7 @@ const UnmemoizedEndpointContent = forwardRef setSelectedError(undefined)} - ref={containerRef} + ref={ref} id={`/${endpoint.slug}`} >
)}
@@ -357,6 +354,4 @@ const UnmemoizedEndpointContent = forwardRef = ({ anchorIdParts, breadcrumbs, }) => { - const ref = useApiPageCenterElement({ slug: apiDefinition.slug, skip: true }); + const ref = useRef(null); + useApiPageCenterElement(ref, apiDefinition.slug, true); + return ( <>
diff --git a/packages/ui/app/src/api-page/useApiPageCenterElement.ts b/packages/ui/app/src/api-page/useApiPageCenterElement.ts index d23cc1d2c6..1d23cb4271 100644 --- a/packages/ui/app/src/api-page/useApiPageCenterElement.ts +++ b/packages/ui/app/src/api-page/useApiPageCenterElement.ts @@ -1,24 +1,16 @@ import { FernNavigation } from "@fern-api/fdr-sdk"; import { useInView } from "framer-motion"; import { useSetAtom } from "jotai"; -import { RefObject, useEffect, useRef } from "react"; +import { RefObject, useEffect } from "react"; import { SLUG_ATOM } from "../atoms"; -export declare namespace useApiPageCenterElement { - export interface Args { - slug: FernNavigation.Slug; - skip?: boolean; - } -} - -export function useApiPageCenterElement({ - slug, - skip = false, -}: useApiPageCenterElement.Args): RefObject { +export function useApiPageCenterElement( + ref: RefObject, + slug: FernNavigation.Slug, + skip: boolean = false, +): void { const setSelectedSlug = useSetAtom(SLUG_ATOM); - const ref = useRef(null); - const isInView = useInView(ref, { // https://stackoverflow.com/questions/54807535/intersection-observer-api-observe-the-center-of-the-viewport margin: "-50% 0px", @@ -29,6 +21,4 @@ export function useApiPageCenterElement({ setSelectedSlug(slug); } }, [isInView, setSelectedSlug, skip, slug]); - - return ref; } diff --git a/packages/ui/app/src/api-page/web-socket/WebSocket.tsx b/packages/ui/app/src/api-page/web-socket/WebSocket.tsx index d8715b946b..e0adc9006d 100644 --- a/packages/ui/app/src/api-page/web-socket/WebSocket.tsx +++ b/packages/ui/app/src/api-page/web-socket/WebSocket.tsx @@ -2,7 +2,7 @@ import { APIV1Read, FernNavigation } from "@fern-api/fdr-sdk"; import { CopyToClipboardButton, FernScrollArea } from "@fern-ui/components"; import { ArrowDownIcon, ArrowUpIcon } from "@radix-ui/react-icons"; import cn from "clsx"; -import { Children, FC, HTMLAttributes, ReactNode, useMemo } from "react"; +import { Children, FC, HTMLAttributes, ReactNode, useMemo, useRef } from "react"; import { Wifi } from "react-feather"; import { PlaygroundButton } from "../../api-playground/PlaygroundButton"; import { useNavigationNodes } from "../../atoms"; @@ -55,7 +55,8 @@ const WebhookContent: FC = ({ websocket, isLastInApi, types }) const route = `/${websocket.slug}`; - const ref = useApiPageCenterElement({ slug: websocket.slug }); + const ref = useRef(null); + useApiPageCenterElement(ref, websocket.slug); const publishMessages = useMemo( () => websocket.messages.filter((message) => message.origin === APIV1Read.WebSocketMessageOrigin.Client), diff --git a/packages/ui/app/src/api-page/webhooks/Webhook.tsx b/packages/ui/app/src/api-page/webhooks/Webhook.tsx index 375a664b26..e225cae121 100644 --- a/packages/ui/app/src/api-page/webhooks/Webhook.tsx +++ b/packages/ui/app/src/api-page/webhooks/Webhook.tsx @@ -1,6 +1,5 @@ import { useShouldLazyRender } from "../../hooks/useShouldLazyRender"; import { ResolvedTypeDefinition, ResolvedWebhookDefinition } from "../../resolver/types"; -import { useApiPageCenterElement } from "../useApiPageCenterElement"; import { WebhookContent } from "./WebhookContent"; import { WebhookContextProvider } from "./webhook-context/WebhookContextProvider"; @@ -14,7 +13,6 @@ export declare namespace Webhook { } export const Webhook: React.FC = ({ webhook, breadcrumbs, isLastInApi, types }) => { - const ref = useApiPageCenterElement({ slug: webhook.slug }); const route = `/${webhook.slug}`; // TODO: merge this with the Endpoint component @@ -27,7 +25,6 @@ export const Webhook: React.FC = ({ webhook, breadcrumbs, isLastI ((props, ref) => { +export const WebhookContent = memo((props) => { const { webhook, breadcrumbs, hideBottomSeparator = false, route, types } = props; + + const ref = useRef(null); + useApiPageCenterElement(ref, webhook.slug); + const { setHoveredPayloadPropertyPath } = useWebhookContext(); const onHoverPayloadProperty = useCallback( (jsonPropertyPath: JsonPropertyPath, { isHovering }: { isHovering: boolean }) => { @@ -131,6 +136,4 @@ const UnmemoizedWebhookContent = forwardRef= 16.8.0 < 19' react-dom: '>= 16.8.0 < 19' - react-intersection-observer@9.10.2: - resolution: {integrity: sha512-j2hGADK2hCbAlfaq6L3tVLb4iqngoN7B1fT16MwJ4J16YW/vWLcmAIinLsw0lgpZeMi4UDUWtHC9QDde0/P1yQ==} - peerDependencies: - react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - react-dom: - optional: true - react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} @@ -17203,7 +17191,7 @@ snapshots: '@babel/traverse': 7.24.5 '@babel/types': 7.24.5 convert-source-map: 2.0.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -17258,7 +17246,7 @@ snapshots: '@babel/core': 7.24.5 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.24.5 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: @@ -18014,7 +18002,7 @@ snapshots: '@babel/helper-split-export-declaration': 7.24.5 '@babel/parser': 7.24.5 '@babel/types': 7.24.5 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -18134,7 +18122,7 @@ snapshots: '@esbuild-plugins/node-resolve@0.2.2(esbuild@0.20.2)': dependencies: '@types/resolve': 1.20.6 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) esbuild: 0.20.2 escape-string-regexp: 4.0.0 resolve: 1.22.8 @@ -18220,7 +18208,7 @@ snapshots: '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) espree: 9.6.1 globals: 13.24.0 ignore: 5.3.1 @@ -18440,7 +18428,7 @@ snapshots: '@humanwhocodes/config-array@0.11.14': dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -18869,6 +18857,12 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 + '@kwsites/file-exists@1.1.1': + dependencies: + debug: 4.3.4(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + '@kwsites/file-exists@1.1.1(supports-color@8.1.1)': dependencies: debug: 4.3.4(supports-color@8.1.1) @@ -20453,7 +20447,7 @@ snapshots: '@sentry/cli@1.77.3': dependencies: - https-proxy-agent: 5.0.1(supports-color@8.1.1) + https-proxy-agent: 5.0.1 mkdirp: 0.5.6 node-fetch: 2.7.0 progress: 2.0.3 @@ -20465,7 +20459,7 @@ snapshots: '@sentry/cli@2.31.2': dependencies: - https-proxy-agent: 5.0.1(supports-color@8.1.1) + https-proxy-agent: 5.0.1 node-fetch: 2.7.0 progress: 2.0.3 proxy-from-env: 1.1.0 @@ -22252,7 +22246,7 @@ snapshots: '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.4.3)(webpack@5.91.0(@swc/core@1.5.7)(esbuild@0.20.2))': dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) endent: 2.1.0 find-cache-dir: 3.3.2 flat-cache: 3.2.0 @@ -23117,7 +23111,7 @@ snapshots: '@typescript-eslint/type-utils': 7.3.1(eslint@8.57.0)(typescript@5.4.3) '@typescript-eslint/utils': 7.3.1(eslint@8.57.0)(typescript@5.4.3) '@typescript-eslint/visitor-keys': 7.3.1 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) eslint: 8.57.0 graphemer: 1.4.0 ignore: 5.3.1 @@ -23135,7 +23129,7 @@ snapshots: '@typescript-eslint/types': 7.17.0 '@typescript-eslint/typescript-estree': 7.17.0(typescript@5.4.3) '@typescript-eslint/visitor-keys': 7.17.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) eslint: 8.57.0 optionalDependencies: typescript: 5.4.3 @@ -23148,7 +23142,7 @@ snapshots: '@typescript-eslint/types': 7.2.0 '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.4.3) '@typescript-eslint/visitor-keys': 7.2.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) eslint: 8.57.0 optionalDependencies: typescript: 5.4.3 @@ -23161,7 +23155,7 @@ snapshots: '@typescript-eslint/types': 7.3.1 '@typescript-eslint/typescript-estree': 7.3.1(typescript@5.4.3) '@typescript-eslint/visitor-keys': 7.3.1 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) eslint: 8.57.0 optionalDependencies: typescript: 5.4.3 @@ -23202,7 +23196,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 7.17.0(typescript@5.4.3) '@typescript-eslint/utils': 7.17.0(eslint@8.57.0)(typescript@5.4.3) - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) eslint: 8.57.0 ts-api-utils: 1.3.0(typescript@5.4.3) optionalDependencies: @@ -23214,7 +23208,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 7.3.1(typescript@5.4.3) '@typescript-eslint/utils': 7.3.1(eslint@8.57.0)(typescript@5.4.3) - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) eslint: 8.57.0 ts-api-utils: 1.3.0(typescript@5.4.3) optionalDependencies: @@ -23238,7 +23232,7 @@ snapshots: dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) globby: 11.1.0 is-glob: 4.0.3 semver: 7.6.2 @@ -23252,7 +23246,7 @@ snapshots: dependencies: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 @@ -23267,7 +23261,7 @@ snapshots: dependencies: '@typescript-eslint/types': 7.17.0 '@typescript-eslint/visitor-keys': 7.17.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.4 @@ -23282,7 +23276,7 @@ snapshots: dependencies: '@typescript-eslint/types': 7.2.0 '@typescript-eslint/visitor-keys': 7.2.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 @@ -23297,7 +23291,7 @@ snapshots: dependencies: '@typescript-eslint/types': 7.3.1 '@typescript-eslint/visitor-keys': 7.3.1 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 @@ -23312,7 +23306,7 @@ snapshots: dependencies: '@typescript-eslint/types': 7.8.0 '@typescript-eslint/visitor-keys': 7.8.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.4 @@ -24647,6 +24641,12 @@ snapshots: adm-zip@0.5.12: {} + agent-base@6.0.2: + dependencies: + debug: 4.3.4(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + agent-base@6.0.2(supports-color@8.1.1): dependencies: debug: 4.3.4(supports-color@8.1.1) @@ -24655,7 +24655,7 @@ snapshots: agent-base@7.1.1: dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -26382,7 +26382,7 @@ snapshots: callsite: 1.0.0 camelcase: 6.3.0 cosmiconfig: 7.1.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) deps-regex: 0.2.0 findup-sync: 5.0.0 ignore: 5.3.1 @@ -26438,7 +26438,7 @@ snapshots: detect-port@1.6.1: dependencies: address: 1.2.2 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -26795,7 +26795,7 @@ snapshots: esbuild-register@3.5.0(esbuild@0.20.2): dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) esbuild: 0.20.2 transitivePeerDependencies: - supports-color @@ -26889,7 +26889,7 @@ snapshots: eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0): dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) enhanced-resolve: 5.16.1 eslint: 8.57.0 eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0) @@ -27092,7 +27092,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -28465,7 +28465,7 @@ snapshots: http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.1 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -28476,6 +28476,13 @@ snapshots: https-browserify@1.0.0: {} + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.3.4(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + https-proxy-agent@5.0.1(supports-color@8.1.1): dependencies: agent-base: 6.0.2(supports-color@8.1.1) @@ -28486,7 +28493,7 @@ snapshots: https-proxy-agent@7.0.4: dependencies: agent-base: 7.1.1 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -28889,7 +28896,7 @@ snapshots: istanbul-lib-source-maps@4.0.1: dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: @@ -29625,7 +29632,7 @@ snapshots: dependencies: chalk: 5.3.0 commander: 11.0.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) execa: 7.2.0 lilconfig: 2.1.0 listr2: 6.6.1 @@ -30538,7 +30545,7 @@ snapshots: micromark@3.2.0: dependencies: '@types/debug': 4.1.12 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) decode-named-character-reference: 1.0.2 micromark-core-commonmark: 1.1.0 micromark-factory-space: 1.1.0 @@ -30560,7 +30567,7 @@ snapshots: micromark@4.0.0: dependencies: '@types/debug': 4.1.12 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) decode-named-character-reference: 1.0.2 devlop: 1.1.0 micromark-core-commonmark: 2.0.1 @@ -32023,12 +32030,6 @@ snapshots: react-dom: 18.3.1(react@18.3.1) react-instantsearch-core: 7.8.0(algoliasearch@4.24.0)(react@18.3.1) - react-intersection-observer@9.10.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - react: 18.3.1 - optionalDependencies: - react-dom: 18.3.1(react@18.3.1) - react-is@16.13.1: {} react-is@17.0.2: {} @@ -33122,6 +33123,14 @@ snapshots: once: 1.4.0 simple-concat: 1.0.1 + simple-git@3.24.0: + dependencies: + '@kwsites/file-exists': 1.1.1 + '@kwsites/promise-deferred': 1.1.1 + debug: 4.3.4(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + simple-git@3.24.0(supports-color@8.1.1): dependencies: '@kwsites/file-exists': 1.1.1(supports-color@8.1.1) @@ -33569,7 +33578,7 @@ snapshots: cosmiconfig: 9.0.0(typescript@5.4.3) css-functions-list: 3.2.2 css-tree: 2.3.1 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) fast-glob: 3.3.2 fastest-levenshtein: 1.0.16 file-entry-cache: 8.0.0 @@ -33607,7 +33616,7 @@ snapshots: stylus@0.62.0: dependencies: '@adobe/css-tools': 4.3.3 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) glob: 7.2.3 sax: 1.3.0 source-map: 0.7.4 @@ -34182,7 +34191,7 @@ snapshots: bundle-require: 4.1.0(esbuild@0.20.2) cac: 6.7.14 chokidar: 3.6.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) esbuild: 0.20.2 execa: 5.1.1 globby: 11.1.0 @@ -34718,7 +34727,7 @@ snapshots: vite-node@1.6.0(@types/node@18.19.33)(less@4.2.0)(sass@1.77.0)(stylus@0.62.0)(terser@5.31.0): dependencies: cac: 6.7.14 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) pathe: 1.1.2 picocolors: 1.0.0 vite: 5.2.11(@types/node@18.19.33)(less@4.2.0)(sass@1.77.0)(stylus@0.62.0)(terser@5.31.0) @@ -34735,7 +34744,7 @@ snapshots: vite-node@1.6.0(@types/node@20.12.12)(less@4.2.0)(sass@1.77.0)(stylus@0.62.0)(terser@5.31.0): dependencies: cac: 6.7.14 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) pathe: 1.1.2 picocolors: 1.0.0 vite: 5.2.11(@types/node@20.12.12)(less@4.2.0)(sass@1.77.0)(stylus@0.62.0)(terser@5.31.0) @@ -34797,7 +34806,7 @@ snapshots: '@vitest/utils': 1.6.0 acorn-walk: 8.3.2 chai: 4.4.1 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) execa: 8.0.1 local-pkg: 0.5.0 magic-string: 0.30.10 @@ -34831,7 +34840,7 @@ snapshots: '@vitest/utils': 1.6.0 acorn-walk: 8.3.2 chai: 4.4.1 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) execa: 8.0.1 local-pkg: 0.5.0 magic-string: 0.30.10