mirror of
https://github.com/better-auth/better-auth.git
synced 2026-05-23 15:42:09 -05:00
docs: use data table for community plugin list (#6953)
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
This commit is contained in:
@@ -3,4 +3,18 @@ Oskar
|
||||
Gmerek
|
||||
Lluis
|
||||
Agusti
|
||||
Vijit
|
||||
Vijit
|
||||
TPEOficial
|
||||
GeKorm
|
||||
Daanish2003
|
||||
marcellosso
|
||||
tobimori
|
||||
zpg6
|
||||
kevcube
|
||||
erickweil
|
||||
TheUntraceable
|
||||
yultyyev
|
||||
Fyrlex
|
||||
alexasomba
|
||||
Vijit
|
||||
neiii
|
||||
|
||||
351
docs/components/community-plugins-table.tsx
Normal file
351
docs/components/community-plugins-table.tsx
Normal file
@@ -0,0 +1,351 @@
|
||||
"use client";
|
||||
|
||||
import type {
|
||||
ColumnDef,
|
||||
ColumnFiltersState,
|
||||
SortingState,
|
||||
} from "@tanstack/react-table";
|
||||
import {
|
||||
flexRender,
|
||||
getCoreRowModel,
|
||||
getFilteredRowModel,
|
||||
getSortedRowModel,
|
||||
useReactTable,
|
||||
} from "@tanstack/react-table";
|
||||
import { ArrowUpDown, Search } from "lucide-react";
|
||||
import { useState } from "react";
|
||||
|
||||
export interface CommunityPlugin {
|
||||
name: string;
|
||||
url: string;
|
||||
description: string;
|
||||
author: {
|
||||
name: string;
|
||||
github: string;
|
||||
avatar: string;
|
||||
};
|
||||
}
|
||||
|
||||
const columns: ColumnDef<CommunityPlugin>[] = [
|
||||
{
|
||||
accessorKey: "name",
|
||||
header: ({ column }) => {
|
||||
return (
|
||||
<button
|
||||
className="flex items-center gap-2 font-semibold hover:text-foreground transition-colors"
|
||||
onClick={() => column.toggleSorting(column.getIsSorted() === "asc")}
|
||||
>
|
||||
Plugin
|
||||
<ArrowUpDown className="h-4 w-4" />
|
||||
</button>
|
||||
);
|
||||
},
|
||||
cell: ({ row }) => {
|
||||
return (
|
||||
<a
|
||||
href={row.original.url}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="font-mono text-sm hover:underline text-primary"
|
||||
>
|
||||
{row.original.name}
|
||||
</a>
|
||||
);
|
||||
},
|
||||
},
|
||||
{
|
||||
accessorKey: "description",
|
||||
header: "Description",
|
||||
cell: ({ row }) => {
|
||||
return (
|
||||
<div className="text-sm text-muted-foreground">
|
||||
{row.original.description}
|
||||
</div>
|
||||
);
|
||||
},
|
||||
},
|
||||
{
|
||||
accessorKey: "author.name",
|
||||
header: ({ column }) => {
|
||||
return (
|
||||
<button
|
||||
className="flex items-center gap-2 font-semibold hover:text-foreground transition-colors"
|
||||
onClick={() => column.toggleSorting(column.getIsSorted() === "asc")}
|
||||
>
|
||||
Author
|
||||
<ArrowUpDown className="h-4 w-4" />
|
||||
</button>
|
||||
);
|
||||
},
|
||||
cell: ({ row }) => {
|
||||
const author = row.original.author;
|
||||
return (
|
||||
<a
|
||||
href={`https://github.com/${author.github}`}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="flex items-center gap-2 hover:text-foreground transition-colors"
|
||||
>
|
||||
<img
|
||||
src={author.avatar}
|
||||
alt={author.name}
|
||||
className="rounded-full w-6 h-6 border opacity-70 m-0"
|
||||
/>
|
||||
<span className="text-sm">{author.name}</span>
|
||||
</a>
|
||||
);
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
export const communityPlugins: CommunityPlugin[] = [
|
||||
{
|
||||
name: "@dymo-api/better-auth",
|
||||
url: "https://github.com/TPEOficial/dymo-api-better-auth",
|
||||
description:
|
||||
"Sign Up Protection and validation of disposable emails (the world's largest database with nearly 14 million entries).",
|
||||
author: {
|
||||
name: "TPEOficial",
|
||||
github: "TPEOficial",
|
||||
avatar: "https://github.com/TPEOficial.png",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "better-auth-harmony",
|
||||
url: "https://github.com/gekorm/better-auth-harmony/",
|
||||
description:
|
||||
"Email & phone normalization and additional validation, blocking over 55,000 temporary email domains.",
|
||||
author: {
|
||||
name: "GeKorm",
|
||||
github: "GeKorm",
|
||||
avatar: "https://github.com/GeKorm.png",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "validation-better-auth",
|
||||
url: "https://github.com/Daanish2003/validation-better-auth",
|
||||
description:
|
||||
"Validate API request using any validation library (e.g., Zod, Yup)",
|
||||
author: {
|
||||
name: "Daanish2003",
|
||||
github: "Daanish2003",
|
||||
avatar: "https://github.com/Daanish2003.png",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "better-auth-localization",
|
||||
url: "https://github.com/marcellosso/better-auth-localization",
|
||||
description:
|
||||
"Localize and customize better-auth messages with easy translation and message override support.",
|
||||
author: {
|
||||
name: "marcellosso",
|
||||
github: "marcellosso",
|
||||
avatar: "https://github.com/marcellosso.png",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "better-auth-attio-plugin",
|
||||
url: "https://github.com/tobimori/better-auth-attio-plugin",
|
||||
description: "Sync your products Better Auth users & workspaces with Attio",
|
||||
author: {
|
||||
name: "tobimori",
|
||||
github: "tobimori",
|
||||
avatar: "https://github.com/tobimori.png",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "better-auth-cloudflare",
|
||||
url: "https://github.com/zpg6/better-auth-cloudflare",
|
||||
description:
|
||||
"Seamlessly integrate with Cloudflare Workers, D1, Hyperdrive, KV, R2, and geolocation services. Includes CLI for project generation, automated resource provisioning on Cloudflare, and database migrations. Supports Next.js, Hono, and more!",
|
||||
author: {
|
||||
name: "zpg6",
|
||||
github: "zpg6",
|
||||
avatar: "https://github.com/zpg6.png",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "expo-better-auth-passkey",
|
||||
url: "https://github.com/kevcube/expo-better-auth-passkey",
|
||||
description:
|
||||
"Better-auth client plugin for using passkeys on mobile platforms in expo apps. Supports iOS, macOS, Android (and web!) by wrapping the existing better-auth passkey client plugin.",
|
||||
author: {
|
||||
name: "kevcube",
|
||||
github: "kevcube",
|
||||
avatar: "https://github.com/kevcube.png",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "better-auth-credentials-plugin",
|
||||
url: "https://github.com/erickweil/better-auth-credentials-plugin",
|
||||
description: "LDAP authentication plugin for Better Auth.",
|
||||
author: {
|
||||
name: "erickweil",
|
||||
github: "erickweil",
|
||||
avatar: "https://github.com/erickweil.png",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "better-auth-opaque",
|
||||
url: "https://github.com/TheUntraceable/better-auth-opaque",
|
||||
description:
|
||||
"Provides database-breach resistant authentication using the zero-knowledge OPAQUE protocol.",
|
||||
author: {
|
||||
name: "TheUntraceable",
|
||||
github: "TheUntraceable",
|
||||
avatar: "https://github.com/theuntraceable.png",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "better-auth-firebase-auth",
|
||||
url: "https://github.com/yultyyev/better-auth-firebase-auth",
|
||||
description:
|
||||
"Firebase Authentication plugin for Better Auth with built-in email service, Google Sign-In, and password reset functionality.",
|
||||
author: {
|
||||
name: "yultyyev",
|
||||
github: "yultyyev",
|
||||
avatar: "https://github.com/yultyyev.png",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "better-auth-university",
|
||||
url: "https://github.com/LuyxLLC/better-auth-university",
|
||||
description:
|
||||
"University plugin for allowing only specific email domains to be passed through. Includes a University model with name and domain.",
|
||||
author: {
|
||||
name: "Fyrlex",
|
||||
github: "Fyrlex",
|
||||
avatar: "https://github.com/Fyrlex.png",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "@alexasomba/better-auth-paystack",
|
||||
url: "https://github.com/alexasomba/better-auth-paystack",
|
||||
description:
|
||||
"Paystack plugin for Better Auth — integrates Paystack transactions, webhooks, and subscription flows.",
|
||||
author: {
|
||||
name: "alexasomba",
|
||||
github: "alexasomba",
|
||||
avatar: "https://github.com/alexasomba.png",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "better-auth-lark",
|
||||
url: "https://github.com/uselark/better-auth-lark",
|
||||
description:
|
||||
"Lark billing plugin that automatically creates customers and subscribes them to free plans on signup.",
|
||||
author: {
|
||||
name: "Vijit",
|
||||
github: "vijit-lark",
|
||||
avatar: "https://github.com/vijit-lark.png",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "stargate-better-auth",
|
||||
url: "https://github.com/neiii/stargate-better-auth",
|
||||
description:
|
||||
"Gate access to resources based on whether the user has starred a repository",
|
||||
author: {
|
||||
name: "neiii",
|
||||
github: "neiii",
|
||||
avatar: "https://github.com/neiii.png",
|
||||
},
|
||||
},
|
||||
];
|
||||
export function CommunityPluginsTable() {
|
||||
const [sorting, setSorting] = useState<SortingState>([]);
|
||||
const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([]);
|
||||
const [globalFilter, setGlobalFilter] = useState("");
|
||||
|
||||
const table = useReactTable({
|
||||
data: communityPlugins,
|
||||
columns,
|
||||
getCoreRowModel: getCoreRowModel(),
|
||||
getSortedRowModel: getSortedRowModel(),
|
||||
getFilteredRowModel: getFilteredRowModel(),
|
||||
onSortingChange: setSorting,
|
||||
onColumnFiltersChange: setColumnFilters,
|
||||
onGlobalFilterChange: setGlobalFilter,
|
||||
state: {
|
||||
sorting,
|
||||
columnFilters,
|
||||
globalFilter,
|
||||
},
|
||||
});
|
||||
|
||||
return (
|
||||
<div className="w-full space-y-4">
|
||||
<div className="relative">
|
||||
<Search className="absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground" />
|
||||
<input
|
||||
type="text"
|
||||
placeholder="Search plugins, descriptions, or authors..."
|
||||
value={globalFilter ?? ""}
|
||||
onChange={(e) => setGlobalFilter(e.target.value)}
|
||||
className="w-full rounded-lg border bg-background pl-10 pr-4 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-ring"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="rounded-lg border">
|
||||
<div className="overflow-x-auto">
|
||||
<table className="w-full">
|
||||
<thead>
|
||||
{table.getHeaderGroups().map((headerGroup) => (
|
||||
<tr key={headerGroup.id} className="border-b bg-muted/50">
|
||||
{headerGroup.headers.map((header) => (
|
||||
<th
|
||||
key={header.id}
|
||||
className="px-4 py-3 text-left text-sm font-medium"
|
||||
>
|
||||
{header.isPlaceholder
|
||||
? null
|
||||
: flexRender(
|
||||
header.column.columnDef.header,
|
||||
header.getContext(),
|
||||
)}
|
||||
</th>
|
||||
))}
|
||||
</tr>
|
||||
))}
|
||||
</thead>
|
||||
<tbody>
|
||||
{table.getRowModel().rows?.length ? (
|
||||
table.getRowModel().rows.map((row) => (
|
||||
<tr
|
||||
key={row.id}
|
||||
className="border-b transition-colors hover:bg-muted/50"
|
||||
>
|
||||
{row.getVisibleCells().map((cell) => (
|
||||
<td key={cell.id} className="px-4 py-3">
|
||||
{flexRender(
|
||||
cell.column.columnDef.cell,
|
||||
cell.getContext(),
|
||||
)}
|
||||
</td>
|
||||
))}
|
||||
</tr>
|
||||
))
|
||||
) : (
|
||||
<tr>
|
||||
<td
|
||||
colSpan={columns.length}
|
||||
className="px-4 py-8 text-center text-muted-foreground"
|
||||
>
|
||||
No plugins found.
|
||||
</td>
|
||||
</tr>
|
||||
)}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="flex items-center justify-between text-sm text-muted-foreground">
|
||||
<div>
|
||||
Showing {table.getRowModel().rows.length} of {communityPlugins.length}{" "}
|
||||
plugins
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -3,25 +3,12 @@ title: Community Plugins
|
||||
description: A list of recommended community plugins.
|
||||
---
|
||||
|
||||
import { CommunityPluginsTable } from "@/components/community-plugins-table";
|
||||
|
||||
This page showcases a list of recommended community made plugins.
|
||||
|
||||
We encourage you to create custom plugins and maybe get added to the list!
|
||||
|
||||
To create your own custom plugin, get started by reading our [plugins documentation](/docs/concepts/plugins). And if you want to share your plugin with the community, please open a pull request to add it to this list.
|
||||
|
||||
| <div className="w-[200px]">Plugin</div> | Description | <div className="w-[150px]">Author</div> |
|
||||
| ----------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| [@dymo-api/better-auth](https://github.com/TPEOficial/dymo-api-better-auth) | Sign Up Protection and validation of disposable emails (the world's largest database with nearly 14 million entries). | <img src="https://github.com/TPEOficial.png" className="rounded-full w-6 h-6 border opacity-70 m-0 inline mr-1" /> [TPEOficial](https://github.com/TPEOficial) |
|
||||
| [better-auth-harmony](https://github.com/gekorm/better-auth-harmony/) | Email & phone normalization and additional validation, blocking over 55,000 temporary email domains. | <img src="https://github.com/GeKorm.png" className="rounded-full w-6 h-6 border opacity-70 m-0 inline mr-1" /> [GeKorm](https://github.com/GeKorm) |
|
||||
| [validation-better-auth](https://github.com/Daanish2003/validation-better-auth) | Validate API request using any validation library (e.g., Zod, Yup) | <img src="https://github.com/Daanish2003.png" className="rounded-full w-6 h-6 border opacity-70 m-0 inline mr-1" /> [Daanish2003](https://github.com/Daanish2003) |
|
||||
| [better-auth-localization](https://github.com/marcellosso/better-auth-localization) | Localize and customize better-auth messages with easy translation and message override support. | <img src="https://github.com/marcellosso.png" className="rounded-full w-6 h-6 border opacity-70 m-0 inline mr-1" /> [marcellosso](https://github.com/marcellosso) |
|
||||
| [better-auth-attio-plugin](https://github.com/tobimori/better-auth-attio-plugin) | Sync your products Better Auth users & workspaces with Attio | <img src="https://github.com/tobimori.png" className="rounded-full w-6 h-6 border opacity-70 m-0 inline mr-1" /> [tobimori](https://github.com/tobimori) |
|
||||
| [better-auth-cloudflare](https://github.com/zpg6/better-auth-cloudflare) | Seamlessly integrate with Cloudflare Workers, D1, Hyperdrive, KV, R2, and geolocation services. Includes CLI for project generation, automated resource provisioning on Cloudflare, and database migrations. Supports Next.js, Hono, and more! | <img src="https://github.com/zpg6.png" className="rounded-full w-6 h-6 border opacity-70 m-0 inline mr-1" /> [zpg6](https://github.com/zpg6) |
|
||||
| [expo-better-auth-passkey](https://github.com/kevcube/expo-better-auth-passkey) | Better-auth client plugin for using passkeys on mobile platforms in expo apps. Supports iOS, macOS, Android (and web!) by wrapping the existing better-auth passkey client plugin. | <img src="https://github.com/kevcube.png" className="rounded-full w-6 h-6 border opacity-70 m-0 inline mr-1" /> [kevcube](https://github.com/kevcube) |
|
||||
| [better-auth-credentials-plugin](https://github.com/erickweil/better-auth-credentials-plugin) | LDAP authentication plugin for Better Auth. | <img src="https://github.com/erickweil.png" className="rounded-full w-6 h-6 border opacity-70 m-0 inline mr-1" /> [erickweil](https://github.com/erickweil) |
|
||||
| [better-auth-opaque](https://github.com/TheUntraceable/better-auth-opaque) | Provides database-breach resistant authentication using the zero-knowledge OPAQUE protocol. | <img src="https://github.com/theuntraceable.png" className="rounded-full w-6 h-6 border opacity-70 m-0 inline mr-1" /> [TheUntraceable](https://github.com/TheUntraceable) |
|
||||
| [better-auth-firebase-auth](https://github.com/yultyyev/better-auth-firebase-auth) | Firebase Authentication plugin for Better Auth with built-in email service, Google Sign-In, and password reset functionality. | <img src="https://github.com/yultyyev.png" className="rounded-full w-6 h-6 border opacity-70 m-0 inline mr-1" /> [yultyyev](https://github.com/yultyyev) |
|
||||
| [better-auth-university](https://github.com/LuyxLLC/better-auth-university) | University plugin for allowing only specific email domains to be passed through. Includes a University model with name and domain. | <img src="https://github.com/Fyrlex.png" className="rounded-full w-6 h-6 border opacity-70 m-0 inline mr-1" /> [Fyrlex](https://github.com/Fyrlex) |
|
||||
| [@alexasomba/better-auth-paystack](https://github.com/alexasomba/better-auth-paystack) | Paystack plugin for Better Auth — integrates Paystack transactions, webhooks, and subscription flows. | <img src="https://github.com/alexasomba.png" className="rounded-full w-6 h-6 border opacity-70 m-0 inline mr-1" /> [alexasomba](https://github.com/alexasomba) |
|
||||
| [better-auth-lark](https://github.com/uselark/better-auth-lark) | [Lark billing](https://docs.uselark.ai/) plugin that automatically creates customers and subscribes them to free plans on signup.| <img src="https://github.com/vijit-lark.png" className="rounded-full w-6 h-6 border opacity-70 m-0 inline mr-1" /> [Vijit](https://github.com/vijit-lark) |
|
||||
| [stargate-better-auth](https://github.com/neiii/stargate-better-auth) | Gate access to resources based on whether the user has starred a repository | <img src="https://github.com/neiii.png" className="rounded-full w-6 h-6 border opacity-70 m-0 inline mr-1" /> [neiii](https://github.com/neiii) |
|
||||
<CommunityPluginsTable />
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
"@radix-ui/react-toggle-group": "^1.1.11",
|
||||
"@radix-ui/react-tooltip": "^1.2.8",
|
||||
"@scalar/nextjs-api-reference": "^0.8.17",
|
||||
"@tanstack/react-table": "^8.21.3",
|
||||
"@vercel/analytics": "^1.5.0",
|
||||
"@vercel/og": "^0.8.5",
|
||||
"ai": "^5.0.64",
|
||||
|
||||
38
pnpm-lock.yaml
generated
38
pnpm-lock.yaml
generated
@@ -401,7 +401,7 @@ importers:
|
||||
version: 12.23.12(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
||||
geist:
|
||||
specifier: ^1.4.2
|
||||
version: 1.4.2(next@16.0.10(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.90.0))
|
||||
version: 1.4.2(next@16.0.10(@babel/core@7.28.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.90.0))
|
||||
input-otp:
|
||||
specifier: ^1.4.2
|
||||
version: 1.4.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
||||
@@ -513,7 +513,7 @@ importers:
|
||||
version: 2.1.1
|
||||
geist:
|
||||
specifier: ^1.4.2
|
||||
version: 1.4.2(next@16.0.10(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.90.0))
|
||||
version: 1.4.2(next@16.0.10(@babel/core@7.28.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.90.0))
|
||||
lucide-react:
|
||||
specifier: ^0.542.0
|
||||
version: 0.542.0(react@19.2.3)
|
||||
@@ -702,6 +702,9 @@ importers:
|
||||
'@scalar/nextjs-api-reference':
|
||||
specifier: ^0.8.17
|
||||
version: 0.8.17(next@16.0.10(@babel/core@7.28.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.90.0))(react@19.2.3)
|
||||
'@tanstack/react-table':
|
||||
specifier: ^8.21.3
|
||||
version: 8.21.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
||||
'@vercel/analytics':
|
||||
specifier: ^1.5.0
|
||||
version: 1.5.0(@remix-run/react@2.17.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@sveltejs/kit@2.37.1(@opentelemetry/api@1.9.0)(@sveltejs/vite-plugin-svelte@6.1.3(svelte@5.38.2)(vite@7.2.6(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.2)))(svelte@5.38.2)(vite@7.2.6(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.1)(lightningcss@1.30.2)(sass@1.90.0)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.2)))(next@16.0.10(@babel/core@7.28.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.90.0))(react@19.2.3)(svelte@5.38.2)(vue-router@4.5.1(vue@3.5.19(typescript@5.9.3)))(vue@3.5.19(typescript@5.9.3))
|
||||
@@ -755,7 +758,7 @@ importers:
|
||||
version: 15.8.3(@oramacloud/client@2.1.4)(@tanstack/react-router@1.139.7(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(algoliasearch@5.36.0)(lucide-react@0.542.0(react@19.2.3))(next@16.0.10(@babel/core@7.28.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.90.0))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(tailwindcss@4.1.18)
|
||||
geist:
|
||||
specifier: ^1.4.2
|
||||
version: 1.4.2(next@16.0.10(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.90.0))
|
||||
version: 1.4.2(next@16.0.10(@babel/core@7.28.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.90.0))
|
||||
gray-matter:
|
||||
specifier: ^4.0.3
|
||||
version: 4.0.3
|
||||
@@ -6530,6 +6533,13 @@ packages:
|
||||
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||
|
||||
'@tanstack/react-table@8.21.3':
|
||||
resolution: {integrity: sha512-5nNMTSETP4ykGegmVkhjcS8tTLW6Vl4axfEGQN3v0zdHYbK4UfoqfPChclTrJ4EoK9QynqAu9oUf8VEmrpZ5Ww==}
|
||||
engines: {node: '>=12'}
|
||||
peerDependencies:
|
||||
react: '>=16.8'
|
||||
react-dom: '>=16.8'
|
||||
|
||||
'@tanstack/router-core@1.139.7':
|
||||
resolution: {integrity: sha512-mqgsJi4/B2Jo6PXRUs1AsWA+06nqiqVZe1aXioA3vR6PesNeKUSXWfmIoYF6wOx3osiV0BnwB1JCBrInCOQSWA==}
|
||||
engines: {node: '>=12'}
|
||||
@@ -6592,6 +6602,10 @@ packages:
|
||||
'@tanstack/store@0.8.0':
|
||||
resolution: {integrity: sha512-Om+BO0YfMZe//X2z0uLF2j+75nQga6TpTJgLJQBiq85aOyZNIhkCgleNcud2KQg4k4v9Y9l+Uhru3qWMPGTOzQ==}
|
||||
|
||||
'@tanstack/table-core@8.21.3':
|
||||
resolution: {integrity: sha512-ldZXEhOBb8Is7xLs01fR3YEc3DERiz5silj8tnGkFZytt1abEvl/GhUmCE0PMLaMPTa3Jk4HbKmRlHmu+gCftg==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
'@tanstack/virtual-file-routes@1.139.0':
|
||||
resolution: {integrity: sha512-9PImF1d1tovTUIpjFVa0W7Fwj/MHif7BaaczgJJfbv3sDt1Gh+oW9W9uCw9M3ndEJynnp5ZD/TTs0RGubH5ssg==}
|
||||
engines: {node: '>=12'}
|
||||
@@ -16655,7 +16669,7 @@ snapshots:
|
||||
postcss: 8.4.49
|
||||
resolve-from: 5.0.0
|
||||
optionalDependencies:
|
||||
expo: 54.0.21(@babel/core@7.28.4)(@expo/metro-runtime@6.1.2)(@modelcontextprotocol/sdk@1.25.1(hono@4.10.2)(zod@4.1.13))(expo-router@6.0.14)(graphql@16.12.0)(react-native@0.80.2(@babel/core@7.28.4)(@react-native-community/cli@20.0.1(typescript@5.9.3))(@types/react@19.2.2)(react@19.2.3))(react@19.2.3)
|
||||
expo: 54.0.21(@babel/core@7.28.4)(@expo/metro-runtime@6.1.2)(@modelcontextprotocol/sdk@1.25.1(hono@4.10.2)(zod@3.25.76))(expo-router@6.0.14)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.4)(@react-native-community/cli@20.0.1(typescript@5.9.3))(@react-native/metro-config@0.81.0(@babel/core@7.28.4))(@types/react@19.2.2)(react@19.2.3))(react@19.2.3)
|
||||
transitivePeerDependencies:
|
||||
- bufferutil
|
||||
- supports-color
|
||||
@@ -16740,7 +16754,7 @@ snapshots:
|
||||
'@expo/json-file': 10.0.7
|
||||
'@react-native/normalize-colors': 0.81.5
|
||||
debug: 4.4.3
|
||||
expo: 54.0.21(@babel/core@7.28.4)(@expo/metro-runtime@6.1.2)(@modelcontextprotocol/sdk@1.25.1(hono@4.10.2)(zod@4.1.13))(expo-router@6.0.14)(graphql@16.12.0)(react-native@0.80.2(@babel/core@7.28.4)(@react-native-community/cli@20.0.1(typescript@5.9.3))(@types/react@19.2.2)(react@19.2.3))(react@19.2.3)
|
||||
expo: 54.0.21(@babel/core@7.28.4)(@expo/metro-runtime@6.1.2)(@modelcontextprotocol/sdk@1.25.1(hono@4.10.2)(zod@3.25.76))(expo-router@6.0.14)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.4)(@react-native-community/cli@20.0.1(typescript@5.9.3))(@react-native/metro-config@0.81.0(@babel/core@7.28.4))(@types/react@19.2.2)(react@19.2.3))(react@19.2.3)
|
||||
resolve-from: 5.0.0
|
||||
semver: 7.7.3
|
||||
xml2js: 0.6.0
|
||||
@@ -19999,6 +20013,12 @@ snapshots:
|
||||
react-dom: 19.2.3(react@19.2.3)
|
||||
use-sync-external-store: 1.6.0(react@19.2.3)
|
||||
|
||||
'@tanstack/react-table@8.21.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
|
||||
dependencies:
|
||||
'@tanstack/table-core': 8.21.3
|
||||
react: 19.2.3
|
||||
react-dom: 19.2.3(react@19.2.3)
|
||||
|
||||
'@tanstack/router-core@1.139.7':
|
||||
dependencies:
|
||||
'@tanstack/history': 1.139.0
|
||||
@@ -20147,6 +20167,8 @@ snapshots:
|
||||
|
||||
'@tanstack/store@0.8.0': {}
|
||||
|
||||
'@tanstack/table-core@8.21.3': {}
|
||||
|
||||
'@tanstack/virtual-file-routes@1.139.0': {}
|
||||
|
||||
'@ts-morph/common@0.27.0':
|
||||
@@ -21073,7 +21095,7 @@ snapshots:
|
||||
resolve-from: 5.0.0
|
||||
optionalDependencies:
|
||||
'@babel/runtime': 7.28.4
|
||||
expo: 54.0.21(@babel/core@7.28.4)(@expo/metro-runtime@6.1.2)(@modelcontextprotocol/sdk@1.25.1(hono@4.10.2)(zod@4.1.13))(expo-router@6.0.14)(graphql@16.12.0)(react-native@0.80.2(@babel/core@7.28.4)(@react-native-community/cli@20.0.1(typescript@5.9.3))(@types/react@19.2.2)(react@19.2.3))(react@19.2.3)
|
||||
expo: 54.0.21(@babel/core@7.28.4)(@expo/metro-runtime@6.1.2)(@modelcontextprotocol/sdk@1.25.1(hono@4.10.2)(zod@3.25.76))(expo-router@6.0.14)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.4)(@react-native-community/cli@20.0.1(typescript@5.9.3))(@react-native/metro-config@0.81.0(@babel/core@7.28.4))(@types/react@19.2.2)(react@19.2.3))(react@19.2.3)
|
||||
transitivePeerDependencies:
|
||||
- '@babel/core'
|
||||
- supports-color
|
||||
@@ -22709,7 +22731,7 @@ snapshots:
|
||||
|
||||
expo-keep-awake@15.0.7(expo@54.0.21)(react@19.2.3):
|
||||
dependencies:
|
||||
expo: 54.0.21(@babel/core@7.28.4)(@expo/metro-runtime@6.1.2)(@modelcontextprotocol/sdk@1.25.1(hono@4.10.2)(zod@4.1.13))(expo-router@6.0.14)(graphql@16.12.0)(react-native@0.80.2(@babel/core@7.28.4)(@react-native-community/cli@20.0.1(typescript@5.9.3))(@types/react@19.2.2)(react@19.2.3))(react@19.2.3)
|
||||
expo: 54.0.21(@babel/core@7.28.4)(@expo/metro-runtime@6.1.2)(@modelcontextprotocol/sdk@1.25.1(hono@4.10.2)(zod@3.25.76))(expo-router@6.0.14)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.4)(@react-native-community/cli@20.0.1(typescript@5.9.3))(@react-native/metro-config@0.81.0(@babel/core@7.28.4))(@types/react@19.2.2)(react@19.2.3))(react@19.2.3)
|
||||
react: 19.2.3
|
||||
|
||||
expo-linking@7.1.7(expo@54.0.21)(react-native@0.80.2(@babel/core@7.28.4)(@react-native-community/cli@20.0.1(typescript@5.9.3))(@types/react@19.2.2)(react@19.2.3))(react@19.2.3):
|
||||
@@ -23401,7 +23423,7 @@ snapshots:
|
||||
|
||||
function-bind@1.1.2: {}
|
||||
|
||||
geist@1.4.2(next@16.0.10(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.90.0)):
|
||||
geist@1.4.2(next@16.0.10(@babel/core@7.28.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.90.0)):
|
||||
dependencies:
|
||||
next: 16.0.10(@babel/core@7.28.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.90.0)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user