@better-t-stack/types 3.44.3 → 3.46.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/schemas.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import { $ as TuiTemplateSchema, A as FumadocsTemplateSchema, B as PackageManagerSchema, C as EXAMPLES_VALUES, D as FumadocsAiChatSchema, E as FrontendSchema, F as NeonSetupMethodSchema, G as RuntimeSchema, H as ProjectConfigSchema, I as ORMSchema, J as SkillSelectionSchema, K as SERVER_DEPLOY_VALUES, L as ORM_VALUES, M as InstallScopeSchema, N as McpAgentSchema, O as FumadocsOgImageSchema, P as McpServerSchema, Q as TemplateSchema, R as PACKAGE_MANAGER_VALUES, S as DirectoryConflictSchema, T as FRONTEND_VALUES, U as ProjectNameSchema, V as PaymentsSchema, W as RUNTIME_VALUES, X as SkillsSourceSchema, Y as SkillsAgentSchema, Z as TEMPLATE_VALUES, _ as DIRECTORY_CONFLICT_VALUES, a as AddInputSchema, at as WebDeploySchema, b as DbSetupModeSchema, c as AuthSchema, d as BetterTStackConfigFileSchema, et as UltraciteAgentSchema, f as BetterTStackConfigSchema, g as DATABASE_VALUES, h as DATABASE_SETUP_VALUES, i as AUTH_VALUES, it as WEB_DEPLOY_VALUES, j as InitResultSchema, k as FumadocsSearchSchema, l as BACKEND_VALUES, m as CreateInputSchema, n as APISchema, nt as UltraciteHookSchema, o as AddonOptionsSchema, ot as WorkspacePackageNameSchema, p as CLIInputSchema, q as ServerDeploySchema, r as API_VALUES, rt as UltraciteLinterSchema, s as AddonsSchema, st as WxtTemplateSchema, t as ADDONS_VALUES, tt as UltraciteEditorSchema, u as BackendSchema, v as DatabaseSchema, w as ExamplesSchema, x as DbSetupOptionsSchema, y as DatabaseSetupSchema, z as PAYMENTS_VALUES } from "./schemas-BkLhmeWW.mjs";
1
+ import { $ as TuiTemplateSchema, A as FumadocsTemplateSchema, B as PackageManagerSchema, C as EXAMPLES_VALUES, D as FumadocsAiChatSchema, E as FrontendSchema, F as NeonSetupMethodSchema, G as RuntimeSchema, H as ProjectConfigSchema, I as ORMSchema, J as SkillSelectionSchema, K as SERVER_DEPLOY_VALUES, L as ORM_VALUES, M as InstallScopeSchema, N as McpAgentSchema, O as FumadocsOgImageSchema, P as McpServerSchema, Q as TemplateSchema, R as PACKAGE_MANAGER_VALUES, S as DirectoryConflictSchema, T as FRONTEND_VALUES, U as ProjectNameSchema, V as PaymentsSchema, W as RUNTIME_VALUES, X as SkillsSourceSchema, Y as SkillsAgentSchema, Z as TEMPLATE_VALUES, _ as DIRECTORY_CONFLICT_VALUES, a as AddInputSchema, at as WebDeploySchema, b as DbSetupModeSchema, c as AuthSchema, d as BetterTStackConfigFileSchema, et as UltraciteAgentSchema, f as BetterTStackConfigSchema, g as DATABASE_VALUES, h as DATABASE_SETUP_VALUES, i as AUTH_VALUES, it as WEB_DEPLOY_VALUES, j as InitResultSchema, k as FumadocsSearchSchema, l as BACKEND_VALUES, m as CreateInputSchema, n as APISchema, nt as UltraciteHookSchema, o as AddonOptionsSchema, ot as WorkspacePackageNameSchema, p as CLIInputSchema, q as ServerDeploySchema, r as API_VALUES, rt as UltraciteLinterSchema, s as AddonsSchema, st as WxtTemplateSchema, t as ADDONS_VALUES, tt as UltraciteEditorSchema, u as BackendSchema, v as DatabaseSchema, w as ExamplesSchema, x as DbSetupOptionsSchema, y as DatabaseSetupSchema, z as PAYMENTS_VALUES } from "./schemas-C83ktyIC.mjs";
2
2
  export { ADDONS_VALUES, APISchema, API_VALUES, AUTH_VALUES, AddInputSchema, AddonOptionsSchema, AddonsSchema, AuthSchema, BACKEND_VALUES, BackendSchema, BetterTStackConfigFileSchema, BetterTStackConfigSchema, CLIInputSchema, CreateInputSchema, DATABASE_SETUP_VALUES, DATABASE_VALUES, DIRECTORY_CONFLICT_VALUES, DatabaseSchema, DatabaseSetupSchema, DbSetupModeSchema, DbSetupOptionsSchema, DirectoryConflictSchema, EXAMPLES_VALUES, ExamplesSchema, FRONTEND_VALUES, FrontendSchema, FumadocsAiChatSchema, FumadocsOgImageSchema, FumadocsSearchSchema, FumadocsTemplateSchema, InitResultSchema, InstallScopeSchema, McpAgentSchema, McpServerSchema, NeonSetupMethodSchema, ORMSchema, ORM_VALUES, PACKAGE_MANAGER_VALUES, PAYMENTS_VALUES, PackageManagerSchema, PaymentsSchema, ProjectConfigSchema, ProjectNameSchema, RUNTIME_VALUES, RuntimeSchema, SERVER_DEPLOY_VALUES, ServerDeploySchema, SkillSelectionSchema, SkillsAgentSchema, SkillsSourceSchema, TEMPLATE_VALUES, TemplateSchema, TuiTemplateSchema, UltraciteAgentSchema, UltraciteEditorSchema, UltraciteHookSchema, UltraciteLinterSchema, WEB_DEPLOY_VALUES, WebDeploySchema, WorkspacePackageNameSchema, WxtTemplateSchema };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@better-t-stack/types",
3
- "version": "3.44.3",
3
+ "version": "3.46.0",
4
4
  "description": "TypeScript types and schemas for create-better-t-stack CLI",
5
5
  "keywords": [
6
6
  "better-t-stack",
@@ -1 +0,0 @@
1
- {"version":3,"file":"schemas-BkLhmeWW.mjs","names":["incompatibleFrontends"],"sources":["../src/constants.ts","../src/compatibility.ts","../src/schemas.ts"],"sourcesContent":["import type { DesktopWebFrontend, WebFrontend } from \"./types\";\n\nexport const webFrontends = [\n \"tanstack-router\",\n \"react-router\",\n \"tanstack-start\",\n \"next\",\n \"nuxt\",\n \"svelte\",\n \"solid\",\n \"astro\",\n] as const satisfies readonly Exclude<WebFrontend, \"none\">[];\n\nexport const desktopWebFrontends = [\n \"tanstack-router\",\n \"react-router\",\n \"tanstack-start\",\n \"next\",\n \"nuxt\",\n \"svelte\",\n \"astro\",\n] as const satisfies readonly DesktopWebFrontend[];\n","import { desktopWebFrontends } from \"./constants\";\nimport type {\n Addons,\n API,\n Auth,\n Payments,\n WebDeploy,\n ServerDeploy,\n Backend,\n Database,\n DatabaseSetup,\n Frontend,\n ORM,\n ProjectConfig,\n Runtime,\n} from \"./types\";\n\nexport const TASK_RUNNER_ADDONS: readonly Addons[] = [\"turborepo\", \"nx\", \"vite-plus\"];\nexport const OBSERVABILITY_ADDONS: readonly Addons[] = [\"evlog\", \"axiom\"];\nexport const STATIC_DESKTOP_ADDONS: readonly Addons[] = [\"tauri\", \"electrobun\"];\nconst TAURI_STATIC_EXPORT_FRONTENDS: readonly Frontend[] = [\"next\", \"tanstack-start\"];\n\nexport const CONVEX_BETTER_AUTH_INCOMPATIBLE_FRONTENDS = [\n \"nuxt\",\n \"svelte\",\n \"solid\",\n \"astro\",\n] as const;\n\nexport const CONVEX_BETTER_AUTH_SUPPORTED_FRONTENDS = [\n \"tanstack-router\",\n \"react-router\",\n \"tanstack-start\",\n \"next\",\n \"native-bare\",\n \"native-uniwind\",\n \"native-unistyles\",\n] as const;\n\n// Frontends that support backend=\"self\" (fullstack mode with built-in server routes)\nexport const FULLSTACK_FRONTENDS = [\n \"next\",\n \"tanstack-start\",\n \"nuxt\",\n \"svelte\",\n \"solid\",\n \"astro\",\n] as const satisfies readonly Frontend[];\n\nexport type FullstackFrontend = (typeof FULLSTACK_FRONTENDS)[number];\n\nexport const SERVER_BACKENDS: readonly Backend[] = [\"hono\", \"express\", \"fastify\", \"elysia\"];\nconst EVLOG_FULLSTACK_FRONTENDS: readonly Frontend[] = [\n \"next\",\n \"tanstack-start\",\n \"nuxt\",\n \"svelte\",\n \"astro\",\n];\n\nexport const CLERK_INCOMPATIBLE_FRONTENDS = CONVEX_BETTER_AUTH_INCOMPATIBLE_FRONTENDS;\nexport const CLERK_SUPPORTED_FRONTENDS = CONVEX_BETTER_AUTH_SUPPORTED_FRONTENDS;\nexport const TRPC_INCOMPATIBLE_FRONTENDS = [\"nuxt\", \"svelte\", \"solid\", \"astro\"] as const;\nexport const CONVEX_INCOMPATIBLE_FRONTENDS = [\"solid\", \"astro\"] as const;\nexport const AI_INCOMPATIBLE_FRONTENDS = [\"solid\", \"astro\"] as const;\nexport const CONVEX_AI_INCOMPATIBLE_FRONTENDS = [\"solid\", \"astro\", \"svelte\", \"nuxt\"] as const;\nexport const DESKTOP_STATIC_EXPORT_FRONTENDS: readonly Frontend[] = [\n \"next\",\n \"svelte\",\n \"astro\",\n \"react-router\",\n];\nconst evlogCompatibilityMessage =\n \"The observability addons support Hono, Express, Fastify, Elysia, or backend self with Next.js, TanStack Start, Nuxt, SvelteKit, or Astro. Convex and backend none are not supported yet.\";\n\nexport const ADDON_COMPATIBILITY = {\n pwa: [\"tanstack-router\", \"react-router\", \"solid\", \"next\"],\n tauri: desktopWebFrontends,\n electrobun: desktopWebFrontends,\n biome: [],\n husky: [],\n lefthook: [],\n turborepo: [],\n nx: [],\n \"vite-plus\": [],\n starlight: [],\n ultracite: [],\n mcp: [],\n oxlint: [],\n fumadocs: [],\n opentui: [],\n wxt: [],\n skills: [],\n evlog: [],\n axiom: [],\n none: [],\n} as const;\n\nexport function supportsEvlogAddon(\n frontend: readonly Frontend[] = [],\n backend?: Backend,\n _runtime?: Runtime,\n) {\n if (!backend) return true;\n\n if (SERVER_BACKENDS.some((value) => value === backend)) {\n return true;\n }\n\n if (backend === \"self\") {\n if (frontend.length === 0) return true;\n return frontend.some((f) => EVLOG_FULLSTACK_FRONTENDS.some((value) => value === f));\n }\n\n return false;\n}\n\nexport function isFrontendAllowedWithBackend(frontend: Frontend, backend?: Backend, auth?: Auth) {\n if (backend === \"convex\") {\n if (\n auth === \"better-auth\" &&\n CONVEX_BETTER_AUTH_INCOMPATIBLE_FRONTENDS.some((value) => value === frontend)\n ) {\n return false;\n }\n\n if (CONVEX_INCOMPATIBLE_FRONTENDS.some((value) => value === frontend)) return false;\n }\n\n if (auth === \"clerk\") {\n const incompatibleFrontends = CLERK_INCOMPATIBLE_FRONTENDS;\n if (incompatibleFrontends.some((value) => value === frontend)) return false;\n }\n\n return true;\n}\n\nexport function supportsConvexBetterAuth(frontends: readonly Frontend[] = []) {\n return frontends.some((frontend) =>\n CONVEX_BETTER_AUTH_SUPPORTED_FRONTENDS.some((value) => value === frontend),\n );\n}\n\nexport function allowedApisForFrontends(frontends: readonly Frontend[] = []): API[] {\n return frontends.some((frontend) =>\n TRPC_INCOMPATIBLE_FRONTENDS.some((value) => value === frontend),\n )\n ? [\"orpc\", \"none\"]\n : [\"trpc\", \"orpc\", \"none\"];\n}\n\nexport function isExampleTodoAllowed(backend?: Backend, database?: Database, api?: API) {\n // Convex handles its own data layer, no need for database or API\n if (backend === \"convex\") return true;\n // Todo requires both database and API to communicate\n if (database === \"none\" || api === \"none\") return false;\n return true;\n}\n\nexport function isExampleAIAllowed(backend?: Backend, frontends: readonly Frontend[] = []) {\n return (\n backend !== \"none\" &&\n !frontends.some(\n (frontend) =>\n AI_INCOMPATIBLE_FRONTENDS.some((value) => value === frontend) ||\n (backend === \"convex\" &&\n CONVEX_AI_INCOMPATIBLE_FRONTENDS.some((value) => value === frontend)),\n )\n );\n}\n\nexport const PRISMA_COMPUTE_WEB_FRONTENDS: readonly Frontend[] = [\n \"tanstack-router\",\n \"next\",\n \"nuxt\",\n \"astro\",\n \"react-router\",\n \"tanstack-start\",\n \"svelte\",\n \"solid\",\n];\n\nexport function supportsPrismaWebDeploy(frontend: readonly Frontend[]): boolean {\n return frontend.some((value) =>\n PRISMA_COMPUTE_WEB_FRONTENDS.some((frontend) => frontend === value),\n );\n}\n\nexport type AddonCompatibility = { isCompatible: true } | { isCompatible: false; reason: string };\n\nexport function validateAddonCompatibility(\n addon: Addons,\n frontend: readonly Frontend[],\n auth?: Auth,\n backend?: Backend,\n runtime?: Runtime,\n): AddonCompatibility {\n if (\n OBSERVABILITY_ADDONS.some((value) => value === addon) &&\n !supportsEvlogAddon(frontend, backend, runtime)\n ) {\n return {\n isCompatible: false,\n reason: evlogCompatibilityMessage,\n };\n }\n\n if (\n STATIC_DESKTOP_ADDONS.some((value) => value === addon) &&\n auth === \"clerk\" &&\n frontend.includes(\"react-router\")\n ) {\n return {\n isCompatible: false,\n reason: `${addon} addon forces React Router into a static export, but Clerk on React Router requires SSR middleware. Remove the addon or use a different auth/frontend.`,\n };\n }\n\n if (backend === \"self\" && STATIC_DESKTOP_ADDONS.some((value) => value === addon)) {\n return {\n isCompatible: false,\n reason: `${addon} addon requires a separate backend or no backend because backend 'self' emits server routes that cannot be bundled as static desktop assets.`,\n };\n }\n\n if (addon === \"tauri\" && isTauriBlockedByConvexBetterAuth(frontend, backend, auth)) {\n return {\n isCompatible: false,\n reason:\n \"tauri addon is not compatible with Convex Better Auth on Next.js or TanStack Start because those templates use server auth bootstrap and cannot be exported as static desktop assets.\",\n };\n }\n\n if (!Object.hasOwn(ADDON_COMPATIBILITY, addon))\n return { isCompatible: false, reason: `Unknown addon: ${addon}` };\n const compatibleFrontends = ADDON_COMPATIBILITY[addon];\n\n if (compatibleFrontends.length > 0) {\n const hasCompatibleFrontend = frontend.some((f) =>\n compatibleFrontends.some((value) => value === f),\n );\n\n if (!hasCompatibleFrontend) {\n const frontendList = compatibleFrontends.join(\", \");\n return {\n isCompatible: false,\n reason: `${addon} addon requires one of these frontends: ${frontendList}`,\n };\n }\n }\n\n return { isCompatible: true };\n}\n\nexport function supportsClerkFrontend(frontends: readonly Frontend[]) {\n return frontends.every(\n (frontend) =>\n frontend === \"none\" || CLERK_SUPPORTED_FRONTENDS.some((value) => value === frontend),\n );\n}\n\nexport function supportsClerkBackend(\n backend: Backend | undefined,\n frontends: readonly Frontend[] = [],\n) {\n if (!backend) return true;\n if (backend === \"self\")\n return (\n frontends.length === 0 ||\n frontends.some((frontend) => frontend === \"next\" || frontend === \"tanstack-start\")\n );\n return backend === \"convex\" || SERVER_BACKENDS.some((value) => value === backend);\n}\n\nexport function isTauriBlockedByConvexBetterAuth(\n frontends: readonly Frontend[],\n backend?: Backend,\n auth?: Auth,\n) {\n return (\n backend === \"convex\" &&\n auth === \"better-auth\" &&\n frontends.some((frontend) => TAURI_STATIC_EXPORT_FRONTENDS.some((value) => value === frontend))\n );\n}\n\nexport function hasCloudflareNextPostgresConflict(config: {\n webDeploy?: WebDeploy;\n frontend?: readonly Frontend[];\n database?: Database;\n orm?: ORM;\n dbSetup?: DatabaseSetup;\n}) {\n return (\n config.webDeploy === \"cloudflare\" &&\n !!config.frontend?.includes(\"next\") &&\n config.database === \"postgres\" &&\n config.orm === \"prisma\" &&\n config.dbSetup !== \"neon\" &&\n config.dbSetup !== \"prisma-postgres\"\n );\n}\n\nexport function getDesktopDeployConflict(\n deploy: WebDeploy | ServerDeploy | undefined,\n addons: readonly Addons[] = [],\n frontends: readonly Frontend[] = [],\n backend?: Backend,\n auth?: Auth,\n) {\n if (deploy !== \"docker\" && deploy !== \"prisma\") return null;\n const selectedDesktopAddons = addons.filter((addon) =>\n STATIC_DESKTOP_ADDONS.some((value) => value === addon),\n );\n const affectedFrontend = frontends.find((frontend) =>\n DESKTOP_STATIC_EXPORT_FRONTENDS.some((value) => value === frontend),\n );\n if (!selectedDesktopAddons.length || !affectedFrontend) return null;\n // Electrobun retains Next.js standalone output for Convex's server auth bootstrap.\n if (\n deploy === \"docker\" &&\n affectedFrontend === \"next\" &&\n !selectedDesktopAddons.includes(\"tauri\") &&\n backend === \"convex\" &&\n auth === \"better-auth\"\n )\n return null;\n return { affectedFrontend, selectedDesktopAddons };\n}\n\nconst ORM_DATABASES = {\n none: [\"none\"],\n drizzle: [\"sqlite\", \"postgres\", \"mysql\"],\n prisma: [\"sqlite\", \"postgres\", \"mysql\", \"mongodb\"],\n mongoose: [\"mongodb\"],\n} as const satisfies Record<ORM, readonly Database[]>;\n\nexport function supportsOrmDatabase(orm: ORM, database: Database) {\n return ORM_DATABASES[orm].some((value) => value === database);\n}\n\nconst DATABASE_SETUP_DATABASES = {\n turso: [\"sqlite\"],\n d1: [\"sqlite\"],\n neon: [\"postgres\"],\n supabase: [\"postgres\"],\n \"prisma-postgres\": [\"postgres\"],\n planetscale: [\"postgres\", \"mysql\"],\n \"mongodb-atlas\": [\"mongodb\"],\n docker: [\"postgres\", \"mysql\", \"mongodb\"],\n} as const satisfies Record<Exclude<DatabaseSetup, \"none\">, readonly Database[]>;\n\nexport function supportsDatabaseSetup(dbSetup: DatabaseSetup, database: Database | undefined) {\n return (\n dbSetup === \"none\" ||\n (!!database && getDatabaseSetupDatabases(dbSetup).some((value) => value === database))\n );\n}\n\nexport function supportsRuntimeBackend(runtime: Runtime | undefined, backend: Backend | undefined) {\n if (!runtime || !backend) return true;\n if (getBackendDisabledOptions(backend).some((key) => key === \"runtime\"))\n return runtime === \"none\";\n return runtime !== \"none\" && (runtime !== \"workers\" || backend === \"hono\");\n}\n\nexport function supportsRuntimeDatabase(\n runtime: Runtime | undefined,\n database: Database | undefined,\n) {\n return runtime !== \"workers\" || database !== \"mongodb\";\n}\n\nexport function supportsDatabaseSetupRuntime(\n dbSetup: DatabaseSetup,\n runtime?: Runtime,\n backend?: Backend,\n) {\n if (dbSetup === \"docker\") return runtime !== \"workers\";\n if (dbSetup === \"d1\") return runtime === \"workers\" || backend === \"self\";\n return true;\n}\n\nexport function supportsServerDeployRuntime(\n deploy: WebDeploy | ServerDeploy | undefined,\n runtime: Runtime | undefined,\n) {\n if (!deploy) return true;\n if (deploy === \"none\") return runtime !== \"workers\";\n if (deploy === \"cloudflare\") return runtime === \"workers\";\n // varlock/auto-load launches the Node-based Varlock CLI, and Vercel's Bun runtime has no Node\n if (deploy === \"vercel\") return runtime === \"node\";\n return runtime === \"bun\" || runtime === \"node\";\n}\n\nexport function supportsPaymentsAuth(payments?: Payments, auth?: Auth) {\n return payments !== \"polar\" || auth === \"better-auth\";\n}\n\nconst BACKEND_DISABLED_OPTIONS = {\n convex: [\"runtime\", \"database\", \"orm\", \"api\", \"dbSetup\", \"serverDeploy\"],\n none: [\"runtime\", \"database\", \"orm\", \"api\", \"auth\", \"payments\", \"dbSetup\", \"serverDeploy\"],\n self: [\"runtime\", \"serverDeploy\"],\n} as const satisfies Partial<Record<Backend, readonly (keyof ProjectConfig)[]>>;\n\nexport function getBackendDisabledOptions(backend: Backend) {\n return (\n Object.entries(BACKEND_DISABLED_OPTIONS).find(([candidate]) => candidate === backend)?.[1] ?? []\n );\n}\n\nexport function getDatabaseSetupDatabases(dbSetup: DatabaseSetup) {\n return dbSetup === \"none\" ? [] : DATABASE_SETUP_DATABASES[dbSetup];\n}\n","import { z } from \"zod\";\n\nimport { TASK_RUNNER_ADDONS, OBSERVABILITY_ADDONS } from \"./compatibility\";\n\nexport const DatabaseSchema = z\n .enum([\"none\", \"sqlite\", \"postgres\", \"mysql\", \"mongodb\"])\n .describe(\"Database type\");\n\nexport const ORMSchema = z.enum([\"drizzle\", \"prisma\", \"mongoose\", \"none\"]).describe(\"ORM type\");\n\nexport const BackendSchema = z\n .enum([\"hono\", \"express\", \"fastify\", \"elysia\", \"convex\", \"self\", \"none\"])\n .describe(\"Backend framework\");\n\nexport const RuntimeSchema = z\n .enum([\"bun\", \"node\", \"workers\", \"none\"])\n .describe(\"Runtime environment\");\n\nexport const FrontendSchema = z\n .enum([\n \"tanstack-router\",\n \"react-router\",\n \"tanstack-start\",\n \"next\",\n \"nuxt\",\n \"native-bare\",\n \"native-uniwind\",\n \"native-unistyles\",\n \"svelte\",\n \"solid\",\n \"astro\",\n \"none\",\n ])\n .describe(\"Frontend framework\");\n\nexport const AddonsSchema = z\n .enum([\n \"pwa\",\n \"tauri\",\n \"electrobun\",\n \"starlight\",\n \"biome\",\n \"lefthook\",\n \"husky\",\n \"mcp\",\n \"turborepo\",\n \"nx\",\n \"vite-plus\",\n \"fumadocs\",\n \"ultracite\",\n \"oxlint\",\n \"opentui\",\n \"wxt\",\n \"skills\",\n \"evlog\",\n \"axiom\",\n \"none\",\n ])\n .describe(\"Additional addons\");\n\nconst AddonsListSchema = z.array(AddonsSchema).superRefine((addons, ctx) => {\n const taskRunners = addons.filter((addon) => TASK_RUNNER_ADDONS.includes(addon));\n if (taskRunners.length > 1) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"`nx`, `turborepo`, and `vite-plus` cannot be used together\",\n });\n }\n\n const observabilityAddons = addons.filter((addon) => OBSERVABILITY_ADDONS.includes(addon));\n if (observabilityAddons.length > 1) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"`evlog` and `axiom` cannot be used together because Axiom includes evlog\",\n });\n }\n});\n\nexport const ExamplesSchema = z\n .enum([\"todo\", \"ai\", \"none\"])\n .describe(\"Example templates to include\");\n\nexport const PackageManagerSchema = z.enum([\"npm\", \"pnpm\", \"bun\"]).describe(\"Package manager\");\n\nexport const DatabaseSetupSchema = z\n .enum([\n \"turso\",\n \"neon\",\n \"prisma-postgres\",\n \"planetscale\",\n \"mongodb-atlas\",\n \"supabase\",\n \"d1\",\n \"docker\",\n \"none\",\n ])\n .describe(\"Database hosting setup\");\n\nexport const APISchema = z.enum([\"trpc\", \"orpc\", \"none\"]).describe(\"API type\");\n\nexport const AuthSchema = z\n .enum([\"better-auth\", \"clerk\", \"none\"])\n .describe(\"Authentication provider\");\n\nexport const PaymentsSchema = z.enum([\"polar\", \"none\"]).describe(\"Payments provider\");\n\nexport const WebDeploySchema = z\n .enum([\"cloudflare\", \"prisma\", \"docker\", \"vercel\", \"none\"])\n .describe(\"Web deployment\");\n\nexport const ServerDeploySchema = z\n .enum([\"cloudflare\", \"prisma\", \"docker\", \"vercel\", \"none\"])\n .describe(\"Server deployment\");\n\nexport const DirectoryConflictSchema = z\n .enum([\"merge\", \"overwrite\", \"increment\", \"error\"])\n .describe(\"How to handle existing directory conflicts\");\n\nexport const TemplateSchema = z\n .enum([\"mern\", \"pern\", \"t3\", \"uniwind\", \"none\"])\n .describe(\"Predefined project template\");\n\nexport const WxtTemplateSchema = z\n .enum([\"vanilla\", \"vue\", \"react\", \"solid\", \"svelte\"])\n .describe(\"WXT template\");\n\nexport const TuiTemplateSchema = z.enum([\"core\", \"react\", \"solid\"]).describe(\"OpenTUI template\");\n\nexport const FumadocsTemplateSchema = z\n .enum([\n \"next-mdx\",\n \"next-mdx-static\",\n \"waku\",\n \"react-router\",\n \"react-router-spa\",\n \"tanstack-start\",\n \"tanstack-start-spa\",\n \"astro\",\n ])\n .describe(\"Fumadocs template\");\n\nexport const FumadocsSearchSchema = z\n .enum([\"orama\", \"orama-cloud\"])\n .describe(\"Fumadocs search solution\");\n\nexport const FumadocsOgImageSchema = z\n .enum([\"next-og\", \"takumi\"])\n .describe(\"Fumadocs OG image generator\");\n\nexport const FumadocsAiChatSchema = z\n .enum([\"openrouter\", \"llmgateway\", \"inkeep\"])\n .describe(\"Fumadocs AI chat provider\");\n\nexport const InstallScopeSchema = z.enum([\"project\", \"global\"]).describe(\"Installation scope\");\n\nexport const McpServerSchema = z\n .enum([\n \"better-t-stack\",\n \"context7\",\n \"nx\",\n \"cloudflare-docs\",\n \"convex\",\n \"shadcn\",\n \"next-devtools\",\n \"nuxt-docs\",\n \"nuxt-ui-docs\",\n \"svelte-docs\",\n \"astro-docs\",\n \"planetscale\",\n \"neon\",\n \"supabase\",\n \"better-auth\",\n \"clerk\",\n \"expo\",\n \"polar\",\n ])\n .describe(\"MCP server to install\");\n\nexport const McpAgentSchema = z\n .enum([\n \"antigravity\",\n \"cline\",\n \"cline-cli\",\n \"cursor\",\n \"claude-code\",\n \"codex\",\n \"opencode\",\n \"gemini-cli\",\n \"github-copilot-cli\",\n \"grok-build\",\n \"mcporter\",\n \"vscode\",\n \"windsurf\",\n \"zed\",\n \"claude-desktop\",\n \"goose\",\n \"fx\",\n \"kilo-code\",\n \"kimi-code\",\n \"kiro-cli\",\n ])\n .describe(\"Agent target for MCP installation\");\n\nexport const SkillsSourceSchema = z\n .enum([\n \"vercel-labs/agent-skills\",\n \"vercel/ai\",\n \"vercel/turborepo\",\n \"honojs/skills\",\n \"vercel/next.js\",\n \"nuxt/ui\",\n \"heroui-inc/heroui\",\n \"shadcn/ui\",\n \"better-auth/skills\",\n \"clerk/skills\",\n \"neondatabase/agent-skills\",\n \"supabase/agent-skills\",\n \"planetscale/database-skills\",\n \"expo/skills\",\n \"prisma/skills\",\n \"elysiajs/skills\",\n \"waynesutton/convexskills\",\n \"msmps/opentui-skill\",\n \"haydenbleasel/ultracite\",\n \"https://www.evlog.dev\",\n ])\n .describe(\"Skill source repository\");\n\nexport const SkillsAgentSchema = z\n .enum([\n \"universal\",\n \"adal\",\n \"aider-desk\",\n \"amp\",\n \"antigravity\",\n \"antigravity-cli\",\n \"astrbot\",\n \"augment\",\n \"autohand-code\",\n \"bob\",\n \"claude-code\",\n \"cline\",\n \"codearts-agent\",\n \"codebuddy\",\n \"codemaker\",\n \"codestudio\",\n \"codex\",\n \"command-code\",\n \"continue\",\n \"cortex\",\n \"crush\",\n \"cursor\",\n \"deepagents\",\n \"devin\",\n \"dexto\",\n \"droid\",\n \"eve\",\n \"firebender\",\n \"forgecode\",\n \"gemini-cli\",\n \"github-copilot\",\n \"goose\",\n \"grok\",\n \"hermes-agent\",\n \"iflow-cli\",\n \"inference-sh\",\n \"jazz\",\n \"junie\",\n \"kilo\",\n \"kimchi\",\n \"kimi-code-cli\",\n \"kiro-cli\",\n \"kode\",\n \"lingma\",\n \"loaf\",\n \"mcpjam\",\n \"minimax-code\",\n \"mistral-vibe\",\n \"moxby\",\n \"mux\",\n \"neovate\",\n \"ona\",\n \"clawdbot\",\n \"openclaw\",\n \"opencode\",\n \"openhands\",\n \"pi\",\n \"pochi\",\n \"posit-assistant\",\n \"promptscript\",\n \"qoder\",\n \"qoder-cn\",\n \"qwen-code\",\n \"reasonix\",\n \"replit\",\n \"roo\",\n \"rovodev\",\n \"tabnine-cli\",\n \"terramind\",\n \"tinycloud\",\n \"trae\",\n \"trae-cn\",\n \"warp\",\n \"windsurf\",\n \"zcode\",\n \"zed\",\n \"zencoder\",\n \"zenflow\",\n ])\n .describe(\n \"Agent target for skill installation; prefer universal for agents that consume .agents/skills\",\n );\n\nexport const SkillSelectionSchema = z.strictObject({\n source: SkillsSourceSchema.describe(\"Skill source to install from\"),\n skills: z.array(z.string()).describe(\"Curated skill names to install from this source\"),\n});\n\nexport const UltraciteLinterSchema = z.enum([\"biome\", \"oxlint\"]).describe(\"Ultracite linter\");\n\nexport const UltraciteEditorSchema = z\n .enum([\n \"vscode\",\n \"cursor\",\n \"windsurf\",\n \"codebuddy\",\n \"antigravity\",\n \"bob\",\n \"kiro\",\n \"trae\",\n \"void\",\n \"zed\",\n \"universal\",\n ])\n .describe(\"Ultracite editor integration\");\n\nexport const UltraciteAgentSchema = z\n .enum([\n \"universal\",\n \"claude\",\n \"codex\",\n \"jules\",\n \"replit\",\n \"devin\",\n \"lovable\",\n \"zencoder\",\n \"ona\",\n \"openclaw\",\n \"continue\",\n \"snowflake-cortex\",\n \"deepagents\",\n \"qoder\",\n \"kimi-cli\",\n \"mcpjam\",\n \"mux\",\n \"pi\",\n \"adal\",\n \"copilot\",\n \"cline\",\n \"amp\",\n \"aider\",\n \"firebase-studio\",\n \"open-hands\",\n \"gemini\",\n \"junie\",\n \"augmentcode\",\n \"bob\",\n \"kilo-code\",\n \"goose\",\n \"roo-code\",\n \"warp\",\n \"droid\",\n \"opencode\",\n \"crush\",\n \"qwen\",\n \"amazon-q-cli\",\n \"firebender\",\n \"cursor-cli\",\n \"mistral-vibe\",\n \"vercel\",\n ])\n .describe(\"Ultracite agent integration\");\n\nexport const UltraciteHookSchema = z\n .enum([\"cursor\", \"windsurf\", \"codebuddy\", \"claude\", \"copilot\"])\n .describe(\"Ultracite hook integration\");\n\nexport const DbSetupModeSchema = z\n .enum([\"manual\", \"auto\", \"alchemy\"])\n .describe(\"Database setup mode\");\n\nexport const NeonSetupMethodSchema = z\n .enum([\"neon-new\", \"neon\", \"neondb\", \"neonctl\"])\n .describe(\"Neon database provisioning method\");\n\nexport const AddonOptionsSchema = z\n .strictObject({\n wxt: z\n .strictObject({\n template: WxtTemplateSchema,\n devPort: z.number().int().min(1).max(65535).optional().describe(\"WXT dev server port\"),\n })\n .optional()\n .describe(\"Options for the WXT addon\"),\n fumadocs: z\n .strictObject({\n template: FumadocsTemplateSchema,\n devPort: z.number().int().min(1).max(65535).optional().describe(\"Fumadocs dev server port\"),\n search: FumadocsSearchSchema.optional().describe(\"Fumadocs search solution\"),\n ogImage: FumadocsOgImageSchema.optional().describe(\"Fumadocs OG image generator\"),\n aiChat: FumadocsAiChatSchema.optional().describe(\"Fumadocs AI chat provider\"),\n })\n .optional()\n .describe(\"Options for the Fumadocs addon\"),\n opentui: z\n .strictObject({\n template: TuiTemplateSchema,\n })\n .optional()\n .describe(\"Options for the OpenTUI addon\"),\n mcp: z\n .strictObject({\n scope: InstallScopeSchema.optional(),\n servers: z.array(McpServerSchema).optional().describe(\"MCP servers to install\"),\n agents: z.array(McpAgentSchema).optional().describe(\"Agents to wire MCP servers into\"),\n })\n .optional()\n .describe(\"Options for the MCP addon\"),\n skills: z\n .strictObject({\n scope: InstallScopeSchema.optional(),\n agents: z.array(SkillsAgentSchema).optional().describe(\"Agents to install skills into\"),\n selections: z.array(SkillSelectionSchema).optional().describe(\"Skills grouped by source\"),\n })\n .optional()\n .describe(\"Options for the Skills addon\"),\n ultracite: z\n .strictObject({\n linter: UltraciteLinterSchema.optional(),\n editors: z.array(UltraciteEditorSchema).optional(),\n agents: z.array(UltraciteAgentSchema).optional(),\n hooks: z.array(UltraciteHookSchema).optional(),\n })\n .optional()\n .describe(\"Options for the Ultracite addon\"),\n })\n .describe(\"Addon-specific configuration\");\n\nexport const DbSetupOptionsSchema = z\n .strictObject({\n mode: DbSetupModeSchema.optional().describe(\"How database setup should be executed\"),\n neon: z\n .strictObject({\n method: NeonSetupMethodSchema.optional(),\n projectName: z.string().min(1).optional().describe(\"Neon project name\"),\n regionId: z.string().min(1).optional().describe(\"Neon region identifier\"),\n })\n .optional()\n .describe(\"Options for Neon setup\"),\n prismaPostgres: z\n .strictObject({\n regionId: z.string().min(1).optional().describe(\"Prisma Postgres region identifier\"),\n })\n .optional()\n .describe(\"Options for Prisma Postgres setup\"),\n turso: z\n .strictObject({\n databaseName: z.string().min(1).optional().describe(\"Turso database name\"),\n groupName: z.string().min(1).optional().describe(\"Turso database group name\"),\n installCli: z\n .boolean()\n .optional()\n .describe(\"Whether the CLI may install the Turso CLI automatically\"),\n })\n .optional()\n .describe(\"Options for Turso setup\"),\n })\n .describe(\"Database setup configuration\");\n\nexport const ProjectNameSchema = z\n .string()\n .min(1, \"Project name cannot be empty\")\n .max(255, \"Project name must be less than 255 characters\")\n .refine(\n (name) => name === \".\" || !name.startsWith(\".\"),\n \"Project name cannot start with a dot (except for '.')\",\n )\n .refine((name) => name === \".\" || !name.startsWith(\"-\"), \"Project name cannot start with a dash\")\n .refine((name) => {\n const invalidChars = [\"<\", \">\", \":\", '\"', \"|\", \"?\", \"*\"];\n return !invalidChars.some((char) => name.includes(char));\n }, \"Project name contains invalid characters\")\n .refine((name) => name.toLowerCase() !== \"node_modules\", \"Project name is reserved\")\n .describe(\"Project name or path\");\n\nexport const CreateInputSchema = z\n .object({\n projectName: z.string().optional(),\n template: TemplateSchema.optional(),\n yes: z.boolean().optional(),\n yolo: z.boolean().optional(),\n dryRun: z.boolean().optional(),\n verbose: z.boolean().optional(),\n addonOptions: AddonOptionsSchema.optional(),\n dbSetupOptions: DbSetupOptionsSchema.optional(),\n database: DatabaseSchema.optional(),\n orm: ORMSchema.optional(),\n auth: AuthSchema.optional(),\n payments: PaymentsSchema.optional(),\n frontend: z.array(FrontendSchema).optional(),\n addons: AddonsListSchema.optional(),\n examples: z.array(ExamplesSchema).optional(),\n git: z.boolean().optional(),\n packageManager: PackageManagerSchema.optional(),\n install: z.boolean().optional(),\n dbSetup: DatabaseSetupSchema.optional(),\n backend: BackendSchema.optional(),\n runtime: RuntimeSchema.optional(),\n api: APISchema.optional(),\n webDeploy: WebDeploySchema.optional(),\n serverDeploy: ServerDeploySchema.optional(),\n directoryConflict: DirectoryConflictSchema.optional(),\n renderTitle: z.boolean().optional(),\n disableAnalytics: z.boolean().optional(),\n manualDb: z.boolean().optional(),\n })\n .strict()\n .refine((input) => !(input.manualDb !== undefined && input.dbSetupOptions?.mode !== undefined), {\n message: \"`manualDb` and `dbSetupOptions.mode` are mutually exclusive\",\n path: [\"dbSetupOptions\", \"mode\"],\n });\n\nexport const WorkspacePackageNameSchema = z\n .string()\n .min(1, \"Package name cannot be empty\")\n .max(214, \"Package name must not exceed 214 characters\")\n .regex(\n /^[a-z0-9](?:[a-z0-9._-]*[a-z0-9])?$/,\n \"Package name must be an unscoped lowercase npm name\",\n )\n .refine((name) => name !== \"node_modules\", \"Package name is reserved\")\n .describe(\"Name of a workspace package to scaffold\");\n\nexport const AddInputSchema = z\n .object({\n addons: AddonsListSchema.optional(),\n package: WorkspacePackageNameSchema.optional(),\n addonOptions: AddonOptionsSchema.optional(),\n webDeploy: WebDeploySchema.optional(),\n serverDeploy: ServerDeploySchema.optional(),\n projectDir: z.string().optional(),\n install: z.boolean().optional(),\n packageManager: PackageManagerSchema.optional(),\n dryRun: z.boolean().optional(),\n disableAnalytics: z.boolean().optional(),\n })\n .strict();\n\nexport const CLIInputSchema = CreateInputSchema.safeExtend({\n projectDirectory: z.string().optional(),\n}).strict();\n\nexport const ProjectConfigSchema = z.object({\n projectName: z.string(),\n projectDir: z.string(),\n relativePath: z.string(),\n addonOptions: AddonOptionsSchema.optional(),\n dbSetupOptions: DbSetupOptionsSchema.optional(),\n database: DatabaseSchema,\n orm: ORMSchema,\n backend: BackendSchema,\n runtime: RuntimeSchema,\n frontend: z.array(FrontendSchema),\n addons: AddonsListSchema,\n examples: z.array(ExamplesSchema),\n auth: AuthSchema,\n payments: PaymentsSchema,\n git: z.boolean(),\n packageManager: PackageManagerSchema,\n install: z.boolean(),\n dbSetup: DatabaseSetupSchema,\n api: APISchema,\n webDeploy: WebDeploySchema,\n serverDeploy: ServerDeploySchema,\n});\n\nexport const BetterTStackConfigSchema = z.object({\n version: z.string().describe(\"CLI version used to create this project\"),\n createdAt: z.string().describe(\"Timestamp when the project was created\"),\n reproducibleCommand: z.string().optional().describe(\"Command to reproduce this project setup\"),\n addonOptions: AddonOptionsSchema.optional(),\n dbSetupOptions: DbSetupOptionsSchema.optional(),\n database: DatabaseSchema,\n orm: ORMSchema,\n backend: BackendSchema,\n runtime: RuntimeSchema,\n frontend: z.array(FrontendSchema),\n addons: AddonsListSchema,\n examples: z.array(ExamplesSchema),\n auth: AuthSchema,\n payments: PaymentsSchema,\n packageManager: PackageManagerSchema,\n dbSetup: DatabaseSetupSchema,\n api: APISchema,\n webDeploy: WebDeploySchema,\n serverDeploy: ServerDeploySchema,\n});\n\nexport const BetterTStackConfigFileSchema = BetterTStackConfigSchema.safeExtend({\n $schema: z.string().optional().describe(\"JSON Schema reference for validation\"),\n})\n .strict()\n .meta({\n id: \"https://r2.better-t-stack.dev/schema.json\",\n title: \"Better-T-Stack Configuration\",\n description: \"Configuration file for Better-T-Stack projects\",\n });\n\nexport const InitResultSchema = z.object({\n success: z.boolean(),\n projectConfig: ProjectConfigSchema,\n reproducibleCommand: z.string(),\n timeScaffolded: z.string(),\n elapsedTimeMs: z.number(),\n projectDirectory: z.string(),\n relativePath: z.string(),\n error: z.string().optional(),\n warnings: z.array(z.string()).optional(),\n});\n\nexport const DATABASE_VALUES = DatabaseSchema.options;\nexport const ORM_VALUES = ORMSchema.options;\nexport const BACKEND_VALUES = BackendSchema.options;\nexport const RUNTIME_VALUES = RuntimeSchema.options;\nexport const FRONTEND_VALUES = FrontendSchema.options;\nexport const ADDONS_VALUES = AddonsSchema.options;\nexport const EXAMPLES_VALUES = ExamplesSchema.options;\nexport const PACKAGE_MANAGER_VALUES = PackageManagerSchema.options;\nexport const DATABASE_SETUP_VALUES = DatabaseSetupSchema.options;\nexport const API_VALUES = APISchema.options;\nexport const AUTH_VALUES = AuthSchema.options;\nexport const PAYMENTS_VALUES = PaymentsSchema.options;\nexport const WEB_DEPLOY_VALUES = WebDeploySchema.options;\nexport const SERVER_DEPLOY_VALUES = ServerDeploySchema.options;\nexport const DIRECTORY_CONFLICT_VALUES = DirectoryConflictSchema.options;\nexport const TEMPLATE_VALUES = TemplateSchema.options;\n"],"mappings":"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"}