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:
Alex Yang
2025-12-24 23:38:15 +08:00
committed by GitHub
parent d5a88df986
commit cd5cdf4168
5 changed files with 400 additions and 25 deletions

View File

@@ -3,4 +3,18 @@ Oskar
Gmerek
Lluis
Agusti
Vijit
Vijit
TPEOficial
GeKorm
Daanish2003
marcellosso
tobimori
zpg6
kevcube
erickweil
TheUntraceable
yultyyev
Fyrlex
alexasomba
Vijit
neiii

View 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>
);
}

View File

@@ -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 />

View File

@@ -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
View File

@@ -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)