mirror of
https://github.com/CopilotKit/CopilotKit.git
synced 2026-09-14 16:26:20 +08:00
feat(docs): persistent session id and clerk in docs (#518)
This commit is contained in:
@@ -2,3 +2,4 @@ export * from "./frame";
|
||||
export * from "./sidenav/sidenav-title-with-icon";
|
||||
export * from "./reference/property-reference";
|
||||
export * from "./copilotkit-css";
|
||||
export * from "./link-to-copilot-cloud";
|
||||
@@ -0,0 +1,57 @@
|
||||
import { useEffect, useState } from "react";
|
||||
import Link from "next/link";
|
||||
import { useAuth } from "@clerk/nextjs";
|
||||
import posthog from "posthog-js";
|
||||
|
||||
export function LinkToCopilotCloud({
|
||||
className,
|
||||
subPath,
|
||||
asLink = true,
|
||||
children
|
||||
}: {
|
||||
className?: string;
|
||||
subPath?: string;
|
||||
asLink?: boolean;
|
||||
children?: React.ReactNode;
|
||||
}) {
|
||||
const [isClient, setIsClient] = useState(false);
|
||||
const { userId } = useAuth();
|
||||
|
||||
useEffect(() => {
|
||||
setIsClient(true);
|
||||
}, []);
|
||||
|
||||
if (!isClient) {
|
||||
return null;
|
||||
}
|
||||
const url = new URL(`https://cloud.copilotkit.ai`);
|
||||
url.searchParams.set("ref", "docs");
|
||||
|
||||
const sessionId = posthog.get_session_id();
|
||||
|
||||
if (sessionId) {
|
||||
url.searchParams.set("session_id", sessionId);
|
||||
}
|
||||
|
||||
if (subPath) {
|
||||
url.pathname += subPath;
|
||||
}
|
||||
|
||||
let cn = `${className}`;
|
||||
|
||||
if (asLink) {
|
||||
cn = "_text-primary-600 decoration-from-font underline [text-underline-position:from-font]";
|
||||
}
|
||||
|
||||
return (
|
||||
<Link
|
||||
href={url.toString()}
|
||||
target="_blank"
|
||||
className={`${cn}`}
|
||||
>
|
||||
{
|
||||
children ? children : userId ? "Go to Copilot Cloud" : "Sign up to Copilot Cloud"
|
||||
}
|
||||
</Link>
|
||||
);
|
||||
}
|
||||
@@ -48,6 +48,14 @@ button:has(.nested-title) > svg {
|
||||
@apply hidden;
|
||||
}
|
||||
|
||||
button:has(.disable-menu) > svg {
|
||||
@apply hidden;
|
||||
}
|
||||
|
||||
[id^="headlessui-menu-items-"] {
|
||||
@apply hidden !important;
|
||||
}
|
||||
|
||||
.nested-title {
|
||||
@apply text-gray-900 font-semibold [&:not(:first-child)]:mt-5 mb-2 pb-1.5;
|
||||
}
|
||||
|
||||
@@ -1,16 +1,26 @@
|
||||
// Check that PostHog is client-side (used to handle Next.js SSR)
|
||||
import { useRouter } from "next/router";
|
||||
import { PostHogProvider as PostHogProviderBase } from "posthog-js/react";
|
||||
import posthog from "posthog-js";
|
||||
import { useRouter } from "next/router";
|
||||
import { useEffect } from "react";
|
||||
import { useAuth } from "@clerk/nextjs";
|
||||
import { useSearchParams } from "next/navigation";
|
||||
|
||||
const POSTHOG_KEY = process.env.POSTHOG_KEY;
|
||||
const POSTHOG_HOST = process.env.POSTHOG_HOST;
|
||||
|
||||
if (typeof window !== "undefined") {
|
||||
// Get search param
|
||||
const searchParams = new URLSearchParams(window.location.search);
|
||||
const sessionId = searchParams.get("session_id");
|
||||
|
||||
if (POSTHOG_KEY && POSTHOG_HOST) {
|
||||
|
||||
posthog.init(POSTHOG_KEY, {
|
||||
api_host: POSTHOG_HOST,
|
||||
person_profiles: "identified_only",
|
||||
bootstrap: {
|
||||
sessionID: sessionId ?? undefined,
|
||||
},
|
||||
// Enable debug mode in development
|
||||
loaded: (posthog) => {
|
||||
if (process.env.NODE_ENV === "development") posthog.debug();
|
||||
@@ -19,8 +29,18 @@ if (typeof window !== "undefined") {
|
||||
}
|
||||
}
|
||||
|
||||
export function usePostHog() {
|
||||
export function PostHogProvider({ children }: { children: React.ReactNode }) {
|
||||
const router = useRouter();
|
||||
const { userId } = useAuth();
|
||||
const searchParams = useSearchParams();
|
||||
|
||||
const sessionId = searchParams.get("session_id");
|
||||
|
||||
posthog?.set_config({
|
||||
bootstrap: {
|
||||
sessionID: sessionId ?? undefined,
|
||||
},
|
||||
});
|
||||
|
||||
useEffect(() => {
|
||||
if (!POSTHOG_KEY || !POSTHOG_HOST) return;
|
||||
@@ -36,5 +56,11 @@ export function usePostHog() {
|
||||
};
|
||||
}, []);
|
||||
|
||||
return { posthog };
|
||||
}
|
||||
useEffect(() => {
|
||||
if (userId) {
|
||||
posthog?.identify(userId);
|
||||
}
|
||||
}, [userId]);
|
||||
|
||||
return <PostHogProviderBase client={posthog}>{children}</PostHogProviderBase>;
|
||||
}
|
||||
@@ -12,6 +12,7 @@ export default withNextra({
|
||||
POSTHOG_KEY: process.env.POSTHOG_KEY,
|
||||
POSTHOG_HOST: process.env.POSTHOG_HOST,
|
||||
SCARF_PIXEL_ID: process.env.SCARF_PIXEL_ID,
|
||||
CLERK_PUBLISHABLE_KEY: process.env.CLERK_PUBLISHABLE_KEY || "pk_live_Y2xlcmsuY29waWxvdGtpdC5haSQ",
|
||||
},
|
||||
async redirects() {
|
||||
return [
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@clerk/nextjs": "^5.2.8",
|
||||
"@stackblitz/sdk": "^1.11.0",
|
||||
"@vercel/og": "^0.6.2",
|
||||
"next": "^14.2.5",
|
||||
|
||||
+10
-9
@@ -2,9 +2,9 @@ import "../globals.css";
|
||||
import { AppProps } from "next/app";
|
||||
import { IBM_Plex_Sans } from "next/font/google";
|
||||
import { useRB2B } from "../lib/hooks/useRB2B";
|
||||
import { PostHogProvider } from "posthog-js/react";
|
||||
import { usePostHog } from "../lib/hooks/usePostHog";
|
||||
import { ScarfPixel } from "../lib/ScarfPixel";
|
||||
import { ClerkProvider } from "@clerk/nextjs";
|
||||
import { PostHogProvider } from "../lib/providers/PostHogProvider";
|
||||
|
||||
const plex = IBM_Plex_Sans({
|
||||
subsets: ["latin"],
|
||||
@@ -13,16 +13,17 @@ const plex = IBM_Plex_Sans({
|
||||
|
||||
export default function App({ Component, pageProps }: AppProps) {
|
||||
useRB2B();
|
||||
const { posthog } = usePostHog();
|
||||
|
||||
return (
|
||||
<>
|
||||
<PostHogProvider client={posthog}>
|
||||
<main className={plex.className}>
|
||||
<Component {...pageProps} />
|
||||
</main>
|
||||
</PostHogProvider>
|
||||
<ScarfPixel />
|
||||
<ClerkProvider publishableKey={process.env.CLERK_PUBLISHABLE_KEY}>
|
||||
<PostHogProvider>
|
||||
<main className={plex.className}>
|
||||
<Component {...pageProps} />
|
||||
</main>
|
||||
</PostHogProvider>
|
||||
<ScarfPixel />
|
||||
</ClerkProvider>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
+12
-4
@@ -1,4 +1,12 @@
|
||||
import { LinkToCopilotCloud } from "../components/link-to-copilot-cloud";
|
||||
|
||||
export default {
|
||||
"copilot-cloud": {
|
||||
title: (
|
||||
<LinkToCopilotCloud asLink={false} className="disable-menu bg-indigo-500 py-1 px-4 text-white font-medium rounded-full" />
|
||||
),
|
||||
type: "menu",
|
||||
},
|
||||
"___getting-started": {
|
||||
type: "separator",
|
||||
title: "Getting Started",
|
||||
@@ -15,15 +23,15 @@ export default {
|
||||
"tutorial-textarea": {
|
||||
title: "Tutorial: Textarea Autocomplete",
|
||||
},
|
||||
"concepts": {
|
||||
concepts: {
|
||||
title: <span className="nested-title">Concepts</span>,
|
||||
type: "doc",
|
||||
},
|
||||
"reference": {
|
||||
reference: {
|
||||
title: <span className="nested-title">Reference</span>,
|
||||
type: "doc",
|
||||
},
|
||||
"___contributing": {
|
||||
___contributing: {
|
||||
type: "separator",
|
||||
title: "Contributing",
|
||||
},
|
||||
@@ -33,7 +41,7 @@ export default {
|
||||
"documentation-contributions": {
|
||||
title: "Documentation Contributions",
|
||||
},
|
||||
"___extras": {
|
||||
___extras: {
|
||||
type: "separator",
|
||||
title: "Extras",
|
||||
},
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { Callout } from "nextra/components";
|
||||
import { Tabs } from "nextra/components";
|
||||
import { LinkToCopilotCloud } from "../components";
|
||||
|
||||
# Quickstart: Chatbot
|
||||
|
||||
@@ -17,7 +18,7 @@ First, you must wrap all components that interact with your copilot with the [`<
|
||||
Additionally, let's use the [`<CopilotSidebar />`](/reference/components/CopilotSidebar) UI component to display the copilot chat sidebar. Some other options you can choose from are [`<CopilotPopup />`](/reference/components/CopilotPopup) and [`<CopilotChat />`](/reference/components/CopilotChat).
|
||||
|
||||
<Callout type="info">
|
||||
Copilot Cloud is the easiest way to get started with CopilotKit. [Sign up for free and get your public API key](https://cloud.copilotkit.ai), then replace `<your-public-api-key>` with your actual API key.
|
||||
Copilot Cloud is the easiest way to get started with CopilotKit. <LinkToCopilotCloud>Sign up for free and get your public API key</LinkToCopilotCloud>, then replace `<your-public-api-key>` with your actual API key.
|
||||
|
||||
If you prefer to self-host, you will need to [set up your Copilot Runtime endpoint](/concepts/copilot-runtime).
|
||||
</Callout>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { Tabs } from "nextra/components";
|
||||
import { PropertyReference } from "../../../components/reference/property-reference";
|
||||
import { LinkToCopilotCloud } from "../../../components";
|
||||
|
||||
# `<CopilotKit />`
|
||||
|
||||
@@ -10,7 +11,7 @@ This component will typically wrap your entire application (or a sub-tree of you
|
||||
<Tabs items={["Copilot Cloud (Recommended)", "Self-hosted Runtime"]}>
|
||||
<Tabs.Tab>
|
||||
|
||||
You can get your Copilot Cloud API key for free by [signing up here](https://cloud.copilotkit.ai).
|
||||
You can get your Copilot Cloud API key for free by <LinkToCopilotCloud>signing up here</LinkToCopilotCloud>.
|
||||
|
||||
```tsx
|
||||
import { CopilotKit } from "@copilotkit/react-core";
|
||||
@@ -41,7 +42,7 @@ This component will typically wrap your entire application (or a sub-tree of you
|
||||
</PropertyReference>
|
||||
|
||||
<PropertyReference name="publicApiKey" type="string">
|
||||
Your Copilot Cloud API key. Don't have it yet? [Click here to sign up for free](https://cloud.copilotkit.ai).
|
||||
Your Copilot Cloud API key. Don't have it yet? <LinkToCopilotCloud>Click here to sign up for free</LinkToCopilotCloud>.
|
||||
</PropertyReference>
|
||||
|
||||
<PropertyReference name="cloudRestrictToTopic" cloudOnly type="{ validTopics?: string[]; invalidTopics?: string[]; }" >
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { Callout } from "nextra/components"
|
||||
import { LinkToCopilotCloud } from "../../components";
|
||||
|
||||
# Step 2: Setup CopilotKit
|
||||
|
||||
@@ -19,7 +20,7 @@ npm install @copilotkit/react-core @copilotkit/react-ui
|
||||
|
||||
<Callout type="info">
|
||||
In this example, we use Copilot Cloud, which is the easiest way to get started with CopilotKit.
|
||||
[Click here to sign up for free and get your API key](https://cloud.copilotkit.ai/).
|
||||
<LinkToCopilotCloud>Click here to sign up for free and get your API key</LinkToCopilotCloud>.
|
||||
|
||||
If you prefer to self-host the Copilot Runtime, refer to [this guide](/concepts/copilot-runtime).
|
||||
</Callout>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { Callout } from "nextra/components"
|
||||
import { LinkToCopilotCloud } from "../../components";
|
||||
|
||||
# Step 2: Setup CopilotKit
|
||||
|
||||
@@ -20,7 +21,7 @@ npm install @copilotkit/react-core @copilotkit/react-ui @copilotkit/react-textar
|
||||
|
||||
<Callout type="info">
|
||||
In this example, we use Copilot Cloud, which is the easiest way to get started with CopilotKit.
|
||||
[Click here to sign up for free and get your API key](https://cloud.copilotkit.ai/).
|
||||
<LinkToCopilotCloud>Click here to sign up for free and get your API key</LinkToCopilotCloud>.
|
||||
|
||||
If you prefer to self-host the Copilot Runtime, refer to [this guide](/concepts/copilot-runtime).
|
||||
</Callout>
|
||||
|
||||
Generated
+206
@@ -8,6 +8,9 @@ importers:
|
||||
|
||||
.:
|
||||
dependencies:
|
||||
'@clerk/nextjs':
|
||||
specifier: ^5.2.8
|
||||
version: 5.2.8(next@14.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
'@stackblitz/sdk':
|
||||
specifier: ^1.11.0
|
||||
version: 1.11.0
|
||||
@@ -67,6 +70,41 @@ packages:
|
||||
'@braintree/sanitize-url@6.0.4':
|
||||
resolution: {integrity: sha512-s3jaWicZd0pkP0jf5ysyHUI/RE7MHos6qlToFcGWXVp+ykHOy77OUMrfbgJ9it2C5bow7OIQwYYaHjk9XlBQ2A==}
|
||||
|
||||
'@clerk/backend@1.4.3':
|
||||
resolution: {integrity: sha512-wj4qsZO6iNiY9vF7vLH5v1f3oLh1yCLgFa0PedLzJAIJgepZl23C1/ubrRm7vyewjQEMHZwod4816mZlHDfoqA==}
|
||||
engines: {node: '>=18.17.0'}
|
||||
|
||||
'@clerk/clerk-react@5.2.10':
|
||||
resolution: {integrity: sha512-qJZ79aiB80cUuqccKqhk6QImGIji4y1bjK1xbGnqiAthtMegxFShLJwEsrF7nl0Rw5yM9cphiwETEqBWfIPL4Q==}
|
||||
engines: {node: '>=18.17.0'}
|
||||
peerDependencies:
|
||||
react: '>=18 || >=19.0.0-beta'
|
||||
react-dom: '>=18 || >=19.0.0-beta'
|
||||
|
||||
'@clerk/nextjs@5.2.8':
|
||||
resolution: {integrity: sha512-dy4K1e2ygWBsDjnLmQKtoeRpoToCNFRXMu6GN4VesE9/mOYNXKiyJE2/DY6lGV3oR2f8Qr9YjcXzphRnf1d/OQ==}
|
||||
engines: {node: '>=18.17.0'}
|
||||
peerDependencies:
|
||||
next: ^13.5.4 || ^14.0.3 || >=15.0.0-rc
|
||||
react: '>=18 || >=19.0.0-beta'
|
||||
react-dom: '>=18 || >=19.0.0-beta'
|
||||
|
||||
'@clerk/shared@2.4.1':
|
||||
resolution: {integrity: sha512-sApuz6hDRIai4Jwo/fBcihX74+DdrKLt08LkEVrooh/7zc0ipDOSGlqmAy15yNuKPaxpemp/9nW4T8gq6uIr9Q==}
|
||||
engines: {node: '>=18.17.0'}
|
||||
peerDependencies:
|
||||
react: '>=18 || >=19.0.0-beta'
|
||||
react-dom: '>=18 || >=19.0.0-beta'
|
||||
peerDependenciesMeta:
|
||||
react:
|
||||
optional: true
|
||||
react-dom:
|
||||
optional: true
|
||||
|
||||
'@clerk/types@4.9.1':
|
||||
resolution: {integrity: sha512-fCmqzPBFh0rH9TlUVPpvPW225DtGJDuCv5GecwuuzD8hcgwGetTfRSDRNl5Dub5aJuqYWGQQCCnKfnfCrhZvrA==}
|
||||
engines: {node: '>=18.17.0'}
|
||||
|
||||
'@corex/deepmerge@4.0.43':
|
||||
resolution: {integrity: sha512-N8uEMrMPL0cu/bdboEWpQYb/0i2K5Qn8eCsxzOmxSggJbbQte7ljMRoXm917AbntqTGOzdTu+vP3KOOzoC70HQ==}
|
||||
|
||||
@@ -563,6 +601,10 @@ packages:
|
||||
compute-scroll-into-view@3.1.0:
|
||||
resolution: {integrity: sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==}
|
||||
|
||||
cookie@0.5.0:
|
||||
resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==}
|
||||
engines: {node: '>= 0.6'}
|
||||
|
||||
cose-base@1.0.3:
|
||||
resolution: {integrity: sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==}
|
||||
|
||||
@@ -573,6 +615,9 @@ packages:
|
||||
resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
|
||||
engines: {node: '>= 8'}
|
||||
|
||||
crypto-js@4.2.0:
|
||||
resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==}
|
||||
|
||||
css-background-parser@0.1.0:
|
||||
resolution: {integrity: sha512-2EZLisiZQ+7m4wwur/qiYJRniHX4K5Tc9w93MT3AS0WS1u5kaZ4FKXlOTBhOjc+CgEgPiGY+fX1yWD8UwpEqUA==}
|
||||
|
||||
@@ -591,6 +636,9 @@ packages:
|
||||
engines: {node: '>=4'}
|
||||
hasBin: true
|
||||
|
||||
csstype@3.1.1:
|
||||
resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==}
|
||||
|
||||
csstype@3.1.3:
|
||||
resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
|
||||
|
||||
@@ -783,6 +831,9 @@ packages:
|
||||
dompurify@3.1.6:
|
||||
resolution: {integrity: sha512-cTOAhc36AalkjtBpfG6O8JimdTMWNXjiePT2xQH/ppBGi/4uIpmj8eKyIkMJErXWARyINV/sB38yf8JCLF5pbQ==}
|
||||
|
||||
dot-case@3.0.4:
|
||||
resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
|
||||
|
||||
eastasianwidth@0.2.0:
|
||||
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
|
||||
|
||||
@@ -928,6 +979,9 @@ packages:
|
||||
resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
|
||||
engines: {node: '>=10.13.0'}
|
||||
|
||||
glob-to-regexp@0.4.1:
|
||||
resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
|
||||
|
||||
glob@10.4.5:
|
||||
resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
|
||||
hasBin: true
|
||||
@@ -1081,6 +1135,10 @@ packages:
|
||||
resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==}
|
||||
hasBin: true
|
||||
|
||||
js-cookie@3.0.5:
|
||||
resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==}
|
||||
engines: {node: '>=14'}
|
||||
|
||||
js-tokens@4.0.0:
|
||||
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
|
||||
|
||||
@@ -1130,12 +1188,19 @@ packages:
|
||||
resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
|
||||
hasBin: true
|
||||
|
||||
lower-case@2.0.2:
|
||||
resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
|
||||
|
||||
lru-cache@10.4.3:
|
||||
resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
|
||||
|
||||
lru-cache@4.1.5:
|
||||
resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==}
|
||||
|
||||
map-obj@4.3.0:
|
||||
resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
markdown-extensions@2.0.0:
|
||||
resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==}
|
||||
engines: {node: '>=16'}
|
||||
@@ -1485,6 +1550,9 @@ packages:
|
||||
nlcst-to-string@4.0.0:
|
||||
resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==}
|
||||
|
||||
no-case@3.0.4:
|
||||
resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
|
||||
|
||||
node-releases@2.0.18:
|
||||
resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==}
|
||||
|
||||
@@ -1559,6 +1627,9 @@ packages:
|
||||
resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
|
||||
engines: {node: '>=16 || 14 >=14.18'}
|
||||
|
||||
path-to-regexp@6.2.2:
|
||||
resolution: {integrity: sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==}
|
||||
|
||||
periscopic@3.1.0:
|
||||
resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==}
|
||||
|
||||
@@ -1754,6 +1825,9 @@ packages:
|
||||
resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==}
|
||||
engines: {node: '>=4'}
|
||||
|
||||
server-only@0.0.1:
|
||||
resolution: {integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==}
|
||||
|
||||
shebang-command@1.2.0:
|
||||
resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
@@ -1784,6 +1858,13 @@ packages:
|
||||
resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==}
|
||||
engines: {node: '>=14.16'}
|
||||
|
||||
snake-case@3.0.4:
|
||||
resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==}
|
||||
|
||||
snakecase-keys@5.4.4:
|
||||
resolution: {integrity: sha512-YTywJG93yxwHLgrYLZjlC75moVEX04LZM4FHfihjHe1FCXm+QaLOFfSf535aXOAd0ArVQMWUAe8ZPm4VtWyXaA==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
source-map-js@1.2.0:
|
||||
resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
@@ -1802,6 +1883,9 @@ packages:
|
||||
sprintf-js@1.0.3:
|
||||
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
|
||||
|
||||
std-env@3.7.0:
|
||||
resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==}
|
||||
|
||||
streamsearch@1.1.0:
|
||||
resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
|
||||
engines: {node: '>=10.0.0'}
|
||||
@@ -1871,6 +1955,11 @@ packages:
|
||||
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
swr@2.2.5:
|
||||
resolution: {integrity: sha512-QtxqyclFeAsxEUeZIYmsaQ0UjimSq1RZ9Un7I68/0ClKK/U3LoyQunwkQfJZr2fc22DfIXLNDc2wFyTEikCUpg==}
|
||||
peerDependencies:
|
||||
react: ^16.11.0 || ^17.0.0 || ^18.0.0
|
||||
|
||||
tailwindcss@3.4.6:
|
||||
resolution: {integrity: sha512-1uRHzPB+Vzu57ocybfZ4jh5Q3SdlH7XW23J5sQoM9LhE9eIOlzxer/3XPSsycvih3rboRsvt0QCmzSrqyOYUIA==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
@@ -1911,6 +2000,9 @@ packages:
|
||||
ts-interface-checker@0.1.13:
|
||||
resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
|
||||
|
||||
tslib@2.4.1:
|
||||
resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==}
|
||||
|
||||
tslib@2.6.3:
|
||||
resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==}
|
||||
|
||||
@@ -1922,6 +2014,10 @@ packages:
|
||||
peerDependencies:
|
||||
typescript: '*'
|
||||
|
||||
type-fest@2.19.0:
|
||||
resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==}
|
||||
engines: {node: '>=12.20'}
|
||||
|
||||
typescript@5.5.3:
|
||||
resolution: {integrity: sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==}
|
||||
engines: {node: '>=14.17'}
|
||||
@@ -1987,6 +2083,11 @@ packages:
|
||||
peerDependencies:
|
||||
browserslist: '>= 4.21.0'
|
||||
|
||||
use-sync-external-store@1.2.2:
|
||||
resolution: {integrity: sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==}
|
||||
peerDependencies:
|
||||
react: ^16.8.0 || ^17.0.0 || ^18.0.0
|
||||
|
||||
util-deprecate@1.0.2:
|
||||
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
|
||||
|
||||
@@ -2074,6 +2175,54 @@ snapshots:
|
||||
|
||||
'@braintree/sanitize-url@6.0.4': {}
|
||||
|
||||
'@clerk/backend@1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@clerk/shared': 2.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
'@clerk/types': 4.9.1
|
||||
cookie: 0.5.0
|
||||
snakecase-keys: 5.4.4
|
||||
tslib: 2.4.1
|
||||
transitivePeerDependencies:
|
||||
- react
|
||||
- react-dom
|
||||
|
||||
'@clerk/clerk-react@5.2.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@clerk/shared': 2.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
'@clerk/types': 4.9.1
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1(react@18.3.1)
|
||||
tslib: 2.4.1
|
||||
|
||||
'@clerk/nextjs@5.2.8(next@14.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@clerk/backend': 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
'@clerk/clerk-react': 5.2.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
'@clerk/shared': 2.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
'@clerk/types': 4.9.1
|
||||
crypto-js: 4.2.0
|
||||
next: 14.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
path-to-regexp: 6.2.2
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1(react@18.3.1)
|
||||
server-only: 0.0.1
|
||||
tslib: 2.4.1
|
||||
|
||||
'@clerk/shared@2.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@clerk/types': 4.9.1
|
||||
glob-to-regexp: 0.4.1
|
||||
js-cookie: 3.0.5
|
||||
std-env: 3.7.0
|
||||
swr: 2.2.5(react@18.3.1)
|
||||
optionalDependencies:
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1(react@18.3.1)
|
||||
|
||||
'@clerk/types@4.9.1':
|
||||
dependencies:
|
||||
csstype: 3.1.1
|
||||
|
||||
'@corex/deepmerge@4.0.43': {}
|
||||
|
||||
'@headlessui/react@1.7.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||
@@ -2524,6 +2673,8 @@ snapshots:
|
||||
|
||||
compute-scroll-into-view@3.1.0: {}
|
||||
|
||||
cookie@0.5.0: {}
|
||||
|
||||
cose-base@1.0.3:
|
||||
dependencies:
|
||||
layout-base: 1.0.2
|
||||
@@ -2540,6 +2691,8 @@ snapshots:
|
||||
shebang-command: 2.0.0
|
||||
which: 2.0.2
|
||||
|
||||
crypto-js@4.2.0: {}
|
||||
|
||||
css-background-parser@0.1.0: {}
|
||||
|
||||
css-box-shadow@1.0.0-3: {}
|
||||
@@ -2554,6 +2707,8 @@ snapshots:
|
||||
|
||||
cssesc@3.0.0: {}
|
||||
|
||||
csstype@3.1.1: {}
|
||||
|
||||
csstype@3.1.3: {}
|
||||
|
||||
cytoscape-cose-bilkent@4.1.0(cytoscape@3.30.1):
|
||||
@@ -2763,6 +2918,11 @@ snapshots:
|
||||
|
||||
dompurify@3.1.6: {}
|
||||
|
||||
dot-case@3.0.4:
|
||||
dependencies:
|
||||
no-case: 3.0.4
|
||||
tslib: 2.6.3
|
||||
|
||||
eastasianwidth@0.2.0: {}
|
||||
|
||||
electron-to-chromium@1.4.832: {}
|
||||
@@ -2897,6 +3057,8 @@ snapshots:
|
||||
dependencies:
|
||||
is-glob: 4.0.3
|
||||
|
||||
glob-to-regexp@0.4.1: {}
|
||||
|
||||
glob@10.4.5:
|
||||
dependencies:
|
||||
foreground-child: 3.2.1
|
||||
@@ -3121,6 +3283,8 @@ snapshots:
|
||||
|
||||
jiti@1.21.6: {}
|
||||
|
||||
js-cookie@3.0.5: {}
|
||||
|
||||
js-tokens@4.0.0: {}
|
||||
|
||||
js-yaml@3.14.1:
|
||||
@@ -3159,6 +3323,10 @@ snapshots:
|
||||
dependencies:
|
||||
js-tokens: 4.0.0
|
||||
|
||||
lower-case@2.0.2:
|
||||
dependencies:
|
||||
tslib: 2.6.3
|
||||
|
||||
lru-cache@10.4.3: {}
|
||||
|
||||
lru-cache@4.1.5:
|
||||
@@ -3166,6 +3334,8 @@ snapshots:
|
||||
pseudomap: 1.0.2
|
||||
yallist: 2.1.2
|
||||
|
||||
map-obj@4.3.0: {}
|
||||
|
||||
markdown-extensions@2.0.0: {}
|
||||
|
||||
markdown-table@3.0.3: {}
|
||||
@@ -3964,6 +4134,11 @@ snapshots:
|
||||
dependencies:
|
||||
'@types/nlcst': 2.0.3
|
||||
|
||||
no-case@3.0.4:
|
||||
dependencies:
|
||||
lower-case: 2.0.2
|
||||
tslib: 2.6.3
|
||||
|
||||
node-releases@2.0.18: {}
|
||||
|
||||
non-layered-tidy-tree-layout@2.0.2: {}
|
||||
@@ -4034,6 +4209,8 @@ snapshots:
|
||||
lru-cache: 10.4.3
|
||||
minipass: 7.1.2
|
||||
|
||||
path-to-regexp@6.2.2: {}
|
||||
|
||||
periscopic@3.1.0:
|
||||
dependencies:
|
||||
'@types/estree': 1.0.5
|
||||
@@ -4307,6 +4484,8 @@ snapshots:
|
||||
extend-shallow: 2.0.1
|
||||
kind-of: 6.0.3
|
||||
|
||||
server-only@0.0.1: {}
|
||||
|
||||
shebang-command@1.2.0:
|
||||
dependencies:
|
||||
shebang-regex: 1.0.0
|
||||
@@ -4330,6 +4509,17 @@ snapshots:
|
||||
|
||||
slash@5.1.0: {}
|
||||
|
||||
snake-case@3.0.4:
|
||||
dependencies:
|
||||
dot-case: 3.0.4
|
||||
tslib: 2.6.3
|
||||
|
||||
snakecase-keys@5.4.4:
|
||||
dependencies:
|
||||
map-obj: 4.3.0
|
||||
snake-case: 3.0.4
|
||||
type-fest: 2.19.0
|
||||
|
||||
source-map-js@1.2.0: {}
|
||||
|
||||
source-map@0.7.4: {}
|
||||
@@ -4344,6 +4534,8 @@ snapshots:
|
||||
|
||||
sprintf-js@1.0.3: {}
|
||||
|
||||
std-env@3.7.0: {}
|
||||
|
||||
streamsearch@1.1.0: {}
|
||||
|
||||
string-width@4.2.3:
|
||||
@@ -4408,6 +4600,12 @@ snapshots:
|
||||
|
||||
supports-preserve-symlinks-flag@1.0.0: {}
|
||||
|
||||
swr@2.2.5(react@18.3.1):
|
||||
dependencies:
|
||||
client-only: 0.0.1
|
||||
react: 18.3.1
|
||||
use-sync-external-store: 1.2.2(react@18.3.1)
|
||||
|
||||
tailwindcss@3.4.6:
|
||||
dependencies:
|
||||
'@alloc/quick-lru': 5.2.0
|
||||
@@ -4466,6 +4664,8 @@ snapshots:
|
||||
|
||||
ts-interface-checker@0.1.13: {}
|
||||
|
||||
tslib@2.4.1: {}
|
||||
|
||||
tslib@2.6.3: {}
|
||||
|
||||
twoslash-protocol@0.2.9: {}
|
||||
@@ -4478,6 +4678,8 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
type-fest@2.19.0: {}
|
||||
|
||||
typescript@5.5.3: {}
|
||||
|
||||
undici-types@5.26.5: {}
|
||||
@@ -4574,6 +4776,10 @@ snapshots:
|
||||
escalade: 3.1.2
|
||||
picocolors: 1.0.1
|
||||
|
||||
use-sync-external-store@1.2.2(react@18.3.1):
|
||||
dependencies:
|
||||
react: 18.3.1
|
||||
|
||||
util-deprecate@1.0.2: {}
|
||||
|
||||
uuid@9.0.1: {}
|
||||
|
||||
Reference in New Issue
Block a user