Merge branch 'feat/api-docs' into docs/api

This commit is contained in:
Bereket Engida
2024-11-21 22:54:32 +03:00
31 changed files with 12613 additions and 44 deletions

View File

@@ -1,4 +1,4 @@
import { source } from "@/app/source";
import { source, openapi } from "@/app/source";
import { DocsPage, DocsBody, DocsTitle } from "fumadocs-ui/page";
import { notFound } from "next/navigation";
import { absoluteUrl } from "@/lib/utils";
@@ -78,6 +78,7 @@ export default async function Page({
iframe: (props) => (
<iframe {...props} className="w-full h-[500px]" />
),
APIPage: openapi.APIPage,
}}
/>
</DocsBody>
@@ -86,48 +87,48 @@ export default async function Page({
}
export async function generateStaticParams() {
const res = source.getPages().map((page) => ({
slug: page.slugs,
}));
return res;
// const res = source.getPages().map((page) => ({
// slug: page.slugs,
// }));
return source.generateParams();
}
export async function generateMetadata({
params,
}: { params: Promise<{ slug?: string[] }> }) {
const { slug } = await params;
const page = source.getPage(slug);
if (page == null) notFound();
const baseUrl = process.env.NEXT_PUBLIC_URL || process.env.VERCEL_URL;
const url = new URL(`${baseUrl}/api/og`);
const { title, description } = page.data;
const pageSlug = page.file.path;
url.searchParams.set("type", "Documentation");
url.searchParams.set("mode", "dark");
url.searchParams.set("heading", `${title}`);
// export async function generateMetadata({
// params,
// }: { params: Promise<{ slug?: string[] }> }) {
// const { slug } = await params;
// const page = source.getPage(slug);
// if (page == null) notFound();
// const baseUrl = process.env.NEXT_PUBLIC_URL || process.env.VERCEL_URL;
// const url = new URL(`${baseUrl}/api/og`);
// const { title, description } = page.data;
// const pageSlug = page.file.path;
// url.searchParams.set("type", "Documentation");
// url.searchParams.set("mode", "dark");
// url.searchParams.set("heading", `${title}`);
return {
title,
description,
openGraph: {
title,
description,
type: "website",
url: absoluteUrl(`docs/${pageSlug}`),
images: [
{
url: url.toString(),
width: 1200,
height: 630,
alt: title,
},
],
},
twitter: {
card: "summary_large_image",
title,
description,
images: [url.toString()],
},
};
}
// return {
// title,
// description,
// openGraph: {
// title,
// description,
// type: "website",
// url: absoluteUrl(`docs/${pageSlug}`),
// images: [
// {
// url: url.toString(),
// width: 1200,
// height: 630,
// alt: title,
// },
// ],
// },
// twitter: {
// card: "summary_large_image",
// title,
// description,
// images: [url.toString()],
// },
// };
// }

View File

@@ -0,0 +1,9 @@
import { ApiReference } from "@scalar/nextjs-api-reference";
const config = {
spec: {
url: "/openapi.yml",
},
};
export const GET = ApiReference(config);

View File

@@ -6,6 +6,9 @@ import { createOpenAPI } from "fumadocs-openapi/server";
export const source = loader({
baseUrl: "/docs",
source: createMDXSource(docs, meta),
pageTree: {
attachFile,
},
});
export const changelog = loader({

View File

@@ -0,0 +1,13 @@
---
title: Link social account
full: true
_openapi:
method: POST
route: /link-social
toc: []
structuredData:
headings: []
contents: []
---
<APIPage document={"./open-api.json"} operations={[{"path":"/link-social","method":"post"}]} hasHead={false} />

View File

@@ -0,0 +1,13 @@
---
title: List all accounts
full: true
_openapi:
method: GET
route: /list-accounts
toc: []
structuredData:
headings: []
contents: []
---
<APIPage document={"./open-api.json"} operations={[{"path":"/list-accounts","method":"get"}]} hasHead={false} />

View File

@@ -0,0 +1,13 @@
---
title: Callback
full: true
_openapi:
method: GET
route: /callback/:id
toc: []
structuredData:
headings: []
contents: []
---
<APIPage document={"./open-api.json"} operations={[{"path":"/callback/:id","method":"get"}]} hasHead={false} />

View File

@@ -0,0 +1,13 @@
---
title: Send verification email
full: true
_openapi:
method: POST
route: /send-verification-email
toc: []
structuredData:
headings: []
contents: []
---
<APIPage document={"./open-api.json"} operations={[{"path":"/send-verification-email","method":"post"}]} hasHead={false} />

View File

@@ -0,0 +1,13 @@
---
title: Verify email
full: true
_openapi:
method: GET
route: /verify-email
toc: []
structuredData:
headings: []
contents: []
---
<APIPage document={"./open-api.json"} operations={[{"path":"/verify-email","method":"get"}]} hasHead={false} />

View File

@@ -0,0 +1,13 @@
---
title: Forget password
full: true
_openapi:
method: POST
route: /forget-password
toc: []
structuredData:
headings: []
contents: []
---
<APIPage document={"./open-api.json"} operations={[{"path":"/forget-password","method":"post"}]} hasHead={false} />

View File

@@ -0,0 +1,13 @@
---
title: Reset password with token
full: true
_openapi:
method: GET
route: /reset-password/:token
toc: []
structuredData:
headings: []
contents: []
---
<APIPage document={"./open-api.json"} operations={[{"path":"/reset-password/:token","method":"get"}]} hasHead={false} />

View File

@@ -0,0 +1,13 @@
---
title: Reset password
full: true
_openapi:
method: POST
route: /reset-password
toc: []
structuredData:
headings: []
contents: []
---
<APIPage document={"./open-api.json"} operations={[{"path":"/reset-password","method":"post"}]} hasHead={false} />

View File

@@ -0,0 +1,13 @@
---
title: Get current session
full: true
_openapi:
method: GET
route: /get-session
toc: []
structuredData:
headings: []
contents: []
---
<APIPage document={"./open-api.json"} operations={[{"path":"/get-session","method":"get"}]} hasHead={false} />

View File

@@ -0,0 +1,13 @@
---
title: List all sessions
full: true
_openapi:
method: GET
route: /list-sessions
toc: []
structuredData:
headings: []
contents: []
---
<APIPage document={"./open-api.json"} operations={[{"path":"/list-sessions","method":"get"}]} hasHead={false} />

View File

@@ -0,0 +1,13 @@
---
title: Revoke other sessions
full: true
_openapi:
method: POST
route: /revoke-other-sessions
toc: []
structuredData:
headings: []
contents: []
---
<APIPage document={"./open-api.json"} operations={[{"path":"/revoke-other-sessions","method":"post"}]} hasHead={false} />

View File

@@ -0,0 +1,13 @@
---
title: Revoke a session
full: true
_openapi:
method: POST
route: /revoke-session
toc: []
structuredData:
headings: []
contents: []
---
<APIPage document={"./open-api.json"} operations={[{"path":"/revoke-session","method":"post"}]} hasHead={false} />

View File

@@ -0,0 +1,13 @@
---
title: Revoke all sessions
full: true
_openapi:
method: POST
route: /revoke-sessions
toc: []
structuredData:
headings: []
contents: []
---
<APIPage document={"./open-api.json"} operations={[{"path":"/revoke-sessions","method":"post"}]} hasHead={false} />

View File

@@ -0,0 +1,13 @@
---
title: Sign in with email
full: true
_openapi:
method: POST
route: /sign-in/email
toc: []
structuredData:
headings: []
contents: []
---
<APIPage document={"./open-api.json"} operations={[{"path":"/sign-in/email","method":"post"}]} hasHead={false} />

View File

@@ -0,0 +1,13 @@
---
title: Sign in with social account
full: true
_openapi:
method: POST
route: /sign-in/social
toc: []
structuredData:
headings: []
contents: []
---
<APIPage document={"./open-api.json"} operations={[{"path":"/sign-in/social","method":"post"}]} hasHead={false} />

View File

@@ -0,0 +1,13 @@
---
title: Sign out
full: true
_openapi:
method: POST
route: /sign-out
toc: []
structuredData:
headings: []
contents: []
---
<APIPage document={"./open-api.json"} operations={[{"path":"/sign-out","method":"post"}]} hasHead={false} />

View File

@@ -0,0 +1,13 @@
---
title: Sign up with email
full: true
_openapi:
method: POST
route: /sign-up/email
toc: []
structuredData:
headings: []
contents: []
---
<APIPage document={"./open-api.json"} operations={[{"path":"/sign-up/email","method":"post"}]} hasHead={false} />

View File

@@ -0,0 +1,13 @@
---
title: Change email
full: true
_openapi:
method: POST
route: /change-email
toc: []
structuredData:
headings: []
contents: []
---
<APIPage document={"./open-api.json"} operations={[{"path":"/change-email","method":"post"}]} hasHead={false} />

View File

@@ -0,0 +1,13 @@
---
title: Change password
full: true
_openapi:
method: POST
route: /change-password
toc: []
structuredData:
headings: []
contents: []
---
<APIPage document={"./open-api.json"} operations={[{"path":"/change-password","method":"post"}]} hasHead={false} />

View File

@@ -0,0 +1,13 @@
---
title: Delete user
full: true
_openapi:
method: POST
route: /delete-user
toc: []
structuredData:
headings: []
contents: []
---
<APIPage document={"./open-api.json"} operations={[{"path":"/delete-user","method":"post"}]} hasHead={false} />

View File

@@ -0,0 +1,13 @@
---
title: Set password
full: true
_openapi:
method: POST
route: /set-password
toc: []
structuredData:
headings: []
contents: []
---
<APIPage document={"./open-api.json"} operations={[{"path":"/set-password","method":"post"}]} hasHead={false} />

View File

@@ -0,0 +1,13 @@
---
title: Update user
full: true
_openapi:
method: POST
route: /update-user
toc: []
structuredData:
headings: []
contents: []
---
<APIPage document={"./open-api.json"} operations={[{"path":"/update-user","method":"post"}]} hasHead={false} />

2126
docs/open-api.json Normal file

File diff suppressed because it is too large Load Diff

7266
docs/openapi.json Normal file

File diff suppressed because it is too large Load Diff

1341
docs/openapi.yml Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -7,6 +7,7 @@
"dev": "next dev",
"start": "next start",
"build:docs": "node ./scripts/generate-docs.mjs",
"build:docs": "node ./scripts/generate-docs.mjs",
"typecheck": "tsc --noEmit",
"postinstall": "fumadocs-mdx"
},
@@ -42,6 +43,7 @@
"@radix-ui/react-toggle": "^1.1.0",
"@radix-ui/react-toggle-group": "^1.1.0",
"@radix-ui/react-tooltip": "^1.1.2",
"@scalar/nextjs-api-reference": "^0.4.100",
"@tabler/icons-react": "^3.12.0",
"@tsparticles/engine": "^3.5.0",
"@tsparticles/react": "^3.0.0",

1341
docs/public/openapi.yml Normal file

File diff suppressed because it is too large Load Diff

196
pnpm-lock.yaml generated
View File

@@ -421,6 +421,9 @@ importers:
'@radix-ui/react-tooltip':
specifier: ^1.1.2
version: 1.1.3(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@scalar/nextjs-api-reference':
specifier: ^0.4.100
version: 0.4.100(next@15.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)
'@tabler/icons-react':
specifier: ^3.12.0
version: 3.21.0(react@18.3.1)
@@ -484,6 +487,7 @@ importers:
fumadocs-twoslash:
specifier: ^1.1.2
version: 1.1.3(fumadocs-ui@14.0.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(next@15.0.1(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))(shiki@1.23.1)(typescript@5.6.3)
version: 1.1.3(fumadocs-ui@14.0.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(next@15.0.1(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))(shiki@1.23.1)(typescript@5.6.3)
fumadocs-typescript:
specifier: ^3.0.2
version: 3.0.2(typescript@5.6.3)
@@ -1616,6 +1620,10 @@ packages:
resolution: {integrity: sha512-4gY54eEGEstClvEkGnwVkTkrx0sqwemEFG5OSRRn3tD91XH0+Q8XIkYIfo7IwEWPpJZwILb9GUXeShtplRc/eA==}
engines: {node: '>= 16'}
'@apidevtools/json-schema-ref-parser@11.7.2':
resolution: {integrity: sha512-4gY54eEGEstClvEkGnwVkTkrx0sqwemEFG5OSRRn3tD91XH0+Q8XIkYIfo7IwEWPpJZwILb9GUXeShtplRc/eA==}
engines: {node: '>= 16'}
'@ark-ui/solid@3.13.0':
resolution: {integrity: sha512-1zCkFKHKkVidZTSoiYOPGDlUgusQprMmNn6ZyxISwtb7tUkYu1gISjOY6NN32fpGEfNKlOM3XZ/Cr2ASJUTA3w==}
peerDependencies:
@@ -3544,6 +3552,9 @@ packages:
'@formatjs/intl-localematcher@0.5.8':
resolution: {integrity: sha512-I+WDNWWJFZie+jkfkiK5Mp4hEDyRSEvmyfYadflOno/mmKJKcB17fEpEH0oJu/OWhhCJ8kJBDz2YMd/6cDl7Mg==}
'@formatjs/intl-localematcher@0.5.8':
resolution: {integrity: sha512-I+WDNWWJFZie+jkfkiK5Mp4hEDyRSEvmyfYadflOno/mmKJKcB17fEpEH0oJu/OWhhCJ8kJBDz2YMd/6cDl7Mg==}
'@fortawesome/fontawesome-free@6.6.0':
resolution: {integrity: sha512-60G28ke/sXdtS9KZCpZSHHkCbdsOGEhIUGlwq6yhY74UpTiToIh8np7A8yphhM4BWsvNFtIvLpi4co+h9Mr9Ow==}
engines: {node: '>=6'}
@@ -3552,6 +3563,10 @@ packages:
resolution: {integrity: sha512-vVnuwLqW8WJsg09EanNHnXnzsjYYsZE7JlD4M1sLvDnWGjvYJKNU6VpRqDxOiDChUszDZFKhxQSNYGShF0bKJg==}
engines: {node: '>=18.0.0'}
'@fumari/json-schema-to-typescript@1.1.1':
resolution: {integrity: sha512-vVnuwLqW8WJsg09EanNHnXnzsjYYsZE7JlD4M1sLvDnWGjvYJKNU6VpRqDxOiDChUszDZFKhxQSNYGShF0bKJg==}
engines: {node: '>=18.0.0'}
'@gcornut/valibot-json-schema@0.31.0':
resolution: {integrity: sha512-3xGptCurm23e7nuPQkdrE5rEs1FeTPHhAUsBuwwqG4/YeZLwJOoYZv+fmsppUEfo5y9lzUwNQrNqLS/q7HMc7g==}
hasBin: true
@@ -3776,6 +3791,9 @@ packages:
'@jsdevtools/ono@7.1.3':
resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==}
'@jsdevtools/ono@7.1.3':
resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==}
'@jspm/core@2.1.0':
resolution: {integrity: sha512-3sRl+pkyFY/kLmHl0cgHiFp2xEqErA8N3ECjMs7serSUBmoJ70lBa0PG5t0IM6WJgdZNyyI0R8YFfi5wM8+mzg==}
@@ -6253,18 +6271,27 @@ packages:
'@shikijs/core@1.23.1':
resolution: {integrity: sha512-NuOVgwcHgVC6jBVH5V7iblziw6iQbWWHrj5IlZI3Fqu2yx9awH7OIQkXIcsHsUmY19ckwSgUMgrqExEyP5A0TA==}
'@shikijs/core@1.23.1':
resolution: {integrity: sha512-NuOVgwcHgVC6jBVH5V7iblziw6iQbWWHrj5IlZI3Fqu2yx9awH7OIQkXIcsHsUmY19ckwSgUMgrqExEyP5A0TA==}
'@shikijs/engine-javascript@1.22.2':
resolution: {integrity: sha512-iOvql09ql6m+3d1vtvP8fLCVCK7BQD1pJFmHIECsujB0V32BJ0Ab6hxk1ewVSMFA58FI0pR2Had9BKZdyQrxTw==}
'@shikijs/engine-javascript@1.23.1':
resolution: {integrity: sha512-i/LdEwT5k3FVu07SiApRFwRcSJs5QM9+tod5vYCPig1Ywi8GR30zcujbxGQFJHwYD7A5BUqagi8o5KS+LEVgBg==}
'@shikijs/engine-javascript@1.23.1':
resolution: {integrity: sha512-i/LdEwT5k3FVu07SiApRFwRcSJs5QM9+tod5vYCPig1Ywi8GR30zcujbxGQFJHwYD7A5BUqagi8o5KS+LEVgBg==}
'@shikijs/engine-oniguruma@1.22.2':
resolution: {integrity: sha512-GIZPAGzQOy56mGvWMoZRPggn0dTlBf1gutV5TdceLCZlFNqWmuc7u+CzD0Gd9vQUTgLbrt0KLzz6FNprqYAxlA==}
'@shikijs/engine-oniguruma@1.23.1':
resolution: {integrity: sha512-KQ+lgeJJ5m2ISbUZudLR1qHeH3MnSs2mjFg7bnencgs5jDVPeJ2NVDJ3N5ZHbcTsOIh0qIueyAJnwg7lg7kwXQ==}
'@shikijs/engine-oniguruma@1.23.1':
resolution: {integrity: sha512-KQ+lgeJJ5m2ISbUZudLR1qHeH3MnSs2mjFg7bnencgs5jDVPeJ2NVDJ3N5ZHbcTsOIh0qIueyAJnwg7lg7kwXQ==}
'@shikijs/rehype@1.22.2':
resolution: {integrity: sha512-A0RHgiYR5uiHvddwHehBN9j8PhOvfT6/GebSTWrapur6M+fD/4i3mlfUv7aFK4b+4GQ1R42L8fC5N98whZjNcg==}
@@ -6283,6 +6310,9 @@ packages:
'@shikijs/types@1.23.1':
resolution: {integrity: sha512-98A5hGyEhzzAgQh2dAeHKrWW4HfCMeoFER2z16p5eJ+vmPeF6lZ/elEne6/UCU551F/WqkopqRsr1l2Yu6+A0g==}
'@shikijs/types@1.23.1':
resolution: {integrity: sha512-98A5hGyEhzzAgQh2dAeHKrWW4HfCMeoFER2z16p5eJ+vmPeF6lZ/elEne6/UCU551F/WqkopqRsr1l2Yu6+A0g==}
'@shikijs/vscode-textmate@9.3.0':
resolution: {integrity: sha512-jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA==}
@@ -9644,6 +9674,9 @@ packages:
emoji-regex-xs@1.0.0:
resolution: {integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==}
emoji-regex-xs@1.0.0:
resolution: {integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==}
emoji-regex@10.4.0:
resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==}
@@ -10388,6 +10421,9 @@ packages:
foreach@2.0.6:
resolution: {integrity: sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==}
foreach@2.0.6:
resolution: {integrity: sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==}
foreground-child@3.3.0:
resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==}
engines: {node: '>=14'}
@@ -10728,6 +10764,11 @@ packages:
resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
hasBin: true
glob@11.0.0:
resolution: {integrity: sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==}
engines: {node: 20 || >=22}
hasBin: true
glob@7.1.6:
resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==}
deprecated: Glob versions prior to v9 are no longer supported
@@ -11584,6 +11625,10 @@ packages:
jackspeak@3.4.3:
resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
jackspeak@4.0.2:
resolution: {integrity: sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==}
engines: {node: 20 || >=22}
javascript-stringify@2.1.0:
resolution: {integrity: sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==}
@@ -11718,6 +11763,9 @@ packages:
json-pointer@0.6.2:
resolution: {integrity: sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw==}
json-pointer@0.6.2:
resolution: {integrity: sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw==}
json-schema-deref-sync@0.13.0:
resolution: {integrity: sha512-YBOEogm5w9Op337yb6pAT6ZXDqlxAsQCanM3grid8lMWNxRJO/zWEJi3ZzqDL8boWfwhTFym5EFrNgWwpqcBRg==}
engines: {node: '>=6.0.0'}
@@ -12129,6 +12177,10 @@ packages:
lru-cache@10.4.3:
resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
lru-cache@11.0.2:
resolution: {integrity: sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==}
engines: {node: 20 || >=22}
lru-cache@4.1.5:
resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==}
@@ -12700,6 +12752,10 @@ packages:
resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==}
hasBin: true
minimatch@10.0.1:
resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==}
engines: {node: 20 || >=22}
minimatch@3.0.8:
resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==}
@@ -12944,6 +13000,12 @@ packages:
react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc
react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc
next-themes@0.4.3:
resolution: {integrity: sha512-nG84VPkTdUHR2YeD89YchvV4I9RbiMAql3GiLEQlPvq1ioaqPaIReK+yMRdg/zgiXws620qS1rU30TiWmmG9lA==}
peerDependencies:
react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc
react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc
next-tick@1.1.0:
resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==}
@@ -13309,6 +13371,9 @@ packages:
oniguruma-to-es@0.4.1:
resolution: {integrity: sha512-rNcEohFz095QKGRovP/yqPIKc+nP+Sjs4YTHMv33nMePGKrq/r2eu9Yh4646M5XluGJsUnmwoXuiXE69KDs+fQ==}
oniguruma-to-es@0.4.1:
resolution: {integrity: sha512-rNcEohFz095QKGRovP/yqPIKc+nP+Sjs4YTHMv33nMePGKrq/r2eu9Yh4646M5XluGJsUnmwoXuiXE69KDs+fQ==}
oniguruma-to-js@0.4.3:
resolution: {integrity: sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ==}
@@ -13565,6 +13630,10 @@ packages:
resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
engines: {node: '>=16 || 14 >=14.18'}
path-scurry@2.0.0:
resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==}
engines: {node: 20 || >=22}
path-to-regexp@0.1.10:
resolution: {integrity: sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==}
@@ -14322,6 +14391,12 @@ packages:
peerDependencies:
react: ^16.8.0 || ^17 || ^18 || ^19
react-hook-form@7.53.2:
resolution: {integrity: sha512-YVel6fW5sOeedd1524pltpHX+jgU2u3DSDtXEaBORNdqiNrsX/nUI/iGXONegttg0mJVnfrIkiV0cmTU6Oo2xw==}
engines: {node: '>=18.0.0'}
peerDependencies:
react: ^16.8.0 || ^17 || ^18 || ^19
react-is@16.13.1:
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
@@ -14622,6 +14697,12 @@ packages:
regex-utilities@2.3.0:
resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==}
regex-recursion@4.2.1:
resolution: {integrity: sha512-QHNZyZAeKdndD1G3bKAbBEKOSSK4KOHQrAJ01N1LJeb0SoH4DJIeFhp0uUpETgONifS4+P3sOgoA1dhzgrQvhA==}
regex-utilities@2.3.0:
resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==}
regex@4.4.0:
resolution: {integrity: sha512-uCUSuobNVeqUupowbdZub6ggI5/JZkYyJdDogddJr60L764oxC2pMZov1fQ3wM9bdyzUILDG+Sqx6NAKAz9rKQ==}
@@ -14851,6 +14932,11 @@ packages:
deprecated: Rimraf versions prior to v4 are no longer supported
hasBin: true
rimraf@6.0.1:
resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==}
engines: {node: 20 || >=22}
hasBin: true
robust-predicates@3.0.2:
resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==}
@@ -15076,6 +15162,9 @@ packages:
shiki@1.23.1:
resolution: {integrity: sha512-8kxV9TH4pXgdKGxNOkrSMydn1Xf6It8lsle0fiqxf7a1149K1WGtdOu3Zb91T5r1JpvRPxqxU3C2XdZZXQnrig==}
shiki@1.23.1:
resolution: {integrity: sha512-8kxV9TH4pXgdKGxNOkrSMydn1Xf6It8lsle0fiqxf7a1149K1WGtdOu3Zb91T5r1JpvRPxqxU3C2XdZZXQnrig==}
shortid@2.2.16:
resolution: {integrity: sha512-Ugt+GIZqvGXCIItnsL+lvFJOiN7RYqlGy7QE41O3YC1xbNSeDGIRO7xg2JJXIAj1cAGnOeC1r7/T9pgrtQbv4g==}
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
@@ -17292,6 +17381,12 @@ snapshots:
'@antfu/utils@0.7.10': {}
'@apidevtools/json-schema-ref-parser@11.7.2':
dependencies:
'@jsdevtools/ono': 7.1.3
'@types/json-schema': 7.0.15
js-yaml: 4.1.0
'@apidevtools/json-schema-ref-parser@11.7.2':
dependencies:
'@jsdevtools/ono': 7.1.3
@@ -19501,8 +19596,18 @@ snapshots:
dependencies:
tslib: 2.8.1
'@formatjs/intl-localematcher@0.5.8':
dependencies:
tslib: 2.8.1
'@fortawesome/fontawesome-free@6.6.0': {}
'@fumari/json-schema-to-typescript@1.1.1':
dependencies:
'@apidevtools/json-schema-ref-parser': 11.7.2
js-yaml: 4.1.0
prettier: 3.3.3
'@fumari/json-schema-to-typescript@1.1.1':
dependencies:
'@apidevtools/json-schema-ref-parser': 11.7.2
@@ -19732,6 +19837,8 @@ snapshots:
'@jsdevtools/ono@7.1.3': {}
'@jsdevtools/ono@7.1.3': {}
'@jspm/core@2.1.0': {}
'@juggle/resize-observer@3.4.0': {}
@@ -22782,6 +22889,15 @@ snapshots:
'@types/hast': 3.0.4
hast-util-to-html: 9.0.3
'@shikijs/core@1.23.1':
dependencies:
'@shikijs/engine-javascript': 1.23.1
'@shikijs/engine-oniguruma': 1.23.1
'@shikijs/types': 1.23.1
'@shikijs/vscode-textmate': 9.3.0
'@types/hast': 3.0.4
hast-util-to-html: 9.0.3
'@shikijs/engine-javascript@1.22.2':
dependencies:
'@shikijs/types': 1.22.2
@@ -22794,6 +22910,12 @@ snapshots:
'@shikijs/vscode-textmate': 9.3.0
oniguruma-to-es: 0.4.1
'@shikijs/engine-javascript@1.23.1':
dependencies:
'@shikijs/types': 1.23.1
'@shikijs/vscode-textmate': 9.3.0
oniguruma-to-es: 0.4.1
'@shikijs/engine-oniguruma@1.22.2':
dependencies:
'@shikijs/types': 1.22.2
@@ -22804,6 +22926,11 @@ snapshots:
'@shikijs/types': 1.23.1
'@shikijs/vscode-textmate': 9.3.0
'@shikijs/engine-oniguruma@1.23.1':
dependencies:
'@shikijs/types': 1.23.1
'@shikijs/vscode-textmate': 9.3.0
'@shikijs/rehype@1.22.2':
dependencies:
'@shikijs/types': 1.22.2
@@ -22845,6 +22972,11 @@ snapshots:
'@shikijs/vscode-textmate': 9.3.0
'@types/hast': 3.0.4
'@shikijs/types@1.23.1':
dependencies:
'@shikijs/vscode-textmate': 9.3.0
'@types/hast': 3.0.4
'@shikijs/vscode-textmate@9.3.0': {}
'@shuding/opentype.js@1.4.0-beta.0':
@@ -24379,7 +24511,7 @@ snapshots:
'@vue/shared': 3.5.12
estree-walker: 2.0.2
magic-string: 0.30.12
postcss: 8.4.47
postcss: 8.4.49
source-map-js: 1.2.1
'@vue/compiler-sfc@3.5.13':
@@ -27272,6 +27404,8 @@ snapshots:
emoji-regex-xs@1.0.0: {}
emoji-regex-xs@1.0.0: {}
emoji-regex@10.4.0: {}
emoji-regex@8.0.0: {}
@@ -28555,6 +28689,8 @@ snapshots:
foreach@2.0.6: {}
foreach@2.0.6: {}
foreground-child@3.3.0:
dependencies:
cross-spawn: 7.0.3
@@ -28800,6 +28936,7 @@ snapshots:
mdast-util-gfm: 3.0.0
mdast-util-to-hast: 13.2.0
shiki: 1.23.1
shiki: 1.23.1
transitivePeerDependencies:
- supports-color
- typescript
@@ -29055,6 +29192,15 @@ snapshots:
package-json-from-dist: 1.0.1
path-scurry: 1.11.1
glob@11.0.0:
dependencies:
foreground-child: 3.3.0
jackspeak: 4.0.2
minimatch: 10.0.1
minipass: 7.1.2
package-json-from-dist: 1.0.1
path-scurry: 2.0.0
glob@7.1.6:
dependencies:
fs.realpath: 1.0.0
@@ -30018,6 +30164,10 @@ snapshots:
optionalDependencies:
'@pkgjs/parseargs': 0.11.0
jackspeak@4.0.2:
dependencies:
'@isaacs/cliui': 8.0.2
javascript-stringify@2.1.0: {}
jest-diff@29.7.0:
@@ -30179,6 +30329,10 @@ snapshots:
json-parse-even-better-errors@3.0.2: {}
json-pointer@0.6.2:
dependencies:
foreach: 2.0.6
json-pointer@0.6.2:
dependencies:
foreach: 2.0.6
@@ -30600,6 +30754,8 @@ snapshots:
lru-cache@10.4.3: {}
lru-cache@11.0.2: {}
lru-cache@4.1.5:
dependencies:
pseudomap: 1.0.2
@@ -31721,6 +31877,10 @@ snapshots:
mini-svg-data-uri@1.4.4: {}
minimatch@10.0.1:
dependencies:
brace-expansion: 2.0.1
minimatch@3.0.8:
dependencies:
brace-expansion: 1.1.11
@@ -31955,6 +32115,11 @@ snapshots:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
next-themes@0.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
next-tick@1.1.0: {}
next@15.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
@@ -32863,6 +33028,11 @@ snapshots:
lru-cache: 10.4.3
minipass: 7.1.2
path-scurry@2.0.0:
dependencies:
lru-cache: 11.0.2
minipass: 7.1.2
path-to-regexp@0.1.10: {}
path-to-regexp@6.3.0: {}
@@ -33598,6 +33768,10 @@ snapshots:
dependencies:
react: 18.3.1
react-hook-form@7.53.2(react@18.3.1):
dependencies:
react: 18.3.1
react-is@16.13.1: {}
react-is@17.0.2: {}
@@ -34006,6 +34180,12 @@ snapshots:
regex-utilities@2.3.0: {}
regex-recursion@4.2.1:
dependencies:
regex-utilities: 2.3.0
regex-utilities@2.3.0: {}
regex@4.4.0: {}
regex@5.0.2:
@@ -34338,6 +34518,11 @@ snapshots:
dependencies:
glob: 7.2.3
rimraf@6.0.1:
dependencies:
glob: 11.0.0
package-json-from-dist: 1.0.1
robust-predicates@3.0.2: {}
rollup-plugin-visualizer@5.12.0(rollup@4.24.3):
@@ -34653,6 +34838,15 @@ snapshots:
'@shikijs/vscode-textmate': 9.3.0
'@types/hast': 3.0.4
shiki@1.23.1:
dependencies:
'@shikijs/core': 1.23.1
'@shikijs/engine-javascript': 1.23.1
'@shikijs/engine-oniguruma': 1.23.1
'@shikijs/types': 1.23.1
'@shikijs/vscode-textmate': 9.3.0
'@types/hast': 3.0.4
shortid@2.2.16:
dependencies:
nanoid: 2.1.11