mirror of
https://github.com/stack-auth/stack.git
synced 2026-06-04 21:04:37 +08:00
## Summary - Adds the generated `@stackframe/tanstack-start` workspace package registration. - Adds TanStack Start platform macros/dependencies to the SDK template and generator. - Adds TanStack Start cookie/token-store support plus the handler SSR guard needed by Start. ## Scope This intentionally excludes Dashboard V2 routes, hooks, components, app shell logic, and dashboard API type additions. Those stay in the existing dashboard PR/branch. ## Validation - `pnpm install --lockfile-only --ignore-scripts` - `pnpm install --ignore-scripts` - `pnpm -C packages/template lint src/components-page/stack-handler-client.tsx src/lib/cookie.ts src/lib/stack-app/apps/implementations/client-app-impl.ts` Package typecheck was attempted with `pnpm -C packages/template typecheck`, but the clean worktree lacks generated package declaration outputs for workspace dependencies such as `@stackframe/stack-shared` and `@stackframe/stack-ui`. Per repo instructions, package builds/codegen are not run by agents. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * TanStack Start integration: published SDK package, example demo app, dashboard onboarding flow, framework-aware CTAs/docs, and a TanStack-specific provider for client-only auth routes. * Improved client/server auth: safer runtime guards and consistent cookie/token-store behavior across SSR and client. * **Documentation** * New Integrations guide and expanded getting-started/setup docs with TanStack Start examples and env/key guidance. * **Chores** * Template, build, tooling, and demo config updates to support the new platform. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
166 lines
4.0 KiB
TypeScript
166 lines
4.0 KiB
TypeScript
type AppTag = {
|
|
displayName: string,
|
|
};
|
|
|
|
export const ALL_APP_TAGS = {
|
|
"expert": {
|
|
displayName: "Expert",
|
|
},
|
|
"integration": {
|
|
displayName: "Integrations",
|
|
},
|
|
"auth": {
|
|
displayName: "Authentication",
|
|
},
|
|
"developers": {
|
|
displayName: "For Developers",
|
|
},
|
|
"security": {
|
|
displayName: "Security",
|
|
},
|
|
"operations": {
|
|
displayName: "For Operations",
|
|
},
|
|
"gtm": {
|
|
displayName: "Go-to-market",
|
|
},
|
|
"comms": {
|
|
displayName: "Communications",
|
|
},
|
|
"automation": {
|
|
displayName: "Automation",
|
|
},
|
|
"storage": {
|
|
displayName: "Storage & Databases",
|
|
},
|
|
"various": {
|
|
displayName: "Various",
|
|
},
|
|
} as const satisfies Record<string, AppTag>;
|
|
|
|
type App = {
|
|
displayName: string,
|
|
subtitle: string,
|
|
tags: (keyof typeof ALL_APP_TAGS)[],
|
|
stage: "alpha" | "beta" | "stable",
|
|
};
|
|
|
|
export type AppId = keyof typeof ALL_APPS;
|
|
|
|
export const ALL_APPS = {
|
|
"authentication": {
|
|
displayName: "Authentication",
|
|
subtitle: "User sign-in and account management",
|
|
tags: ["auth", "security"],
|
|
stage: "stable",
|
|
},
|
|
"fraud-protection": {
|
|
displayName: "Fraud Protection",
|
|
subtitle: "Protect your project from fraud and abuse",
|
|
tags: ["auth", "security"],
|
|
stage: "stable",
|
|
},
|
|
"onboarding": {
|
|
displayName: "Onboarding",
|
|
subtitle: "Configure user onboarding requirements",
|
|
tags: ["auth"],
|
|
stage: "alpha",
|
|
},
|
|
"teams": {
|
|
displayName: "Teams",
|
|
subtitle: "Team collaboration and management",
|
|
tags: ["auth", "security"],
|
|
stage: "stable",
|
|
},
|
|
"rbac": {
|
|
displayName: "RBAC",
|
|
subtitle: "Role-based access control and permissions",
|
|
tags: ["auth", "security"],
|
|
stage: "stable",
|
|
},
|
|
"api-keys": {
|
|
displayName: "API Keys",
|
|
subtitle: "API key generation and management",
|
|
tags: ["auth", "security", "developers"],
|
|
stage: "stable",
|
|
},
|
|
"payments": {
|
|
displayName: "Payments",
|
|
subtitle: "Payment processing and subscription management",
|
|
tags: ["operations", "gtm"],
|
|
stage: "beta",
|
|
},
|
|
"emails": {
|
|
displayName: "Emails",
|
|
subtitle: "Email template configuration and management",
|
|
tags: ["comms"],
|
|
stage: "stable",
|
|
},
|
|
"email-api": {
|
|
displayName: "Email API",
|
|
subtitle: "Programmatic email sending and delivery",
|
|
tags: ["comms", "developers", "expert"],
|
|
stage: "alpha",
|
|
},
|
|
"data-vault": {
|
|
displayName: "Data Vault",
|
|
subtitle: "Secure storage for sensitive user data",
|
|
tags: ["security", "storage"],
|
|
stage: "beta",
|
|
},
|
|
"webhooks": {
|
|
displayName: "Webhooks",
|
|
subtitle: "Real-time event notifications and integrations",
|
|
tags: ["developers"],
|
|
stage: "stable",
|
|
},
|
|
"tv-mode": {
|
|
displayName: "TV mode",
|
|
subtitle: "Dashboard display for large screens",
|
|
tags: ["various"],
|
|
stage: "alpha",
|
|
},
|
|
"launch-checklist": {
|
|
displayName: "Launch Checklist",
|
|
subtitle: "Pre-launch verification and readiness checks",
|
|
tags: ["various"],
|
|
stage: "stable",
|
|
},
|
|
"catalyst": {
|
|
displayName: "Catalyst",
|
|
subtitle: "Project scaffolding and rapid development",
|
|
tags: ["various"],
|
|
stage: "alpha",
|
|
},
|
|
"neon": {
|
|
displayName: "Neon Integration",
|
|
subtitle: "Serverless Postgres database integration",
|
|
tags: ["integration", "storage"],
|
|
stage: "alpha",
|
|
},
|
|
"convex": {
|
|
displayName: "Convex Integration",
|
|
subtitle: "Real-time backend platform integration",
|
|
tags: ["integration", "storage"],
|
|
stage: "alpha",
|
|
},
|
|
"vercel": {
|
|
displayName: "Vercel Integration",
|
|
subtitle: "Deploy your Stack Auth project to Vercel",
|
|
tags: ["integration", "developers"],
|
|
stage: "stable",
|
|
},
|
|
"tanstack-start": {
|
|
displayName: "TanStack Start",
|
|
subtitle: "Use Stack Auth in TanStack Start apps",
|
|
tags: ["integration", "developers"],
|
|
stage: "alpha",
|
|
},
|
|
"analytics": {
|
|
displayName: "Analytics",
|
|
subtitle: "View and explore analytics data",
|
|
tags: ["developers", "operations"],
|
|
stage: "beta",
|
|
},
|
|
} as const satisfies Record<string, App>;
|